-
-
-
-
-
{{ site.description }}
+
+
+
-
-
- Blog
- About
-
-
-
-
-
-
- {{ content }}
-
-
-
-
- {% include analytics.html %}
diff --git a/_layouts/redirect.html b/_layouts/redirect.html
new file mode 100644
index 0000000000000..b171050d15186
--- /dev/null
+++ b/_layouts/redirect.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Page Redirection
+
+
+ If you are not redirected automatically, follow this link .
+
+
diff --git a/_posts/2014-3-3-Hello-World.md b/_posts/2014-3-3-Hello-World.md
index d4665b6d18e9e..b5e9e015addd2 100644
--- a/_posts/2014-3-3-Hello-World.md
+++ b/_posts/2014-3-3-Hello-World.md
@@ -1,10 +1,6 @@
---
layout: post
-title: You're up and running!
+title: Golf architecture new golf course restoration renovation
---
-Next you can update your site name, avatar and other options using the _config.yml file in the root of your repository (shown below).
-

-
-The easiest way to make your first post is to edit this one. Go into /_posts/ and update the Hello World markdown file. For more instructions head over to the [Jekyll Now repository](https://github.com/barryclark/jekyll-now) on GitHub.
\ No newline at end of file
diff --git a/about.md b/about.md
index bc21f5731bf4b..82149b9278226 100644
--- a/about.md
+++ b/about.md
@@ -1,15 +1,5 @@
---
layout: page
-title: About
-permalink: /about/
+title: About - Contact Us
+permalink: /Contact-Us/
---
-
-Some information about you!
-
-### More Information
-
-A place to include any other types of information that you'd like to include about yourself.
-
-### Contact me
-
-[email@domain.com](mailto:email@domain.com)
\ No newline at end of file
diff --git a/ads.txt b/ads.txt
new file mode 100644
index 0000000000000..19ce4cafea8d0
--- /dev/null
+++ b/ads.txt
@@ -0,0 +1 @@
+placeholder.example.com, placeholder, DIRECT, placeholder
diff --git a/css/fonts/font.emoji.css b/css/fonts/font.emoji.css
new file mode 100644
index 0000000000000..1d215745ad040
--- /dev/null
+++ b/css/fonts/font.emoji.css
@@ -0,0 +1,2559 @@
+/* VCO.Emoji
+ Adding Emoji support to Chrome
+----------------------------------------------------- */
+.vco-emoji {
+ background: url(../icons/emoji.png) top left no-repeat;
+ width: 20px;
+ height: 20px;
+ display: -moz-inline-stack;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+}
+/* CSS for high-resolution devices (HiDPI), you can add this if you want it */
+/*@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
+only screen and (-moz-min-device-pixel-ratio: 1.5),
+only screen and (-o-min-device-pixel-ratio: 3/2),
+only screen and (min-device-pixel-ratio: 1.5) {
+.em {
+background-image: url(../img/apple_sprite@2x.png);
+background-size: 140px 2440px;
+}
+
+}
+*/
+.emj0 {
+ background-position: 0 0;
+}
+.emj1 {
+ background-position: -20px 0;
+}
+.emj2 {
+ background-position: -40px 0;
+}
+.emj3 {
+ background-position: -60px 0;
+}
+.emj4 {
+ background-position: -80px 0;
+}
+.emj5 {
+ background-position: -100px 0;
+}
+.emj6 {
+ background-position: -120px 0;
+}
+.emj7 {
+ background-position: 0 -20px;
+}
+.emj8 {
+ background-position: -20px -20px;
+}
+.emj9 {
+ background-position: -40px -20px;
+}
+.emj10 {
+ background-position: -60px -20px;
+}
+.emj11 {
+ background-position: -80px -20px;
+}
+.emj12 {
+ background-position: -100px -20px;
+}
+.emj13 {
+ background-position: -120px -20px;
+}
+.emj14 {
+ background-position: 0 -40px;
+}
+.emj15 {
+ background-position: -20px -40px;
+}
+.emj16 {
+ background-position: -40px -40px;
+}
+.emj17 {
+ background-position: -60px -40px;
+}
+.emj18 {
+ background-position: -80px -40px;
+}
+.emj19 {
+ background-position: -100px -40px;
+}
+.emj20 {
+ background-position: -120px -40px;
+}
+.emj21 {
+ background-position: 0 -60px;
+}
+.emj22 {
+ background-position: -20px -60px;
+}
+.emj23 {
+ background-position: -40px -60px;
+}
+.emj24 {
+ background-position: -60px -60px;
+}
+.emj25 {
+ background-position: -80px -60px;
+}
+.emj26 {
+ background-position: -100px -60px;
+}
+.emj27 {
+ background-position: -120px -60px;
+}
+.emj28 {
+ background-position: 0 -80px;
+}
+.emj29 {
+ background-position: -20px -80px;
+}
+.emj30 {
+ background-position: -40px -80px;
+}
+.emj31 {
+ background-position: -60px -80px;
+}
+.emj32 {
+ background-position: -80px -80px;
+}
+.emj33 {
+ background-position: -100px -80px;
+}
+.emj34 {
+ background-position: -120px -80px;
+}
+.emj35 {
+ background-position: 0 -100px;
+}
+.emj36 {
+ background-position: -20px -100px;
+}
+.emj37 {
+ background-position: -40px -100px;
+}
+.emj38 {
+ background-position: -60px -100px;
+}
+.emj39 {
+ background-position: -80px -100px;
+}
+.emj40 {
+ background-position: -100px -100px;
+}
+.emj41 {
+ background-position: -120px -100px;
+}
+.emj42 {
+ background-position: 0 -120px;
+}
+.emj43 {
+ background-position: -20px -120px;
+}
+.emj44 {
+ background-position: -40px -120px;
+}
+.emj45 {
+ background-position: -60px -120px;
+}
+.emj46 {
+ background-position: -80px -120px;
+}
+.emj47 {
+ background-position: -100px -120px;
+}
+.emj48 {
+ background-position: -120px -120px;
+}
+.emj49 {
+ background-position: 0 -140px;
+}
+.emj50 {
+ background-position: -20px -140px;
+}
+.emj51 {
+ background-position: -40px -140px;
+}
+.emj52 {
+ background-position: -60px -140px;
+}
+.emj53 {
+ background-position: -80px -140px;
+}
+.emj54 {
+ background-position: -100px -140px;
+}
+.emj55 {
+ background-position: -120px -140px;
+}
+.emj56 {
+ background-position: 0 -160px;
+}
+.emj57 {
+ background-position: -20px -160px;
+}
+.emj58 {
+ background-position: -40px -160px;
+}
+.emj59 {
+ background-position: -60px -160px;
+}
+.emj60 {
+ background-position: -80px -160px;
+}
+.emj61 {
+ background-position: -100px -160px;
+}
+.emj62 {
+ background-position: -120px -160px;
+}
+.emj63 {
+ background-position: 0 -180px;
+}
+.emj64 {
+ background-position: -20px -180px;
+}
+.emj65 {
+ background-position: -40px -180px;
+}
+.emj66 {
+ background-position: -60px -180px;
+}
+.emj67 {
+ background-position: -80px -180px;
+}
+.emj68 {
+ background-position: -100px -180px;
+}
+.emj69 {
+ background-position: -120px -180px;
+}
+.emj70 {
+ background-position: 0 -200px;
+}
+.emj71 {
+ background-position: -20px -200px;
+}
+.emj72 {
+ background-position: -40px -200px;
+}
+.emj73 {
+ background-position: -60px -200px;
+}
+.emj74 {
+ background-position: -80px -200px;
+}
+.emj75 {
+ background-position: -100px -200px;
+}
+.emj76 {
+ background-position: -120px -200px;
+}
+.emj77 {
+ background-position: 0 -220px;
+}
+.emj78 {
+ background-position: -20px -220px;
+}
+.emj79 {
+ background-position: -40px -220px;
+}
+.emj80 {
+ background-position: -60px -220px;
+}
+.emj81 {
+ background-position: -80px -220px;
+}
+.emj82 {
+ background-position: -100px -220px;
+}
+.emj83 {
+ background-position: -120px -220px;
+}
+.emj84 {
+ background-position: 0 -240px;
+}
+.emj85 {
+ background-position: -20px -240px;
+}
+.emj86 {
+ background-position: -40px -240px;
+}
+.emj87 {
+ background-position: -60px -240px;
+}
+.emj88 {
+ background-position: -80px -240px;
+}
+.emj89 {
+ background-position: -100px -240px;
+}
+.emj90 {
+ background-position: -120px -240px;
+}
+.emj91 {
+ background-position: 0 -260px;
+}
+.emj92 {
+ background-position: -20px -260px;
+}
+.emj93 {
+ background-position: -40px -260px;
+}
+.emj94 {
+ background-position: -60px -260px;
+}
+.emj95 {
+ background-position: -80px -260px;
+}
+.emj96 {
+ background-position: -100px -260px;
+}
+.emj97 {
+ background-position: -120px -260px;
+}
+.emj98 {
+ background-position: 0 -280px;
+}
+.emj99 {
+ background-position: -20px -280px;
+}
+.emj100 {
+ background-position: -40px -280px;
+}
+.emj101 {
+ background-position: -60px -280px;
+}
+.emj102 {
+ background-position: -80px -280px;
+}
+.emj103 {
+ background-position: -100px -280px;
+}
+.emj104 {
+ background-position: -120px -280px;
+}
+.emj105 {
+ background-position: 0 -300px;
+}
+.emj106 {
+ background-position: -20px -300px;
+}
+.emj107 {
+ background-position: -40px -300px;
+}
+.emj108 {
+ background-position: -60px -300px;
+}
+.emj109 {
+ background-position: -80px -300px;
+}
+.emj110 {
+ background-position: -100px -300px;
+}
+.emj111 {
+ background-position: -120px -300px;
+}
+.emj112 {
+ background-position: 0 -320px;
+}
+.emj113 {
+ background-position: -20px -320px;
+}
+.emj114 {
+ background-position: -40px -320px;
+}
+.emj115 {
+ background-position: -60px -320px;
+}
+.emj116 {
+ background-position: -80px -320px;
+}
+.emj117 {
+ background-position: -100px -320px;
+}
+.emj118 {
+ background-position: -120px -320px;
+}
+.emj119 {
+ background-position: 0 -340px;
+}
+.emj120 {
+ background-position: -20px -340px;
+}
+.emj121 {
+ background-position: -40px -340px;
+}
+.emj122 {
+ background-position: -60px -340px;
+}
+.emj123 {
+ background-position: -80px -340px;
+}
+.emj124 {
+ background-position: -100px -340px;
+}
+.emj125 {
+ background-position: -120px -340px;
+}
+.emj126 {
+ background-position: 0 -360px;
+}
+.emj127 {
+ background-position: -20px -360px;
+}
+.emj128 {
+ background-position: -40px -360px;
+}
+.emj129 {
+ background-position: -60px -360px;
+}
+.emj130 {
+ background-position: -80px -360px;
+}
+.emj131 {
+ background-position: -100px -360px;
+}
+.emj132 {
+ background-position: -120px -360px;
+}
+.emj133 {
+ background-position: 0 -380px;
+}
+.emj134 {
+ background-position: -20px -380px;
+}
+.emj135 {
+ background-position: -40px -380px;
+}
+.emj136 {
+ background-position: -60px -380px;
+}
+.emj137 {
+ background-position: -80px -380px;
+}
+.emj138 {
+ background-position: -100px -380px;
+}
+.emj139 {
+ background-position: -120px -380px;
+}
+.emj140 {
+ background-position: 0 -400px;
+}
+.emj141 {
+ background-position: -20px -400px;
+}
+.emj142 {
+ background-position: -40px -400px;
+}
+.emj143 {
+ background-position: -60px -400px;
+}
+.emj144 {
+ background-position: -80px -400px;
+}
+.emj145 {
+ background-position: -100px -400px;
+}
+.emj146 {
+ background-position: -120px -400px;
+}
+.emj147 {
+ background-position: 0 -420px;
+}
+.emj148 {
+ background-position: -20px -420px;
+}
+.emj149 {
+ background-position: -40px -420px;
+}
+.emj150 {
+ background-position: -60px -420px;
+}
+.emj151 {
+ background-position: -80px -420px;
+}
+.emj152 {
+ background-position: -100px -420px;
+}
+.emj153 {
+ background-position: -120px -420px;
+}
+.emj154 {
+ background-position: 0 -440px;
+}
+.emj155 {
+ background-position: -20px -440px;
+}
+.emj156 {
+ background-position: -40px -440px;
+}
+.emj157 {
+ background-position: -60px -440px;
+}
+.emj158 {
+ background-position: -80px -440px;
+}
+.emj159 {
+ background-position: -100px -440px;
+}
+.emj160 {
+ background-position: -120px -440px;
+}
+.emj161 {
+ background-position: 0 -460px;
+}
+.emj162 {
+ background-position: -20px -460px;
+}
+.emj163 {
+ background-position: -40px -460px;
+}
+.emj164 {
+ background-position: -60px -460px;
+}
+.emj165 {
+ background-position: -80px -460px;
+}
+.emj166 {
+ background-position: -100px -460px;
+}
+.emj167 {
+ background-position: -120px -460px;
+}
+.emj168 {
+ background-position: 0 -480px;
+}
+.emj169 {
+ background-position: -20px -480px;
+}
+.emj170 {
+ background-position: -40px -480px;
+}
+.emj171 {
+ background-position: -60px -480px;
+}
+.emj172 {
+ background-position: -80px -480px;
+}
+.emj173 {
+ background-position: -100px -480px;
+}
+.emj174 {
+ background-position: -120px -480px;
+}
+.emj175 {
+ background-position: 0 -500px;
+}
+.emj176 {
+ background-position: -20px -500px;
+}
+.emj177 {
+ background-position: -40px -500px;
+}
+.emj178 {
+ background-position: -60px -500px;
+}
+.emj179 {
+ background-position: -80px -500px;
+}
+.emj180 {
+ background-position: -100px -500px;
+}
+.emj181 {
+ background-position: -120px -500px;
+}
+.emj182 {
+ background-position: 0 -520px;
+}
+.emj183 {
+ background-position: -20px -520px;
+}
+.emj184 {
+ background-position: -40px -520px;
+}
+.emj185 {
+ background-position: -60px -520px;
+}
+.emj186 {
+ background-position: -80px -520px;
+}
+.emj187 {
+ background-position: -100px -520px;
+}
+.emj188 {
+ background-position: -120px -520px;
+}
+.emj189 {
+ background-position: 0 -540px;
+}
+.emj190 {
+ background-position: -20px -540px;
+}
+.emj191 {
+ background-position: -40px -540px;
+}
+.emj192 {
+ background-position: -60px -540px;
+}
+.emj193 {
+ background-position: -80px -540px;
+}
+.emj194 {
+ background-position: -100px -540px;
+}
+.emj195 {
+ background-position: -120px -540px;
+}
+.emj196 {
+ background-position: 0 -560px;
+}
+.emj197 {
+ background-position: -20px -560px;
+}
+.emj198 {
+ background-position: -40px -560px;
+}
+.emj199 {
+ background-position: -60px -560px;
+}
+.emj200 {
+ background-position: -80px -560px;
+}
+.emj201 {
+ background-position: -100px -560px;
+}
+.emj202 {
+ background-position: -120px -560px;
+}
+.emj203 {
+ background-position: 0 -580px;
+}
+.emj204 {
+ background-position: -20px -580px;
+}
+.emj205 {
+ background-position: -40px -580px;
+}
+.emj206 {
+ background-position: -60px -580px;
+}
+.emj207 {
+ background-position: -80px -580px;
+}
+.emj208 {
+ background-position: -100px -580px;
+}
+.emj209 {
+ background-position: -120px -580px;
+}
+.emj210 {
+ background-position: 0 -600px;
+}
+.emj211 {
+ background-position: -20px -600px;
+}
+.emj212 {
+ background-position: -40px -600px;
+}
+.emj213 {
+ background-position: -60px -600px;
+}
+.emj214 {
+ background-position: -80px -600px;
+}
+.emj215 {
+ background-position: -100px -600px;
+}
+.emj216 {
+ background-position: -120px -600px;
+}
+.emj217 {
+ background-position: 0 -620px;
+}
+.emj218 {
+ background-position: -20px -620px;
+}
+.emj219 {
+ background-position: -40px -620px;
+}
+.emj220 {
+ background-position: -60px -620px;
+}
+.emj221 {
+ background-position: -80px -620px;
+}
+.emj222 {
+ background-position: -100px -620px;
+}
+.emj223 {
+ background-position: -120px -620px;
+}
+.emj224 {
+ background-position: 0 -640px;
+}
+.emj225 {
+ background-position: -20px -640px;
+}
+.emj226 {
+ background-position: -40px -640px;
+}
+.emj227 {
+ background-position: -60px -640px;
+}
+.emj228 {
+ background-position: -80px -640px;
+}
+.emj229 {
+ background-position: -100px -640px;
+}
+.emj230 {
+ background-position: -120px -640px;
+}
+.emj231 {
+ background-position: 0 -660px;
+}
+.emj232 {
+ background-position: -20px -660px;
+}
+.emj233 {
+ background-position: -40px -660px;
+}
+.emj234 {
+ background-position: -60px -660px;
+}
+.emj235 {
+ background-position: -80px -660px;
+}
+.emj236 {
+ background-position: -100px -660px;
+}
+.emj237 {
+ background-position: -120px -660px;
+}
+.emj238 {
+ background-position: 0 -680px;
+}
+.emj239 {
+ background-position: -20px -680px;
+}
+.emj240 {
+ background-position: -40px -680px;
+}
+.emj241 {
+ background-position: -60px -680px;
+}
+.emj242 {
+ background-position: -80px -680px;
+}
+.emj243 {
+ background-position: -100px -680px;
+}
+.emj244 {
+ background-position: -120px -680px;
+}
+.emj245 {
+ background-position: 0 -700px;
+}
+.emj246 {
+ background-position: -20px -700px;
+}
+.emj247 {
+ background-position: -40px -700px;
+}
+.emj248 {
+ background-position: -60px -700px;
+}
+.emj249 {
+ background-position: -80px -700px;
+}
+.emj250 {
+ background-position: -100px -700px;
+}
+.emj251 {
+ background-position: -120px -700px;
+}
+.emj252 {
+ background-position: 0 -720px;
+}
+.emj253 {
+ background-position: -20px -720px;
+}
+.emj254 {
+ background-position: -40px -720px;
+}
+.emj255 {
+ background-position: -60px -720px;
+}
+.emj256 {
+ background-position: -80px -720px;
+}
+.emj257 {
+ background-position: -100px -720px;
+}
+.emj258 {
+ background-position: -120px -720px;
+}
+.emj259 {
+ background-position: 0 -740px;
+}
+.emj260 {
+ background-position: -20px -740px;
+}
+.emj261 {
+ background-position: -40px -740px;
+}
+.emj262 {
+ background-position: -60px -740px;
+}
+.emj263 {
+ background-position: -80px -740px;
+}
+.emj264 {
+ background-position: -100px -740px;
+}
+.emj265 {
+ background-position: -120px -740px;
+}
+.emj266 {
+ background-position: 0 -760px;
+}
+.emj267 {
+ background-position: -20px -760px;
+}
+.emj268 {
+ background-position: -40px -760px;
+}
+.emj269 {
+ background-position: -60px -760px;
+}
+.emj270 {
+ background-position: -80px -760px;
+}
+.emj271 {
+ background-position: -100px -760px;
+}
+.emj272 {
+ background-position: -120px -760px;
+}
+.emj273 {
+ background-position: 0 -780px;
+}
+.emj274 {
+ background-position: -20px -780px;
+}
+.emj275 {
+ background-position: -40px -780px;
+}
+.emj276 {
+ background-position: -60px -780px;
+}
+.emj277 {
+ background-position: -80px -780px;
+}
+.emj278 {
+ background-position: -100px -780px;
+}
+.emj279 {
+ background-position: -120px -780px;
+}
+.emj280 {
+ background-position: 0 -800px;
+}
+.emj281 {
+ background-position: -20px -800px;
+}
+.emj282 {
+ background-position: -40px -800px;
+}
+.emj283 {
+ background-position: -60px -800px;
+}
+.emj284 {
+ background-position: -80px -800px;
+}
+.emj285 {
+ background-position: -100px -800px;
+}
+.emj286 {
+ background-position: -120px -800px;
+}
+.emj287 {
+ background-position: 0 -820px;
+}
+.emj288 {
+ background-position: -20px -820px;
+}
+.emj289 {
+ background-position: -40px -820px;
+}
+.emj290 {
+ background-position: -60px -820px;
+}
+.emj291 {
+ background-position: -80px -820px;
+}
+.emj292 {
+ background-position: -100px -820px;
+}
+.emj293 {
+ background-position: -120px -820px;
+}
+.emj294 {
+ background-position: 0 -840px;
+}
+.emj295 {
+ background-position: -20px -840px;
+}
+.emj296 {
+ background-position: -40px -840px;
+}
+.emj297 {
+ background-position: -60px -840px;
+}
+.emj298 {
+ background-position: -80px -840px;
+}
+.emj299 {
+ background-position: -100px -840px;
+}
+.emj300 {
+ background-position: -120px -840px;
+}
+.emj301 {
+ background-position: 0 -860px;
+}
+.emj302 {
+ background-position: -20px -860px;
+}
+.emj303 {
+ background-position: -40px -860px;
+}
+.emj304 {
+ background-position: -60px -860px;
+}
+.emj305 {
+ background-position: 0 -880px;
+}
+.emj306 {
+ background-position: -20px -880px;
+}
+.emj307 {
+ background-position: -40px -880px;
+}
+.emj308 {
+ background-position: -60px -880px;
+}
+.emj309 {
+ background-position: -80px -880px;
+}
+.emj310 {
+ background-position: -100px -880px;
+}
+.emj311 {
+ background-position: -120px -880px;
+}
+.emj312 {
+ background-position: 0 -900px;
+}
+.emj313 {
+ background-position: -20px -900px;
+}
+.emj314 {
+ background-position: -40px -900px;
+}
+.emj315 {
+ background-position: -60px -900px;
+}
+.emj316 {
+ background-position: -80px -900px;
+}
+.emj317 {
+ background-position: -100px -900px;
+}
+.emj318 {
+ background-position: -120px -900px;
+}
+.emj319 {
+ background-position: 0 -920px;
+}
+.emj320 {
+ background-position: -20px -920px;
+}
+.emj321 {
+ background-position: -40px -920px;
+}
+.emj322 {
+ background-position: -60px -920px;
+}
+.emj323 {
+ background-position: -80px -920px;
+}
+.emj324 {
+ background-position: -100px -920px;
+}
+.emj325 {
+ background-position: -120px -920px;
+}
+.emj326 {
+ background-position: 0 -940px;
+}
+.emj327 {
+ background-position: -20px -940px;
+}
+.emj328 {
+ background-position: -40px -940px;
+}
+.emj329 {
+ background-position: -60px -940px;
+}
+.emj330 {
+ background-position: -80px -940px;
+}
+.emj331 {
+ background-position: -100px -940px;
+}
+.emj332 {
+ background-position: -120px -940px;
+}
+.emj333 {
+ background-position: 0 -960px;
+}
+.emj334 {
+ background-position: -20px -960px;
+}
+.emj335 {
+ background-position: -40px -960px;
+}
+.emj336 {
+ background-position: -60px -960px;
+}
+.emj337 {
+ background-position: -80px -960px;
+}
+.emj338 {
+ background-position: -100px -960px;
+}
+.emj339 {
+ background-position: -120px -960px;
+}
+.emj340 {
+ background-position: 0 -980px;
+}
+.emj341 {
+ background-position: -20px -980px;
+}
+.emj342 {
+ background-position: -40px -980px;
+}
+.emj343 {
+ background-position: -60px -980px;
+}
+.emj344 {
+ background-position: -80px -980px;
+}
+.emj345 {
+ background-position: -100px -980px;
+}
+.emj346 {
+ background-position: -120px -980px;
+}
+.emj347 {
+ background-position: 0 -1000px;
+}
+.emj348 {
+ background-position: -20px -1000px;
+}
+.emj349 {
+ background-position: -40px -1000px;
+}
+.emj350 {
+ background-position: -60px -1000px;
+}
+.emj351 {
+ background-position: -80px -1000px;
+}
+.emj352 {
+ background-position: -100px -1000px;
+}
+.emj353 {
+ background-position: -120px -1000px;
+}
+.emj354 {
+ background-position: 0 -1020px;
+}
+.emj355 {
+ background-position: -20px -1020px;
+}
+.emj356 {
+ background-position: -40px -1020px;
+}
+.emj357 {
+ background-position: -60px -1020px;
+}
+.emj358 {
+ background-position: -80px -1020px;
+}
+.emj359 {
+ background-position: -100px -1020px;
+}
+.emj360 {
+ background-position: -120px -1020px;
+}
+.emj361 {
+ background-position: 0 -1040px;
+}
+.emj362 {
+ background-position: -20px -1040px;
+}
+.emj363 {
+ background-position: -40px -1040px;
+}
+.emj364 {
+ background-position: -60px -1040px;
+}
+.emj365 {
+ background-position: -80px -1040px;
+}
+.emj366 {
+ background-position: -100px -1040px;
+}
+.emj367 {
+ background-position: -120px -1040px;
+}
+.emj368 {
+ background-position: 0 -1060px;
+}
+.emj369 {
+ background-position: -20px -1060px;
+}
+.emj370 {
+ background-position: -40px -1060px;
+}
+.emj371 {
+ background-position: -60px -1060px;
+}
+.emj372 {
+ background-position: -80px -1060px;
+}
+.emj373 {
+ background-position: -100px -1060px;
+}
+.emj374 {
+ background-position: -120px -1060px;
+}
+.emj375 {
+ background-position: 0 -1080px;
+}
+.emj376 {
+ background-position: -20px -1080px;
+}
+.emj377 {
+ background-position: -40px -1080px;
+}
+.emj378 {
+ background-position: -60px -1080px;
+}
+.emj379 {
+ background-position: -80px -1080px;
+}
+.emj380 {
+ background-position: -100px -1080px;
+}
+.emj381 {
+ background-position: -120px -1080px;
+}
+.emj382 {
+ background-position: 0 -1100px;
+}
+.emj383 {
+ background-position: -20px -1100px;
+}
+.emj384 {
+ background-position: -40px -1100px;
+}
+.emj385 {
+ background-position: -60px -1100px;
+}
+.emj386 {
+ background-position: -80px -1100px;
+}
+.emj387 {
+ background-position: -100px -1100px;
+}
+.emj388 {
+ background-position: -120px -1100px;
+}
+.emj389 {
+ background-position: 0 -1120px;
+}
+.emj390 {
+ background-position: -20px -1120px;
+}
+.emj391 {
+ background-position: -40px -1120px;
+}
+.emj392 {
+ background-position: -60px -1120px;
+}
+.emj393 {
+ background-position: -80px -1120px;
+}
+.emj394 {
+ background-position: -100px -1120px;
+}
+.emj395 {
+ background-position: -120px -1120px;
+}
+.emj396 {
+ background-position: 0 -1140px;
+}
+.emj397 {
+ background-position: -20px -1140px;
+}
+.emj398 {
+ background-position: -40px -1140px;
+}
+.emj399 {
+ background-position: -60px -1140px;
+}
+.emj400 {
+ background-position: -80px -1140px;
+}
+.emj401 {
+ background-position: -100px -1140px;
+}
+.emj402 {
+ background-position: -120px -1140px;
+}
+.emj403 {
+ background-position: 0 -1160px;
+}
+.emj404 {
+ background-position: -20px -1160px;
+}
+.emj405 {
+ background-position: -40px -1160px;
+}
+.emj406 {
+ background-position: -60px -1160px;
+}
+.emj407 {
+ background-position: -80px -1160px;
+}
+.emj408 {
+ background-position: -100px -1160px;
+}
+.emj409 {
+ background-position: -120px -1160px;
+}
+.emj410 {
+ background-position: 0 -1180px;
+}
+.emj411 {
+ background-position: -20px -1180px;
+}
+.emj412 {
+ background-position: -40px -1180px;
+}
+.emj413 {
+ background-position: -60px -1180px;
+}
+.emj414 {
+ background-position: -80px -1180px;
+}
+.emj415 {
+ background-position: -100px -1180px;
+}
+.emj416 {
+ background-position: -120px -1180px;
+}
+.emj417 {
+ background-position: 0 -1200px;
+}
+.emj418 {
+ background-position: -20px -1200px;
+}
+.emj419 {
+ background-position: -40px -1200px;
+}
+.emj420 {
+ background-position: -60px -1200px;
+}
+.emj421 {
+ background-position: -80px -1200px;
+}
+.emj422 {
+ background-position: -100px -1200px;
+}
+.emj423 {
+ background-position: -120px -1200px;
+}
+.emj424 {
+ background-position: 0 -1220px;
+}
+.emj425 {
+ background-position: -20px -1220px;
+}
+.emj426 {
+ background-position: -40px -1220px;
+}
+.emj427 {
+ background-position: -60px -1220px;
+}
+.emj428 {
+ background-position: -80px -1220px;
+}
+.emj429 {
+ background-position: -100px -1220px;
+}
+.emj430 {
+ background-position: -120px -1220px;
+}
+.emj431 {
+ background-position: 0 -1240px;
+}
+.emj432 {
+ background-position: -20px -1240px;
+}
+.emj433 {
+ background-position: -40px -1240px;
+}
+.emj434 {
+ background-position: -60px -1240px;
+}
+.emj435 {
+ background-position: -80px -1240px;
+}
+.emj436 {
+ background-position: -100px -1240px;
+}
+.emj437 {
+ background-position: -120px -1240px;
+}
+.emj438 {
+ background-position: 0 -1260px;
+}
+.emj439 {
+ background-position: -20px -1260px;
+}
+.emj440 {
+ background-position: -40px -1260px;
+}
+.emj441 {
+ background-position: -60px -1260px;
+}
+.emj442 {
+ background-position: -80px -1260px;
+}
+.emj443 {
+ background-position: -100px -1260px;
+}
+.emj444 {
+ background-position: -120px -1260px;
+}
+.emj445 {
+ background-position: 0 -1280px;
+}
+.emj446 {
+ background-position: -20px -1280px;
+}
+.emj447 {
+ background-position: -40px -1280px;
+}
+.emj448 {
+ background-position: -60px -1280px;
+}
+.emj449 {
+ background-position: -80px -1280px;
+}
+.emj450 {
+ background-position: -100px -1280px;
+}
+.emj451 {
+ background-position: -120px -1280px;
+}
+.emj452 {
+ background-position: 0 -1300px;
+}
+.emj453 {
+ background-position: -20px -1300px;
+}
+.emj454 {
+ background-position: -40px -1300px;
+}
+.emj455 {
+ background-position: -60px -1300px;
+}
+.emj456 {
+ background-position: -80px -1300px;
+}
+.emj457 {
+ background-position: -100px -1300px;
+}
+.emj458 {
+ background-position: -120px -1300px;
+}
+.emj459 {
+ background-position: 0 -1320px;
+}
+.emj460 {
+ background-position: -20px -1320px;
+}
+.emj461 {
+ background-position: -40px -1320px;
+}
+.emj462 {
+ background-position: -60px -1320px;
+}
+.emj463 {
+ background-position: -80px -1320px;
+}
+.emj464 {
+ background-position: -100px -1320px;
+}
+.emj465 {
+ background-position: -120px -1320px;
+}
+.emj466 {
+ background-position: 0 -1340px;
+}
+.emj467 {
+ background-position: -20px -1340px;
+}
+.emj468 {
+ background-position: -40px -1340px;
+}
+.emj469 {
+ background-position: -60px -1340px;
+}
+.emj470 {
+ background-position: -80px -1340px;
+}
+.emj471 {
+ background-position: -100px -1340px;
+}
+.emj472 {
+ background-position: -120px -1340px;
+}
+.emj473 {
+ background-position: 0 -1360px;
+}
+.emj474 {
+ background-position: -20px -1360px;
+}
+.emj475 {
+ background-position: -40px -1360px;
+}
+.emj476 {
+ background-position: -60px -1360px;
+}
+.emj477 {
+ background-position: -80px -1360px;
+}
+.emj478 {
+ background-position: -100px -1360px;
+}
+.emj479 {
+ background-position: -120px -1360px;
+}
+.emj480 {
+ background-position: 0 -1380px;
+}
+.emj481 {
+ background-position: -20px -1380px;
+}
+.emj482 {
+ background-position: -40px -1380px;
+}
+.emj483 {
+ background-position: -60px -1380px;
+}
+.emj484 {
+ background-position: -80px -1380px;
+}
+.emj485 {
+ background-position: -100px -1380px;
+}
+.emj486 {
+ background-position: -120px -1380px;
+}
+.emj487 {
+ background-position: 0 -1400px;
+}
+.emj488 {
+ background-position: -20px -1400px;
+}
+.emj489 {
+ background-position: -40px -1400px;
+}
+.emj490 {
+ background-position: -60px -1400px;
+}
+.emj491 {
+ background-position: -80px -1400px;
+}
+.emj492 {
+ background-position: -100px -1400px;
+}
+.emj493 {
+ background-position: -120px -1400px;
+}
+.emj494 {
+ background-position: 0 -1420px;
+}
+.emj495 {
+ background-position: -20px -1420px;
+}
+.emj496 {
+ background-position: -40px -1420px;
+}
+.emj497 {
+ background-position: -60px -1420px;
+}
+.emj498 {
+ background-position: -80px -1420px;
+}
+.emj499 {
+ background-position: -100px -1420px;
+}
+.emj500 {
+ background-position: -120px -1420px;
+}
+.emj501 {
+ background-position: 0 -1440px;
+}
+.emj502 {
+ background-position: -20px -1440px;
+}
+.emj503 {
+ background-position: -40px -1440px;
+}
+.emj504 {
+ background-position: -60px -1440px;
+}
+.emj505 {
+ background-position: -80px -1440px;
+}
+.emj506 {
+ background-position: -100px -1440px;
+}
+.emj507 {
+ background-position: -120px -1440px;
+}
+.emj508 {
+ background-position: 0 -1460px;
+}
+.emj509 {
+ background-position: -20px -1460px;
+}
+.emj510 {
+ background-position: -40px -1460px;
+}
+.emj511 {
+ background-position: -60px -1460px;
+}
+.emj512 {
+ background-position: -80px -1460px;
+}
+.emj513 {
+ background-position: -100px -1460px;
+}
+.emj514 {
+ background-position: -120px -1460px;
+}
+.emj515 {
+ background-position: 0 -1480px;
+}
+.emj516 {
+ background-position: -20px -1480px;
+}
+.emj517 {
+ background-position: -40px -1480px;
+}
+.emj518 {
+ background-position: -60px -1480px;
+}
+.emj519 {
+ background-position: -80px -1480px;
+}
+.emj520 {
+ background-position: -100px -1480px;
+}
+.emj521 {
+ background-position: -120px -1480px;
+}
+.emj522 {
+ background-position: 0 -1500px;
+}
+.emj523 {
+ background-position: -20px -1500px;
+}
+.emj524 {
+ background-position: -40px -1500px;
+}
+.emj525 {
+ background-position: -60px -1500px;
+}
+.emj526 {
+ background-position: -80px -1500px;
+}
+.emj527 {
+ background-position: -100px -1500px;
+}
+.emj528 {
+ background-position: -120px -1500px;
+}
+.emj529 {
+ background-position: 0 -1520px;
+}
+.emj530 {
+ background-position: -20px -1520px;
+}
+.emj531 {
+ background-position: -40px -1520px;
+}
+.emj532 {
+ background-position: -60px -1520px;
+}
+.emj533 {
+ background-position: -80px -1520px;
+}
+.emj534 {
+ background-position: -100px -1520px;
+}
+.emj535 {
+ background-position: 0 -1540px;
+}
+.emj536 {
+ background-position: -20px -1540px;
+}
+.emj537 {
+ background-position: -40px -1540px;
+}
+.emj538 {
+ background-position: -60px -1540px;
+}
+.emj539 {
+ background-position: -80px -1540px;
+}
+.emj540 {
+ background-position: -100px -1540px;
+}
+.emj541 {
+ background-position: -120px -1540px;
+}
+.emj542 {
+ background-position: 0 -1560px;
+}
+.emj543 {
+ background-position: -20px -1560px;
+}
+.emj544 {
+ background-position: -40px -1560px;
+}
+.emj545 {
+ background-position: -60px -1560px;
+}
+.emj546 {
+ background-position: -80px -1560px;
+}
+.emj547 {
+ background-position: -100px -1560px;
+}
+.emj548 {
+ background-position: -120px -1560px;
+}
+.emj549 {
+ background-position: 0 -1580px;
+}
+.emj550 {
+ background-position: -20px -1580px;
+}
+.emj551 {
+ background-position: -40px -1580px;
+}
+.emj552 {
+ background-position: -60px -1580px;
+}
+.emj553 {
+ background-position: -80px -1580px;
+}
+.emj554 {
+ background-position: -100px -1580px;
+}
+.emj555 {
+ background-position: -120px -1580px;
+}
+.emj556 {
+ background-position: 0 -1600px;
+}
+.emj557 {
+ background-position: -20px -1600px;
+}
+.emj558 {
+ background-position: -40px -1600px;
+}
+.emj559 {
+ background-position: -60px -1600px;
+}
+.emj560 {
+ background-position: -80px -1600px;
+}
+.emj561 {
+ background-position: -100px -1600px;
+}
+.emj562 {
+ background-position: -120px -1600px;
+}
+.emj563 {
+ background-position: 0 -1620px;
+}
+.emj564 {
+ background-position: -20px -1620px;
+}
+.emj565 {
+ background-position: -40px -1620px;
+}
+.emj566 {
+ background-position: -60px -1620px;
+}
+.emj567 {
+ background-position: -80px -1620px;
+}
+.emj568 {
+ background-position: -100px -1620px;
+}
+.emj569 {
+ background-position: -120px -1620px;
+}
+.emj570 {
+ background-position: 0 -1640px;
+}
+.emj571 {
+ background-position: -20px -1640px;
+}
+.emj572 {
+ background-position: -40px -1640px;
+}
+.emj573 {
+ background-position: -60px -1640px;
+}
+.emj574 {
+ background-position: -80px -1640px;
+}
+.emj575 {
+ background-position: -100px -1640px;
+}
+.emj576 {
+ background-position: -120px -1640px;
+}
+.emj577 {
+ background-position: 0 -1660px;
+}
+.emj578 {
+ background-position: -20px -1660px;
+}
+.emj579 {
+ background-position: -40px -1660px;
+}
+.emj580 {
+ background-position: -60px -1660px;
+}
+.emj581 {
+ background-position: -80px -1660px;
+}
+.emj582 {
+ background-position: -100px -1660px;
+}
+.emj583 {
+ background-position: -120px -1660px;
+}
+.emj584 {
+ background-position: 0 -1680px;
+}
+.emj585 {
+ background-position: -20px -1680px;
+}
+.emj586 {
+ background-position: -40px -1680px;
+}
+.emj587 {
+ background-position: -60px -1680px;
+}
+.emj588 {
+ background-position: -80px -1680px;
+}
+.emj589 {
+ background-position: -100px -1680px;
+}
+.emj590 {
+ background-position: -120px -1680px;
+}
+.emj591 {
+ background-position: 0 -1700px;
+}
+.emj592 {
+ background-position: -20px -1700px;
+}
+.emj593 {
+ background-position: -40px -1700px;
+}
+.emj594 {
+ background-position: -60px -1700px;
+}
+.emj595 {
+ background-position: -80px -1700px;
+}
+.emj596 {
+ background-position: -100px -1700px;
+}
+.emj597 {
+ background-position: -120px -1700px;
+}
+.emj598 {
+ background-position: 0 -1720px;
+}
+.emj599 {
+ background-position: -20px -1720px;
+}
+.emj600 {
+ background-position: -40px -1720px;
+}
+.emj601 {
+ background-position: -60px -1720px;
+}
+.emj602 {
+ background-position: -80px -1720px;
+}
+.emj603 {
+ background-position: -100px -1720px;
+}
+.emj604 {
+ background-position: -120px -1720px;
+}
+.emj605 {
+ background-position: 0 -1740px;
+}
+.emj606 {
+ background-position: -20px -1740px;
+}
+.emj607 {
+ background-position: -40px -1740px;
+}
+.emj608 {
+ background-position: -60px -1740px;
+}
+.emj609 {
+ background-position: -80px -1740px;
+}
+.emj610 {
+ background-position: -100px -1740px;
+}
+.emj611 {
+ background-position: -120px -1740px;
+}
+.emj612 {
+ background-position: 0 -1760px;
+}
+.emj613 {
+ background-position: -20px -1760px;
+}
+.emj614 {
+ background-position: -40px -1760px;
+}
+.emj615 {
+ background-position: -60px -1760px;
+}
+.emj616 {
+ background-position: -80px -1760px;
+}
+.emj617 {
+ background-position: -100px -1760px;
+}
+.emj618 {
+ background-position: -120px -1760px;
+}
+.emj619 {
+ background-position: 0 -1780px;
+}
+.emj620 {
+ background-position: -20px -1780px;
+}
+.emj621 {
+ background-position: -40px -1780px;
+}
+.emj622 {
+ background-position: -60px -1780px;
+}
+.emj623 {
+ background-position: -80px -1780px;
+}
+.emj624 {
+ background-position: -100px -1780px;
+}
+.emj625 {
+ background-position: -120px -1780px;
+}
+.emj626 {
+ background-position: 0 -1800px;
+}
+.emj627 {
+ background-position: -20px -1800px;
+}
+.emj628 {
+ background-position: -40px -1800px;
+}
+.emj629 {
+ background-position: -60px -1800px;
+}
+.emj630 {
+ background-position: -80px -1800px;
+}
+.emj631 {
+ background-position: -100px -1800px;
+}
+.emj632 {
+ background-position: -120px -1800px;
+}
+.emj633 {
+ background-position: 0 -1820px;
+}
+.emj634 {
+ background-position: -20px -1820px;
+}
+.emj635 {
+ background-position: -40px -1820px;
+}
+.emj636 {
+ background-position: 0 -1840px;
+}
+.emj637 {
+ background-position: -20px -1840px;
+}
+.emj638 {
+ background-position: -40px -1840px;
+}
+.emj639 {
+ background-position: -60px -1840px;
+}
+.emj640 {
+ background-position: -80px -1840px;
+}
+.emj641 {
+ background-position: -100px -1840px;
+}
+.emj642 {
+ background-position: -120px -1840px;
+}
+.emj643 {
+ background-position: 0 -1860px;
+}
+.emj644 {
+ background-position: -20px -1860px;
+}
+.emj645 {
+ background-position: -40px -1860px;
+}
+.emj646 {
+ background-position: -60px -1860px;
+}
+.emj647 {
+ background-position: -80px -1860px;
+}
+.emj648 {
+ background-position: -100px -1860px;
+}
+.emj649 {
+ background-position: -120px -1860px;
+}
+.emj650 {
+ background-position: 0 -1880px;
+}
+.emj651 {
+ background-position: -20px -1880px;
+}
+.emj652 {
+ background-position: -40px -1880px;
+}
+.emj653 {
+ background-position: -60px -1880px;
+}
+.emj654 {
+ background-position: -80px -1880px;
+}
+.emj655 {
+ background-position: -100px -1880px;
+}
+.emj656 {
+ background-position: -120px -1880px;
+}
+.emj657 {
+ background-position: 0 -1900px;
+}
+.emj658 {
+ background-position: -20px -1900px;
+}
+.emj659 {
+ background-position: -40px -1900px;
+}
+.emj660 {
+ background-position: -60px -1900px;
+}
+.emj661 {
+ background-position: -80px -1900px;
+}
+.emj662 {
+ background-position: -100px -1900px;
+}
+.emj663 {
+ background-position: -120px -1900px;
+}
+.emj664 {
+ background-position: 0 -1920px;
+}
+.emj665 {
+ background-position: -20px -1920px;
+}
+.emj666 {
+ background-position: -40px -1920px;
+}
+.emj667 {
+ background-position: -60px -1920px;
+}
+.emj668 {
+ background-position: -80px -1920px;
+}
+.emj669 {
+ background-position: -100px -1920px;
+}
+.emj670 {
+ background-position: -120px -1920px;
+}
+.emj671 {
+ background-position: 0 -1940px;
+}
+.emj672 {
+ background-position: -20px -1940px;
+}
+.emj673 {
+ background-position: -40px -1940px;
+}
+.emj674 {
+ background-position: -60px -1940px;
+}
+.emj675 {
+ background-position: -80px -1940px;
+}
+.emj676 {
+ background-position: -100px -1940px;
+}
+.emj677 {
+ background-position: -120px -1940px;
+}
+.emj678 {
+ background-position: 0 -1960px;
+}
+.emj679 {
+ background-position: -20px -1960px;
+}
+.emj680 {
+ background-position: -40px -1960px;
+}
+.emj681 {
+ background-position: -60px -1960px;
+}
+.emj682 {
+ background-position: -80px -1960px;
+}
+.emj683 {
+ background-position: -100px -1960px;
+}
+.emj684 {
+ background-position: -120px -1960px;
+}
+.emj685 {
+ background-position: 0 -1980px;
+}
+.emj686 {
+ background-position: -20px -1980px;
+}
+.emj687 {
+ background-position: -40px -1980px;
+}
+.emj688 {
+ background-position: -60px -1980px;
+}
+.emj689 {
+ background-position: -80px -1980px;
+}
+.emj690 {
+ background-position: -100px -1980px;
+}
+.emj691 {
+ background-position: -120px -1980px;
+}
+.emj692 {
+ background-position: 0 -2000px;
+}
+.emj693 {
+ background-position: -20px -2000px;
+}
+.emj694 {
+ background-position: -40px -2000px;
+}
+.emj695 {
+ background-position: -60px -2000px;
+}
+.emj696 {
+ background-position: -80px -2000px;
+}
+.emj697 {
+ background-position: -100px -2000px;
+}
+.emj698 {
+ background-position: -120px -2000px;
+}
+.emj699 {
+ background-position: 0 -2020px;
+}
+.emj700 {
+ background-position: -20px -2020px;
+}
+.emj701 {
+ background-position: -40px -2020px;
+}
+.emj702 {
+ background-position: -60px -2020px;
+}
+.emj703 {
+ background-position: -80px -2020px;
+}
+.emj704 {
+ background-position: -100px -2020px;
+}
+.emj705 {
+ background-position: -120px -2020px;
+}
+.emj706 {
+ background-position: 0 -2040px;
+}
+.emj707 {
+ background-position: -20px -2040px;
+}
+.emj708 {
+ background-position: -40px -2040px;
+}
+.emj709 {
+ background-position: -60px -2040px;
+}
+.emj710 {
+ background-position: -80px -2040px;
+}
+.emj711 {
+ background-position: -100px -2040px;
+}
+.emj712 {
+ background-position: -120px -2040px;
+}
+.emj713 {
+ background-position: 0 -2060px;
+}
+.emj714 {
+ background-position: -20px -2060px;
+}
+.emj715 {
+ background-position: -40px -2060px;
+}
+.emj716 {
+ background-position: -60px -2060px;
+}
+.emj717 {
+ background-position: -80px -2060px;
+}
+.emj718 {
+ background-position: -100px -2060px;
+}
+.emj719 {
+ background-position: -120px -2060px;
+}
+.emj720 {
+ background-position: 0 -2080px;
+}
+.emj721 {
+ background-position: -20px -2080px;
+}
+.emj722 {
+ background-position: -40px -2080px;
+}
+.emj723 {
+ background-position: -60px -2080px;
+}
+.emj724 {
+ background-position: -80px -2080px;
+}
+.emj725 {
+ background-position: -100px -2080px;
+}
+.emj726 {
+ background-position: -120px -2080px;
+}
+.emj727 {
+ background-position: 0 -2100px;
+}
+.emj728 {
+ background-position: -20px -2100px;
+}
+.emj729 {
+ background-position: -40px -2100px;
+}
+.emj730 {
+ background-position: -60px -2100px;
+}
+.emj731 {
+ background-position: -80px -2100px;
+}
+.emj732 {
+ background-position: -100px -2100px;
+}
+.emj733 {
+ background-position: -120px -2100px;
+}
+.emj734 {
+ background-position: 0 -2120px;
+}
+.emj735 {
+ background-position: -20px -2120px;
+}
+.emj736 {
+ background-position: -40px -2120px;
+}
+.emj737 {
+ background-position: -60px -2120px;
+}
+.emj738 {
+ background-position: -80px -2120px;
+}
+.emj739 {
+ background-position: -100px -2120px;
+}
+.emj740 {
+ background-position: -120px -2120px;
+}
+.emj741 {
+ background-position: 0 -2140px;
+}
+.emj742 {
+ background-position: -20px -2140px;
+}
+.emj743 {
+ background-position: -40px -2140px;
+}
+.emj744 {
+ background-position: -60px -2140px;
+}
+.emj745 {
+ background-position: -80px -2140px;
+}
+.emj746 {
+ background-position: -100px -2140px;
+}
+.emj747 {
+ background-position: -120px -2140px;
+}
+.emj748 {
+ background-position: 0 -2160px;
+}
+.emj749 {
+ background-position: -20px -2160px;
+}
+.emj750 {
+ background-position: -40px -2160px;
+}
+.emj751 {
+ background-position: -60px -2160px;
+}
+.emj752 {
+ background-position: -80px -2160px;
+}
+.emj753 {
+ background-position: -100px -2160px;
+}
+.emj754 {
+ background-position: -120px -2160px;
+}
+.emj755 {
+ background-position: 0 -2180px;
+}
+.emj756 {
+ background-position: -20px -2180px;
+}
+.emj757 {
+ background-position: -40px -2180px;
+}
+.emj758 {
+ background-position: -60px -2180px;
+}
+.emj759 {
+ background-position: -80px -2180px;
+}
+.emj760 {
+ background-position: -100px -2180px;
+}
+.emj761 {
+ background-position: -120px -2180px;
+}
+.emj762 {
+ background-position: 0 -2200px;
+}
+.emj763 {
+ background-position: -20px -2200px;
+}
+.emj764 {
+ background-position: -40px -2200px;
+}
+.emj765 {
+ background-position: -60px -2200px;
+}
+.emj766 {
+ background-position: -80px -2200px;
+}
+.emj767 {
+ background-position: -100px -2200px;
+}
+.emj768 {
+ background-position: -120px -2200px;
+}
+.emj769 {
+ background-position: 0 -2220px;
+}
+.emj770 {
+ background-position: -20px -2220px;
+}
+.emj771 {
+ background-position: -40px -2220px;
+}
+.emj772 {
+ background-position: -60px -2220px;
+}
+.emj773 {
+ background-position: -80px -2220px;
+}
+.emj774 {
+ background-position: -100px -2220px;
+}
+.emj775 {
+ background-position: -120px -2220px;
+}
+.emj776 {
+ background-position: 0 -2240px;
+}
+.emj777 {
+ background-position: -20px -2240px;
+}
+.emj778 {
+ background-position: -40px -2240px;
+}
+.emj779 {
+ background-position: -60px -2240px;
+}
+.emj780 {
+ background-position: -80px -2240px;
+}
+.emj781 {
+ background-position: -100px -2240px;
+}
+.emj782 {
+ background-position: -120px -2240px;
+}
+.emj783 {
+ background-position: 0 -2260px;
+}
+.emj784 {
+ background-position: -20px -2260px;
+}
+.emj785 {
+ background-position: -40px -2260px;
+}
+.emj786 {
+ background-position: -60px -2260px;
+}
+.emj787 {
+ background-position: -80px -2260px;
+}
+.emj788 {
+ background-position: -100px -2260px;
+}
+.emj789 {
+ background-position: -120px -2260px;
+}
+.emj790 {
+ background-position: 0 -2280px;
+}
+.emj791 {
+ background-position: -20px -2280px;
+}
+.emj792 {
+ background-position: -40px -2280px;
+}
+.emj793 {
+ background-position: -60px -2280px;
+}
+.emj794 {
+ background-position: -80px -2280px;
+}
+.emj795 {
+ background-position: -100px -2280px;
+}
+.emj796 {
+ background-position: -120px -2280px;
+}
+.emj797 {
+ background-position: 0 -2300px;
+}
+.emj798 {
+ background-position: -20px -2300px;
+}
+.emj799 {
+ background-position: -40px -2300px;
+}
+.emj800 {
+ background-position: -60px -2300px;
+}
+.emj801 {
+ background-position: -80px -2300px;
+}
+.emj802 {
+ background-position: -100px -2300px;
+}
+.emj803 {
+ background-position: -120px -2300px;
+}
+.emj804 {
+ background-position: 0 -2320px;
+}
+.emj805 {
+ background-position: -20px -2320px;
+}
+.emj806 {
+ background-position: -40px -2320px;
+}
+.emj807 {
+ background-position: -60px -2320px;
+}
+.emj808 {
+ background-position: -80px -2320px;
+}
+.emj809 {
+ background-position: -100px -2320px;
+}
+.emj810 {
+ background-position: -120px -2320px;
+}
+.emj811 {
+ background-position: 0 -2340px;
+}
+.emj812 {
+ background-position: -20px -2340px;
+}
+.emj813 {
+ background-position: -40px -2340px;
+}
+.emj814 {
+ background-position: -60px -2340px;
+}
+.emj815 {
+ background-position: -80px -2340px;
+}
+.emj816 {
+ background-position: -100px -2340px;
+}
+.emj817 {
+ background-position: -120px -2340px;
+}
+.emj818 {
+ background-position: 0 -2360px;
+}
+.emj819 {
+ background-position: -20px -2360px;
+}
+.emj820 {
+ background-position: -40px -2360px;
+}
+.emj821 {
+ background-position: -60px -2360px;
+}
+.emj822 {
+ background-position: -80px -2360px;
+}
+.emj823 {
+ background-position: -100px -2360px;
+}
+.emj824 {
+ background-position: -120px -2360px;
+}
+.emj825 {
+ background-position: 0 -2380px;
+}
+.emj826 {
+ background-position: -20px -2380px;
+}
+.emj827 {
+ background-position: -40px -2380px;
+}
+.emj828 {
+ background-position: -60px -2380px;
+}
+.emj829 {
+ background-position: -80px -2380px;
+}
+.emj830 {
+ background-position: -100px -2380px;
+}
+.emj831 {
+ background-position: -120px -2380px;
+}
+.emj832 {
+ background-position: 0 -2400px;
+}
+.emj833 {
+ background-position: -20px -2400px;
+}
+.emj834 {
+ background-position: -40px -2400px;
+}
+.emj835 {
+ background-position: -60px -2400px;
+}
+.emj836 {
+ background-position: -80px -2400px;
+}
+.emj837 {
+ background-position: -100px -2400px;
+}
+.emj838 {
+ background-position: -120px -2400px;
+}
+.emj839 {
+ background-position: 0 -2420px;
+}
+.emj840 {
+ background-position: -20px -2420px;
+}
+.emj841 {
+ background-position: -40px -2420px;
+}
+.emj842 {
+ background-position: -60px -2420px;
+}
+.emj843 {
+ background-position: -80px -2420px;
+}
+.emj844 {
+ background-position: -100px -2420px;
+}
diff --git a/css/lite-yt-embed.css b/css/lite-yt-embed.css
new file mode 100644
index 0000000000000..644710ede9cc7
--- /dev/null
+++ b/css/lite-yt-embed.css
@@ -0,0 +1,96 @@
+lite-youtube {
+ background-color: #000;
+ position: relative;
+ display: block;
+ contain: content;
+ background-position: center center;
+ background-size: cover;
+ cursor: pointer;
+ max-width: 720px;
+}
+
+/* gradient */
+lite-youtube::before {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);
+ background-position: top;
+ background-repeat: repeat-x;
+ height: 60px;
+ padding-bottom: 50px;
+ width: 100%;
+ transition: all 0.2s cubic-bezier(0, 0, 0.2, 1);
+}
+
+/* responsive iframe with a 16:9 aspect ratio
+ thanks https://css-tricks.com/responsive-iframes/
+*/
+lite-youtube::after {
+ content: "";
+ display: block;
+ padding-bottom: calc(100% / (16 / 9));
+}
+lite-youtube > iframe {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ border: 0;
+}
+
+/* play button */
+lite-youtube > .lty-playbtn {
+ display: block;
+ /* Make the button element cover the whole area for a large hover/click target… */
+ width: 100%;
+ height: 100%;
+ /* …but visually it's still the same size */
+ background: no-repeat center/68px 48px;
+ /* YT's actual play button svg */
+ background-image: url('data:image/svg+xml;utf8, ');
+ position: absolute;
+ cursor: pointer;
+ z-index: 1;
+ filter: grayscale(100%);
+ transition: filter .1s cubic-bezier(0, 0, 0.2, 1);
+ border: 0;
+}
+
+lite-youtube:hover > .lty-playbtn,
+lite-youtube .lty-playbtn:focus {
+ filter: none;
+}
+
+/* Post-click styles */
+lite-youtube.lyt-activated {
+ cursor: unset;
+}
+lite-youtube.lyt-activated::before,
+lite-youtube.lyt-activated > .lty-playbtn {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.lyt-visually-hidden {
+ clip: rect(0 0 0 0);
+ clip-path: inset(50%);
+ height: 1px;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ width: 1px;
+ }
+
+ @media (min-width: 1024px) { /* Adjusts for screens wider than 1024px */
+ lite-youtube {
+ max-width: 720px; /* Maximum width for desktop */
+ /* Define height explicitly if necessary, for example: */
+ height: auto; /* Adjusts height automatically based on the aspect ratio */
+ }
+ lite-youtube::after {
+ padding-bottom: calc(100% / (16 / 9)); /* Maintains a 16:9 aspect ratio */
+ }
+ }
diff --git a/css/mapStyle.css b/css/mapStyle.css
new file mode 100644
index 0000000000000..30e95a3419dd9
--- /dev/null
+++ b/css/mapStyle.css
@@ -0,0 +1,35 @@
+ body, html {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ }
+
+ .container {
+ display: flex;
+ height: 100vh;
+ }
+
+ .map, .content {
+ flex: 1;
+ border: 1px solid black;
+ }
+
+ .map {
+ /* Style for your map */
+ }
+
+ .content {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .video {
+ /* Style for your video */
+ flex: 1;
+ border-bottom: 1px solid black;
+ }
+
+ .text {
+ /* Style for your text */
+ flex: 1;
+ }
diff --git a/css/style2021.css b/css/style2021.css
new file mode 100644
index 0000000000000..cc78fd763f3ad
--- /dev/null
+++ b/css/style2021.css
@@ -0,0 +1,44 @@
+
diff --git a/css/styleI.css b/css/styleI.css
new file mode 100644
index 0000000000000..700a6fa5ce4b2
--- /dev/null
+++ b/css/styleI.css
@@ -0,0 +1,113 @@
+
diff --git a/css/styles.css b/css/styles.css
new file mode 100644
index 0000000000000..14dbe6fe915f5
--- /dev/null
+++ b/css/styles.css
@@ -0,0 +1,59 @@
+
diff --git a/data/Avanzada-Golf.json b/data/Avanzada-Golf.json
new file mode 100644
index 0000000000000..cfea1c8dc1641
--- /dev/null
+++ b/data/Avanzada-Golf.json
@@ -0,0 +1,35 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Avanzada Golf & Ranch Club",
+ "text": " Avanzada Golf & Ranch Club is a private golf club in Aledo, Texas just west of Fort Worth. The golf course is designed by golf course architect Jim Lipe, ASGCA and JJ Henry from the PGA Tour . The course is an 18 hole championship golf course with rolling topography. Henry expressed excitement about designing a golf course in Bear Creek, highlighting the area's unique features like 50-foot wide spots, limestone cliffs, and hardwoods. The course will take advantage of a 200-foot elevation change and offer panoramic Texas views from the adjacent residential housing on the ridgelines above on higher ground.
The residential community at Avanzada Golf & Ranch Club are designed to blend in with the natural surroundings and offer views of the golf course and surrounding countryside. The club has a variety of family amenities, namely a pool, tennis courts, and a playground.
Jim Lipe was a senior design associate with Nicklaus Design for many years overseeing onsite design build decisions and execution at many courses - prominent examples include Cabo del Sol, Castle Pines, Cochise Course at Desert Mountain, Mayacama, May River at Palmetto Bluff, Punta Mita, Sebonack, Southern Trace.
"
+ },
+ "location": {
+ "lat": 32.7771101,
+ "lon": -97.7648794,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://vimeo.com/853342973",
+ "credit": "Matrix"
+ }
+ },{
+ "text": {
+ "headline": "Construction of a New Golf Course",
+ "text": "Construction of the new golf course at Avanzada Golf & Ranch Club is being built by Texas company Matrix . Matrix is hired to follow Jim Lipe's design plans and work with Lipe and JJ Henry onsite in the field.
"
+ },
+ "location": {
+ "lat": 32.7771101,
+ "lon": -97.7648794,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=1AmTlrnGDQ4",
+ "credit": "Avanzada Golf"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Boca-National.json b/data/Boca-National.json
new file mode 100644
index 0000000000000..23dacf4592cec
--- /dev/null
+++ b/data/Boca-National.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "New Start",
+ "text": "The proposed but stalled Boca National Golf Course was a project that was planned to be built on the site of the former Ocean Breeze Golf Course in Boca Raton, South Florida. The new course was to be designed by Nick Price, a former professional golfer who is considered to be one of the greatest golfers of all time and respected figure in the golf world.
The course was originally scheduled to open in 2020, but it was delayed due to a number of factors, including the COVID-19 pandemic and the rising cost of construction. The proposed Boca National Golf Course would have been a 18-hole championship course for public play. The course would have been designed to be challenging for both experienced and beginner golfers. The course would have also featured a number of amenities, including a clubhouse, a pro shop, and a practice facility.
Greater Boca Raton Beach and Park District (GBPD) closed the Ocean Breeze Golf Course on the site due to operational inefficiency. The GBPD has been working on plans to develop the property, and in November 2022, the City Council informally agreed to support the district's conceptual plans. However, the council has not asked for any changes to the plans - As of 2023, it is unclear what the future holds for the former Ocean Breeze golf course property. As of 2023, the GBPD was still working on revised plans with City Council saying that it will be supportive of the district's efforts.
"
+ },
+ "location": {
+ "lat": 26.5358971,
+ "lon": -80.126489,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=Y9pBX139JXM",
+ "credit": "WPTV News - FL Palm Beaches and Treasure Coast"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Chicago-Jackson-Park-Golf.json b/data/Chicago-Jackson-Park-Golf.json
new file mode 100644
index 0000000000000..60e22ea5316b0
--- /dev/null
+++ b/data/Chicago-Jackson-Park-Golf.json
@@ -0,0 +1,20 @@
+{
+ "storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Golf in South Side Chicago Led by Tiger Woods",
+ "text": "The most recent update on the Tiger Woods golf renovation project in Chicago is that it is still in the planning stages to merge the Jackson Park and South Shore golf courses . Both courses were designed by Tom Bendelow who designed notable Chicago golf courses Beverly, Medinah, Olympia Fields, Van Cortlandt. The proposal would merge the Jackson Park and South Shore golf courses into a single 18-hole championship course designed by Woods.
In January 2023, the Chicago Park District announced that it had hired a consultant to help with a feasibility study. The project was estimated to cost $30 million.
In 2025, golf architect David Esler in conjunction with Vintage Golf Construction completed driving range and practice greens renovation updates for the benefit of The First Tee. Troon's Indigo Sports is the management company operator of CDGA's Jackson ark/South Shore Golf Courses.
"
+ },
+ "location": {
+ "lat": 41.7792651,
+ "lon": -87.5831064,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=m2trMM5ly5Q"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Cox-Bazar-Golf.json b/data/Cox-Bazar-Golf.json
new file mode 100644
index 0000000000000..c14c82276076e
--- /dev/null
+++ b/data/Cox-Bazar-Golf.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Cricket Replaces Golf",
+ "text": "Cox Bazar had 9 holes in play with the back nine in planning as of 2019. The property is in southeastern Bangladesh. The golf course was designed by Paul Jansen . Jansen has been a longtime design associate for Nick Faldo Deisgn. Turfgrass choice was paspalum.
Cricket has replaced the golf course as the grounds have been leased out to construction of a new stadium.
Paspalum is a preferred grass used on golf courses in warmer climates that is tolerant to salty or brackish water. Once established, cultivars of paspalum can withstand water containing high levels of salt, including greywater treatment facilities. While it is not recommended to irrigate with seawater, a few golf courses are forced to use brackish water for the golf course. Paspalum allows the construction of golf courses in places where fresh water may not be available. Courses in South Asia have been a successful location for this grass in the last decade.
Paspalum has a strong, dense canopy with exceptional durability allowing high foot traffic and cart traffic on the golf course. Paspalum also does well in shade/reduced light conditions in soils ranging in pH from 3.6 to 10.2. The grass also performs well in waterlogged soils and with fewer applications of nitrogen fertilizer . Recent cultivars of seashore paspalum on golf courses since the mid 1990's include ‘SeaIsle 1’, ‘SeaIsle 2000’, ‘SeaDwarf’, ‘Salam’, ‘SeaIsle Supreme’, ‘Platinum TE’, and ‘Sea Star’.
"
+ },
+ "location": {
+ "lat": 21.3737396,
+ "lon": 92.076743,
+ "zoom": 4
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=0scCZur0bnU",
+ "credit": "Golf Bangladesh"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Croatia-Cres-Matalda-Golf-Resort.json b/data/Croatia-Cres-Matalda-Golf-Resort.json
new file mode 100644
index 0000000000000..fd1507e789270
--- /dev/null
+++ b/data/Croatia-Cres-Matalda-Golf-Resort.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Tournament Golf",
+ "text": "Croatian island Cres will have the Matalda golf resort project to be designed by Ernie Els. Ernie Els is a PGA Tour player from South African who won four major championships. The course is set in a beautiful natural setting, with views of the Adriatic Sea and the surrounding mountains.
The project permitting project started in 2014. In December 2018, the Primorje-Gorski Kotar County Assembly accepted targeted changes to the spatial plan. Developer Jadranka d.d. intends to invest around 100 million euro in this golf course project. The Kvarner Gulf is home to several islands including some of the best beaches in Croatia. Resort plans were created in 2019 from ARTA PROJEKTIRANJE , a design firm founded in 1994 by renowned architect Amira Čaušević.
Delays in the project have come from community voicing concern of environmentally sensitive areas(ESA). The start of construction for the Els golf course has been delayed due to this dispute.
"
+ },
+ "location": {
+ "lat": 44.888795,
+ "lon": 14.127983,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://vimeo.com/70719298",
+ "credit": "Kiki Westerweel"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Delray-Beach-Golf-Club.json b/data/Delray-Beach-Golf-Club.json
new file mode 100644
index 0000000000000..ba264b7a02c54
--- /dev/null
+++ b/data/Delray-Beach-Golf-Club.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Re-Development",
+ "text": "In August 2022, the municipality hired real estate firm CBRE to review development proposals. 6 proposals for the redevelopment of Delray Beach Golf Club were declined in May 2023. The city council voted unanimously to reject all 6 proposals, citing concerns about environmental impact, loss of public greenspace, and affordable housing. Instead, the municipality is considering renovating the golf course or selling it to a private developer.Developer 1 proposed to build a 27-hole golf course with 18 fairways and a par 69. They would renovate the existing 15,000-square-foot clubhouse. The 15-acre development site would contain 120 multifamily units, including 20% for workforce housing, a 120-room Sports Illustrated Resort, and 63,300 square feet of retail.
Developer 2 proposed a conventional 18-hole par 72 golf course. They would renovate the existing clubhouse and add a 120-room hotel. The 10-acre development site would contain 650 residential units and 8,000 square feet of retail and restaurant space.
Developer 3 proposed to build a conventional par 72 18-hole golf course, updating the clubhouse and adding a 444-unit luxury condominium complex. The 7-acre development site would contain 24 villas.
Developer 4 proposed to build a 27-hole golf course with 18 overlapping fairways like St. Andrews. Additionally, the developer would renovate the existing clubhouse and build a 120-room hotel. The 15-acre development site would contain 120 multifamily units, including 20% for workforce housing and some mixed use compoenent for retail stores.
Developer 5 also proposed a conventional par 72 18-hole golf course with updates to the clubhouse and building a 120-room hotel. The 10-acre development site would contain 650 residential units and 8,000 square feet of retail and restaurant space.
Developer 6 proposed also proposed an 18-hole golf course with 444-unit luxury condominium complex with the 7-acre development site containing 24 additional villas.
"
+ },
+ "location": {
+ "lat": 26.4519612,
+ "lon": -80.099891,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=iBp5IrQkFU8",
+ "credit": "WPBF 25 News in South Florida"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Fox-Resort-Nova-Scotia.json b/data/Fox-Resort-Nova-Scotia.json
new file mode 100644
index 0000000000000..33767a4667950
--- /dev/null
+++ b/data/Fox-Resort-Nova-Scotia.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Golf in Nova Scotia",
+ "text": "Fox Harb'r Resort is expanding its golf course with two new courses: one links-style on the Ocean and one parkland-style in the Vineyards portion of the property. The links-style course will be designed by Thomas McBroom and Doug Carrick. The new course will feature dramatic ocean views using the tumbling terrain with smaller scale pot bunkers to emphasize strategy. Expected opening is spring 2025.
Tiger Woods visited Fox Harb'r Golf Resort in Nova Scotia on behalf of the Tiger Woods Foundation, playing 2 rounds of golf. Tiger shot a course record of 63. Tiger noted highlights of the layout with how quiet and peaceful the environment is.
"
+ },
+ "location": {
+ "lat": 45.859837,
+ "lon": -63.4544468,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://vimeo.com/184057877",
+ "credit": "Bob Huxtable - Fox Harb'r"
+ }
+ }
+ ]
+ }
+}
diff --git "a/data/Golf-La-Temp\303\252te.json" "b/data/Golf-La-Temp\303\252te.json"
new file mode 100644
index 0000000000000..9da95ed9fdad2
--- /dev/null
+++ "b/data/Golf-La-Temp\303\252te.json"
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Golf La Tempête - New Golf Course in Quebec, Canada",
+ "text": "Golf La Tempête added a second 18-hole championship golf course in 2023. The site is located in Lévis, Quebec, Canada. Design of the new course is the heroic school of design with island green and championship golf in mind for future PGA Tour events with spectator gallery viewing as part of the design.
Huxham Golf Design is a golf course architecture company led by Darrell Huxham/Warren Huxham. The firm's home office is in Quebec, Canada having designed courses in Canada, United States, Korea, China, and Mexico. Huxham Golf Design was honored with the Canadian Golf Course of the Year Award and the American Society of Golf Course Architects (ASGCA) Award of Merit.
"
+ },
+ "location": {
+ "lat": 46.6755369,
+ "lon": -71.2176733,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=q9EbMo7OD20",
+ "credit": "Le Soleil, le quotidien de Québec"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Greenbury-Point-Golf.json b/data/Greenbury-Point-Golf.json
new file mode 100644
index 0000000000000..7e047f55a0e3f
--- /dev/null
+++ b/data/Greenbury-Point-Golf.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Jack Nicklaus Design",
+ "text": "New golf course proposed at Greenbury Point Golf in 2023 is a controversial plan to build a second golf course on Greenbury Point, a peninsula owned by the Navy in Annapolis, Maryland. The proposal has been met with opposition from conservationists and the local community who use Greenbury Point for hiking and enjoying the views of the Chesapeake Bay.
Chet Gladchuk, the athletic director of the Naval Academy, wrote a letter to the Secretary of the Navy requesting a formal agreement to build the second 18 hole golf course of 150 acres to be created for the Navy to use at Greenbury Point. The new course would be open to campus midshipmen, U.S. Naval Academy faculty/staff, active and retired military. Membership for civilians was also being offered as possible.
The Navy is considering the proposal. Debate about the future of Greenbury Point has come from conservationists who argue that the course would destroy important wildlife habitat and take away public access to the park/waterfront . Supporters of the proposal argue that the course would provide much-needed recreation space for military personnel and veterans. They also say that the course would be designed to be environmentally friendly, and that it would create jobs in the community.
The future of the Greenbury Point Golf course proposal is uncertain. The Navy is still reviewing the proposal, and it is unclear whether the project will be approved as reported by The Washington Post . If the project is approved, it is likely to face further legal challenges from conservationists. Jack Nicklaus has made a committment to design the course with the budget of $20 million. Estimated operating revenue from the golf course would be $1 million.
As of December 2023, the development looks like it is stalled by Congressional legislation to block the golf course construction from start.
"
+ },
+ "location": {
+ "lat": 38.984199,
+ "lon": -76.4518473,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=wsV6SJZbW4E",
+ "credit": "WMAR-2 News"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Kharghar-Valley-Golf-Course.json b/data/Kharghar-Valley-Golf-Course.json
new file mode 100644
index 0000000000000..9933715f61b38
--- /dev/null
+++ b/data/Kharghar-Valley-Golf-Course.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Championship Golf at Navi Mumbai, India",
+ "text": "Kharghar Valley Golf Course is expanding to 18 holes by City and Industrial Development Corporation (CIDCO) of Maharashtra. Dr. Sanjay Mukherjee led the efforts to expand the mission of the public golf course to international standard for tournament play. The expansion is expected to cost $13 million USD with forecasted completion by December 2023.
An additional 9 holes have been designed by golf course architect Vijit Nandrajog of Golf Design India . The practice driving range will have capacity for 29 hitting bays. Dr. Mukherjee's leadership in stressing envrionmental sustanability is a key component to the site in using treated wastewater(also referred to as greywater) for irrigation over the 157 acres. From the back tees, the golf course will play as long as 7,274 yards. Fairways have been sodded by specialist golf construction firm Continental Fairways. Irrigation Products International(IPI) is tasked with golf course maintenance and operation.
The Kharghar Valley Golf Course initiative will boost tourism in Navi Mumbai by hosting international PGA golf tournaments. Additionally, the site will also be a destination for corporate events and weddings.
The Navi Mumbai area has a tropical climate with a warm humid summer and a cool dry winter. Average temperatures in Navi Mumbai range from 25°C to 35°C with the warmer months touching 40°C. Rainy monsoon season in Navi Mumbai is from June to September with an average of 200 centimeters of rainfall. With the Aivot joint collaboration with the PGA announced in 2023, growth for golf in India is promising.
"
+ },
+ "location": {
+ "lat": 19.0497641,
+ "lon": 73.0603892,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=GXkZl1V4lmk",
+ "credit": "Golf Course Constructions & Maintenance"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Lakewood-Golf-Resort.json b/data/Lakewood-Golf-Resort.json
new file mode 100644
index 0000000000000..5377a117be24f
--- /dev/null
+++ b/data/Lakewood-Golf-Resort.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "18: Additional New 9 Holes",
+ "text": "Lakewood Golf Resort is a public 9 hole golf course located in Sylvan Lake in the province of Alberta, Canada. The facility has a practice range and practice short game area with putting greens. An additional 9 holes is being grassed and growing in currently. Announced opening is in spring 2024.
The resort is located in Alberta's Lake Country at the Sylvan Lake junction of Highway 11A and Highway 20.
"
+ },
+ "location": {
+ "lat": 52.3332137,
+ "lon": -114.0587286,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=BScNfNuvMmc",
+ "credit": "Lakewood Golf Resort"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Landings-Magnolia.json b/data/Landings-Magnolia.json
new file mode 100644
index 0000000000000..32127775a838d
--- /dev/null
+++ b/data/Landings-Magnolia.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "The Landings Magnolia Golf Course Renovation",
+ "text": "The Landings Magnolia Golf Course renovation by Brandon Johnson, ASGCA and John Gardner was a two-phase project that began in 2021. The first phase focused on renovating the bunkers and greens with the aim to improve their playability, aesthetics, and maintenance. The second phase rebuilt tees. Additional updates were to the lake liner, tree removal, native vegetation restoration, and cart path conversion.
The main goals of the renovation to the greens were to improve the drainage and increase the variety of hole locations. The number of bunkers was reduced while still providing strategic hazards. Fairways were widened on a few holes to allow for more shot angle benefits for approach shots. The second phase was completed in spring of 2023.
Brandon Johnson is an indepedent golf course architect who previously worked as a vice president at Arnold Palmer Design Company. He has been involved in the design of over 30 gol courses around the world, including the Landings Magnolia Golf Course renovation. Johnson was born in Charlotte, North Carolina, and grew up playing golf. He attended North Carolina State University, where he earned a Bachelor of Landscape Architecture with a minor in Music. After graduating, he went on to earn a Master of Landscape Architecture from Harvard Graduate School of Design.
John Gardner is a senior associate at Arnold Palmer Design Company. Gardner was with Arnold Palmer Design Company for over 20 years working on golf course projects around the world. Gardner was responsible for the day-to-day implementation of the Landings Magnolia Golf Course renovation by working with the construction team.
"
+ },
+ "location": {
+ "lat": 31.945224,
+ "lon": -81.04894,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=yIgjvbVW87M",
+ "credit": "The Landings Golf & Athletic Club"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Le-Paradis-St-Lucia.json b/data/Le-Paradis-St-Lucia.json
new file mode 100644
index 0000000000000..dcb2f6e287a0e
--- /dev/null
+++ b/data/Le-Paradis-St-Lucia.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "2nd Chance Golf Resort in Caribbean",
+ "text": "The Le Paradis Beach, Golf & Marina Resort was a planned 608-acre multi-phased five-star luxury destination resort on St. Lucia. The project was to be developed in four phases but stalled in 2008 due to the Global Financial Crisis, going into receivership in 2009 with Phase 1 at 52% completion.
Sotheby's has the property for sale at $29,000,000 USD. Renowned golf course architect Greg Norman routed the golf course and started the construction process with only clearance, final shaping and grassing remaining. Island neighbor Point Hardy Golf Club at Cabot St. Lucia has opened as one the best 100 golf courses in the world as recognized by US Golf Magazine.
The rebirth of Le Paradis is a positive development for St. Lucia and will be a valuable asset to the community providing a place for people to relax and enjoy the beauty of St. Lucia.
"
+ },
+ "location": {
+ "lat": 13.8689682,
+ "lon": -60.8932793,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=wsUO07jZvxA",
+ "caption": "The Making of a Championship Course"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Musselroe-Bay-Golf-Course.json b/data/Musselroe-Bay-Golf-Course.json
new file mode 100644
index 0000000000000..95170a683f0d5
--- /dev/null
+++ b/data/Musselroe-Bay-Golf-Course.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Musselroe Bay Golf Course",
+ "text": "Musselroe Bay is a proposed golf course in Tasmania, Australia. It is located on the north-east coast of Tasmania. From 2019 onwards, Oglyvy Cocking Mead was the golf design company involved in the development of the Musselroe Bay golf course project. The course to be built on a stunning piece of land overlooking the Tasman Sea and the Freycinet Peninsula.
The Musselroe Bay golf course project failed due to a number of factors, including:
Environmental concerns : The proposed site of the golf course was located in the sensitive Ramsar wetland environmental area.
Economic concerns : Build-out costs were estimated to be very high, and there was concern that it would not be viable commercially.
Political opposition : Local opposition from politicians.
In 2022, the developers of the Musselroe Bay golf course abandoned the project.
"
+ },
+ "location": {
+ "lat": -40.826529,
+ "lon": 147.022304,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=OJLl0X8-2i4",
+ "credit": "OCM Golf - Harris Kalinka"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Pines-Crossing-Golf.json b/data/Pines-Crossing-Golf.json
new file mode 100644
index 0000000000000..67eab35c94a34
--- /dev/null
+++ b/data/Pines-Crossing-Golf.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Pines Crossing",
+ "text": "Pines Crossing is a renovated 18 hole course by Bill Bergin . The golf course reopened in November 2023. Formerly known as Indian Pines Golf Course, the facility located in Auburn, Alabama. It is situated amidst the picturesque landscape near Auburn University. Originally designed by architect Earl Stone, the newly renovated golf course has been undertaken by Bill Bergin as golf architect and Wadsworth Golf as the construction firm onsite.
Spring and autumn are transitional seasons with pleasant temperatures in Auburn. Average highs are in the 70 degrees. Precipitation in Auburn receives a moderate amount of rainfall throughout the year. The wettest months are in late spring through summer with afternoon thunderstorms.
"
+ },
+ "location": {
+ "lat": 32.6235885,
+ "lon": -85.4407806,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=HlrcG4mrVms",
+ "credit": "Opelika-Auburn News"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Seven-Mile-Beach.json b/data/Seven-Mile-Beach.json
new file mode 100644
index 0000000000000..71397f9cde3aa
--- /dev/null
+++ b/data/Seven-Mile-Beach.json
@@ -0,0 +1,35 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Seven Mile Beach",
+ "text": "Two new golf courses are planned at Seven Mile Beach in Tasmania. The golf is expected to be among the most spectacular and challenging in the world. The project is led by former Australian/US PGA Tour golfer Mathew Goggin . Goggin is a Hobart native and recruited Mike Clayton of the Clayton, DeVries & Pont golf architecture firm. Mike DeVries has led onsite shaping at Seven Mile Beach.
The property is located on the eastern shore of Hobart, Australia overlooking the Tasman Sea. The land features rolling sand dunes, native vegetation and nearby seaside views. The first course, Seven Mile Beach, on a 450+ acre property is anticipated to open in 2024.
The course will be a public golf facility and will welcome golfers of all skill levels. The layout will be adaptable with multiple tees and routing options. The course will be a major attraction for golf enthusiasts and tourists from around the world. The project aims to create a world-class golf destination that respects the natural environment by featuring the natural landscape of coastal Tasmania. The second course onsite will be named 5 Mile Beach.
"
+ },
+ "location": {
+ "lat": -42.848042,
+ "lon": 147.479254,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=wZT7FTtcyHg",
+ "credit": "Credit: ABC News(Australia)"
+ }
+ },{
+ "text": {
+ "headline": "Seven Mile Beach",
+ "text": "Aurora Australis , also known as the Southern Lights, is a colorful light display in the sky in the Southern hemisphere near high-latitude regions around the Antarctic. Seven Mile Beach is a good location to observe the Aurora Australis.
Similar to the Aurora Borealis(Northern Lights), auroras display brilliant lights appearing as curtains, rays, spirals, or dynamic flickers covering the entire sky. These lights are predominantly green, but other colors like red, blue, purple may appear.
"
+ },
+ "location": {
+ "lat": -42.848042,
+ "lon": 147.479254,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=HANfSRo4srM",
+ "credit": "Credit: ABC News(Australia)"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Thank-You.json b/data/Thank-You.json
new file mode 100644
index 0000000000000..8428cef5b7d95
--- /dev/null
+++ b/data/Thank-You.json
@@ -0,0 +1,20 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Thank you",
+ "text": "We'll return your message after we get off the golf course."
+ },
+ "location": {
+ "lat": -16.3918641,
+ "lon": -151.9209412,
+ "zoom": 2
+ },
+ "media": {
+ "url": "https://fescue.github.io/images/Fairway-Hole-2.png",
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Twin-Bridges-Golf.json b/data/Twin-Bridges-Golf.json
new file mode 100644
index 0000000000000..253c299ce046e
--- /dev/null
+++ b/data/Twin-Bridges-Golf.json
@@ -0,0 +1,21 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Twin Bridges",
+ "text": "Twin Bridges, Montana is the location for a new golf course community. Construction was evident in 2023, but no details of owner, architect, or golf construction firm are available at the current time.
"
+ },
+ "location": {
+ "lat": 45.5427433,
+ "lon": -112.3388206,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://southwestmt.com/communities/TwinBridges/",
+ "credit": "Visit Southwest Montana"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/Yale-Golf-Course.json b/data/Yale-Golf-Course.json
new file mode 100644
index 0000000000000..57ba44c144298
--- /dev/null
+++ b/data/Yale-Golf-Course.json
@@ -0,0 +1,21 @@
+{
+ "storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Hanse's MacDonald Raynor Restoration",
+ "text": "Yale University has announced the hiring of Gil Hanse to prepare a detailed masterplan intended to restore the scale of the Yale Golf Course, one of the monumental design works of 1920s golf architecture by Charles Blair MacDonald and Seth Raynor. The course cost $400,000 to construct in 1923-1926 and occupies a rocky, heavily wooded site four miles west of the Ivy League, New Haven campus. Golf course construction efforts start in 2023 and will have 12 phases concluding in the 2026 re-opening. Much of the work consists of forestry management and wetland restoration with an estimated 2,000 trees to be planted.
Engineering and land planning company Tight & Bond submitted plans to the New Haven City Council for wetland mitigation and site drainage. It has been widely heralded on every major Top 100 list for the inspiration of its design. Restoration includes improving drainage and re-estabilishing the original greensites and mowlines in the fairway through to the green.
Recent efforts have seen steady improvement. The Gil Hanse team's effort will be the first sustained restorative effort. The project is being sponsored by an unnamed privately funded entity that is in the process of raising over $20 million that will be used to pay for the restoration as well as insure ongoing operations and provide sustained plans for maintenance equipment. Yale Golf Course recently took steps to bring in fresh management with the naming of Peter Palacio Jr, formerly of Eu Claire Golf and Country Club in Wisconsin, as general manager in 2020. The club named Jeff Austin as superintendent of grounds. Austin came to Yale after serving at Quail Hollow Country Club.
Hanse has considerable high-level restoration work on his CV. Recent projects include Merion Golf Club in Pennsylvania, the Lower course at Baltusrol Golf Club in New Jersey, the South course at Oakland Hills Country Club in Michigan, the East and West courses at Winged Foot Golf Club in Mamaroneck, New York, and the 2022 and 2023 US Open sites: respectively The Country Club in Brookline, Massachusetts and the North course at Los Angeles Country Club.
Preserved CB Macdonald courses are rare. Examples of Macdonald golf courses lost to time are The Lido course which become a real estate development or Shinnecock Hills Golf Club which was redesigned by William Flynn in 1931. In a press release, Hanse said: 'The restoration of Yale Golf Course is the most significant restoration opportunity we have been entrusted with.'
"
+ },
+ "location": {
+ "lat": 41.3083,
+ "lon": -72.9279,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=5dgtM9xwVlg",
+ "credit": "Sports Team 8"
+ }
+ }
+ ]
+ }
+}
diff --git a/data/es/Punta-Brava.json b/data/es/Punta-Brava.json
new file mode 100644
index 0000000000000..6152551fd0d55
--- /dev/null
+++ b/data/es/Punta-Brava.json
@@ -0,0 +1,17 @@
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Campo de Golf - El Mar Pacifico",
+ "text": "Punta Brava Golf & Surf Club es un diseño dirigido por Tom Doak . Proyecto ubicado en Baja California, México cerca de Ensenada. Doak es un conocido arquitecto de campos de golf con una trayectoria en el diseño de la creación de campos naturales y jugables con transiciones fáciles de recorrer de un hoyo a otro.
La propiedad está ubicada en la península de Punta Brava y tendrá espectaculares tomas junto al mar. . Trabajando in situ en la supervisión, el diseño y la conformación de la agronomía está CJ Kreuscher con Parker Anderson y Ben Malach . CJ Kreuscher fue anteriormente superintendente de Tara Iti en Nueva Zelanda. Kreuscher también formó parte del equipo de mantenimiento y construcción del campo Old Macdonald en Bandon, Oregón.
Andrew Harris de Harris Kalinka ha elaborado la animación de Punta Brava, destacando el próximo golf en el espectacular paisaje costero. .
También en la península de Punta Brava se encuentra La Bufadora. La Bufadora es un espiráculo, un géiser marino de hasta 100 pies sobre la superficie. La Bufadora es el segundo géiser marino más grande del mundo. El mejor momento para ver el espiráculo es durante la marea alta, cuando las olas son más fuertes. El espiráculo también está más activo durante los meses de invierno.
Otra atracción cercana son los viñedos y bodegas del Valle de Guadalupe. Esta región alberga más de 100 bodegas que brindan amplias oportunidades para degustar en catas de vino.
"
+ },
+ "location": {
+ "lat": 31.7239443,
+ "lon": -116.7254689,
+ "zoom": 9
+ }
+ }
+ ]
+ }
+}
diff --git a/data/es/Rolling-Sands-Golf.json b/data/es/Rolling-Sands-Golf.json
new file mode 100644
index 0000000000000..15b28d8ff5e07
--- /dev/null
+++ b/data/es/Rolling-Sands-Golf.json
@@ -0,0 +1,18 @@
+
+{
+"storymap": {
+ "slides": [
+ {
+ "text": {
+ "headline": "Rolling Sands",
+ "text": "Campo de golf Rolling Sands Solicitud de plano de sitio final importante para el condado de Martin, Florida - Solicitada por Creech Consulting, Inc. en nombre de SS Ranch, LLC para la aprobación del permiso de un Plan de sitio final importante para el condado de Martin para desarrollar un campo de golf privado de 18 hoyos con la ayuda del arquitecto de campos de golf Tom Doak. La propuesta de proyecto aprobada incluía una casa club de un piso, una tienda de golf, un edificio de mantenimiento, dos cabañas y una plataforma para helicópteros. La presentación describe una propuesta para reconfigurar 20 acres de la propiedad de aproximadamente 240 acres para conservarlos como lote residencial. La propiedad está ubicada entre Okeechobee Waterway (también conocido como St. Lucie Canal) y SW Kanner Highway, aproximadamente a 6,5 millas al oeste de la Interestatal 95. El condado ha aprobado todos los planes propuestos.
Tom Doak es un campo de golf muy transitado arquitecto del campo y autor de La guía confidencial conocida por diseños naturalistas/minimalistas con diseños complejos verdes interesantes y estratégicos. Su otro diseño de golf en Florida es su trabajo en Streamsong Resort, un complejo de golf en el condado de Polk, Florida. Ese sitio es una antigua minería de fosfato, caracterizada por dunas de arena onduladas y amplias vistas. Es un campo firme y saltarín con las características naturales del terreno, enfatizando la belleza agreste del terreno. Streamsong Blue se caracteriza por calles amplias, bunkers estratégicos y con movimiento en sus greens.
En octubre de 2023, Tom Doak publicó en Intagram una actualización sobre los planes de diseño. En particular, Doak ha contratado a Brian Zager para liderar el proyecto. Zager tuvo un papel clave en el Lido de Sand Valley al trabajar con Peter Flory para generar datos LIDAR para configuraciones de mapas topográficos para automatizar la configuración del diseño. Zager fue entrevistado por BuffaloGolfer en la primavera de 2023. Doak también señaló que Brian Schneider, Eric Iverson, Brad Gehl y Dylan Stevens también participan en la creación del diseño. Doak utiliza hoyos de St. Andrews, Muirfield, North Berwick y Pine Valley como inspiración. Después de la colaboración Doak/Zager/Flory en Lido, hay mucha expectación por ver otro paisaje con semejanzas a bunkers conocidos como Simpson's Folly desde el hoyo 9 en The Honorable Company of Edinburgh Golfers.
"
+ },
+ "location": {
+ "lat": 27.0337199,
+ "lon": -80.3946068,
+ "zoom": 9
+ }
+ }
+ ]
+ }
+}
diff --git a/data/g.json b/data/g.json
new file mode 100644
index 0000000000000..5bbc80dc55b64
--- /dev/null
+++ b/data/g.json
@@ -0,0 +1,464 @@
+{
+ "data":[
+{"G":"Cabot Pacific ","A":"Whitman Cutten","L":"Brit Columbia ","U":"Canada","D":"2025","C":"Old World Golf Company","J":"New","S":"Construction","B":"","H":"","Y":"2023-08-30","Z":"Dan Philcox","M":"Andrew Harris "},
+{"G":"Fox Harb'r Ocean ","A":"Carrick Mcbroom","L":"Nova Scotia ","U":"Canada","D":"2026","C":"KCM Construction","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-04","Z":"","M":"Heathland Style "},
+{"G":"Fox Harb'r Vineyard ","A":"Carrick Mcbroom","L":"Nova Scotia ","U":"Canada","D":"2027","C":"KCM Construction","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-04","Z":"","M":"Seaside "},
+{"G":"Bella Ridge ","A":"Art Schaupeter","L":"Colorado ","U":"USA","D":"2025","C":"Wadsworth","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-28","Z":"Troon Golf","M":"Bentgrass "},
+{"G":"Rodeo Dunes 1 ","A":"Coore Crenshaw","L":"Colorado ","U":"USA","D":"2026","C":"John Hawker","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"Josh Evenson John Klinkerman","M":""},
+{"G":"Rodeo Dunes 2 ","A":"","L":"Colorado ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing Boards","B":"","H":"","Y":"2024-07-18","Z":"Michael Keiser Jr.","M":""},
+{"G":"Atlantic Fields ","A":"Tom Fazio","L":"Florida ","U":"USA","D":"2025","C":"Discovery Land","J":"New","S":"Construction","B":"","H":"","Y":"2023-02-11","Z":"","M":""},
+{"G":"Calusa CC ","A":"Gordon Lewis","L":"Florida ","U":"USA","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-01-22","Z":"Lakewood Ranch","M":"Lennar Homes "},
+{"G":"Glynlea Wylder ","A":"Jim Furyk Michael Beebe","L":"Florida ","U":"USA","D":"2025","C":"David Johnson","J":"New","S":"Grow In","B":"","H":"","Y":"2024-12-23","Z":"","M":"GreenPointe Developers "},
+{"G":"High Grove ","A":"Hanse Wagner","L":"Florida ","U":"USA","D":"2025","C":"Heritage Links","J":"New 36","S":"Construction","B":"","H":"","Y":"2024-11-24","Z":"Irrigation Dave Ragan Technical","M":""},
+{"G":"Miakka ","A":"Dana Fry Jason Straka Paul Azinger","L":"Florida ","U":"USA","D":"2025","C":"Troon Black Creek","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-31","Z":"Stadium Zoysia","M":"Lazer Zoysia "},
+{"G":"Old Shores ","A":"Tom Doak","L":"Florida ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-01","Z":"Dream Golf Resorts","M":""},
+{"G":"Owl's Head ","A":"Keith Rhebb Riley Johns","L":"Florida ","U":"USA","D":"2025","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-06-15","Z":"","M":""},
+{"G":"Sandglass ","A":"Tom Doak","L":"Florida ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-28","Z":"","M":"Bamberger "},
+{"G":"Streamsong White ","A":"David Kidd Chip Caswell","L":"Florida ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-22","Z":"","M":""},
+{"G":"The Apogee Club North ","A":"Kyle Phillips","L":"Florida ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-29","Z":"","M":""},
+{"G":"The Ranch ","A":"Whitman Axland Cutten","L":"Florida ","U":"USA","D":"2026","C":"","J":"New 36","S":"Construction","B":"","H":"","Y":"2025-01-14","Z":"","M":""},
+{"G":"Two Rivers ","A":"David Kidd","L":"Florida ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-02","Z":"","M":"Luxury golf "},
+{"G":"Watersound The Third ","A":"Davis Love III Scot Sherman Mark Love","L":"Florida ","U":"USA","D":"2025","C":"MacCurrach","J":"New","S":"Open","B":"","H":"","Y":"2024-11-23","Z":"Total Earth Services","M":"ASGCA "},
+{"G":"The Rose ","A":"Tripp Davis","L":"Georgia ","U":"USA","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-16","Z":"","M":""},
+{"G":"Warmouth Sands ","A":"Mike Young","L":"Georgia ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-31","Z":"","M":"Vidalia Muni "},
+{"G":"Grand Teton Club ","A":"Greg Norman","L":"Idaho ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-08","Z":"","M":""},
+{"G":"False River ","A":"Nathan Crace","L":"Louisiana ","U":"USA","D":"2026","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-10-19","Z":"","M":"New 9 Holes "},
+{"G":"Arcadia Bluffs Dozen ","A":"","L":"Michigan ","U":"USA","D":"2026","C":"","J":"New 12","S":"Drawing boards ","B":"","H":"","Y":"2024-06-23","Z":"","M":""},
+{"G":"Island Resort Cedar ","A":"Paul Albanese","L":"Michigan ","U":"USA","D":"2026","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-11-17","Z":"Rough Shaping","M":"algolfdesigns "},
+{"G":"Kalamazoo Lakeside ","A":"Andrew Green","L":"Michigan ","U":"USA","D":"2025","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2023-12-17","Z":"","M":""},
+{"G":"Tepetonka ","A":"Oglivy Cocking Mead","L":"Minnesota ","U":"USA","D":"2026","C":"Duininck","J":"New","S":"Construction","B":"$21M","H":"","Y":"2024-07-28","Z":"Jim Nantz","M":"Mark Haugejorde "},
+{"G":"Valkrie GC ","A":"Scott Hoffmann","L":"Minnesota ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-17","Z":"","M":""},
+{"G":"Windsong Farm North ","A":"John Fought","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"New","S":"Grow In","B":"","H":"","Y":"2024-11-30","Z":"","M":"Pure Select A4 "},
+{"G":"Crazy Mountain Ranch ","A":"Coore Crenshaw","L":"Montana ","U":"USA","D":"2025","C":"Riley Johns","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-18","Z":"","M":"14th hole "},
+{"G":"Twin Bridges ","A":"Kye Goalby","L":"Montana ","U":"USA","D":"2025","C":"Eamon Sullivan Matt Smallwood","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-26","Z":"","M":"kyegoalby "},
+{"G":"Trout National - The Reserve ","A":"Tiger Woods Beau Welling","L":"New Jersey ","U":"USA","D":"2025","C":"LGR LaBar","J":"New","S":"Construction","B":"","H":"","Y":"2024-03-03","Z":"John Ruga","M":"Mike Trout "},
+{"G":"The Hills ","A":"Fazio Courcelle","L":"New York ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-08-05","Z":"Two Lewis Road","M":"Discovery Land "},
+{"G":"Contentment ","A":"Lester George","L":"North Carolina ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"New","S":"Construction","B":"","H":"","Y":"2024-08-20","Z":"LU PM Mike Ritchie","M":"Routing "},
+{"G":"Veterans Club ","A":"","L":"Ohio ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-31","Z":"","M":""},
+{"G":"Tribute Club ","A":"Whitman Axland Cutten","L":"Oregon ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2023-12-07","Z":"","M":"Thornburgh Resort "},
+{"G":"Chester ","A":"Tyler Rae Jim Ryan","L":"South Carolina ","U":"USA","D":"2025","C":"Tim Lewis","J":"New 27","S":"Construction","B":"","H":"","Y":"2024-07-17","Z":"Webb Simpson","M":"tylerraedesign "},
+{"G":"Kawonu GC ","A":"Andrew Green","L":"South Carolina ","U":"USA","D":"2026","C":"Wingfield Golf Barton Tuck","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-11","Z":"","M":"kawonugolfclub "},
+{"G":"Old Barnwell 2 ","A":"Brian Schneider Blake Conant","L":"South Carolina ","U":"USA","D":"2027","C":"MacCurrach","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-02-10","Z":"","M":"Gilroy "},
+{"G":"Old Sawmill ","A":"Tyler Rae Jim Ryan","L":"South Carolina ","U":"USA","D":"2025","C":"Tim Lewis Total Turf GS","J":"New 27","S":"Construction","B":"","H":"","Y":"2024-10-26","Z":"","M":"Chris Fletcher "},
+{"G":"Orange Hill ","A":"Beau Welling","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-03-21","Z":"Kiawah Partners","M":"Planning Commission "},
+{"G":"Palmetto Bluff East ","A":"Coore Crenshaw","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-11-22","Z":"","M":""},
+{"G":"Lazy J ","A":"Colton Craig Tom Coyne","L":"South Dakota ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-08-19","Z":"","M":"Sandhills "},
+{"G":"Maplet0n GC ","A":"Scott Hoffman","L":"South Dakota ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"New","S":"Grow In","B":"","H":"","Y":"2024-11-14","Z":"","M":"Derek Soukup "},
+{"G":"Bounty Club ","A":"Tad King Rob Collins","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2023-12-09","Z":"Nashville","M":"Golf Club Atlas "},
+{"G":"Firefly ","A":"Andrew Green","L":"Tennessee ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-28","Z":"","M":""},
+{"G":"Bluejack Ranch ","A":"Tiger Woods Beau Welling","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-05","Z":"","M":"bluejackranch "},
+{"G":"Childress Hall 2 ","A":"Hanse Wagner","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-11","Z":"Colin Sheehan","M":"Caveman "},
+{"G":"Corsicana The Oaks ","A":"Trey Kemp","L":"Texas ","U":"USA","D":"2025","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-10-08","Z":"","M":""},
+{"G":"Freestone Lake ","A":"Beau Welling ","L":"Texas ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-02-13","Z":"Fairfield Lake State Park","M":""},
+{"G":"Legacy Hills 1876 ","A":"Lee Singletary","L":"Texas ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-05","Z":"","M":"Real estate "},
+{"G":"Loraloma Thomas Ranch ","A":"David Kidd","L":"Texas ","U":"USA","D":"2025","C":"Lloyd Bridges","J":"New","S":"Grow In","B":"","H":"","Y":"2024-11-11","Z":"","M":"thomasranchtx "},
+{"G":"Luling Sport ","A":"Kyle Franz","L":"Texas ","U":"USA","D":"2025","C":"Greenscape Methods","J":"New","S":"Construction","B":"","H":"","Y":"2023-12-08","Z":"","M":""},
+{"G":"Maverick Golf & Ranch Club ","A":"Tom Fazio","L":"Texas ","U":"USA","D":"2026","C":"Discovery","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-15","Z":"","M":""},
+{"G":"Midland County Municipal Golf Course ","A":"","L":"Texas ","U":"USA","D":"2029","C":"","J":"New 27","S":"Drawing boards ","B":"$20M","H":"","Y":"2024-09-29","Z":"THK Associates Feasibility Study","M":"New Muni Course "},
+{"G":"OCM TBA ","A":"Oglivy Cocking Mead","L":"Texas ","U":"USA","D":"2025","C":"Ben Warren","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-30","Z":"","M":"ocmgolf "},
+{"G":"Pine Ranch ","A":"Chet Williams","L":"Texas ","U":"USA","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-23","Z":"","M":"Scottie Scheffler "},
+{"G":"Travis Club ","A":"Beau Welling Scott Benson","L":"Texas ","U":"USA","D":"2026","C":"Heritage Links Doug Wright","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-22","Z":"Hole 3 D2 Excavation","M":"Greenrise Technologies "},
+{"G":"Wild Spring Dunes 1 ","A":"Tom Doak","L":"Texas ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"Dream Golf Resorts","M":""},
+{"G":"Wild Spring Dunes 2 ","A":"Coore Crenshaw","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-30","Z":"","M":""},
+{"G":"Windridge Whisper Ridge ","A":"Dale Beddo","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-03","Z":"","M":""},
+{"G":"Marcella Club ","A":"Tiger Woods Beau Welling","L":"Utah ","U":"USA","D":"2025","C":"BHI Brian Jennings Joe Titzer","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"Reef Capital","M":"Golf Construction "},
+{"G":"Three Bridges ","A":"RTJ II Mark Voss","L":"Utah ","U":"USA","D":"2026","C":"Marriott Golf","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"","M":""},
+{"G":"Wohali Eagle GC ","A":"David Boyden","L":"Utah ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-08-10","Z":"Todd Bunte","M":"Trackman "},
+{"G":"Foster's Farm ","A":"Bill Love","L":"Virginia ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-10","Z":"","M":""},
+{"G":"Gamble Sands Scarecrow ","A":"David Kidd Nick Schaan","L":"Washington ","U":"USA","D":"2025","C":"Casa Verde","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-23","Z":"","M":"Golf Magazine "},
+{"G":"Westport Golf Links ","A":"David Kidd","L":"Washington ","U":"USA","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"$30M","H":"","Y":"2024-12-20","Z":"Interdunal wetland","M":"395 acres "},
+{"G":"Sand Valley Commons ","A":"Jimmy Craig","L":"Wisconsin ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2023-10-07","Z":"","M":""},
+{"G":"El Desafío ","A":"Greg Norman","L":"San Martin de los Andes ","U":"Argentina","D":"2025","C":"Jose Hector Alvarez","J":"New 9","S":"Construction","B":"","H":"Matt Dusenberry","Y":"2024-10-03","Z":"","M":"Fescue Grass "},
+{"G":"Jack's Bay ","A":"Nicklaus Design Chad Goetz","L":"Eleuthera ","U":"Bahamas","D":"2025","C":"Jimmy Fazio","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-25","Z":"","M":"Andy O'Brien "},
+{"G":"Ocean Ridge Resort ","A":"Coore Crenshaw","L":"Torch Cay ","U":"Bahamas","D":"2026","C":"Trevor Dormer Rob Leask Brendan Moller","J":"New","S":"Construction","B":"$170M","H":"","Y":"2024-10-24","Z":"","M":"Hog Cay Airport "},
+{"G":"Barbuda Ocean Club ","A":"Tom Fazio","L":"Barbuda ","U":"Barbuda","D":"2025","C":"","J":"New","S":"Grow In","B":"","H":"","Y":"2024-06-30","Z":"Front Nine","M":"Harris Kalinka "},
+{"G":"Four Seasons Resort ","A":"Greg Norman Lorena Ochoa","L":"Caye Chapel ","U":"Belize","D":"2025","C":"","J":"New 10","S":"Construction","B":"","H":"","Y":"2024-04-12","Z":"","M":"Reversible Routing "},
+{"G":"Las Iguanas ","A":"Nicklaus Design Troy Vincent","L":"Punta Cana ","U":"Dominican Republic","D":"2025","C":"Roca Golf International","J":"New","S":"Preview 9","B":"","H":"","Y":"2024-10-11","Z":"Atlas Turf","M":"Pure Dynasty Paspalum "},
+{"G":"Timehri Sands ","A":"Jason Miller","L":"Georgetown ","U":"Guyana","D":"2025","C":"","J":"New 9","S":"Construction","B":"$3M","H":"","Y":"2024-01-15","Z":"","M":"72 acres "},
+{"G":"Zitara ","A":"Agustín Pizá","L":"Aguascalientes ","U":"Mexico","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-20","Z":"Master Planned Community","M":"grupoplusvalterra "},
+{"G":"Baja Bay Club ","A":"David Kidd Nick Schaan","L":"Baja ","U":"Mexico","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-01","Z":"","M":"Sand Dunes "},
+{"G":"Chileno Bay 2 ","A":"Tom Fazio","L":"Baja ","U":"Mexico","D":"2025","C":"Hathaway Golf","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-13","Z":"Discovery","M":""},
+{"G":"Diamante Legacy ","A":"Tiger Woods Beau Welling","L":"Baja ","U":"Mexico","D":"2025","C":"Scott Benson","J":"New","S":"Grow In","B":"","H":"","Y":"2024-12-31","Z":"","M":"PGA Tour "},
+{"G":"Los Cabos ","A":"Greg Norman","L":"Baja ","U":"Mexico","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-02-23","Z":"","M":"Four Seasons "},
+{"G":"Old Lighthouse GC ","A":"Nicklaus Jim Lipe","L":"Baja ","U":"Mexico","D":"2025","C":"Bob Rubidoux Bob Harrington","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"","M":"mathewhathawaygolf "},
+{"G":"Oleada ","A":"Ernie Els","L":"Baja ","U":"Mexico","D":"2026","C":"Greg Letsche","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-21","Z":"Vision Land Design","M":"oleadacabos "},
+{"G":"Punta Brava ","A":"Tom Doak","L":"Baja ","U":"Mexico","D":"2025","C":"Joe Wandro","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-05","Z":"Hathaway Golf","M":"Hole 18 "},
+{"G":"Nauka ","A":"Tom Fazio","L":"Nayarit ","U":"Mexico","D":"2025","C":"Total Golf Construction GreenLynx","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-21","Z":"Abril Ortiz","M":"ArquiGolf "},
+{"G":"Mayakoba CC ","A":"Sergio Garcia","L":"Yucatan ","U":"Mexico","D":"2026","C":"NCM","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-02","Z":"Franco Bianchi","M":""},
+{"G":"Buenaventura Resort #2 ","A":"RTJ Jr. Bruce Charlton","L":"Panama ","U":"Panama","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-09","Z":"","M":""},
+{"G":"Taruma Golf del Chaco ","A":"Stirling Martin ","L":"Asuncion ","U":"Paraguay","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-11-24","Z":"Marco Martin","M":""},
+{"G":"Moncayo ","A":"Mackenzie Ebert","L":"Fajardo ","U":"Puerto Rico","D":"2025","C":"Heritage Links","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-24","Z":"PM John Daniels","M":""},
+{"G":"Kirkby Valley ","A":"International Design Group","L":"London ","U":"England","D":"2026","C":"Walker Sime","J":"New 9","S":"Drawing boards ","B":"$25M","H":"","Y":"2024-10-14","Z":"Green Circle Leisure","M":"Total Golf "},
+{"G":"Ballylesson ","A":"Paul McGinley","L":"Belfast ","U":"Ireland","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-24","Z":"Balmoral","M":""},
+{"G":"Curracloe Links ","A":"Dana Fry Jason Straka","L":"Wexford ","U":"Ireland","D":"2026","C":"John Clarkin","J":"New","S":"Construction","B":"$22M","H":"","Y":"2024-08-20","Z":"","M":""},
+{"G":"Trump MacLeod ","A":"Hawtree Christian Lundin Christine Fraser","L":"Aberdeen ","U":"Scotland","D":"2025","C":"GolfLink Evolve Andy Bennett","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-21","Z":"PM Jamie O'Reilly","M":"Balmedie "},
+{"G":"Ury Estate ","A":"Nicklaus Bouts","L":"Aberdeen ","U":"Scotland","D":"2025","C":"Turfgrass Agronomy Services","J":"New","S":"Construction","B":"","H":"","Y":"2024-08-22","Z":"","M":"IMG "},
+{"G":"Machrihanish Dunes 2 ","A":"","L":"Campbeltown ","U":"Scotland","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-09-15","Z":"","M":"Kintyre "},
+{"G":"Cabot Highlands Old Petty ","A":"Tom Doak Clyde Johnson","L":"Inverness ","U":"Scotland","D":"2026","C":"Chris Haspell","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-03","Z":"Castle Stuart","M":"cunningolf "},
+{"G":"A&M ","A":"","L":"near St. Andrews ","U":"Scotland","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"Tom Weiskopf","Y":"2024-11-30","Z":"Feddinch Mains","M":"Filing "},
+{"G":"Limassol Greens ","A":"Cabell Robinson","L":"Cyprus ","U":"Cyprus","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-03-04","Z":"","M":"Mediterranean Golf Resort "},
+{"G":"Pirkkala ","A":"Tim Lobb Kari Haug","L":"Finland ","U":"Finland","D":"2026","C":"Turnkey Golf","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-02-28","Z":"","M":""},
+{"G":"Kilada Hills ","A":"Nicklaus Dirk Bouts","L":"Kilada ","U":"Greece","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-17","Z":"WSJ 2010","M":"Promo "},
+{"G":"Selfoss ","A":"Edwin Roald","L":"Laugardælir ","U":"Iceland","D":"2026","C":"","J":"New 9","S":"Ongoing","B":"","H":"","Y":"2024-04-24","Z":"New 9","M":"2026 Plan "},
+{"G":"La Maviglia ","A":"Städler Reinmuth","L":"Puglia ","U":"Italy","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-05-09","Z":"","M":""},
+{"G":"The Peaks Lustica Bay ","A":"Gary Player Steven McFarlane","L":"Tivat ","U":"Montenegro","D":"2027","C":"Darren Turner ProGolf","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-19","Z":"EDSA","M":"Site Landplan "},
+{"G":"Terras da Comporta Torre ","A":"Olazabal Matthias Nemes Snorri Vilhjalmsson","L":"Lisbon ","U":"Portugal","D":"2025","C":"CJW Conor Walsh","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-17","Z":"Sergio Garcia","M":"T.A.S. "},
+{"G":"Ponta do Pargo ","A":"Nick Faldo Andy Haggar","L":"Madeira ","U":"Portugal","D":"2026","C":"Paul Jansen Adam Kelland","J":"New","S":"Construction","B":"$14M","H":"","Y":"2024-12-01","Z":"","M":""},
+{"G":"Majarambuz ","A":"Tom Doak","L":"Andalucia ","U":"Spain","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-03","Z":"Zagaleta","M":""},
+{"G":"Crownwood Club ","A":"Henrik Stenson Christian Lundin","L":"Ängelholm ","U":"Sweden","D":"2025","C":"All Golf Services","J":"New","S":"Grow In","B":"","H":"","Y":"2024-10-17","Z":"Arild Karlsen","M":""},
+{"G":"Lee Point ","A":"Ben Davey","L":"Darwin ","U":"Australia","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-26","Z":"Muirhead North","M":""},
+{"G":"Kangaroo Island ","A":"Darius Oliver","L":"South Aus. ","U":"Australia","D":"2026","C":"Programmed Turnpoint","J":"New","S":"Construction","B":"$14M","H":"","Y":"2025-01-14","Z":"Clifftop golf","M":"Sam Atkins "},
+{"G":"7 Mile Beach ","A":"CDP Clayton DeVries","L":"Tasmania ","U":"Australia","D":"2025","C":"","J":"New","S":"Grow In","B":"","H":"","Y":"2024-10-24","Z":"Mathew Goggin","M":"Hobart "},
+{"G":"7 Mile Beach North ","A":"Tad King Rob Collins Trev Dormer","L":"Tasmania ","U":"Australia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-08-01","Z":"","M":"aerial "},
+{"G":"Muriwai Downs ","A":"Kyle Phillips","L":"North Island ","U":"NZ","D":"2026","C":"Ryan Brandeburg","J":"New","S":"Construction","B":"","H":"","Y":"2024-01-24","Z":"Greg Turner","M":""},
+{"G":"Gibbston ","A":"Greg Turner","L":"South Island ","U":"NZ","D":"2025","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-02-09","Z":"","M":"Resort "},
+{"G":"Glendhu ","A":"John Darby","L":"South Island ","U":"NZ","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2023-11-20","Z":"","M":""},
+{"G":"Hogans Gully ","A":"Hanse Greg Turner","L":"South Island ","U":"NZ","D":"2028","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-07","Z":"","M":""},
+{"G":"Al Areen ","A":"Olazabal Matthias Nemes","L":"Bahrain ","U":"Bahrain","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-20","Z":"Rupert Eichler","M":"GFH Financial "},
+{"G":"Chhun On Palms ","A":"Brian Curley Jim Wagner","L":"Phnom Penh ","U":"Cambodia","D":"2025","C":"Flagstick","J":"New","S":"Open","B":"","H":"","Y":"2025-01-17","Z":"Lynkz Zoysia","M":""},
+{"G":"Bay of Lights ","A":"Greg Norman","L":"Sihanoukville ","U":"Cambodia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"$41M","H":"","Y":"2023-12-11","Z":"Canopy Sands","M":""},
+{"G":"Citra City ","A":"Nicklaus Design","L":"Bogor ","U":"Indonesia","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-29","Z":"Sean Quinn","M":""},
+{"G":"Dhoho GC ","A":"Brian Curley Jim Wagner","L":"East Java ","U":"Indonesia","D":"2025","C":"Flagstick","J":"New 27","S":"Construction","B":"","H":"","Y":"2024-04-11","Z":"CADSULT IDS","M":"suryadhoho "},
+{"G":"Royale Nusantara Golf Resort ","A":"","L":"East Kalimantan ","U":"Indonesia","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-13","Z":"","M":""},
+{"G":"Bukit Asam ","A":"Chandra Leo","L":"Sumatra ","U":"Indonesia","D":"2025","C":"Turfindo Makmur Abadi","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-05","Z":"","M":""},
+{"G":"That Luang Golf Village ","A":"Nick Faldo","L":"Vientiane ","U":"Laos","D":"2027","C":"Mark Adams","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-03","Z":"","M":""},
+{"G":"Trump Aida ","A":"TBA","L":"Muscat ","U":"Oman","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-03-05","Z":"","M":""},
+{"G":"China Pak ","A":"","L":"Gwadar ","U":"Pakistan","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-24","Z":"","M":"Community Landplan "},
+{"G":"Capital Hills Canyon GC ","A":"Peter Harradine","L":"Islamabad ","U":"Pakistan","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-02-28","Z":"Pure Dynasty Paspalum","M":"Landscape "},
+{"G":"Fairwinds Signature ","A":"Nick Faldo Andy Haggar","L":"Karachi ","U":"Pakistan","D":"2027","C":"Abubakar Siddique","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"GEO Certified","M":"Faldo Design "},
+{"G":"Villar City ","A":"Curley Wagner","L":"Cavite ","U":"Philippines","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-01-15","Z":"","M":"curley_wagner "},
+{"G":"Hann Reserve Mountain ","A":"Nicklaus","L":"New Clark City ","U":"Philippines","D":"2025","C":"IMG","J":"New","S":"Construction","B":"$238M","H":"","Y":"2023-10-15","Z":"Chris Gray","M":"PGA "},
+{"G":"Hann Reserve Valley ","A":"KJ Choi","L":"New Clark City ","U":"Philippines","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-24","Z":"","M":"Turf Company Toro "},
+{"G":"Shishkino CC ","A":"Agustín Pizá","L":"Moscow ","U":"Russia","D":"2025","C":"Geokam Ostap Lukiyanov","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-27","Z":"","M":"PM Matt Marsh "},
+{"G":"Royal Diriyah Wadi Safar ","A":"Greg Norman","L":"Diriyah Gate ","U":"Saudi Arabia","D":"2025","C":"Heritage Links","J":"New 27","S":"Open","B":"","H":"","Y":"2024-01-05","Z":"9 holes open","M":"AquaFuse "},
+{"G":"Gidori ","A":"Ernie Els","L":"Gulf of Aqaba ","U":"Saudi Arabia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-28","Z":"NEOM","M":"Community Architects "},
+{"G":"Qiddiya ","A":"Nicklaus","L":"Qiddiya ","U":"Saudi Arabia","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-02-06","Z":"","M":"Championship Golf "},
+{"G":"Shura Island ","A":"Brian Curley","L":"Red Sea ","U":"Saudi Arabia","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-27","Z":"Atlas Turf","M":"Paspalum "},
+{"G":"King Salman Park Royal ","A":"Ernie Els","L":"Riyadh ","U":"Saudi Arabia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-22","Z":"DAMAC","M":""},
+{"G":"Dye TBA ","A":"Cynthia Dye","L":"Saudi Arabia ","U":"Saudi Arabia","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-02-25","Z":"","M":"LinkedIn "},
+{"G":"Dalaman ","A":"Jon Hunt Andrew Craven","L":"Mugla ","U":"Turkey","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-08-06","Z":"IDG","M":"Sand "},
+{"G":"Al Nawras Island ","A":"Dave Sampson EGD","L":"Abu Dhabi ","U":"UAE","D":"2026","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-01-11","Z":"EIGCA","M":"LXR Golf Resort "},
+{"G":"Discovery Dunes ","A":"Tom Fazio","L":"Dubai ","U":"UAE","D":"2026","C":"Discovery Land","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-26","Z":"","M":""},
+{"G":"Emaar South ","A":"Jeremy Slessor","L":"Dubai ","U":"UAE","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-29","Z":"EGD New 9","M":"Desert Golf "},
+{"G":"Truong Thinh ","A":"Greg Norman","L":"Bao Ninh ","U":"Vietnam","D":"2025","C":"Flagstick","J":"New","S":"Construction","B":"$32M","H":"","Y":"2024-11-06","Z":"Dong Hoi","M":"18th hole "},
+{"G":"Ha Long Xanh ","A":"Clayton DeVries Pont Hilgert","L":"Ha Long ","U":"Vietnam","D":"2026","C":"Harley Kruse","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-10-12","Z":"Vingroup","M":"West Course "},
+{"G":"Silk Path Dong Trieu ","A":"Nick Faldo","L":"Hanoi ","U":"Vietnam","D":"2025","C":"Adam Calver","J":"New","S":"Open","B":"","H":"","Y":"2025-01-11","Z":"Outfield Asia Nursery BunkerTex","M":"Toccoa Zoysia Pensacola Bahia "},
+{"G":"Stone Highland ","A":"Brian Curley","L":"Hanoi ","U":"Vietnam","D":"2025","C":"Tru?ng An","J":"New 36","S":"Construction","B":"","H":"","Y":"2023-12-12","Z":"","M":"Mountain Golf "},
+{"G":"VinPearl Cu Chi ","A":"David Dale GolfPlan","L":"Ho Chi Minh ","U":"Vietnam","D":"2025","C":"Flagstick GCCM","J":"New 36","S":"Construction","B":"","H":"","Y":"2024-11-10","Z":"Irrigation CADSULT IDS","M":"Golf resort "},
+{"G":"Tudi TBA ","A":"Olazabal Anton Ortner","L":"Hoa Binh ","U":"Vietnam","D":"2026","C":"","J":"New 36","S":"Construction","B":"","H":"","Y":"2025-01-19","Z":"","M":""},
+{"G":"Trump Kinhbac City ","A":"","L":"Hung Yen ","U":"Vietnam","D":"2028","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-10-09","Z":"","M":""},
+{"G":"An Thoi ","A":"TBA","L":"Phu Quoc ","U":"Vietnam","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-09","Z":"","M":""},
+{"G":"Sao Beach ","A":"TBA","L":"Phu Quoc ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-09","Z":"Sonasea","M":"CEO Group "},
+{"G":"Van Lang Empire ","A":"Greg Norman","L":"Phú Th? ","U":"Vietnam","D":"2025","C":"Flagstick GCCM","J":"New 36","S":"Construction","B":"","H":"","Y":"2024-09-14","Z":"54 Ben Styles","M":"Sports Turf Solutions "},
+{"G":"Nui Cuong ","A":"","L":"Quang Ninh ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-08-31","Z":"","M":""},
+{"G":"MerryLand ","A":"Greg Norman","L":"Quy Nhon ","U":"Vietnam","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-05","Z":"","M":"Property Intro "},
+{"G":"Glory GC ","A":"","L":"Thái Nguyen ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-26","Z":"","M":""},
+{"G":"Legend Valley North ","A":"Nicklaus Design","L":"Thua Thien-Hue ","U":"Vietnam","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-03-01","Z":"BRG Rose Canyon","M":""},
+{"G":"Avlékété ","A":"Jeremy Pern","L":"Atlantique ","U":"Benin","D":"2025","C":"Gregori International","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-30","Z":"","M":"Greens Construction "},
+{"G":"Somabay ","A":"Tim Lobb","L":"Cairo ","U":"Egypt","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-08","Z":"","M":"Pure Dynasty "},
+{"G":"Ras El Hekma ","A":"Tim Lobb Sergio Carballo","L":"Mersa Matruh ","U":"Egypt","D":"2029","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-11-15","Z":"","M":""},
+{"G":"CityGate ","A":"Tim Lobb","L":"New Cairo ","U":"Egypt","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-12-30","Z":"","M":""},
+{"G":"Four Seasons Resort ","A":"RTJ II Mike Gorman","L":"Sharm El Sheikh ","U":"Egypt","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-01-21","Z":"","M":""},
+{"G":"Zimbali Lakes ","A":"Ernie Els","L":"Durban ","U":"South Africa","D":"2025","C":"Golf Data","J":"New","S":"Construction","B":"","H":"","Y":"2024-08-20","Z":"Pieter Du Plessis","M":"Robert McLean "},
+{"G":"Serengeti National Park ","A":"David Hemstock","L":"Fort Ikoma ","U":"Tanzania","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"$3M","H":"","Y":"2024-10-02","Z":"Golf Tourism","M":""},
+{"G":"Lac La Biche ","A":"David Dale GolfPlan","L":"Alberta ","U":"Canada","D":"2028","C":"","J":"Masterplan","S":"Ongoing","B":"$4.5M","H":"","Y":"2024-10-22","Z":"","M":""},
+{"G":"River Bend ","A":"Wade Horrocks","L":"Alberta ","U":"Canada","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$8M","H":"","Y":"2024-10-15","Z":"Rain Bird Midwest Turf Irrigation","M":""},
+{"G":"Chilliwack ","A":"Tim Lobb Alex Hay","L":"BC ","U":"Canada","D":"2025","C":"","J":"Renovate","S":"Masterplan","B":"","H":"Brown","Y":"2022-12-14","Z":"","M":"Oliver Tubb "},
+{"G":"Dodger Hallo Nelson ","A":"Doug Carrick","L":"BC ","U":"Canada","D":"2028","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-08-26","Z":"was Granite Pointe","M":""},
+{"G":"Peachland ","A":"Les Furber","L":"BC ","U":"Canada","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-04-20","Z":"Pincushion","M":""},
+{"G":"Whistler GC ","A":"Thad Layton","L":"BC ","U":"Canada","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$10M","H":"Palmer","Y":"2024-11-17","Z":"","M":"Golf Tourism "},
+{"G":"Glencoe G&CC ","A":"Whitmax Axland Cutten","L":"Calgary ","U":"Canada","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"RTJ Sr.","Y":"2024-10-07","Z":"","M":"GCA "},
+{"G":"St. Charles ","A":"Jim Urbina Riley Johns","L":"Manitoba ","U":"Canada","D":"2025","C":"Thad Layton","J":"Restore","S":"Ongoing","B":"","H":"Ross MacKenzie","Y":"2024-11-07","Z":"","M":"Ross 9 "},
+{"G":"Belwood GC ","A":"Doug Carrick","L":"Ontario ","U":"Canada","D":"2027","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-10-31","Z":"was Fergus GC","M":"Lake Belwood "},
+{"G":"Toronto Hunt ","A":"Christine Fraser","L":"Ontario ","U":"Canada","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"$6M","H":"George Cumming","Y":"2023-11-14","Z":"","M":"Design Presentation "},
+{"G":"Hillsdale ","A":"Whitman Axland Cutten","L":"Quebec ","U":"Canada","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"Howard Watson","Y":"2023-08-23","Z":"","M":"36 holes "},
+{"G":"Cypress Creek GC ","A":"Jerry Pate","L":"Alabama ","U":"USA","D":"2025","C":"Mid-America Golf","J":"Rebuild ","S":"Construction","B":"$13.7M","H":"","Y":"2024-10-09","Z":"Thompson Engineering","M":""},
+{"G":"Shoal Creek ","A":"Andrew Green","L":"Alabama ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$22M","H":"","Y":"2024-11-10","Z":"TifEagle Greens Stadium Zoysia Fairway","M":""},
+{"G":"Willow Point GC ","A":"Dana Fry Jason Straka","L":"Alabama ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"","H":"Nicol Hurdzan Fry","Y":"2023-12-07","Z":"","M":""},
+{"G":"Apache Wells CC ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$1.3M","H":"","Y":"2024-10-07","Z":"Turf Conversion","M":"Salt River Project "},
+{"G":"Desert Highlands ","A":"Nicklaus Design","L":"Arizona ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$10M","H":"","Y":"2024-07-17","Z":"Flexxscape Bunker Liner","M":""},
+{"G":"Desert Highlands ","A":"Nicklaus Design Chad Goetz","L":"Arizona ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$10M","H":"","Y":"2025-01-08","Z":"","M":""},
+{"G":"Desert Mountain Renegade ","A":"Nicklaus Design","L":"Arizona ","U":"USA","D":"2025","C":"Heritage Links","J":"Restore","S":"Construction","B":"","H":"Nicklaus","Y":"2024-08-09","Z":"","M":"Greensmix "},
+{"G":"Dove Mountain ","A":"Nicklaus Design","L":"Arizona ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate 36","S":"Ongoing","B":"$15M","H":"Nicklaus","Y":"2024-02-02","Z":"Saguaro Tortolita","M":""},
+{"G":"Randolph Dell Urich ","A":"Ken Kavanaugh","L":"Arizona ","U":"USA","D":"2030","C":"","J":"Renovate","S":"Drawing boards ","B":"$6M","H":"","Y":"2025-01-06","Z":"","M":"Walking path "},
+{"G":"Sun City Echo Mesa ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"$4.3M","H":"","Y":"2024-10-07","Z":"","M":"USGA Green Section "},
+{"G":"Tubac Golf Resort ","A":"","L":"Arizona ","U":"USA","D":"2026","C":"Troon","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-01-07","Z":"Dominator Bentgrass","M":""},
+{"G":"Big Canyon ","A":"Andrew Green","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Muirhead","Y":"2023-10-19","Z":"","M":""},
+{"G":"Braemar ","A":"Lanny Wadkins Kurt Bowman","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Ted Robinson","Y":"2024-12-22","Z":"","M":""},
+{"G":"Campus Commons GC ","A":"Damian Pascuzzo","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$3M","H":"","Y":"2024-06-28","Z":"","M":""},
+{"G":"Corica Park North ","A":"RTJ II","L":"California ","U":"USA","D":"2025","C":"Greenway Golf David Dow","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-25","Z":"Umesh Patel","M":"Trent Jones "},
+{"G":"Degarmo Park ","A":"Celebrity Greens","L":"California ","U":"USA","D":"2025","C":"","J":"Short","S":"Construction","B":"$3M","H":"","Y":"2024-10-18","Z":"Grant Hornbeak","M":"9 holes "},
+{"G":"Farms Rancho Santa Fe ","A":"Tim Liddy","L":"California ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"$18M","H":"Fought Lehman","Y":"2024-12-01","Z":"","M":""},
+{"G":"Hideaway ","A":"Tim Liddy Clive Clark","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate 36","S":"Construction","B":"","H":"Clive Clark","Y":"2024-12-20","Z":"","M":"Greens reconstruction "},
+{"G":"Indian Wells Resort Players ","A":"John Fought","L":"California ","U":"USA","D":"2025","C":"","J":"Redesign","S":"Drawing boards ","B":"$8.7M","H":"Ted Robinson","Y":"2024-10-09","Z":"","M":""},
+{"G":"Maggie Hathaway ","A":"Hanse Wagner","L":"California ","U":"USA","D":"2025","C":"Total Turf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-01-01","Z":"Tommy Naccarato","M":"USGA "},
+{"G":"Northwood GC ","A":"Will Carlson","L":"California ","U":"USA","D":"2024","C":"","J":"Restore","S":"Open","B":"$5K","H":"MacKenzie","Y":"2025-01-17","Z":"Bunkers","M":"Fried Egg "},
+{"G":"Pasatiempo GC ","A":"Jim Urbina","L":"California ","U":"USA","D":"2025","C":"Earthsculptures Justin Mandon","J":"Restore","S":"Open","B":"","H":"MacKenzie","Y":"2024-12-08","Z":"Toro Lynx","M":"Brett Hochstein "},
+{"G":"Peninsula G&CC ","A":"Tyler Rae","L":"California ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-11-16","Z":"","M":"Restoration "},
+{"G":"Poppy Ridge ","A":"Jay Blasi","L":"California ","U":"USA","D":"2025","C":"Integrity Golf Robert Nelson Jeff Mason","J":"Rebuild","S":"Construction","B":"","H":"Rees Jones","Y":"2024-10-27","Z":"West Coast Turf","M":"Josh Lewis Ben Malach "},
+{"G":"Richmond GC ","A":"Pacific Golf Design Robert Vincent","L":"California ","U":"USA","D":"2025","C":"Earthsculptures","J":"Renovate","S":"Drawing boards ","B":"$2.2M","H":"","Y":"2025-01-10","Z":"","M":""},
+{"G":"San Clemente Muni ","A":"Andy Staples","L":"California ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Bell","Y":"2024-12-06","Z":"","M":"Municipal Golf "},
+{"G":"Sandpiper ","A":"Tom Doak","L":"California ","U":"USA","D":"2028","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"Billy Bell Jr.","Y":"2024-04-14","Z":"","M":""},
+{"G":"Spanish Bay ","A":"Hanse Wagner","L":"California ","U":"USA","D":"2027","C":"","J":"Reset","S":"Drawing boards ","B":"","H":"RTJ Jr.","Y":"2023-09-13","Z":"","M":"Fried Egg "},
+{"G":"Wilshire CC ","A":"Kyle Phillips","L":"California ","U":"USA","D":"2025","C":"David Dow","J":"Restore","S":"Construction","B":"","H":"Norman Macbeth","Y":"2025-01-09","Z":"","M":"Design Plan "},
+{"G":"Boulder CC ","A":"Kevin Atkinson","L":"Colorado ","U":"USA","D":"2026","C":"Total Turf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-11-16","Z":"","M":"17th hole "},
+{"G":"Flatirons GC ","A":"Dye Designs Matt McGarey","L":"Colorado ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-11-21","Z":"","M":""},
+{"G":"Heritage Eagle Bend ","A":"Todd Schoeder","L":"Colorado ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Arthur Hills","Y":"2024-10-07","Z":"Irrigation Larry Rodgers","M":""},
+{"G":"New Canaan ","A":"Andrew Green","L":"Connecticut ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Park Travis","Y":"2024-11-26","Z":"","M":""},
+{"G":"Shorehaven ","A":"Blake Conant","L":"Connecticut ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Robert White","Y":"2024-10-21","Z":"","M":"Interview "},
+{"G":"Silver Spring CC ","A":"Brian Schneider","L":"Connecticut ","U":"USA","D":"2025","C":"LGR LaBar Jake Williams Andrej Buchko","J":"Renovate","S":"Construction","B":"","H":"Tillinghast","Y":"2024-09-12","Z":"Tanto Irrigation","M":"Greens "},
+{"G":"Stanwich Cauldron ","A":"Oglivy Cocking Mead","L":"Connecticut ","U":"USA","D":"2026","C":"LaBar","J":"Short","S":"Construction","B":"","H":"","Y":"2024-12-11","Z":"","M":""},
+{"G":"Yale ","A":"Hanse Wagner","L":"Connecticut ","U":"USA","D":"2026","C":"Hawk Shaw Michael Porteus","J":"Restore","S":"Construction","B":"$15M","H":"Macdonald Raynor","Y":"2023-12-07","Z":"Ben Hillard","M":"Jeff Austin "},
+{"G":"Amelia Island Oak Marsh ","A":"Beau Welling","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$7.4M","H":"Pete Dye","Y":"2024-03-01","Z":"","M":""},
+{"G":"Bear Lakes Links ","A":"Love","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Nicklaus","Y":"2024-09-14","Z":"","M":"Routing "},
+{"G":"Belleair CC East ","A":"Jason Straka Dana Fry","L":"Florida ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-11-04","Z":"","M":""},
+{"G":"CC of Miami ","A":"Lee Marshall","L":"Florida ","U":"USA","D":"2025","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2023-11-12","Z":"","M":"Start "},
+{"G":"Club at Eaglebrooke ","A":"","L":"Florida ","U":"USA","D":"2025","C":"Mondragon Golf","J":"Renovate","S":"Drawing boards ","B":"","H":"Ron Garl","Y":"2024-09-17","Z":"","M":""},
+{"G":"Club at Ibis ","A":"Nicklaus Design","L":"Florida ","U":"USA","D":"2025","C":"Chris Cochran","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-08-15","Z":"","M":""},
+{"G":"Colonial CC ","A":"Gordon Lewis","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$10M","H":"Gordon Lewis","Y":"2024-09-01","Z":"Troon Golf","M":""},
+{"G":"Crane Creek ","A":"","L":"Florida ","U":"USA","D":"2025","C":"Wesco Turf","J":"Renovate","S":"Open","B":"$0.8M","H":"Amick","Y":"2025-01-09","Z":"","M":""},
+{"G":"Emerald Hills ","A":"Nicklaus","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-03-16","Z":"","M":""},
+{"G":"Everglades Club ","A":"Steve Smyers","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Seth Raynor","Y":"2024-06-29","Z":"","M":""},
+{"G":"Forest Glen ","A":"Ron Forse","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$8.3M","H":"Arthur Hills Steve Forrest","Y":"2024-09-05","Z":"","M":"Masterplan Presentation "},
+{"G":"GC Crown Colony ","A":"Bill Bergin","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$12M","H":"","Y":"2025-01-09","Z":"","M":""},
+{"G":"Glen Kernan ","A":"Jim Furyk","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-02-09","Z":"","M":"Hampton Golf "},
+{"G":"Hollywood Beach ","A":"Richard Mandell","L":"Florida ","U":"USA","D":"2025","C":"Wadsworth","J":"Renovate","S":"Construction","B":"$12M","H":"","Y":"2024-08-10","Z":"McCumber Golf","M":"Muni "},
+{"G":"Jacksonville G&CC ","A":"Andy Staples","L":"Florida ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Clyde Johnston","Y":"2024-12-06","Z":"","M":"Master Planning "},
+{"G":"Jupiter Island Club ","A":"Andrew Green","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Diddel Bel Jan","Y":"2023-11-11","Z":"","M":""},
+{"G":"Killearn CC ","A":"Chris Wilczynski","L":"Florida ","U":"USA","D":"2025","C":"MacCurrach","J":"Rebuild 27","S":"Construction","B":"","H":"Bill Amick","Y":"2024-02-22","Z":"TifTuf Fairways","M":"Clover "},
+{"G":"Mountain Lake ","A":"Tyler Rae","L":"Florida ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Raynor","Y":"2025-01-19","Z":"","M":""},
+{"G":"Palm Beach Polo Cypress ","A":"Tiger Woods","L":"Florida ","U":"USA","D":"2027","C":"Beau Welling","J":"Rebuild ","S":"Drawing boards ","B":"","H":"Pete Dye","Y":"2023-04-25","Z":"Justin Timberlake","M":"The Wellington "},
+{"G":"Palm Cove ","A":"John Sanford","L":"Florida ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-03","Z":"","M":""},
+{"G":"Riomar CC ","A":"Carlton Marshall","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Strong","Y":"2024-12-20","Z":"","M":""},
+{"G":"Sugar Mill ","A":"Ron Garl","L":"Florida ","U":"USA","D":"2025","C":"South Florida Golf Renovations","J":"Renovate","S":"Ongoing","B":"$6.5M","H":"Joe Lee","Y":"2023-09-10","Z":"27 holes ","M":""},
+{"G":"West End Alachua County ","A":"","L":"Florida ","U":"USA","D":"2026","C":"","J":"Reopen","S":"Acquired","B":"$4.5M","H":"","Y":"2024-09-19","Z":"","M":"County Commissioner "},
+{"G":"Woodmont CC ","A":"Joe Jemsek","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Open","B":"","H":"Von Hagge","Y":"2024-10-16","Z":"Capillary Edge","M":"New Greens "},
+{"G":"Ansley GC Settindown Creek ","A":"Tyler Rae Jim Ryan","L":"Georgia ","U":"USA","D":"2025","C":"Duininck","J":"Renovate","S":"Construction","B":"$12M","H":"Bob Cupp","Y":"2024-09-05","Z":"","M":"HDPE pipes "},
+{"G":"Augusta Municipal ","A":"Tom Fazio Beau Welling","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"David Ogilvie","Y":"2024-12-16","Z":"The Patch","M":"Augusta National "},
+{"G":"Big Canoe ","A":"Bill Bergin","L":"Georgia ","U":"USA","D":"2026","C":"Sanders Golf","J":"Renovate","S":"Ongoing","B":"$2.2M","H":"Joe Lee","Y":"2024-02-11","Z":"CapCon","M":"Creek 9 "},
+{"G":"Cherokee Town CC - Town ","A":"Andrew Green","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Renovate 36","S":"Drawing boards ","B":"","H":"Joe Lee Tom Fazio","Y":"2023-12-03","Z":"","M":""},
+{"G":"Jekyll Island Oleander ","A":"Brian Ross Jeff Stein","L":"Georgia ","U":"USA","D":"2025","C":"MacCurrach","J":"Renovate","S":"Construction","B":"$14M","H":"Dick Wilson","Y":"2024-12-19","Z":"Chris Staffeldt Andrew Hasik","M":""},
+{"G":"Kapalua Bay ","A":"David Kidd","L":"Hawaii ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Palmer Duane","Y":"2025-01-06","Z":"","M":""},
+{"G":"Cantigny ","A":"Todd Quitno","L":"Illinois ","U":"USA","D":"2026","C":"Wadsworth","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"KemperSports EC Design Leibold Irrigation","M":" "},
+{"G":"Evanston GC ","A":"Tyler Rae Tim Lewis","L":"Illinois ","U":"USA","D":"2026","C":"Wadsworth Qui Fabian","J":"Renovate","S":"Construction","B":"","H":"Donald Ross","Y":"2024-09-13","Z":"Leibold Irrigation Mike Skopik","M":"Fairway expansion "},
+{"G":"Exmoor CC ","A":"Andrew Green","L":"Illinois ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-27","Z":"","M":""},
+{"G":"Maple Meadows GC ","A":"Greg Martin","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$9.8M","H":"","Y":"2024-09-08","Z":"","M":""},
+{"G":"Merit Club ","A":"Quitno Crace","L":"Illinois ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-10-25","Z":"","M":""},
+{"G":"Olympia Fields North ","A":"Andrew Green","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Willie Park","Y":"2024-07-26","Z":"","M":"Restoration "},
+{"G":"Orchard Valley ","A":"Greg Martin","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$8.8M","H":"","Y":"2024-10-18","Z":"","M":""},
+{"G":"Crooked Stick ","A":"Tom Doak","L":"Indiana ","U":"USA","D":"2025","C":"MacCurrach","J":"Renovate","S":"Construction","B":"","H":"Pete Dye","Y":"2024-10-01","Z":"","M":""},
+{"G":"Notre Dame Burke ","A":"","L":"Indiana ","U":"USA","D":"2025","C":"Hollembeak","J":"Reduce","S":"Construction","B":"","H":"","Y":"2024-09-01","Z":"Executive Course","M":""},
+{"G":"Wooded View ","A":"Nathan Crace","L":"Indiana ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-07-17","Z":"","M":""},
+{"G":"Kansas City CC ","A":"Andrew Green","L":"Kansas ","U":"USA","D":"2027","C":"","J":"Restore","S":"Construction","B":"","H":"A.W. Tillinghast","Y":"2024-11-01","Z":"","M":""},
+{"G":"Wichita CC ","A":"Tripp Davis Kyle Downs Jason Gold","L":"Kansas ","U":"USA","D":"2025","C":"Total Turf","J":"Renovate","S":"Construction","B":"","H":"Diddel","Y":"2024-11-22","Z":"","M":"Renovation Update "},
+{"G":"Bowling Green CC ","A":"Nathan Crace","L":"Kentucky ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Cornish","Y":"2023-12-21","Z":"","M":""},
+{"G":"Lexington CC ","A":"Kevin Hargrave","L":"Kentucky ","U":"USA","D":"2025","C":"NMP Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-05-11","Z":"","M":"Regrade greens "},
+{"G":"Ryland Lakes CC ","A":"Brian Ross","L":"Kentucky ","U":"USA","D":"2030","C":"Scott Laffin","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-01-08","Z":"","M":"1949 aerial "},
+{"G":"Summit Hills CC ","A":"Brian Huntley Golf Sense","L":"Kentucky ","U":"USA","D":"2025","C":"Aspen Corporation","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-09-12","Z":"","M":""},
+{"G":"Baton Rouge CC ","A":"Oglivy Cocking Mead","L":"Louisiana ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-12-30","Z":"","M":""},
+{"G":"Chasing Aces ","A":"Carlton Marshall","L":"Louisiana ","U":"USA","D":"2025","C":"Boggs Contracting","J":"Short","S":"Construction","B":"$25M","H":"","Y":"2024-09-12","Z":"","M":"Groundbreaking "},
+{"G":"Baltimore CC East ","A":"Keith Foster","L":"Maryland ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Ongoing","B":"","H":"A.W. Tillinghast","Y":"2025-01-04","Z":"","M":"Assistant Superintendent "},
+{"G":"Chevy Chase Club ","A":"Andrew Green","L":"Maryland ","U":"USA","D":"2025","C":"","J":"Restore","S":"Construction","B":"","H":"C.H. Alison","Y":"2024-09-13","Z":"Mirafi Geotextile","M":"Director of Agronomy "},
+{"G":"Fountain Head CC ","A":"Ron Forse","L":"Maryland ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-01-21","Z":"","M":""},
+{"G":"Green Spring Valley ","A":"Tyler Rae","L":"Maryland ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"RTJ Sr.","Y":"2024-09-10","Z":"","M":""},
+{"G":"Ocean Pines ","A":"","L":"Maryland ","U":"USA","D":"2025","C":"Irrigation Services","J":"Renovate","S":"Ongoing","B":"$1.1M","H":"RTJ Sr.","Y":"2024-09-16","Z":"Toro Golf","M":"HDPE Mainline "},
+{"G":"Eastward Ho ","A":"Kyle Franz","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"$8.5M","H":"Herb Fowler","Y":"2024-11-18","Z":"Frank Hancock Ian Williams","M":"Winterberry Irrigation "},
+{"G":"Farm Neck ","A":"Mark Mungeam","L":"Massachusetts ","U":"USA","D":"2025","C":"MAS Golf Andrew Nisbet","J":"Renovate","S":"Ongoing","B":"","H":"Cornish Mulligan","Y":"2024-10-22","Z":"","M":"ASGCA "},
+{"G":"Marion ","A":"Hanse Wagner","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Construction","B":"","H":"George Thomas","Y":"2024-03-10","Z":"Greens","M":"Jeremiah Daly "},
+{"G":"Oak Hill CC ","A":"Tyler Rae","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-08-22","Z":"","M":""},
+{"G":"Oyster Harbors ","A":"Hanse Wagner","L":"Massachusetts ","U":"USA","D":"2025","C":"LGI LGR LaBar","J":"Restore","S":"Ongoing","B":"","H":"Donald Ross","Y":"2024-11-17","Z":"Rain Bird Irrigation Brian Vinchesi","M":""},
+{"G":"Plymouth CC ","A":"Jaeger Kovich Nicklaus Mills","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2024-11-16","Z":"Ian Andrew","M":""},
+{"G":"Winchester CC ","A":"Andrew Green","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-01-27","Z":"","M":""},
+{"G":"Detroit GC ","A":"Tyler Rae","L":"Michigan ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Masterplan","B":"$16.1M","H":"Donald Ross","Y":"2024-09-06","Z":"Rain Bird Cirrus","M":"Turfgrass Management "},
+{"G":"Dunham Hills GC ","A":"Mike DeVries","L":"Michigan ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-19","Z":"","M":"Phase 2 "},
+{"G":"Knollwood CC ","A":"David Zinkand","L":"Michigan ","U":"USA","D":"2025","C":"Frontier Golf","J":"Renovate","S":"Ongoing","B":"","H":"Arthur Hamm","Y":"2024-12-22","Z":"","M":""},
+{"G":"Pine Trace GC ","A":"Steve Forrest","L":"Michigan ","U":"USA","D":"2026","C":"Gary Kaye","J":"Renovate","S":"Construction","B":"","H":"Arthur Hills","Y":"2024-09-10","Z":"Toro Lynx","M":""},
+{"G":"Spring Lake CC ","A":"Drew Rogers","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-12-07","Z":"","M":""},
+{"G":"Twin Beach GC ","A":"Keith Rhebb Riley Johns","L":"Michigan ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-11-10","Z":"East Valley Irrigation EVI","M":""},
+{"G":"Western Golf & CC ","A":"Andrew Green","L":"Michigan ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2023-07-31","Z":"","M":""},
+{"G":"Burl Oaks ","A":"Jay Blasi","L":"Minnesota ","U":"USA","D":"2026","C":"Duininck Josh Lewis","J":"Re-Route","S":"Drawing boards ","B":"","H":"","Y":"2024-10-17","Z":"","M":""},
+{"G":"Enger Park GC ","A":"Kevin Norby","L":"Minnesota ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"$7M","H":"","Y":"2024-06-23","Z":"Lester Park","M":""},
+{"G":"Hazeltine Augusta ","A":"Davis Love Scot Sherman","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"Short 10","S":"Construction","B":"","H":"MacKenzie","Y":"2024-06-28","Z":"","M":"Double Green "},
+{"G":"Pierz ","A":"","L":"Minnesota ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"$1.4M","H":"","Y":"2024-10-25","Z":"","M":""},
+{"G":"Somerset ","A":"","L":"Minnesota ","U":"USA","D":"2026","C":"Hartman","J":"Renovate","S":"Ongoing","B":"","H":"Seth Raynor","Y":"2024-12-24","Z":"","M":""},
+{"G":"Town & Country Club ","A":"Jeff Mingay","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"Renovate","S":"Construction","B":"","H":"Ben Schurmeier Robert Foulis","Y":"2024-08-14","Z":"","M":"Opening hole "},
+{"G":"Wayzata CC ","A":"Jackson Kahn","L":"Minnesota ","U":"USA","D":"2026","C":"Wadsworth","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-08-13","Z":"","M":""},
+{"G":"Woodhill CC ","A":"Brian Schneider","L":"Minnesota ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-17","Z":"Wayzata","M":"1918 Restoration "},
+{"G":"Cobos Ranch ","A":"","L":"Mississippi ","U":"USA","D":"2027","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2024-10-18","Z":"","M":""},
+{"G":"Big Cedar Cliffhangers ","A":"Jackson Kahn","L":"Missouri ","U":"USA","D":"2025","C":"Jose Vivo","J":"Short","S":"Construction","B":"","H":"","Y":"2024-12-29","Z":"","M":"Johnny Morris "},
+{"G":"Hillcrest CC ","A":"Tripp Davis","L":"Missouri ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$30M","H":"Donald Ross","Y":"2024-08-21","Z":"","M":""},
+{"G":"Normandie GC ","A":"Jack Nicklaus","L":"Missouri ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"$15M","H":"Robert Foulis","Y":"2024-10-31","Z":"Clayco","M":""},
+{"G":"Swope Memorial ","A":"Todd Clark Brent Hugo","L":"Missouri ","U":"USA","D":"2026","C":"Mid-America","J":"Renovate","S":"Construction","B":"$8.5M","H":"A.W. Tillinghast","Y":"2025-01-01","Z":"CE Golf Design","M":"Ron Whitten "},
+{"G":"Country Club of Lincoln ","A":"Todd Quitno","L":"Nebraska ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-09-25","Z":"","M":""},
+{"G":"Old Dane ","A":"Trev Dormer","L":"Nebraska ","U":"USA","D":"2026","C":"Bunkerdrum Jeff Bradley","J":"Rebuild ","S":"Construction","B":"","H":"Will Anderson","Y":"2024-11-10","Z":"East Valley Irrigation EVI","M":"Quirky Design "},
+{"G":"Wildcreek ","A":"Brian Curley","L":"Nevada ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"$6.5M","H":"Phelps","Y":"2024-12-29","Z":"Mazz","M":"Par 34 "},
+{"G":"Hooper GC ","A":"Jeff Stein","L":"New Hampshire ","U":"USA","D":"2027","C":"MAS Golf","J":"Restore","S":"Drawing boards ","B":"","H":"Stiles Van Kleek","Y":"2024-10-27","Z":"","M":"steingolfdesign "},
+{"G":"Owl's Nest Vineyard ","A":"Robert McNeil","L":"New Hampshire ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Cornish","Y":"2023-12-22","Z":"White Mountain","M":"Vineyard "},
+{"G":"Arcola CC ","A":"Andy Staples","L":"New Jersey ","U":"USA","D":"2026","C":"LaBar","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-06-05","Z":"","M":""},
+{"G":"Baltusrol Upper ","A":"Hanse Wagner ","L":"New Jersey ","U":"USA","D":"2025","C":"Total Turf","J":"Restore","S":"Construction","B":"","H":"A.W. Tillinghast","Y":"2024-10-21","Z":"Golf Preservations Inc","M":"Golf Water Paul Roche "},
+{"G":"Liberty National ","A":"PGA Tour Design Services","L":"New Jersey ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Ongoing","B":"","H":"Tom Kite","Y":"2025-01-19","Z":"","M":""},
+{"G":"Montclair ","A":"Brian Schneider","L":"New Jersey ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Ross Banks","Y":"2024-11-13","Z":"4th nine","M":"Montclair "},
+{"G":"Morris County GC ","A":"Jaeger Kovich Nicklaus Mills","L":"New Jersey ","U":"USA","D":"2025","C":"LGR LaBar","J":"Restore","S":"Construction","B":"","H":"Raynor","Y":"2024-11-09","Z":"","M":"nicklausmills "},
+{"G":"Tavistock CC ","A":"Jaegar Kovich","L":"New Jersey ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Alex Findlay","Y":"2023-08-23","Z":"","M":""},
+{"G":"Weequahic GC ","A":"Stephen Kay Garrett Wasson Matt Schiffer","L":"New Jersey ","U":"USA","D":"2025","C":"Downes Tree Service Brad Sparta","J":"Renovate","S":"Construction","B":"$9.3M","H":"Lowe Purdy","Y":"2024-11-09","Z":"","M":"Rain Bird "},
+{"G":"Scott Park ","A":"Trey Kemp","L":"New Mexico ","U":"USA","D":"2025","C":"Colligan","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-12-24","Z":"","M":""},
+{"G":"Crag Burn ","A":"Tyler Rae","L":"New York ","U":"USA","D":"2026","C":"NMP Golf","J":"Renovate","S":"Construction","B":"$5M","H":"RTJ Sr.","Y":"2025-01-19","Z":"Golf Preservations","M":"3D Rendering "},
+{"G":"Deepdale ","A":"Scot Sherman","L":"New York ","U":"USA","D":"2026","C":"MacCurrach","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-29","Z":"","M":"scotsherman "},
+{"G":"Glen Oak ","A":"Chris Wilczynski ","L":"New York ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"RTJ Sr.","Y":"2023-06-26","Z":"","M":""},
+{"G":"North Fork CC ","A":"David Ferris","L":"New York ","U":"USA","D":"2025","C":"George E. Ley","J":"Restore","S":"Ongoing","B":"","H":"Donald Ross","Y":"2023-10-28","Z":"","M":"sanfordferrisgolfdesign "},
+{"G":"Oak Hill West ","A":"Andrew Green ","L":"New York ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2023-07-20","Z":"","M":""},
+{"G":"Sands Point ","A":"Keith Foster","L":"New York ","U":"USA","D":"2025","C":"New Generation Juan Trenado","J":"Restore","S":"Ongoing","B":"","H":"A.W. Tillinghast","Y":"2024-09-18","Z":"","M":"MGA "},
+{"G":"Sullivan County GC ","A":"Colton Craig Tom Coyne","L":"New York ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-07-22","Z":"","M":"Course Called Home "},
+{"G":"3's Charlotte ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-08-21","Z":"Davis Sezna","M":"8 AM Golf "},
+{"G":"CCNC Cardinal ","A":"Andrew Green","L":"North Carolina ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-06-10","Z":"","M":""},
+{"G":"Charlotte CC ","A":"Andrew Green","L":"North Carolina ","U":"USA","D":"2025","C":"Total Turf GS Greg Hufner","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-12-02","Z":"","M":"Gary Williams "},
+{"G":"Gillespie ","A":"Rees Jones","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$2M","H":"Perry Maxwell","Y":"2024-07-01","Z":"PGA","M":" "},
+{"G":"Pine Lake CC ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-01-11","Z":"PM Mazzella","M":""},
+{"G":"Starmount Forest ","A":"Kris Spence","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Stiles Van Kleek","Y":"2024-12-11","Z":"PM Xan Swaim","M":"Irrigation Mike Pignato "},
+{"G":"Thistle Golf Club ","A":"CR Lutzke","L":"North Carolina ","U":"USA","D":"2025","C":"Carlos Perez","J":"Renovate","S":"Construction","B":"","H":"Tim Cate","Y":"2024-06-06","Z":"","M":"Sprig Greens "},
+{"G":"Brookside CC ","A":"Tyler Rae","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-30","Z":"","M":"Ross Greens "},
+{"G":"Cincinnati CC ","A":"Michael Hurdzan Chris Hurdzan","L":"Ohio ","U":"USA","D":"2025","C":"Aspen Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-06-23","Z":"Joel Braun Technical Choice","M":""},
+{"G":"Denison University ","A":"Gil Hanse","L":"Ohio ","U":"USA","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-27","Z":"Granville","M":""},
+{"G":"Grizzly ","A":"Michael Hurdzan","L":"Ohio ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-08-06","Z":"","M":""},
+{"G":"Hyde Park ","A":"Tyler Rae","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-01-05","Z":"","M":""},
+{"G":"Lakewood CC ","A":"Keith Foster Kevin Hargrave","L":"Ohio ","U":"USA","D":"2025","C":"Total Turf GS","J":"Restore","S":"Construction","B":"$6M","H":"A.W. Tillinghast","Y":"2024-10-30","Z":"MKA Consultants Heritage Links Irrigation","M":"Masterplan "},
+{"G":"Medina CC ","A":"Dave Zinkand","L":"Ohio ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$10M","H":"","Y":"2024-08-03","Z":"Reversible","M":""},
+{"G":"NCR CC North ","A":"Jim Nagle","L":"Ohio ","U":"USA","D":"2025","C":"Nick Mazzella","J":"Restore","S":"Construction","B":"","H":"Dick Wilson","Y":"2024-11-07","Z":"Aspen Corporation","M":"Mazzella Partnership "},
+{"G":"Westwood CC ","A":"Ron Forse Jim Nagle","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"C.H. Alison","Y":"2024-10-19","Z":"","M":""},
+{"G":"Adams GC ","A":"Randy Heckenkemper","L":"Oklahoma ","U":"USA","D":"2025","C":"Jonesplan","J":"Renovate","S":"Construction","B":"$2.4M","H":"","Y":"2024-10-22","Z":"","M":""},
+{"G":"Karsten Creek ","A":"Andrew Green","L":"Oklahoma ","U":"USA","D":"2025","C":"McDonald Sons Heritage Links","J":"Rebuild ","S":"Construction","B":"$31M","H":"Tom Fazio","Y":"2024-09-14","Z":"Ivan Salas Eddie Ruvalcaba","M":""},
+{"G":"Lake Oswego ","A":"Dan Hixson","L":"Oregon ","U":"USA","D":"2025","C":"Milroy Golf Systems","J":"Rebuild ","S":"Construction","B":"$3.2M","H":"","Y":"2024-10-29","Z":"1600 yards","M":"Grow in "},
+{"G":"St. Helens GC ","A":"Carlton Marshall","L":"Oregon ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-12-19","Z":"","M":"Rerouting "},
+{"G":"Chester Valley ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Short","S":"Grow In","B":"","H":"","Y":"2025-01-11","Z":"6 holes","M":"Short Game Area "},
+{"G":"Cobbs Creek Olde ","A":"Hanse Wagner Jim Wagner","L":"Pennsylvania ","U":"USA","D":"2026","C":"Total Turf GS","J":"Restore","S":"Construction","B":"$20M","H":"Wilson Flynn Crump","Y":"2024-04-12","Z":"TGR Foundation","M":"William Flynn "},
+{"G":"Concord CC ","A":"Ron Forse","L":"Pennsylvania ","U":"USA","D":"2025","C":"","J":"Restore","S":"Construction","B":"","H":"Wilson Flynn Crump","Y":"2024-10-22","Z":"","M":"Sod "},
+{"G":"Eagles Mere CC ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"William Flynn","Y":"2024-03-05","Z":"","M":""},
+{"G":"Merion West ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Hugh Wilson","Y":"2023-10-25","Z":"","M":""},
+{"G":"Philadelpha CC Spring Mill ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2025","C":"Mottin Golf","J":"Restore","S":"Construction","B":"$15M","H":"William Flynn","Y":"2024-12-05","Z":"Paul Roche","M":"Middletown Sprinklers "},
+{"G":"St. Davids ","A":"Tyler Rae","L":"Pennsylvania ","U":"USA","D":"2025","C":"Mottin Golf","J":"Renovate","S":"Ongoing","B":"","H":"Donald Ross","Y":"2024-11-20","Z":"","M":"Green expansion "},
+{"G":"Tumblebrook ","A":"Ron Prichard Christine Fraser Jeff Mingay","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2023-10-07","Z":"Josh Woodward","M":"Vaughn Halyard "},
+{"G":"Rhode Island CC ","A":"Ian Andrew","L":"Rhode Island ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-12-11","Z":"","M":""},
+{"G":"Country Club of Charleston ","A":"","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Raynor","Y":"2025-01-14","Z":"","M":""},
+{"G":"Darlington CC ","A":"Richard Mandell","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-09-04","Z":"","M":"Par 5 "},
+{"G":"Greenville Chanticleer ","A":"Beau Welling","L":"South Carolina ","U":"USA","D":"2025","C":"Landscapes Unlimited Kyle Regen","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"Joe Titzer Gary Schapiro","M":"River silt "},
+{"G":"Harbour Town ","A":"Davis Love","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2024-10-02","Z":"","M":""},
+{"G":"Moss Point GC North ","A":"Clyde Johnston","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Tom Fazio","Y":"2023-10-26","Z":"Devil's Elbow","M":"HOA Amenities "},
+{"G":"Musgrove Mill ","A":"Erik Larsen","L":"South Carolina ","U":"USA","D":"2025","C":"McConnell","J":"Renovate","S":"Ongoing","B":"","H":"Palmer","Y":"2024-12-31","Z":"Environmental Landscaping","M":""},
+{"G":"Olde Eight ","A":"Drew Rogers","L":"South Carolina ","U":"USA","D":"2026","C":"Total Turf GS","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2024-12-06","Z":"Mazzella Partnership","M":""},
+{"G":"River Hills CC ","A":"Jeff Lawrence","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Tom Jackson","Y":"2024-12-07","Z":"","M":"Long Range Planning "},
+{"G":"Whispering Pines ","A":"","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$1.4M","H":"","Y":"2024-10-23","Z":"","M":""},
+{"G":"Lakeview GC ","A":"Kevin Norby","L":"South Dakota ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$0.6M","H":"","Y":"2023-08-27","Z":"","M":"Muni Budget "},
+{"G":"Cherokee CC ","A":"Tyler Rae","L":"Tennessee ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2025-01-05","Z":"","M":""},
+{"G":"Jackson CC ","A":"Kris Spence","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$4M","H":"","Y":"2024-12-21","Z":"","M":"Infrastructure "},
+{"G":"Sweetens Cove ","A":"Tad King Rob Collins","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2024-10-23","Z":"","M":""},
+{"G":"Bentwood CC ","A":"Jeff Blume","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$2M","H":"","Y":"2024-11-23","Z":"","M":""},
+{"G":"Clubs of Stonebridge Ranch ","A":"Lanny Wadkins Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Pete Dye","Y":"2024-09-28","Z":"","M":"Cross Bunker "},
+{"G":"Coronado CC ","A":"Bill Bergin","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-09-26","Z":"Ameriturf Kurt Nortman","M":"777 Bentgrass "},
+{"G":"Dallas National ","A":"Tom Fazio","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$30M","H":"","Y":"2024-04-14","Z":"","M":""},
+{"G":"Georgetown CC ","A":"Brian Ross","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-06-04","Z":"","M":"Greens Renovation "},
+{"G":"Great Hills CC ","A":"Chet Williams","L":"Texas ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$22M","H":"","Y":"2024-10-09","Z":"Irrigation EC Design","M":"Water Kimley-Horn "},
+{"G":"Houston CC ","A":"Andrew Green","L":"Texas ","U":"USA","D":"2026","C":"McDonald Sons","J":"Masterplan","S":"Drawing boards ","B":"","H":"RTJ Coore","Y":"2024-11-27","Z":"Irrigation Leibold EC Design","M":""},
+{"G":"Lakewood CC ","A":"Andrew Green","L":"Texas ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$30M","H":"Bendelow Plummer Coore Crenshaw","Y":"2024-08-26","Z":"Tahoma 31 fairway rough Bent greens with hydronics","M":""},
+{"G":"Laredo CC ","A":"Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Joe Finger","Y":"2024-06-23","Z":"","M":"Grow In "},
+{"G":"Meadowbrook ","A":"John Colligan Trey Kemp","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links VM Golf Fleetwood Services","J":"Rebuild ","S":"Construction","B":"$14M","H":"","Y":"2024-10-22","Z":"Irrigation Larry Rodgers","M":"Shaper Noel Avellenda "},
+{"G":"Mira Vista CC ","A":"Andy Staples","L":"Texas ","U":"USA","D":"2025","C":"LaBar Jimmy Mikkelsen","J":"Rebuild ","S":"Construction","B":"$16M","H":"Tom Weiskopf","Y":"2024-12-22","Z":"","M":"Shaping "},
+{"G":"Quail Valley La Quinta ","A":"Jeff Blume Billy Ray Brown","L":"Texas ","U":"USA","D":"2025","C":"Halff Associates","J":"Renovate","S":"Construction","B":"$5.5M","H":"Jack Miller","Y":"2024-10-15","Z":"","M":""},
+{"G":"San Angelo CC ","A":"Tripp Davis","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"John Bredemus","Y":"2024-12-07","Z":"","M":"Course Construction "},
+{"G":"San Angelo CC ","A":"Tripp Davis","L":"Texas ","U":"USA","D":"2025","C":"VM Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-06","Z":"","M":"Grading "},
+{"G":"Scott Schreiner Muni ","A":"","L":"Texas ","U":"USA","D":"2025","C":"XGD Systems","J":"Renovate","S":"Construction","B":"$4M","H":"Joe Finger","Y":"2024-12-03","Z":"PM Troon True Club Solutions","M":""},
+{"G":"Starcke Park ","A":"Ross Quitno Crace","L":"Texas ","U":"USA","D":"2025","C":"Mid-America","J":"Renovate","S":"Construction","B":"$6M","H":"John Bredemus","Y":"2024-10-25","Z":"Irrigation Ian Williams","M":"ASGCA "},
+{"G":"TPC Craig Ranch ","A":"Lanny Wadkins Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Irrigation","B":"$12M","H":"Weiskopf","Y":"2024-10-09","Z":"","M":""},
+{"G":"TRA Lake ","A":"Ty Butler","L":"Texas ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"","H":"Bruce Littell","Y":"2024-03-27","Z":"was Cape Royale","M":""},
+{"G":"Alpine CC ","A":"John Fought","L":"Utah ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-01-01","Z":"","M":""},
+{"G":"Jeremy Ranch ","A":"Brandon Johnson","L":"Utah ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-01-17","Z":"","M":""},
+{"G":"Rose Park GC ","A":"","L":"Utah ","U":"USA","D":"2026","C":"","J":"Irrigation","S":"Drawing boards ","B":"$4.5M","H":"","Y":"2024-10-09","Z":"","M":""},
+{"G":"Stowe CC ","A":"Beau Welling","L":"Vermont ","U":"USA","D":"2025","C":"Chase Webb","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-05-13","Z":"","M":""},
+{"G":"CC VA Tuckahoe Creek ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"Joe Lee","Y":"2024-06-14","Z":"","M":""},
+{"G":"Crossings ","A":"Lester George Vinny Giles","L":"Virginia ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$11M","H":"","Y":"2024-10-18","Z":"GBN Phil Oweby","M":""},
+{"G":"Foundry ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Ongoing","B":"$1M","H":"Fred Findlay","Y":"2024-06-14","Z":"","M":""},
+{"G":"Lexington G&CC ","A":"Lester George","L":"Virginia ","U":"USA","D":"2025","C":"Aspen Golf Construction","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-25","Z":"Toro 2 Wire Irrigation","M":"USGA Greens "},
+{"G":"Williamsburg The Shoe ","A":"Rees Jones","L":"Virginia ","U":"USA","D":"2025","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2024-07-15","Z":"","M":""},
+{"G":"North Shore GC ","A":"Dan Hixson","L":"Washington ","U":"USA","D":"2025","C":"Ridgetop Golf","J":"Renovate","S":"Construction","B":"$7.5M","H":"","Y":"2025-01-18","Z":"","M":""},
+{"G":"East Potomac ","A":"Tom Doak","L":"Washington DC ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Walter Travis","Y":"2022-12-14","Z":"","M":"Dapper "},
+{"G":"Rock Creek Park ","A":"Hanse Wagner","L":"Washington DC ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$25M","H":"William Flynn","Y":"2024-11-28","Z":"","M":"Mike McCartin "},
+{"G":"Grand Geneva ","A":"Matt Dusenberry","L":"Wisconsin ","U":"USA","D":"2025","C":"","J":"Short 10","S":"Construction","B":"","H":"","Y":"2024-09-17","Z":"","M":""},
+{"G":"North Hills CC ","A":"Samuel Beckman","L":"Wisconsin ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-27","Z":"","M":"Amateur "},
+{"G":"Trout Lake ","A":"Paul Albanese Chris Lutzke","L":"Wisconsin ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-11-09","Z":"","M":"algolfdesigns "},
+{"G":"Whitnall Park ","A":"Todd Quitno","L":"Wisconsin ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$8.3M","H":"","Y":"2023-12-07","Z":"","M":"Reconstruction "},
+{"G":"Yahara ","A":"Todd Quitno","L":"Wisconsin ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"$2.5M","H":"","Y":"2023-09-07","Z":"","M":"Reduce 18 holes "},
+{"G":"Airport GC ","A":"","L":"Wyoming ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$5M","H":"","Y":"2024-11-29","Z":"Muni Irrigation","M":""},
+{"G":"White Mountain GC ","A":"","L":"Wyoming ","U":"USA","D":"2025","C":"","J":"Irrigation","S":"Ongoing","B":"","H":"","Y":"2024-10-07","Z":"Harvey Irrigation","M":""},
+{"G":"Tierra del Sol ","A":"RTJ2 Mike Gorman","L":"Antilles ","U":"Aruba","D":"2025","C":"GreenBall Golf Construction","J":"Renovate","S":"Construction","B":"","H":"RTJ","Y":"2024-12-23","Z":"Jason Chennault","M":"Iberostar "},
+{"G":"Treasure Cay ","A":"","L":"Abaco ","U":"Bahamas","D":"2029","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-09-16","Z":"","M":""},
+{"G":"Cotton Bay ","A":"RTJ II Mike Gorman","L":"Eleuthera ","U":"Bahamas","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"RTJ II","Y":"2024-11-17","Z":"","M":"Adam Moeller "},
+{"G":"Casa de Campo Teeth of the Dog ","A":"Jerry Pate Steve Dana","L":"La Romana ","U":"Dominican Republic","D":"2025","C":"Total Golf Construction","J":"Renovate","S":"Construction","B":"","H":"Pete Dye","Y":"2024-08-10","Z":"Pure Dynasty Paspalum","M":""},
+{"G":"Twin Dolphin Short ","A":"Todd Eckenrode","L":"Baja ","U":"Mexico","D":"2025","C":"GreenLynx","J":"Short","S":"Grow In","B":"","H":"","Y":"2024-11-03","Z":"TifGrand","M":""},
+{"G":"Mandarina ","A":"Greg Norman","L":"Puerto Vallarta ","U":"Mexico","D":"2025","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2024-05-23","Z":"","M":"gngcd "},
+{"G":"TPC Dorado Beach East ","A":"RTJ Jr.","L":"Dorado ","U":"Puerto Rico","D":"2025","C":"Heritage Links","J":"Renovate","S":"Construction","B":"","H":"RTJ Sr.","Y":"2024-07-02","Z":"EarthGuard Mulch","M":"Agronomist "},
+{"G":"Club del Uruguay ","A":"CDP DeVries","L":"Montevideo ","U":"Uruguay","D":"2026","C":"","J":"Restore","S":"Ongoing","B":"","H":"Mackenzie","Y":"2024-06-19","Z":"","M":""},
+{"G":"Sandwell Park ","A":"Mackenzie Ebert","L":"Birmingham ","U":"England","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Harry Colt","Y":"2023-10-30","Z":"","M":"Toro Irrigation "},
+{"G":"Farrington Park ","A":"Tom Mackenzie","L":"Bristol ","U":"England","D":"2025","C":"","J":"Reduce","S":"Construction","B":"","H":"","Y":"2024-06-23","Z":"12 holes","M":""},
+{"G":"La Grande Mare ","A":"Robin Hiseman","L":"Guernsey ","U":"England","D":"2025","C":"MJ Abbott","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-03-07","Z":"European Golf Design","M":"Toro Irritech John Clarkin Jonathan Pendry "},
+{"G":"Hayling GC ","A":"Mackenzie Ebert","L":"Hampshire ","U":"England","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-10-27","Z":"","M":""},
+{"G":"La Moye ","A":"Mackenzie Ebert","L":"Jersey ","U":"England","D":"2026","C":"John Heath","J":"Renovate","S":"Ongoing","B":"","H":"Braid","Y":"2024-12-28","Z":"","M":"13th Hole "},
+{"G":"Verulam ","A":"James Edwards EDI","L":"St. Albans ","U":"England","D":"2025","C":"CJW Conor Walsh","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-22","Z":"","M":"Phase II "},
+{"G":"St. George's Hill ","A":"Brian Schneider Clyde Johnson","L":"Surrey ","U":"England","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Harry Colt","Y":"2023-08-01","Z":"Jaspers Miners Joe McDonnell","M":"1913 Map "},
+{"G":"Sunningdale Old ","A":"Hanse Wagner","L":"Surrey ","U":"England","D":"2030","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Harry Colt","Y":"2024-03-01","Z":"","M":""},
+{"G":"Wentworth East ","A":"EGD Dave Sampson","L":"Surrey ","U":"England","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Harry Colt","Y":"2024-09-20","Z":"","M":""},
+{"G":"Donegal GC ","A":"Paul McGinley Joe Bedford","L":"Donegal ","U":"Ireland","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"$1.1M","H":"Eddie Hackett","Y":"2024-06-12","Z":"","M":""},
+{"G":"Portsalon GC ","A":"Paul McGinley","L":"Donegal ","U":"Ireland","D":"2029","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Thompson Ruddy","Y":"2025-01-20","Z":"","M":""},
+{"G":"Rosses Point ","A":"Martin Ebert","L":"Sligo ","U":"Ireland","D":"2028","C":"DAR Golf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-11-16","Z":"MCC Water Solutions","M":"Course Manager "},
+{"G":"Royal Belfast ","A":"CDP Frank Pont Hendrik Hilgert","L":"Holywood ","U":"No. Ireland","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Harry Colt","Y":"2024-12-20","Z":"","M":"CDP "},
+{"G":"Royal Portrush Valley ","A":"Martin Ebert","L":"Portrush ","U":"No. Ireland","D":"2025","C":"DAR Golf","J":"Re-Design","S":"Ongoing","B":"","H":"","Y":"2024-05-06","Z":"","M":"Links Golf "},
+{"G":"Portstewart ","A":"Ross McMurray EGD","L":"Portstewart ","U":"No. Ireland","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Willie Park","Y":"2024-04-06","Z":"","M":"3 courses "},
+{"G":"Taymouth Castle ","A":"Beau Welling","L":"Aberfeldy ","U":"Scotland","D":"2025","C":"Discovery Land","J":"Renovate","S":"Construction","B":"","H":"James Braid","Y":"2024-09-14","Z":"","M":"Grow in "},
+{"G":"Belleisle ","A":"Jeffrey Danner Stuart Rennie Paul Lawrie","L":"Ayrshire ","U":"Scotland","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"James Braid","Y":"2024-10-05","Z":"","M":"Pangaea Golf Architecture "},
+{"G":"Troon Links Darley ","A":"Jeffrey Danner Stuart Rennie Paul Lawrie","L":"Ayrshire ","U":"Scotland","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-05","Z":"","M":""},
+{"G":"Monifieth Golf Links ","A":"CDP Pont Clayton Sam Cooper","L":"Dundee ","U":"Scotland","D":"2026","C":"CJW Golf","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2022-06-14","Z":"","M":"Medal "},
+{"G":"Turnberry Ailsa ","A":"Martin Ebert","L":"Girvan ","U":"Scotland","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$1.3M","H":"","Y":"2024-11-23","Z":"","M":"Dogleg 7th "},
+{"G":"Spey Bay ","A":"CDP Clayton DeVries Pont","L":"Moray ","U":"Scotland","D":"2028","C":"Chris Haspell","J":"Rebuild ","S":"Ongoing","B":"","H":"Ben Sayers","Y":"2024-10-29","Z":"Reversible","M":"New Tees "},
+{"G":"Royal Dornoch Struie ","A":"Tom Mackenzie","L":"Sutherland ","U":"Scotland","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"$2M","H":"","Y":"2024-10-25","Z":"10th hole","M":""},
+{"G":"Aura Golf ","A":"Lassi Pekka Tilander","L":"Finland ","U":"Finland","D":"2026","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-04-12","Z":"","M":"GCA "},
+{"G":"Helsinki GC ","A":"Philip Spogárd","L":"Finland ","U":"Finland","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-08-04","Z":"Laru Jani","M":"USGA Spec "},
+{"G":"Pickala Golf Park ","A":"Nicklaus Dirk Bouts","L":"Finland ","U":"Finland","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-09-13","Z":"","M":"Harris Kalinka "},
+{"G":"Pickala Rock Resort ","A":"Lassi Pekka Tilander","L":"Finland ","U":"Finland","D":"2025","C":"Nelson Vecchio","J":"Short","S":"Construction","B":"","H":"","Y":"2024-07-24","Z":"T.A.S. Sylvain Duval Steve Okula","M":"Graham Foster "},
+{"G":"Sarfvik GC Old ","A":"Pierre Fulke","L":"Helsinki ","U":"Finland","D":"2026","C":"David Nelson Vecchio","J":"Rebuild","S":"Construction","B":"$9M","H":"","Y":"2024-11-14","Z":"PM Ilkka Kaivosoja","M":""},
+{"G":"An der Pinnau ","A":"Thomas Himmel","L":"Hamburg ","U":"Germany","D":"2025","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-05-29","Z":"","M":""},
+{"G":"Green Eagle West ","A":"European Golf Design","L":"Hamburg ","U":"Germany","D":"2026","C":"","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2024-11-24","Z":"","M":"2035 Ryder Cup "},
+{"G":"Castelfalfi ","A":"","L":"Piedmont ","U":"Italy","D":"2028","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-09-16","Z":"Discovery Land","M":""},
+{"G":"Noordwijkse ","A":"Martin Ebert","L":"Amsterdam ","U":"Netherlands","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Frank Pennink","Y":"2024-12-28","Z":"","M":"Sand Dunes "},
+{"G":"Keppelse ","A":"Spogard Van der Vaart","L":"Hoog-Keppel ","U":"Netherlands","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-08-12","Z":"","M":""},
+{"G":"Losby ","A":"Caspar Grauballe","L":"Oslo ","U":"Norway","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-02-01","Z":"","M":""},
+{"G":"Els Club Vilamoura ","A":"Ernie Els","L":"Algarve ","U":"Portugal","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$20M","H":"Arnold Palmer","Y":"2024-11-06","Z":"","M":""},
+{"G":"Salgados GC ","A":"Troon Design","L":"Algarve ","U":"Portugal","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$3.5M","H":"","Y":"2024-12-17","Z":"","M":""},
+{"G":"Villa Martin ","A":"Tim Lobb","L":"Alicante ","U":"Spain","D":"2026","C":"SURTEC Golf Agronomy","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-29","Z":"","M":"lobbpartners "},
+{"G":"Pineda Sevilla ","A":"CDP Frank Pont Hendrik Hilgert","L":"Andalucia ","U":"Spain","D":"2027","C":"Accttua","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-02-21","Z":"Fernández-Castaño","M":""},
+{"G":"Infinitum Hills ","A":"Dave Sampson EGD","L":"Barcelona ","U":"Spain","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"","Y":"2024-09-10","Z":"","M":""},
+{"G":"Club de Campo Madrid Seve ","A":"Olazabal","L":"Madrid ","U":"Spain","D":"2025","C":"Carlos Arambarri Toni Ortner","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-02-14","Z":"","M":""},
+{"G":"Corvera ","A":"","L":"Murcia ","U":"Spain","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"","Y":"2024-03-07","Z":"","M":"corveragolf "},
+{"G":"Torslanda ","A":"Christian Lundin","L":"Gothenburg ","U":"Sweden","D":"2025","C":"","J":"Rebuild ","S":"Ongoing","B":"","H":"","Y":"2024-11-17","Z":"","M":"Committee "},
+{"G":"Fågelbro ","A":"Johan Benestam","L":"Stockholm ","U":"Sweden","D":"2025","C":"Nelson Vecchio","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-09-01","Z":"CapillaryFlow","M":""},
+{"G":"Fairbairn ","A":"Ben Davey","L":"Canberra ","U":"Australia","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-08-08","Z":"","M":"Contour "},
+{"G":"Yowani CC ","A":"Ben Davey","L":"Canberra ","U":"Australia","D":"2025","C":"Flemming Golf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-10-14","Z":"","M":"Contour Golf Design "},
+{"G":"Mollymook GC ","A":"Ryan Van Der Veen","L":"NSW ","U":"Australia","D":"2025","C":"Think Green Golf and Landscaping","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-12-10","Z":"","M":""},
+{"G":"New South Wales ","A":"Mackenzie Ebert Thomas Stout","L":"NSW ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Grow In","B":"","H":"MacKenzie","Y":"2024-12-27","Z":"","M":"777 bent sod "},
+{"G":"Riverside Oaks Bungool ","A":"","L":"NSW ","U":"Australia","D":"2025","C":"Flemming Golf","J":"Renovate","S":"Construction","B":"","H":"Bob Harrison","Y":"2024-02-24","Z":"Flood repair","M":""},
+{"G":"Royal Sydney ","A":"Hanse Wagner","L":"NSW ","U":"Australia","D":"2025","C":"Harley Kruse","J":"Restore","S":"Construction","B":"$12M","H":"Kent","Y":"2024-09-24","Z":"Josh McFadden","M":"Santa Ana Couch "},
+{"G":"Royal Perth ","A":"Clayton Lukas Michel","L":"Perth ","U":"Australia","D":"2025","C":"Harley Kruse","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2024-11-25","Z":"","M":"Santa Ana bermuda "},
+{"G":"Tasmania GC ","A":"Ben Davey","L":"Tasmania ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-03-16","Z":"Highway","M":""},
+{"G":"Centenary Park ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","D":"2025","C":"NewScope Turf & Civil","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-10-16","Z":"South Coast Irrigation Matt Heaton","M":"newscope_turfcivil "},
+{"G":"Huntingdale ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Alison","Y":"2024-10-25","Z":"Cranbourne JV","M":"environmental_golf_solutions "},
+{"G":"Metropolitan ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","D":"2025","C":"McMahons","J":"Restore","S":"Construction","B":"","H":"","Y":"2024-11-15","Z":"STRI Australia","M":""},
+{"G":"Yering Meadows ","A":"CDP Clayton Lucas Michel","L":"Victoria ","U":"Australia","D":"2026","C":"GreenSpace Peter Vlahandreas","J":"Renovate","S":"Masterplan","B":"$0.3M","H":"","Y":"2024-06-23","Z":"","M":""},
+{"G":"Kennedy Bay ","A":"Graham Marsh","L":"Western Aus. ","U":"Australia","D":"2025","C":"McMahons","J":"Renovate","S":"Construction","B":"","H":"Ian Baker-Finch","Y":"2023-09-26","Z":"","M":"Rough Shaping "},
+{"G":"The Hills ","A":"Oglivy Cocking Mead","L":"Arrowtown ","U":"NZ","D":"2028","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-08-23","Z":"Jim Rohrstaff","M":""},
+{"G":"Boulcott’s Farm ","A":"Kristine Kerr","L":"Wellington ","U":"NZ","D":"2029","C":"","J":"Rebuild 6","S":"Ongoing","B":"","H":"","Y":"2024-12-12","Z":"","M":""},
+{"G":"Miramar Links ","A":"MacPherson","L":"Wellington ","U":"NZ","D":"2026","C":"","J":"Rebuild 9","S":"Ongoing","B":"","H":"","Y":"2025-01-20","Z":"","M":"SM Golf Design "},
+{"G":"Garden Course ","A":"Peter Harradine","L":"Abu Dhabi ","U":"Abu Dhabi","D":"2025","C":"","J":"Rebuild ","S":"Construction","B":"","H":"","Y":"2024-07-05","Z":"","M":""},
+{"G":"Wellington Gymkhana ","A":"Vijit Nandrajog","L":"Tamil Nadu ","U":"India","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-06-10","Z":"","M":""},
+{"G":"Woo Jeong Hills ","A":"Dye Designs O'Brien McGarey","L":"Seoul ","U":"Korea","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Perry Dye","Y":"2024-12-21","Z":"","M":""},
+{"G":"KLGCC East ","A":"Adam Calver","L":"Kuala Lumpur ","U":"Malaysia","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-11-04","Z":"","M":""},
+{"G":"SICC Island ","A":"Neil Haworth","L":"Singapore ","U":"Singapore","D":"2025","C":"TEHC Centaur Asia Pacific","J":"Renovate","S":"Construction","B":"$22M","H":"","Y":"2024-06-28","Z":"","M":"Profile Porous Ceramic "},
+{"G":"Warren Hills ","A":"Macintosh","L":"Harare ","U":"Zimbabwe","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$7M","H":"","Y":"2024-01-04","Z":"","M":""}
+ ]
+}
diff --git a/data/g2017.json b/data/g2017.json
new file mode 100644
index 0000000000000..2cb7ba8f14101
--- /dev/null
+++ b/data/g2017.json
@@ -0,0 +1,70 @@
+{
+ "data":[
+{"G":"TPC Danzante Bay ","A":"Rees Jones","L":"Baja California ","U":"Mexico","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Norman Signature Course at Vidanta ","A":"Greg Norman","L":"Nayarit ","U":"Mexico","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Club de Panama ","A":"Ray Hearn","L":"Panama City ","U":"Panama","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Royal Ottawa GC ","A":"Neil Haworth","L":"Ottawa ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Vestavia CC ","A":"Lester George","L":"Alabama ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Victory Course at Verrado GC ","A":"Tom Lehman","L":"Arizona ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Redlands CC ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Macbeth MacKenzie","Z":"","M":""},
+{"G":"Torrey Pines North ","A":"Tom Weiskopf","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$12.6M","H":"","Z":"","M":"PGA Tour "},
+{"G":"Aberdeen CC ","A":"Jim Fazio","L":"Florida ","U":"USA","C":"Ryangolf","J":"Renovate","S":"Open","B":"","H":"","Z":"Platinum Paspalum","M":""},
+{"G":"Cypress Lake GC ","A":"Ron Forse","L":"Florida ","U":"USA","C":"Lepanto Golf","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Grow In "},
+{"G":"Delaire CC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Southeastern Golf","J":"Renovate","S":"Open","B":"$4.4M","H":"Joe Lee","Z":"","M":""},
+{"G":"Eastwood GC ","A":"Steve Smyers","L":"Florida ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Sebastian Municipal GC ","A":"","L":"Florida ","U":"USA","C":"IGM","J":"Regrass","S":"Open","B":"$1M","H":"","Z":"Irrigation Nutt Construction","M":""},
+{"G":"St. Andrews ","A":"Tom Fazio II","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Streamsong Black ","A":"Hanse Wagner","L":"Florida ","U":"USA","C":"Bret Brennan","J":"New","S":"Open","B":"","H":"","Z":"Mini Verde Bermuda","M":""},
+{"G":"Piedmont Driving Club ","A":"Rees Jones","L":"Georgia ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"North Shore CC ","A":"Rick Jacobson","L":"Illinois ","U":"USA","C":"NMP","J":"Restore","S":"Open","B":"","H":"CH Alison","Z":"","M":"Historic Aerials "},
+{"G":"Club at Chatham Hills ","A":"Pete Dye","L":"Indiana ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Bayou Oaks GC City Park ","A":"Rees Jones","L":"Louisiana ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Portland CC ","A":"Ron Prichard Tyler Rae","L":"Maine ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Sankaty Head ","A":"Jim Urbina","L":"Massachusetts ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Emerson Armstrong ","Z":"","M":""},
+{"G":"Belvedere GC ","A":"Bruce Hepner","L":"Michigan ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"William Watson","Z":"","M":""},
+{"G":"Stoatin Brae GC ","A":"Eric Iverson Brian Schneider Brian Slawnik Don Placek","L":"Michigan ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Theodore Wirth GC ","A":"Kevin Norby","L":"Minnesota ","U":"USA","C":"","J":"Masterplan","S":"Open","B":"","H":"","Z":"2 new holes","M":""},
+{"G":"Big Cedar Mountain Top ","A":"Gary Player Jeff Lawrence","L":"Missouri ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Summit Club ","A":"Tom Fazio","L":"Nevada ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Watchung Valley GC ","A":"George Waters","L":"New Jersey ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Raynor O’Loughlin","Z":"","M":"Restoration "},
+{"G":"Century CC ","A":"Keith Foster","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Colt Allison","Z":"","M":""},
+{"G":"Winged Foot West ","A":"Hanse Wagner","L":"New York ","U":"USA","C":"LaBar Shellene Elmore","J":"Restore","S":"Open","B":"","H":"Tillinghast","Z":"","M":""},
+{"G":"Whippoorwill ","A":"Tripp Davis","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Banks","Z":"","M":""},
+{"G":"CC Asheville ","A":"Richard Mandell","L":"North Carolina ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Donald Ross","Z":"","M":""},
+{"G":"Compass Pointe GC ","A":"Rick Robbins Brian Lussier","L":"North Carolina ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Pinehurst Cradle ","A":"Hanse Wagner","L":"North Carolina ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Jimmie Austin OU Golf Club ","A":"Tripp Davis","L":"Oklahoma ","U":"USA","C":"Course Crafters","J":"Renovate","S":"Open","B":"","H":"","Z":"Shaper Bill Willingham","M":""},
+{"G":"WinStar ","A":"D.A. Weibring Steve Wolfard","L":"Oklahoma ","U":"USA","C":"","J":"New 9","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Silvies Valley Ranch ","A":"Dan Hixson","L":"Oregon ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"Reversible","M":""},
+{"G":"Fox Hill CC ","A":"Mark Mungeam","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Tillinghast","Z":"","M":""},
+{"G":"Shepherd's Rock Course Nemacolin Woodlands Resort ","A":"Pete Dye Tim Liddy","L":"Pennsylvania ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Atlantic Dunes ","A":"Davis Love","L":"South Carolina ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"","Z":"Sea Pines","M":""},
+{"G":"Congaree ","A":"Tom Fazio Blake Bickford","L":"South Carolina ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"TifGrand Bermuda","M":""},
+{"G":"Colleton River ","A":"Tim Liddy","L":"South Carolina ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Houston Oaks ","A":"Chet Williams","L":"Texas ","U":"USA","C":"Heritage Links Jon O'Donnell","J":"Renovate","S":"Open","B":"","H":"Ralph Plummer","Z":"","M":""},
+{"G":"Maridoe GC ","A":"Steve Smyers","L":"Texas ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Sugar Creek CC ","A":"Jeff Blume","L":"Texas ","U":"USA","C":"Greenscapes Six Mike Archer Joey Taylor","J":"Renovate","S":"Open","B":"$2.5M","H":"","Z":"","M":""},
+{"G":"Trinity Forest GC ","A":"Coore Crenshaw","L":"Texas ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"Bunkerdrum Jeff Bradley","Z":"","M":""},
+{"G":"University of Texas Spieth Lower 40 ","A":"Roy Bechtol Jordan Spieth","L":"Texas ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Golden Horseshoe GC Gold Course ","A":"Rees Jones","L":"Virginia ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Greenbrier Meadow ","A":"Kelly Shumate","L":"West Virginia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Greenbrier Old White ","A":"Keith Foster","L":"West Virginia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"CB MacDonald","Z":"Flood repair","M":""},
+{"G":"Sand Valley ","A":"Coore Crenshaw","L":"Wisconsin ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Wentworth West ","A":"Ernie Els Greg Letsche","L":"Surrey ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"Harry Colt","Z":"Thomas Rubi","M":" "},
+{"G":"Ardfin ","A":"Bob Harrison","L":"Jura ","U":"Scotland","C":"Scott Champion SOL Golf David Minogue","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Panorama Golf Resort ","A":"Michael Terech Libor Jirasek","L":"Kacov ","U":"Czech Republic","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"GC Herzogswalde ","A":"Christian Althaus","L":"Dresden ","U":"Germany","C":"Mick McShane","J":"New 9","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"West Cliffs ","A":"Cynthia Dye","L":"Vau ","U":"Portugal","C":"ProGolf Benjamim Silva","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Costa Daurada GC ","A":"Alfonso Vidaor Magí Sardà Green Project","L":"Tarragona ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Ayla GC ","A":"Greg Norman","L":"Aqaba ","U":"Jordan","C":"Dan Grassi Margarito Ayala","J":"New","S":"Open","B":"","H":"","Z":"Charles Graham On Course Project and Agronomic Consulting","M":""},
+{"G":"Singapore Island CC Bukit ","A":"Owen Hester","L":"Singapore ","U":"Singapore","C":"Green Dynasty","J":"Renovate","S":"Open","B":"","H":"James Braid","Z":"","M":""},
+{"G":"Samsun GC ","A":"Kevin Ramsey Golfplan","L":"Black Sea ","U":"Turkey","C":"Adam Kelland","J":"New","S":"Open","B":"","H":"","Z":"Golf International","M":""},
+{"G":"Trump International GC ","A":"Hanse Wagner","L":"Dubai ","U":"UAE","C":"Bret Brennan","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"FLC Ha Long Bay ","A":"Brian Curley","L":"Ha Long ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Vinpearl Vu Yen GC ","A":"IMG","L":"Hai Phong ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Amber Hills ","A":"Albanese Lutzke","L":"Yen Dung ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Cathedral Lodge ","A":"Greg Norman Bob Harrison","L":"Victoria ","U":"Australia","C":"Ryan Van Der Veen","J":"New","S":"Open","B":"","H":"","Z":"","M":"Golf Construction "},
+{"G":"Eastern GC ","A":"Greg Norman Bob Harrison","L":"Victoria ","U":"Australia","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Brookwater Golf & Country Club ","A":"Greg Norman Bob Harrison","L":"Queensland ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""}
+ ]
+}
diff --git a/data/g2018.json b/data/g2018.json
new file mode 100644
index 0000000000000..d29ae8c2eda58
--- /dev/null
+++ b/data/g2018.json
@@ -0,0 +1,71 @@
+{
+ "data":[
+{"G":"Rancho San Lucas ","A":"Greg Norman","L":"Cabo ","U":"Mexico","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Kananaskis Country GC ","A":"Gary Browning","L":"Alberta ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"$15M","H":"","Z":"","M":""},
+{"G":"Earl Grey GC ","A":"Wayne Carleton","L":"Calgary ","U":"Canada","C":"CTC Golf Construction","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Algonquin Resort St. Andrews-by-the-Sea ","A":"Rod Whitman Keith Cutten","L":"New Brunswick ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"Ben Cowan-Dewar","M":""},
+{"G":"The Nest GC ","A":"Doug Carrick","L":"Ontario ","U":"Canada","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"The Phoenician GC ","A":"Phil Smith","L":"Arizona ","U":"USA","C":"","J":"Reduce","S":"Open","B":"","H":"","Z":"was 27 holes","M":""},
+{"G":"Troon North Pinnacle ","A":"","L":"Arizona ","U":"USA","C":"Troon Ron Despain","J":"","S":"","B":"","H":"Weiskopf","Z":"","M":""},
+{"G":"Bel Air CC ","A":"Tom Doak Eric Iverson Kye Goalby Blake Conant","L":"California ","U":"USA","C":"Renaissance Golf Jose Vivo","J":"Restore","S":"Open","B":"","H":"George Thomas","Z":"Tommy Naccarato","M":"GCSAA BASF Turf "},
+{"G":"Baylands Golf Links ","A":"Forrest Richardson","L":"California ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Corica Park South ","A":"Rees Jones","L":"California ","U":"USA","C":"Greenway Golf","J":"Rebuild","S":"Open","B":"","H":"","Z":"Marc Logan","M":""},
+{"G":"El Niguel CC ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Lakeside ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"Landscapes Unlimited Jonathon Reisetter Andrew Littlefield","J":"Restore","S":"Open","B":"","H":"Max Behr","Z":"Kye Goalby Blake Conant","M":"Origins Golf Design "},
+{"G":"Rolling Hills CC ","A":"David Kidd","L":"California ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Torrey Pines South ","A":"Rees Jones","L":"California ","U":"USA","C":"Dave Linngren Jim Cluley Tom Works Landscapes Unlimited","J":"Renovate","S":"Open","B":"$12M","H":"","Z":"Brent Harvey Irrigation","M":""},
+{"G":"Zenyara ","A":"Clive Clark","L":"California ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"Estate course","M":""},
+{"G":"TPC Colorado ","A":"Art Schaupeter","L":"Colorado ","U":"USA","C":"Oliphant Golf Mike Stine","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Banyan GC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Ryangolf","J":"Renovate","S":"Open","B":"$5M","H":"","Z":"TifEagle Greens","M":""},
+{"G":"Boca Lago CC ","A":"Jan Bel Jan","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Island Dunes CC ","A":"Harry Bowers","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$850K","H":"RTJ Sr.","Z":"","M":""},
+{"G":"PGA National Champion ","A":"Nicklaus Chris Cochran","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1M","H":"","Z":"","M":""},
+{"G":"PGA National GC The Palmer ","A":"Brandon Johnson","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Arnold Palmer","Z":"","M":""},
+{"G":"Sara Bay ","A":"Kris Spence","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Z":"","M":""},
+{"G":"Shadow Wood CC South ","A":"Rees Jones","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Ohoopee Match Club ","A":"Hanse Wagner","L":"Georgia ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Design "},
+{"G":"Links at Perry Cabin ","A":"Dye","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Bayberry Hills ","A":"Tim Gerrish","L":"Massachusetts ","U":"USA","C":"DHT Golf Services","J":"Renovate","S":"Open","B":"$2M","H":"Cornish Silva","Z":"","M":""},
+{"G":"Sandwich Hollows ","A":"","L":"Massachusetts ","U":"USA","C":"DHT Golf Services","J":"Renovate","S":"Open","B":"$.3M","H":"","Z":"Weed & Feed","M":""},
+{"G":"Arcadia Bluffs South ","A":"Dana Fry Jason Straka","L":"Michigan ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Braemar GC ","A":"Richard Mandell","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Big Cedar Lodge ","A":"Coore Crenshaw","L":"Missouri ","U":"USA","C":"Don Mahaffey Greenscape Methods","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Harris Park Midtown Sports ","A":"Todd Clark","L":"Missouri ","U":"USA","C":"Viridity Golf","J":"New","S":"Open","B":"","H":"","Z":"","M":"Synthetic Turf "},
+{"G":"Schenectady Municipal ","A":"Raymond Hearn","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Sleepy Hollow CC ","A":"Hanse Wagner","L":"New York ","U":"USA","C":"Hawk Shaw","J":"Restore","S":"Open","B":"","H":"Macdonald Raynor Tillinghast","Z":"","M":"MGA "},
+{"G":"Pinehurst #4 ","A":"Hanse Wagner","L":"North Carolina ","U":"USA","C":"Ben Hillard Brent Vest LaBar LGR","J":"Renovate","S":"Open","B":"","H":"","Z":"Bret Brennan","M":""},
+{"G":"Pinehurst Cradle ","A":"Hanse Wagner","L":"North Carolina ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"Short Course","M":""},
+{"G":"Tanglewood Park ","A":"RTJ II Richard Mandell","L":"North Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Wadsworth Matt Lohmann","Z":"Steve Johnson Brown Golf Management","M":""},
+{"G":"Cleveland Heights ","A":"","L":"Ohio ","U":"USA","C":"Nutt Construction","J":"Renovate","S":"Open","B":"$1.4M","H":"","Z":"Irrigation","M":"Stephen Nutt "},
+{"G":"Aronimink GC ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","C":"Total Turf GS Jaeger Kovich","J":"Restore","S":"Open","B":"","H":"Donald Ross","Z":"","M":"J.B. McGovern "},
+{"G":"Long Cove GC ","A":"Bobby Weed","L":"South Carolina ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"6th Green "},
+{"G":"Sun City Argent Lakes ","A":"","L":"South Carolina ","U":"USA","C":"TDI Golf","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Forest Creek GC ","A":"","L":"Texas ","U":"USA","C":"Kemper","J":"Renovate","S":"Open","B":"$5.1M","H":"Dick Phelps","Z":"","M":""},
+{"G":"Horseshoe Bay Ram Rock ","A":"RTJ II Mark Voss","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$2.5M","H":"RTJ Sr.","Z":"","M":""},
+{"G":"Irving GC ","A":"John Colligan Trey Kemp","L":"Texas ","U":"USA","C":"Fleetwood Services Jeff Janes","J":"Renovate","S":"Open","B":"","H":"","Z":"Irrigation Larry Rodgers Mid-America Golf","M":""},
+{"G":"Green Tree CC ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Gus Wortham ","A":"Baxter Spann","L":"Texas ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"$7.6M","H":"","Z":"","M":""},
+{"G":"Birdwood GC ","A":"Love Golf Design","L":"Virginia ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Potomac Shores GC ","A":"Nicklaus Design Chad Goetz","L":"Virginia ","U":"USA","C":"Southeastern Golf construction","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Greenbrier Ashford ","A":"Kelly Shumate","L":"West Virginia ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Sand Valley Golf Resort Mammoth Dunes ","A":"David Kidd","L":"Wisconsin ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Routing "},
+{"G":"Termas de Rio Hondo Golf Club ","A":"RTJ II","L":"Santiago del Estero ","U":"Argentina","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Golf Club De Geneve ","A":"RTJ II","L":"Geneva ","U":"France","C":"SOL Golf David Minogue","J":"Renovate","S":"Open","B":"","H":"RTJ Sr.","Z":"","M":""},
+{"G":"Bernardus ","A":"Kyle Phillips","L":"Cromvoirt ","U":"Netherlands","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Real Club Puerta de Hierro Buena Vista ","A":"Kyle Phillips","L":"Madrid ","U":"Spain","C":"","J":"New 9","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Woodhall Spa Hotchkin ","A":"Tom Doak","L":"Lincolnshire ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"woodhallspagolfshop "},
+{"G":"Hogshead ","A":"RTJ II","L":"Waterville ","U":"Ireland","C":"SOL Golf David Minogue","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Scone GC ","A":"Phil Ryan Paul Reeves Pacific Coast Design","L":"Upper Hunter Valley ","U":"NSW","C":"Brenton Kay Jarrod Arps McMahons","J":"Redesign","S":"Open","B":"$3M","H":"","Z":"PM Mark Wylie Weidlich Golf Design","M":""},
+{"G":"Suvarna Jakarta ","A":"Bob Moore JMP Design","L":"Jakarta ","U":"Indonesia","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Forest City Classic ","A":"Nicklaus Sean Quinn","L":"Johor ","U":"Malaysia","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"forestcityindonesia "},
+{"G":"Myotha National ","A":"Lee Schmidt Brian Curley","L":"Mandalay ","U":"Myanmar","C":"","J":"New","S":"Open","B":"","H":"","Z":"Irrigation Jebsen & Jessen","M":"Build "},
+{"G":"Subic International ","A":"","L":"Olongapo ","U":"Philippines","C":"Netforce","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Seletar CC ","A":"David Dale Kevin Ramsey Golfplan","L":"Singapore ","U":"Singapore","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Tanah Merah Tampines ","A":"Phil Jacobs","L":"Singapore ","U":"Singapore","C":"TEHC","J":"Renovate","S":"Open","B":"","H":"","Z":"Durabunker","M":""},
+{"G":"Dubai Hills ","A":"Gary Johnston EGD","L":"Dubai ","U":"UAE","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Ha Long Bay ","A":"Brian Curley","L":"Quang Ninh ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Lake Victoria GC ","A":"Kevin Ramsey Golfplan","L":"Kampala ","U":"Uganda","C":"Joe Smith","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Royal Johannesburg East ","A":"Dino De Abreu","L":"Johannesburg ","U":"South Africa","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Sandringham real estate "}
+ ]
+}
+
diff --git a/data/g2019.json b/data/g2019.json
new file mode 100644
index 0000000000000..7a4612d0b1f64
--- /dev/null
+++ b/data/g2019.json
@@ -0,0 +1,118 @@
+{
+ "data":[
+{"G":"Michlifen ","A":"Nicklaus Design","L":"Fes ","U":"Morocco","C":"","J":"New","S":"Open","B":"","H":"","Z":"IMG Managed","M":"Atlas Mountains "},
+{"G":"Saïdia Teelal ","A":"Joakamides","L":"Saïdia ","U":"Morocco","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Whistling Thorns ","A":"De Abreu","L":"Johannesburg ","U":"South Africa","C":"Joe Smith","J":"New","S":"Open","B":"","H":"","Z":"Par 3 Course","M":"18 Par 3's "},
+{"G":"Vattanac-East ","A":"Nick Faldo","L":"Phnom Penh ","U":"Cambodia","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Flyover "},
+{"G":"Baihua Ridge ","A":"Ben Davey","L":"Hainan ","U":"China","C":"","J":"Rebuild ","S":"","B":"","H":"","Z":"","M":""},
+{"G":"Parahyangan ","A":"Bob Moore","L":"Bandung ","U":"Indonesia","C":"","J":"New","S":"Open","B":"","H":"","Z":"`","M":"Kota Baru "},
+{"G":"Black Rocks ","A":"Ron Fream","L":"Belitung ","U":"Indonesia","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"blackrocksgolf "},
+{"G":"Suvarna Jakarta ","A":"Bob Moore","L":"Jakarta ","U":"Indonesia","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Z":"","M":"JMP Design "},
+{"G":"Hirono ","A":"Martin Ebert","L":"Hyogo ","U":"Japan","C":"NTM Andy Bennett Andrew Thomson Quinn Thompson","J":"Restore","S":"Open","B":"","H":"C.H. Allison","Z":"","M":"ProVisualizer "},
+{"G":"Taiheiyo Gotemba ","A":"Rees Jones Bryce Swanson","L":"Shizuoka ","U":"Japan","C":"Inaji Landscape & Construction","J":"Renovate","S":"Open","B":"","H":"Shunsuke Kato","Z":"Hideki Matsuyama","M":"280 yard teeshot "},
+{"G":"Phoukoud Thongkham ","A":"","L":"Xieng Khouang ","U":"Laos","C":"","J":"New","S":"Open","B":"","H":"","Z":"Golf resort","M":"STO Lao Development "},
+{"G":"Forest City Classic ","A":"Guo Kun","L":"Johor ","U":"Malaysia","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Legacy "},
+{"G":"Gelendzhik Resort ","A":"Paul Thomas","L":"Black Sea ","U":"Russia","C":"Football Technology Brian Smith","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Victoria ","A":"Sam Sakocius","L":"Kandy ","U":"Sri Lanka","C":"","J":"Renovate","S":"Open","B":"$1.2M","H":"Donald Steel Martin Ebert","Z":"Mark Bostock Tony Whitham","M":"Troon International "},
+{"G":"Siam Rolling Hills ","A":"Curley","L":"Chonburi ","U":"Thailand","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Historical "},
+{"G":"Royal Creek ","A":"","L":"Udon Thani ","U":"Thailand","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"KN Golf Links ","A":"Greg Norman","L":"Cam Ranh ","U":"Vietnam","C":"Margarito Ayala","J":"New","S":"Open","B":"","H":"","Z":"","M":"Links Golf "},
+{"G":"FLC Quang Binh Ocean Dunes ","A":"Brian Curley","L":"Dong Hoi ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"Don Page","Z":"","M":"Dunes Golf "},
+{"G":"BRG Kings Island ","A":"Jack Nicklaus II Sean Quinn","L":"Hanoi ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Championship Golf "},
+{"G":"The Hills (The Farm) ","A":"Oliver","L":"South Island ","U":"NZ","C":"","J":"New","S":"Open","B":"","H":"","Z":"9 holes","M":"thehillsgolfclub "},
+{"G":"Twin Chapels ","A":"Jonathan Gaunt","L":"Prague ","U":"Czech Republic","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Shaping "},
+{"G":"Golf Club Pfalz ","A":"Greg Letsche","L":"Mannheim ","U":"Germany","C":"ProGolf Benjamin Silva","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Amsterdam Old GC ","A":"Frank Pont","L":"Amsterdam ","U":"Netherlands","C":"","J":"Masterplan","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Royal Norwich ","A":"Eur Golf Design (McMurray)","L":"Norfolk ","U":"England","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Hole 18 "},
+{"G":"JCB Golf CC ","A":"Robin Hiseman","L":"Stafford ","U":"England","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Best Modern "},
+{"G":"Kings GC ","A":"Rennie","L":"Inverness ","U":"Scotland","C":"","J":"New","S":"Open","B":"","H":"","Z":"","M":"Flyover "},
+{"G":"Costas Palmas ","A":"RTJ II","L":"Baja ","U":"Mexico","C":"Steven Page","J":"New","S":"Open","B":"","H":"","Z":"","M":"Beach Resort Golf "},
+{"G":"Old Toccoa Farm ","A":"Axland Dredla","L":"Georgia ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"New 9","M":"Flyover "},
+{"G":"Sink Hole ","A":"Lemons","L":"Kentucky ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"Olde Stone","M":""},
+{"G":"Ozarks National ","A":"Coore Crenshaw ","L":"Missouri ","U":"USA","C":"Bunkerdrum Jeff Bradley","J":"New","S":"Open","B":"","H":"","Z":"","M":"Golf in Midwest "},
+{"G":"Reserve Hollow Creek ","A":"Johnston Zoeller","L":"South Carolina ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"Johnston Zoeller ","Z":"","M":"Construction "},
+{"G":"Troubadour ","A":"Tom Fazio Blake Bickford","L":"Tennessee ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"Discovery Land","M":"Strategic Golf "},
+{"G":"Kissing Tree ","A":"Gary Stephenson","L":"Texas ","U":"USA","C":"Heritage Golf","J":"New","S":"Open","B":"","H":"","Z":"","M":"PGA Pro "},
+{"G":"Wildhorse GC ","A":"Gary Stephenson","L":"Texas ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Z":"New 9","M":"wildhorsegolfrr "},
+{"G":"Wynn GC ","A":"Tom Fazio ","L":"Nevada ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Z":"","M":"wynnproshop "},
+{"G":"McLemore ","A":"Rees Jones Bill Bergin","L":"Georgia ","U":"USA","C":"Southeastern Golf Construction","J":"Rebuild ","S":"Open ","B":"","H":"","Z":"Formerly Canyon Ridge","M":"30 seconds "},
+{"G":"NEWGIZA ","A":"Thompson Lobb Perrett","L":"Cairo ","U":"Egypt","C":"PM Dag Brown","J":"New","S":"Open ","B":"","H":"","Z":"","M":""},
+{"G":"El Jadida ","A":"James Duncan","L":"El Jadida ","U":"Morocco","C":"","J":"Renovate","S":"Open","B":"","H":"Cabell Robinson","Z":"","M":"Royal Golf "},
+{"G":"Royal Delhi Lodhi ","A":"Gary Player Jeff Lawrence","L":"Delhi ","U":"India","C":"","J":"Renovate","S":"Open","B":"","H":"Wilkinson","Z":"","M":""},
+{"G":"Laem Chabang ","A":"Nicklaus Quinn","L":"Chonburi ","U":"Thailand","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Regrassing "},
+{"G":"Bonnie Doon Golf Club ","A":"Oglivy Clayton Cocking Meade","L":"NSW ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"8 year masterplan "},
+{"G":"Robe GC ","A":"Crafter Mogford Golf Strategies","L":"South Aus ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"National Gunnamatta ","A":"Tom Doak","L":"Victoria ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"Thompson Wolveridge","Z":"Formerly Ocean Course","M":"Caddie Productions "},
+{"G":"Peninsula Kingswood N ","A":"OCCM","L":"Victoria ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"Morpeth","Z":"South Opened 2017-8","M":"Sandy Loam soil "},
+{"G":"Six Senses Antognolla ","A":"RTJ II","L":"Umbria ","U":"Italy","C":"Atlantic Golf Construction","J":"Renovate","S":"Open","B":"","H":"RTJ II","Z":"Rain Bird Irrigation","M":"GEO Certified "},
+{"G":"Alcanada ","A":"RTJ II","L":"Mallorca ","U":"Spain","C":"Garden & Golf","J":"Renovate","S":"Open","B":"$1M","H":"RTJ II","Z":"","M":"Pre Renovate "},
+{"G":"Österåker Golfklubb ","A":"Lundin Stenson","L":"Stockholm ","U":"Sweden","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Z":"","M":"nya superbana "},
+{"G":"Princes Dunes/Shore ","A":"Mackenzie Ebert","L":"Kent ","U":"England","C":"","J":"Renovate","S":"Construction","B":"","H":"Campbell Morrison","Z":"Dunes 9 & Shore 9","M":"Weekend Golf "},
+{"G":"Princes Himalayas ","A":"Mackenzie Ebert","L":"Kent ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"Campbell Morrison","Z":"Himalayas 9","M":"New 9 Holes "},
+{"G":"Royal Cinque Ports ","A":"Mackenzie Ebert","L":"Kent ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"Braid Campbell","Z":"","M":"Spring 2020 "},
+{"G":"Woodhall Spa ","A":"Tom Doak","L":"Lincolnshire ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"Vardon Colt Hotchkin","Z":"","M":"Hole 17 "},
+{"G":"Southport Ainsdale ","A":"Marc Westenborg","L":"Southport ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Redesigned 1st hole "},
+{"G":"The Island ","A":"Mackenzie Ebert","L":"Dublin ","U":"Ireland","C":"","J":"Renovate","S":"Open","B":"","H":"F Hawtree Hackett","Z":"","M":"New Tees "},
+{"G":"Bruntsfield Links Golfing Society ","A":"Martin Ebert","L":"Edinburgh ","U":"Scotland","C":"","J":"Renovate","S":"Open","B":"$1.6M","H":"","Z":"Reesink Turfcare ","M":""},
+{"G":"Cabo del Sol Cove ","A":"Nicklaus Design","L":"Cabo ","U":"Mexico","C":"","J":"Renovate","S":"Open","B":"","H":"JWN","Z":"Ocean Course","M":"cabodelsolgolfclub "},
+{"G":"Crowsnest ","A":"Browning","L":"Alberta ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"CC Birmingham East ","A":"LaFoy","L":"Alabama ","U":"USA","C":"Leibold Irrigation","J":"Renovate","S":"Open ","B":"","H":"Ross Cobb LaFoy","Z":"Toro Lynx","M":"countryclubofbirmingham "},
+{"G":"Desert Highlands ","A":"Nicklaus Design","L":"Arizona ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"JWN","Z":"","M":"Regrassing "},
+{"G":"Desert Mountain Renegade ","A":"Nicklaus Design","L":"Arizona ","U":"USA","C":"","J":"Renovate","S":"Construction","B":"","H":"Nicklaus","Z":"","M":"Greensmix "},
+{"G":"Barona Creek ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"","Z":"Phase I","M":"2010 "},
+{"G":"Dairy Creek ","A":"Andy Staples","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"","Z":"","M":""},
+{"G":"Hillcrest CC ","A":"Kyle Phillips Mark Thawley","L":"California ","U":"USA","C":"m6 Consulting","J":"Renovate","S":"Open","B":"","H":"William Watson","Z":"Rain Bird","M":""},
+{"G":"La Jolla CC ","A":"Eckenrode","L":"California ","U":"USA","C":"Casa Verde","J":"Renovate","S":"Open","B":"","H":"William F. Bell","Z":"","M":"lajollacountryclub "},
+{"G":"Montecito Club ","A":"Nicklaus","L":"California ","U":"USA","C":"Landscapes Unlimited Elliot Tagliapietra","J":"Renovate","S":"Open","B":"","H":"","Z":"Paspalum","M":""},
+{"G":"Roosevelt ","A":"Forrest Richardson","L":"California ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"William F. Bell","Z":"","M":""},
+{"G":"Valley Club of Montecito ","A":"Tom Doak","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Mackenzie","Z":"flood damage","M":"valleyclubofmontecito "},
+{"G":"Yorba Linda CC ","A":"O'Callaghan","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Rainville ","Z":"","M":""},
+{"G":"Roaring Fork ","A":"Nicklaus David Savic","L":"Colorado ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"","Z":"LU PM Darin Baker","M":"Bunkers "},
+{"G":"Banyan Cay Resort ","A":"Nicklaus Design","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"","Z":"","M":""},
+{"G":"Bonita Bay (May Island) ","A":"Forrest Smith ","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Arthur Hills","Z":"","M":" April 2020 "},
+{"G":"Countryside ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Ryan Golf","J":"Renovate","S":"Open","B":"$5.5M","H":"Arthur Hills","Z":"","M":"Before/After "},
+{"G":"Hobe Sound GC ","A":"Tommy Fazio II","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Joe Lee","Z":"","M":""},
+{"G":"Fort Lauderdale (N) ","A":"Kipp Schulties ","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Lawrence ","Z":"","M":""},
+{"G":"Jacksonville G&CC ","A":"Clyde Johnston","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open ","B":"","H":"Clyde Johnston","Z":"","M":"Golf Construction "},
+{"G":"North Palm Beach CC ","A":"Nicklaus Chad Goetz","L":"Florida ","U":"USA","C":"TDI Golf XGD Systems","J":"Renovate","S":"Open ","B":"","H":"Mark McCumber","Z":"International Golf Maintenance Rick Reiter Chris Garrett Greg Plotner","M":""},
+{"G":"Pelican GC ","A":"Beau Welling","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Beau Welling","Z":"","M":""},
+{"G":"West Bay ","A":"Fry Straka","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$4M","H":"Dye","Z":"","M":""},
+{"G":"Chimney Oaks ","A":"McCumber","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Greens aerification "},
+{"G":"Great Waters Reynolds ","A":"Nicklaus Goetz","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"1992->2020 "},
+{"G":"Sea Island Plantation ","A":"Love Scot Sherman","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Walter Travis","Z":"","M":"Charles Alison "},
+{"G":"TPC Sugarloaf ","A":"Greg Norman","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Norman ","Z":"Greens bunkers irrigation","M":""},
+{"G":"St Charles CC ","A":"Benkusky","L":"Illinois ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"","Z":"Refresh bunkers","M":""},
+{"G":"White Eagle ","A":"Todd Quitno","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Flyover "},
+{"G":"TPC Louisiana ","A":"","L":"Louisiana ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Gibson Gray Dye","Z":"","M":"Drone coverage "},
+{"G":"Burning Tree ","A":"Gil Hanse","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Longmeadow ","A":"","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$4M","H":"","Z":"Bradley Klein","M":""},
+{"G":"Macatawa GC ","A":"Ray Hearn","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Braemar ","A":"Richard Mandell","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":"Bunkers "},
+{"G":"Timber Creek ","A":"Kari Haug","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Greenbriar Hills CC ","A":"","L":"Missouri ","U":"USA","C":"E.C. Design Group","J":"Irrigation","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Manasquan River GC ","A":"Andrew Green","L":"New Jersey ","U":"USA","C":"LaBar Todd Saganiec","J":"Restore","S":"Open","B":"","H":"Robert White","Z":"","M":"Waterfront "},
+{"G":"Mountain Ridge ","A":"Ron Prichard","L":"New Jersey ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Donald Ross ","Z":"","M":"GM "},
+{"G":"Saratoga Golf & Polo ","A":"Kye Goalby David Normoyle","L":"New York ","U":"USA","C":"Don Mahaffey Greenscape Methods","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Cape Fear CC ","A":"Andrew Green","L":"North Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$5M","H":"Donald Ross ","Z":"","M":"Hole 18 "},
+{"G":"Forest Creek North ","A":"Tom Fazio Blake Bickford Ron Smith","L":"North Carolina ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Z":"","M":""},
+{"G":"GlenCove Saddle ","A":"Beau Welling","L":"North Carolina ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"","Z":"Joe Titzer","M":""},
+{"G":"Valley Eagles GC ","A":"Nicklaus David Savic","L":"Ohio ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Z":"","M":""},
+{"G":"Southern Hills ","A":"Gil Hanse","L":"Oklahoma ","U":"USA","C":"Heritage Links Oscar Rodriguez","J":"Renovate","S":"Open ","B":"$11M","H":"Perry Maxwell","Z":"Jonesplan","M":"Russ Myers "},
+{"G":"Laurelwood ","A":"Dan Hixson","L":"Oregon ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$0.14M","H":"","Z":"","M":"Fried Egg "},
+{"G":"Country Club of York ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","C":"","J":"Restore","S":"Masterplan","B":"","H":"Donald Ross ","Z":"","M":"Flynn Routing "},
+{"G":"Merion East ","A":"Gil Hanse ","L":"Pennsylvania ","U":"USA","C":"","J":"Restore","S":"Open ","B":"","H":"Hugh Wilson","Z":"","M":""},
+{"G":"Myrtlewood GC Palmetto ","A":"Dan Schlegel","L":"South Carolina ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"Ault","Z":"","M":"Shaping "},
+{"G":"Barton Creek Coore Crenshaw ","A":"Bill Coore Ben Crenshaw","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$6M","H":"","Z":"Omni Hotels","M":""},
+{"G":"Barton Creek Foothills ","A":"Tom Fazio","L":"Texas ","U":"USA","C":"Greenscapes Six","J":"Renovate","S":"Open ","B":"$6M","H":"Tom Fazio Beau Welling Roy Bechtol Dennis Wise","Z":"Bermudagrass","M":""},
+{"G":"Heath Golf & Yacht Club ","A":"Roy Bechtol","L":"Texas ","U":"USA","C":"Robert Fleetwood","J":"New","S":"Open","B":"","H":"","Z":"Irrigation Bob Bryant","M":""},
+{"G":"Horseshoe Bay Apple Rock ","A":"RTJ II Mark Voss","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$3M","H":"RTJ Sr.","Z":"","M":""},
+{"G":"Irving GC ","A":"John Colligan Brian Ault","L":"Texas ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"$3.5M","H":"","Z":"","M":""},
+{"G":"Memorial Park ","A":"Tom Doak Brooks Koepka","L":"Texas ","U":"USA","C":"Mike Nuzzo VM Golf","J":"Renovate","S":"Open","B":"$13M","H":"John Bredemus ","Z":"Toro Decoder","M":"PGA Tour "},
+{"G":"Northwood ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"William Diddel Perry Maxwell","Z":"","M":"Overhead "},
+{"G":"Rangers GC ","A":"John Colligan Trey Kemp","L":"Texas ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","S":"Open","B":"$9M","H":"","Z":"","M":""},
+{"G":"Waterview GC ","A":"CE Golf Design Todd Clark","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1.1M","H":"","Z":"American Golf","M":""},
+{"G":"Willow Brook CC ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Course Crafters","J":"","S":"","B":"","H":"","Z":"Bill Willingham","M":""},
+{"G":"Royal New Kent ","A":"","L":"Virginia ","U":"USA","C":"Mathieu LeCompte","J":"Reopen","S":"Open","B":"$2M","H":"Strantz","Z":"","M":""},
+{"G":"Washington G&CC ","A":"Tom Doak Eric Iverson","L":"Virginia ","U":"USA","C":"LaBar Shellene Elmore","J":"Renovate","S":"Open","B":"","H":"Ross Flynn ","Z":"","M":"April 2019 "}
+ ]
+}
diff --git a/data/g2020.json b/data/g2020.json
new file mode 100644
index 0000000000000..50b8e92c8a8e5
--- /dev/null
+++ b/data/g2020.json
@@ -0,0 +1,186 @@
+{
+ "data":[
+{"G":"Mickelson National ","A":"Phil Mickelson","L":"Alberta ","U":"Canada","C":"Matt Flint","J":"New","S":"Open","B":"","Z":"East Valley Irrigation EVI","M":"Barry Ehlert "},
+{"G":"The Ranch ","A":"Ohnysty Crough","L":"Alberta ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Images "},
+{"G":"Point Grey ","A":"Riley Johns","L":"Brit Columbia ","U":"Canada","C":"East Valley Irrigation EVI","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Pinebrook G&CC ","A":"Browning","L":"Calgary ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Link "},
+{"G":"Ashburn GC Old ","A":"Ian Andrew","L":"Nova Scotia ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Drainage Install "},
+{"G":"Cabot Nest ","A":"Whitman Axland","L":"Nova Scotia ","U":"Canada","C":"","J":"New","S":"Open","B":"","Z":"Par 3","M":"GOLF "},
+{"G":"Cutten Fields ","A":"Jeff Mingay","L":"Ontario ","U":"Canada","C":"","J":"Restore","S":"Open","B":"","Z":"","M":"Top 100 "},
+{"G":"Rosetown GC ","A":"Dormer Philcox","L":"Saskatchewan ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Highland Park ","A":"","L":"Alabama ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$1M","Z":"AU Victory Bent","M":"LU "},
+{"G":"Anchorage GC ","A":"Forrest Richardson","L":"Alaska ","U":"USA","C":"Verde Sports","J":"Renovate","S":"Open","B":"$3M","Z":"","M":""},
+{"G":"El Rio Alvarez ","A":"Kavanaugh Johnson","L":"Arizona ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"Muni Golf","M":""},
+{"G":"FireRock ","A":"Andy Staples","L":"Arizona ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Grow in "},
+{"G":"Troon CC ","A":"Tom Weiskopf Phil Smith","L":"Arizona ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open ","B":"","Z":"","M":"Troon "},
+{"G":"Diablo CC ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open ","B":"$10M","Z":"Brett Hochstein","M":"ASGCA "},
+{"G":"Eagle Ridge ","A":"David Ginkel","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"Sand Bunkers","M":""},
+{"G":"La Cumbre ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"Brett Hochstein","M":""},
+{"G":"Red Hill CC ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"","M":"Billy Bell Bunkers "},
+{"G":"San Joaquin CC ","A":"Nickels Baldock","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Landscaping "},
+{"G":"City Park ","A":"Schoeder Irwin","L":"Colorado ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$46M","Z":"","M":"Gravel "},
+{"G":"Columbine ","A":"Rees Jones","L":"Colorado ","U":"USA","C":"Duininck Paul Deis","J":"Renovate","S":"Open ","B":"","Z":"","M":""},
+{"G":"Cornerstone Club ","A":"Dusenberry","L":"Colorado ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"Montrose","M":"Mountain Golf "},
+{"G":"Denver CC ","A":"Gil Hanse","L":"Colorado ","U":"USA","C":"Total Turf GS","J":"Renovate","S":"Open ","B":"","Z":"Bunkers","M":""},
+{"G":"Flying Horse North ","A":"Smith","L":"Colorado ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"Short Course","M":"Overhead "},
+{"G":"Fairview CC ","A":"Rees Jones","L":"Connecticut ","U":"USA","C":"Total Turf GS","J":"Renovate","S":"Open ","B":"","Z":"","M":""},
+{"G":"Pine Orchard ","A":"Gerrish","L":"Connecticut ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$1.2M","Z":"Flood Repair","M":""},
+{"G":"Woodway CC ","A":"Bruce Hepner","L":"Connecticut ","U":"USA","C":"McDonald & Sons","J":"Restore","S":"Open","B":"","Z":"","M":""},
+{"G":"Links at St Anne's ","A":"Liddicoat Horne Furyk","L":"Delaware ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"","M":"Mid Atlantic Golf "},
+{"G":"Plantation Lakes ","A":"Forrest Smith ","L":"Delaware ","U":"USA","C":"Wadsworth","J":"New","S":"Open","B":"","Z":"New 9","M":""},
+{"G":"Babcock National ","A":"Lewis","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"","M":"Review "},
+{"G":"BallenIsles South ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","C":"Total Golf","J":"Renovate","S":"Open ","B":"$7.5M","Z":"","M":"USGA Spec "},
+{"G":"Black Diamond Quarry ","A":"Whelchel ","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"","M":"Quarry Holes "},
+{"G":"Camp Creek ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Private Club "},
+{"G":"Coral Creek ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Coral Ridge CC ","A":"Rees Jones","L":"Florida ","U":"USA","C":"Robby Farina Country Club Services","J":"Renovate","S":"Open","B":"","Z":"","M":"Open "},
+{"G":"Eastpointe West ","A":"Sanford","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Sustainability "},
+{"G":"Esplanade at Azario ","A":"Wilczynski","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"","M":"Overhead "},
+{"G":"FSU Seminole Legacy ","A":"Jack Nicklaus Chris Cochran David Savic","L":"Florida ","U":"USA","C":"Golfirr Joe Miller Robert Garcia, Jr.","J":"Rebuild ","S":"Open","B":"$8M","Z":"Childers Construction","M":"University Golf "},
+{"G":"Grove XXIII ","A":"Bobby Weed","L":"Florida ","U":"USA","C":"Total Turf GS Matt McGarey","J":"New","S":"Open ","B":"","Z":"Juan Rodriguez Catalino Arellano","M":"Grove "},
+{"G":"Hawks Landing ","A":"Bob Cupp","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Hurricane Rebuild "},
+{"G":"Jupiter Hills ","A":"L. Fazio","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"USGA "},
+{"G":"Lakewood National Piper ","A":"Arnold Palmer Johnson Layton","L":"Florida ","U":"USA","C":"Ryan Golf Danny Peacock Jody Mosley","J":"New","S":"Open","B":"","Z":"Bunker Construction Angel Garcia","M":"Hole 1 "},
+{"G":"Mariner Sands ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Ryan Golf","J":"Renovate","S":"Open ","B":"$2.5M","Z":"Gold","M":"Regrassing "},
+{"G":"Mizner CC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"","M":"Cart Path "},
+{"G":"Old Memorial ","A":"Steve Smyers","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Old M "},
+{"G":"Pablo Creek ","A":"Tom Fazio Ron Smith","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open ","B":"","Z":"Al Clements","M":""},
+{"G":"Ponte Vedra Inn Ocean ","A":"Bobby Weed","L":"Florida ","U":"USA","C":"MacCurrach","J":"Restore","S":"Open","B":"$9.5M","Z":"","M":""},
+{"G":"Quail Ridge South ","A":"Bobby Weed","L":"Florida ","U":"USA","C":"Total Turf","J":"Renovate","S":"Open ","B":"","Z":"","M":"Preview "},
+{"G":"San Jose CC ","A":"Dan Schlegel","L":"Florida ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"","M":"Hole 14 "},
+{"G":"Shadow Wood Preserve ","A":"R. Jones Swanson","L":"Florida ","U":"USA","C":"Glase","J":"Renovate","S":"Open","B":"$3.5M","Z":"Super. Ruha","M":""},
+{"G":"The Yacht & Country Club ","A":"Pearson","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Gravel "},
+{"G":"The Yards ","A":"Miles","L":"Florida ","U":"USA","C":"MacCurrach","J":"Rebuild ","S":"Open","B":"","Z":"","M":""},
+{"G":"Savannah GC ","A":"Gil Hanse","L":"Georgia ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"","M":"Superintendent "},
+{"G":"Hualalai ","A":"Jack Nicklaus","L":"Hawaii ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$5.2M","Z":"","M":"Seaside Golf "},
+{"G":"Beverly ","A":"Ron Prichard Tyler Rae","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Egg "},
+{"G":"Chicago GC ","A":"Tom Doak","L":"Illinois ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"Bunkers","M":""},
+{"G":"Evanston ","A":"Tyler Rae","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Indian Oaks ","A":"Joe Jemsek","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Image "},
+{"G":"Lake Shore CC ","A":"Ron Prichard Tyler Rae","L":"Illinois ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"","M":""},
+{"G":"Park Ridge CC ","A":"Martin","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Schaumburg ","A":"Lohmann Quitno","L":"Illinois ","U":"USA","C":"Golf Creations","J":"Renovate","S":"Open ","B":"","Z":"","M":"Images "},
+{"G":"Indiana U Pfau GC ","A":"Steve Smyers Fuzzy Zoeller","L":"Indiana ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"$12M","Z":"","M":"Sneak Peek "},
+{"G":"US Naval Academy ","A":"Andrew Green","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$7M","Z":"$7M","M":"Regrassing "},
+{"G":"Woodmont North ","A":"McDonald","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":" "},
+{"G":"Edgartown ","A":"Kovich","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Hole 7 "},
+{"G":"New Seabury Ocean ","A":"Bruce Hepner","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Opening Day "},
+{"G":"Woodland ","A":"Tyler Rae ","L":"Massachusetts ","U":"USA","C":"MAS","J":"Restore","S":"Open","B":"","Z":"Bunkers","M":""},
+{"G":"Forest Dunes ","A":"Johns Rhebb","L":"Michigan ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"Bootlegger","M":"Construction "},
+{"G":"Minneapolis GC ","A":"Jeff Mingay","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Oak Ridge CC ","A":"Axland Proctor","L":"Minnesota ","U":"USA","C":"Leibold Irrigation","J":"Renovate","S":"Open","B":"","Z":"Toro 2-wire","M":"E.C. Design Group "},
+{"G":"Phalen GC ","A":"Kevin Norby","L":"Minnesota ","U":"USA","C":"Duininck","J":"Renovate","S":"Open ","B":"","Z":"","M":"Golf Course Maintenance "},
+{"G":"Rochester ","A":"Tom Doak Brian Slawnik Angela Moser","L":"Minnesota ","U":"USA","C":"","J":"Restore","S":"Open","B":"$6.4M","Z":"DuPont","M":""},
+{"G":"White Bear Yacht ","A":"Jim Urbina","L":"Minnesota ","U":"USA","C":"","J":"Restore","S":"Open","B":"$2.4M","Z":"","M":"Top 100 "},
+{"G":"Paynes Valley ","A":"Tiger Woods ","L":"Missouri ","U":"USA","C":"Landscapes Unlimited","J":"New","S":"Open","B":"","Z":"Beau Welling","M":"Fore "},
+{"G":"Trump Bedminster New ","A":"Tommy Fazio II","L":"New Jersey ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"LaBar","M":"Trump "},
+{"G":"Chautauqua GC Lake ","A":"Chris Wilczynski","L":"New York ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"","M":""},
+{"G":"Oak Hill East ","A":"Andrew Green","L":"New York ","U":"USA","C":"LaBar","J":"Restore","S":"Open","B":"$6M","Z":"","M":"PGA Championship "},
+{"G":"Pelham CC ","A":"Mike DeVries","L":"New York ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"1923 PGA","M":"Pelham "},
+{"G":"Alamance CC ","A":"Billy Fuller","L":"North Carolina ","U":"USA","C":"TDI Golf","J":"Renovate","S":"Open ","B":"$1.5M","Z":"","M":""},
+{"G":"Raleigh CC ","A":"Kyle Franz","L":"North Carolina ","U":"USA","C":"LaBar Todd Saganiec","J":"Renovate","S":"Open","B":"$5M","Z":"Capillary Concrete","M":"Ranking "},
+{"G":"Sequoyah Natl ","A":"RTJ II ","L":"North Carolina ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"","M":"Irrigation System "},
+{"G":"Skybrook ","A":"John LaFoy","L":"North Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Spring Greens "},
+{"G":"Edgewater ","A":"Kevin Norby","L":"North Dakota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Update "},
+{"G":"Highland Meadows ","A":"Hills Forrest Smith","L":"Ohio ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Greg Patterson "},
+{"G":"Westfield CC North ","A":"Hurdzan Fry","L":"Ohio ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Blackjack Ridge ","A":"Heckenkemper ","L":"Oklahoma ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$2M","Z":"Cummings","M":"Nick Neal "},
+{"G":"Oklahoma City G&CC ","A":"Tripp Davis","L":"Oklahoma ","U":"USA","C":"LaBar Jonesplan","J":"Restore","S":"Open ","B":"","Z":"Bunker Solutions Irrigation EC Design","M":"Perry Maxwell "},
+{"G":"Sheep Ranch ","A":"Bill Coore Ben Crenshaw","L":"Oregon ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"","Z":"","M":"Clifftop Golf "},
+{"G":"Bethlehem ","A":"Fine","L":"Pennsylvania ","U":"USA","C":"","J":"Restore","S":"Open ","B":"$0.875M","Z":"USGA","M":""},
+{"G":"Chartiers ","A":"Forrest","L":"Pennsylvania ","U":"USA","C":"Aspen","J":"Restore","S":"Open ","B":"","Z":"","M":"Turf Management "},
+{"G":"Concord CC ","A":"Forse","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"CCFAD "},
+{"G":"Edgewood CC ","A":"Forse","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Historic "},
+{"G":"Fox Chapel ","A":"Fazio Marzolf","L":"Pennsylvania ","U":"USA","C":"NMP","J":"Restore","S":"Open","B":"$3.1M","Z":"","M":"9/1/2020 "},
+{"G":"Aero Club ","A":"Smith","L":"South Carolina ","U":"USA","C":"","J":"Short","S":"Open","B":"","Z":"Midway","M":""},
+{"G":"Charleston Muni ","A":"Troy Miller","L":"South Carolina ","U":"USA","C":"NMP","J":"Renovate","S":"Open","B":"$3M","Z":"","M":"Muni Golf "},
+{"G":"Greenville ","A":"Lawrence","L":"South Carolina ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","Z":"Par 3","M":""},
+{"G":"Brook Hollow ","A":"Keith Foster","L":"Texas ","U":"USA","C":"LaBar","J":"Restore","S":"Open","B":"","Z":"","M":""},
+{"G":"Champions Jackrabbit ","A":"Beau Welling","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"Bunkers","M":""},
+{"G":"Heath Golf & Yacht ","A":"Bechtol","L":"Texas ","U":"USA","C":"","J":"New","S":"Open","B":"","Z":"","M":"Construction "},
+{"G":"Indian Creek Lakes ","A":"Todd Clark","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Iron Horse ","A":"Jeff Brauer","L":"Texas ","U":"USA","C":"Fleetwood Services","J":"Renovate","S":"Open","B":"$3M","Z":"","M":"Reopening "},
+{"G":"Oak Hills CC ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Landscapes Unlimited","J":"Restore","S":"Open","B":"$10M","Z":"Shaper Steve Page","M":""},
+{"G":"Shady Oaks ","A":"Oglivy Cocking Meade","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"$11M","Z":"","M":""},
+{"G":"Whispering Pines ","A":"Chet Williams ","L":"Texas ","U":"USA","C":"","J":"Restore","S":"Open","B":"","Z":"Regrass","M":"TifEagle Greens "},
+{"G":"Copper Rock ","A":"Dale Beddo","L":"Utah ","U":"USA","C":"G3 Golf Group","J":"New","S":"Open","B":"","Z":"Irrigation Andy Dunlop","M":"High Desert Golf "},
+{"G":"Timpanogos ","A":"Kevin Atkinson","L":"Utah ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Plains Golf "},
+{"G":"Boar's Head Birdwood ","A":"Davis Love Scot Sherman","L":"Virginia ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"$13.5M","Z":"","M":"College Golf "},
+{"G":"Cutalong ","A":"Todd Clark","L":"Virginia ","U":"USA","C":"Verde Sports","J":"New","S":"Open","B":"","Z":"Clark","M":"VA "},
+{"G":"Sand Point CC ","A":"David McLay Kidd","L":"Washington ","U":"USA","C":"Ridgetop","J":"Renovate","S":"Open","B":"","Z":"","M":"Sandpoint "},
+{"G":"Lac LaBelle ","A":"Craig Haltom","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Sustainable "},
+{"G":"Reid GC ","A":"Lohmann Quitno","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Flood Damage "},
+{"G":"Stevens Point ","A":"Craig Haltom","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"University Club ","A":"Andy Staples","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Review "},
+{"G":"EL TERRÓN ","A":"Weiskopf","L":"Cordoba ","U":"Argentina","C":"","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Salta Polo Club ","A":"Bunge","L":"Salta ","U":"Argentina","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Vacation Golf "},
+{"G":"The Playground ","A":"Tiger Woods","L":"Bahamas ","U":"Bahamas","C":"","J":"New","S":"Open","B":"","Z":"Par 3 ","M":"Eleuthera "},
+{"G":"Itanhanga ","A":"Agustin Piza","L":"Rio ","U":"Brazil","C":"ProGolf Benjamin Silva Gil Zdanowski","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Rancho San Lucas ","A":"Norman","L":"Cabo ","U":"Mexico","C":"GSR S.A.","J":"New","S":"Open","B":"$9M","Z":"","M":"Sand Dunes Golf "},
+{"G":"CCC Country Club Playa Palmas ","A":"Greg Letsche","L":"Carmen ","U":"Mexico","C":"","J":"New","S":"Open","B":"","Z":"","M":"INAUGURACIÓN "},
+{"G":"The Pit ","A":"Agustin Piza","L":"Ciudad ","U":"Mexico","C":"","J":"New","S":"Open","B":"","Z":"","M":"Lounge "},
+{"G":"Lima GC ","A":"Mackenzie Ebert","L":"Lima ","U":"Peru","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Leveling tees "},
+{"G":"Royal Liverpool ","A":"Mackenzie Ebert","L":"Cheshire ","U":"England","C":"","J":"Renovate","S":"Open","B":"","Z":"Hole 17","M":"Hoylake "},
+{"G":"Ingrebourne Links ","A":"Alan Walker","L":"Essex ","U":"England","C":"IVL IV Links","J":"New 9","S":"Open","B":"","Z":"","M":""},
+{"G":"Liphook ","A":"Mackenzie Ebert","L":"Hampshire ","U":"England","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"6 Hole Tour "},
+{"G":"Stoneham ","A":"EDI Moodie","L":"Hampshire ","U":"England","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"After "},
+{"G":"Castletown ","A":"TBA","L":"Isle of Man ","U":"England","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"New 18th "},
+{"G":"Chelmsford ","A":"Mackenzie Ebert","L":"Norfolk ","U":"England","C":"MJ Abbott","J":"Renovate","S":"Open ","B":"","Z":"MJ Abbott","M":""},
+{"G":"Hindhead ","A":"Mackenzie Ebert","L":"Surrey ","U":"England","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"8th hole "},
+{"G":"Worcester Golf & Country Club ","A":"","L":"Worcester ","U":"England","C":"North Staffs Irrigation","J":"Renovate","S":"Open","B":"$600K","Z":"Rain Bird Central","M":""},
+{"G":"Ballyliffin Pollan Links ","A":"Pat Ruddy","L":"Donegal ","U":"Ireland","C":"","J":"New","S":"Open","B":"","Z":"","M":"Droneview Golf "},
+{"G":"Narin & Portnoo ","A":"Gil Hanse","L":"Donegel ","U":"Ireland","C":"Swilken Landscaping","J":"Renovate","S":"Open","B":"","Z":"","M":"New 9th Hole "},
+{"G":"Edmondstown ","A":"Lynch","L":"Dublin ","U":"Ireland","C":"DAR","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Glasson GC ","A":"David Jones","L":"Westmeath ","U":"Ireland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Survey Greens "},
+{"G":"Malone ","A":"Kearney D'Arcy","L":"Belfast ","U":"No. Ireland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Castlerock ","A":"Martin Hawtree","L":"Londonderry ","U":"No. Ireland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Links Golf "},
+{"G":"Royal Dornoch ","A":"Mackenzie Ebert","L":"Dornoch ","U":"Scotland","C":"","J":"Renovate","S":"Open","B":"","Z":"Hole 7","M":"Construction "},
+{"G":"Dumbarnie Links ","A":"Clive Clark","L":"Fife ","U":"Scotland","C":"Landscapes Unlimited David Minogue","J":"New","S":"Open","B":"$7M","Z":"","M":"Flyover "},
+{"G":"Nairn ","A":"Mackenzie Ebert","L":"Nairn ","U":"Scotland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Links Golf "},
+{"G":"Golf de Hulencourt ","A":"Frank Pont","L":"Brussels ","U":"Belgium","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Phase 2 "},
+{"G":"Golf Resort Dobrouc ","A":"Cervenka","L":"Orlické ","U":"Czech Republic","C":"","J":"New","S":"Open","B":"","Z":"","M":"Parkland Golf "},
+{"G":"PGA National Oaks ","A":"Kyle Phillips Mark Thawley","L":"Prague ","U":"Czech Republic","C":"Engelmann","J":"New","S":"Open","B":"","Z":"","M":"Hole 15 "},
+{"G":"Holstebro ","A":"Philip Spogárd","L":"Holstebro ","U":"Denmark","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Hole 2 "},
+{"G":"Simon's GC ","A":"","L":" ","U":"Denmark","C":"","J":"Renovate","S":"Open","B":"","Z":"Sand trap","M":"Simons "},
+{"G":"Ålands Golfklubbs banchef ","A":"Philip Spogárd","L":" ","U":"Finland","C":"","J":"Renovate","S":"Open","B":"","Z":"Slottsbanan","M":"Irrigation "},
+{"G":"Les Bordes New ","A":"Gil Hanse","L":"Orleans ","U":"France","C":"SOL Golf David Minogue","J":"New","S":"Open","B":"","Z":"Piglet Short course","M":"Heathland "},
+{"G":"Golf de Roissy ","A":"Niedbala","L":"Paris ","U":"France","C":"","J":"New","S":"Open","B":"","Z":"","M":"Suburban Golf "},
+{"G":"Joyenval ","A":"Crompton","L":"Paris ","U":"France","C":"","J":"Renovate","S":"Open","B":"","Z":"Rebuild Bunkers","M":""},
+{"G":"Þorlákshöfn ","A":"Edwin Roald","L":"Thorlakshofn ","U":"Iceland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"New Holes "},
+{"G":"Rosmalen ","A":"van der Vaart","L":"Rosmalen ","U":"Netherlands","C":"","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Schaerweijde ","A":"Rijks","L":"Utrecht ","U":"Netherlands","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Miklagard ","A":"RTJ II Lundin","L":"Oslo ","U":"Norway","C":"Bob Harrington","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Nesfjellet ","A":"Grauballe","L":" ","U":"Norway","C":"","J":"New","S":"Open","B":"","Z":"Back Nine","M":""},
+{"G":"Doña Lucia Resort Azata ","A":"Marco Martin","L":"Andalucia ","U":"Spain","C":"GTM Golf","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Costa Ballena Ocean ","A":"José María Olazabal","L":"Cádiz ","U":"Spain","C":"GTM Golf","J":"Renovate","S":"Open","B":"","Z":"","M":"Bermuda Mini Verde Greens "},
+{"G":"Golf de Pedreña ","A":"David Williams","L":"Cantabria ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Crans sur Sierre ","A":"EGD","L":"Crans Montana ","U":"Switzerland","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Crans "},
+{"G":"Killara ","A":"Harley Kruse","L":"NSW ","U":"Australia","C":"Links Golf Construction Atlas Golf Services","J":"Renovate","S":"Open","B":"$4M","Z":"","M":"CapillaryFlow "},
+{"G":"Teven Valley ","A":"Craig Parry","L":"NSW ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Holiday Tour Golf "},
+{"G":"Robe GC ","A":"Crafter Mogford","L":"South Aus. ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","Z":"Dunes Six","M":""},
+{"G":"Lonsdale Links ","A":"Oglivy Cocking Meade","L":"Victoria ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Sneak Peek "},
+{"G":"Sandy Golf Links ","A":"Oglivy Cocking Meade","L":"Victoria ","U":"Australia","C":"","J":"Rebuild ","S":"Open","B":"","Z":"","M":"National Golf Academy "},
+{"G":"Yarra Yarra ","A":"Tom Doak","L":"Victoria ","U":"Australia","C":"","J":"Restore","S":"Open","B":"","Z":"","M":"Hole 15 "},
+{"G":"Vattanac West ","A":"Nick Faldo","L":"Phnom Penh ","U":"Cambodia","C":"","J":"New","S":"Open","B":"","Z":"","M":"Hole 1 "},
+{"G":"Kimmane Resort ","A":"Phil Ryan","L":"Bangalore ","U":"India","C":"","J":"New","S":"Open","B":"","Z":"","M":"Championship Golf "},
+{"G":"Thenzawl Resort ","A":"Cooke","L":"Mizoram ","U":"India","C":"","J":"New","S":"Open","B":"$13M","Z":"Public Private Infrastructure","M":"Golf Tourism "},
+{"G":"Chandigarh ","A":"Vijit Nandrajog","L":"Punjab ","U":"India","C":"","J":"Restore","S":"Open","B":"","Z":"Greens","M":"Bobby Sandhu "},
+{"G":"Parahyangan Golf ","A":"Bob Moore JMP Design","L":"Bandung ","U":"Indonesia","C":"","J":"New","S":"Open","B":"","Z":"","M":"New Asian Tour Course "},
+{"G":"99 East ","A":"Watson","L":"Langkawi ","U":"Malaysia","C":"","J":"Renovate","S":"Open","B":"","Z":"Zeon Zoysia","M":"Old Layout "},
+{"G":"Eastwood Valley ","A":"Doug Nickels","L":"Miri ","U":"Malaysia","C":"","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Zamora Champ. ","A":"E. Austria","L":"Cavite ","U":"Philippines","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":"Hole 8 "},
+{"G":"Education City ","A":"Olazabal","L":" ","U":"Qatar","C":"","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Seletar Country Club ","A":"Dale Ramsey","L":"Singapore ","U":"Singapore","C":"","J":"Renovate","S":"Open","B":"","Z":"","M":""},
+{"G":"Sentosa Serapong ","A":"Andrew Johnston","L":"Singapore ","U":"Singapore","C":"Steven Page","J":"Restore","S":"Open","B":"","Z":"","M":"Hole 5 "},
+{"G":"Tanah Merah Garden ","A":"RTJ II Charlton Gorman","L":"Singapore ","U":"Singapore","C":"Steven Page","J":"Renovate","S":"Open","B":"","Z":"Airport","M":"Hole 6 "},
+{"G":"Sehyeon CC ","A":"Dale Ramsey","L":"Yongin ","U":"South Korea","C":"","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Atitaya Arirang ","A":"TBA","L":"Nakhon Nayok ","U":"Thailand","C":"","J":"New","S":"Open","B":"","Z":"New 9","M":""},
+{"G":"Green Valley ","A":"In house","L":"Samut Prakan ","U":"Thailand","C":"","J":"Renovate","S":"Open","B":"","Z":"Bunkers","M":"Barnaby Carter "},
+{"G":"Regnum G&CC ","A":"Lobb","L":"Ankara ","U":"Turkey","C":"","J":"New","S":"Open","B":"","Z":"","M":"EGD "},
+{"G":"BRG Danang Nicklaus ","A":"Jack Nicklaus","L":"Danang ","U":"Vietnam","C":"Flagstick","J":"New","S":"Open","B":"","Z":"","M":""},
+{"G":"Stone Valley #2 ","A":"Brian Curley","L":"Hanoi ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","Z":"","M":"Resort Golf "},
+{"G":"Hoiana Shores ","A":"RTJ II Mike Gorman","L":"Hoi An ","U":"Vietnam","C":"Matt Flint Don Page","J":"New","S":"Open","B":"","Z":"Rain Bird IC System","M":"Shoreline Golf "},
+{"G":"Madinaty ","A":"RTJ II","L":"Cairo ","U":"Egypt","C":"","J":"New","S":"Open","B":"","Z":"","M":"Link "},
+{"G":"Nkonyeni ","A":"Peter Matkovich","L":"Eswatini ","U":"South Africa","C":"","J":"New","S":"Open","B":"","Z":"","M":""}
+ ]
+}
diff --git a/data/g2021.json b/data/g2021.json
new file mode 100644
index 0000000000000..276a3689ed51d
--- /dev/null
+++ b/data/g2021.json
@@ -0,0 +1,242 @@
+{
+ "data":[
+{"G":"Sterling Grove ","A":"Cochran Nicklaus","L":"Arizona ","U":"USA","C":"Heritage Links","J":"New","B":"$12M","H":"","Z":"","M":"Vlog "},
+{"G":"Wilson Sporting Club ","A":"Goalby Schneider Conant","L":"Arkansas ","U":"USA","C":"Total Turf","J":"New","B":"","H":"","Z":"","M":"Image "},
+{"G":"PGA National ","A":"Andy Staples ","L":"Florida ","U":"USA","C":"Total Turf","J":"New","B":"","H":"","Z":"Squire","M":"PGA "},
+{"G":"Southern Oaks ","A":"Ezell","L":"Florida ","U":"USA","C":"","J":"New","B":"","H":"","Z":"Villages","M":"Flyover "},
+{"G":"Holliday Farms ","A":"Dye Liddy","L":"Indiana ","U":"USA","C":"Wadsworth","J":"New","B":"","H":"","Z":"","M":"Welcome "},
+{"G":"Sebasco Harbor ","A":"Stein","L":"Maine ","U":"USA","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"American Dunes ","A":"Nicklaus","L":"Michigan ","U":"USA","C":"Superior Golf","J":"New","B":"$14M","H":"","Z":"","M":"Construction "},
+{"G":"Saskatoon Silver ","A":"Albanese Matthews","L":"Michigan ","U":"USA","C":"","J":"New","B":"","H":"","Z":"","M":" "},
+{"G":"CapRock Ranch ","A":"Gil Hanse ","L":"Nebraska ","U":"USA","C":"Landscapes Unlimited","J":"New","B":"","H":"","Z":"","M":"Podcast "},
+{"G":"Brookings CC Rabbit Patch ","A":"Kevin Norby","L":"South Dakota ","U":"USA","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Oak Ridge ","A":"Bill Bergin","L":"Tennessee ","U":"USA","C":"","J":"New","B":"","H":"","Z":"","M":"Flyover "},
+{"G":"Circle T Ranch ","A":"Gil Hanse ","L":"Texas ","U":"USA","C":"","J":"New","B":"","H":"","Z":"Perot","M":""},
+{"G":"Grand Oaks Reserve ","A":"Mike Nuzzo","L":"Texas ","U":"USA","C":"Don Mahaffey Greenscape Methods","J":"New","B":"","H":"","Z":"9 Grand","M":""},
+{"G":"Timp Legacy Trail ","A":"Atkinson","L":"Utah ","U":"USA","C":"","J":"New","B":"$4M","H":"","Z":"Arid climate","M":"Muni Golf "},
+{"G":"Gamble Sands Quicksand ","A":"David McLay Kidd","L":"Washington ","U":"USA","C":"","J":"New","B":"","H":"Kidd","Z":"","M":"July "},
+{"G":"Skamania ","A":"Costello","L":"Washington ","U":"USA","C":"","J":"New","B":"","H":"","Z":"Gorge 9","M":"Costello "},
+{"G":"Blackwolf Run Baths ","A":"Chris Lutzke","L":"Wisconsin ","U":"USA","C":"","J":"New","B":"","H":"","Z":"","M":"GOLF Magazine "},
+{"G":"Pioneer Pointe ","A":"Lohmann Quitno","L":"Wisconsin ","U":"USA","C":"Integrity GE","J":"New","B":"","H":"","Z":"","M":"Hole 11 "},
+{"G":"Trapper's Turn ","A":"Haltom North","L":"Wisconsin ","U":"USA","C":"Oliphant Golf","J":"New","B":"","H":"","Z":"","M":"12North "},
+{"G":"Wapika Ranch ","A":"Carl Thuesen","L":"Wyoming ","U":"USA","C":"","J":"New 9","B":"","H":"","Z":"9 holes","M":"GCM "},
+{"G":"Hacienda Bay GC ","A":"Sanford","L":"Al Alamien ","U":"Egypt","C":"","J":"New","B":"","H":"","Z":"","M":"Al Alamien "},
+{"G":"HSD Castle Rock ","A":"Ron Garl Ricky Nix","L":"Yenagoa ","U":"Nigeria","C":"Total Golf","J":"New","B":"","H":"","Z":"","M":"Real estate Golf "},
+{"G":"Rwanda Ultimate GC ","A":"Gary Player","L":"Kigali ","U":"Rwanda","C":"Gregori","J":"New","B":"$17M","H":"","Z":"Open","M":"Greens Expansion "},
+{"G":"Haldi GC ","A":"Ryan Reeves","L":"Hyderabad ","U":"India","C":"","J":"New","B":"","H":"","Z":"","M":"Haldi "},
+{"G":"Godrej Links ","A":"Vijit Nandrajog","L":"Uttar Pradesh ","U":"India","C":"","J":"New","B":"","H":"","Z":"","M":"Vijit "},
+{"G":"Lotus Greens Noida ","A":"Vijit Nandrajog","L":"Uttar Pradesh ","U":"India","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Sedayu ","A":"Nicklaus Cope","L":"Jakarta ","U":"Indonesia","C":"Turfindo Makmur Abadi","J":"New","B":"","H":"","Z":"Ellsworth","M":"MainGolfYukTV "},
+{"G":"Rumanza ","A":"Nick Faldo Andy Haggar","L":"Multan ","U":"Pakistan","C":"Desert Group Abubakar Siddique","J":"New","B":"","H":"","Z":"","M":"Desert Golf "},
+{"G":"Tandatangan ","A":"John Cope","L":"Bataan ","U":"Philippines","C":"Netforce","J":"New","B":"","H":"","Z":"","M":"Golf Tropics "},
+{"G":"Dakak ","A":"Norman Cope","L":"Davao ","U":"Philippines","C":"","J":"New","B":"$18M","H":"","Z":"","M":"Island golf "},
+{"G":"Solaseado ","A":"Dale Ramsey","L":"Haenam ","U":"South Korea","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Orange ","A":"","L":"Incheon ","U":"South Korea","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Seolhaewon ","A":"","L":"South Korea ","U":"South Korea","C":"","J":"New","B":"","H":"","Z":"New 9","M":""},
+{"G":"Sai Golf Club ","A":"JMP Moore","L":"Ayutthaya ","U":"Thailand","C":"","J":"New","B":"","H":"","Z":"","M":"Preview "},
+{"G":"Aquella ","A":"Phil Ryan","L":"Phang Nga ","U":"Thailand","C":"Bill Kessener","J":"New","B":"","H":"Dye","Z":"was Muang Thai","M":"Beachfront golf "},
+{"G":"Ballyshear ","A":"Gil Hanse","L":"Samut Prakan ","U":"Thailand","C":"Bret Brennan","J":"New","B":"","H":"","Z":"Josh McFadden","M":"Lido inspired "},
+{"G":"Tuan Chau Golf Resort ","A":"Pacific Coast Design","L":"Ha Long ","U":"Vietnam","C":"","J":"New","B":"","H":"","Z":"Outfield Asia","M":"Pure Dynasty Paspalum "},
+{"G":"Amber Hills Hillside ","A":"Albanese Lutzke","L":"Hanoi ","U":"Vietnam","C":"","J":"New","B":"","H":"","Z":"Yen Dung","M":"Asian Golf Holiday "},
+{"G":"Thanh Lanh ","A":"Faldo Haggar","L":"Hanoi ","U":"Vietnam","C":"Flagstick","J":"New","B":"","H":"","Z":"Serena","M":"Golf Resort "},
+{"G":"Yen Bai Star ","A":"Peter Waddell","L":"Hanoi ","U":"Vietnam","C":"","J":"New","B":"","H":"","Z":"Outfield Asia","M":"eco-tourism "},
+{"G":"Hilltop Valley ","A":"B Stenson","L":"Hoa Binh ","U":"Vietnam","C":"","J":"New","B":"","H":"","Z":"IMG","M":""},
+{"G":"Royal GC Queens ","A":"Nicklaus II Wagner","L":"Ninh Binh ","U":"Vietnam","C":"Cameron Thompson Don Page","J":"New","B":"","H":"","Z":"","M":"Parkland Golf "},
+{"G":"Nova PGA Ocean ","A":"Norman","L":"Phan Thiet ","U":"Vietnam","C":"Flagstick","J":"New","B":"","H":"","Z":"","M":"Flyover "},
+{"G":"Barnbougle Bougle Run ","A":"Johns Hawker","L":"Tasmania ","U":"Australia","C":"","J":"New","B":"","H":"","Z":"Bill Coore","M":"Caddie "},
+{"G":"Neangar Park ","A":"Davey","L":"Victoria ","U":"Australia","C":"","J":"New","B":"","H":"","Z":"Bendigo","M":"Tifdwarf "},
+{"G":"Tieke Golf Estate ","A":"Thomson Tataurangi","L":"North Island ","U":"NZ","C":"","J":"New","B":"","H":"","Z":"","M":"Aerial "},
+{"G":"Wanaka ","A":"Charles","L":"South Island ","U":"NZ","C":"","J":"New","B":"$0.5M","H":"","Z":"","M":"Bunkers "},
+{"G":"Académie 57 ","A":"van Hauwaert","L":"Alsace ","U":"France","C":"Southwest Greens","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Tabori Golf Resort ","A":"David Dale Dale Ramsey","L":"Tbilisi ","U":"Georgia","C":"","J":"New","B":"","H":"","Z":"","M":"Shaping "},
+{"G":"Spa Anna Amalia ","A":"Reinmuth Städler","L":"Weimar ","U":"Germany","C":"","J":"New","B":"","H":"","Z":"","M":""},
+{"G":"Princenbosch ","A":"Rijks","L":"Molenschot ","U":"Netherlands","C":"","J":"New","B":"","H":"","Z":"Par 3","M":""},
+{"G":"Altaona ","A":"Stirling Martin","L":"Murcia ","U":"Spain","C":" GTM Golf ","J":"New","B":"","H":"","Z":"GTM","M":"Hole 18 "},
+{"G":"New Sierra ","A":"Rodríguez-Murcia","L":"Murcia ","U":"Spain","C":"Surtec","J":"New","B":"","H":"","Z":"","M":"9th hole "},
+{"G":"Golf Xaz ","A":"Stirling Martin","L":"Oleiros ","U":"Spain","C":"","J":"New","B":"","H":"","Z":"Golf Spain","M":"Galicia "},
+{"G":"St Patricks ","A":"Doak Iverson Johnson Moser","L":"Donegal ","U":"Ireland","C":"","J":"New","B":"","H":"","Z":"","M":"Bertram "},
+{"G":"San Pedro ","A":"Fernando Gonzalez Prieto","L":"Buenos Aires ","U":"Argentina","C":"","J":"New","B":"","H":"","Z":"Tipaldi","M":""},
+{"G":"RLL Wellness ","A":"Agustin Piza","L":"Yucatan ","U":"Mexico","C":"","J":"New","B":"","H":"","Z":"Chablé","M":"Wellness Resort "},
+{"G":"Five Forts ","A":"RTJ II","L":"St George’s ","U":"Bermuda","C":"","J":"Rebuild ","B":"","H":"RTJ","Z":"St. Regis","M":"Golf Hotel "},
+{"G":"Pebble Beach Hay ","A":"Welling Woods","L":"California ","U":"USA","C":"","J":"Rebuild ","B":"","H":"","Z":"","M":"Experience "},
+{"G":"Jonathan's Landing ","A":"Gil Hanse Jim Wagner","L":"Florida ","U":"USA","C":"","J":"Rebuild ","B":"","H":"Hills","Z":"Old Trail","M":"Faxon "},
+{"G":"Heritage Oaks ","A":"Jacobson Jeffrey Danner","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Rebuild ","B":"$13.3M","H":"","Z":"","M":"Muni Golf "},
+{"G":"Lake Charles ","A":"Blume","L":"Louisiana ","U":"USA","C":"Sterling","J":"Rebuild ","B":"","H":"","Z":"Mallard","M":""},
+{"G":"Smugglers Run ","A":"Nathan Crace","L":"Louisiana ","U":"USA","C":"","J":"Rebuild ","B":"","H":"","Z":"Jackson Parish","M":""},
+{"G":"Inness ","A":"King Collins ","L":"New York ","U":"USA","C":"","J":"Rebuild ","B":"","H":"","Z":"Rondout","M":"Flyover "},
+{"G":"High Hampton ","A":"Tom Fazio Bryan Bowers","L":"North Carolina ","U":"USA","C":"Pristine Golf","J":"Rebuild ","B":"","H":"","Z":"","M":"GCSAA "},
+{"G":"Fox Hills ","A":"Norby ","L":"North Dakota ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","B":"$8.4M","H":"","Z":"","M":"LU "},
+{"G":"Bob O’Connor ","A":"Cervone ","L":"Pennsylvania ","U":"USA","C":"","J":"Rebuild ","B":"","H":"","Z":"","M":"Shistorians "},
+{"G":"Belmont ","A":"Davis Love Scot Sherman","L":"Virginia ","U":"USA","C":"MacCurrach","J":"Rebuild ","B":"$5M","H":"Tillinghast ","Z":"Snow Canyon","M":"Henrico County "},
+{"G":"Trivandrum ","A":"Vijit Nandrajog","L":"Kerala ","U":"India","C":"","J":"Rebuild ","B":"","H":"Thompson","Z":"9 holes","M":"Colonial Golf Course "},
+{"G":"RTAFB Wing 21 ","A":"","L":"Ubon ","U":"Thailand","C":"","J":"Rebuild ","B":"","H":"","Z":"","M":""},
+{"G":"Weybrook Park GC ","A":"Moodie Burrell","L":"Basingstoke ","U":"England","C":"Ely","J":"Rebuild ","B":"","H":"","Z":"","M":""},
+{"G":"Las Piedras ","A":"Thad Layton","L":"Maldonado ","U":"Uruguay","C":"ProGolf Benjamin Silva Gil Zdanowski","J":"Rebuild ","B":"","H":"Palmer","Z":"New 9","M":"thad.layton "},
+{"G":"Sailfish Sands ","A":"Sanford ","L":"Florida ","U":"USA","C":"TDI Classic Golf Construction","J":"Reduce","B":"$10M","H":"Langford","Z":"Martin County ","M":"Front 9 "},
+{"G":"Blackhawk GC ","A":"Whitman Cutten","L":"Alberta ","U":"Canada","C":"","J":"Renovate","B":"","H":"","Z":"","M":"The Sanctuary "},
+{"G":"Sagebrush ","A":"Whitman Mingay Zokol","L":"Brit Columbia ","U":"Canada","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Reboot "},
+{"G":"Uplands Golf Club ","A":"Jeff Mingay","L":"Brit Columbia ","U":"Canada","C":"","J":"Renovate","B":"","H":"Robinson","Z":"","M":"Holes 2-3 "},
+{"G":"Oxmoor Valley ","A":"Clyde Johnston","L":"Alabama ","U":"USA","C":"","J":"Renovate","B":"","H":"RTJ","Z":"TifEagle","M":""},
+{"G":"Peninsula Golf ","A":"In house","L":"Alabama ","U":"USA","C":"","J":"Renovate","B":"","H":"Stone","Z":"Barrett","M":"AL "},
+{"G":"Eagle Mountain ","A":"In house","L":"Arizona ","U":"USA","C":"Casa Verde","J":"Renovate","B":"","H":"Miller ","Z":"Reduction","M":""},
+{"G":"The Views GC ","A":"Mike Gogel","L":"Arizona ","U":"USA","C":"Pro Turf International","J":"Renovate","B":"","H":"Nash Hardin","Z":"","M":"ProTurf "},
+{"G":"Western Skies ","A":"","L":"Arizona ","U":"USA","C":"Total Turf Golf","J":"Renovate","B":"","H":"","Z":"Toro DT 34-35 sprinklers and 2-wire decoder","M":""},
+{"G":"Cordevalle ","A":"RTJ II","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"RTJ II","Z":"","M":""},
+{"G":"El Caballero ","A":"Rees Jones","L":"California ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$10M","H":"RTJ","Z":"Santa Ana bermuda","M":"Latitude 36 bermuda "},
+{"G":"Friendly Hills ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"Hines","Z":"5 degrees","M":""},
+{"G":"Granite Bay ","A":"Kyle Phillips Mark Thawley","L":"California ","U":"USA","C":"Jay Abbott Salvador Rodriguez Steven Page","J":"Renovate","B":"","H":"RTJ Kyle Phillips","Z":"","M":"Regrassing "},
+{"G":"Menlo CC ","A":"Kyle Phillips Mark Thawley","L":"California ","U":"USA","C":"Earth Sculptures Theisen Downing","J":"Renovate","B":"","H":"","Z":"Turf Conversion","M":""},
+{"G":"Monterey Peninsula Shore ","A":"Dave Zinkland","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"Strantz","Z":"","M":""},
+{"G":"Mountain Vista Sun City ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"Billy Casper","Z":"","M":"Hole 7 "},
+{"G":"Pico Rivera ","A":"Govt.","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"Dam repair","M":""},
+{"G":"San Vicente ","A":"Andy Staples","L":"California ","U":"USA","C":"Heritage Links","J":"Renovate","B":"$2.9M","H":"Robinson ","Z":"","M":"Hole 9 "},
+{"G":"Tahoe Donner ","A":"Cary Bickler","L":"California ","U":"USA","C":"","J":"Renovate","B":"$2.5M","H":"","Z":"","M":"Mountain Golf "},
+{"G":"Aspetuck Valley CC ","A":"Lester George","L":"Connecticut ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"","Z":"","M":"Images "},
+{"G":"Bent Creek ","A":"In house","L":"Florida ","U":"USA","C":"Indigo Troon","J":"Renovate","B":"","H":"Bobby Weed","Z":"","M":""},
+{"G":"Grand Cypress GC ","A":"Nicklaus","L":"Florida ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"Nicklaus","Z":"Bunkers","M":"Soil "},
+{"G":"Heritage Palms Sabal ","A":"Gordon Lewis","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Azinger Lewis","Z":"","M":"FL "},
+{"G":"Jacaranda ","A":"Bobby Weed","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"$10M","H":"","Z":"","M":""},
+{"G":"Olde Cypress ","A":"","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"PB Dye","Z":"","M":"Naples "},
+{"G":"Olde Florida ","A":"","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Rees Jones","Z":"","M":"Regrassing "},
+{"G":"Palm Aire ","A":"Mike Benkusky","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Wilson","Z":"","M":"FL "},
+{"G":"Pointe West ","A":"Sanford","L":"Florida ","U":"USA","C":"Total Golf","J":"Renovate","B":"","H":"","Z":"","M":"Bunker "},
+{"G":"Santa Rosa ","A":"Bill Bergin","L":"Florida ","U":"USA","C":"Medalist","J":"Renovate","B":"$3.8M","H":"","Z":"","M":"Bergin "},
+{"G":"Seven Lakes ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Ryan Golf","J":"Renovate","B":"$3.4M","H":"","Z":"","M":"Opening "},
+{"G":"The Meadows CC ","A":"Johnston","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"$1.2M","H":"","Z":"$1.2M","M":"Rebuild bunkers "},
+{"G":"The Quarry ","A":"Hurdzan Fry","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Hurdzan Fry","Z":"","M":"Regrassing "},
+{"G":"TPC Treviso Bay ","A":"Ryan","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"$3M","H":"Hills","Z":"$3M","M":"Shaping "},
+{"G":"Turkey Creek ","A":"Palmer","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"$1.5M","H":"","Z":"","M":""},
+{"G":"TwinEagles Talon ","A":"Nicklaus Design","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Club Golf "},
+{"G":"Woodfield CC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Heritage Links","J":"Renovate","B":"$7.9M","H":"","Z":"","M":"Images "},
+{"G":"Big Canoe Creek ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"Sanders Golf Tim Furness","J":"Masterplan","B":"","H":"","Z":"","M":""},
+{"G":"Charlie Yates ","A":"Medalist","L":"Georgia ","U":"USA","C":"","J":"Renovate","B":"","H":"Rees Jones","Z":"","M":"Prizm Zoysia "},
+{"G":"Chattahoochee GC ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$2M","H":"RTJ Sr.","Z":"","M":""},
+{"G":"Dalton G&CC ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Bergin #5 "},
+{"G":"West Pines ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Tam O'Shanter ","A":"Lohmann Quitno","L":"Illinois ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Hole 1 "},
+{"G":"Harrison Lake ","A":"Tim Liddy","L":"Indiana ","U":"USA","C":"Wadsworth","J":"Renovate","B":"","H":"","Z":"","M":"Bob Haddad "},
+{"G":"Long Beach CC ","A":"Todd Clark","L":"Indiana ","U":"USA","C":"Servicescape","J":"Renovate","B":"","H":"","Z":"","M":"Reopeni "},
+{"G":"The Meadows ","A":"Norby","L":"Iowa ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"GCA "},
+{"G":"Indian Hills CC ","A":"Todd Clark","L":"Kansas ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"cegolfdesign "},
+{"G":"Mallard GC ","A":"Blume","L":"Louisiana ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Overhead "},
+{"G":"Tamahka Trails ","A":"Nathan Crace","L":"Louisiana ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Hole 18 "},
+{"G":"Bethesda CC ","A":"Joel Weiman","L":"Maryland ","U":"USA","C":"McDonald & Sons","J":"Renovate","B":"","H":"","Z":"Tanto Irrigation","M":""},
+{"G":"Congressional Blue ","A":"Andrew Green","L":"Maryland ","U":"USA","C":"Leibold Irrigation E.C. Design","J":"Renovate","B":"","H":"RTJ","Z":"Toro Golf 2-Wire","M":"Superintendent Peter Wendt "},
+{"G":"Eisenhower ","A":"Andrew Green","L":"Maryland ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$5M","H":"Ault","Z":"Preserve","M":"Green "},
+{"G":"Green Spring Valley ","A":"Tyler Rae","L":"Maryland ","U":"USA","C":"","J":"Renovate","B":"","H":"RTJ","Z":"","M":"GCSAA "},
+{"G":"Country Club of Pittsfield ","A":"Bruce Hepner","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Design Meeting "},
+{"G":"Bloomfield Hills ","A":"DeVries Pont ","L":"Michigan ","U":"USA","C":"LaBar","J":"Renovate","B":"","H":"Colt","Z":"LaBar","M":"Open "},
+{"G":"Blythefield CC ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"MacCurrach","J":"Renovate","B":"","H":"Langford Moreau","Z":"","M":"7/20/2023 "},
+{"G":"Oakland Hills South ","A":"Gil Hanse Kye Goalby Blake Conant","L":"Michigan ","U":"USA","C":"TDI Golf Leibold Irrigation","J":"Renovate","B":"$12M","H":"Ross RTJ ","Z":"Rain Bird","M":"Paul Roche Golf Water "},
+{"G":"Pine River ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"Great Lakes","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Red Run ","A":"Bruce Hepner","L":"Michigan ","U":"USA","C":"","J":"Renovate","B":"","H":"Bendelow Park Jr.","Z":"","M":"Restoration Plan "},
+{"G":"Midland Hills ","A":"Jim Urbina","L":"Minnesota ","U":"USA","C":"","J":"Renovate","B":"$2M","H":"Raynor","Z":"","M":"Number 1 "},
+{"G":"Refuge ","A":"Nathan Crace","L":"Mississippi ","U":"USA","C":"Eagle Golf","J":"Renovate","B":"$1.9M","H":"Case ","Z":"Watermark Golf","M":"Plan "},
+{"G":"Lake Valley ","A":"Todd Clark","L":"Missouri ","U":"USA","C":"Mammoth Sports","J":"Renovate","B":"","H":"","Z":"Bunkers","M":""},
+{"G":"Legends CC ","A":"Schaupeter","L":"Missouri ","U":"USA","C":"","J":"Renovate","B":"$1.4M","H":"RTJ","Z":"","M":"Update "},
+{"G":"Meadowbrook CC ","A":"Kevin Hargrave","L":"Missouri ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"Bunkers","M":"Front 9 "},
+{"G":"Hollywood ","A":"Brian Schneider","L":"New Jersey ","U":"USA","C":"LaBar","J":"Renovate","B":"","H":"Travis","Z":"","M":""},
+{"G":"Laurel Creek CC ","A":"Andrew Green","L":"New Jersey ","U":"USA","C":"","J":"Masterplan","B":"","H":"","Z":"","M":""},
+{"G":"Montclair ","A":"McDonald Schneider","L":"New Jersey ","U":"USA","C":"","J":"Renovate","B":"","H":"Ross Banks","Z":"3rd nine","M":" Nov 2020 "},
+{"G":"Pinelands ","A":"Kay","L":"New Jersey ","U":"USA","C":"George Ley","J":"Renovate","B":"","H":"","Z":"TriCure AD","M":""},
+{"G":"The Shore ","A":"Tyler Rae","L":"New Jersey ","U":"USA","C":"","J":"Renovate","B":"","H":"Stiles","Z":"","M":"TSC "},
+{"G":"Stone Harbor ","A":"Tyler Rae","L":"New Jersey ","U":"USA","C":"Total Turf GS","J":"Phase 1","B":"","H":"Muirhead","Z":"Heritage Golf Group Acquisition June 2023","M":""},
+{"G":"Nassau CC ","A":"Fazio Marzolf","L":"New York ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Summit Armonk ","A":"Rees Jones","L":"New York ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"Brynwood","M":"Open "},
+{"G":"Manhattan Woods ","A":"Kovich","L":"New York ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Highlands Falls ","A":"Bill Bergin","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"Lee ","Z":"John Deere","M":"Highlands NC "},
+{"G":"Highlands CC ","A":"Forse","L":"North Carolina ","U":"USA","C":"Green Tee Golf","J":"Masterplan","B":"","H":"Ross","Z":"","M":"Stiehler "},
+{"G":"Trump Charlotte ","A":"","L":"North Carolina ","U":"USA","C":"Labar","J":"Renovate","B":"","H":"","Z":"","M":"Bunkers "},
+{"G":"Coldstream ","A":"Keith Foster","L":"Ohio ","U":"USA","C":"","J":"Renovate","B":"","H":"Wilson","Z":"","M":"Derek Duncan "},
+{"G":"Columbus CC ","A":"Hargrave","L":"Ohio ","U":"USA","C":"","J":"Renovate","B":"","H":"Ross","Z":"","M":""},
+{"G":"Kenwood CC Kendale ","A":"Straka Fry","L":"Ohio ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$5M","H":"Diddle","Z":"","M":"June "},
+{"G":"Muirfield Village ","A":"Nicklaus Design","L":"Ohio ","U":"USA","C":"LaBar","J":"Renovate","B":"","H":"","Z":"","M":"GOLF "},
+{"G":"Llanerch ","A":"Brian Schneider","L":"Pennsylvania ","U":"USA","C":"Total Turf","J":"Renovate","B":"","H":"Findlay","Z":"","M":"Philly Golf "},
+{"G":"Philadelpha CC Cen. ","A":"Forse Nagle","L":"Pennsylvania ","U":"USA","C":"Mottin","J":"Renovate","B":"","H":"Flynn","Z":"Mottin","M":"Hole 4 2018 "},
+{"G":"Waynesborough ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","B":"","H":"G Fazio","Z":"","M":"Front 9 "},
+{"G":"McCall GC ","A":"Forse Nagle","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","B":"","H":"Ross Flynn","Z":"","M":"Timeline "},
+{"G":"Briar’s Creek ","A":"Rees Jones","L":"South Carolina ","U":"USA","C":"Southeastern Golf","J":"Renovate","B":"$6.5M","H":"","Z":"","M":"Strategic golf "},
+{"G":"Greer ","A":"Lawrence","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Tahoma 31 "},
+{"G":"Seabrook Ocean Winds ","A":"Swanson Jones","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"Byrd","Z":"","M":"Bryce Swanson "},
+{"G":"Sea Pines ","A":"Smith","L":"South Carolina ","U":"USA","C":"MacCurrach","J":"Renovate","B":"","H":"Palmer","Z":"","M":"TifEagle Greens "},
+{"G":"Patriot Grand Harbor ","A":"Sherman Love","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"2016 "},
+{"G":"Pine Lakes ","A":"Todd Schreiner","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"White","Z":"Open July 22","M":""},
+{"G":"Ware Shoals ","A":"Scot Sherman","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"9 holes","M":"Sherman "},
+{"G":"Lee Park ","A":"Kevin Norby","L":"South Dakota ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"14th hole "},
+{"G":"Cherokee CC ","A":"Tyler Rae","L":"Tennessee ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"88 Acres "},
+{"G":"Butler Pitch Putt ","A":"","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"$1M","H":"","Z":"WGI","M":""},
+{"G":"Hills of Lakeway ","A":"Nicklaus","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Opening tee shot "},
+{"G":"Olmos Basin ","A":"Blume","L":"Texas ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$4M","H":"","Z":"McKush","M":"Hole 12 "},
+{"G":"Wing Point ","A":"Jeff Mingay","L":"Washington ","U":"USA","C":"","J":"Renovate","B":"","H":"","Z":"Bainbridge","M":"2016 Mingay "},
+{"G":"Pine Hills CC ","A":"Drew Rogers","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","B":"","H":"Langford","Z":"","M":"Golf Course Photographer "},
+{"G":"Teton Pines ","A":"Hochstein Layton","L":"Wyoming ","U":"USA","C":"","J":"Renovate","B":"","H":"Palmer","Z":"","M":""},
+{"G":"Blair Atholl ","A":"Ingadi","L":"Pretoria ","U":"South Africa","C":"","J":"Renovate","B":"","H":"Player","Z":"","M":"Golf Hotel "},
+{"G":"Discovery Bay Ruby ","A":"Swanson","L":"Hong Kong ","U":"China","C":"","J":"Renovate","B":"","H":"RTJ","Z":"","M":""},
+{"G":"Westlake ","A":"Nicklaus Design","L":"Zhejiang ","U":"China","C":"","J":"Renovate","B":"","H":"Nicklaus","Z":"","M":""},
+{"G":"East Point ","A":"","L":"Bangalore ","U":"India","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Dirab G&CC ","A":"","L":"Riyadh ","U":"Saudi","C":"","J":"Renovate","B":"","H":"","Z":"Majed Al-Sorour","M":""},
+{"G":"Singapore Island CC ","A":"Graham Marsh","L":"Singapore ","U":"Singapore","C":"","J":"Renovate","B":"","H":"Pennick Thompson","Z":"27 holes","M":"Club Video "},
+{"G":"Hurstville GC ","A":"","L":"NSW ","U":"Australia","C":"","J":"Renovate","B":"$1.1M","H":"","Z":"","M":""},
+{"G":"Palm Beach GC ","A":"Craig Parry","L":"NSW ","U":"Australia","C":"","J":"Renovate","B":"$0.7M","H":"","Z":"","M":""},
+{"G":"Pymble ","A":"Wilcher","L":"NSW ","U":"Australia","C":"","J":"Renovate","B":"","H":"","Z":"Golf by Design","M":"Hole 11 "},
+{"G":"Wakehurst ","A":"Brown Parry","L":"NSW ","U":"Australia","C":"","J":"Renovate","B":"","H":"","Z":"","M":"4 Greens "},
+{"G":"Fremantle GC ","A":"Chamberlain","L":"Perth ","U":"Australia","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Mornington ","A":"Ben Davey Darius Oliver","L":"Victoria ","U":"Australia","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Riverside Lochiel ","A":"RBT Tataurangi","L":"North Island ","U":"NZ","C":"","J":"Renovate","B":"$7M","H":"","Z":"","M":""},
+{"G":"Omaha Beach ","A":"Kura Kerr","L":"North Island ","U":"NZ","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Hole 15 "},
+{"G":"Fontana ","A":"Doug Carrick","L":"Vienna ","U":"Austria","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Topiary "},
+{"G":"Minthis GC ","A":"Mackenzie","L":"Paphos ","U":"Cyprus","C":"","J":"Renovate","B":"$6M","H":"","Z":"Greens","M":"DP World Tour "},
+{"G":"Albatross ","A":"Davison","L":"Czech ","U":"Czech Republic","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Bunkers "},
+{"G":"Kytäjä South East ","A":"Illonen","L":"Finland ","U":"Finland","C":"","J":"Renovate","B":"","H":"McBroom","Z":"","M":""},
+{"G":"Vidauban ","A":"RTJ II Mike Gorman","L":"South ","U":"France","C":"MJ Abbott","J":"Renovate","B":"","H":"RTJ","Z":"","M":"Private club "},
+{"G":"Niederrheinischer ","A":"Angela Moser","L":"Dusseldurf ","U":"Germany","C":"","J":"Renovate","B":"","H":"","Z":"Bunkers","M":"Angela Moser "},
+{"G":"Hof Hausen ","A":"VanderVaart","L":"Frankfurt ","U":"Germany","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Hamburger Falkenstein ","A":"Frank Pont Hendrick Hilgert","L":"Hamburg ","U":"Germany","C":"","J":"Renovate","B":"","H":"Colt","Z":"Bunkers","M":"Update "},
+{"G":"Maritim Golfpark Ostsee ","A":"Frank Pont Hendrick Hilgert","L":"Hamburg ","U":"Germany","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Aachener GC ","A":"Angela Moser","L":"Rhinesland ","U":"Germany","C":"","J":"Renovate","B":"","H":"Colt","Z":"","M":""},
+{"G":"Marco Simone ","A":"Sampson Slessor","L":"Roma ","U":"Italy","C":"SOL Golf Jake McTavish","J":"Renovate","B":"","H":"Simone","Z":"Ryder Cup","M":"As of 2020 "},
+{"G":"Verdura ","A":"Kyle Phillips","L":"Sicily ","U":"Italy","C":"Swilken Landscaping ProGolf Benjamin da Silva","J":"Renovate","B":"","H":"","Z":"Flooding","M":"East "},
+{"G":"Amelisweerd GC ","A":"Spogard van der Vaart","L":"Utrecht ","U":"Netherlands","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"Landgoed Coudewater ","A":"van der Vaart","L":"Rosmalen ","U":"Netherlands","C":"","J":"Rebuild 9","B":"","H":"","Z":"700 members","M":" "},
+{"G":"Tyrifjord ","A":"","L":"Storøya ","U":"Norway","C":"All Golf Services","J":"Rebuild ","B":"","H":"","Z":"","M":""},
+{"G":"Terramar Golf Club ","A":"Martin Ebert","L":"Barcelona ","U":"Spain","C":"","J":"Renovate","B":"","H":"","Z":"","M":"After "},
+{"G":"Empordà Golf ","A":"In-house","L":"Girona ","U":"Spain","C":"","J":"Renovate","B":"","H":"Von Hagge","Z":"","M":"Emporda "},
+{"G":"Villa Madrid ","A":"Olazabal","L":"Madrid ","U":"Spain","C":"","J":"Renovate","B":"","H":"Ballesteros","Z":"Yellow","M":""},
+{"G":"Club Puerta de Hierro ","A":"Frank Pont","L":"Madrid ","U":"Spain","C":"","J":"Renovate","B":"","H":"Colt","Z":"Upper","M":"Historic Design Renovation "},
+{"G":"La Cala ","A":"","L":"Malaga ","U":"Spain","C":"","J":"Renovate","B":"","H":"Robinson","Z":"","M":""},
+{"G":"San Roque Old ","A":"Clarkin","L":"San Roque ","U":"Spain","C":"Atlantic","J":"Renovate","B":"","H":"Thomas","Z":"Rain Bird","M":"Regrass "},
+{"G":"La Sella ","A":"Olazabal","L":"Valencia ","U":"Spain","C":"Golf Técnicas","J":"Renovate","B":"","H":"","Z":"Mestral","M":"Holiday Golf "},
+{"G":"Djursholms ","A":"Caspar Grauballe","L":"Sweden ","U":"Sweden","C":"","J":"Renovate","B":"","H":"","Z":"","M":"2017 "},
+{"G":"Beaconsfield ","A":"Martin Hawtree","L":"Berkshire ","U":"England","C":"","J":"Renovate","B":"","H":"Colt","Z":"","M":"Bunkers "},
+{"G":"Cavendish ","A":"Jonathan Gaunt","L":"Derbyshire ","U":"England","C":"","J":"Renovate","B":"","H":"MacKenzie","Z":"","M":"Parkland Golf "},
+{"G":"Royal North Devon ","A":"Mackenzie Ebert","L":"Devon ","U":"England","C":"","J":"Renovate","B":"","H":"Morris","Z":"Erosion","M":"8th hole "},
+{"G":"Chart Hills ","A":"Smyers Faldo","L":"Kent ","U":"England","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Opening "},
+{"G":"Caversham Heath ","A":"Tom McBroom","L":"Reading ","U":"England","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Hole 6 "},
+{"G":"Hillside ","A":"Mackenzie Ebert","L":"Southport ","U":"England","C":"HML","J":"Renovate","B":"","H":"Hawtree","Z":"","M":"Links Golf "},
+{"G":"New Zealand ","A":"Pont Walsh","L":"Surrey ","U":"England","C":"","J":"Renovate","B":"","H":"Simpson","Z":"","M":"Hole 9 "},
+{"G":"Tralee ","A":"Webster","L":"Cork ","U":"Ireland","C":"","J":"Renovate","B":"","H":"Palmer Seay","Z":"","M":"Hole 7 "},
+{"G":"Ardglass ","A":"Ken Kearney","L":"Down ","U":"No. Ireland","C":"","J":"Renovate","B":"","H":"David Jones","Z":"","M":"Paul Vaughan "},
+{"G":"Royal Troon Portland ","A":"Martin Ebert","L":"Ayshire ","U":"Scotland","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Hole 9 "},
+{"G":"Santapazienza ","A":"Logan Fazio","L":"Itatiba ","U":"Brazil","C":"","J":"Renovate","B":"","H":"Tom Fazio","Z":"","M":""},
+{"G":"Barranquilla ","A":"Joe Jemsek","L":"Atlantico ","U":"Colombia","C":"","J":"Renovate","B":"","H":"","Z":"","M":"Sand trap "},
+{"G":"Briceño 18 ","A":"Agustin Piza","L":"Bogotá ","U":"Colombia","C":"","J":"Renovate","B":"","H":"","Z":"Vinasco","M":""},
+{"G":"Sandals ","A":"Greg Norman","L":"Cap Estate ","U":"St. Lucia","C":"","J":"Renovate","B":"","H":"","Z":"","M":""},
+{"G":"TPC Louisiana ","A":"Claytor","L":"Louisiana ","U":"USA","C":"Duininck","J":"Renovation","B":"","H":"Dye","Z":"","M":"Flyover "},
+{"G":"Hamilton ","A":"Martin Ebert","L":"Ontario ","U":"Canada","C":"","J":"Restore","B":"","H":"Colt Robinson","Z":"East 9","M":"Images "},
+{"G":"Grand Harbor Harbor ","A":"Lutzke Shaw","L":"Florida ","U":"USA","C":"","J":"Restore","B":"","H":"Dye","Z":"","M":"Breda "},
+{"G":"Kensington G&CC ","A":"RTJ Charlton","L":"Florida ","U":"USA","C":"","J":"Restore","B":"$7.2M","H":"RTJ Sr.","Z":"","M":"Charlton "},
+{"G":"The Country Club ","A":"Gil Hanse ","L":"Massachusetts ","U":"USA","C":"MAS","J":"Restore","B":"","H":"Flynn","Z":"2022","M":""},
+{"G":"Baltusrol Lower ","A":"Gil Hanse ","L":"New Jersey ","U":"USA","C":"Total Turf","J":"Restore","B":"$17.3M","H":"Tillinghast ","Z":"","M":" May 2021 "},
+{"G":"Hendricks Field ","A":"Kay","L":"New Jersey ","U":"USA","C":"Turco Golf","J":"Restore","B":"$5.1M","H":"Banks","Z":"","M":""},
+{"G":"Blind Brook ","A":"Jim Urbina","L":"New York ","U":"USA","C":"","J":"Restore","B":"","H":"Raynor","Z":"","M":""},
+{"G":"Southern Pines ","A":"Kyle Franz","L":"North Carolina ","U":"USA","C":"","J":"Restore","B":"","H":"Ross","Z":"Kelly Miller","M":"Interview "},
+{"G":"Terrace Park ","A":"Andy Staples","L":"Ohio ","U":"USA","C":"","J":"Restore","B":"","H":"Travis","Z":"","M":"Hole 13 "},
+{"G":"Cedar Creek GC ","A":"Colton Craig","L":"Oklahoma ","U":"USA","C":"","J":"Restore","B":"","H":"","Z":"Broken Bow","M":"Bunkerless "},
+{"G":"Burlington CC ","A":"Robert McNeil","L":"Vermont ","U":"USA","C":"","J":"Restore","B":"","H":"Ross","Z":"Bunkers","M":"robertmcneilgolfarchitect "},
+{"G":"Inglewood ","A":"Jeff Mingay","L":"Washington ","U":"USA","C":"Ridgetop","J":"Restore","B":"","H":"Macan","Z":"","M":""},
+{"G":"Keya GC ","A":"Paul Jansen","L":"Fukuoka ","U":"Japan","C":"Andrew McDaniel Keith Cutten Quinn Thompson Andrew Thomson","J":"Restore","B":"","H":"","Z":"Bunkers","M":"Korai Greens "},
+{"G":"St. Enodoc ","A":"Tom Doak","L":"Cornwall ","U":"England","C":"","J":"Restore","B":"","H":"Braid","Z":"","M":"Himalaya Bunker "},
+{"G":"Loch Lomond ","A":"GolfLink Evolve","L":"Dunbartonshire ","U":"Scotland","C":"","J":"Restore","B":"$10M","H":"Wesikopf Morrish","Z":"$10M","M":"Capillary Concrete "},
+{"G":"Rhayader ","A":"Powell","L":"Powys ","U":"Wales","C":"","J":"Restore","B":"","H":"Mackenzie","Z":"","M":"Wales "}
+ ]
+}
diff --git a/data/g2022.json b/data/g2022.json
new file mode 100644
index 0000000000000..56854a876fa0c
--- /dev/null
+++ b/data/g2022.json
@@ -0,0 +1,264 @@
+{
+ "data":[
+{"G":"Raindance National ","A":"Harrison Minchew","L":"Colorado ","U":"USA","C":"Fred Funk","J":"New","S":"Open","B":"","H":"","Y":"2022-07-14","Z":"","M":"FirePit "},
+{"G":"National at Ave Maria ","A":"Gordon Lewis","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-12-31","Z":"","M":"Putting Green "},
+{"G":"Stillwater ","A":"Bobby Weed ","L":"Florida ","U":"USA","C":"MacCurrach","J":"New","S":"Open","B":"","H":"","Y":"2022-08-24","Z":"","M":"Scott Self "},
+{"G":"White Oak ","A":"Dye MacCurrach","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"Melnyk","Y":"2023-01-25","Z":"","M":""},
+{"G":"Thousand Acres ","A":"Craig Schreiner","L":"Maryland ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-09-17","Z":"","M":"New 9 holes "},
+{"G":"Landmand ","A":"Tad King Rob Collins ","L":"Nebraska ","U":"USA","C":"Burger Heritage Links Jeff Bradley Matt Rouches","J":"New","S":"Open","B":"","H":"","Y":"2022-09-13","Z":"Trev Dormer Winterberry Irrigation","M":"Lucas Beasley "},
+{"G":"Lost Rail ","A":"Scott Hoffman","L":"Nebraska ","U":"USA","C":"Landscapes Unlimited","J":"New","S":"Open","B":"$15M","H":"","Y":"2022-09-13","Z":"","M":"Bill Kubly "},
+{"G":"Bar Run ","A":"Dan Hixson","L":"Oregon ","U":"USA","C":"Milroy Golf Systems","J":"New","S":"Open","B":"","H":"","Y":"2022-07-11","Z":"Umpqua","M":"Tour "},
+{"G":"Chambers Creek ","A":"Tom Lehman","L":"Texas ","U":"USA","C":"VM Golf","J":"New","S":"Open","B":"","H":"","Y":"2022-10-11","Z":"Lake Conroe","M":"9-hole "},
+{"G":"Driftwood ","A":"Tom Fazio Andy Banfield","L":"Texas ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2021-12-26","Z":"Discovery","M":"Tour "},
+{"G":"East River 9 ","A":"Michael Smelek","L":"Texas ","U":"USA","C":"VM Golf","J":"New","S":"Open","B":"","H":"","Y":"2023-01-21","Z":"","M":"Fox 26 News "},
+{"G":"Highland Pines ","A":"Tour 18","L":"Texas ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-12-30","Z":"","M":"Dennis Wilkerson "},
+{"G":"Gillette GC ","A":"Schroeder","L":"Wyoming ","U":"USA","C":"Fusion","J":"New","S":"Open","B":"","H":"","Y":"2021-05-20","Z":"","M":"New 9 "},
+{"G":"RotaryLinks ","A":"Les Furber","L":"Alberta ","U":"Canada","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-02-01","Z":"","M":""},
+{"G":"Montgomery Residences ","A":"","L":"Accra ","U":"Ghana","C":"","J":"New","S":"Open","B":"","H":"","Y":"2021-12-23","Z":"","M":"First Club "},
+{"G":"Vulintaba ","A":"De Abreu","L":"KwaZulu Natal ","U":"South Africa","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-08-11","Z":"","M":" "},
+{"G":"Aktau Resort ","A":"EGD Johnston","L":"Caspian Sea ","U":"Kazakhstan","C":"Golf Tek Evrandir","J":"New","S":"Open","B":"","H":"","Y":"2022-11-21","Z":"Serdar Baspinar","M":"Golf Review "},
+{"G":"Mustang ","A":"Gurung","L":"Lo Manthang ","U":"Nepal","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-09-24","Z":"4645M","M":"Glenlivet Top of the World Classic "},
+{"G":"Liloan Golf ","A":"Rafaelito Barino","L":"Cebu ","U":"Philippines","C":"Primaverta","J":"New","S":"Open","B":"","H":"","Y":"2022-07-08","Z":"Durosland","M":"Estate course "},
+{"G":"Siam CC Bangkok ","A":"Toby Cobb","L":"Bangkok ","U":"Thailand","C":"Golf East","J":"New","S":"Open","B":"","H":"","Y":"2022-05-01","Z":"","M":"Tee Off "},
+{"G":"Stone Hill ","A":"Kyle Phillips Mark Thawley","L":"Pathum Thani ","U":"Thailand","C":"Marcus Reams Flagstick GCCM","J":"New","S":"Open","B":"","H":"","Y":"2022-08-02","Z":"CADSULT IDS Irrigation","M":""},
+{"G":"Ruwais ","A":"Jon Hunt","L":"Abu Dhabi ","U":"UAE","C":"Desert Group","J":"New","S":"Open","B":"","H":"","Y":"2022-02-13","Z":"","M":"Paspalum "},
+{"G":"ANARA Binh Tien ","A":"Golfplan David Dale","L":"Cam Ranh ","U":"Vietnam","C":"Flagstick GCCM","J":"New","S":"Open","B":"","H":"","Y":"2024-02-24","Z":"Outfield Asia Platinum TE Paspalum","M":"Martin Moore "},
+{"G":"An Bien ","A":"Brian Curley","L":"Ha Long ","U":"Vietnam","C":"Flagstick GCCM","J":"New","S":"Construction","B":"","H":"","Y":"2021-09-02","Z":"36 holes","M":"Curley "},
+{"G":"Stone Valley ","A":"Brian Curley","L":"Hanoi ","U":"Vietnam","C":"Tru?ng An","J":"New","S":"Open","B":"","H":"","Y":"2022-08-16","Z":"","M":""},
+{"G":"Muong Thanh Xuan ","A":"IMG","L":"Nghe An ","U":"Vietnam","C":"Atlas Turf","J":"New","S":"Open","B":"","H":"","Y":"2022-09-21","Z":"","M":"18 holes "},
+{"G":"Nova PGA Garden ","A":"Greg Norman","L":"Phan Thiet ","U":"Vietnam","C":"Flagstick GCCM","J":"New","S":"Open","B":"","H":"","Y":"2022-04-03","Z":"Sports Turf Solutions","M":"Flyover "},
+{"G":"Minnippi Cannon Hill ","A":"Reeves Ryan","L":"Queensland ","U":"Australia","C":"","J":"New","S":"Open","B":"$17M","H":"","Y":"2023-05-03","Z":"Public Golf","M":""},
+{"G":"Te Arai South ","A":"Bill Coore Ben Crenshaw","L":"North Island ","U":"NZ","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-03-04","Z":"Hard Fescue","M":"Images "},
+{"G":"Millbrook Coronet ","A":"Turner Macpherson","L":"South Island ","U":"NZ","C":"Jonny Youngman Peak Earth Shaping","J":"New 9","S":"Open","B":"","H":"","Y":"2022-07-21","Z":"","M":"Par 4 "},
+{"G":"Fanø Vesterhavsbads ","A":"Spogard Van der Vaart","L":"Fanø ","U":"Denmark","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2022-02-01","Z":"Bjorn","M":"Philip Spogárd "},
+{"G":"Rae ","A":"Lassi Pekka Tilander","L":"Estonia ","U":"Estonia","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-09-07","Z":"","M":"6 holes "},
+{"G":"Costa Navarino IOC Academy ","A":"Olazabal","L":"Pilos ","U":"Greece","C":"A.P. Maragakis","J":"New","S":"Open","B":"$60M","H":"","Y":"2022-01-20","Z":"","M":"Olazabal "},
+{"G":"Costa Navarino Hills ","A":"Olazabal","L":"Pilos ","U":"Greece","C":"","J":"New","S":"Open","B":"$60M","H":"","Y":"2022-01-20","Z":"","M":"Olazabal "},
+{"G":"Black Water Links ","A":"Caspar Grauballe","L":"Poznan ","U":"Poland","C":"All Golf Services","J":"New","S":"Open","B":"","H":"","Y":"2022-06-03","Z":"Andrzejem","M":"Preview "},
+{"G":"Valderrey ","A":"TBA","L":"Zamora ","U":"Spain","C":"","J":"New","S":"Open","B":"","H":"","Y":"2023-03-03","Z":"","M":""},
+{"G":"Calcot Park ","A":"Pont Longmuir","L":"Surrey ","U":"England","C":"","J":"Renovate","S":"Masterplan","B":"","H":"Harry Colt","Y":"2024-04-15","Z":"Real estate plan 2023 failed planning","M":" "},
+{"G":"Marlay Park ","A":"Harrington","L":"Dublin ","U":"Ireland","C":"Atlantic Golf","J":"New","S":"Open","B":"$0.3M","H":"","Y":"2022-12-14","Z":"Putting","M":"Himalayas "},
+{"G":"Alvear ","A":"Fontanes","L":"La Pampa ","U":"Argentina","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-08-02","Z":"","M":" "},
+{"G":"Vistas del Pedregal ","A":"Greg Norman","L":"Santo Domingo ","U":"Dom. Rep.","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-09-02","Z":"","M":"Vistas "},
+{"G":"Guayaquil CC ","A":"Bruce Charlton","L":"Samborondón ","U":"Ecuador","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-12-20","Z":"Travieso","M":"Build "},
+{"G":"Cola de Lagarto ","A":"Jim Engh","L":"Ciudad ","U":"Mexico","C":"","J":"New","S":"Open","B":"","H":"","Y":"2022-03-12","Z":"","M":"Puebla "},
+{"G":"Las Riberas ","A":"TBA","L":"Sonora ","U":"Mexico","C":"Roca Golf","J":"New","S":"Open","B":"","H":"","Y":"2023-03-13","Z":"","M":"Real estate "},
+{"G":"Skukuza GC ","A":"Mark Wiltshire Golf","L":"Kruger National Park ","U":"South Africa","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-10-31","Z":"Indalo Wiltshire","M":""},
+{"G":"Garden Course ","A":"Peter Harradine","L":"Abu Dhabi ","U":"Abu Dhabi","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-03-09","Z":"","M":""},
+{"G":"Beldih ","A":"Vijit Nandrajog","L":"Jharkhand ","U":"India","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2023-02-01","Z":"Tata Steel","M":"GCA "},
+{"G":"Shizuoka Shimada ","A":"Bryce Swanson Rees Jones","L":"Shizuoka ","U":"Japan","C":"Inuji Landscape","J":"Renovate","S":"Open","B":"","H":"Fujita","Y":"2022-05-31","Z":"Bryce Swanson","M":"GCA "},
+{"G":"Sahara ","A":"IMG","L":"Kuwait ","U":"Kuwait","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2022-08-22","Z":"","M":""},
+{"G":"Mimosa ","A":"Mogg Hester","L":"Clark ","U":"Philippines","C":"Green Dynasty","J":"Renovate","S":"Open","B":"","H":"Nelson Haworth","Y":"2022-03-07","Z":"","M":""},
+{"G":"Doha ","A":"Peter Harradine","L":"Doha ","U":"Qatar","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-02-01","Z":"","M":"Interview "},
+{"G":"Titanic GC ","A":"Eur Golf Design","L":"Belek ","U":"Turkey","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-12-26","Z":"","M":"Official Video "},
+{"G":"Blackheath ","A":"Harley Kruse","L":"NSW ","U":"Australia","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2021-03-02","Z":"","M":""},
+{"G":"Nudgee ","A":"James Wilcher","L":"NSW ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-12-28","Z":"Golf by Design","M":""},
+{"G":"Rich River GC ","A":"Thomson Perrett","L":"NSW ","U":"Australia","C":"Ben Chambers Centreline","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-12-28","Z":"Bunker liner Kustombind","M":""},
+{"G":"Bannockburn ","A":"Ben Davey","L":"Victoria ","U":"Australia","C":"Reeves","J":"Renovate","S":"Open","B":"$0.7M","H":"","Y":"2022-10-31","Z":"Frewin","M":""},
+{"G":"Yallourn GC ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","C":"Anthony Brown Turfology","J":"Redesign","S":"Open","B":"","H":"","Y":"2025-08-30","Z":"","M":""},
+{"G":"Royal Auckland & Grange ","A":"Nicklaus","L":"North Island ","U":"NZ","C":"Greg Stringer Bob Ramos Scotty Dansmuir Gordy Johnstone","J":"Renovate 27","S":"Open","B":"","H":"Fred Hood","Y":"2023-01-03","Z":"Cliff Hamilton Scotty Wells","M":"Grant Puddicombe "},
+{"G":"Titirangi ","A":"Johnston","L":"North Island ","U":"NZ","C":"","J":"Renovate","S":"Open","B":"","H":"MacKenzie","Y":"2022-07-04","Z":"","M":"Design Interview "},
+{"G":"Eichenheim ","A":"Olazabal","L":"Kitzbühel ","U":"Austria","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-07-09","Z":"","M":"Lead Design Toni Ortner "},
+{"G":"Podebrady ","A":"Jakub Cervenka","L":"Czech ","U":"Czech Republic","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-04-30","Z":"","M":"Hole 3 "},
+{"G":"Hillerod ","A":"Spogard Van der Vaart","L":"Copenhagen ","U":"Denmark","C":"SOL Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-06-11","Z":"Dennis Thorsgaard","M":"Philip Spogárd "},
+{"G":"Sarfvik GC Old ","A":"Lassi Tilander","L":"Helsinki ","U":"Finland","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-14","Z":"","M":""},
+{"G":"Rougemont-le-Château ","A":"Caspar Grauballe","L":"Alsace ","U":"France","C":"Celtic Golf","J":"Renovate","S":"Open","B":"$5.5M","H":"Berthet","Y":"2023-10-22","Z":"","M":"Capillary Concrete + EcoBunker "},
+{"G":"Marienburger ","A":"Althaus","L":"Cologne ","U":"Germany","C":"Sommerfeld","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-22","Z":"","M":"Renovation "},
+{"G":"Bades Huk ","A":"Städler","L":"Wismar Bay ","U":"Germany","C":"Reinmuth Poetter","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2022-04-12","Z":"Clavis International","M":""},
+{"G":"Kaunas ","A":"Van der Vaart","L":"Kaunas ","U":"Lithuania","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-04-15","Z":"","M":""},
+{"G":"De Texelse ","A":"Alan Rijks","L":"Den Hoorn ","U":"Netherlands","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-03-13","Z":"","M":""},
+{"G":"Dom Pedro Laguna ","A":"In house","L":"Algarve ","U":"Portugal","C":"","J":"Renovate","S":"Open","B":"","H":"Joe Lee","Y":"2022-08-23","Z":"","M":""},
+{"G":"Club Vista Hermosa ","A":"Pont Hilgert","L":"Andalucia ","U":"Spain","C":"Gonzalo Fernández Castaño","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-04-30","Z":"","M":"Cadiz "},
+{"G":"Almenara ","A":"Manuel Piñero","L":"Cadiz ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","H":"Thomas","Y":"2022-05-01","Z":"New 9","M":"Architect Interview "},
+{"G":"La Resina ","A":"In house","L":"Malaga ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-03","Z":"","M":"Turf "},
+{"G":"Hacienda Links ","A":"Kurt Bowman","L":"San Roque ","U":"Spain","C":"Acttua Golf","J":"Renovate","S":"Open","B":"","H":"Alliss Clark","Y":"2024-10-16","Z":"Samuel Ramírez Calvo","M":"Garden Golf International "},
+{"G":"Infinitum Lakes ","A":"In house","L":"Tarragona ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","H":"Norman","Y":"2023-02-28","Z":"","M":""},
+{"G":"Vasatorp ","A":"Johan Benestam","L":"Helsingborg ","U":"Sweden","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-05-03","Z":"12 holes","M":"Johan Benestam "},
+{"G":"Stockholms ","A":"Christian Lundin","L":"Stockholm ","U":"Sweden","C":"1st Golf","J":"Restore","S":"Ongoing","B":"$2.2M","H":"Harry Colt","Y":"2023-06-30","Z":"","M":""},
+{"G":"Gullbringa ","A":"Peter Fjällman","L":"Sweden ","U":"Sweden","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-04-30","Z":"","M":""},
+{"G":"Haninge ","A":"Pontus Leijon","L":"Sweden ","U":"Sweden","C":"Nelson Vecchio","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-02-13","Z":"","M":""},
+{"G":"Enville Highgate ","A":"Pont Clayton","L":"Birmingham ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"Frank Pennink","Y":"2023-03-02","Z":"Ed Cartwright","M":"Plans "},
+{"G":"East Devon ","A":"Frank Pont","L":"Devon ","U":"England","C":"","J":"Restore","S":"Open","B":"","H":"Harry Colt","Y":"2022-11-03","Z":"","M":"Frank Pont "},
+{"G":"Chart Hills Short ","A":"Nick Faldo","L":"Kent ","U":"England","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2023-07-04","Z":"4 inch sandcap","M":"USGA Spec Greens "},
+{"G":"Formby ","A":"Martin Ebert","L":"Liverpool ","U":"England","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-01-15","Z":"","M":"Playability "},
+{"G":"Trentham ","A":"Jonathan Gaunt","L":"Stafford ","U":"England","C":"Profusion Blinder","J":"Renovate","S":"Open","B":"","H":"Harry Colt","Y":"2024-01-16","Z":"","M":"Bunkers "},
+{"G":"Whittington Heath ","A":"Jonathan Gaunt","L":"Stafford ","U":"England","C":"John Greasley","J":"Renovate","S":"Open","B":"","H":"Harry Colt","Y":"2022-04-23","Z":"","M":"Greasley "},
+{"G":"Cuddington ","A":"Pont Cartwright","L":"Surrey ","U":"England","C":"CJW Conor Walsh","J":"Renovate","S":"Open","B":"","H":"Harry Colt","Y":"2022-03-28","Z":"","M":"Hole 8 "},
+{"G":"Foxhills GC ","A":"Gary Johnston ","L":"Surrey ","U":"England","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2023-11-04","Z":"EcoBunker EcoTec","M":""},
+{"G":"Stratford on Avon ","A":"Jonathan Gaunt","L":"Warwick ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-22","Z":"","M":""},
+{"G":"Blackwell ","A":"Frank Pont","L":"W Midlands ","U":"England","C":"","J":"Restore","S":"Ongoing","B":"","H":"Simpson Fowler","Y":"2021-02-17","Z":"","M":"1929 "},
+{"G":"Druids Glen ","A":"Lynch McEvoy","L":"Dublin ","U":"Ireland","C":"DAR","J":"Renovate","S":"Open","B":"$12M","H":"Pat Ruddy","Y":"2023-05-05","Z":"Rebuild greens","M":"Hole 4 "},
+{"G":"Aurora International ","A":"Greg Norman","L":"Anguilla ","U":"Anguilla","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-03-25","Z":"","M":"Golf resort "},
+{"G":"Apes Hill ","A":"Kirby Carlton","L":"Barbados ","U":"Barbados","C":"Narly","J":"Renovate","S":"Open","B":"","H":"Ron Kirby","Y":"2022-12-03","Z":"Gary Shapiro","M":"16th hole "},
+{"G":"Guadalajra CC ","A":"Alarcon Morrish","L":"Guadalajra ","U":"Mexico","C":"Roca","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-07","Z":"","M":""},
+{"G":"El Tamarindo ","A":"In house","L":"Jalisco ","U":"Mexico","C":"","J":"Renovate","S":"Open","B":"","H":"David Fleming","Y":"2022-12-26","Z":"Four Seasons","M":"Trent Jones "},
+{"G":"Vidanta ","A":"Greg Norman","L":"Nayarit ","U":"Mexico","C":"","J":"Renovate","S":"Open","B":"$13.5M","H":"","Y":"2022-08-13","Z":"","M":""},
+{"G":"Marina Mazatlan ","A":"Agustín Pizá","L":"Sinaloa ","U":"Mexico","C":"","J":"Renovate","S":"Open","B":"","H":"Fleming","Y":"2022-12-31","Z":"Reassess","M":"Flyover "},
+{"G":"Redwood Meadows ","A":"Gary Browning","L":"Alberta ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"Tattersfield Leonard","Y":"2023-08-11","Z":"","M":""},
+{"G":"Kawartha ","A":"Ian Andrew","L":"Ontario ","U":"Canada","C":"","J":"Restore","S":"Open","B":"","H":"Stanley Thompson","Y":"2022-09-07","Z":"","M":"Toronto Star "},
+{"G":"StoneBridge ","A":"Baker","L":"Ontario ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"Baker","Y":"2022-11-05","Z":"","M":"Plan "},
+{"G":"Sunningdale ","A":"Doug Carrick","L":"Ontario ","U":"Canada","C":"KCM Construction","J":"Renovate","S":"Open","B":"","H":"Thompson","Y":"2022-12-31","Z":"","M":"6 Holes "},
+{"G":"Auburn ","A":"Bill Bergin","L":"Alabama ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$26.8M","H":"Bill Bergin","Y":"2023-02-16","Z":"","M":"College Golf "},
+{"G":"Greystone Legacy GC ","A":"Rees Jones","L":"Alabama ","U":"USA","C":"Total Turf","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2022-11-12","Z":"Steve Weisser","M":"TifEagle "},
+{"G":"Limestone Springs ","A":"Langner","L":"Alabama ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-10-30","Z":"","M":"Flyover "},
+{"G":"Quail Creek Coyote ","A":"Gary Brawley","L":"Arizona ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"Kavanaugh","Y":"2023-03-27","Z":"","M":"Irrigation "},
+{"G":"Papago ","A":"Tryhus","L":"Arizona ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"$4M","H":"Billy Bell Jr.","Y":"2022-06-13","Z":"","M":"Golfdom "},
+{"G":"Terravita ","A":"Phil Smith","L":"Arizona ","U":"USA","C":"Heritage Links","J":"Rebuild ","S":"Open","B":"$8.5M","H":"Greg Nash","Y":"2022-12-02","Z":"Tom Bush","M":"Open "},
+{"G":"Harbor Oaks ","A":"Joe Jemsek","L":"Arkansas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-10-08","Z":"Pine Bluff","M":""},
+{"G":"Lake Merced ","A":"Hanse Wagner","L":"California ","U":"USA","C":"Heritage Links","J":"Restore","S":"Open","B":"$15M","H":"Mackenzie","Y":"2022-09-25","Z":"","M":"Mackenzie "},
+{"G":"Mission Bay ","A":"","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Irrigation","S":"Open","B":"$14.5M","H":"Ted Robinson","Y":"2024-09-17","Z":"Rain Bird Brent Harvey","M":""},
+{"G":"Newport Beach ","A":"O'Callaghan","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Billy Bell Jr.","Y":"2022-09-02","Z":"","M":"Design interview "},
+{"G":"Ocean Hills CC ","A":"Cary Bickler","L":"California ","U":"USA","C":"Candyl","J":"Renovate","S":"Open","B":"$2.4M","H":"","Y":"2022-12-23","Z":"","M":""},
+{"G":"Palo Alto Hills ","A":"Brian Costello","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Glasson","Y":"2022-11-11","Z":"","M":"Back 9 "},
+{"G":"Palos Verdes GC ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"Bell Thomas","Y":"2021-11-21","Z":"Rain Bird Golf Rotors","M":"Masterplan "},
+{"G":"PGA West Palmer ","A":"Brandon Johnson","L":"California ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"Arnold Palmer","Y":"2022-12-22","Z":"Stadium","M":""},
+{"G":"Richmond ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-01-01","Z":"","M":"Mt. Tam "},
+{"G":"San Luis Obispo ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$10.1M","H":"Stamps","Y":"2022-07-30","Z":"Smallwood","M":"Front 9 "},
+{"G":"Spring Creek ","A":"RTJ Charlton","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Jack Fleming","Y":"2022-06-15","Z":"","M":"Ripon "},
+{"G":"Thunderbird CC ","A":"Tripp Davis","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$6.5M","H":"Hughes","Y":"2023-06-21","Z":"","M":"Davis "},
+{"G":"Valencia ","A":"Dana Fry Jason Straka","L":"California ","U":"USA","C":"Arcis","J":"Renovate","S":"Open ","B":"","H":"RTJ Sr.","Y":"2022-10-14","Z":"Blake Walker","M":""},
+{"G":"Cherry Hills ","A":"Tom Doak Eric Iverson","L":"Colorado ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"William Flynn","Y":"2023-08-15","Z":"Creek restoration","M":"US Amateur "},
+{"G":"Red Rocks CC ","A":"Kevin Atkinson","L":"Colorado ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open ","B":"","H":"Harwood","Y":"2022-10-26","Z":"Volcano Green","M":""},
+{"G":"CC of Farmington ","A":"Matthew Dusenberry","L":"Connecticut ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Emmet ","Y":"2023-03-07","Z":"","M":"Manton "},
+{"G":"Keney Park ","A":"Matthew Dusenberry","L":"Connecticut ","U":"USA","C":"Robert Ross","J":"Restore","S":"Open ","B":"$3M","H":"Emmet ","Y":"2023-08-15","Z":"","M":""},
+{"G":"Lake Waramaug ","A":"Dusenberry Mckenna Burnet","L":"Connecticut ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-07-08","Z":"","M":"Horse Track "},
+{"G":"Amelia Island Long Point ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"MacCurrach","J":"New","S":"Open","B":"","H":"","Y":"2023-11-01","Z":"","M":"Long Point "},
+{"G":"Bear Lakes ","A":"Nicklaus","L":"Florida ","U":"USA","C":"Graham Golf","J":"Renovate","S":"Open","B":"","H":"Nicklaus","Y":"2022-02-09","Z":"Cochran","M":""},
+{"G":"Bonita Bay Cypress ","A":"Tom Marzolf","L":"Florida ","U":"USA","C":"Glase Golf","J":"Renovate","S":"Open ","B":"$15M","H":"Tom Fazio","Y":"2022-07-07","Z":"Nutt Irrigation","M":"Hal Akins "},
+{"G":"Broken Sound Old ","A":"Rees Jones","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open ","B":"","H":"","Y":"2023-01-20","Z":"","M":""},
+{"G":"Colliers Reserve ","A":"Forrest Smith ","L":"Florida ","U":"USA","C":"TDI Golf","J":"Restore","S":"Open","B":"$3.7M","H":"Arthur Hills","Y":"2021-06-08","Z":"?A.S. Altum Irrigation","M":"Arthur Hills "},
+{"G":"Disney Magnolia ","A":"Ken Baker","L":"Florida ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"Joe Lee","Y":"2023-04-01","Z":"One Club Golf Design","M":"Hole 14 "},
+{"G":"Eastwood GC ","A":"Steve Smyers","L":"Florida ","U":"USA","C":"Target Builders Construction Management","J":"Re-design","S":"Open","B":"$3.6M","H":"","Y":"2023-04-01","Z":"Back Nine","M":""},
+{"G":"Feather Sound ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Joe Lee","Y":"2022-09-25","Z":"","M":"Hole 1 "},
+{"G":"Grand Harbor Harbor ","A":"Lutzke Shaw","L":"Florida ","U":"USA","C":"","J":"Restore","S":"Open","B":"$6M","H":"Pete Dye","Y":"2023-01-29","Z":"","M":"Open "},
+{"G":"Heritage Bay Golf & CC ","A":"In house","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Gordon Lewis","Y":"2022-05-05","Z":"","M":"Oak "},
+{"G":"Herons Glen ","A":"Ron Garl Ricky Nix","L":"Florida ","U":"USA","C":"Clarke Construction","J":"Renovate","S":"Open","B":"","H":"Ron Garl","Y":"2022-01-25","Z":"","M":"Rain Bird "},
+{"G":"Hyde Park ","A":"Jay Smith","L":"Florida ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Stanley Thompson","Y":"2023-11-02","Z":"","M":""},
+{"G":"Indian Creek ","A":"Andrew Green","L":"Florida ","U":"USA","C":"LaBar","J":"Renovate","S":"Open","B":"","H":"William Flynn","Y":"2023-04-03","Z":"","M":"Bunker Solution "},
+{"G":"Isla del Sol ","A":"Richard Mandell","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Mahannah","Y":"2022-05-18","Z":"","M":"Phase 4 "},
+{"G":"Palmira Egret ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Ryan Golf","J":"Renovate","S":"Open","B":"","H":"Gordon Lewis","Y":"2022-11-24","Z":"","M":"Grow in "},
+{"G":"Suncoast ","A":"Carlton Marshall","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-01-15","Z":"","M":"Synthetic turf "},
+{"G":"Tiger Point ","A":"Nathan Crace","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"John Pate","Y":"2021-03-29","Z":"","M":""},
+{"G":"Timuquana ","A":"Bruce Hepner","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2022-10-09","Z":"Trinity Zoysia","M":""},
+{"G":"Ventura CC ","A":"Carlton Marshall","L":"Florida ","U":"USA","C":"Southeastern Golf","J":"Renovate","S":"Open","B":"","H":"Mahannah","Y":"2022-08-10","Z":"","M":"Orlando "},
+{"G":"Water Oak CC ","A":"Sanford Ferris","L":"Florida ","U":"USA","C":"International Golf Lucas Beasley","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-02-04","Z":"QGS Development","M":"90K cubic yards dirt moved "},
+{"G":"Wycliffe CC West ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"JCM Group","J":"Renovate","S":"Open","B":"$5.2M","H":"Litten","Y":"2023-06-29","Z":"West Palm","M":"Country Club Services "},
+{"G":"Atlanta Athletic Riverside ","A":"Tripp Davis Jason Gold","L":"Georgia ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"RTJ Sr.","Y":"2022-11-07","Z":"Rain Bird IC","M":"LU "},
+{"G":"Augusta CC ","A":"Tripp Davis","L":"Georgia ","U":"USA","C":"Landscapes Unlimited","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2022-10-12","Z":"Toro Lynx","M":"Kyle Regen "},
+{"G":"Landings Magnolia ","A":"Johnson Gardner","L":"Georgia ","U":"USA","C":"Todd Godwin","J":"Renovate","S":"Open","B":"$2.3M","H":"Palmer","Y":"2021-11-12","Z":"","M":"Steigelman "},
+{"G":"Waterfall ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-12-29","Z":"","M":""},
+{"G":"Makena North ","A":"In house","L":"Hawaii ","U":"USA","C":"Discovery Land","J":"Renovate","S":"Open","B":"","H":"RTJ Jr.","Y":"2023-02-18","Z":"","M":""},
+{"G":"Atkins GC ","A":"Drew Rogers","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$5M","H":"","Y":"2022-07-05","Z":"","M":"Stone Creek "},
+{"G":"Briarwood ","A":"Jeff Mingay","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"C.H. Alison","Y":"2022-11-10","Z":"","M":"Better Billy "},
+{"G":"Butler National ","A":"Tom Fazio","L":"Illinois ","U":"USA","C":"Leibold Irrigation","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-09-17","Z":"","M":""},
+{"G":"Glen Flora ","A":"Samuel Beckman","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-07-01","Z":"","M":"Emergency 9 Golf "},
+{"G":"Midlothian ","A":"Raymond Hearn","L":"Illinois ","U":"USA","C":"Leibold Irrigation","J":"Renovate","S":"Open","B":"","H":"Tweedie","Y":"2022-10-18","Z":"","M":"Bunkers "},
+{"G":"Settlers Hill ","A":"Greg Martin","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$7.5M","H":"","Y":"2022-10-17","Z":"","M":"Flyover "},
+{"G":"Brookridge West ","A":"Todd Clark","L":"Kansas ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2023-08-11","Z":"Viridity","M":""},
+{"G":"Mission Hills ","A":"Foster Hargraves","L":"Kansas ","U":"USA","C":"Labar","J":"Renovate","S":"Open","B":"","H":"Bendelow","Y":"2022-04-26","Z":"","M":"Turf "},
+{"G":"Park Mammoth GC ","A":"Ross Craig","L":"Kentucky ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2022-08-07","Z":"","M":"Hole 2 "},
+{"G":"JS Clark ","A":"Todd Clark","L":"Louisiana ","U":"USA","C":"Fleetwood","J":"Renovate","S":"Open","B":"$3.5M","H":"","Y":"2023-06-12","Z":"","M":"City Golf "},
+{"G":"Metairie CC ","A":"Brian Silva","L":"Louisiana ","U":"USA","C":"NMP","J":"Renovate","S":"Open","B":"$10M","H":"Seth Raynor","Y":"2021-12-09","Z":"","M":"Back 9 "},
+{"G":"Money Hill ","A":"Mike Gogel","L":"Louisiana ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Ron Garl","Y":"2022-09-09","Z":"","M":"Jason Ward "},
+{"G":"Oakwing ","A":"Nathan Crace","L":"Louisiana ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-04","Z":"","M":"Bunkers "},
+{"G":"Southern Trace ","A":"Jim Lipe","L":"Louisiana ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$4.2M","H":"Arthur Hills","Y":"2022-09-09","Z":"","M":"Jim Lipe "},
+{"G":"Turf Valley ","A":"Brian Ault","L":"Maryland ","U":"USA","C":"McDonald","J":"Renovate","S":"Open","B":"","H":"Ed Ault","Y":"2022-10-14","Z":"","M":""},
+{"G":"Woodmont CC South ","A":"","L":"Maryland ","U":"USA","C":"Landscapes Unlimited","J":"","S":"","B":"","H":"","Y":"2024-10-05","Z":"EC Design Irrigation","M":""},
+{"G":"Kernwood ","A":"Robert McNeil","L":"Massachusetts ","U":"USA","C":"Demers","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2022-01-17","Z":"","M":""},
+{"G":"Robert T. Lynch ","A":"Mark Mungeam","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Wayne Stiles","Y":"2022-06-16","Z":"Brookline","M":"Putterham "},
+{"G":"Vesper CC ","A":"Jim Nagle","L":"Massachusetts ","U":"USA","C":"","J":"Restore","S":"Masterplan","B":"","H":"Donald Ross","Y":"2022-12-31","Z":"","M":""},
+{"G":"Vineyard ","A":"Gil Hanse","L":"Massachusetts ","U":"USA","C":"MAS Golf","J":"Renovate","S":"Open","B":"","H":"Gil Hanse","Y":"2022-05-05","Z":"Bunkers","M":"Strategy "},
+{"G":"Boyne ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Newcomb","Y":"2022-10-18","Z":"","M":"Ross "},
+{"G":"CC of Lansing ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Masterplan","B":"$6.5M","H":"Langford","Y":"2021-08-06","Z":"","M":""},
+{"G":"Crystal Mountain ","A":"John Harvey","L":"Michigan ","U":"USA","C":"Great Lakes","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-10-18","Z":"Betsie Valley","M":""},
+{"G":"Flint GC ","A":"Mike Devries","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1.4M","H":"Willie Park","Y":"2021-05-05","Z":"","M":""},
+{"G":"Great Oaks ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$3.5M","H":"Newcomb","Y":"2023-05-18","Z":"","M":""},
+{"G":"Maple Lane ","A":"Raymond Hearn","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-12-23","Z":"","M":""},
+{"G":"Columbia CC ","A":"Norby Haug","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$7.6M","H":"","Y":"2021-12-26","Z":"","M":"Stormwater "},
+{"G":"Cragun's Legacy Lehman ","A":"Tom Lehman Chris Brands","L":"Minnesota ","U":"USA","C":"Duininck","J":"Rebuild ","S":"Open","B":"$17M","H":"RTJ Jr.","Y":"2023-07-09","Z":"Public Golf Resort","M":"Resort Golf "},
+{"G":"Minnesota Valley CC ","A":"Bill Bergin","L":"Minnesota ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"$3.5M","H":"Seth Raynor","Y":"2022-12-31","Z":"","M":"Construction "},
+{"G":"Montgomery National ","A":"Paul Miller","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-12-21","Z":"","M":"Hole 10 18 "},
+{"G":"MSU ","A":"Nathan Crace","L":"Mississippi ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-09-02","Z":"","M":"Construction "},
+{"G":"Blue Hills CC ","A":"Kevin Hargrave","L":"Missouri ","U":"USA","C":"LaBar","J":"Renovate","S":"Open","B":"$5.9M","H":"Wogan","Y":"2022-11-27","Z":"","M":"Hargrave "},
+{"G":"Oakwood CC ","A":"Todd Clark","L":"Missouri ","U":"USA","C":"Pearson Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-01-01","Z":"Ron Whitten","M":"Convex bunkers "},
+{"G":"Quail Run ","A":"Kevin Norby ","L":"Nebraska ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","S":"Open","B":"$6M","H":"","Y":"2022-11-30","Z":"Flood","M":"GCA "},
+{"G":"Anthem ","A":"Harvgrave","L":"Nevada ","U":"USA","C":"Landscapes Unlimited Elliot Tagliapietra","J":"Renovate","S":"Open","B":"","H":"Foster","Y":"2023-02-13","Z":"","M":"Turf reduction "},
+{"G":"TPC Summerlin ","A":"PGA Tour","L":"Nevada ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"Weed","Y":"2022-10-04","Z":"","M":"Bandera Bermuda "},
+{"G":"Beacon Hill ","A":"Jim Nagle Ron Forse","L":"New Jersey ","U":"USA","C":"Mottin","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-04-06","Z":"","M":"Hole 5 "},
+{"G":"Forest Hill Field Club ","A":"Billy Fuller Tom Kite","L":"New Jersey ","U":"USA","C":"LaBar Todd Saganiec","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-04-06","Z":"","M":""},
+{"G":"Manasquan River ","A":"Andrew Green","L":"New Jersey ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"","Y":"2022-10-02","Z":"","M":""},
+{"G":"Riverton ","A":"Tyler Rae","L":"New Jersey ","U":"USA","C":"","J":"Restore","S":"Open","B":"$3M","H":"Donald Ross","Y":"2022-08-04","Z":"","M":"Drew White "},
+{"G":"Tamarack East ","A":"Mark Mungeam","L":"New Jersey ","U":"USA","C":"Turco CME Associates","J":"Renovate","S":"Open","B":"$2.5M","H":"Purdy","Y":"2022-10-07","Z":"","M":"Drainage "},
+{"G":"Union League ","A":"Dana Fry Jason Straka ","L":"New Jersey ","U":"USA","C":"Guaranteed Landscaping","J":"Rebuild ","S":"Open","B":"","H":"Hurdzan Fry","Y":"2022-06-27","Z":"","M":"Routing "},
+{"G":"Watchung Valley ","A":"Blake Conant","L":"New Jersey ","U":"USA","C":"LGR LaBar","J":"Short","S":"Open","B":"","H":"","Y":"2022-06-27","Z":"Merry Go Round","M":""},
+{"G":"PaaKo ","A":"Norby Schmenk","L":"New Mexico ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"Ken Dye","Y":"2022-12-18","Z":"Kelly Gibson","M":"Before renovation "},
+{"G":"Pinon Hills ","A":"Gary Kaye","L":"New Mexico ","U":"USA","C":"Mid-America","J":"Renovate","S":"Open","B":"$9M","H":"Ken Dye","Y":"2022-10-28","Z":"Craig Zellers","M":"Site Visit "},
+{"G":"Atlantic ","A":"Tyler Rae","L":"New York ","U":"USA","C":"MAS Golf","J":"Renovate","S":"Open","B":"","H":"Rees Jones","Y":"2023-08-01","Z":"","M":"Rebuild Bunkers "},
+{"G":"Binghampton CC ","A":"Stephen Kay","L":"New York ","U":"USA","C":"","J":"Masterplan","S":"Open","B":"$1.9M","H":"A.W. Tillinghast","Y":"2021-10-03","Z":"","M":"Greens "},
+{"G":"Colgate Seven Oaks ","A":"Jim Nagle Ron Forse","L":"New York ","U":"USA","C":"Mottin","J":"Renovate","S":"Open","B":"$8M","H":"RTJ Sr.","Y":"2023-04-27","Z":"Bob Shriver","M":"Gene Sarazen "},
+{"G":"Deepdale ","A":"Scot Sherman","L":"New York ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"Dick Wilson","Y":"2023-09-24","Z":"","M":""},
+{"G":"Laurel Links ","A":"Jaegar Kovich","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Moran","Y":"2022-03-02","Z":"","M":""},
+{"G":"Monroe ","A":"Tyler Rae","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2022-08-08","Z":"","M":"3D "},
+{"G":"Tuxedo Club ","A":"Rees Jones","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"RTJ","Y":"2022-12-02","Z":"Bryce Swanson","M":""},
+{"G":"Westchester Hills ","A":"Rees Jones","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$3.5M","H":"","Y":"2022-08-05","Z":"Capillary Concrete","M":""},
+{"G":"Yahnundasis ","A":"Jaegar Kovich","L":"New York ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Walter Travis","Y":"2022-03-19","Z":"","M":"Kovich "},
+{"G":"Biltmore Forest ","A":"Gil Hanse","L":"North Carolina ","U":"USA","C":"","J":"Masterplan","S":"Open","B":"","H":"Donald Ross","Y":"2023-07-14","Z":"","M":""},
+{"G":"Grandfather ","A":"Bobby Weed ","L":"North Carolina ","U":"USA","C":"Green Tee Golf","J":"Masterplan","S":"Open","B":"$650K","H":"Dan Maples","Y":"2023-01-13","Z":"Alex Hensley","M":"PR "},
+{"G":"Occano ","A":"Johnson","L":"North Carolina ","U":"USA","C":"Signet","J":"Renovate","S":"Open","B":"$3M","H":"Arnold Palmer","Y":"2022-11-16","Z":"","M":""},
+{"G":"Pickens GC ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-09","Z":"","M":""},
+{"G":"Pinehurst 8 ","A":"In house","L":"North Carolina ","U":"USA","C":"LaBar","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Y":"2022-09-05","Z":"Bob Dedman","M":""},
+{"G":"Grand Forks CC ","A":"Kevin Norby","L":"North Dakota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Harris","Y":"2022-11-20","Z":"","M":""},
+{"G":"Canterbury ","A":"Johns Rhebb","L":"Ohio ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1.2M","H":"Herbert Strong","Y":"2023-04-13","Z":"Top 100","M":"Green expansion "},
+{"G":"Congress Lake ","A":"Jim Nagle","L":"Ohio ","U":"USA","C":"","J":"Restore","S":"Masterplan","B":"$3.5M","H":"Donald Ross","Y":"2023-12-13","Z":"","M":""},
+{"G":"Kirtland ","A":"Jim Nagle","L":"Ohio ","U":"USA","C":"Mottin","J":"Renovate","S":"Open","B":"","H":"C.H. Alison","Y":"2023-08-01","Z":"Bunkers","M":""},
+{"G":"Scioto ","A":"Andrew Green","L":"Ohio ","U":"USA","C":"McDonald & Sons Leibold","J":"Restore","S":"Open","B":"$7M","H":"Donald Ross","Y":"2023-02-03","Z":"Rain Bird Irrigation Michael Kuhn","M":"Toro Irrigation "},
+{"G":"Dornick Hills ","A":"Tom Doak Blake Conant","L":"Oklahoma ","U":"USA","C":"Total Turf","J":"Restore","S":"Open","B":"$3.2M","H":"Perry Maxwell","Y":"2022-10-26","Z":"","M":"Superintendent "},
+{"G":"John Conrad ","A":"Heckenkemper ","L":"Oklahoma ","U":"USA","C":"United Golf","J":"Renovate","S":"Open","B":"$5M","H":"Farley","Y":"2022-09-09","Z":"Cummings","M":"Mills "},
+{"G":"Eugene CC ","A":"Jackson Kahn","L":"Oregon ","U":"USA","C":"Matt Flint","J":"Renovate","S":"Open","B":"","H":"Egan RTJ","Y":"2022-06-03","Z":"Irrigation Consulting Inc.","M":"Leibold Rainbird IC "},
+{"G":"Berkshire CC ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","C":"","J":"Restore","S":"Masterplan","B":"","H":"Donald Ross","Y":"2023-12-31","Z":"","M":""},
+{"G":"LuLu ","A":"Tyler Rae Jim Ryan","L":"Pennsylvania ","U":"USA","C":"Mottin Golf","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2023-01-16","Z":"","M":"1924 aerial "},
+{"G":"Spring Ford ","A":"Tyler Rae Jim Ryan","L":"Pennsylvania ","U":"USA","C":"Mottin Golf","J":"Restore","S":"Masterplan","B":"","H":"William Flynn","Y":"2024-10-23","Z":"","M":"Winter works "},
+{"G":"Bristol Golf Park ","A":"Robert McNeil","L":"Rhode Island ","U":"USA","C":"US Pitchcare","J":"Renovate","S":"Open","B":"$1.1M","H":"","Y":"2023-02-24","Z":"","M":""},
+{"G":"Wannamoisett ","A":"Andrew Green","L":"Rhode Island ","U":"USA","C":"","J":"Restore","S":"Open","B":"$3.5M","H":"Donald Ross","Y":"2022-06-07","Z":"","M":"Andrew Green "},
+{"G":"Belfair ","A":"Tom Fazio","L":"South Carolina ","U":"USA","C":"Leibold Irrigation","J":"Renovate","S":"Open","B":"$5.8M","H":"Tom Fazio","Y":"2022-10-27","Z":"Rain Bird","M":""},
+{"G":"Callawassie Island Magnolia ","A":"Billy Fuller","L":"South Carolina ","U":"USA","C":"TDI","J":"Renovate","S":"Open","B":"$15M","H":"Tom Fazio","Y":"2023-11-05","Z":"","M":""},
+{"G":"Colleton River ","A":"","L":"South Carolina ","U":"USA","C":"LaBar","J":"Renovate","S":"Open","B":"$16.5M","H":"Nicklaus","Y":"2021-03-27","Z":"","M":""},
+{"G":"Daniel Island ","A":"Rees Jones","L":"South Carolina ","U":"USA","C":"Total Turf","J":"Renovate","S":"Open","B":"","H":"Rees Jones","Y":"2022-04-24","Z":"Ralston Creek","M":"CGCS "},
+{"G":"Fox Run ","A":"Jeff Lawrence","L":"South Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2021-02-04","Z":"","M":""},
+{"G":"Grande Dunes ","A":"John Harvey","L":"South Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Rulewich","Y":"2022-08-09","Z":"","M":"Onsite "},
+{"G":"Hampton Pointe ","A":"Nicklaus Design","L":"South Carolina ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-03-04","Z":"Riverton Pointe","M":""},
+{"G":"Quixote Club ","A":"Nicklaus Spence","L":"South Carolina ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"$13M","H":"","Y":"2022-04-26","Z":"Sunset CC","M":"Back 9 "},
+{"G":"River Hills ","A":"Tom Jackson","L":"South Carolina ","U":"USA","C":"Founders Group International FGI","J":"Renovate","S":"Open","B":"","H":"Tom Jackson","Y":"2022-09-26","Z":"TifEagle","M":"Sprig Greens "},
+{"G":"Honors Course ","A":"Gil Hanse","L":"Tennessee ","U":"USA","C":"RD Lopez","J":"Renovate","S":"Open","B":"","H":"Pete Dye","Y":"2022-10-21","Z":"Top 100","M":""},
+{"G":"Richland CC ","A":"Bill Bergin","L":"Tennessee ","U":"USA","C":"Sanders Golf Cole Sanders","J":"Renovate","S":"Open","B":"$6.6M","H":"Nicklaus","Y":"2022-05-04","Z":"","M":"Nashville "},
+{"G":"Barton Creek Canyons ","A":"Tom Fazio","L":"Texas ","U":"USA","C":"Omni Hotels","J":"Renovate","S":"Open","B":"$5M","H":"Tom Fazio","Y":"2022-10-24","Z":"","M":""},
+{"G":"Braeburn ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Greenscape Methods","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-04-23","Z":"","M":"Davis "},
+{"G":"Corpus Christi CC ","A":"Chet Williams","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$3M","H":"RTJ","Y":"2022-11-12","Z":"","M":"Outer Loop "},
+{"G":"Entrada ","A":"David Kidd ","L":"Utah ","U":"USA","C":"Troon","J":"Rebuild ","S":"Open","B":"$7M","H":"Johnny Miller","Y":"2022-04-12","Z":"","M":"Shaping "},
+{"G":"Hermitage Sabot ","A":"","L":"Virginia ","U":"USA","C":"","J":"Regrass","S":"Open","B":"","H":"Tillinghast Hills","Y":"2024-09-12","Z":"Rain Bird Irrigation","M":""},
+{"G":"Downriver GC ","A":"RTJ II","L":"Washington ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$3M","H":"","Y":"2024-09-25","Z":"Rain Bird Irrigation","M":""},
+{"G":"Seattle GC ","A":"Thad Layton","L":"Washington ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Ball","Y":"2022-05-15","Z":"Arnold Palmer","M":""},
+{"G":"Abbey Springs ","A":"Lohmann Quitno","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$2.5M","H":"Nugent","Y":"2021-11-23","Z":"","M":"Update Greens "},
+{"G":"Brown County ","A":"Lohmann Quitno","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$0.6M","H":"Packard","Y":"2022-01-30","Z":"","M":"Muni Golf "},
+{"G":"Eau Claire ","A":"Kevin Norby","L":"Wisconsin ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"$1.1M","H":"Tom Vardon","Y":"2022-06-14","Z":"Bunkers","M":"Reconstruction "},
+{"G":"Oconomowoc GC ","A":"Richard Mandell","L":"Wisconsin ","U":"USA","C":"","J":"Restore","S":"Ongoing","B":"","H":"Donald Ross","Y":"2022-12-20","Z":"","M":"First "},
+{"G":"SentryWorld ","A":"RTJ2 Charlton","L":"Wisconsin ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"Jay Blasi","Y":"2022-12-18","Z":"","M":"USGA "},
+{"G":"The Glen Park ","A":"Haltom Schneider","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-08-12","Z":"Keiser Jr.","M":"Madison "},
+{"G":"Bar 3 ","A":"Lobb Edwards","L":"Cairo ","U":"Egypt","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-10-17","Z":"","M":"Tim Lobb "},
+{"G":"Azuri ","A":"IMG","L":"Haute Rive ","U":"Mauritius","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-04-30","Z":"9 holes","M":"Riviere du Rempart "},
+{"G":"Manali ","A":"Jim Nagle Ron Forse","L":"Himachal Pradesh ","U":"India","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2023-03-17","Z":"Himalayas","M":" "},
+{"G":"Eden Greenz ","A":"Vaishnava","L":"Maharashtra ","U":"India","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2023-02-01","Z":"","M":"Nagpur "},
+{"G":"Estate Course ","A":"Lukas Michel","L":"Victoria ","U":"Australia","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2023-12-31","Z":"","M":""},
+{"G":"St. Lorenz Elm 11 ","A":"Turner","L":"Schoningen ","U":"Germany","C":"Jösef Potter","J":"Short","S":"Open","B":"","H":"","Y":"2022-04-12","Z":"","M":"New "},
+{"G":"Centurion Park ","A":"Paul Thomas","L":"Wallsend ","U":"England","C":"","J":"Short","S":"Open","B":"$18M","H":"","Y":"2022-11-11","Z":"12 holes","M":""},
+{"G":"Royal Troon Craigend ","A":"Mackenzie Ebert","L":"Ayrshire ","U":"Scotland","C":"Jamie O’Reilly","J":"Short","S":"Open","B":"","H":"","Y":"2022-04-24","Z":"","M":"9 holes "},
+{"G":"Amelia Island ","A":"Beau Welling ","L":"Florida ","U":"USA","C":"MacCurrach","J":"Short","S":"Open","B":"","H":"","Y":"2023-01-01","Z":"","M":"Short Course "},
+{"G":"Wellen Park ","A":"Andy Staples ","L":"Florida ","U":"USA","C":"Ryan Golf","J":"Short","S":"Open","B":"","H":"","Y":"2022-11-20","Z":"Lennar","M":"Aerial "},
+{"G":"Jackpot Farm ","A":"Kevin Hargrave","L":"Kentucky ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-05-06","Z":"","M":"Synthetic Turf "},
+{"G":"Gravel Pit ","A":"Scott Hoffmann","L":"Minnesota ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-05-24","Z":"","M":"Brainerd "},
+{"G":"Tower Tee ","A":"Art Schaupeter","L":"Missouri ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-10-25","Z":"Par 3","M":"Hole 1 "},
+{"G":"Chalk Mine ","A":"Jim McNair","L":"South Carolina ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2022-01-14","Z":"Aiken","M":" "},
+{"G":"Overton Park ","A":"Tad King Rob Collins","L":"Tennessee ","U":"USA","C":"Burger","J":"Short","S":"Open","B":"$2M","H":"","Y":"2022-06-24","Z":"","M":"Image "}
+ ]
+}
+
diff --git a/data/g2023.json b/data/g2023.json
new file mode 100644
index 0000000000000..ad8ef95f88283
--- /dev/null
+++ b/data/g2023.json
@@ -0,0 +1,287 @@
+{
+ "data":[
+{"G":"Wicker Point ","A":"Bill Coore Ben Crenshaw","L":"Alabama ","U":"USA","C":"Landscapes Unlimited","J":"New","B":"","H":"","Y":"2023-09-22","Z":"Lake Martin","M":"Russell Land "},
+{"G":"Brambles ","A":"Bill Coore Ben Crenshaw","L":"California ","U":"USA","C":"","J":"New","B":"","H":"","Y":"2023-10-05","Z":"","M":"James Duncan "},
+{"G":"Ladera ","A":"Gil Hanse","L":"California ","U":"USA","C":"LGR LaBar Landscapes Unlimited","J":"New","B":"","H":"","Y":"2024-01-17","Z":"Neil Cameron Brent Vest Lippert Construction","M":"Hole in one "},
+{"G":"Rocking F Ranch ","A":"","L":"Colorado ","U":"USA","D":"2024","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2024-05-14","Z":"Estate Course","M":""},
+{"G":"The Apogee Club West ","A":"Gil Hanse","L":"Florida ","U":"USA","C":"","J":"New","B":"","H":"","Y":"2023-07-19","Z":"Three Lakes","M":""},
+{"G":"Astor Creek ","A":"Chris Wilczynski","L":"Florida ","U":"USA","C":"Ryan Golf","J":"New","B":"","H":"","Y":"2023-11-12","Z":"","M":"Interview "},
+{"G":"McArthur Back Yard ","A":"Bill Coore Ben Crenshaw","L":"Florida ","U":"USA","C":"Leibold Golf Water","J":"New","B":"","H":"","Y":"2023-11-05","Z":"Morris Crady Rain Bird IC","M":"Sandcapped "},
+{"G":"Panther National ","A":"Nicklaus Chris Cochran JT","L":"Florida ","U":"USA","C":"Heritage Links","J":"New","B":"","H":"","Y":"2023-11-04","Z":"Justin Thomas","M":"Dominick Senn "},
+{"G":"Estate Course ","A":"Jackson Kahn","L":"Louisiana ","U":"USA","C":"","J":"New 9","B":"","H":"","Y":"2023-12-23","Z":"","M":"11 greens "},
+{"G":"Old Bridge ","A":"Stephen Kay","L":"New Jersey ","U":"USA","C":"Mead","J":"New","B":"$8M","H":"","Y":"2023-08-16","Z":"","M":"Biarritz Green "},
+{"G":"Newport National West ","A":"Forrest Smith","L":"Rhode Island ","U":"USA","C":"VM Golf Services","J":"New","B":"","H":"","Y":"2023-04-17","Z":"New 9 holes","M":"Inspection "},
+{"G":"South Shore ","A":"Ron Cutlip","L":"Rhode Island ","U":"USA","C":"Talent Golf","J":"New","B":"","H":"","Y":"2023-10-26","Z":"Momentum Golf","M":""},
+{"G":"Old Barnwell ","A":"Brian Schneider Blake Conant","L":"South Carolina ","U":"USA","C":"MacCurrach Andrej Buchko Gray Carlton","J":"New 36","B":"","H":"","Y":"2023-10-17","Z":"Green Tee Golf","M":"Gilroy "},
+{"G":"Tree Farm ","A":"Kye Goalby Tom Doak","L":"South Carolina ","U":"USA","C":"Brett Hochstein Green Tee Golf","J":"New","B":"","H":"","Y":"2023-03-21","Z":"Leibold Irrigation Rain Bird IC","M":"Golf Water Paul Roche "},
+{"G":"Big Easy Ranch Covey ","A":"Chet Williams","L":"Texas ","U":"USA","C":"Sanders Golf Cole Sanders","J":"New","B":"","H":"","Y":"2023-04-17","Z":"","M":"Rain Bird "},
+{"G":"PGA Frisco Fields Ranch East ","A":"Gil Hanse","L":"Texas ","U":"USA","C":"Heritage Links","J":"New","B":"","H":"","Y":"2023-04-30","Z":"","M":"No Laying Up "},
+{"G":"PGA Frisco Fields Ranch West ","A":"Beau Welling Hunter Rigsby","L":"Texas ","U":"USA","C":"Wadsworth Lloyd Bridges","J":"New","B":"","H":"","Y":"2023-04-30","Z":"","M":"Seth Waugh "},
+{"G":"Red Feather ","A":"Tad King Rob Collins","L":"Texas ","U":"USA","C":"Burger Lucas Beasley","J":"New","B":"","H":"","Y":"2023-10-01","Z":"","M":"#777bentgrass "},
+{"G":"Black Desert ","A":"Tom Weiskopf Phil Smith","L":"Utah ","U":"USA","C":"Heritage Links Brian Jennings","J":"New","B":"","H":"","Y":"2023-05-17","Z":"Aquafuse","M":"LPGA 2024 Host "},
+{"G":"Sand Valley Lido ","A":"Tom Doak Brian Schneider Brian Slawnik","L":"Wisconsin ","U":"USA","C":"Oliphant Andrej Buchko Gray Carlton","J":"New","B":"","H":"CB Macdonald","Y":"2023-07-01","Z":"","M":"Peter Flory "},
+{"G":"Golf La Tempête ","A":"Huxham","L":"Quebec ","U":"Canada","C":"","J":"New","B":"$10M","H":"","Y":"2023-06-13","Z":"","M":"Andre Raymond "},
+{"G":"La Reserve Golf Links ","A":"Peter Matkovich Louis Oosthuizen","L":"Domaine Bel Ombre ","U":"Mauritius","C":"","J":"New","B":"","H":"","Y":"2023-11-28","Z":"Heritage GC","M":"Skyline Green "},
+{"G":"Corinthia Gewan Island ","A":"Peter Harradine","L":"Qatar ","U":"Qatar","C":"","J":"New","B":"","H":"","Y":"2022-12-13","Z":"IDG","M":"Par 3 "},
+{"G":"Robinswood ","A":"Pirapon Namatra","L":"Bangkok ","U":"Thailand","C":"Centaur Asia Pac","J":"New","B":"","H":"","Y":"2023-09-17","Z":"Reignwood","M":"Golf East "},
+{"G":"Yas Acres ","A":"Fry Straka Rubidoux","L":"Abu Dhabi ","U":"UAE","C":"Desert Group","J":"New","B":"","H":"","Y":"2023-07-10","Z":"","M":"9 Holes "},
+{"G":"Dragon Links ","A":"Greg Norman","L":"Hai Phong ","U":"Vietnam","C":"","J":"New","B":"","H":"","Y":"2023-10-01","Z":"","M":"Reclaimed Land "},
+{"G":"Royal Golf Long An ","A":"Nick Faldo","L":"Ho Chi Minh ","U":"Vietnam","C":"Adam Calver","J":"New","B":"","H":"","Y":"2023-11-13","Z":"Mark Adams","M":"Benz HiO Prize "},
+{"G":"Sapa Grand ","A":"IMG","L":"Lao Cai ","U":"Vietnam","C":"Adam Kelland","J":"New","B":"$23M","H":"","Y":"2023-11-03","Z":"Sun Group","M":"TE Paspalum "},
+{"G":"Sonadezi Chau Duc ","A":"Greg Norman","L":"Vung Tau ","U":"Vietnam","C":"","J":"New","B":"","H":"","Y":"2023-12-04","Z":"","M":"SÂN GOLF CHÂU Ð?C "},
+{"G":"Te Arai North ","A":"Tom Doak Brian Slawnik Angela Moser Clyde Johnson","L":"North Island ","U":"NZ","C":"Hard Fescue","J":"New","B":"","H":"","Y":"2023-11-07","Z":"","M":" "},
+{"G":"Bois d’Arlon ","A":"Jonathan Davison","L":"Arlon ","U":"Belgium","C":"Golf Link Evolve","J":"New","B":"","H":"","Y":"2023-04-02","Z":"","M":" "},
+{"G":"Schmalkalden ","A":"Städler Reinmuth","L":"Thuringian Forest ","U":"Germany","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-04-12","Z":"","M":""},
+{"G":"Pulheim Black ","A":"Krause","L":"Cologne ","U":"Germany","C":"Jösef Potter","J":"New","B":"","H":"","Y":"2023-04-18","Z":"","M":""},
+{"G":"Ombria ","A":"da Silva","L":"Algarve ","U":"Portugal","C":"","J":"New","B":"","H":"","Y":"2023-04-02","Z":"","M":"Golf Resort "},
+{"G":"Costa Terra ","A":"Tom Fazio Ron Smith","L":"Lisbon ","U":"Portugal","C":"Sol Golf David Minogue","J":"New","B":"","H":"","Y":"2023-12-31","Z":"","M":"Discovery Land "},
+{"G":"Terras da Comporta Dunas ","A":"David Kidd","L":"Lisbon ","U":"Portugal","C":"CJW Conor Walsh","J":"New","B":"","H":"","Y":"2023-10-05","Z":"","M":"Scrub pine "},
+{"G":"Bucharest GC ","A":"Howes","L":"Bucharest ","U":"Romania","C":"Baspinar","J":"New","B":"","H":"","Y":"2023-04-07","Z":"","M":""},
+{"G":"Algodon Wine Estates ","A":"Ricardo Jurado","L":"Mendoza ","U":"Argentina","C":"","J":"New 9","B":"","H":"","Y":"2023-05-20","Z":"Gaucho","M":""},
+{"G":"West Side GC ","A":"Aleem Hussain","L":"Crane ","U":"Guyana","C":"","J":"New","B":"","H":"","Y":"2023-04-02","Z":"","M":""},
+{"G":"El Molino ","A":"Bobby Smelek","L":"Guanajuato ","U":"Mexico","C":"Roca Golf","J":"New 9","B":"","H":"Von Hagge","Y":"2023-12-03","Z":"","M":"Roca "},
+{"G":"La Primavera ","A":"Alarcon Morrish Kaye","L":"Sinaloa ","U":"Mexico","C":"Roca Golf","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-02-11","Z":"","M":"Coppel "},
+{"G":"Sierra Del Rio GC ","A":"Richard Phelps","L":"Turtleback Mountain Resort ","U":"Mexico","C":"Wadsworth","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-24","Z":"","M":"Elephant Butte "},
+{"G":"Point Hardy ","A":"Bill Coore Ben Crenshaw","L":"St Lucia ","U":"St Lucia","C":"Dormer Rhebb Dave Axland Oncore Principals","J":"New","B":"","H":"","Y":"2023-09-18","Z":"East Valley Irrigation EVI Trevor Holman","M":"Cabot St. Lucia "},
+{"G":"Mount Edgecombe CC ","A":"Peter Matkovich","L":"Durban ","U":"South Africa","C":"TurfWorx","J":"Renovate","B":"","H":"","Y":"2023-11-05","Z":"","M":""},
+{"G":"Jolshiri Golf Club ","A":"Paul Jansen","L":"Dhaka ","U":"Bangladesh","C":"Bangladesh Army","J":"New","B":"","H":"","Y":"2023-12-11","Z":"","M":"9 holes "},
+{"G":"Kurmitola ","A":"Vijit Nandrajog","L":"Dhaka ","U":"Bangladesh","C":"","J":"Renovate","B":"","H":"","Y":"2023-11-01","Z":"","M":"new greens complex "},
+{"G":"Els Club Desaru Valley ","A":"Ernie Els","L":"Johor ","U":"Malaysia","C":"","J":"Renovate","B":"","H":"Vijay Singh","Y":"2023-11-05","Z":"Troon","M":""},
+{"G":"Keppel Club Sime ","A":"Phil Jacobs","L":"Singapore ","U":"Singapore","C":"","J":"Renovate","B":"","H":"","Y":"2023-02-05","Z":"","M":"Site relocation "},
+{"G":"Seowon Hills CC ","A":"David Dale","L":"Seoul ","U":"South Korea","C":"","J":"Renovate","B":"","H":"","Y":"2023-10-17","Z":"","M":""},
+{"G":"Amata Springs ","A":"","L":"Chon Buri ","U":"Thailand","C":"","J":"Renovate","B":"","H":"","Y":"2023-10-20","Z":"","M":"Mike McKenna "},
+{"G":"Blue Canyon ","A":"","L":"Phuket ","U":"Thailand","C":"STS Brad Burgess","J":"Renovate","B":"","H":"Yoshikazu Kato","Y":"2024-02-03","Z":"KLPGA","M":"Stadium Zoysia "},
+{"G":"Siam CC Old ","A":"Lee Schmidt","L":"Chon Buri ","U":"Thailand","C":"","J":"Renovate","B":"","H":"Izumi","Y":"2023-09-08","Z":"Novotek Greens","M":""},
+{"G":"Cammeray GC ","A":"","L":"NSW ","U":"Australia","C":"","J":"Reduce","B":"","H":"","Y":"2023-10-23","Z":"","M":""},
+{"G":"Long Reef ","A":"Craig Parry","L":"NSW ","U":"Australia","C":"turfworx","J":"Bunkers","B":"","H":"","Y":"2024-4-19","Z":"Klingstone Drainage","M":""},
+{"G":"Parkes GC ","A":"James Wilcher","L":"NSW ","U":"Australia","C":"Nathan Bradbery Phil Moylan","J":"Rebuild ","B":"","H":"","Y":"2023-09-11","Z":"Golf Spectrum","M":""},
+{"G":"Ashgrove ","A":"James Wilcher","L":"Queensland ","U":"Australia","C":"Golf Spectrum","J":"Rebuild ","B":"","H":"","Y":"2023-11-23","Z":"","M":"Recreational Assets Recovery and Resilience Program "},
+{"G":"Indooroopilly ","A":"Perrett Webb","L":"Queensland ","U":"Australia","C":"","J":"Rebuild ","B":"","H":"","Y":"2024-01-06","Z":"","M":"Dean Hardman "},
+{"G":"Pelican Waters ","A":"Greg Norman","L":"Queensland ","U":"Australia","C":"","J":"Renovate","B":"","H":"","Y":"2023-08-04","Z":"","M":""},
+{"G":"Freeway GC ","A":"Phil Ryan","L":"Victoria ","U":"Australia","C":"","J":"Rebuild ","B":"$2M","H":"","Y":"2023-04-05","Z":"","M":"New cart path "},
+{"G":"Riversdale GC ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","C":"","J":"Renovate","B":"","H":"Russell","Y":"2023-02-23","Z":"","M":"Pin Location "},
+{"G":"Southern Golf Club ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","D":"2023","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-04-14","Z":"","M":""},
+{"G":"Kwinana ","A":"Ben Davey","L":"Western Aus. ","U":"Australia","C":"Phil Moylan","J":"Renovate","B":"","H":"","Y":"2023-03-10","Z":"","M":""},
+{"G":"Christchurch GC ","A":"Crafter Mogford","L":"South Island ","U":"NZ","C":"Shaping Dirt","J":"Renovate","B":"","H":"","Y":"2023-07-15","Z":"","M":""},
+{"G":"Prague City ","A":"Jakub Cervenka","L":"Czech ","U":"Czech Republic","C":"","J":"Renovate","B":"","H":"","Y":"2021-12-26","Z":"","M":"Par 5 "},
+{"G":"Breinholtgård ","A":"Jonathan Gaunt","L":"Fanø ","U":"Denmark","C":"","J":"Renovate","B":"","H":"","Y":"2022-04-12","Z":"","M":""},
+{"G":"Campagne ","A":"Harradine","L":"Nîmes ","U":"France","C":"Green Art TAS","J":"Renovate","B":"","H":"","Y":"2022-04-12","Z":"","M":""},
+{"G":"Golf Club Föhr ","A":"Althaus","L":"Nieblum ","U":"Germany","C":"","J":"Rebuild","B":"","H":"","Y":"2025-02-19","Z":"","M":""},
+{"G":"Castiglion del Bosco ","A":"Phil Smith","L":"Tuscany ","U":"Italy","C":"Atlantic Golf Construction Turfgrass Nick Munro","J":"Renovate","B":"","H":"Tom Weiskopf","Y":"2023-10-03","Z":"Bunker Solution","M":"Irrigation "},
+{"G":"Rosendaelsche ","A":"Achim Reinmuth","L":"Arnhem ","U":"Netherlands","C":"","J":"Renovate","B":"","H":"Frank Pennink","Y":"2023-02-26","Z":"Heathland","M":""},
+{"G":"Twentsche ","A":"Frank Pont","L":"Netherlands ","U":"Netherlands","C":"","J":"Renovate","B":"","H":"","Y":"2024-02-04","Z":"","M":"Pont "},
+{"G":"Clube de Golf Santo da Serra ","A":"Ricardo Santos","L":"Madeira ","U":"Portugal","C":"","J":"Renovate","B":"$2.8M","H":"RTJ Sr.","Y":"2023-10-19","Z":"Irrigation","M":""},
+{"G":"Aloha GC ","A":"Tim Lobb Sergio Carballo","L":"Marbella ","U":"Spain","C":"CJW Andy Appleby Finish Golf","J":"Renovate","B":"","H":"Javier Arana","Y":"2023-10-21","Z":"Luis Cornejo Surtec","M":"Cultural practices "},
+{"G":"La Toja ","A":"Marco Martin","L":"Pontevedra ","U":"Spain","C":"","J":"Restore","B":"","H":"Ramón Espinosa","Y":"2023-07-04","Z":"","M":""},
+{"G":"Torekova ","A":"Caspar Grauballe","L":"Sweden ","U":"Sweden","D":"2024","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2021-08-18","Z":"","M":""},
+{"G":"The Strand ","A":"Johan Benestam","L":"Lake Mälaren ","U":"Sweden","C":"","J":"Renovate","B":"","H":"","Y":"2022-06-23","Z":"","M":""},
+{"G":"Ekholmsnäs Lidingö ","A":"EIGCA","L":"Stockholm ","U":"Sweden","C":"Johan Mihkelson Ringqvist","J":"Renovate","B":"","H":"","Y":"2023-08-15","Z":"All Golf Services","M":""},
+{"G":"Basel ","A":"Hilgert Pont","L":"Basel ","U":"Switzerland","C":"","J":"Restore","B":"","H":"Limburger","Y":"2024-02-09","Z":"","M":""},
+{"G":"Crans-sur Sierre ","A":"Dave Sampson","L":"Switzerland ","U":"Switzerland","C":"","J":"Renovate","B":"","H":"","Y":"2023-09-07","Z":"","M":"European Golf Design "},
+{"G":"Whitburn ","A":"Jonathan Gaunt","L":"Durham ","U":"England","C":"Greasley","J":"Renovate","B":"","H":"Morrison","Y":"2023-02-24","Z":"","M":"Bunker liner "},
+{"G":"Blackmoor GC ","A":"Tim Lobb","L":"Hampshire ","U":"England","C":"Profusion Blinder","J":"Renovate","B":"$700K","H":"Harry Colt","Y":"2024-01-16","Z":"","M":"Heathland "},
+{"G":"Alwoodley ","A":"Clyde Johnson","L":"Leeds ","U":"England","C":"","J":"Restore","B":"","H":"","Y":"2023-10-15","Z":"","M":"Hole 2 "},
+{"G":"Seacroft GC ","A":"Clyde Johnson","L":"Lincolnshire ","U":"England","C":"","J":"Renovate","B":"","H":"Willie Fernie","Y":"2023-05-11","Z":"","M":"Angles "},
+{"G":"Allerton Manor ","A":"IDG","L":"Liverpool ","U":"England","C":"R.A. Sammels","J":"Rebuild ","B":"$20M","H":"","Y":"2023-06-03","Z":"","M":"Dozer "},
+{"G":"London Airlinks ","A":"TBA","L":"London ","U":"England","C":"","J":"Rebuild ","B":"","H":"","Y":"2023-01-14","Z":"was Hounslow Heath","M":"Virtual Tour "},
+{"G":"Northumberland ","A":"Tom Mackenzie","L":"Newcastle ","U":"England","C":"","J":"Renovate","B":"","H":"Colt Braid","Y":"2023-04-01","Z":"","M":"Masterplan "},
+{"G":"Hankley Common ","A":"Martin Ebert","L":"Surrey ","U":"England","C":"MJ Abbott Quinn Thompson","J":"Renovate","B":"","H":"Colt Braid","Y":"2024-12-06","Z":"","M":"Heathland "},
+{"G":"Jameson Golf Links ","A":"Jeff Lynch","L":"Dublin ","U":"Ireland","C":"DAR","J":"Renovate","B":"","H":"Bernard Langer Stan Eby","Y":"2023-09-30","Z":"was Portmarnock Hotel Links","M":"Bunker reconstruction "},
+{"G":"Royal Dublin ","A":"Frank Pont Hendrik Hilgert","L":"Dublin ","U":"Ireland","C":"DAR","J":"Renovate","B":"","H":"Harry Colt","Y":"2023-07-03","Z":"","M":"Bunkers "},
+{"G":"Greenore ","A":"Ken Kearney","L":"Louth ","U":"Ireland","C":"DAR","J":"Masterplan","B":"","H":"","Y":"2023-01-22","Z":"","M":"Phase 1 "},
+{"G":"Strandhill ","A":"Ally McIntosh","L":"Sligo ","U":"Ireland","C":"","J":"Renovate","B":"","H":"Eddie Hackett","Y":"2024-01-08","Z":"","M":"GCA "},
+{"G":"Blainroe ","A":"Marc Westenborg","L":"Wicklow ","U":"Ireland","C":"DAR","J":"Renovate","B":"$0.6M","H":"Hawtree","Y":"2023-08-15","Z":"","M":"SportBond bunker liner "},
+{"G":"Druids Glen ","A":"Peter McEvoy Jeff Lynch","L":"Wicklow ","U":"Ireland","C":"DAR","J":"Renovate","B":"$11M","H":"Ruddy Craddock","Y":"2023-12-31","Z":"","M":"Augusta bunkers "},
+{"G":"Galgorm ","A":"Kevin Markham","L":"Ballymean ","U":"No. Ireland","C":"","J":"Renovate","B":"","H":"","Y":"2023-12-22","Z":"Spring 2023","M":"Hole 14 "},
+{"G":"Belvoir Park ","A":"Swan","L":"Belfast ","U":"No. Ireland","C":"Clive Richardson","J":"Renovate","B":"","H":"Harry Colt","Y":"2023-02-04","Z":"","M":"William Swan "},
+{"G":"North Berwick West Links ","A":"Clyde Johnson","L":"East Lothian ","U":"Scotland","C":"Chris Haspell Kyle Cruickshank","J":"Masterplan","B":"","H":"Ben Sayers","Y":"2023-11-24","Z":"","M":"Course Manager "},
+{"G":"Elie ","A":"Ross McMurray EGD","L":"Elie ","U":"Scotland","C":"CJW Conor Walsh","J":"Masterplan","B":"","H":"","Y":"2023-11-16","Z":"","M":""},
+{"G":"Golf It! Lethamhill ","A":"Macpherson","L":"Glasgow ","U":"Scotland","C":"","J":"Renovate","B":"","H":"","Y":"2023-01-14","Z":"","M":"Glasgow "},
+{"G":"Peninsula Papagayo ","A":"Thad Layton","L":"Guanacaste ","U":"Costa Rica","C":"","J":"Renovate","B":"","H":"","Y":"2023-11-07","Z":"Water conservation","M":""},
+{"G":"White Witch ","A":"Mike Smelek","L":"Rose Hill ","U":"Jamaica","C":"","J":"Renovate","B":"","H":"Von Hagge","Y":"2023-10-21","Z":"","M":""},
+{"G":"Punta Mita Pacifico ","A":"Lipe Rubideaux","L":"Nayarit ","U":"Mexico","C":"","J":"Restore","B":"","H":"Nicklaus","Y":"2023-01-23","Z":"","M":"Jim Lipe Review "},
+{"G":"Pender Harbour ","A":"Tim Lobb Alex Hay","L":"Brit Columbia ","U":"Canada","C":"","J":"Renovate","B":"","H":"","Y":"2022-12-02","Z":"","M":"Alex Hay "},
+{"G":"Purcell ","A":"Trevor Dormer","L":"Brit Columbia ","U":"Canada","C":"","J":"Renovate","B":"","H":"","Y":"2023-12-22","Z":"Kimberly GC","M":"River holes "},
+{"G":"Elmhurst CC ","A":"Ron Prichard Riley Johns","L":"Manitoba ","U":"Canada","C":"Old World Golf Company","J":"Masterplan","B":"","H":"Donald Ross","Y":"2023-07-04","Z":"","M":""},
+{"G":"Brantford ","A":"Whitman Axland Cutten","L":"Ontario ","U":"Canada","C":"","J":"Restore","B":"","H":"Cumming Thompson","Y":"2024-01-05","Z":"","M":"Hole 3 "},
+{"G":"London Hunt Club ","A":"Michael Hurdzan","L":"Ontario ","U":"Canada","C":"KCM Construction","J":"Renovate","B":"","H":"","Y":"2023-09-12","Z":"Chris Hurdzan","M":"Green extension "},
+{"G":"Saint-Hyacinthe ","A":"Neil Haworth","L":"Quebec ","U":"Canada","C":"Yves Brousseau NMP","J":"Renovate","B":"$1.8M","H":"","Y":"2023-05-28","Z":"Erik Lachance NMP","M":""},
+{"G":"Dothan CC ","A":"Billy Fuller Erik Belgum","L":"Alabama ","U":"USA","C":"Mid America","J":"Rebuild ","B":"","H":"","Y":"2023-11-10","Z":"Redan","M":" "},
+{"G":"Hoover ","A":"Bill Bergin","L":"Alabama ","U":"USA","C":"Duininck","J":"Renovate","B":"","H":"Bill Bergin","Y":"2023-10-11","Z":"Bunkers","M":""},
+{"G":"Pines Crossing ","A":"Bill Bergin","L":"Alabama ","U":"USA","C":"Wadsworth","J":"Rebuild ","B":"$7.6M","H":"","Y":"2023-11-07","Z":"was Indian Pines","M":"Auburn "},
+{"G":"Riverchase ","A":"John LaFoy","L":"Alabama ","U":"USA","C":"","J":"Renovate","B":"$1M","H":"","Y":"2023-12-31","Z":"Heritage Golf Group","M":"GCA "},
+{"G":"Ross Bridge ","A":"In house","L":"Alabama ","U":"USA","C":"Sunbelt","J":"Renovate","B":"","H":"RTJ Sr.","Y":"2023-09-21","Z":"","M":"Reopening "},
+{"G":"Steelwood ","A":"Kurt Bowman","L":"Alabama ","U":"USA","C":"Titzer","J":"Renovate","B":"","H":"Pate","Y":"2023-11-07","Z":"","M":"Hole 5 "},
+{"G":"Arizona Biltmore Estates ","A":"Tom Lehman","L":"Arizona ","U":"USA","C":"Sundt Construction","J":"Rebuild ","B":"","H":"Billy Bell Jr.","Y":"2023-09-25","Z":"Rain Bird PTI Pro Turf","M":"TifTuf Bermuda "},
+{"G":"Grandview Sun City ","A":"Gary Brawley","L":"Arizona ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","B":"","H":"","Y":"2023-11-05","Z":"Water","M":"Turf Reduction "},
+{"G":"McCormick Ranch ","A":"Gary Brawley","L":"Arizona ","U":"USA","C":"Wadsworth","J":"Renovate","B":"","H":"","Y":"2023-07-19","Z":"","M":"Grassing "},
+{"G":"Power Ranch ","A":"Gary Brawley","L":"Arizona ","U":"USA","C":"National Turf Marvin Mills","J":"Renovate","B":"$2.6M","H":"Dick Bailey","Y":"2023-09-21","Z":"USGA Spec. Greens","M":""},
+{"G":"Tucson CC ","A":"Mike Gogel","L":"Arizona ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"Billy Bell","Y":"2023-11-30","Z":"Global Golf Construction","M":"RainBird "},
+{"G":"Cooper's Hawk ","A":"Todd Clark","L":"Arkansas ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-05-11","Z":"","M":"Reshaping bunkers "},
+{"G":"Desert Island ","A":"Amy Alcott","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"Muirhead","Y":"2023-10-17","Z":"","M":"Flyover "},
+{"G":"Olympic Lake ","A":"Hanse Wagner","L":"California ","U":"USA","C":"Total Turf Shellene Elmore","J":"Restore","B":"","H":"William Watson","Y":"2023-10-15","Z":"Top 100","M":"Tree removal "},
+{"G":"PGA West Dunes ","A":"Tim Liddy","L":"California ","U":"USA","C":"Scott Poole Michael O’Connor Ron Farris","J":"Restore","B":"","H":"Pete Dye","Y":"2023-10-22","Z":"","M":"Topo Map "},
+{"G":"PGA West Mountain ","A":"Tim Liddy","L":"California ","U":"USA","C":"Scott Poole Michael O’Connor Ron Farris","J":"Restore","B":"","H":"Pete Dye","Y":"2023-10-22","Z":"","M":""},
+{"G":"PGA West Norman ","A":"Brandon Johnson","L":"California ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"Norman","Y":"2022-06-05","Z":"","M":""},
+{"G":"Porcupine Creek ","A":"In house","L":"California ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-05-05","Z":"","M":""},
+{"G":"Rancho Santa Fe ","A":"David Kidd Nick Schaan","L":"California ","U":"USA","C":"Eric Wolfert Dave Linngren Gabriel San Juan Landscapes Unlimited","J":"Renovate","B":"$11M","H":"Max Behr","Y":"2023-04-01","Z":"Brent Harvey Irrigation","M":""},
+{"G":"Shadow Lakes ","A":"In house","L":"California ","U":"USA","C":"","J":"Rebuild ","B":"","H":"Baird","Y":"2023-11-01","Z":"","M":""},
+{"G":"Sonoma GC ","A":"Tripp Davis Kyle Downs Jason Gold","L":"California ","U":"USA","C":"DHR Construction","J":"Renovate","B":"","H":"Sam Whiting","Y":"2023-10-19","Z":"","M":"Bunker shaping "},
+{"G":"Boomerang Links ","A":"Phelps Atkinson","L":"Colorado ","U":"USA","C":"","J":"Renovate","B":"$2.8M","H":"Neff","Y":"2023-04-03","Z":"","M":"New holes "},
+{"G":"Castle Pines ","A":"Jim Lipe","L":"Colorado ","U":"USA","C":"Total Turf","J":"Renovate","B":"","H":"Nicklaus","Y":"2023-04-01","Z":"Irrigation Michael Kuhn","M":""},
+{"G":"Glenmoor ","A":"Love Sherman","L":"Colorado ","U":"USA","C":"Total Turf","J":"Renovate","B":"","H":"Pete Dye","Y":"2023-06-18","Z":"","M":"Timelapse "},
+{"G":"Connecticut GC ","A":"Joel Weiman","L":"Connecticut ","U":"USA","C":"","J":"Renovate","B":"","H":"Cornish","Y":"2024-12-02","Z":"","M":""},
+{"G":"Wampanoag CC ","A":"Tyler Rae Jim Ryan","L":"Connecticut ","U":"USA","C":"MAS Golf","J":"Restore","B":"","H":"Donald Ross ","Y":"2023-10-02","Z":"","M":"Donald Ross Society "},
+{"G":"Aileron ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-02-04","Z":"","M":"Sunseeker Resorts "},
+{"G":"Waldorf Astoria ","A":"Rees Jones","L":"Florida ","U":"USA","D":"2024","C":"","J":"Renovate","S":"Construction","B":"","H":"Steve Weisser","Y":"2023-04-11","Z":"Bulkhead","M":""},
+{"G":"BallenIsles East ","A":"Nicklaus Cochran Goetz","L":"Florida ","U":"USA","C":"Troon","J":"Renovate","B":"$6.3M","H":"Lee Wilson","Y":"2023-01-31","Z":"","M":"1971 PGA "},
+{"G":"Belleair CC West ","A":"Jason Straka","L":"Florida ","U":"USA","C":"","J":"Restore","B":"","H":"Donald Ross","Y":"2023-01-24","Z":"","M":"Ross "},
+{"G":"Bobby Jones ","A":"Richard Mandell","L":"Florida ","U":"USA","C":"QGS Development Leibold Aqua Turf","J":"Restore","B":"$10M","H":"Donald Ross","Y":"2023-11-27","Z":"Toro 2-Wire Irrigation System","M":"Reopen Golf Course "},
+{"G":"Broken Sound Old ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","C":"","J":"Restore","B":"","H":"","Y":"2024-5-27","Z":"","M":""},
+{"G":"Country Club of Florida ","A":"Lester George","L":"Florida ","U":"USA","C":"Aspen Golf","J":"Renovate","B":"","H":"Arthur Hills","Y":"2023-09-30","Z":"","M":"aspencorporationgolf "},
+{"G":"Country Club of Naples ","A":"Drew Rogers","L":"Florida ","U":"USA","D":"2024","C":"Joel Hornickel","J":"Renovate","B":"","H":"Diddel","Y":"2023-04-15","Z":"","M":"Fertilizer "},
+{"G":"Gasparilla Inn ","A":"Tripp Davis","L":"Florida ","U":"USA","C":"Total Turf Golf Aqua Agronomic Solutions","J":"Masterplan","B":"","H":"Pete Dye","Y":"2023-11-03","Z":"Leibold Irrigation","M":"Elliot Garrison Ethan Harris "},
+{"G":"Golf Park ","A":"Hanse Wagner Ziff","L":"Florida ","U":"USA","C":"Total Turf Golf Neil Cameron Josh McFadden Brett Hochstein Brad Gehl","J":"Renovate","B":"","H":"","Y":"2023-04-01","Z":"Lukas Michel","M":"Seth Waugh "},
+{"G":"Grey Oaks CC Pine ","A":"Andrew Green","L":"Florida ","U":"USA","C":"LGR LaBar","J":"Renovate","B":"","H":"Lloyd Clifton","Y":"2023-11-24","Z":"","M":"Grow-in "},
+{"G":"Heritage Harbour ","A":"Campanelli","L":"Florida ","U":"USA","C":"Westscapes","J":"Renovate","B":"$2M","H":"Arthur Hills","Y":"2023-02-01","Z":"","M":""},
+{"G":"John's Island West ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"Total Turf","J":"Renovate","B":"","H":"Tom Fazio","Y":"2023-03-30","Z":"","M":"Florida "},
+{"G":"Loblolly ","A":"Jim Urbina","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Pete Dye","Y":"2023-11-16","Z":"","M":"Sandcapped "},
+{"G":"Miami Springs ","A":"Jan Bel Jan","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"$3.8M","H":"","Y":"2024-02-01","Z":"","M":""},
+{"G":"Mountain Lake ","A":"Tyler Rae","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Seth Raynor ","Y":"2023-11-07","Z":"Top 100","M":"Rebuild Tees "},
+{"G":"Orchid Island ","A":"Brandon Johnson","L":"Florida ","U":"USA","C":"KVL King Villages Landscaping & Golf Construction","J":"Renovate","B":"","H":"Arnold Palmer","Y":"2023-11-07","Z":"","M":""},
+{"G":"Pines Crossing ","A":"Lutzke Shaw","L":"Florida ","U":"USA","C":"","J":"Restore","B":"$6M","H":"Joe Lee","Y":"2023-01-29","Z":"","M":"Indian River "},
+{"G":"Polo Boca Raton ","A":"Drew Rogers","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-05-12","Z":"","M":""},
+{"G":"Ponte Vedra Lagoon ","A":"Bobby Weed ","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","B":"","H":"RTJ Sr. Joe Lee","Y":"2023-10-25","Z":"","M":""},
+{"G":"Preserve Ironhorse ","A":"Rees Jones","L":"Florida ","U":"USA","C":"Bryce Swanson","J":"Renovate","B":"","H":"Arthur Hills","Y":"2023-10-18","Z":"ASGCA","M":"West Palm "},
+{"G":"Rio Pinar ","A":"Carlton Marshall","L":"Florida ","U":"USA","C":"","J":"Renovate","B":"","H":"Mark Mahannah","Y":"2023-10-18","Z":"","M":""},
+{"G":"Saltleaf Golf Preserve ","A":"Harry Bowers Ray Floyd","L":"Florida ","U":"USA","C":"Heritage Links","J":"Rebuild ","B":"","H":"","Y":"2022-11-17","Z":"Raptor Bay","M":"Bonita Springs "},
+{"G":"Sara Bay CC ","A":"Kris Spence","L":"Florida ","U":"USA","C":"Total Turf Golf","J":"Renovate","B":"","H":"","Y":"2023-05-30","Z":"Bimini Bermuda Regrass","M":"Superintendent "},
+{"G":"Shell Bay ","A":"Norman Danner","L":"Florida ","U":"USA","C":"Total Turf Golf","J":"Rebuild ","B":"","H":"","Y":"2023-10-05","Z":"Auberge","M":""},
+{"G":"St. Johns ","A":"Erik Larsen","L":"Florida ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$8M","H":"","Y":"2022-11-28","Z":"","M":"Municipal Course "},
+{"G":"Stoneybrook West GC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Kemper","J":"Renovate","B":"$5M","H":"Arthur Hills","Y":"2023-11-16","Z":"","M":""},
+{"G":"The Seagate ","A":"Drew Rogers","L":"Florida ","U":"USA","C":"Total Turf Golf","J":"Renovate","B":"$14.5M","H":"Joe Lee","Y":"2023-12-05","Z":"","M":"Progress Report "},
+{"G":"Vineyards South ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"QGS","J":"Renovate","B":"","H":"Bill Amick","Y":"2023-12-14","Z":"","M":"Pro/Angle Bunker Sand "},
+{"G":"Wildcat Run ","A":"Kris Spence","L":"Florida ","U":"USA","C":"Clark Construction","J":"Renovate","B":"$8M","H":"Palmer Ed Seay","Y":"2023-11-22","Z":"","M":"Bimini "},
+{"G":"Atlanta Country Club ","A":"Beau Welling Scott Benson","L":"Georgia ","U":"USA","C":"Medalist Golf","J":"Renovate","B":"","H":"Bob Cupp Willard Byrd","Y":"2023-12-31","Z":"007XL Bentgrass putting surfaces","M":"Bunker Solution "},
+{"G":"Augusta National Par 3 ","A":"Tom Fazio","L":"Georgia ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","B":"","H":"George Cobb","Y":"2022-12-03","Z":"","M":" "},
+{"G":"Coosa CC ","A":"Beau Welling","L":"Georgia ","U":"USA","C":"","J":"Renovate","B":"$5.5M","H":"George Cobb","Y":"2023-12-07","Z":"","M":""},
+{"G":"Landings Palmetto ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"Duininck","J":"Renovate","B":"$3.7M","H":"Arthur Hills","Y":"2023-11-16","Z":"","M":"Prep Work "},
+{"G":"Lookout Mountain ","A":"Tyler Rae Kyle Franz","L":"Georgia ","U":"USA","C":"","J":"Restore","B":"$12M","H":"Seth Raynor","Y":"2023-06-30","Z":"","M":"WDEF "},
+{"G":"Ocean Forest ","A":"Beau Welling Chase Webb","L":"Georgia ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","B":"","H":"Rees Jones","Y":"2023-11-03","Z":"","M":"USGA Agronomist "},
+{"G":"Valdosta CC ","A":"Bill Bergin","L":"Georgia ","U":"USA","C":"Duininck","J":"Rebuild ","B":"","H":"Joe Lee","Y":"2023-10-03","Z":"","M":"Short Par 3 "},
+{"G":"Makena South ","A":"","L":"Hawaii ","U":"USA","C":"Discovery Land","J":"Renovate","B":"","H":"RTJ Jr.","Y":"2023-02-18","Z":"","M":""},
+{"G":"North Shore Preserve ","A":"Discovery","L":"Hawaii ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"RTJ Jr.","Y":"2023-12-17","Z":"Princeville Prince","M":"Danny Sapp "},
+{"G":"Falcon Crest Freedom ","A":"Roy Crowe","L":"Idaho ","U":"USA","C":"Hans Borbonus","J":"Renovate","B":"","H":"George Totorica","Y":"2023-09-26","Z":"","M":""},
+{"G":"Osprey Meadows ","A":"RTJ Charlton","L":"Idaho ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","B":"","H":"","Y":"2023-10-26","Z":"","M":"Regrass "},
+{"G":"Conway Farms ","A":"Jackson Kahn","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","B":"","H":"Tom Fazio","Y":"2023-12-31","Z":"Rain Bird CirrusPRO","M":"Fried Egg "},
+{"G":"Elgin ","A":"David Esler","L":"Illinois ","U":"USA","C":"","J":"Masterplan","B":"","H":"","Y":"2023-12-23","Z":"","M":""},
+{"G":"Knollwood ","A":"Drew Rogers","L":"Illinois ","U":"USA","C":"","J":"Renovate","B":"","H":"C.H. Alison","Y":"2022-10-21","Z":"","M":""},
+{"G":"Northmoor CC ","A":"Tyler Rae","L":"Illinois ","U":"USA","C":"Duininck","J":"Renovate","B":"","H":"Donald Ross","Y":"2023-05-16","Z":"White 9","M":"Chasensky "},
+{"G":"Olympia Fields South ","A":"Andy Staples","L":"Illinois ","U":"USA","C":"Don Mahaffey Greenscape Methods","J":"Renovate","B":"$4M","H":"Bendelow Smyers","Y":"2023-08-15","Z":"","M":"Holes 5-7 "},
+{"G":"Skokie ","A":"Brian Schneider","L":"Illinois ","U":"USA","C":"Andrej Buchko","J":"Renovate","B":"","H":"Langford Moreau","Y":"2023-11-25","Z":"Leibold Irrigation","M":"Donald Cross "},
+{"G":"Springbrook ","A":"Greg Martin","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","B":"$3.5M","H":"","Y":"2023-06-02","Z":"Reid Neumann","M":""},
+{"G":"Twin Orchard White ","A":"Drew Rogers","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","B":"","H":"","Y":"2023-05-12","Z":"","M":"Construction "},
+{"G":"Evansville CC ","A":"Beau Welling","L":"Indiana ","U":"USA","C":"Heritage Links","J":"Renovate","B":"$6.5M","H":"Diddel","Y":"2023-04-07","Z":"","M":"Lewis Sharp "},
+{"G":"Helfrich ","A":"RFP","L":"Indiana ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-10-16","Z":"Evansville","M":""},
+{"G":"Bos Landen ","A":"David Hoekstra","L":"Iowa ","U":"USA","C":"","J":"Renovate","B":"","H":"Phelps","Y":"2023-03-12","Z":"","M":"Masterplan "},
+{"G":"Elmwood ","A":"David Hoekstra","L":"Iowa ","U":"USA","C":"","J":"Renovate","B":"","H":"Tom Bendelow","Y":"2023-07-31","Z":"","M":"Landscape "},
+{"G":"Teradyne ","A":"Todd Clark","L":"Kansas ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-04-08","Z":"Ron Whitten","M":"Fairway bunker "},
+{"G":"Topeka CC ","A":"Todd Clark","L":"Kansas ","U":"USA","C":"Mammoth Golf Construction","J":"Restore","B":"","H":"Perry Maxwell","Y":"2023-05-12","Z":"","M":"Ron Whitten "},
+{"G":"Hurstbourne ","A":"Keith Foster","L":"Kentucky ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-09-23","Z":"","M":"Walter Pritchett CGCS "},
+{"G":"Valhalla ","A":"Nicklaus Design","L":"Kentucky ","U":"USA","C":"Randy Hoffacker","J":"Renovate","B":"","H":"Nicklaus","Y":"2023-04-26","Z":"","M":"Brandon Culver "},
+{"G":"Copper Mill ","A":"Nathan Crace","L":"Louisiana ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-10-20","Z":"","M":"nathancrace "},
+{"G":"Cypress Bend ","A":"Jeff Blume","L":"Louisiana ","U":"USA","C":"Mid-America Golf","J":"Renovate","B":"","H":"Dave Bennett","Y":"2023-10-20","Z":"Hunter Irrigation Les Hill","M":"50 Oaks "},
+{"G":"Maryland G&CC ","A":"Andrew Green","L":"Maryland ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-11-03","Z":"","M":"Sod "},
+{"G":"Talbot CC ","A":"Joel Weiman","L":"Maryland ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2024-12-03","Z":"","M":""},
+{"G":"International Oaks ","A":"Tripp Davis Kyle Downs","L":"Massachusetts ","U":"USA","C":"Agriscapes","J":"Renovate","B":"","H":"Fazio","Y":"2022-03-18","Z":"","M":"Downs "},
+{"G":"Pine Brook CC ","A":"Ron Forse","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","B":"","H":"Wayne Stiles","Y":"2022-12-20","Z":"","M":""},
+{"G":"Tatnuck CC ","A":"Matt Dusenberry Brad Klein","L":"Massachusetts ","U":"USA","C":"","J":"Restore","B":"","H":"Donald Ross","Y":"2023-12-17","Z":"","M":"Resley "},
+{"G":"Worcester CC ","A":"Gil Hanse","L":"Massachusetts ","U":"USA","C":"MAS Golf Ben Hillard Kevin Murphy","J":"Restore","B":"","H":"Donald Ross","Y":"2023-12-03","Z":"","M":"Brad Klein "},
+{"G":"Country Club of Jackson ","A":"Chris Wilczynski","L":"Mississippi ","U":"USA","C":"TDI Golf","J":"Renovate","B":"","H":"","Y":"2023-10-21","Z":"C.W. Golf Architecture","M":""},
+{"G":"Lakelands ","A":"Mike Devries","L":"Michigan ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-04-14","Z":"","M":"CDP "},
+{"G":"St. John's Cardinal ","A":"Raymond Hearn","L":"Michigan ","U":"USA","C":"LGR LaBar","J":"Rebuild ","B":"","H":"","Y":"2023-10-13","Z":"","M":"Jim Rozinsky "},
+{"G":"Bearpath ","A":"Nicklaus","L":"Minnesota ","U":"USA","C":"Duininck","J":"Renovate","B":"$7.4M","H":"","Y":"2023-07-08","Z":"","M":"Jim Snell "},
+{"G":"Iron Horse ","A":"Beau Welling Scott Benson","L":"Montana ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"","Y":"2023-09-23","Z":"","M":"Bunker renovation "},
+{"G":"DragonRidge ","A":"David Druzisky","L":"Nevada ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","B":"","H":"Jay Morrish","Y":"2023-12-18","Z":"USGA Brian Whitlark","M":"TifTuf "},
+{"G":"Shadow Creek ","A":"In house","L":"Nevada ","U":"USA","C":"Heritage Links","J":"Renovate","B":"","H":"Tom Fazio","Y":"2023-08-03","Z":"Bunkers","M":"Greg Niendorf "},
+{"G":"Forest Hill ","A":"Billy Fuller","L":"New Jersey ","U":"USA","C":"Tom Kite","J":"Renovate","B":"","H":"A.W. Tillinghast RTJ ","Y":"2023-07-01","Z":"","M":""},
+{"G":"Francis Byrne ","A":"Stephen Kay","L":"New Jersey ","U":"USA","C":"Turco Golf","J":"Renovate","B":"$8.7M","H":"Banks","Y":"2023-06-15","Z":"","M":"Sod "},
+{"G":"Mountain Ridge ","A":"Andrew Green","L":"New Jersey ","U":"USA","C":"","J":"Renovate","B":"","H":"Donald Ross","Y":"2023-02-06","Z":"","M":"Restoration "},
+{"G":"North Jersey CC ","A":"Brian Schneider","L":"New Jersey ","U":"USA","C":"LGR LaBar","J":"Renovate","B":"","H":"Walter Travis","Y":"2023-02-06","Z":"","M":"Greens Mix "},
+{"G":"Cavalry Club ","A":"David Ferris","L":"New York ","U":"USA","C":"","J":"Restore","B":"","H":"Lee Wilson","Y":"2023-05-26","Z":"","M":"Improvement plan "},
+{"G":"Cobblestone Creek ","A":"Michael Hurdzan","L":"New York ","U":"USA","C":"","J":"Renovate","B":"$1M","H":"","Y":"2023-08-28","Z":"Bunkers","M":"Playability "},
+{"G":"Glens Falls ","A":"Ian Andrew","L":"New York ","U":"USA","C":"Turco","J":"Restore","B":"","H":"Donald Ross","Y":"","Z":"Restore 16th hole","M":""},
+{"G":"Monster Golf ","A":"Rees Jones Bryce Swanson","L":"New York ","U":"USA","C":"","J":"Renovate","B":"$40M","H":"Joe Finger","Y":"","Z":"Resorts World","M":"Top 100 "},
+{"G":"Abbey Springs ","A":"Weed Graziani Millsaps","L":"North Carolina ","U":"USA","C":"MacCurrach ","J":"Masterplan","B":"","H":"Donald Ross","Y":"2023-06-19","Z":"","M":""},
+{"G":"Cowans Ford ","A":"Kris Spence","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-12-13","Z":"","M":""},
+{"G":"Cullasaja ","A":"Bill Bergin","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-04-17","Z":"","M":"begingolf "},
+{"G":"Old Chatham ","A":"Rees Jones Greg Muirhead","L":"North Carolina ","U":"USA","C":"Duininck Matt Dufresne","J":"Renovate","B":"$3.5M","H":"Rees Jones","Y":"","Z":"PM Paul Deis","M":"Redesign 16th hole "},
+{"G":"Old North State ","A":"Kris Spence","L":"North Carolina ","U":"USA","C":"Golf Course Services","J":"Renovate","B":"$3M","H":"Tom Fazio","Y":"","Z":"McConnell Golf","M":""},
+{"G":"Old Town ","A":"Bill Coore","L":"North Carolina ","U":"USA","C":"Landscapes Unlimited Dave Axland Joe Hancock","J":"Renovate","B":"","H":"Perry Maxwell","Y":"","Z":"Dunlop White","M":"TifEagle "},
+{"G":"Quail Hollow ","A":"In house","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"$3M","H":"Cobb Fazio","Y":"2023-12-13","Z":"","M":""},
+{"G":"Tot Hill Farm ","A":"In house","L":"North Carolina ","U":"USA","C":"George Ley","J":"Renovate","B":"$3M","H":"Mike Strantz","Y":"2023-08-08","Z":"Prizm Zoysia","M":""},
+{"G":"Silver Creek ","A":"Tom Jackson","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"Tom Jackson","Y":"2023-04-20","Z":"","M":"Sprig Greens "},
+{"G":"UNC Finley ","A":"Love Sherman","L":"North Carolina ","U":"USA","C":"MacCurrach","J":"Renovate","B":"$13.5M","H":"Tom Fazio","Y":"2023-09-25","Z":"","M":"Mark Love "},
+{"G":"Waynesville Inn ","A":"Bobby Weed ","L":"North Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"Donald Ross","Y":"2023-07-01","Z":"","M":"007XL Bentgrass "},
+{"G":"Woodlake ","A":"Kris Spence","L":"North Carolina ","U":"USA","C":"","J":"Rebuild ","B":"","H":"Ellis Maples","Y":"2023-09-25","Z":"","M":"Flood damage "},
+{"G":"Camargo ","A":"Renaissance","L":"Ohio ","U":"USA","C":"","J":"Renovate","B":"","H":"Raynor","Y":"2023-06-02","Z":"Leibold Irrigation","M":"007XL Bentgrass "},
+{"G":"Maketewah ","A":"Brian Silva","L":"Ohio ","U":"USA","C":"Aspen Golf","J":"Restore","B":"$6.5M","H":"Donald Ross","Y":"2023-05-07","Z":"","M":"Ted White "},
+{"G":"The Country Club Pepper Pike ","A":"Gil Hanse Josh McFadden Kye Goalby Matt Smallwood","L":"Ohio ","U":"USA","C":"NMP","J":"Renovate","B":"","H":"William Flynn","Y":"2023-07-24","Z":"Wayne Morrison","M":""},
+{"G":"Wedgewood ","A":"Bruce Charlton","L":"Ohio ","U":"USA","C":"Frontier Golf","J":"Restore","B":"","H":"","Y":"2023-12-23","Z":"","M":"Cap and Fill "},
+{"G":"Kickingbird ","A":"Matthew Dusenberry","L":"Oklahoma ","U":"USA","C":"Mckenna Burnett","J":"Renovate","B":"$5.1M","H":"Arthur Hills","Y":"2023-06-29","Z":"","M":"Change Order 11 "},
+{"G":"Bend GC ","A":"Dan Hixson","L":"Oregon ","U":"USA","C":"Ridgetop Casey Kalbrener","J":"Renovate","B":"$0.6M","H":"Chandler Egan","Y":"2023-11-04","Z":"","M":""},
+{"G":"Brookside CC ","A":"Jeff Stein","L":"Pennsylvania ","U":"USA","C":"George E Ley","J":"Renovate","B":"$1.9M","H":"Frank Meehan","Y":"2023-07-11","Z":"Daniel Loveridge","M":"TriCureAD "},
+{"G":"Buck Hill Falls ","A":"Rees Jones","L":"Pennsylvania ","U":"USA","C":"NMP","J":"Restore","B":"","H":"Donald Ross","Y":"2023-02-04","Z":"","M":"Ross Restoration "},
+{"G":"Foxburg CC ","A":"Ron Forse","L":"Pennsylvania ","U":"USA","D":"2024","C":"","J":"Renovate","S":"Ongoing","B":"$2.5M","H":"","Y":"2022-12-24","Z":"","M":"1887 Project "},
+{"G":"Kahkwa ","A":"Kris Spence","L":"Pennsylvania ","U":"USA","D":"2024","C":"Hollembeak Construction","J":"Renovate","S":"Construction","B":"","H":"Donald Ross","Y":"2023-05-31","Z":"","M":""},
+{"G":"Paxon Hollow ","A":"Tyler Rae","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2024-01-08","Z":"","M":"Hole one "},
+{"G":"Wyoming Valley ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","C":"Mottin Golf","J":"Restore","B":"","H":"A.W. Tillinghast","Y":"2023-05-21","Z":"","M":""},
+{"G":"Callawassie Island Dogwood ","A":"Billy Fuller","L":"South Carolina ","U":"USA","C":"TDI","J":"Renovate","B":"","H":"Tom Fazio","Y":"2023-11-05","Z":"","M":""},
+{"G":"Clemson Walker Course ","A":"John LaFoy","L":"South Carolina ","U":"USA","C":"Environmental Landscaping","J":"Renovate","B":"$12M","H":"DeVictor","Y":"2023-03-29","Z":"18th hole","M":""},
+{"G":"Hampton Hall ","A":"Nathan Crace","L":"South Carolina ","U":"USA","C":"Landscapes Unlimited Golf Preservations","J":"Renovate","B":"$2.9M","H":"Pete Dye","Y":"2023-09-25","Z":"","M":"TifEagle Greens Cored "},
+{"G":"Pawleys Plantation ","A":"Nicklaus Design Troy Vincent","L":"South Carolina ","U":"USA","C":"","J":"Renovate","B":"","H":"Nicklaus","Y":"2023-11-04","Z":"","M":"Bunkers "},
+{"G":"Wellman ","A":"Rees Jones","L":"South Carolina ","U":"USA","C":"Southeastern Golf Clyde Hall","J":"Renovate","B":"$5M","H":"Dan Maples","Y":"2023-10-29","Z":"Bryce Swanson","M":"Municipal Golf "},
+{"G":"Brentwood CC ","A":"Bill Bergin","L":"Tennessee ","U":"USA","C":"","J":"Renovate","B":"","H":"David Johnson","Y":"2023-10-28","Z":"","M":"Sprig fairways "},
+{"G":"Johnson City ","A":"Mike Young","L":"Tennessee ","U":"USA","C":"","J":"Renovate","B":"","H":"A.W. Tillinghast","Y":"2022-12-07","Z":"Bunkers","M":"Ben Malach "},
+{"G":"Links Pine Hill ","A":"Marc Messier","L":"Tennessee ","U":"USA","C":"NMP","J":"Renovate","B":"$5M","H":"","Y":"2023-10-29","Z":"","M":"Memphis "},
+{"G":"Westhaven GC ","A":"Billy Fuller","L":"Tennessee ","U":"USA","C":"","J":"Renovate","B":"","H":"Arthur Hills","Y":"2023-11-12","Z":"TifEagle","M":"Permitting "},
+{"G":"Briggs Ranch ","A":"In house","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"","H":"Tom Fazio","Y":"2023-02-03","Z":"Dormie","M":"TifEagle "},
+{"G":"Canyon Creek CC ","A":"","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"","H":"","Y":"2023-11-30","Z":"","M":""},
+{"G":"Green Tree ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Course Crafters","J":"Renovate","B":"","H":"","Y":"2023-04-20","Z":"Kyle Downs","M":"Bill Willingham "},
+{"G":"Liberty Municipal ","A":"Jeff Blume","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"$2.9M","H":"Ralph Plummer","Y":"2023-05-15","Z":"","M":"New Greens "},
+{"G":"Longwood GC ","A":"","L":"Texas ","U":"USA","C":"","J":"Redesign","B":"$10M","H":"","Y":"2023-10-18","Z":"Flood Control","M":""},
+{"G":"Lost Pines Wolfdancer ","A":"Steve Forrest Shawn Smith","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"","H":"Arthur Hills","Y":"2023-11-21","Z":"","M":"Re-designed holes "},
+{"G":"Lozano GC ","A":"Art Schaupeter","L":"Texas ","U":"USA","C":"","J":"Renovate","B":"$4.4M","H":"","Y":"2023-11-21","Z":"Executive Golf","M":"Night Golf "},
+{"G":"Royal Oaks ","A":"Chet Williams","L":"Texas ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","B":"","H":"","Y":"2023-11-15","Z":"","M":""},
+{"G":"Ridgewood CC ","A":"Tripp Davis","L":"Texas ","U":"USA","C":"Fleetwood","J":"Renovate","B":"$5.2M","H":"Ralph Plummer","Y":"2023-12-07","Z":"","M":""},
+{"G":"T-36 ","A":"Ric Buckton","L":"Texas ","U":"USA","C":"Landscapes Unlimited","J":"Rebuild ","B":"$5M","H":"","Y":"2023-10-21","Z":"Double Greens","M":"Grow-in Update "},
+{"G":"Vaquero Club ","A":"Andrew Green","L":"Texas ","U":"USA","C":"Scott Laughlin Michael Kuhn","J":"Rebuild ","B":"$19.7M","H":"Tom Fazio","Y":"2023-11-16","Z":"Trip Kuehne","M":"Toro Satellite Irrigation System "},
+{"G":"Westlake ","A":"Lanny Wadkins","L":"Texas ","U":"USA","C":"","J":"Rebuild ","B":"","H":"","Y":"2023-12-06","Z":"","M":"Invited Clubs "},
+{"G":"Bayville ","A":"Andrew Green","L":"Virginia ","U":"USA","C":"McDonald","J":"Renovate","B":"","H":"","Y":"2022-12-17","Z":"","M":"Super "},
+{"G":"Manito ","A":"Jeff Mingay","L":"Washington ","U":"USA","C":"Ridgetop Casey Kalbrener","J":"Renovate","B":"","H":"Ted Macan","Y":"2023-04-12","Z":"","M":"Update "},
+{"G":"Sahalee ","A":"Rees Jones","L":"Washington ","U":"USA","C":"Steve Weisser","J":"Renovate","B":"","H":"Ted Robinson","Y":"2023-02-23","Z":"","M":"Masterplan 2 "},
+{"G":"Yakima CC ","A":"Mark Miller","L":"Washington ","U":"USA","C":"","J":"Renovate","B":"","H":"AV Macan","Y":"2023-10-02","Z":"","M":""},
+{"G":"Lawsonia ","A":"Craig Haltom","L":"Wisconsin ","U":"USA","C":"Oliphant","J":"Restore","B":"","H":"Langford Moreau","Y":"2023-03-20","Z":"Dan Moore","M":"Lawsonia "},
+{"G":"Pleasant Valley ","A":"Kevin Norby","L":"Wisconsin ","U":"USA","C":"Golf Creations","J":"Renovate","B":"","H":"","Y":"2023-05-28","Z":"","M":"4 new greens roughed-in "},
+{"G":"Tanglewood Greens ","A":"","L":"Wisconsin ","U":"USA","C":"Seth Greenseth","J":"Renovate","B":"","H":"","Y":"2023-12-07","Z":"","M":""},
+{"G":"TPC Wisconsin ","A":"Steve Wenzloff","L":"Wisconsin ","U":"USA","C":"Wadsworth Leibold","J":"Renovate","B":"$16M","H":"","Y":"2023-07-31","Z":"Steve Stricker Rain Bird IC","M":"Lohmann "},
+{"G":"West Bend ","A":"Kye Goalby","L":"Wisconsin ","U":"USA","C":"Kevin Norby","J":"Renovate","B":"","H":"Langford Moreau","Y":"2023-03-02","Z":"","M":"Kye Goalby "},
+{"G":"Westmoor ","A":"Todd Quitno","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","B":"","H":"Langford","Y":"2023-07-04","Z":"","M":""},
+{"G":"Shortees ","A":"","L":"Sydney ","U":"Australia","C":"","J":"Short","B":"","H":"","Y":"2023-11-10","Z":"","M":""},
+{"G":"Kingston Heath Furrows ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","C":"","J":"Short","B":"$1.3M","H":"","Y":"2023-04-25","Z":"Madden","M":"Mike Cocking "},
+{"G":"Rolling Hills ","A":"Jackson Kahn","L":"Arizona ","U":"USA","C":"Case Verde","J":"Short","B":"$13M","H":"","Y":"2023-11-06","Z":"","M":"Night Golf "},
+{"G":"Rogers Park Par 3 ","A":"Steve Smyers","L":"Florida ","U":"USA","C":"ABM Industries","J":"Short","B":"","H":"","Y":"2022-12-13","Z":"","M":"First Tee "},
+{"G":"Sandhill Crane The Nest ","A":"Chad Goetz","L":"Florida ","U":"USA","C":"","J":"Short","B":"$14M","H":"","Y":"2023-07-12","Z":"Nicklaus Design","M":"Chad Goetz "},
+{"G":"South Seas Island Clutch ","A":"Beau Welling Chase Webb","L":"Florida ","U":"USA","C":"","J":"Short","B":"","H":"","Y":"2023-10-11","Z":"Redesign 12 holes","M":"beauwellingdesign "},
+{"G":"Streamsong The Chain ","A":"Bill Coore Ben Crenshaw","L":"Florida ","U":"USA","C":"Keith Rhebb","J":"Short","B":"","H":"","Y":"2023-09-24","Z":"Rainbird IC James Barrett","M":"Punchbowl Green "},
+{"G":"Falcon Crest Robin Hood ","A":"Roy Crowe","L":"Idaho ","U":"USA","C":"Hans Borbonus","J":"Short","B":"","H":"","Y":"2023-09-26","Z":"","M":""},
+{"G":"Manistee National ","A":"Jerry Matthews","L":"Michigan ","U":"USA","C":"","J":"Short","B":"$250K","H":"","Y":"2024-04-11","Z":"","M":"Denis Meikle "},
+{"G":"Oakwood CC ","A":"Todd Clark","L":"Missouri ","U":"USA","C":"Pearson Golf","J":"Short","B":"","H":"","Y":"2023-07-22","Z":"","M":""},
+{"G":"Shangri-La Battlefield ","A":"Clark Atkinson","L":"Oklahoma ","U":"USA","C":"Dale Forrest - United Golf","J":"Short","B":"","H":"","Y":"2023-07-03","Z":"","M":"Construction "},
+{"G":"Cedar Hills ","A":"John Fought","L":"Utah ","U":"USA","C":"","J":"Short","B":"","H":"","Y":"2023-10-28","Z":"","M":""},
+{"G":"Mountain View GC ","A":"","L":"Utah ","U":"USA","C":"Mid-America Golf","J":"Irrigation","B":"$3M","H":"","Y":"2024-10-08","Z":"Toro Golf","M":""},
+{"G":"Promontory The Hills ","A":"Richardson Danner","L":"Utah ","U":"USA","C":"Wadsworth","J":"Short","B":"$14M","H":"","Y":"2023-06-09","Z":"","M":"Par 3 "},
+{"G":"Coonskin Park ","A":"In house","L":"West Virginia ","U":"USA","C":"Todd Godwin TGC","J":"Short","B":"$1.2M","H":"","Y":"2023-06-20","Z":"","M":"Flood Rebuild "},
+{"G":"Grand Patrician ","A":"Terry LaGree","L":"West Virginia ","U":"USA","C":"","J":"Short","B":"","H":"","Y":"2023-06-20","Z":"","M":"Synthetic Turf "}
+ ]
+}
diff --git a/data/g2024.json b/data/g2024.json
new file mode 100644
index 0000000000000..38c92f190c684
--- /dev/null
+++ b/data/g2024.json
@@ -0,0 +1,343 @@
+{
+ "data":[
+{"G":"Octagon Twin Lake ","A":"","L":"Awka ","U":"Nigeria","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-08-07","Z":"","M":"UNIZIK "},
+{"G":"Chhun On Lakes ","A":"Brian Curley","L":"Phnom Penh ","U":"Cambodia","C":"Flagstick","J":"New","S":"Open","B":"","H":"","Y":"2024-06-24","Z":"","M":"Zeon Zoysia "},
+{"G":"DDA Dwarka ","A":"Pacific Coast Design","L":"Delhi ","U":"India","C":"Rajinder Kumar","J":"New","S":"Open","B":"$5.5M","H":"","Y":"2024-12-18","Z":"Global Golf India","M":"New Millennium "},
+{"G":"Kharghar Valley ","A":"Vijit Nandrajog","L":"Mumbai ","U":"India","C":"Continental Fairways","J":"New","S":"Open","B":"$13M","H":"","Y":"2024-11-27","Z":"CIDCO","M":"Greensite "},
+{"G":"Erbil Hills GC ","A":"Cynthia Dye","L":"Kurdistan ","U":"Iraq","C":"Jake McTavish Daax Construction","J":"New","S":"Open","B":"","H":"","Y":"2024-06-03","Z":"Anka Golf Construction","M":"ASGCA "},
+{"G":"Eighteen ","A":"Jon Hunt","L":"Islamabad ","U":"Pakistan","C":"ProGolf","J":"New","S":"Open","B":"","H":"","Y":"2023-04-05","Z":"IDG","M":" "},
+{"G":"Rayhan Golf ","A":"In house","L":"Karachi ","U":"Pakistan","C":"Turfgrass Consultancy","J":"New","S":"Open","B":"","H":"","Y":"2024-06-17","Z":"36 holes","M":"Flyover "},
+{"G":"Sindalah Island ","A":"Robert Trent Jones II","L":"Tabuk ","U":"Saudi Arabia","C":"Green Dynasty Nesma United","J":"New","S":"Open","B":"","H":"","Y":"2024-06-03","Z":"IMG","M":"NorthBridge Bermudagrass "},
+{"G":"Gold Hill ","A":"","L":"Seoul ","U":"South Korea","C":"Troon","J":"New","S":"Open","B":"","H":"","Y":"2024-10-24","Z":"","M":""},
+{"G":"Mustafa V. Koç ","A":"David Jones","L":"Istanbul ","U":"Turkey","C":"Steve Okula SO GREEN Golf Turf","J":"New 9","S":"Open","B":"","H":"","Y":"2024-06-03","Z":"Irrigation RainBird Stratus II","M":"Andrew Macnabola Onur Yagcioglu Steve Okula "},
+{"G":"Lisnyky ","A":"Jonathan Davison","L":"Kiev ","U":"Ukraine","C":"","J":"New 9","S":"Open","B":"","H":"","Y":"2024-08-25","Z":"","M":"Equides Resort "},
+{"G":"Legend Valley CC ","A":"Nicklaus Quinn","L":"Ha Nam ","U":"Vietnam","C":"Shang Yih Construction","J":"New 36","S":"Open","B":"","H":"","Y":"2024-11-06","Z":"Brett Saggus","M":"Jeff Stamper "},
+{"G":"Amber Hills Rock Valley ","A":"Albanese Choi","L":"Hanoi ","U":"Vietnam","C":"Sports Turf","J":"New","S":"Construction","B":"","H":"","Y":"2023-08-27","Z":"","M":"B?c Giang "},
+{"G":"Corn Hill Resort ","A":"Brett Mogg","L":"Hanoi ","U":"Vietnam","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-10-21","Z":"Shibaura","M":" "},
+{"G":"BRG Golden Sands North ","A":"Nicklaus Jim Wagner Sean Quinn","L":"Hue ","U":"Vietnam","C":"Flagstick Martin Moore GCCM","J":"New 36","S":"Open","B":"","H":"","Y":"2024-08-20","Z":"Cadsult IDS Jeff Stamper Jebsen Jessen Toro Lynx","M":"John Carson Heath Glasby "},
+{"G":"Eschuri Vung Bau ","A":"IMG Steven McFarlane Paul Burley","L":"Phu Quoc ","U":"Vietnam","C":"Steven Halliwell Tom Addis Ferdi Castro","J":"New","S":"Open","B":"","H":"","Y":"2024-04-09","Z":"David Longstaff Irrigation Toro","M":"Outfield Asia Nursery "},
+{"G":"Bois d’Arlon Heath ","A":"Stuart Hallett","L":"Arlon ","U":"Belgium","C":"GolfLink Evolve","J":"New","S":"Open","B":"","H":"","Y":"2024-03-01","Z":"","M":"Rain Bird "},
+{"G":"OKOL Lake Park ","A":"Hiseman EGC","L":"Sofia ","U":"Bulgaria","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-04-14","Z":"","M":"IMG Prestige "},
+{"G":"Heipark Tosovice ","A":"Jonathan Davison","L":"Odry ","U":"Czech","C":"HB Golf Chris Horn","J":"New","S":"Open","B":"","H":"","Y":"2024-06-07","Z":"HB golf","M":"27 holes "},
+{"G":"Karolinka Golf Park ","A":"Lukasz Szadny Gregor Macinkow","L":"Opole ","U":"Poland","C":"All Golf Services","J":"New 9","S":"Open","B":"","H":"","Y":"2024-07-25","Z":"Semillas Fito","M":""},
+{"G":"Pinheirinho ","A":"Jorge Santana da Silva","L":"Lisbon ","U":"Portugal","C":"Joao Oliveira","J":"New","S":"Open","B":"","H":"","Y":"2024-10-05","Z":"","M":"Dunes Golf "},
+{"G":"National G & CC ","A":"Marco Martin","L":"Bucharest ","U":"Romania","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-06-20","Z":"","M":""},
+{"G":"La Finca Los Lagos ","A":"Stirling Martin","L":"Murcia ","U":"Spain","C":"GTM Golf","J":"New","S":"Open","B":"","H":"","Y":"2024-06-24","Z":"Samuel Ramírez Calvo","M":""},
+{"G":"Viveiro Golf Resort ","A":"De Simone Bani","L":"Sal Island ","U":"Spain","C":"Ideal Prati","J":"New","S":"Open","B":"","H":"","Y":"2024-03-02","Z":"Cabo Verde","M":" "},
+{"G":"The Inspiration ","A":"Tom Mackenzie Nigel Ely","L":"London ","U":"England","C":"Llewelyn Matthews","J":"New","S":"Open","B":"","H":"","Y":"2024-05-29","Z":"","M":"EcoBunker "},
+{"G":"Zapotal Beach Club ","A":"Tom Fazio","L":"Guanacaste ","U":"Costa Rica","C":"Discovery Land","J":"New","S":"Construction","B":"","H":"","Y":"2024-11-10","Z":"East Valley Irrigation EVI","M":"Bunker Solution "},
+{"G":"Lakewood Golf Resort ","A":"Darcy Carruthers","L":"Alberta ","U":"Canada","C":"","J":"New","S":"Open","B":"","H":"Sid Puddicombe","Y":"2024-05-11","Z":"New 9","M":""},
+{"G":"Crimson Reserve ","A":"Love Sherman","L":"Alabama ","U":"USA","C":"Wadsworth","J":"New 10","S":"Open","B":"$9M","H":"","Y":"2024-10-20","Z":"","M":"CGCS "},
+{"G":"Cabot Citrus ","A":"Kyle Franz Mike Nuzzo Rod Whitman Ran Morrissett","L":"Florida ","U":"USA","C":"Greenscape Methods","J":"New 56","S":"Open","B":"$35M","H":"","Y":"2024-12-23","Z":"","M":"Cowan Dewar "},
+{"G":"Kinsale ","A":"Hanse Wagner","L":"Florida ","U":"USA","C":"Total Turf","J":"New","S":"Open","B":"","H":"","Y":"2024-12-04","Z":"Soave","M":"Template Holes "},
+{"G":"Soleta GC ","A":"Nick Price Dean Bedwell","L":"Florida ","U":"USA","C":"Heritage Links","J":"New","S":"Open","B":"$20M","H":"","Y":"2024-12-11","Z":"","M":"David Leadbetter "},
+{"G":"The Apogee Club South ","A":"Tommy Fazio II Mike Davis","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-11-16","Z":"Rain Bird IC","M":"Irrigation Aqua Turf International "},
+{"G":"Webbs Reserve GC ","A":"Nicklaus Design Chris Cochran","L":"Florida ","U":"USA","C":"","J":"New","S":"Open","B":"","H":"","Y":"2024-11-23","Z":"","M":""},
+{"G":"Fall Line East ","A":"Oglivy Cocking Mead","L":"Georgia ","U":"USA","C":"Heritage Links","J":"New 36","S":"Open","B":"","H":"","Y":"2024-03-05","Z":"","M":""},
+{"G":"Fall Line West ","A":"Oglivy Cocking Mead","L":"Georgia ","U":"USA","C":"Heritage Links","J":"New 36","S":"Open","B":"","H":"","Y":"2024-10-08","Z":"","M":""},
+{"G":"McLemore The Keep ","A":"Bill Bergin Steve Weisser","L":"Georgia ","U":"USA","C":"Southeastern Golf Brian Smith","J":"New","S":"Open","B":"","H":"Rees Jones","Y":"2024-11-15","Z":"","M":"Super Moose Shaping "},
+{"G":"Reynolds Lake Oconee Richland ","A":"Tom Fazio","L":"Georgia ","U":"USA","C":"Medalist Golf","J":"New 9","S":"Open","B":"$20M","H":"","Y":"2024-10-24","Z":"","M":"Routing "},
+{"G":"Estate course ","A":"","L":"Montana ","U":"USA","C":"Carey Hofner","J":"New 6","S":"Open","B":"","H":"","Y":"2024-09-07","Z":"","M":""},
+{"G":"GrayBull ","A":"David Kidd","L":"Nebraska ","U":"USA","C":"Elliot Tagliapietra","J":"New","S":"Open","B":"","H":"","Y":"2024-08-15","Z":"Koontz Jones Design","M":""},
+{"G":"Pinehurst X ","A":"Tom Doak Angela Moser","L":"North Carolina ","U":"USA","C":"LGR LaBar","J":"New","S":"Open","B":"","H":"","Y":"2024-04-03","Z":"Sandmines","M":"Number 10 "},
+{"G":"Broomsedge ","A":"Mike Koprowski Kyle Franz","L":"South Carolina ","U":"USA","C":"Oliphant Joe Hancock ","J":"New","S":"Open","B":"","H":"","Y":"2024-11-14","Z":"","M":"Mazzella "},
+{"G":"Palmetto Bluff Crossroads ","A":"Tad King Rob Collins","L":"South Carolina ","U":"USA","C":"Paul Mentikov","J":"New 9","S":"Open","B":"","H":"","Y":"2024-01-17","Z":"Reversible 9","M":"NorthBridge Bermuda "},
+{"G":"Golf Club Tennessee Upper ","A":"Hanse Wagner","L":"Tennessee ","U":"USA","C":"Heritage Links Doug Wright","J":"New","S":"Open","B":"","H":"","Y":"2024-10-30","Z":"Leibold Irrigation A.S. Altum","M":"Tahoma 31 bermuda "},
+{"G":"Childress Hall 1 ","A":"Tom Doak","L":"Texas ","U":"USA","C":"Heritage Links Eric Greytok","J":"New","S":"Open","B":"","H":"","Y":"2024-12-10","Z":"Bert Guy","M":""},
+{"G":"Darmor Club ","A":"Hal Sutton Doug Wright","L":"Texas ","U":"USA","C":"Heritage Links Lucas Beasley","J":"New","S":"Open","B":"","H":"","Y":"2024-09-12","Z":"Eden","M":"Reverse Redan "},
+{"G":"University Mary Hardin Baylor ","A":"Bill Coore Ben Crenshaw","L":"Texas ","U":"USA","C":"","J":"New 4","S":"Open","B":"","H":"","Y":"2025-01-15","Z":"Crusader GC","M":""},
+{"G":"Wasatch Peaks Ranch ","A":"Tom Fazio Ron Smith","L":"Utah ","U":"USA","C":"Integrity Golf","J":"New","S":"Open","B":"","H":"","Y":"2025-01-15","Z":"","M":""},
+{"G":"Sedge Valley ","A":"Tom Doak","L":"Wisconsin ","U":"USA","C":"Joe Wandro Oliphant","J":"New","S":"Open","B":"","H":"","Y":"2024-06-21","Z":"","M":"Heathland "},
+{"G":"Durban CC ","A":"Robert McLean","L":"Durban ","U":"South Africa","C":"Golf Data","J":"Restore","S":"Open","B":"$2M","H":"","Y":"2024-03-04","Z":"Rebuild all greens","M":"Flood "},
+{"G":"Empire Golf CC ","A":"","L":"Brunei ","U":"Brunei","C":"Green Dynasty Martin Stanbury","J":"Renovate","S":"Open","B":"","H":"Nicklaus","Y":"2024-03-04","Z":"Centaur Asia Pacific Sports Turf Solutions","M":""},
+{"G":"Finest Guam Golf ","A":"Johei Miyazawa","L":"Yigo ","U":"Guam","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-01","Z":"","M":"Goldwater Pacific "},
+{"G":"Arvind Greatlands ","A":"Vijit Nandrajog","L":"Bangalore ","U":"India","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2024-01-13","Z":"","M":"Executive Course "},
+{"G":"Chandigarh ","A":"Golf Design India","L":"Chandigarh ","U":"India","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-01","Z":"","M":"Hole 9 "},
+{"G":"Leela Ambience ","A":"Vijit Nandrajog","L":"Gurgaon ","U":"India","C":"","J":"Renovate","S":"Construction","B":"","H":"Nelson Haworth","Y":"2024-09-04","Z":"","M":""},
+{"G":"Karma Lakelands ","A":"Vijit Nandrajog","L":"Haryana ","U":"India","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2024-10-29","Z":"","M":""},
+{"G":"Rambagh ","A":"Vijit Nandrajog","L":"Jaipur ","U":"India","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2024-03-12","Z":"","M":""},
+{"G":"Trump International Lido ","A":"Ernie Els Greg Letsche","L":"Bogor ","U":"Indonesia","C":"Peter Waddell","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2024-07-23","Z":"Dustin Jennings GolfCon Asia","M":""},
+{"G":"Kasugai East ","A":"David Dale GolfPlan","L":"Aichi ","U":"Japan","C":"Kevin Ramsey Adam Kelland","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-08-20","Z":"Rain Bird","M":""},
+{"G":"Classic Club ","A":"Ben Warren","L":"Fukuoka ","U":"Japan","C":"Kurtis Lavis Eamon Sullivan Quinn Thompson","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-29","Z":"Daisuke Tanimizu","M":"Zoysia "},
+{"G":"Karuizawa GC ","A":"Bryce Swanson Rees Jones","L":"Nagano ","U":"Japan","C":"Hiromi Yanagisawa Inaji Landscape","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-29","Z":"","M":""},
+{"G":"Shigaraki CC Tashiro ","A":"Lee Schmidt","L":"Shiga ","U":"Japan","C":"","J":"Renovate","S":"Open","B":"","H":"Keiji Matsuyama","Y":"2024-08-20","Z":"","M":""},
+{"G":"Shimonoseki GC ","A":"Ben Warren","L":"Yamaguchi ","U":"Japan","C":"","J":"Renovate","S":"Open","B":"","H":"Osamu Ueda","Y":"2024-03-29","Z":"","M":"MiniVerde Bermuda "},
+{"G":"Mount Malarayat G&CC ","A":"","L":"Batangas ","U":"Philippines","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-27","Z":"Lynkz Zoysia","M":""},
+{"G":"Mimosa Plus GC ","A":"Brett Mogg Neil Haworth","L":"Clark ","U":"Philippines","C":"Netforce","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-15","Z":"","M":""},
+{"G":"Sta. Elena ","A":"","L":"Laguna ","U":"Philippines","C":"Pacific Links Tim Walker","J":"Renovate","S":"Open","B":"","H":"RTJ Jr.","Y":"2024-10-29","Z":"TifEagle","M":""},
+{"G":"Al Badia ","A":"RTJ Jr. Mike Gorman","L":"Dubai ","U":"UAE","C":"Turfgrass Consultancy Craig Hanney John Clarkin","J":"Short","S":"Open","B":"","H":"","Y":"2024-09-04","Z":"Reversible","M":"Template Greens "},
+{"G":"Montgomerie Dubai ","A":"Gary Johnston","L":"Dubai ","U":"UAE","C":"Jordan Fairweather","J":"Short","S":"Open","B":"","H":"","Y":"2024-02-11","Z":"","M":"EGD "},
+{"G":"Barham ","A":"Chambers","L":"NSW ","U":"Australia","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-08-21","Z":"Back 9","M":""},
+{"G":"St. Michael's ","A":"Ben Chambers Kevin Atkinson","L":"NSW ","U":"Australia","C":"Golf Shapes","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-07-26","Z":"","M":"centreline "},
+{"G":"Hervey Bay GC ","A":"Richard Chamberlain","L":"Queensland ","U":"Australia","C":"Centaur Asia Pacific","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-01-26","Z":"Capillary Concrete","M":" "},
+{"G":"Barwon Heads ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-12-09","Z":"","M":""},
+{"G":"Burnley GC ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","C":"SJM Turf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-09","Z":"","M":"craftermogford "},
+{"G":"Commonwealth ","A":"Brian Slawnik Paul Mogford","L":"Victoria ","U":"Australia","C":"McMahons Harley Kruse","J":"Restore","S":"Open","B":"$4M","H":"Bennett Lane","Y":"2025-01-19","Z":"","M":"11th green "},
+{"G":"The National Long Island ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-12-26","Z":"","M":"Cape Schank "},
+{"G":"Vines Resort ","A":"","L":"Perth ","U":"Australia","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-01-26","Z":"","M":""},
+{"G":"Schloss Pichlarn ","A":"Olazabal Anton Ortner Snorri Vilhjalmsson","L":"Styria ","U":"Austria","C":"TAS Carlos Arroyal","J":"Renovate","S":"Open","B":"$2M","H":"","Y":"2024-10-26","Z":"Irriplan Giles Wardle","M":" "},
+{"G":"Sylt GC ","A":"Rolf-Stephan Hansen Thomas Himmel","L":"Sylt ","U":"Germany","C":"Josef Pötter Darryl Spelman","J":"Redesign","S":"Open","B":"","H":"","Y":"2024-05-14","Z":"","M":"GCA Magazine "},
+{"G":"GC Bergisch Land ","A":"CDP Hendrik Hilgert","L":"Westphalia ","U":"Germany","C":"SBA Lowie Bussemakers","J":"Masterplan","S":"Open","B":"","H":"Colt Morrison","Y":"2024-11-15","Z":"Bunkers","M":""},
+{"G":"Bakkakot ","A":"TrueLinks","L":"Iceland ","U":"Iceland","C":"","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2024-06-11","Z":"","M":"TrueLinks "},
+{"G":"Grand Ducal ","A":"","L":"Luxembourg ","U":"Luxembourg","C":"TAS Alejandro Reyes","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-09-17","Z":"Rain Bird Luis Doncel","M":"Ecosol Turfcare Imaginieur "},
+{"G":"Infinitum Lakes ","A":"Greg Norman","L":"Barcelona ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"$1M","H":"","Y":"2024-09-10","Z":"","M":""},
+{"G":"Real Las Palmas ","A":"David Williams","L":"Las Palmas ","U":"Spain","C":"SURTEC Golf Agronomy","J":"Renovate","S":"Open","B":"","H":"Mackenzie Ross","Y":"2024-10-11","Z":"Bandama","M":""},
+{"G":"Salobre Golf Resort Old ","A":"David Williams","L":"Las Palmas ","U":"Spain","C":"SURTEC Golf Agronomy","J":"Masterplan","S":"Open","B":"","H":"Favré Kirby","Y":"2024-10-11","Z":"Water management","M":""},
+{"G":"Lauro Golf Resort ","A":"","L":"Malaga ","U":"Spain","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-09-01","Z":"Rain Bird","M":""},
+{"G":"Österlen ","A":"Johan Benestam","L":"Helsingborg ","U":"Sweden","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-03-31","Z":"Lilla Vik Djupadals","M":"Johan Benestam "},
+{"G":"Lausanne GC ","A":"Russell Talley","L":"Lausanne ","U":"Switzerland","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-18","Z":"Bunkers","M":""},
+{"G":"Trevose ","A":"Tom Mackenzie","L":"Cornwall ","U":"England","C":"Mark Awbery Titan Landscape","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-04-29","Z":"","M":""},
+{"G":"Cirencester GC ","A":"Giulia Ferroni","L":"Cotswolds ","U":"England","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-04-29","Z":"10 year masterplan","M":""},
+{"G":"Matlock GC ","A":"Steve Marnoch","L":"Derbyshire ","U":"England","C":"Lakeland Earthworks","J":"Renovate","S":"Open","B":"","H":"Tom Williamson","Y":"2024-05-30","Z":"Whitemoss Eco","M":""},
+{"G":"Stover GC ","A":"Simon Gidman","L":"Devon ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"James Braid","Y":"2024-06-23","Z":"","M":"Profusion Environmental’s Blinder "},
+{"G":"Isle of Purbeck ","A":"Lobb Langheim","L":"Dorset ","U":"England","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-02","Z":"VGR Topchanger","M":"Heathland "},
+{"G":"Basingstoke ","A":"Bruce Weller","L":"Hampshire ","U":"England","C":"CJW Golf Eric Olsen","J":"Renovate","S":"Open","B":"$21M","H":"Alliss Clark","Y":"2024-10-17","Z":"Rain Bird","M":"Irrigation Ocmis Irritech Roger Davey "},
+{"G":"East Brighton ","A":"James Edwards EDI","L":"Hampshire ","U":"England","C":"P Quinn","J":"Renovate","S":"Open","B":"","H":"Braid","Y":"2024-11-05","Z":"","M":"Bunkers "},
+{"G":"Pleasington GC ","A":"Ken Moodie","L":"Lancashire ","U":"England","C":"","J":"Masterplan","S":"Open","B":"$1.3M","H":"","Y":"2024-10-01","Z":"","M":""},
+{"G":"Hadley Wood ","A":"Clyde Johnson","L":"London ","U":"England","C":"Brett Hochstein Profusion Environmental","J":"Renovate","S":"Open","B":"","H":"MacKenzie","Y":"2024-09-13","Z":"","M":""},
+{"G":"Royal Wimbledon ","A":"Tom Mackenzie Martin Ebert","L":"London ","U":"England","C":"MJ Abbott","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-07-19","Z":"","M":"EcoBunker "},
+{"G":"Ingestre Park ","A":"Jon Hunt","L":"Stafford ","U":"England","C":"MJ Abbott","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-02-24","Z":"Phil James","M":"IDG 13 new holes "},
+{"G":"Drift Golf Club ","A":"Dave Sampson","L":"Surrey ","U":"England","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-07-22","Z":"","M":"EGD "},
+{"G":"The Addington ","A":"CDP Clayton DeVries Pont","L":"Surrey ","U":"England","C":"CJW Conor Walsh","J":"Restore","S":"Open","B":"","H":"Abercromby Colt","Y":"2024-05-15","Z":"Finish Golf David Hewitt John Kidson Irrigation","M":"12th Hole "},
+{"G":"Walton Heath New ","A":"Martin Ebert","L":"Surrey ","U":"England","C":"CJW Conor Walsh","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-04-30","Z":"","M":"Greens "},
+{"G":"Wisley Garden ","A":"James Edwards EDI RTJ II","L":"Surrey ","U":"England","C":"MJ Abbott Bob Harrington","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-28","Z":"Irrigation Adrian Mortram Inscapes","M":"GEO Turf "},
+{"G":"Denham ","A":"Clyde Johnson","L":"Uxbridge ","U":"England","C":"","J":"Masterplan","S":"Open","B":"","H":"Harry Colt","Y":"2024-03-23","Z":"","M":"Bunkers "},
+{"G":"Cowdray ","A":"William Swan","L":"West Sussex ","U":"England","C":"Profusion Environmental Simon Bolton","J":"Renovate","S":"Open","B":"","H":"Tom Simpson","Y":"2024-06-29","Z":"","M":"5 Hole Short Course "},
+{"G":"Grange GC Love ","A":"Paul McGinley Joe Bedford","L":"Dublin ","U":"Ireland","C":"","J":"Masterplan","S":"Open","B":"$1M","H":"James Braid","Y":"2024-06-12","Z":"","M":""},
+{"G":"Ballybunion Cashen ","A":"Graeme Webster","L":"Kerry ","U":"Ireland","C":"","J":"Renovate","S":"Open","B":"","H":"RTJ","Y":"2024-06-12","Z":"","M":"Tom Watson "},
+{"G":"Ballyneety ","A":"Ken Kearney","L":"Limerick ","U":"Ireland","C":"Atlantic Golf Construction","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-05","Z":"","M":""},
+{"G":"Limerick GC ","A":"Ken Kearney","L":"Limerick ","U":"Ireland","C":"Atlantic Golf Construction","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-05","Z":"","M":"Mike Kemmy "},
+{"G":"Tullamore ","A":"Ken Kearney","L":"Offaly ","U":"Ireland","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-24","Z":"","M":""},
+{"G":"Carnoustie ","A":"","L":"Angus ","U":"Scotland","C":"MJ Abbott Steven Sutherland","J":"Irrigation","S":"Open","B":"","H":"","Y":"2024-09-17","Z":"Rain Bird CirrusPRO","M":"John Deere "},
+{"G":"Baberton GC ","A":"Jeffrey Danner Stuart Rennie","L":"East Lothian ","U":"Scotland","C":"Greentech Sportsturf","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-05","Z":"","M":"18th green "},
+{"G":"CUBA Fatima ","A":"","L":"Buenos Aires ","U":"Argentina","C":"Caprile Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-10-22","Z":"","M":"caprilegolf "},
+{"G":"Apes Hill ","A":"Ron Kirby Justin Carlton","L":"Barbados ","U":"Barbados","C":"Narly","J":"Short","S":"Construction","B":"","H":"","Y":"2024-07-03","Z":"","M":""},
+{"G":"Santa Domingo CC ","A":"","L":"Santa Domingo ","U":"Dominican Republic","C":"Total Golf Construction","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-07-26","Z":"","M":""},
+{"G":"Palmilla Reserve ","A":"Agustín Pizá","L":"Baja ","U":"Mexico","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2024-02-24","Z":"","M":"pizagolf "},
+{"G":"Cabo del Sol ","A":"Dana Fry Jason Straka","L":"Cabo ","U":"Mexico","C":"Hathaway","J":"Renovate 36","S":"Open","B":"$15M","H":"Tom Weiskopf","Y":"2024-07-06","Z":"Desert Cove","M":"mathewhathawaygolf "},
+{"G":"Playa Mujeres ","A":"Greg Norman Tom Landaverde","L":"Cancun ","U":"Mexico","C":"Wallgrow International","J":"Short","S":"Open","B":"","H":"","Y":"2024-12-22","Z":"Rain Bird","M":""},
+{"G":"Campestre Leon ","A":"Alarcon Morrish","L":"Guanajuato ","U":"Mexico","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-01","Z":"","M":"rafaelalarcongolf "},
+{"G":"Edmonton CC ","A":"Ian Andrew","L":"Alberta ","U":"Canada","C":"","J":"Restore","S":"Open","B":"","H":"Stanley Thompson","Y":"2023-12-13","Z":"","M":"Plans "},
+{"G":"Silver Spring G&CC ","A":"Gary Browning","L":"Alberta ","U":"Canada","C":"","J":"Masterplan","S":"Open","B":"$6M","H":"Dick Phelps","Y":"2024-09-12","Z":"","M":""},
+{"G":"Redwoods ","A":"Ted Locke","L":"BC ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"Locke","Y":"2024-06-20","Z":"Routing change","M":""},
+{"G":"Northumberland Links ","A":"Christine Fraser","L":"Nova Scotia ","U":"Canada","C":"In house John Mills","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-25","Z":"","M":"13th hole "},
+{"G":"Bay of Quinte ","A":"Graham Cooke","L":"Ontario ","U":"Canada","C":"Corey Black Northern Golf Design","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-03","Z":"","M":""},
+{"G":"Cutten Fields ","A":"Jeff Mingay","L":"Ontario ","U":"Canada","C":"Mark Hughes Jamie Laird","J":"Restore","S":"Open","B":"","H":"Chick Evans","Y":"2024-06-15","Z":"","M":"Chick Evans "},
+{"G":"Lookout Point ","A":"Ian Andrew","L":"Ontario ","U":"Canada","C":"","J":"Masterplan","S":"Open","B":"","H":"Walter Travis","Y":"2024-10-19","Z":"","M":""},
+{"G":"TPC Toronto Osprey Valley ","A":"Ian Andrew","L":"Ontario ","U":"Canada","C":"","J":"Renovate","S":"Open","B":"","H":"Doug Carrick","Y":"2024-04-20","Z":"North course","M":"Golf Canada "},
+{"G":"DC Ranch ","A":"Tom Lehman","L":"Arizona ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"John Fought","Y":"2024-02-02","Z":"","M":"Drainage "},
+{"G":"Desert Mountain Cochise ","A":"Nicklaus Design","L":"Arizona ","U":"USA","C":"Wadsworth","J":"Restore","S":"Open","B":"","H":"Nicklaus Steve Crotty","Y":"2024-09-11","Z":"","M":"Chad Goetz "},
+{"G":"Foothills GC ","A":"","L":"Arizona ","U":"USA","C":"Troon","J":"Renovate","S":"Open","B":"","H":"Weiskopf Morrish","Y":"2024-12-11","Z":"","M":""},
+{"G":"Mesa CC ","A":"Andy Staples","L":"Arizona ","U":"USA","C":"Total Turf Desert Reflections","J":"Renovate","S":"Open","B":"$10M","H":"Billy Bell Jr.","Y":"2024-12-21","Z":"Tim Cloninger Irrigation","M":"Hole Demolition "},
+{"G":"Pine Canyon ","A":"","L":"Arizona ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Construction","B":"$6.4M","H":"Jay Morrish","Y":"2024-09-17","Z":"Michael Kuhn","M":""},
+{"G":"Saddlebrooke Mountain View ","A":"Mike Gogel","L":"Arizona ","U":"USA","C":"Desert Reflections Steve Robison","J":"Renovate","S":"Open","B":"$6M","H":"Gary Panks","Y":"2024-09-05","Z":"Irrigation Marvin Mills","M":"Capillary Concrete "},
+{"G":"Seven Canyons ","A":"Phil Smith","L":"Arizona ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"Tom Weiskopf","Y":"2024-03-01","Z":"","M":""},
+{"G":"Arroyo Trabuco ","A":"Casey O'Callaghan Scott Clem","L":"California ","U":"USA","C":"Southwest Growers & Landscaping","J":"Renovate","S":"Open","B":"","H":"Tom Lehman","Y":"2024-09-22","Z":"","M":"Michael Block "},
+{"G":"Desert Willow Firecliff ","A":"Michael Hurdzan","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-09-26","Z":"MiniVerde Bermuda","M":""},
+{"G":"Diamond Bar ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"HDR American Landscape","J":"Renovate","S":"Open","B":"$23M","H":"Billy Bell Jr.","Y":"2024-04-21","Z":"","M":""},
+{"G":"Golden Gate ","A":"Jay Blasi","L":"California ","U":"USA","C":"Brett Hochstein Robert Nelson Josh Lewis","J":"Renovate","S":"Open","B":"$2.5M","H":"Jack Fleming","Y":"2024-02-16","Z":"","M":"Justin Carlton "},
+{"G":"La Costa Champions ","A":"Hanse Wagner","L":"California ","U":"USA","C":"Total Turf","J":"Rebuild ","S":"Open","B":"","H":"Dick Wilson","Y":"2024-05-01","Z":"","M":"Omni Golf "},
+{"G":"Montebello ","A":"Rick Smith","L":"California ","U":"USA","C":"","J":"Reduce 9","S":"Open","B":"$16M","H":"Behr Bell","Y":"2024-05-05","Z":"Topgolf","M":"Dirt Golf "},
+{"G":"North Ranch CC ","A":"Jackson Kahn","L":"California ","U":"USA","C":"Landscapes Unlimited Larry Barefield","J":"Renovate","S":"Open","B":"","H":"Ted Robinson","Y":"2024-11-01","Z":"Capillary Flow","M":"GCA "},
+{"G":"Northwood ","A":"William Carlson","L":"California ","U":"USA","C":"","J":"Restore","S":"Open","B":"$5K","H":"Alister MacKenzie","Y":"2024-07-20","Z":"6th hole bunker","M":""},
+{"G":"O’Donnell GC ","A":"","L":"California ","U":"USA","C":"","J":"Regrass","S":"Open","B":"","H":"","Y":"2025-03-12","Z":"Dr. Baird’s Coachella Bermuda","M":"MiniVerde Greens "},
+{"G":"PGA West Stadium ","A":"Tim Liddy","L":"California ","U":"USA","C":"LaBar","J":"Restore","S":"Open","B":"","H":"Pete Dye","Y":"2024-09-22","Z":"Michael O'Connor Irrigation Brent Harvey","M":""},
+{"G":"Quarry La Quinta ","A":"Kevin Sutherland","L":"California ","U":"USA","C":"LaBar Oscar Lazaro","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Y":"2024-09-22","Z":"","M":""},
+{"G":"Rams Hill ","A":"Tim Jackson","L":"California ","U":"USA","C":"Integrity Golf","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Y":"2024-09-22","Z":"TifTuf Bermuda","M":"Water Conservation "},
+{"G":"Rancho La Quinta ","A":"","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Regrass","S":"Open","B":"","H":"Jerry Pate","Y":"2024-11-12","Z":"TifTuf Bermuda","M":"GreenScan MiniVerde "},
+{"G":"River Island CC ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"United GLI Tony Cunzio","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-22","Z":"Chris Mitchell Irrigation","M":""},
+{"G":"Riviera CC ","A":"Tom Fazio","L":"California ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"","H":"George Thomas","Y":"2024-10-29","Z":"4th green","M":""},
+{"G":"San Juan Oaks ","A":"Gene Bates","L":"California ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Kipp Schulties","Y":"2024-03-04","Z":"","M":""},
+{"G":"Sharon Heights ","A":"Todd Eckenrode","L":"California ","U":"USA","C":"Total Turf","J":"Renovate","S":"Open","B":"$23M","H":"Jack Fleming","Y":"2024-10-31","Z":"Sierra Club","M":"Progress Update "},
+{"G":"Skylinks GC ","A":"","L":"California ","U":"USA","C":"","J":"Stormflow","S":"Open","B":"","H":"","Y":"2024-10-31","Z":"Tetra Tech","M":""},
+{"G":"The Lakes CC ","A":"Casey O'Callaghan","L":"California ","U":"USA","C":"Integrity Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-23","Z":"","M":"MiniVerde "},
+{"G":"Triology La Quinta ","A":"Gary Brawley","L":"California ","U":"USA","C":"BlueStar Resorts","J":"Restore","S":"Open","B":"$8M","H":"Gary Panks","Y":"2024-12-16","Z":"Coral Mountain","M":"HOA "},
+{"G":"Valencia CC ","A":"Jason Straka","L":"California ","U":"USA","C":"Arcis","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-06","Z":"","M":""},
+{"G":"Woodcreek GC ","A":"Kevin Norby","L":"California ","U":"USA","C":"Landscapes Unlimited","J":"Masterplan","S":"Open","B":"$1M","H":"","Y":"2024-11-20","Z":"Bunkers","M":"PorousPave "},
+{"G":"Copper Creek ","A":"Dye Designs Matt McGarey","L":"Colorado ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Perry Dye","Y":"2024-08-12","Z":"","M":"GCA "},
+{"G":"Patty Jewett GC ","A":"Richard Phelps","L":"Colorado ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"$3M","H":"","Y":"2024-12-20","Z":"Irrigation","M":""},
+{"G":"Fairchild Wheeler GC ","A":"Mark Mungeam","L":"Connecticut ","U":"USA","C":"Turco","J":"Renovate","S":"Open","B":"$6.5M","H":"","Y":"2025-03-27","Z":"Watershed Rooster River","M":""},
+{"G":"Mohegan Sun ","A":"Ron Garl","L":"Connecticut ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Cornish","Y":"2024-03-11","Z":"Soften Greens","M":"Fairway bunker "},
+{"G":"New Haven CC ","A":"Brian Schneider","L":"Connecticut ","U":"USA","C":"McDonald Sons","J":"Restore","S":"Open","B":"","H":"Willie Park","Y":"2024-10-21","Z":"","M":"bh.golfphoto "},
+{"G":"Sharon CC ","A":"Matthew Dusenberry","L":"Connecticut ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"","Y":"2024-06-02","Z":"","M":"Bunkers "},
+{"G":"Tamarack CC ","A":"Brian Schneider","L":"Connecticut ","U":"USA","C":"LGR LaBar","J":"Restore","S":"Open","B":"","H":"Charles Banks","Y":"2024-06-01","Z":"","M":"Seth Raynor Society "},
+{"G":"Wethersfield ","A":"Bruce Hepner","L":"Connecticut ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"$0.8M","H":"Robert Pryde","Y":"2023-10-19","Z":"","M":""},
+{"G":"Southern Delaware ","A":"","L":"Delaware ","U":"USA","C":"Bill Kupfer","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-05-10","Z":"","M":""},
+{"G":"Addison Reserve ","A":"Rees Jones Steve Weisser","L":"Florida ","U":"USA","C":"Total Turf Steve Crotty","J":"Renovate","S":"Open","B":"$24M","H":"Arthur Hills","Y":"2024-12-31","Z":"","M":"Pike Creek Turf "},
+{"G":"Babe Zaharias ","A":"","L":"Florida ","U":"USA","C":"","J":"Regrass","S":"Open","B":"$1M","H":"Ron Garl","Y":"2024-09-28","Z":"TifEagle Greens","M":""},
+{"G":"Bear's Club ","A":"Nicklaus","L":"Florida ","U":"USA","C":"LGR LaBar","J":"Renovate","S":"Open","B":"","H":"Nicklaus","Y":"2023-11-11","Z":"Calcutta P-18 Miniverde Greens","M":"Irrigation Toro 2 wire Infinity heads HDPE pipe "},
+{"G":"Black Diamond Ranch ","A":"Tripp Davis","L":"Florida ","U":"USA","C":"Golf Sculptors International Bobby Holmes","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Y":"2024-11-10","Z":"GTI Irrigation","M":""},
+{"G":"Boca Woods CC ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","C":"LGR LaBar","J":"Renovate","S":"Open","B":"$9M","H":"Joe Lee","Y":"2024-12-08","Z":"","M":""},
+{"G":"Bonita Bay Sabal ","A":"Tom Marzolf","L":"Florida ","U":"USA","C":"Close Golf","J":"Renovate","S":"Open","B":"$16.5M","H":"Tom Fazio","Y":"2024-11-10","Z":"","M":"Summer "},
+{"G":"Delray Dunes ","A":"Davis Love Scot Sherman","L":"Florida ","U":"USA","C":"MacCurrach Ron Hart","J":"Restore","S":"Open","B":"","H":"Pete Dye","Y":"2024-10-17","Z":"Rain Bird Cirrus","M":"Irrigation Aqua Turf Sean Hyduk "},
+{"G":"Dunedin GC ","A":"Kris Spence","L":"Florida ","U":"USA","C":"TDI Golf XGD","J":"Restore","S":"Open","B":"$6.3M","H":"Donald Ross","Y":"2024-11-22","Z":"Shaper Ron Hart","M":"KDC Irrigation "},
+{"G":"Dutchman's Pipe ","A":"Nicklaus","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Jack Nicklaus","Y":"2024-11-10","Z":"was Banyan Cay","M":""},
+{"G":"Eastpointe CC East ","A":"Dave Ferris John Sanford","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Tom Fazio","Y":"2025-02-02","Z":"","M":"West course "},
+{"G":"Floridian ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"Classic Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-29","Z":"Tif3D","M":""},
+{"G":"Forest Glen ","A":"Ron Forse","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$8.3M","H":"Arthur Hills Steve Forrest","Y":"2024-09-05","Z":"","M":"Masterplan Presentation "},
+{"G":"Fort Lauderdale ","A":"Ron Forse","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-29","Z":"Flood damage","M":""},
+{"G":"Gleneagles Victory ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$6.4M","H":"","Y":"2024-03-01","Z":"","M":"USGA Spec Greens "},
+{"G":"Great Outdoors GC ","A":"Dave Ferris John Sanford","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$2.8M","H":"","Y":"2024-12-29","Z":"Winterberry Irrigation","M":" "},
+{"G":"Hunters Run CC East ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"Buzz Jaskela Landscapes Architects","J":"Renovate","S":"Open","B":"$9.6M","H":"Von Hagge","Y":"2024-12-29","Z":"Country Club Services","M":"Toro Lynx Irrigation "},
+{"G":"Isleworth ","A":"Steve Smyers","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"Arnold Palmer","Y":"2024-01-07","Z":"Leibold Irrigation","M":""},
+{"G":"Jonathan's Landing Village ","A":"Beau Welling Scott Benson Amanda Barbee","L":"Florida ","U":"USA","C":"Hunter Rigsby","J":"Rebuild","S":"Open","B":"","H":"Tom Fazio Jan Bel Jan","Y":"2024-12-06","Z":"","M":""},
+{"G":"King & Bear ","A":"","L":"Florida ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"$2.5M","H":"","Y":"2024-09-20","Z":"TifEagle Greens","M":""},
+{"G":"Lemon Bay ","A":"Drew Rogers","L":"Florida ","U":"USA","C":"Leibold","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-11-16","Z":"","M":"New 8th hole "},
+{"G":"Meadowood Golf & Tennis ","A":"","L":"Florida ","U":"USA","C":"Golfirr","J":"Renovate","S":"Open","B":"$1.6M","H":"","Y":"2025-02-07","Z":"KPI Golf","M":""},
+{"G":"Moorings Hawk's Nest GC ","A":"","L":"Florida ","U":"USA","C":"Total Turf","J":"Renovate","S":"Construction","B":"","H":"Jim Fazio","Y":"2024-07-23","Z":"","M":""},
+{"G":"Palmetto Pine CC ","A":"Dave Ferris John Sanford","L":"Florida ","U":"USA","C":"Pete Mosley","J":"Renovate","S":"Open","B":"","H":"Arthur Hills","Y":"2023-06-04","Z":"","M":"Green Floor "},
+{"G":"Parkland G&CC ","A":"Greg Letsche","L":"Florida ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"Greg Norman","Y":"2024-02-18","Z":"Capillary Bunker","M":"Forward tees "},
+{"G":"PGA Golf Club Wanamaker ","A":"Tom Fazio","L":"Florida ","U":"USA","C":"Classic Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-04","Z":"","M":""},
+{"G":"Scenic Hills ","A":"Nathan Crace","L":"Florida ","U":"USA","C":"Sports Contractors Unlimited","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-24","Z":"","M":"Watermark Golf "},
+{"G":"Sebring International ","A":"In house ","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$0.3M","H":"","Y":"2024-10-12","Z":"12th fairway","M":""},
+{"G":"Stonebridge CC ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-02-09","Z":"Bermuda Regrass","M":""},
+{"G":"Suntree CC Classic ","A":"McCumber Golf","L":"Florida ","U":"USA","C":"Total Turf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-08-27","Z":"","M":"Hole 3 Redesign "},
+{"G":"Tara Golf & CC ","A":"Gordon Lewis","L":"Florida ","U":"USA","C":"Total Turf","J":"Renovate","S":"Open","B":"","H":"","Y":"2023-07-02","Z":"","M":"PGA Pro "},
+{"G":"Villages Shallow Creek ","A":"Ken Ezell","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-02","Z":"","M":"ASGCA "},
+{"G":"Vineyards North ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"QGS Construction","J":"Renovate","S":"Open","B":"","H":"Mark McCumber","Y":"2024-12-13","Z":"PM","M":"Recontour "},
+{"G":"Wakulla Sands ","A":"Dan Schlegel","L":"Florida ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$9M","H":"","Y":"2024-10-02","Z":"","M":"Effluent water "},
+{"G":"Willoughby ","A":"Arthur Hills","L":"Florida ","U":"USA","C":"","J":"Restore","S":"Construction","B":"$4.6M","H":"","Y":"2024-06-01","Z":"","M":""},
+{"G":"Wycliffe East ","A":"Kipp Schulties","L":"Florida ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$10M","H":"","Y":"2024-12-07","Z":"","M":"Green Construction "},
+{"G":"Augusta CC ","A":"Tripp Davis","L":"Georgia ","U":"USA","C":"Heritage Links Chris Zidanic","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2024-08-21","Z":"Fairway bunkers","M":"Tripp Davis "},
+{"G":"East Lake ","A":"Andrew Green","L":"Georgia ","U":"USA","C":"Total Turf Shellene Elmore","J":"Renovate","S":"Open","B":"$28M","H":"Donald Ross","Y":"2024-09-07","Z":"Scott Laughlin","M":"Historial Restoration "},
+{"G":"Creek Hard Labor GC ","A":"","L":"Georgia ","U":"USA","C":"Todd Godwin TGC Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-02","Z":"","M":""},
+{"G":"Idle Hour ","A":"Michael Riley","L":"Georgia ","U":"USA","C":"Green Tee Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-09-07","Z":"007XL","M":""},
+{"G":"Jekyll Island Pine Lakes ","A":"Troy Vincent","L":"Georgia ","U":"USA","C":"","J":"Renovate","S":"Construction","B":"$6M","H":"Clyde Johnston","Y":"2024-01-04","Z":"","M":""},
+{"G":"Mauna Kea ","A":"RTJ2 Bruce Charlton","L":"Hawaii ","U":"USA","C":"DHR Denis Trilla","J":"Renovate","S":"Open","B":"","H":"RTJ Sr.","Y":"2024-12-29","Z":"","M":"Water conservation "},
+{"G":"Pearl Kalauao ","A":"David Dale Kevin Ramsey GolfPlan","L":"Hawaii ","U":"USA","C":"Troon","J":"Renovate","S":"Open","B":"$4.6M","H":"Akira Sato","Y":"2024-12-01","Z":"","M":""},
+{"G":"Tamarack Osprey Meadows ","A":"RTJ2","L":"Idaho ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"RTJ2","Y":"2024-06-23","Z":"","M":""},
+{"G":"Canal Shores Evans ","A":"Todd Quitno","L":"Illinois ","U":"USA","C":"Wadsworth Doug Myslinski Matt Lohmann Mario Salas","J":"Renovate","S":"Open","B":"$5.9M","H":"Bendelow","Y":"2024-06-23","Z":"Josh Lesnik Chris Charnas","M":"Hydroseed "},
+{"G":"Cross Creek CC ","A":"Drew Rogers","L":"Illinois ","U":"USA","C":"Hollembeak","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-10-11","Z":"Better Billy Bunker","M":""},
+{"G":"Edgewood Valley ","A":"Craig Schreiner","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-19","Z":"Better Billy Bunker","M":""},
+{"G":"Idlewild CC ","A":"David Esler","L":"Illinois ","U":"USA","C":"Vintage Golf Construction","J":"Masterplan","S":"Open","B":"","H":"Langford Ross","Y":"2024-10-12","Z":"","M":"9th hole "},
+{"G":"LaGrange CC ","A":"Drew Rogers","L":"Illinois ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Langford Ross","Y":"2024-09-04","Z":"Leibold","M":"Joel Hornickel "},
+{"G":"Medinah #3 ","A":"Oglivy Cocking Mead","L":"Illinois ","U":"USA","C":"Jason McCarthy A.S. Altum","J":"Renovate","S":"Open","B":"$23M","H":"Bendelow","Y":"2024-09-01","Z":"PM Kevin Stieneke Leibold Irrigation","M":"Waupaca Sand "},
+{"G":"Urbana CC ","A":"Drew Rogers Joel Hornickel","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"Tom Bendelow","Y":"2024-06-18","Z":"","M":"Rain Bird "},
+{"G":"Winnetka Golf Club ","A":"Rick Jacobson","L":"Illinois ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-08-13","Z":"","M":"Continuous cart path "},
+{"G":"Meridian Hills CC ","A":"Jim Nagle Ron Forse","L":"Indiana ","U":"USA","C":"Landscapes Unlimited MKA Consultants","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-05-07","Z":"Irrigation Michael Kuhn","M":""},
+{"G":"Otter Creek ","A":"Tom Kite","L":"Indiana ","U":"USA","C":"Billy Fuller","J":"Renovate","S":"Open","B":"","H":"RTJ Sr.","Y":"2024-04-12","Z":"","M":""},
+{"G":"Cedar Rapids CC ","A":"Ron Prichard","L":"Iowa ","U":"USA","C":"XGD TDI Shaper Ron Hart","J":"Renovate","S":"Open","B":"$1.8M","H":"Donald Ross","Y":"2025-02-10","Z":"Vaughn Halyard","M":"Tommy Feller "},
+{"G":"Legacy 19 Mason City ","A":"Kevin Norby","L":"Iowa ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"Tom Bendelow","Y":"2024-10-31","Z":"John Daly","M":"Improvements "},
+{"G":"Legacy Club ","A":"Kevin Norby","L":"Iowa ","U":"USA","C":"Duininck","J":"Rebuild","S":"Open","B":"","H":"Tom Bendelow","Y":"2024-07-27","Z":"","M":"T1/Alpha greens "},
+{"G":"Tournament Club Iowa ","A":"Erik Larsen Golf","L":"Iowa ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1M","H":"Arnold Palmer","Y":"2024-07-27","Z":"","M":""},
+{"G":"Wakonda ","A":"Rae Ryan","L":"Iowa ","U":"USA","C":"Wadsworth","J":"Restore","S":"Open","B":"$8M","H":"Langford Moreau","Y":"2024-05-12","Z":"Tree removal","M":"Aaron Krueger "},
+{"G":"Prairie Dunes ","A":"Dave Axland Keith Cutten","L":"Kansas ","U":"USA","C":"Landscapes Unlimited","J":"Irrigation","S":"Open","B":"","H":"Maxwell","Y":"2024-10-22","Z":"Brian Keighin Irrigation Technologies","M":"Short game area "},
+{"G":"Boone County ","A":"Bill Boswell","L":"Kentucky ","U":"USA","C":"Topp Shape","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-01","Z":"","M":""},
+{"G":"Park Mammoth ","A":"Brian Ross Jeff Stein","L":"Kentucky ","U":"USA","C":"DWS Construction Kirk Spieth","J":"Short","S":"Open","B":"","H":"","Y":"2024-10-22","Z":"Ian Williams Green Irrigation Solutions","M":"777 Bentgrass "},
+{"G":"Stonecrest ","A":"Brian Ross","L":"Kentucky ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$1M","H":"","Y":"2023-09-23","Z":"","M":"GCSAA "},
+{"G":"Chateau Golf & CC ","A":"Nathan Crace","L":"Louisiana ","U":"USA","C":"Forefront Construction","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-27","Z":"","M":""},
+{"G":"Caves Valley ","A":"Tom Fazio","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-27","Z":"Buddy Marucci","M":"PGA Tour "},
+{"G":"Chesapeake Bay GC ","A":"","L":"Maryland ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-07-27","Z":"Bunkers","M":""},
+{"G":"Hayfields CC ","A":"Joel Weiman","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Ault","Y":"2024-06-19","Z":"","M":""},
+{"G":"Woodmont CC South ","A":"Joel Weiman","L":"Maryland ","U":"USA","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Tull","Y":"2024-12-27","Z":"Cole Baldwin","M":"weimangolfdesign "},
+{"G":"Bayberry Hills Links ","A":"Tim Gerrish","L":"Massachusetts ","U":"USA","C":"Turco","J":"Renovate 9","S":"Open","B":"","H":"","Y":"2024-06-12","Z":"","M":"Slit Drainage "},
+{"G":"Brae Burn ","A":"Tyler Rae","L":"Massachusetts ","U":"USA","C":"","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2024-09-07","Z":"","M":"USGA Mid Am "},
+{"G":"Charles River GC ","A":"Eric Iverson","L":"Massachusetts ","U":"USA","C":"","J":"Renovate","S":"Construction","B":"","H":"Donald Ross","Y":"2023-11-22","Z":"","M":"stevensgolfdb "},
+{"G":"Framingham CC ","A":"Bruce Hepner","L":"Massachusetts ","U":"USA","C":"MAS Golf","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-09-11","Z":"","M":""},
+{"G":"Franklin Park ","A":"Mark Mungeam","L":"Massachusetts ","U":"USA","C":"DHT Golf Dahn Tibbett ","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-29","Z":"","M":""},
+{"G":"Salem CC ","A":"Eric Iverson","L":"Massachusetts ","U":"USA","C":"","J":"Restore","S":"Masterplan","B":"$3.5M","H":"Donald Ross","Y":"2024-09-09","Z":"","M":"Renaissance Golf Design "},
+{"G":"Woods Hole ","A":"Kyle Franz","L":"Massachusetts ","U":"USA","C":"Hawk Shaw Michael Porteus","J":"Restore","S":"Open","B":"","H":"Findlay Stiles","Y":"2024-07-12","Z":"Brad Faxon","M":"Anthony Pioppi "},
+{"G":"Worcester CC ","A":"Hanse Wagner","L":"Massachusetts ","U":"USA","C":"Kevin Murphy Ben Hillard","J":"Restore","S":"Open","B":"$3.7M","H":"Donald Ross","Y":"2024-02-17","Z":"","M":""},
+{"G":"Boyne Highlands Doon Brae ","A":"Raymond Hearn","L":"Michigan ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2024-06-20","Z":"","M":"Volcano hole "},
+{"G":"CC Detroit ","A":"Keith Foster","L":"Michigan ","U":"USA","C":"","J":"Masterplan","S":"Open","B":"","H":"Alison","Y":"2024-12-07","Z":"Bunkers","M":"Best Sand "},
+{"G":"CC Jackson ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"GCS TDI Golf","J":"Restore","S":"Open","B":"","H":"","Y":"2024-09-14","Z":"XGD","M":"XGD Systems "},
+{"G":"Forest Lake CC ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"William Diddel","Y":"2024-10-24","Z":"","M":""},
+{"G":"Franklin Hills ","A":"Andrew Green","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2024-08-13","Z":"Pro/Angle Sand","M":""},
+{"G":"High Pointe ","A":"Tom Doak","L":"Michigan ","U":"USA","C":"","J":"Rebuild ","S":"Open","B":"","H":"Tom Doak","Y":"2024-07-19","Z":"Rod Trump","M":"Dan Lucas "},
+{"G":"Pine Lake CC ","A":"Drew Rogers","L":"Michigan ","U":"USA","C":"LGR LaBar","J":"Restore","S":"Open","B":"$10M","H":"Willie Park","Y":"2024-07-23","Z":"MKA Irrigation","M":"Thielen Turf Irrigation "},
+{"G":"Plum Hollow CC ","A":"Drew Rogers","L":"Michigan ","U":"USA","C":"TDI","J":"Renovate","S":"Open","B":"","H":"Alison Colt","Y":"2024-10-20","Z":"","M":"plumhollowcc "},
+{"G":"Walnut Creek CC ","A":"Drew Rogers","L":"Michigan ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-08-14","Z":"","M":""},
+{"G":"Cragun's Resort Dutch ","A":"Tom Lehman Chris Brands","L":"Minnesota ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"$17M","H":"RTJ Jr.","Y":"2024-08-22","Z":"Matt McKinnon","M":"Red Course "},
+{"G":"Golden Valley ","A":"Kevin Norby","L":"Minnesota ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"$4M","H":"A.W. Tillinghast","Y":"2024-07-20","Z":"Brad Klein","M":"Philip Young "},
+{"G":"Interlachen ","A":"Andrew Green","L":"Minnesota ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"$10M","H":"Donald Ross","Y":"2024-07-29","Z":"William Watson","M":"Ross Blueprints "},
+{"G":"Pioneer Creek ","A":"Dave Axland Rodney Cole","L":"Minnesota ","U":"USA","C":"Jeff Bradley","J":"Renovate","S":"Open","B":"$17M","H":"","Y":"2024-08-14","Z":"","M":""},
+{"G":"The Loop at Chaska ","A":"Ben Warren","L":"Minnesota ","U":"USA","C":"Brett Hochstein","J":"Short","S":"Open","B":"$1.85M","H":"","Y":"2024-05-01","Z":"","M":"Jim Craig "},
+{"G":"White Bear Yacht Club ","A":"Jim Urbina","L":"Minnesota ","U":"USA","C":"Jonathan Reisetter","J":"Masterplan","S":"Open","B":"$6M","H":"","Y":"2024-09-28","Z":"","M":"Superintendent Jared Kalina "},
+{"G":"Wolf River Golf Park ","A":"Steven Biehl","L":"Minnesota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"$150K","H":"","Y":"2024-09-01","Z":"","M":"Fried Egg "},
+{"G":"Parham Bridges Park ","A":"First Tee","L":"Mississippi ","U":"USA","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2023-10-06","Z":"3 holes","M":""},
+{"G":"Fox Run ","A":"Art Schaupeter","L":"Missouri ","U":"USA","C":"","J":"Rebuild ","S":"Construction","B":"$8M","H":"","Y":"2023-07-23","Z":"","M":"Strategic "},
+{"G":"Spanish Peaks Tom's 10 ","A":"Tom Weiskopf Phil Smith","L":"Montana ","U":"USA","C":"Scott Laughlin Frontier Golf","J":"Short","S":"Open","B":"","H":"Tom Weiskopf","Y":"2024-06-28","Z":"","M":"Shaper "},
+{"G":"Bayonne GC ","A":"Eric Bergstol","L":"New Jersey ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-09","Z":"","M":"007XL Bentgrass "},
+{"G":"Essex County CC ","A":"Hanse Wagner","L":"New Jersey ","U":"USA","C":"LaBar Ben Hillard Shaymus Maley","J":"Masterplan","S":"Open","B":"","H":"Raynor Banks Tillinghast","Y":"2024-05-31","Z":"George Bahto","M":"essexcountycc "},
+{"G":"Fairmount CC ","A":"Robert McNeil","L":"New Jersey ","U":"USA","C":"LGR LaBar","J":"Masterplan","S":"Open","B":"","H":"Hal Purdy","Y":"2024-11-12","Z":"Capillary Concrete","M":""},
+{"G":"Preakness Hills ","A":"Jim Nagle","L":"New Jersey ","U":"USA","C":"Urbano Earth","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-12-23","Z":"","M":""},
+{"G":"Ridgewood ","A":"Hanse Wagner","L":"New Jersey ","U":"USA","C":"LaBar","J":"Masterplan","S":"Open","B":"","H":"A.W. Tillinghast","Y":"2024-11-04","Z":"","M":"Tillie Bunker "},
+{"G":"Springdale ","A":"Ian Andrew","L":"New Jersey ","U":"USA","C":"","J":"Restore","S":"Ongoing","B":"","H":"Flynn","Y":"2023-10-27","Z":"Bunkers Irrigation","M":""},
+{"G":"Trenton CC ","A":"Jim Ryan","L":"New Jersey ","U":"USA","C":"DWS Construction","J":"Restore","S":"Open","B":"","H":"A.W. Tillinghast","Y":"2024-10-16","Z":"Kirk Spieth","M":""},
+{"G":"Los Alamos ","A":"Todd Schoeder Forrest Richardson","L":"New Mexico ","U":"USA","C":"Mid-America Golf","J":"Renovate","S":"Open","B":"$6.6M","H":"","Y":"2024-12-26","Z":"","M":"Golf Course Improvement Project "},
+{"G":"Brook-Lea CC ","A":"Barry Jordan","L":"New York ","U":"USA","C":"MAS Golf","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2024-07-29","Z":"Cross Bunker","M":" "},
+{"G":"Hudson National ","A":"Tom Marzolf Rich Phelps Jeff Lawrence","L":"New York ","U":"USA","C":"LGR LaBar","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-30","Z":"Bunker Solution","M":"Brian Ley "},
+{"G":"Moon Brook ","A":"Raymond Hearn","L":"New York ","U":"USA","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Willie Park","Y":"2023-12-23","Z":"","M":"Green complex "},
+{"G":"Spy Ring GC ","A":"Tyler Rae Jim Ryan","L":"New York ","U":"USA","C":"Brian Ley","J":"Rebuild 9","S":"Open","B":"","H":"","Y":"2024-04-30","Z":"Jeff Stein","M":" "},
+{"G":"St. George's ","A":"Hanse Wagner","L":"New York ","U":"USA","C":"Hawk Shaw","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-11-17","Z":"JCB","M":"hawk_shaw_lfx "},
+{"G":"Stafford CC ","A":"Ian Andrew","L":"New York ","U":"USA","C":"","J":"Masterplan","S":"Open","B":"","H":"Walter Travis","Y":"2024-10-19","Z":"","M":""},
+{"G":"Stafford CC ","A":"Ian Andrew","L":"New York ","U":"USA","C":"Tony Grenzy","J":"Masterplan","S":"Open","B":"","H":"Walter Travis","Y":"2024-10-29","Z":"","M":""},
+{"G":"Asheville Muni ","A":"Kris Spence","L":"North Carolina ","U":"USA","C":"","J":"Restore","S":"Open","B":"$3.5M","H":"Donald Ross","Y":"2024-06-14","Z":"","M":"spence_golf_design "},
+{"G":"Brick Landing ","A":"CR Lutzke","L":"North Carolina ","U":"USA","C":"Carlos Perez","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-19","Z":"","M":""},
+{"G":"Carolina National ","A":"CR Lutzke","L":"North Carolina ","U":"USA","C":"Carlos Perez","J":"Renovate","S":"Open","B":"","H":"Gene Bates","Y":"2024-12-19","Z":"CapCon Corbin Mack Irrigation","M":"CarlosRPerez72 "},
+{"G":"Hound Ears ","A":"Kris Spence","L":"North Carolina ","U":"USA","C":"","J":"Restore","S":"Ongoing","B":"","H":"George Cobb","Y":"2024-06-29","Z":"","M":"Land Planning "},
+{"G":"Lake Hickory ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-06-02","Z":"Sulphur Springs","M":"Construction "},
+{"G":"Linville GC ","A":"Andrew Green","L":"North Carolina ","U":"USA","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-09-29","Z":"","M":"Architect Presentation "},
+{"G":"Lonnie Poole ","A":"CR Lutzke","L":"North Carolina ","U":"USA","C":"Carlos Perez","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-19","Z":"NCSU","M":""},
+{"G":"Maple Chase ","A":"Bob Moore JMP","L":"North Carolina ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-04-10","Z":"","M":""},
+{"G":"Peninsula Club ","A":"Beau Welling Chase Webb","L":"North Carolina ","U":"USA","C":"Wadsworth Joe Titzer Nick Mazella","J":"Renovate","S":"Open","B":"$18M","H":"Rees Jones","Y":"2024-10-24","Z":"Net bunker reduction","M":"Matt Lohmann "},
+{"G":"Sea Trail Byrd ","A":"Tim Cate","L":"North Carolina ","U":"USA","C":"Environmental Landscaping","J":"Renovate","S":"Open","B":"","H":"William Byrd","Y":"2024-10-24","Z":"Tahoma 31 collars","M":""},
+{"G":"Leonard CC ","A":"Garrett Gill","L":"North Dakota ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-06","Z":"3 new holes","M":""},
+{"G":"Maxbass GC ","A":"","L":"North Dakota ","U":"USA","C":"Farden Construction","J":"Rebuild","S":"Open","B":"","H":"","Y":"2024-10-25","Z":"Sand Greens","M":"Reopens "},
+{"G":"Community ","A":"Wilczynski Serafin","L":"Ohio ","U":"USA","C":"Topp Shape","J":"Renovate","S":"Open","B":"","H":"","Y":"2022-09-16","Z":"","M":"Hills and Dales "},
+{"G":"Kenwood CC Kenview ","A":"Jason Straka Dana Fry","L":"Ohio ","U":"USA","C":"LGR LaBar","J":"Renovate","S":"Open","B":"","H":"Diddel","Y":"2024-05-14","Z":"","M":"PrecisionAire "},
+{"G":"Terrace Park CC ","A":"Andy Staples","L":"Ohio ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-12-01","Z":"4th hole","M":"Hole 8 "},
+{"G":"Bandon Shorty's ","A":"Whitman Axland Cutten","L":"Oregon ","U":"USA","C":"Tony Russell","J":"Short","S":"Open","B":"","H":"","Y":"2024-05-02","Z":"19 holes","M":"Routing "},
+{"G":"Quail Ridge GC ","A":"","L":"Oregon ","U":"USA","C":"Mid-America Golf","J":"Irrigation","S":"Open","B":"$1.4M","H":"","Y":"2024-12-19","Z":"Toro Infinity","M":""},
+{"G":"Bent Creek CC ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"$9.5M","H":"","Y":"2024-08-01","Z":"","M":"Landscapes Unlimited "},
+{"G":"Cedarbrook CC ","A":"Jaegar Kovich Nicklaus Mills","L":"Pennsylvania ","U":"USA","C":"LGR LaBar Todd Saganiec","J":"Restore","S":"Open","B":"","H":"William Mitchell","Y":"2024-05-11","Z":"XGD Drainage","M":"Sod greens "},
+{"G":"Laurel Valley ","A":"Jason Sloan","L":"Pennsylvania ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Dick Wilson","Y":"2024-10-22","Z":"","M":""},
+{"G":"Moselem Springs ","A":"Tom Fazio","L":"Pennsylvania ","U":"USA","C":"Brian Ley","J":"Restore","S":"Open","B":"","H":"George Fazio","Y":"2024-04-23","Z":"","M":"New Greens "},
+{"G":"Oakmont ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","C":"Total Turf GS Caveman Kevin Murphy Kye Goalby Matt Smallwood","J":"Masterplan","S":"Open","B":"","H":"Fownes","Y":"2024-04-13","Z":"MKA Consultants Irrigation","M":"Greens expansion "},
+{"G":"Rolling Green ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","C":"Total Turf GS","J":"Masterplan","S":"Open","B":"","H":"William Flynn","Y":"2024-04-13","Z":"","M":"Ben Hillard "},
+{"G":"Union League Torresdale Landing ","A":"Steve Weisser","L":"Pennsylvania ","U":"USA","C":"Chase McEvers Mark Harrison","J":"Short","S":"Open","B":"","H":"","Y":"2024-06-03","Z":"","M":"Reversible Routing "},
+{"G":"Met Links ","A":"Robert McNeil","L":"Rhode Island ","U":"USA","C":"NMP","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2024-06-23","Z":"","M":"Metacomet "},
+{"G":"CC Spartanburg ","A":"Kris Spence","L":"South Carolina ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-10-25","Z":"Tahoma 31","M":"3 new holes "},
+{"G":"Fripp Island Ocean Point ","A":"Cynthia Dye Matthew McGarey","L":"South Carolina ","U":"USA","C":"Golf Course Services","J":"Restore","S":"Open","B":"$2M","H":"George Cobb","Y":"2024-10-09","Z":"","M":"Drone "},
+{"G":"Kings North ","A":"Brandon Johnson","L":"South Carolina ","U":"USA","C":"SOX Erosion","J":"Renovate","S":"Open","B":"","H":"Arnold Palmer","Y":"2024-09-07","Z":"","M":"Myrtle Beach Golf "},
+{"G":"Long Cove GC ","A":"","L":"South Carolina ","U":"USA","C":"","J":"Irrigation","S":"Open","B":"$4M","H":"","Y":"2025-01-11","Z":"","M":""},
+{"G":"The Fort ","A":"Colton Craig Tom Coyne","L":"South Carolina ","U":"USA","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"George Cobb","Y":"2024-04-12","Z":"","M":""},
+{"G":"Hart Ranch ","A":"John Fought","L":"South Dakota ","U":"USA","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-02","Z":"","M":""},
+{"G":"Audobon Links ","A":"Bill Bergin","L":"Tennessee ","U":"USA","C":"NMP","J":"Rebuild ","S":"Open","B":"$8.1M","H":"","Y":"2024-10-30","Z":"Muni","M":"Redesign "},
+{"G":"Colonial CC South ","A":"Nathan Crace","L":"Tennessee ","U":"USA","C":"Mike Purvis Forefront Golf Construction","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-01-02","Z":"Premier Play sand ","M":"Tahoma 31 sod "},
+{"G":"Hillwood CC ","A":"Bruce Hepner","L":"Tennessee ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-11-23","Z":"","M":""},
+{"G":"Holston Hills ","A":"Kris Spence","L":"Tennessee ","U":"USA","C":"McConnell","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2024-12-03","Z":"CapCon Bulk Aggregate Sand","M":"SGI Jim Harbin "},
+{"G":"Old Fort ","A":"Nathan Crace","L":"Tennessee ","U":"USA","C":"Wadsworth","J":"Renovate","S":"Open","B":"$1.6M","H":"","Y":"2024-08-07","Z":"","M":"Prizm Zoysia "},
+{"G":"Percy Warner ","A":"Bruce Hepner","L":"Tennessee ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"$2.5M","H":"","Y":"2024-06-02","Z":"","M":"Jim Nantz "},
+{"G":"Shelby Park Vinny Links ","A":"Bruce Hepner","L":"Tennessee ","U":"USA","C":"MacCurrach","J":"Renovate","S":"Open","B":"$2.3M","H":"Donald Ross","Y":"2024-11-23","Z":"Brandt Snedeker","M":"Tennessee Golf Foundation "},
+{"G":"Alamo City Riverside ","A":"Jeff Blume","L":"Texas ","U":"USA","C":"VM Golf","J":"Renovate","S":"Open","B":"$4M","H":"","Y":"2024-01-09","Z":"","M":"Catch basin "},
+{"G":"Brookhaven ","A":"","L":"Texas ","U":"USA","C":"VM Golf","J":"Renovate","S":"Open","B":"","H":"Press Maxwell","Y":"2025-02-21","Z":"","M":""},
+{"G":"Carlton Woods Nicklaus ","A":"Nicklaus Design Chris Cochran ","L":"Texas ","U":"USA","C":"Sanders Golf","J":"Restore","S":"Open","B":"$10M","H":"Nicklaus","Y":"2024-05-13","Z":"","M":"Sprigs "},
+{"G":"Cedar Creek ","A":"","L":"Texas ","U":"USA","C":"VM Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-05-12","Z":"","M":"Sod "},
+{"G":"Colonial ","A":"Hanse Wagner","L":"Texas ","U":"USA","C":"LGR LaBar","J":"Restore","S":"Open","B":"$25M","H":"Perry Maxwell","Y":"2024-05-12","Z":"Oscar Lazaro Josh McFadden","M":"Hydronics "},
+{"G":"Crown Colony ","A":"Trey Kemp John Colligan","L":"Texas ","U":"USA","C":"Sanders Golf Steve Adame","J":"Restore","S":"Open","B":"","H":"Bruce Devlin","Y":"2024-10-18","Z":"Bunker Solution","M":"kempgolfcoursedesign "},
+{"G":"Dallas Athletic Club Gold ","A":"Chet Williams","L":"Texas ","U":"USA","C":"Sanders Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-03-15","Z":"6 holes","M":"Seeding Greensmix "},
+{"G":"Dallas CC ","A":"Mike Gogel","L":"Texas ","U":"USA","C":"LGR LaBar EC Design","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-04-27","Z":"Toro Smart Hubs","M":"Sand capping "},
+{"G":"Firefly ","A":"Art Schaupeter","L":"Texas ","U":"USA","C":"","J":"Rebuild","S":"Open","B":"$4.4M","H":"","Y":"2025-02-21","Z":"Lozano Golf","M":"Muni "},
+{"G":"Hilltop Lakes ","A":"","L":"Texas ","U":"USA","C":"Larson Golf Services","J":"Regrass","S":"Open","B":"","H":"Ralph Plummer","Y":"2025-02-22","Z":"","M":""},
+{"G":"Lakeside CC ","A":"Jay Blasi","L":"Texas ","U":"USA","C":"Greenscape Methods","J":"Renovate","S":"Open","B":"","H":"Ralph Plummer","Y":"2023-12-16","Z":"","M":"Don Mahaffey "},
+{"G":"Mont Belvieu Eagle Pointe ","A":"Finger Dye Spann","L":"Texas ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"$6M","H":"","Y":"2024-03-29","Z":"PM Christian Hale","M":"Sprigging "},
+{"G":"Olympia Hills GC ","A":"","L":"Texas ","U":"USA","C":"","J":"Regrass","S":"Open","B":"","H":"","Y":"2025-08-12","Z":"","M":""},
+{"G":"Quarry GC ","A":"","L":"Texas ","U":"USA","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-10-25","Z":"Tif3D Bermudagrass","M":""},
+{"G":"Rawls ","A":"","L":"Texas ","U":"USA","C":"TDI Golf","J":"Renovate","S":"Open","B":"","H":"Tom Doak","Y":"2024-03-22","Z":"","M":"Geoff Corlett "},
+{"G":"Shary Municipal ","A":"","L":"Texas ","U":"USA","C":"","J":"Renovate","S":"Drawing boards ","B":"$2M","H":"","Y":"2025-02-21","Z":"","M":""},
+{"G":"Tony Butler ","A":"Jeff Blume","L":"Texas ","U":"USA","C":"Mid-America","J":"Renovate","S":"Open","B":"$5.5M","H":"John Bredemus","Y":"2024-12-09","Z":"","M":"Municipal Golf "},
+{"G":"CC VA James River ","A":"Andrew Green","L":"Virginia ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"William Flynn","Y":"2024-06-14","Z":"Bunkers","M":""},
+{"G":"Farmington CC ","A":"Dave Axland","L":"Virginia ","U":"USA","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Fred Findlay","Y":"2024-06-14","Z":"","M":""},
+{"G":"Hermitage CC ","A":"Andrew Green","L":"Virginia ","U":"USA","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Tillinghast","Y":"2024-06-14","Z":"","M":""},
+{"G":"Preserve Beacon Hill ","A":"Tom Clark Jim Cervone","L":"Virginia ","U":"USA","C":"McDonald Sons","J":"Renovate","S":"Open","B":"","H":"Johnny Miller","Y":"2024-12-14","Z":"","M":""},
+{"G":"Indian Canyon ","A":"RTJ II","L":"Washington ","U":"USA","C":"Ridgetop Golf","J":"Renovate","S":"Open","B":"$0.3M","H":"","Y":"2024-12-14","Z":"Bunkers","M":""},
+{"G":"Geneva National Palmer ","A":"Brandon Johnson","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Arnold Palmer","Y":"2025-01-20","Z":"","M":""},
+{"G":"Geneva National Trevino ","A":"Craig Haltom","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"Lee Trevino","Y":"2025-01-20","Z":"","M":""},
+{"G":"Kankakee Elks ","A":"David Esler","L":"Wisconsin ","U":"USA","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Langford Moreau","Y":"2023-12-23","Z":"","M":"Design "},
+{"G":"Monroe GC ","A":"","L":"Wisconsin ","U":"USA","C":"Landscapes Unlimited","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-09-12","Z":"","M":""},
+{"G":"Strawberry Creek ","A":"Rick Jacobson","L":"Wisconsin ","U":"USA","C":"Hollembeak","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-09-11","Z":"Better Billy Bunker","M":""},
+{"G":"Zablocki Park GC ","A":"","L":"Wisconsin ","U":"USA","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-29","Z":"Synthetic Turf","M":""}
+ ]
+}
+
diff --git a/data/g2025.json b/data/g2025.json
new file mode 100644
index 0000000000000..139865f28d32d
--- /dev/null
+++ b/data/g2025.json
@@ -0,0 +1,761 @@
+{
+ "data":[
+{"G":"Cabot Pacific ","A":"Whitman Axland Cutten","L":"BC ","U":"Canada","D":"2026","C":"Greg Gunn Old World Golf","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-16","Z":"Dan Philcox","M":"Andrew Harris "},
+{"G":"Gowan Brae ","A":"Riley Johns Keith Rhebb","L":"New Brunswick ","U":"Canada","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Robbie Robinson ","Y":"2024-02-08","Z":"","M":"Chaleur Bay "},
+{"G":"River Philip GC ","A":"Jeff Mingay","L":"Nova Scotia ","U":"Canada","D":"2028","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-17","Z":"","M":""},
+{"G":"Fox Harb'r Ocean ","A":"Carrick McBroom","L":"Nova Scotia ","U":"Canada","D":"2026","C":"KCM Construction","J":"New","S":"Ongoing","B":"","H":"","Y":"2025-05-08","Z":"Front 9 Open","M":"Heathland Style "},
+{"G":"Fox Harb'r Vineyard ","A":"Carrick McBroom","L":"Nova Scotia ","U":"Canada","D":"2026","C":"KCM Construction","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-04","Z":"","M":"Seaside "},
+{"G":"Bella Ridge ","A":"Art Schaupeter","L":"Colorado ","U":"USA","D":"2026","C":"Wadsworth","J":"New","S":"Preview","B":"","H":"","Y":"2025-10-01","Z":"Troon Golf","M":"Stormwater Management "},
+{"G":"Rodeo Dunes 1 ","A":"Coore Crenshaw","L":"Colorado ","U":"USA","D":"2026","C":"John Hawker","J":"New","S":"Preview","B":"","H":"","Y":"2025-10-01","Z":"Josh Evenson John Klinkerman","M":"Michael Breuer "},
+{"G":"Rodeo Dunes 2 ","A":"Jimmy Craig","L":"Colorado ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-10-01","Z":"Michael Keiser Jr.","M":""},
+{"G":"Atlantic Fields ","A":"Tom Fazio","L":"Florida ","U":"USA","D":"2025","C":"Discovery Land","J":"New","S":"Grow In","B":"","H":"","Y":"2025-06-09","Z":"","M":""},
+{"G":"Calusa CC ","A":"Gordon Lewis","L":"Florida ","U":"USA","D":"2025","C":"Westscapes Golf","J":"New","S":"Open","B":"","H":"","Y":"2025-01-22","Z":"Lakewood Ranch","M":"12 hole course "},
+{"G":"The Gate ","A":"Peter Jacobsen Jim Hardy","L":"Florida ","U":"USA","D":"2026","C":"Glase Golf","J":"New 9","S":"Construction","B":"$23M","H":"","Y":"2025-02-13","Z":"First Tee","M":"thegategolfnaples "},
+{"G":"Glynlea CC ","A":"Jim Furyk Michael Beebe","L":"Florida ","U":"USA","D":"2025","C":"David Johnson","J":"New","S":"Open","B":"","H":"","Y":"2024-12-23","Z":"","M":"GreenPointe Developers "},
+{"G":"High Grove ","A":"Hanse Wagner","L":"Florida ","U":"USA","D":"2025","C":"LGR LaBar Heritage Links","J":"New 36","S":"Construction","B":"","H":"","Y":"2024-11-24","Z":"Irrigation Dave Ragan Technical","M":"LGR "},
+{"G":"The Hill ","A":"Tom Doak","L":"Florida ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-02-05","Z":"","M":""},
+{"G":"Miakka ","A":"Dana Fry Jason Straka Paul Azinger","L":"Florida ","U":"USA","D":"2026","C":"Troon Black Creek","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-31","Z":"Stadium Zoysia","M":"Lazer Zoysia "},
+{"G":"Old Charlie GC ","A":"Keith Rhebb Riley Johns","L":"Florida ","U":"USA","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-06-27","Z":"","M":"Cliff McKinney "},
+{"G":"Owl's Head ","A":"Keith Rhebb Riley Johns","L":"Florida ","U":"USA","D":"2025","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-06-15","Z":"","M":""},
+{"G":"Sandglass ","A":"Tom Doak","L":"Florida ","U":"USA","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-07-01","Z":"","M":"Bamberger "},
+{"G":"Streamsong White ","A":"David Kidd Chip Caswell Nick Schaan","L":"Florida ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-02","Z":"","M":"DavidMcLayKidd "},
+{"G":"The Apogee Club North ","A":"Kyle Phillips","L":"Florida ","U":"USA","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-28","Z":"","M":"GCM "},
+{"G":"The Ranch ","A":"Whitman Axland Cutten","L":"Florida ","U":"USA","D":"2027","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2025-09-13","Z":"","M":""},
+{"G":"Two Rivers ","A":"David Kidd","L":"Florida ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-02","Z":"","M":"Luxury golf "},
+{"G":"Watersound The Third ","A":"Davis Love Scot Sherman Mark Love","L":"Florida ","U":"USA","D":"2025","C":"MacCurrach","J":"New","S":"Open","B":"","H":"","Y":"2025-03-04","Z":"Total Earth Services","M":"ASGCA "},
+{"G":"Esplanade St Marys ","A":"Chris Wilczynski","L":"Georgia ","U":"USA","D":"2026","C":"Ryangolf","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-30","Z":"Smith Trucking","M":""},
+{"G":"Fenmoor Reynolds Lake Oconee ","A":"Steve Smyers","L":"Georgia ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-30","Z":"","M":""},
+{"G":"The Rose ","A":"Tripp Davis","L":"Georgia ","U":"USA","D":"2025","C":"Duininck","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-14","Z":"","M":""},
+{"G":"Warmouth Sands ","A":"Mike Young","L":"Georgia ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"","M":"Vidalia Muni "},
+{"G":"Grand Teton Club ","A":"Greg Norman","L":"Idaho ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-08","Z":"","M":""},
+{"G":"False River ","A":"Nathan Crace","L":"Louisiana ","U":"USA","D":"2026","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"","M":"Routing Plan "},
+{"G":"Arcadia Bluffs Dozen ","A":"","L":"Michigan ","U":"USA","D":"2026","C":"KVL King Villages Landscaping & Golf Construction","J":"New 12","S":"Open","B":"","H":"","Y":"2025-07-15","Z":"","M":""},
+{"G":"Forest Dunes SkyFall ","A":"Hanse Wagner","L":"Michigan ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-01-30","Z":"","M":""},
+{"G":"Island Resort Cedar ","A":"Paul Albanese","L":"Michigan ","U":"USA","D":"2026","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2025-06-30","Z":"Rough Shaping","M":"algolfdesigns "},
+{"G":"Kalamazoo Lakeside ","A":"Andrew Green","L":"Michigan ","U":"USA","D":"2027","C":"LGR LaBar","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-07","Z":"","M":""},
+{"G":"Barnfire Club ","A":"Kevin Sutherland","L":"Michigan ","U":"USA","D":"2026","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2025-02-02","Z":"Sutherland Ranch","M":""},
+{"G":"Breezy Point Ace Valley ","A":"Andy Staples","L":"Minnesota ","U":"USA","D":"2027","C":"","J":"New 12","S":"Drawing boards ","B":"","H":"","Y":"2025-07-26","Z":"","M":""},
+{"G":"Tepetonka ","A":"Oglivy Cocking Mead","L":"Minnesota ","U":"USA","D":"2026","C":"Duininck","J":"New","S":"Construction","B":"$21M","H":"","Y":"2024-07-28","Z":"Jim Nantz","M":"Mark Haugejorde "},
+{"G":"Valkrie GC ","A":"Scott Hoffmann","L":"Minnesota ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-17","Z":"","M":""},
+{"G":"Windsong Farm North ","A":"John Fought","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"New","S":"Open","B":"","H":"","Y":"2025-06-25","Z":"Template Holes","M":"Pure Select A4 "},
+{"G":"1889 Golf & Lake Club ","A":"Tom Fazio","L":"Montana ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-06-25","Z":"","M":""},
+{"G":"Crazy Mountain Ranch ","A":"Coore Crenshaw","L":"Montana ","U":"USA","D":"2026","C":"Riley Johns","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-18","Z":"","M":"14th hole "},
+{"G":"Twin Bridges ","A":"Kye Goalby","L":"Montana ","U":"USA","D":"2025","C":"Eamon Sullivan LaBar","J":"New","S":"Open","B":"","H":"","Y":"2025-08-31","Z":"Matt Smallwood Gray Carlton","M":"kyegoalby "},
+{"G":"Battle Run GC ","A":"David Kidd Nick Schaan","L":"Nebraska ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-01","Z":"","M":""},
+{"G":"Trout National - The Reserve ","A":"Tiger Woods Beau Welling","L":"New Jersey ","U":"USA","D":"2026","C":"LGR LaBar","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-08","Z":"John Ruga","M":"Mike Trout "},
+{"G":"The Hills ","A":"Fazio Courcelle","L":"New York ","U":"USA","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-05-08","Z":"Two Lewis Road","M":"Discovery Land "},
+{"G":"Contentment ","A":"Lester George","L":"North Carolina ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"New","S":"Open","B":"","H":"","Y":"2025-10-01","Z":"LU PM Mike Ritchie","M":"Routing "},
+{"G":"Downbonnie Golf ","A":"Mike Koprowski","L":"North Carolina ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-13","Z":"PM Nick Mazzella","M":"downbonniegolf "},
+{"G":"Pinehurst 11 ","A":"Coore Crenshaw","L":"North Carolina ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-21","Z":"Sandmines","M":"Bill Coore "},
+{"G":"Veterans Club ","A":"","L":"Ohio ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-31","Z":"","M":""},
+{"G":"Westbrook CC ","A":"Tyler Rae","L":"Ohio ","U":"USA","D":"2027","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2025-07-10","Z":"The Diamond 9","M":""},
+{"G":"21 Club ","A":"Brian Zager Eric Iverson","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"MacKenzie","Y":"2025-03-16","Z":"El Boqueron","M":"Wes Farrell "},
+{"G":"Chester ","A":"Tyler Rae Jim Ryan","L":"South Carolina ","U":"USA","D":"2025","C":"Tim Lewis","J":"New 27","S":"Grow In","B":"","H":"","Y":"2025-05-11","Z":"Webb Simpson","M":"tylerraedesign "},
+{"G":"Kawonu GC ","A":"Andrew Green","L":"South Carolina ","U":"USA","D":"2027","C":"Wingfield Golf Barton Tuck","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-11","Z":"","M":"kawonugolfclub "},
+{"G":"Old Barnwell 2 ","A":"Brian Schneider Blake Conant","L":"South Carolina ","U":"USA","D":"2027","C":"MacCurrach","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-02-10","Z":"","M":"Gilroy "},
+{"G":"Old Sawmill ","A":"Tyler Rae Jim Ryan","L":"South Carolina ","U":"USA","D":"2026","C":"Tim Lewis Greg Hufner Dave Gandell Total Turf GS","J":"New 27","S":"Construction","B":"","H":"","Y":"2025-02-09","Z":"GTI Irrigation","M":"Chris Fletcher "},
+{"G":"Orange Hill ","A":"Beau Welling","L":"South Carolina ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-15","Z":"Kiawah Partners","M":"Approved "},
+{"G":"Palmetto Bluff East ","A":"Coore Crenshaw","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"New 9","S":"Grow In","B":"","H":"","Y":"2025-05-02","Z":"Ryan Farrow","M":"CooreCrenshaw "},
+{"G":"Lazy J ","A":"Colton Craig Tom Coyne","L":"South Dakota ","U":"USA","D":"2027","C":"Landscapes Unlimited","J":"New","S":"Drawing boards ","B":"$6M","H":"","Y":"2025-02-21","Z":"","M":"Sandhills "},
+{"G":"Maplet0n GC ","A":"Scott Hoffman","L":"South Dakota ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"New","S":"Open","B":"","H":"","Y":"2025-08-29","Z":"","M":"Derek Soukup "},
+{"G":"Bounty Club ","A":"Tad King Rob Collins","L":"Tennessee ","U":"USA","D":"2026","C":"Robert Nelson Dan Philcox John Ellsworth","J":"New","S":"Construction","B":"","H":"","Y":"2025-03-31","Z":"Abe Wilson Joe Hancock Rob Allen","M":"Paul Mentikov "},
+{"G":"Firefly ","A":"Andrew Green","L":"Tennessee ","U":"USA","D":"2026","C":"Scott Laughlin Hawk Shaw","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-15","Z":"","M":"Hole by Hole "},
+{"G":"Bluejack Ranch ","A":"Tiger Woods Beau Welling","L":"Texas ","U":"USA","D":"2026","C":"Jon O'Donnell Heritage Links","J":"New","S":"Construction","B":"","H":"","Y":"2025-09-02","Z":"Irrigation EC Design Group","M":"bluejackranch "},
+{"G":"Childress Hall Lower ","A":"Hanse Wagner","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-11","Z":"","M":"Caveman "},
+{"G":"Corsicana The Oaks ","A":"Trey Kemp","L":"Texas ","U":"USA","D":"2026","C":"","J":"New 9","S":"Grow In","B":"","H":"","Y":"2025-10-04","Z":"","M":""},
+{"G":"Freestone Lake ","A":"Beau Welling ","L":"Texas ","U":"USA","D":"2025","C":"Wadsworth","J":"New","S":"Open","B":"","H":"","Y":"2025-10-04","Z":"Fairfield Lake State Park","M":""},
+{"G":"Halbert National GC ","A":"Tom Fazio","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Grow In","B":"$50M","H":"","Y":"2025-10-05","Z":"","M":"Estate Course "},
+{"G":"Legacy Hills 1876 ","A":"Lee Singletary","L":"Texas ","U":"USA","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-05-22","Z":"","M":"Real estate "},
+{"G":"Loraloma Thomas Ranch ","A":"David Kidd","L":"Texas ","U":"USA","D":"2025","C":"Lloyd Bridges Greenscapes Six","J":"New","S":"Open","B":"","H":"","Y":"2025-10-01","Z":"","M":"thomasranchtx "},
+{"G":"Luling Sport 1 ","A":"Kyle Franz","L":"Texas ","U":"USA","D":"2025","C":"Greenscape Methods","J":"New","S":"Grow In","B":"","H":"","Y":"2025-03-10","Z":"","M":""},
+{"G":"Luling Sport 2 ","A":"Oglivy Cocking Mead","L":"Texas ","U":"USA","D":"2025","C":"Ben Warren LaBar","J":"New","S":"Construction","B":"","H":"","Y":"2025-03-10","Z":"","M":"ocmgolf "},
+{"G":"Maverick Golf & Ranch Club ","A":"Tom Fazio","L":"Texas ","U":"USA","D":"2026","C":"Discovery","J":"New","S":"Construction","B":"","H":"","Y":"2025-10-05","Z":"","M":""},
+{"G":"Midland County Municipal Golf Course ","A":"Andy Staples","L":"Texas ","U":"USA","D":"2028","C":"","J":"New 27","S":"Drawing boards ","B":"$20M","H":"","Y":"2025-06-24","Z":"THK Associates Feasibility Study","M":"Muni Course "},
+{"G":"Pine Ranch ","A":"Chet Williams","L":"Texas ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-23","Z":"","M":"Scottie Scheffler "},
+{"G":"Travis Club ","A":"Beau Welling Scott Benson","L":"Texas ","U":"USA","D":"2026","C":"Heritage Links Doug Wright","J":"New","S":"Grow In","B":"","H":"","Y":"2025-07-12","Z":"Larry Rodgers Irrigation","M":"Greenrise Technologies "},
+{"G":"Wild Spring Dunes 1 ","A":"Tom Doak","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-07","Z":"Dream Golf Resorts","M":""},
+{"G":"Wild Spring Dunes 2 ","A":"Coore Crenshaw","L":"Texas ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-30","Z":"Chad Kuzawa","M":""},
+{"G":"Windridge Whisper Ridge ","A":"Dale Beddo","L":"Texas ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-07-03","Z":"","M":""},
+{"G":"Marcella Club ","A":"Tiger Woods Beau Welling","L":"Utah ","U":"USA","D":"2026","C":"BHI Brian Jennings Joe Titzer","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"Reef Capital","M":"Golf Construction "},
+{"G":"Marcella Club Ambush ","A":"King Collins Dormer","L":"Utah ","U":"USA","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-24","Z":"","M":""},
+{"G":"Shivwits Resort GC 1 ","A":"Tiger Woods Beau Welling","L":"Utah ","U":"USA","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-23","Z":"Reef Capital","M":""},
+{"G":"Shivwits Resort GC 2 ","A":"Jackson Kahn","L":"Utah ","U":"USA","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-23","Z":"","M":""},
+{"G":"Three Bridges ","A":"RTJ II Mark Voss","L":"Utah ","U":"USA","D":"2027","C":"Landscapes Unlimited","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-25","Z":"","M":""},
+{"G":"Wohali Eagle GC ","A":"David Boyden","L":"Utah ","U":"USA","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-06-05","Z":"Todd Bunte","M":"Trackman "},
+{"G":"Foster's Farm ","A":"Bill Love","L":"Virginia ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-10","Z":"","M":""},
+{"G":"Gamble Sands Scarecrow ","A":"David Kidd Nick Schaan","L":"Washington ","U":"USA","D":"2025","C":"Casa Verde","J":"New","S":"Open","B":"","H":"","Y":"2025-07-26","Z":"","M":"Golf Magazine "},
+{"G":"Westport Golf Links ","A":"David Kidd","L":"Washington ","U":"USA","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"$30M","H":"","Y":"2024-12-20","Z":"Interdunal wetland","M":"395 acres "},
+{"G":"Snake River ","A":"David Kidd","L":"Washington ","U":"USA","D":"2028","C":"","J":"New","S":"Permits","B":"","H":"","Y":"2025-09-26","Z":"","M":""},
+{"G":"Kettle Forge ","A":"Jackson Kahn Hoffman","L":"Wisconsin ","U":"USA","D":"2027","C":"Landscapes Unlimited","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-04","Z":"","M":""},
+{"G":"Sand Valley Commons ","A":"Jimmy Craig","L":"Wisconsin ","U":"USA","D":"2026","C":"Zane Ellis","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-02","Z":"","M":""},
+{"G":"Wapika Ranch Moose ","A":"Carl Thuesen","L":"Wyoming ","U":"USA","D":"2025","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2025-01-30","Z":"","M":"GCM "},
+{"G":"El Desafío ","A":"Greg Norman","L":"San Martin de los Andes ","U":"Argentina","D":"2026","C":"Jose Hector Alvarez","J":"New 9","S":"Construction","B":"","H":"Matt Dusenberry","Y":"2024-10-03","Z":"","M":"Fescue Grass "},
+{"G":"Jack's Bay ","A":"Nicklaus Design Chad Goetz","L":"Eleuthera ","U":"Bahamas","D":"2026","C":"Jimmy Fazio","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-25","Z":"","M":"Andy O'Brien "},
+{"G":"Ocean Ridge Resort ","A":"Coore Crenshaw","L":"Torch Cay ","U":"Bahamas","D":"2026","C":"Trevor Dormer Rob Leask Brendan Moller","J":"New","S":"Construction","B":"$170M","H":"","Y":"2024-10-24","Z":"","M":"Hog Cay Airport "},
+{"G":"Barbuda Ocean Club ","A":"Tom Fazio","L":"Barbuda ","U":"Barbuda","D":"2025","C":"","J":"New","S":"Grow In","B":"","H":"","Y":"2024-06-30","Z":"Front Nine","M":"Harris Kalinka "},
+{"G":"Four Seasons Resort ","A":"Greg Norman Lorena Ochoa","L":"Caye Chapel ","U":"Belize","D":"2026","C":"","J":"New 10","S":"Construction","B":"","H":"","Y":"2025-07-27","Z":"","M":"Reversible Routing "},
+{"G":"Fazenda Boa Vista ","A":"Rees Jones Greg Muirhead","L":"Boa Vista ","U":"Brazil","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-27","Z":"","M":""},
+{"G":"St. Regis ","A":"Agustín Pizá","L":"Papagayo ","U":"Costa Rica","D":"2028","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2025-01-28","Z":"","M":""},
+{"G":"Punta Bergantín ","A":"Davis Love Beau Welling","L":"Sosúa ","U":"Dominican Republic","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-02-21","Z":"","M":""},
+{"G":"Las Iguanas ","A":"Nicklaus Design Troy Vincent","L":"Punta Cana ","U":"Dominican Republic","D":"2025","C":"Roca Golf International","J":"New","S":"Open","B":"","H":"","Y":"2025-05-04","Z":"Atlas Turf","M":"Pure Dynasty Paspalum "},
+{"G":"Moon Palace ","A":"Greg Norman Rogelio Abarca","L":"Punta Cana ","U":"Dominican Republic","D":"2025","C":"Jason McCoy","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"Wallgrow International Hector Lopez Deschamps","M":"Seaside "},
+{"G":"Mulan Grenada National ","A":"RTJ II Mike Gorman","L":"Grenada ","U":"Grenada","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-24","Z":"","M":"Robert Trent Jones II "},
+{"G":"Timehri Sands ","A":"Jason Miller","L":"Georgetown ","U":"Guyana","D":"2025","C":"","J":"New 9","S":"Construction","B":"$3M","H":"","Y":"2024-01-15","Z":"","M":"72 acres "},
+{"G":"Zitara ","A":"Agustín Pizá","L":"Aguascalientes ","U":"Mexico","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-20","Z":"Master Planned Community","M":"grupoplusvalterra "},
+{"G":"Baja Bay Club ","A":"David Kidd Nick Schaan","L":"Baja ","U":"Mexico","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-01","Z":"","M":"Sand Dunes "},
+{"G":"Chileno Bay ","A":"Tom Fazio","L":"Baja ","U":"Mexico","D":"2025","C":"Hathaway Golf","J":"Short","S":"Open","B":"","H":"","Y":"2025-04-24","Z":"Discovery","M":""},
+{"G":"Diamante Legacy ","A":"Tiger Woods Beau Welling","L":"Baja ","U":"Mexico","D":"2026","C":"Scott Benson","J":"New","S":"Grow In","B":"","H":"","Y":"2024-12-31","Z":"","M":"PGA Tour "},
+{"G":"Querencia Campo Alto ","A":"Tom Fazio","L":"Baja ","U":"Mexico","D":"2026","C":"","J":"New","S":"Grow In","B":"","H":"","Y":"2025-07-26","Z":"","M":""},
+{"G":"Quivira Old Lighthouse ","A":"Nicklaus Jim Lipe","L":"Baja ","U":"Mexico","D":"2026","C":"Bob Rubidoux Bob Harrington Hathaway","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-30","Z":"","M":"mathewhathawaygolf "},
+{"G":"Oleada ","A":"Ernie Els","L":"Baja ","U":"Mexico","D":"2026","C":"Greg Letsche","J":"New","S":"Construction","B":"","H":"","Y":"2025-10-01","Z":"Vision Land Design","M":"oleadacabos "},
+{"G":"Punta Brava ","A":"Tom Doak Parker Anderson","L":"Baja ","U":"Mexico","D":"2025","C":"Joe Wandro Hathaway Golf","J":"New","S":"Grow In","B":"","H":"","Y":"2025-06-11","Z":"Hathaway Golf","M":"Hole 18 "},
+{"G":"Nauka ","A":"Tom Fazio Bryan Bowers","L":"Nayarit ","U":"Mexico","D":"2025","C":"Total Golf Construction GreenLynx","J":"New","S":"Open","B":"","H":"","Y":"2025-07-11","Z":"Abril Ortiz","M":"ArquiGolf "},
+{"G":"Cardon Resort El Ebano ","A":"Mike Nuzzo","L":"Sinaloa ","U":"Mexico","D":"2028","C":"Landcapes Unlimited Marvin Cruz","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-03","Z":"","M":""},
+{"G":"Mayakoba CC ","A":"Sergio Garcia","L":"Yucatan ","U":"Mexico","D":"2026","C":"NCM","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-02","Z":"Franco Bianchi","M":""},
+{"G":"Buenaventura Resort #2 ","A":"RTJ Jr. Bruce Charlton","L":"Panama ","U":"Panama","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-09","Z":"","M":""},
+{"G":"Taruma Golf del Chaco ","A":"Stirling Martin ","L":"Asuncion ","U":"Paraguay","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-11-24","Z":"Marco Martin","M":""},
+{"G":"Moncayo ","A":"Mackenzie Ebert","L":"Fajardo ","U":"Puerto Rico","D":"2027","C":"Lawrence Aslarona Peter Bohn Chris May Heritage Links","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-11","Z":"PM John Daniels","M":""},
+{"G":"Kirkby Valley ","A":"International Design Group","L":"London ","U":"England","D":"2026","C":"Walker Sime","J":"New 9","S":"Drawing boards ","B":"$25M","H":"","Y":"2024-10-14","Z":"Green Circle Leisure","M":"Total Golf "},
+{"G":"Ballylesson ","A":"Paul McGinley","L":"Belfast ","U":"Ireland","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-24","Z":"Balmoral","M":""},
+{"G":"Curracloe Links ","A":"Dana Fry Jason Straka","L":"Wexford ","U":"Ireland","D":"2026","C":"John Clarkin Geoff Lynch","J":"New","S":"Construction","B":"$22M","H":"","Y":"2025-05-02","Z":"","M":"turfgrass_golf "},
+{"G":"Bellarena Galgorm ","A":"","L":"Coleraine ","U":"N. Ireland","D":"2029","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-17","Z":"","M":""},
+{"G":"Trump MacLeod ","A":"Hawtree Christine Fraser Christian Lundin","L":"Aberdeen ","U":"Scotland","D":"2025","C":"GolfLink Evolve Esie O'Mahony Jamie O'Reilly Andy Bennett","J":"New","S":"Open","B":"","H":"","Y":"2025-07-15","Z":"PM Jamie O'Reilly","M":"Balmedie "},
+{"G":"Ury Estate ","A":"Jack Nicklaus Bouts","L":"Aberdeen ","U":"Scotland","D":"2027","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-01","Z":"","M":""},
+{"G":"Machrihanish Dunes 2 ","A":"","L":"Campbeltown ","U":"Scotland","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-09-15","Z":"","M":"Kintyre "},
+{"G":"Royal Dornoch New ","A":"King Collins Dormer","L":"Sutherland ","U":"Scotland","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-01","Z":"","M":" "},
+{"G":"Cabot Highlands Old Petty ","A":"Tom Doak Clyde Johnson","L":"Inverness ","U":"Scotland","D":"2025","C":"Chris Haspell","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-03","Z":"Castle Stuart","M":"cunningolf "},
+{"G":"Feddinch A&M ","A":"Phil Smith","L":"near St. Andrews ","U":"Scotland","D":"2027","C":"MJ Abbott Paddy Quinn","J":"New","S":"Construction","B":"","H":"Tom Weiskopf","Y":"2025-10-02","Z":"Feddinch Mains","M":"Filing "},
+{"G":"Limassol Greens ","A":"Cabell Robinson","L":"Cyprus ","U":"Cyprus","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-10","Z":"","M":"Mediterranean Golf Resort "},
+{"G":"Pirkkala ","A":"Tim Lobb Kari Haug","L":"Finland ","U":"Finland","D":"2026","C":"Turnkey Golf","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-02-28","Z":"","M":""},
+{"G":"Paragraph Tabori ","A":"Golfplan","L":"Tbilisi ","U":"Georgia","D":"2025","C":"IMG","J":"New 9","S":"Open","B":"","H":"","Y":"2025-10-03","Z":"","M":""},
+{"G":"Oddur GC ","A":"RTJ Charlton Gorman","L":"Reykjavik ","U":"Iceland","D":"2027","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2025-09-30","Z":"","M":""},
+{"G":"Selfoss ","A":"Edwin Roald","L":"Laugardælir ","U":"Iceland","D":"2026","C":"","J":"New 9","S":"Ongoing","B":"","H":"","Y":"2024-04-24","Z":"New 9","M":"2026 Plan "},
+{"G":"La Maviglia ","A":"Städler Reinmuth","L":"Puglia ","U":"Italy","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-05-09","Z":"","M":""},
+{"G":"The Peaks Lustica Bay ","A":"Gary Player Steven McFarlane","L":"Tivat ","U":"Montenegro","D":"2026","C":"Darren Turner ProGolf Brasil","J":"New","S":"Construction","B":"","H":"","Y":"2025-09-15","Z":"EDSA Turfgrass Agronomy","M":"Site Landplan "},
+{"G":"Terras da Comporta Torre ","A":"Olazabal NCM Vilhjalmsson Matthias Nemes Snorri","L":"Lisbon ","U":"Portugal","D":"2025","C":"CJW Conor Walsh David Minogue","J":"New","S":"Open","B":"","H":"","Y":"2025-06-01","Z":"Sergio Garcia","M":"T.A.S. "},
+{"G":"Ponta do Pargo ","A":"Nick Faldo Andy Haggar","L":"Madeira ","U":"Portugal","D":"2026","C":"Paul Jansen Adam Kelland Himalayas Golf","J":"New","S":"Construction","B":"$14M","H":"","Y":"2025-07-07","Z":"Jean-Luc Regaud","M":""},
+{"G":"Majarambuz ","A":"Tom Doak","L":"Andalucia ","U":"Spain","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-03","Z":"Zagaleta","M":""},
+{"G":"Val de Rois ","A":"CDP Pont Hilgert","L":"A Coruña ","U":"Spain","D":"2028","C":"Gonzalo Fernández Castaño","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-09-14","Z":"","M":""},
+{"G":"Crownwood Club ","A":"Henrik Stenson Christian Lundin","L":"Ängelholm ","U":"Sweden","D":"2025","C":"All Golf Services","J":"New","S":"Open","B":"","H":"","Y":"2025-10-06","Z":"Arild Karlsen","M":""},
+{"G":"Lee Point ","A":"Ben Davey","L":"Darwin ","U":"Australia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-09","Z":"Muirhead North","M":""},
+{"G":"Cliffs Kangaroo Island ","A":"Darius Oliver","L":"South Aus. ","U":"Australia","D":"2026","C":"Programmed Turnpoint Lindsay Richter Glen Peck Cameron Semple","J":"New","S":"Grow In","B":"$14M","H":"","Y":"2025-01-14","Z":"Clifftop golf","M":"Sam Atkins "},
+{"G":"7 Mile Beach ","A":"CDP Clayton DeVries","L":"Tasmania ","U":"Australia","D":"2025","C":"","J":"New","S":"Grow In","B":"","H":"","Y":"2025-04-24","Z":"Mathew Goggin","M":"Hobart "},
+{"G":"7 Mile Beach North ","A":"Tad King Rob Collins Trev Dormer","L":"Tasmania ","U":"Australia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-08-01","Z":"","M":"aerial "},
+{"G":"Douglas Links ","A":"Darius Oliver","L":"North Island ","U":"NZ","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-06-03","Z":"","M":""},
+{"G":"Muriwai Downs ","A":"Kyle Phillips Mark Thawley","L":"North Island ","U":"NZ","D":"2027","C":"Ryan Brandeburg","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-11","Z":"Greg Turner","M":""},
+{"G":"Gibbston Valley ","A":"Greg Turner","L":"South Island ","U":"NZ","D":"2025","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2024-02-09","Z":"","M":"Resort "},
+{"G":"Glendhu ","A":"John Darby","L":"South Island ","U":"NZ","D":"2025","C":"Jonny Youngman Peak Earth Shaping","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-05","Z":"","M":""},
+{"G":"Hogans Gully ","A":"Hanse Greg Turner","L":"South Island ","U":"NZ","D":"2028","C":"Reece Haspell","J":"New","S":"Construction","B":"","H":"","Y":"2024-09-07","Z":"","M":""},
+{"G":"Al Areen ","A":"Olazabal Matthias Nemes","L":"Bahrain ","U":"Bahrain","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-20","Z":"Rupert Eichler","M":"GFH Financial "},
+{"G":"Rashid Equestrian Club ","A":"Sergio Garcia","L":"Riffa ","U":"Bahrain","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-02-06","Z":"","M":""},
+{"G":"Chhun On Palms ","A":"Brian Curley Jim Wagner","L":"Phnom Penh ","U":"Cambodia","D":"2025","C":"Flagstick","J":"New","S":"Open","B":"","H":"","Y":"2025-01-17","Z":"Lynkz Zoysia","M":""},
+{"G":"Bay of Lights ","A":"Greg Norman","L":"Sihanoukville ","U":"Cambodia","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"$41M","H":"","Y":"2025-07-16","Z":"Canopy Sands","M":"thebayoflights "},
+{"G":"Plover Cove GC ","A":"Fry Straka","L":"Hong Kong ","U":"China","D":"2027","C":"Flagstick","J":"New","S":"Construction","B":"","H":"","Y":"2025-03-08","Z":"Irrigation CADSULT IDS","M":"PM John Clarkin Turfgrass "},
+{"G":"Zion Hills ","A":"George Philpott","L":"Bangalore ","U":"India","D":"2025","C":"Bill Kessener","J":"New 9","S":"Open","B":"","H":"Golfplan","Y":"2025-06-30","Z":"","M":"Back 9 "},
+{"G":"Noida International GC ","A":"Vijit Nandrajog","L":"Delhi ","U":"India","D":"2026","C":"Kashyapi","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-06","Z":"Golf Design India","M":""},
+{"G":"Citra City ","A":"Nicklaus Design","L":"Bogor ","U":"Indonesia","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-29","Z":"Sean Quinn","M":""},
+{"G":"Dhoho GC ","A":"Brian Curley Jim Wagner","L":"East Java ","U":"Indonesia","D":"2025","C":"Flagstick","J":"New 27","S":"Construction","B":"","H":"","Y":"2024-04-11","Z":"Irrigation CADSULT IDS","M":"suryadhoho "},
+{"G":"Royale Nusantara Golf Resort ","A":"","L":"East Kalimantan ","U":"Indonesia","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-13","Z":"","M":""},
+{"G":"Black Eagle GC ","A":"Chandra Leo","L":"Semarang ","U":"Indonesia","D":"2025","C":"Turfindo Makmur Abadi","J":"New","S":"Open","B":"$18M","H":"","Y":"2025-09-23","Z":"","M":"BSB City "},
+{"G":"Bukit Asam ","A":"Chandra Leo","L":"Sumatra ","U":"Indonesia","D":"2025","C":"Turfindo Makmur Abadi","J":"New","S":"Open","B":"","H":"","Y":"2025-09-13","Z":"","M":""},
+{"G":"That Luang Golf Village ","A":"Nick Faldo","L":"Vientiane ","U":"Laos","D":"2026","C":"Mark Adams Flagstick","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-02","Z":"","M":""},
+{"G":"Trump Aida ","A":"TBA","L":"Muscat ","U":"Oman","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-03-05","Z":"","M":""},
+{"G":"Capital Hills Canyon GC ","A":"Peter Harradine","L":"Islamabad ","U":"Pakistan","D":"2028","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-15","Z":"Pure Dynasty Paspalum","M":"Landscape "},
+{"G":"Fairwinds Signature ","A":"Nick Faldo Andy Haggar","L":"Karachi ","U":"Pakistan","D":"2027","C":"Abubakar Siddique","J":"New","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"GEO Certified","M":"Faldo Design "},
+{"G":"Villar City ","A":"Curley Wagner","L":"Cavite ","U":"Philippines","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-01-15","Z":"","M":"curley_wagner "},
+{"G":"Hann Reserve Dragons Landing ","A":"Nicklaus Jim Wagner","L":"New Clark City ","U":"Philippines","D":"2026","C":"IMG W R RockGroup","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"Chris Gray","M":"PGA "},
+{"G":"Hann Reserve Valley ","A":"John Cope","L":"New Clark City ","U":"Philippines","D":"2026","C":"IMG W R RockGroup","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"KJ Choi","M":"Turf Company Toro "},
+{"G":"Trump Simaisma ","A":"Trump","L":"Qatar ","U":"Qatar","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-01","Z":"","M":""},
+{"G":"Shishkino CC ","A":"Agustín Pizá Jake McTavish","L":"Moscow ","U":"Russia","D":"2025","C":"Geokam Ostap Lukiyanov TS-Pro","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-01","Z":"","M":"PM Matt Marsh "},
+{"G":"AMAALA Ocean Course ","A":"Cynthia Dye Designs Matt McGarey","L":"AMAALA ","U":"Saudi Arabia","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-21","Z":"","M":"amaala_sa "},
+{"G":"Royal Diriyah Wadi Safar ","A":"Greg Norman","L":"Diriyah Gate ","U":"Saudi Arabia","D":"2025","C":"Heritage Links Garden & Golf","J":"New 27","S":"Open","B":"","H":"","Y":"2025-05-05","Z":"9 holes open","M":"AquaFuse "},
+{"G":"Gidori ","A":"Ernie Els","L":"Gulf of Aqaba ","U":"Saudi Arabia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-28","Z":"NEOM","M":"Community Architects "},
+{"G":"Laheq Island ","A":"Brian Curley Jim Wagner","L":"Red Sea ","U":"Saudi Arabia","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-08-10","Z":"","M":""},
+{"G":"Qiddiya ","A":"Nick Faldo","L":"Qiddiya ","U":"Saudi Arabia","D":"2026","C":"Saudi Salco Flagstick","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-19","Z":"","M":"Championship Golf "},
+{"G":"Shura Links ","A":"Brian Curley","L":"Red Sea ","U":"Saudi Arabia","D":"2025","C":"Saudi Salco","J":"New","S":"Open","B":"","H":"","Y":"2025-09-30","Z":"Atlas Turf","M":"Paspalum "},
+{"G":"Trojena Northern ","A":"McDowell Dusenberry","L":"Sarawat ","U":"Saudi Arabia","D":"2029","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-08-10","Z":"","M":""},
+{"G":"Sharm El Sheikh ","A":"RTJ Gorman Charlton","L":"Sharm El Sheikh ","U":"Saudi Arabia","D":"2027","C":" Talaat Moustafa Ben Silva ProGolf","J":"New","S":"Construction","B":"","H":"","Y":"2025-09-25","Z":"","M":""},
+{"G":"Monovision ","A":"Nicklaus Heritage Design","L":"Donghae ","U":"South Korea","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-12","Z":"","M":""},
+{"G":"Eagles Citadel ","A":"","L":"Sigiriya ","U":"Sri Lanka","D":"2025","C":"","J":"New","S":"Open","B":"","H":"","Y":"2025-06-27","Z":"","M":""},
+{"G":"Dalaman ","A":"Jon Hunt Andrew Craven","L":"Mugla ","U":"Turkey","D":"2026","C":"Irriplan Irrigation","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-15","Z":"IDG","M":"Sand "},
+{"G":"Al Nawras Island ","A":"Dave Sampson EGD","L":"Abu Dhabi ","U":"UAE","D":"2026","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-01-11","Z":"EIGCA","M":"LXR Golf Resort "},
+{"G":"Discovery Dunes ","A":"Tom Fazio","L":"Dubai ","U":"UAE","D":"2025","C":"Discovery Land","J":"New","S":"Construction","B":"","H":"","Y":"2025-06-15","Z":"","M":""},
+{"G":"Emaar Dubai South ","A":"Gary Johnston Jeremy Slessor","L":"Dubai ","U":"UAE","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-11","Z":"EGD New 9","M":"Desert Golf "},
+{"G":"Truong Thinh ","A":"Greg Norman","L":"Bao Ninh ","U":"Vietnam","D":"2025","C":"Flagstick Gavin Reid","J":"New","S":"Grow In","B":"$32M","H":"","Y":"2025-06-10","Z":"Dong Hoi","M":"18th hole "},
+{"G":"Ha Long Xanh ","A":"Clayton DeVries Pont Hilgert","L":"Ha Long ","U":"Vietnam","D":"2026","C":"Harley Kruse","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-10-12","Z":"Vingroup","M":"West Course "},
+{"G":"Silk Path Dong Trieu ","A":"Nick Faldo Andy Haggar","L":"Hanoi ","U":"Vietnam","D":"2025","C":"Adam Calver","J":"New","S":"Open","B":"","H":"","Y":"2025-01-11","Z":"Outfield Asia Nursery BunkerTex","M":"Toccoa Zoysia Pensacola Bahia "},
+{"G":"Stone Highland ","A":"Brian Curley","L":"Hanoi ","U":"Vietnam","D":"2025","C":"Truong An","J":"New 36","S":"Open","B":"","H":"","Y":"2025-08-05","Z":"Viet Yen GC","M":"Mountain Golf "},
+{"G":"Vinpearl Golf Léman ","A":"David Dale Kevin Ramsey GolfPlan","L":"Ho Chi Minh ","U":"Vietnam","D":"2025","C":"Flagstick GCCM Mark Turner","J":"New 36","S":"Open","B":"","H":"","Y":"2025-10-05","Z":"Irrigation CADSULT IDS","M":"SandTrapper lining "},
+{"G":"Tudi TBA ","A":"Olazabal Anton Ortner","L":"Hoa Binh ","U":"Vietnam","D":"2026","C":"","J":"New 36","S":"Construction","B":"","H":"","Y":"2025-01-19","Z":"","M":""},
+{"G":"Trump Hung Yen ","A":"(reGolf) Christian Lundin Jeff Lynch","L":"Kinhbac City ","U":"Vietnam","D":"2027","C":"","J":"New 54","S":"Construction","B":"","H":"","Y":"2025-05-23","Z":"Bryson DeChambeau","M":""},
+{"G":"An Thoi ","A":"TBA","L":"Phu Quoc ","U":"Vietnam","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-04-09","Z":"","M":""},
+{"G":"Sao Beach ","A":"TBA","L":"Phu Quoc ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-09","Z":"Sonasea","M":"CEO Group "},
+{"G":"Van Lang Empire ","A":"Greg Norman","L":"Phú Th? ","U":"Vietnam","D":"2025","C":"Flagstick GCCM Jake McTavish","J":"New 36","S":"Open","B":"","H":"","Y":"2025-04-13","Z":"54 Ben Styles","M":"Sports Turf Solutions "},
+{"G":"Uong Bi City ","A":"Nicklaus Design","L":"Quang Ninh ","U":"Vietnam","D":"2029","C":"Ha Long Bay Golf Development","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-22","Z":"Nui Cuong","M":""},
+{"G":"MerryLand ","A":"Greg Norman","L":"Quy Nhon ","U":"Vietnam","D":"2025","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-06-05","Z":"","M":"Property Intro "},
+{"G":"Glory GC ","A":"Johei Miyazawa","L":"Thái Nguyen ","U":"Vietnam","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-04-02","Z":"Goldwater Korea","M":""},
+{"G":"Nui Coc National ","A":"","L":"Thái Nguyen ","U":"Vietnam","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-09","Z":"Lynkz Zoysia","M":""},
+{"G":"Legend Valley North ","A":"Nicklaus Design Sean Quinn John Carson","L":"Thua Thien-Hue ","U":"Vietnam","D":"2025","C":"Shang Yih Bill Rosmarino WR RockGroup ","J":"New","S":"Construction","B":"","H":"","Y":"2025-08-09","Z":"Toro Irrigation Jebsen Jessen","M":""},
+{"G":"Avlékété ","A":"Jeremy Pern","L":"Atlantique ","U":"Benin","D":"2026","C":"Gregori International","J":"New","S":"Construction","B":"","H":"","Y":"2024-12-30","Z":"Atlas Turf International","M":"Greens Construction "},
+{"G":"Somabay ","A":"Tim Lobb","L":"Cairo ","U":"Egypt","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-01-08","Z":"","M":"Pure Dynasty "},
+{"G":"Ras El Hekma ","A":"Tim Lobb Sergio Carballo","L":"Mersa Matruh ","U":"Egypt","D":"2029","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-11-15","Z":"","M":""},
+{"G":"CityGate ","A":"Tim Lobb","L":"New Cairo ","U":"Egypt","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-12-30","Z":"","M":""},
+{"G":"Four Seasons Resort ","A":"RTJ II Mike Gorman","L":"Sharm El Sheikh ","U":"Egypt","D":"2026","C":"Will Righton TMG Golf","J":"New","S":"Construction","B":"","H":"","Y":"2025-07-25","Z":"54 Turfgrass PM Craig Hanney","M":""},
+{"G":"Zimbali Lakes ","A":"Ernie Els","L":"Durban ","U":"South Africa","D":"2025","C":"Golf Data","J":"New","S":"Open","B":"","H":"","Y":"2025-04-10","Z":"Pieter Du Plessis","M":"Robert McLean "},
+{"G":"Links Experience ","A":"Gary Player Johann Jacobs","L":"George ","U":"South Africa","D":"2025","C":"","J":"New 9","S":"Open","B":"","H":"","Y":"2025-02-12","Z":"Fancourt","M":""},
+{"G":"Mount Royal GC ","A":"Robbie Marshall","L":"Malmesbury ","U":"South Africa","D":"2025","C":"","J":"New 9","S":"Construction","B":"","H":"","Y":"2025-08-28","Z":"Golf Data","M":""},
+{"G":"Serengeti National Park ","A":"David Hemstock","L":"Fort Ikoma ","U":"Tanzania","D":"2026","C":"Richard Matolo Zacharia Edward","J":"New","S":"Construction","B":"$3.7M","H":"","Y":"2025-06-02","Z":"Golf Tourism","M":""},
+{"G":"Jasper Park ","A":"Ian Andrew","L":"Alberta ","U":"Canada","D":"2027","C":"Landscapes Unlimited","J":"Restore","S":"Ongoing","B":"","H":"","Y":"2025-06-15","Z":"LU Golf & Fields","M":""},
+{"G":"Lac La Biche ","A":"David Dale GolfPlan","L":"Alberta ","U":"Canada","D":"2028","C":"","J":"Masterplan","S":"Ongoing","B":"$4.5M","H":"","Y":"2024-10-22","Z":"","M":""},
+{"G":"River Bend ","A":"Wade Horrocks","L":"Alberta ","U":"Canada","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$4M","H":"","Y":"2025-05-24","Z":"Rain Bird Midwest Turf Irrigation","M":""},
+{"G":"Chilliwack ","A":"Tim Lobb Alex Hay","L":"BC ","U":"Canada","D":"2025","C":"","J":"Renovate","S":"Masterplan","B":"","H":"Brown","Y":"2022-12-14","Z":"","M":"Oliver Tubb "},
+{"G":"Dodger Hallo Nelson ","A":"Doug Carrick","L":"BC ","U":"Canada","D":"2028","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-08-26","Z":"was Granite Pointe","M":""},
+{"G":"Okanagan GC Quail ","A":"Tim Lobb","L":"BC ","U":"Canada","D":"2025","C":"Chris Young","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-04-06","Z":"","M":""},
+{"G":"Olympic View GC ","A":"Alex Hay Lobb","L":"BC ","U":"Canada","D":"2027","C":"Chris Young","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-28","Z":"","M":""},
+{"G":"Peachland ","A":"Les Furber","L":"BC ","U":"Canada","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-04-20","Z":"Pincushion","M":""},
+{"G":"University GC ","A":"Alex Hay Lobb","L":"BC ","U":"Canada","D":"2026","C":"Todd Goodwin","J":"Masterplan","S":"Ongoing","B":"","H":"Macan","Y":"2025-05-02","Z":"","M":""},
+{"G":"Whistler GC ","A":"Thad Layton","L":"BC ","U":"Canada","D":"2027","C":"","J":"Renovate","S":"Construction","B":"$10M","H":"Palmer","Y":"2025-09-28","Z":"","M":"Phase 1 "},
+{"G":"Bearspaw CC ","A":"Wade Horrocks","L":"Calgary ","U":"Canada","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-07-30","Z":"","M":"GCA "},
+{"G":"Glencoe G&CC ","A":"Whitmax Axland Cutten","L":"Calgary ","U":"Canada","D":"2028","C":"","J":"Renovate","S":"Construction","B":"","H":"RTJ Sr.","Y":"2025-10-07","Z":"","M":"Plan "},
+{"G":"Breezy Bend CC ","A":"Tyler Kearns","L":"Manitoba ","U":"Canada","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-09-25","Z":"","M":"Prairie Golf Design "},
+{"G":"St. Charles ","A":"Jim Urbina Riley Johns","L":"Manitoba ","U":"Canada","D":"2026","C":"Thad Layton","J":"Restore","S":"Grow In","B":"$9.9M","H":"Ross MacKenzie","Y":"2025-09-18","Z":"","M":"Ross 9 "},
+{"G":"Belwood GC ","A":"Doug Carrick","L":"Ontario ","U":"Canada","D":"2027","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-10-31","Z":"was Fergus GC","M":"Lake Belwood "},
+{"G":"Toronto Hunt ","A":"Christine Fraser","L":"Ontario ","U":"Canada","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"$6M","H":"George Cumming","Y":"2023-11-14","Z":"","M":"Design Presentation "},
+{"G":"Berthier GC ","A":"Warren Huxham Darrell Huxham","L":"Quebec ","U":"Canada","D":"2026","C":"Chris Vandette","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-06-19","Z":"","M":""},
+{"G":"Grand-Mére ","A":"Andy Staples","L":"Quebec ","U":"Canada","D":"2027","C":"","J":"Restore","S":"Ongoing","B":"","H":"Walter Travis","Y":"2025-08-30","Z":"","M":""},
+{"G":"Hillsdale ","A":"Whitman Axland Cutten","L":"Quebec ","U":"Canada","D":"2026","C":"NMP Golf","J":"Rebuild ","S":"Construction","B":"","H":"Howard Watson","Y":"2025-02-23","Z":"","M":"36 holes "},
+{"G":"Saint-Raphaël ","A":"Neil Haworth","L":"Quebec ","U":"Canada","D":"2025","C":"NMP Golf","J":"Redesign","S":"Open","B":"","H":"","Y":"2025-09-23","Z":"","M":""},
+{"G":"Coal Club ","A":"Hanse Wagner","L":"Alabama ","U":"USA","D":"2028","C":"","J":"Reopen","S":"Drawing boards ","B":"","H":"","Y":"2025-07-09","Z":"NLE Capstone","M":""},
+{"G":"Cypress Creek GC ","A":"Jerry Pate","L":"Alabama ","U":"USA","D":"2025","C":"Mid-America Golf","J":"Rebuild ","S":"Open","B":"$13.7M","H":"","Y":"2025-10-01","Z":"Thompson Engineering","M":""},
+{"G":"Shoal Creek ","A":"Andrew Green","L":"Alabama ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$22M","H":"","Y":"2025-09-09","Z":"TifEagle Greens Stadium Zoysia Fairway","M":""},
+{"G":"Willow Point GC ","A":"Dana Fry Jason Straka","L":"Alabama ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"","H":"Nicol Hurdzan Fry","Y":"2023-12-07","Z":"","M":""},
+{"G":"Apache Wells CC ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$1.3M","H":"","Y":"2025-06-17","Z":"Turf Conversion","M":"Salt River Project "},
+{"G":"Boulders Resort North ","A":"Art Schaupeter","L":"Arizona ","U":"USA","D":"2025","C":"Casa Verde","J":"Renovate","S":"Open","B":"","H":"Morrish","Y":"2025-09-09","Z":"","M":""},
+{"G":"Cottonfields The Score ","A":"Forrest Richardson","L":"Arizona ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Short","S":"Construction","B":"","H":"","Y":"2025-04-04","Z":"was Southern Ridge","M":""},
+{"G":"DC Ranch ","A":"Tom Lehman","L":"Arizona ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$20M","H":"","Y":"2025-10-06","Z":"Turf reduction","M":"15% less water "},
+{"G":"Dell Urich GC ","A":"Kevin Norby","L":"Arizona ","U":"USA","D":"2025","C":"Duininck","J":"Renovate","S":"Construction","B":"$6M","H":"","Y":"2025-05-01","Z":"","M":"Walking path "},
+{"G":"Desert Highlands ","A":"Nicklaus Design Chad Goetz","L":"Arizona ","U":"USA","D":"2026","C":"Heritage Links","J":"Restore","S":"Construction","B":"$9.8M","H":"","Y":"2025-04-24","Z":"Flexxscape Bunker Liner","M":""},
+{"G":"Desert Hills GC ","A":"","L":"Arizona ","U":"USA","D":"2025","C":"Gary Kaye Irrigation","J":"Irrigation","S":"Construction","B":"","H":"","Y":"2025-08-26","Z":"","M":""},
+{"G":"Desert Mountain Apache ","A":"Nicklaus Design Chad Goetz","L":"Arizona ","U":"USA","D":"2025","C":"Wadsworth","J":"Regrass","S":"Open","B":"","H":"Nicklaus","Y":"2025-09-29","Z":"Tahoma 31","M":"West Coast Turf "},
+{"G":"Dove Mountain ","A":"Nicklaus Design","L":"Arizona ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate 36","S":"Ongoing","B":"$15M","H":"Nicklaus","Y":"2024-02-02","Z":"Saguaro Tortolita","M":""},
+{"G":"FireRock CC ","A":"","L":"Arizona ","U":"USA","D":"2026","C":"","J":"Regrass","S":"Construction","B":"","H":"Panks","Y":"2025-09-27","Z":"Stadium Zoysia","M":""},
+{"G":"Laveen ","A":"Forrest Richardson","L":"Arizona ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Redesign","S":"Construction","B":"$11M","H":"","Y":"2025-08-21","Z":"was Southern Ridge GC","M":""},
+{"G":"Quintero GC ","A":"Rees Jones Steve Weisser","L":"Arizona ","U":"USA","D":"2025","C":"Total Turf GS","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-09-14","Z":"","M":""},
+{"G":"Sun City Echo Mesa ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$4.3M","H":"","Y":"2025-10-21","Z":"","M":"USGA Green Section "},
+{"G":"Tubac Golf Resort ","A":"","L":"Arizona ","U":"USA","D":"2026","C":"Troon","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-01-07","Z":"Dominator Bentgrass","M":""},
+{"G":"Annandale GC ","A":"Todd Eckenrode","L":"California ","U":"USA","D":"2026","C":"LGR LaBar","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-10-07","Z":"","M":""},
+{"G":"Arroyo Seco GC ","A":"Forrest Richardson","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$9M","H":"","Y":"2025-07-16","Z":"Municipal Golf","M":""},
+{"G":"Big Canyon ","A":"Andrew Green","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"Muirhead","Y":"2025-08-26","Z":"","M":""},
+{"G":"Blue Rock Springs GC ","A":"Greg Norman","L":"California ","U":"USA","D":"2028","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"","Y":"2025-09-10","Z":"","M":""},
+{"G":"Braemar ","A":"Lanny Wadkins Kurt Bowman","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Ted Robinson","Y":"2024-12-22","Z":"","M":""},
+{"G":"Burlingame CC ","A":"Todd Eckenrode","L":"California ","U":"USA","D":"2027","C":"LGR LaBar","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-07-15","Z":"Irrigation RMA Russell D. Mitchell","M":""},
+{"G":"Campus Commons GC ","A":"Damian Pascuzzo","L":"California ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"$3M","H":"","Y":"2025-05-10","Z":"","M":"Army Corps Engineers "},
+{"G":"Corica Park North ","A":"RTJ II","L":"California ","U":"USA","D":"2025","C":"Greenway Golf David Dow","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-03-28","Z":"Umesh Patel","M":"Trent Jones "},
+{"G":"Coronado GC ","A":"Grant Haserot","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$9M","H":"","Y":"2025-03-09","Z":"New Irrigation","M":"Turf Reduction "},
+{"G":"Degarmo Park ","A":"Celebrity Greens","L":"California ","U":"USA","D":"2025","C":"","J":"Short","S":"Construction","B":"$3M","H":"","Y":"2024-10-18","Z":"Grant Hornbeak","M":"9 holes "},
+{"G":"El Macero CC ","A":"David Dale Kevin Ramsey Golfplan","L":"California ","U":"USA","D":"2025","C":"DHR Golf Construction","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-09-01","Z":"","M":""},
+{"G":"Farms Rancho Santa Fe ","A":"Tim Liddy","L":"California ","U":"USA","D":"2025","C":"Elliot Tagliapietra","J":"Renovate","S":"Construction","B":"$18M","H":"Fought Lehman","Y":"2025-05-17","Z":"","M":"Fairway "},
+{"G":"Fountaingrove Club ","A":"","L":"California ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"$5M","H":"Ted Robinson","Y":"2025-03-27","Z":"","M":""},
+{"G":"Hideaway ","A":"Tim Liddy Clive Clark","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate 36","S":"Construction","B":"","H":"Clive Clark","Y":"2024-12-20","Z":"","M":"Greens reconstruction "},
+{"G":"Indian Wells Resort Players ","A":"John Fought","L":"California ","U":"USA","D":"2025","C":"Nick Leitner Landscapes Unlimited","J":"Redesign","S":"Construction","B":"$5M","H":"Ted Robinson","Y":"2025-05-03","Z":"Irrigation David Yoshamira PM Larry Barefield","M":"Construction Update "},
+{"G":"Ironwood CC North ","A":"John Fought","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-05-30","Z":"","M":""},
+{"G":"La Rinconada CC ","A":"Todd Eckenrode","L":"California ","U":"USA","D":"2026","C":"LGR LaBar","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-07-15","Z":"Irrigation RMA Russell D. Mitchell","M":"Harris Kalinka "},
+{"G":"La Valle Coastal Club ","A":"","L":"California ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-04-25","Z":"","M":""},
+{"G":"Maggie Hathaway ","A":"Hanse Wagner Tommy Naccarato","L":"California ","U":"USA","D":"2025","C":"Total Turf GS Cristian Velasquez Fernando Cerrillo Shellene Elmore","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-05-01","Z":"Irrigation Heritage Links","M":"Carlos Garcia Pancho Salome Salvador Granados "},
+{"G":"Pasatiempo GC ","A":"Jim Urbina","L":"California ","U":"USA","D":"2025","C":"Earthsculptures Justin Mandon Theisen Downing","J":"Restore","S":"Open","B":"","H":"MacKenzie","Y":"2025-05-02","Z":"Toro Lynx","M":"Brett Hochstein "},
+{"G":"Peninsula G&CC ","A":"Tyler Rae","L":"California ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-11-16","Z":"","M":"Restoration "},
+{"G":"Plantation ","A":"Brian Curley","L":"California ","U":"USA","D":"2025","C":"LaBar","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-08-14","Z":"Billy Bunker","M":""},
+{"G":"Poppy Ridge ","A":"Jay Blasi","L":"California ","U":"USA","D":"2025","C":"Integrity Golf Robert Nelson Jeff Mason","J":"Rebuild","S":"Open","B":"","H":"Rees Jones","Y":"2025-05-31","Z":"West Coast Turf","M":"Josh Lewis Ben Malach "},
+{"G":"Richmond GC ","A":"Pacific Golf Design Robert Vincent","L":"California ","U":"USA","D":"2025","C":"Earthsculptures","J":"Renovate","S":"Construction","B":"$2.2M","H":"","Y":"2025-08-28","Z":"","M":" "},
+{"G":"San Diego CC ","A":"Brian Schneider","L":"California ","U":"USA","D":"2027","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"William Watson","Y":"2025-04-20","Z":" Construction Start 2026 Autumn","M":"Improvements "},
+{"G":"Sandpiper ","A":"Tom Doak","L":"California ","U":"USA","D":"2028","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"Billy Bell Jr.","Y":"2024-04-14","Z":"","M":""},
+{"G":"Sequoyah CC ","A":"Jay Blasi","L":"California ","U":"USA","D":"2027","C":"LGR LaBar","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2025-03-09","Z":"West Coast Turf Irrigation RMA Russell D. Mitchell","M":""},
+{"G":"SilverRock Resort ","A":"","L":"California ","U":"USA","D":"2026","C":"","J":"Regrass","S":"Ongoing","B":"","H":"","Y":"2025-07-22","Z":"","M":""},
+{"G":"Singing Hills Pine Glen ","A":"","L":"California ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-03-31","Z":"","M":""},
+{"G":"Spanish Bay ","A":"Hanse Wagner","L":"California ","U":"USA","D":"2027","C":"","J":"Reset","S":"Drawing boards ","B":"","H":"RTJ Jr.","Y":"2023-09-13","Z":"","M":"Fried Egg "},
+{"G":"Springs GC Rancho Mirage ","A":"Cary Bickler","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$16M","H":"Muirhead","Y":"2025-03-31","Z":"Rain Bird Irrigation","M":""},
+{"G":"Tahoe City ","A":"","L":"California ","U":"USA","D":"2025","C":"DHR Golf","J":"Irrigation","S":"Open","B":"$2.1M","H":"","Y":"2025-08-26","Z":"","M":""},
+{"G":"Tustin Ranch GC ","A":"","L":"California ","U":"USA","D":"2025","C":"Gary Kaye Irrigation","J":"Irrigation","S":"Ongoing","B":"","H":"","Y":"2025-08-26","Z":"","M":""},
+{"G":"Wilshire CC ","A":"Kyle Phillips Mark Thawley","L":"California ","U":"USA","D":"2025","C":"David Dow","J":"Restore","S":"Construction","B":"","H":"Norman Macbeth","Y":"2025-01-09","Z":"","M":"Design Plan "},
+{"G":"Boomerang Links GC ","A":"","L":"Colorado ","U":"USA","D":"2025","C":"Zak George Landscaping","J":"Short","S":"Open","B":"$500K","H":"","Y":"2025-09-06","Z":"","M":"Mike Lee 9 "},
+{"G":"Boulder CC ","A":"Kevin Atkinson","L":"Colorado ","U":"USA","D":"2026","C":"Total Turf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-11-16","Z":"","M":"17th hole "},
+{"G":"Flatirons GC ","A":"Cynthia Dye Designs Matt McGarey","L":"Colorado ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-02-07","Z":"","M":""},
+{"G":"Heritage Eagle Bend ","A":"Todd Schoeder","L":"Colorado ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Arthur Hills","Y":"2024-10-07","Z":"Irrigation Larry Rodgers","M":""},
+{"G":"Lakewood Fox Hollow ","A":"Thad Layton","L":"Colorado ","U":"USA","D":"2025","C":"Viridity Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-04-09","Z":"","M":""},
+{"G":"Prairie Point ","A":"Don Blankenship Brad Klein","L":"Colorado ","U":"USA","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-07-12","Z":"Oakwood Aurora","M":"Kings Point "},
+{"G":"Pinehurst CC ","A":"","L":"Colorado ","U":"USA","D":"2028","C":"","J":"Masterplan","S":"","B":"$21M","H":"Maxwell","Y":"2025-03-30","Z":"","M":""},
+{"G":"Vail GC ","A":"Kevin Atkinson","L":"Colorado ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-08-07","Z":"Scott Schreiber Wright Water Engineers","M":""},
+{"G":"New Canaan ","A":"Andrew Green","L":"Connecticut ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Park Travis","Y":"2024-11-26","Z":"","M":""},
+{"G":"Patterson Club ","A":"Jaegar Kovich","L":"Connecticut ","U":"USA","D":"2026","C":"LGR LaBar","J":"Renovate","S":"Construction","B":"","H":"RTJ Sr.","Y":"2025-05-27","Z":"Paul Roche Golf Water","M":""},
+{"G":"Shorehaven ","A":"Blake Conant","L":"Connecticut ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Robert White","Y":"2024-10-21","Z":"","M":"Interview "},
+{"G":"Shuttle Meadow CC ","A":"Nick Campanelli Brad Klein","L":"Connecticut ","U":"USA","D":"2028","C":"","J":"Restore","S":"Ongoing","B":"","H":"Park","Y":"2025-05-17","Z":"MDLA Landscape Architects","M":""},
+{"G":"Silver Spring CC ","A":"Brian Schneider","L":"Connecticut ","U":"USA","D":"2026","C":"LGR LaBar Jake Williams Andrej Buchko","J":"Renovate","S":"Ongoing","B":"","H":"Tillinghast","Y":"2025-04-23","Z":"Tanto Irrigation","M":"Greens "},
+{"G":"Stanwich Cauldron ","A":"Oglivy Cocking Mead","L":"Connecticut ","U":"USA","D":"2025","C":"LaBar","J":"Short","S":"Open","B":"","H":"","Y":"2025-09-21","Z":"","M":"16th hole "},
+{"G":"Wallingford CC ","A":"Mark Mungeam","L":"Connecticut ","U":"USA","D":"2025","C":"Turco US Pitchcare","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-25","Z":"","M":""},
+{"G":"Yale ","A":"Hanse Wagner","L":"Connecticut ","U":"USA","D":"2026","C":"Hawk Shaw Michael Porteus","J":"Restore","S":"Construction","B":"$15M","H":"Macdonald Raynor","Y":"2025-06-01","Z":"Ben Hillard","M":"Jeff Austin "},
+{"G":"Amelia Island Oak Marsh ","A":"Beau Welling Hunter Rigsby","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$7.4M","H":"Pete Dye","Y":"2025-04-30","Z":"","M":""},
+{"G":"BallenIsles ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","D":"2025","C":"","J":"Short 10","S":"Open ","B":"$6M","H":"","Y":"2025-04-30","Z":"","M":""},
+{"G":"Bear Lakes Links ","A":"Davis Love","L":"Florida ","U":"USA","D":"2026","C":"","J":"Re-design","S":"Drawing boards ","B":"","H":"Nicklaus","Y":"2025-04-30","Z":"","M":"Routing "},
+{"G":"Belleair CC East ","A":"Jason Straka Dana Fry","L":"Florida ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-11-04","Z":"","M":""},
+{"G":"Blue Cypress GC ","A":"Michael Beebe","L":"Florida ","U":"USA","D":"2025","C":"Troon","J":"New 3","S":"Open","B":"","H":"","Y":"2025-08-12","Z":"Muni","M":""},
+{"G":"Boca Royale G&CC ","A":"Gordy Lewis","L":"Florida ","U":"USA","D":"2025","C":"CreekBridge Construction","J":"Renovate","S":"Open","B":"","H":"Pete Dye","Y":"2025-02-25","Z":"","M":""},
+{"G":"Boca West CC ","A":"Dana Fry Jason Straka","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Pete Dye","Y":"2025-03-21","Z":"Aqua Turf International","M":""},
+{"G":"Broken Sound Club ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Gene Bates","Y":"2025-07-21","Z":"","M":""},
+{"G":"Candler Hills ","A":"","L":"Florida ","U":"USA","D":"2025","C":"GSI","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-07-06","Z":"USGA Spec Green","M":" "},
+{"G":"CC of Miami ","A":"Lee Marshall","L":"Florida ","U":"USA","D":"2027","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2025-07-06","Z":"","M":"Start "},
+{"G":"Club at Eaglebrooke ","A":"","L":"Florida ","U":"USA","D":"2025","C":"Mondragon Golf","J":"Renovate","S":"Open","B":"$1M","H":"Ron Garl","Y":"2025-09-17","Z":"","M":""},
+{"G":"Club at Ibis ","A":"Nicklaus Design Chris Cochran","L":"Florida ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-02-15","Z":"","M":""},
+{"G":"Colonial CC ","A":"Gordon Lewis","L":"Florida ","U":"USA","D":"2025","C":"Clark Construction","J":"Renovate","S":"Construction","B":"$10M","H":"Gordon Lewis","Y":"2025-07-07","Z":"Troon Golf","M":"Sod "},
+{"G":"Crandon ","A":"","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$5M","H":"Von Hagge Devlin","Y":"2025-01-26","Z":"Paspalum","M":""},
+{"G":"Crane Creek ","A":"","L":"Florida ","U":"USA","D":"2025","C":"Wesco Turf","J":"Renovate","S":"Open","B":"$0.8M","H":"Amick","Y":"2025-01-09","Z":"","M":""},
+{"G":"Deerwood CC ","A":"Erik Larsen","L":"Florida ","U":"USA","D":"2026","C":"MacCurrach","J":"Renovate","S":"Drawing boards ","B":"","H":"Cobb","Y":"2025-09-18","Z":"The Approach","M":""},
+{"G":"Everglades Club ","A":"Steve Smyers","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Seth Raynor","Y":"2025-07-05","Z":"","M":""},
+{"G":"Fort Walton Beach ","A":"","L":"Florida ","U":"USA","D":"2026","C":"KVL King Villages Landscaping & Golf Construction","J":"Renovate","S":"Ongoing","B":"$600K","H":"Bill Amick","Y":"2025-03-16","Z":"Temporary greens","M":""},
+{"G":"GC Crown Colony ","A":"Bill Bergin","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$12M","H":"","Y":"2025-01-09","Z":"","M":""},
+{"G":"Glen Kernan ","A":"Jim Furyk","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-09-09","Z":"","M":"Hampton Golf "},
+{"G":"Hollywood Beach ","A":"Richard Mandell","L":"Florida ","U":"USA","D":"2026","C":"Wadsworth QGS Construction","J":"Renovate","S":"Construction","B":"$12M","H":"","Y":"2025-05-11","Z":"McCumber Golf","M":"Muni "},
+{"G":"Hunters Run CC South ","A":"Beau Welling","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$18.4M","H":"Von Hagge","Y":"2025-06-28","Z":"","M":""},
+{"G":"Interlachen CC ","A":"Fazio Marzolf Rick Phelps Michael Benkusky","L":"Florida ","U":"USA","D":"2026","C":"Total Turf GS","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-04-30","Z":"Adam Moeller Turfgrass","M":""},
+{"G":"Jacksonville G&CC ","A":"Andy Staples","L":"Florida ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"$30M","H":"Clyde Johnston","Y":"2024-12-06","Z":"","M":"Master Planning "},
+{"G":"Jupiter Island Club ","A":"Andrew Green","L":"Florida ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Diddel Bel Jan","Y":"2025-02-13","Z":"","M":""},
+{"G":"Kelly Plantation ","A":"Bill Bergin","L":"Florida ","U":"USA","D":"2025","C":"Sanders Golf","J":"Renovate","S":"Open","B":"","H":"Gene Bates","Y":"2025-02-27","Z":"Bunkers Tees","M":""},
+{"G":"Killearn CC ","A":"Chris Wilczynski","L":"Florida ","U":"USA","D":"2025","C":"MacCurrach","J":"Rebuild 27","S":"Open","B":"","H":"Bill Amick","Y":"2025-04-09","Z":"Aqua Turf Irrigation","M":"TifTuf Fairways "},
+{"G":"Lake Worth Muni ","A":"Nicklaus","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$22M","H":"Langford Moreau Wilson","Y":"2025-03-06","Z":"","M":""},
+{"G":"Legends G&CC ","A":"","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Schulties","Y":"2025-05-21","Z":"","M":"Contouring "},
+{"G":"Miami Lakes ","A":"Bruce Hepner","L":"Florida ","U":"USA","D":"2026","C":"MacCurrach","J":"Renovate","S":"Ongoing","B":"$12M","H":"","Y":"2025-06-16","Z":"","M":"First Tee "},
+{"G":"Mirasol Sunrise ","A":"","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Fazio","Y":"2025-02-25","Z":"Bimini","M":""},
+{"G":"Mirasol Sunset ","A":"","L":"Florida ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Drew Rogers","Y":"2025-02-25","Z":"","M":""},
+{"G":"Mountain Lake ","A":"Tyler Rae","L":"Florida ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Raynor","Y":"2025-01-19","Z":"","M":""},
+{"G":"Naples Grande ","A":"Beau Welling Chase Webb","L":"Florida ","U":"USA","D":"2026","C":"Glase Golf Jody Mosley Lacy Rogers","J":"Renovate","S":"Grow In","B":"","H":"Rees Jones","Y":"2025-09-15","Z":"","M":"Rototiller "},
+{"G":"Old Corkscrew ","A":"Kyle Phillips","L":"Florida ","U":"USA","D":"2027","C":"","J":"Redesign","S":"Drawing boards ","B":"","H":"Nicklaus","Y":"2025-08-05","Z":"","M":""},
+{"G":"Quail Ridge North ","A":"Jason Straka","L":"Florida ","U":"USA","D":"2025","C":"NMP Darryl Bartlett Gary Kessener","J":"Rebuild","S":"Open","B":"$19.5M","H":"","Y":"2024-12-31","Z":"Irrigation Dave Ragan Technical TCI","M":"Sunflower Landscaping Cotleur & Hearing "},
+{"G":"Quail West G&CC ","A":"Drew Rogers Joel Hornickel","L":"Florida ","U":"USA","D":"2025","C":"Clarke Construction","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-12","Z":"","M":""},
+{"G":"Palm Cove ","A":"John Sanford","L":"Florida ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-12-03","Z":"","M":""},
+{"G":"Plantation Crystal River ","A":"Terry LaGree","L":"Florida ","U":"USA","D":"2026","C":"","J":"Redesign","S":"Drawing boards ","B":"","H":"","Y":"2025-08-07","Z":"","M":""},
+{"G":"Riomar CC ","A":"Carlton Marshall","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Strong","Y":"2024-12-20","Z":"","M":""},
+{"G":"Saddlebrook Resort ","A":"Rees Jones Bryce Swanson","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Arnold Palmer","Y":"2025-04-15","Z":"","M":""},
+{"G":"Sarasota National ","A":"Fry Straka","L":"Florida ","U":"USA","D":"2026","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2025-02-27","Z":"","M":""},
+{"G":"Seminole ","A":"Hanse","L":"Florida ","U":"USA","D":"2026","C":"LaBar","J":"Restore","S":"Construction","B":"","H":"Donald Ross","Y":"2025-06-01","Z":"","M":""},
+{"G":"Sugar Mill ","A":"Ron Garl","L":"Florida ","U":"USA","D":"2025","C":"South Florida Golf Renovations","J":"Renovate","S":"Open","B":"$6.5M","H":"Joe Lee","Y":"2025-06-01","Z":"27 holes ","M":""},
+{"G":"TPC Sawgrass Stadium ","A":"Davis Love","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Pete Dye","Y":"2025-01-22","Z":"","M":""},
+{"G":"Villages Amberwood ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"Landirr","J":"Renovate","S":"Open","B":"$1.4M","H":"","Y":"2025-02-03","Z":"","M":"ASGCA "},
+{"G":"Villages Bacall Bogart ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"Landirr","J":"Renovate","S":"Construction","B":"$2.2M","H":"","Y":"2025-03-17","Z":"","M":""},
+{"G":"Villages Bonita Pass ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$1M","H":"","Y":"2025-06-30","Z":"","M":""},
+{"G":"Villages Chula Vista ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"Landirr","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-02-03","Z":"","M":"ASGCA "},
+{"G":"Villages Heron ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$1M","H":"","Y":"2025-06-30","Z":"","M":""},
+{"G":"Villages Pelican ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$1.1M","H":"","Y":"2025-05-30","Z":"","M":"ASGCA "},
+{"G":"Villages Pimlico ","A":"Ken Ezell","L":"Florida ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$1.1M","H":"","Y":"2025-05-30","Z":"","M":"ASGCA "},
+{"G":"West End Alachua County ","A":"","L":"Florida ","U":"USA","D":"2026","C":"","J":"Reopen","S":"Acquired","B":"$4.5M","H":"","Y":"2024-09-19","Z":"","M":"County Commissioner "},
+{"G":"Woodmont CC ","A":"Joe Jemsek","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Open","B":"","H":"Von Hagge","Y":"2024-10-16","Z":"Capillary Edge","M":"New Greens "},
+{"G":"Wyndemere CC ","A":"Drew Rogers","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-08-06","Z":"","M":""},
+{"G":"Ansley GC Settindown Creek ","A":"Tyler Rae Jim Ryan","L":"Georgia ","U":"USA","D":"2025","C":"Duininck","J":"Renovate","S":"Construction","B":"$12M","H":"Bob Cupp","Y":"2025-03-15","Z":"","M":"HDPE pipes "},
+{"G":"Atlanta Athletic Club Highlands ","A":"Andrew Green","L":"Georgia ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Rees Jones","Y":"2025-03-18","Z":"USGA Amateur","M":""},
+{"G":"Augusta Municipal ","A":"Tom Fazio Beau Welling","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"David Ogilvie","Y":"2025-04-07","Z":"The Patch","M":"Augusta National "},
+{"G":"Augusta Municipal ","A":"Tiger Woods","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-04-07","Z":"The Loop","M":"9 holes "},
+{"G":"Big Canoe ","A":"Bill Bergin","L":"Georgia ","U":"USA","D":"2026","C":"Sanders Golf","J":"Renovate","S":"Ongoing","B":"$2.2M","H":"Joe Lee","Y":"2024-02-11","Z":"CapCon","M":"Creek 9 "},
+{"G":"Cherokee Town CC - Town ","A":"Andrew Green","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Renovate 36","S":"Drawing boards ","B":"","H":"Joe Lee Tom Fazio","Y":"2023-12-03","Z":"","M":""},
+{"G":"Forsyth City GC ","A":"","L":"Georgia ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Construction","B":"$700K","H":"","Y":"2025-06-19","Z":"","M":"Greenskeeper "},
+{"G":"Jekyll Island Oleander ","A":"Brian Ross Jeff Stein","L":"Georgia ","U":"USA","D":"2025","C":"MacCurrach","J":"Renovate","S":"Grow In","B":"$14M","H":"Dick Wilson","Y":"2025-08-04","Z":"Chris Staffeldt Andrew Hasik","M":""},
+{"G":"King and Prince GC ","A":"Beau Welling","L":"Georgia ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-06-22","Z":"","M":""},
+{"G":"Landings Oakridge ","A":"","L":"Georgia ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Arthur Hills","Y":"2025-02-03","Z":"","M":""},
+{"G":"Marietta CC ","A":"Bill Bergin","L":"Georgia ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Grow In","B":"","H":"Bob Cupp","Y":"2025-09-22","Z":"Nathan Cramer LU","M":""},
+{"G":"Kapalua Bay ","A":"David Kidd","L":"Hawaii ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Palmer Duane","Y":"2025-01-06","Z":"","M":""},
+{"G":"Cantigny Hillside 9 ","A":"Todd Quitno","L":"Illinois ","U":"USA","D":"2025","C":"Wadsworth","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-05-28","Z":"EC Design Leibold Irrigation","M":"Quitno Golf "},
+{"G":"Canyata ","A":"Randy Hoffacker","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2025-03-26","Z":"","M":""},
+{"G":"Evanston GC ","A":"Tyler Rae Tim Lewis","L":"Illinois ","U":"USA","D":"2025","C":"Wadsworth Qui Fabian","J":"Renovate","S":"Open","B":"","H":"Donald Ross","Y":"2025-07-15","Z":"Leibold Irrigation Mike Skopik","M":"Fairway expansion "},
+{"G":"Exmoor CC ","A":"Andrew Green","L":"Illinois ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-27","Z":"","M":""},
+{"G":"Maple Meadows GC ","A":"Greg Martin","L":"Illinois ","U":"USA","D":"2026","C":"Wadsworth Qui Fabian","J":"Renovate","S":"Construction","B":"$14.9M","H":"","Y":"2025-03-30","Z":"Irrigation","M":""},
+{"G":"Merit Club ","A":"Quitno Crace","L":"Illinois ","U":"USA","D":"2025","C":"Leibold","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-30","Z":"","M":""},
+{"G":"Old Elm ","A":"Dave Zinkand","L":"Illinois ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"Colt Ross Rogers","Y":"2025-02-25","Z":"Better Billy Bunker","M":""},
+{"G":"Olympia Fields North ","A":"Andrew Green","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Willie Park","Y":"2024-07-26","Z":"","M":"Restoration "},
+{"G":"Orchard Valley ","A":"Greg Martin","L":"Illinois ","U":"USA","D":"2026","C":"Wadsworth","J":"Renovate","S":"Construction","B":"$8.8M","H":"","Y":"2025-02-15","Z":"Muni","M":""},
+{"G":"Chatham Hills ","A":"Greg Norman","L":"Indiana ","U":"USA","D":"2025","C":"Dino Pagniello Total Golf Construction","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-05-11","Z":"","M":""},
+{"G":"Crooked Stick ","A":"Tom Doak Eric Iverson","L":"Indiana ","U":"USA","D":"2025","C":"MacCurrach","J":"Renovate","S":"Open","B":"","H":"Pete Dye","Y":"2025-05-25","Z":"","M":""},
+{"G":"French Lick Sand Creek ","A":"","L":"Indiana ","U":"USA","D":"2025","C":"Russ Apple","J":"Short","S":"Open","B":"","H":"","Y":"2024-06-28","Z":"","M":"Brett Fleck "},
+{"G":"Notre Dame Burke ","A":"","L":"Indiana ","U":"USA","D":"2025","C":"Hollembeak","J":"Reduce","S":"Open","B":"","H":"","Y":"2025-05-01","Z":"Executive Course","M":""},
+{"G":"Pottawattomie CC ","A":"Raymond Hearn","L":"Indiana ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-09-09","Z":"","M":""},
+{"G":"Wooded View ","A":"Nathan Crace","L":"Indiana ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-07-17","Z":"","M":"Masterplan "},
+{"G":"Finkbine GC ","A":"Scott Hoffman","L":"Iowa ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"Bendelow","Y":"2025-09-09","Z":"","M":""},
+{"G":"Silo Club ","A":"Kevin Hargrave","L":"Iowa ","U":"USA","D":"2026","C":"","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2025-08-03","Z":"Leibold Irrigation","M":"9 Holes "},
+{"G":"Buffalo Dunes GC ","A":"Todd Clark Zach Varty","L":"Kansas ","U":"USA","D":"2026","C":"Clay Payne Mitch Chalkley Bryer Livermore","J":"Masterplan","S":"Ongoing","B":"$800K","H":"Frank Hummel","Y":"2025-02-22","Z":"Husqvarna 550","M":"NLT "},
+{"G":"Kansas City CC ","A":"Andrew Green","L":"Kansas ","U":"USA","D":"2027","C":"","J":"Restore","S":"Construction","B":"","H":"A.W. Tillinghast","Y":"2024-11-01","Z":"","M":""},
+{"G":"Wichita CC ","A":"Tripp Davis Kyle Downs Jason Gold","L":"Kansas ","U":"USA","D":"2025","C":"Total Turf","J":"Renovate","S":"Open","B":"","H":"Diddel","Y":"2025-05-25","Z":"ZLine Bunker","M":"Renovation Update "},
+{"G":"Bowling Green CC ","A":"Nathan Crace","L":"Kentucky ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Cornish","Y":"2023-12-21","Z":"","M":""},
+{"G":"Highland CC ","A":"Dave Heatwole","L":"Kentucky ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Cornish","Y":"2025-03-15","Z":"","M":""},
+{"G":"Lexington CC ","A":"Kevin Hargrave","L":"Kentucky ","U":"USA","D":"2025","C":"NMP Golf","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-05-11","Z":"","M":"Regrade greens "},
+{"G":"Midland Trail GC ","A":"Brian Ley","L":"Kentucky ","U":"USA","D":"2025","C":"","J":"Irrigation","S":"Open","B":"","H":"","Y":"2025-07-14","Z":"Rain Bird Golf","M":"technicalchoice "},
+{"G":"Ryland Lakes CC ","A":"Brian Ross","L":"Kentucky ","U":"USA","D":"2030","C":"Scott Laffin","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-10-04","Z":"","M":"1949 aerial "},
+{"G":"Seneca GC ","A":"Spencer Holt","L":"Kentucky ","U":"USA","D":"2026","C":"","J":"Redesign","S":"Drawing boards ","B":"","H":"","Y":"2025-07-14","Z":"Short 9 holes","M":""},
+{"G":"Summit Hills CC ","A":"Brian Huntley Golf Sense","L":"Kentucky ","U":"USA","D":"2025","C":"Aspen Corporation","J":"Renovate","S":"Open","B":"$4.2M","H":"","Y":"2025-04-27","Z":"","M":""},
+{"G":"Baton Rouge CC ","A":"Oglivy Cocking Mead","L":"Louisiana ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-12-30","Z":"","M":""},
+{"G":"Chasing Aces ","A":"Carlton Marshall","L":"Louisiana ","U":"USA","D":"2025","C":"Boggs Contracting","J":"Short","S":"Open","B":"$25M","H":"","Y":"2025-07-26","Z":"","M":"Groundbreaking "},
+{"G":"East Ridge CC ","A":"Jim Lipe","L":"Louisiana ","U":"USA","D":"2026","C":"Ron Matthews Eagle View Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-28","Z":"","M":"Pump station "},
+{"G":"Pelican Point G&CC ","A":"Nathan Crace","L":"Louisiana ","U":"USA","D":"2026","C":"Mike Purvis Forefront Construction","J":"Renovate","S":"Grow In","B":"","H":"","Y":"2025-07-17","Z":"","M":"Edging "},
+{"G":"Fairway Fields ","A":"","L":"Maine ","U":"USA","D":"2026","C":"","J":"Reopen","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"was Sandy River","M":"fairwayfields "},
+{"G":"Sugarloaf GC ","A":"Ray Hearn","L":"Maine ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"$16M","H":"","Y":"2025-07-04","Z":"","M":""},
+{"G":"Baltimore CC East ","A":"Keith Foster","L":"Maryland ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Ongoing","B":"","H":"A.W. Tillinghast","Y":"2025-01-04","Z":"","M":"Assistant Superintendent "},
+{"G":"Chevy Chase Club ","A":"Andrew Green","L":"Maryland ","U":"USA","D":"2025","C":"McDonald Sons","J":"Restore","S":"Open","B":"","H":"C.H. Alison","Y":"2025-07-02","Z":"PM Seth Hildebrand Robby Meredith","M":"Mirafi Geotextile "},
+{"G":"Fountain Head CC ","A":"Ron Forse","L":"Maryland ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-01-21","Z":"","M":""},
+{"G":"Ocean City ","A":"Logan Thompson","L":"Maryland ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-01-29","Z":"","M":""},
+{"G":"Ocean Pines ","A":"","L":"Maryland ","U":"USA","D":"2025","C":"Irrigation Services","J":"Renovate","S":"Open","B":"$1.1M","H":"RTJ Sr.","Y":"2025-02-16","Z":"Toro Golf","M":"HDPE Mainline "},
+{"G":"Sparrows Point CC ","A":"Joel Weiman","L":"Maryland ","U":"USA","D":"2027","C":"LaBar","J":"Renovate","S":"Construction","B":"$10M","H":"William Gordon","Y":"2025-02-20","Z":"Toro Irrigation Paul McMahon","M":"Troon Golf Agronomist Kyle DeNuys "},
+{"G":"CC New Bedford ","A":"John Sanford","L":"Massachusetts ","U":"USA","D":"2025","C":"NMP Golf XGD Systems","J":"Renovate","S":"Open","B":"","H":"Park","Y":"2025-10-05","Z":"","M":"Geoff Corlett "},
+{"G":"Cohasse CC ","A":"Tim Lewis","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Restore","S":"Construction","B":"","H":"Donald Ross","Y":"2025-04-12","Z":"","M":""},
+{"G":"Eastward Ho ","A":"Kyle Franz","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"$8.5M","H":"Herb Fowler","Y":"2025-05-22","Z":"Frank Hancock Ian Williams","M":"Winterberry Irrigation "},
+{"G":"Farm Neck ","A":"Mark Mungeam","L":"Massachusetts ","U":"USA","D":"2025","C":"MAS Golf","J":"Renovate","S":"Open","B":"","H":"Cornish Mulligan","Y":"2025-04-16","Z":"","M":"ASGCA "},
+{"G":"Franklin CC ","A":"Jim Nagle","L":"Massachusetts ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-04-26","Z":"","M":""},
+{"G":"Hillview GC ","A":"Mark Mungeam","L":"Massachusetts ","U":"USA","D":"2025","C":"Turco Golf","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-07-25","Z":"","M":""},
+{"G":"International Pines ","A":"Coore Crenshaw Ryan Farrow Zach Varty","L":"Massachusetts ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2025-06-02","Z":"Escalante","M":"17th Hole "},
+{"G":"Marion ","A":"Hanse Wagner","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Construction","B":"","H":"George Thomas","Y":"2024-03-10","Z":"Greens","M":"Jeremiah Daly "},
+{"G":"Oak Hill CC ","A":"Tyler Rae","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-08-22","Z":"","M":""},
+{"G":"Oyster Harbors ","A":"Hanse Wagner","L":"Massachusetts ","U":"USA","D":"2025","C":"LGI LGR LaBar","J":"Restore","S":"Open","B":"","H":"Donald Ross","Y":"2025-04-01","Z":"Rain Bird Irrigation Brian Vinchesi","M":""},
+{"G":"Plymouth CC ","A":"Jaeger Kovich Nicklaus Mills","L":"Massachusetts ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2024-11-16","Z":"Ian Andrew","M":""},
+{"G":"Pocasset GC ","A":"Ron Forse","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-04-25","Z":"","M":""},
+{"G":"Vesper CC ","A":"Jim Nagle","L":"Massachusetts ","U":"USA","D":"2026","C":"MAS Golf Steve McCormack","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-04-25","Z":"","M":""},
+{"G":"Weston GC ","A":"Keith Foster Kevin Hargrave","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2025-02-13","Z":"","M":""},
+{"G":"Winchester CC ","A":"Andrew Green","L":"Massachusetts ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2025-09-13","Z":"","M":""},
+{"G":"Barton Hills CC ","A":"Andrew Green","L":"Michigan ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-06-13","Z":"Tee box","M":""},
+{"G":"Detroit GC ","A":"Tyler Rae Jim Ryan","L":"Michigan ","U":"USA","D":"2025","C":"NMP Soleno Joe Miller","J":"Renovate","S":"Construction","B":"$16.1M","H":"Donald Ross","Y":"2025-06-30","Z":"Rain Bird Cirrus NMP Irrigation Tim Maynard","M":"Profile Products "},
+{"G":"Garland Sawyer ","A":"Kelly Shumate","L":"Michigan ","U":"USA","D":"2025","C":"Todd Godwin TGC","J":"Short","S":"Open","B":"","H":"","Y":"2025-06-13","Z":"Reversible","M":""},
+{"G":"Katke-Cousins GC ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Beard Newcomb","Y":"2025-02-20","Z":"","M":""},
+{"G":"Knollwood CC ","A":"David Zinkand","L":"Michigan ","U":"USA","D":"2025","C":"Frontier Golf","J":"Renovate","S":"Open","B":"$4M","H":"Arthur Hamm","Y":"2025-07-14","Z":"17th hole","M":""},
+{"G":"Pine Trace GC ","A":"Steve Forrest","L":"Michigan ","U":"USA","D":"2026","C":"Gary Kaye Irrigation","J":"Renovate","S":"Construction","B":"","H":"Arthur Hills","Y":"2025-08-25","Z":"Toro Lynx","M":""},
+{"G":"Proving Ground GC ","A":"Mike DeVries","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-05-27","Z":"Dunham Hills GC","M":"Up River Film "},
+{"G":"Spring Lake CC ","A":"Drew Rogers","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-12-07","Z":"","M":""},
+{"G":"Stonycroft Hills ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","D":"2025","C":"KVL King Village Golf & Landscape","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-07-15","Z":"","M":""},
+{"G":"Travis Pointe CC ","A":"Chris Wilczynski","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-03-12","Z":"","M":""},
+{"G":"Twin Beach ","A":"Keith Rhebb Riley Johns","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-11-10","Z":"East Valley Irrigation EVI","M":""},
+{"G":"Wee Course ","A":"Colin Montgomerie","L":"Michigan ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-08-29","Z":"Harbor Shores","M":""},
+{"G":"Western Golf & CC ","A":"Andrew Green","L":"Michigan ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"$4.7M","H":"Donald Ross","Y":"2025-04-16","Z":"Irrigation Michael Kuhn MKA","M":""},
+{"G":"Alexandria Little Darling ","A":"Tom Lehman","L":"Minnesota ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"$1.5M","H":"","Y":"2025-08-29","Z":"","M":"Grow In "},
+{"G":"Burl Oaks ","A":"Jay Blasi","L":"Minnesota ","U":"USA","D":"2026","C":"Duininck Josh Lewis Ben Malach","J":"Re-Route","S":"Construction","B":"$12M","H":"","Y":"2025-06-15","Z":"Toro Irrigation","M":"New Holes "},
+{"G":"Enger Park GC ","A":"Kevin Norby","L":"Minnesota ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"$7M","H":"","Y":"2024-06-23","Z":"Lester Park","M":""},
+{"G":"Hazeltine Augusta ","A":"Davis Love Scot Sherman","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"Short 10","S":"Open","B":"","H":"MacKenzie","Y":"2025-06-15","Z":"","M":"Double Green "},
+{"G":"Pierz ","A":"","L":"Minnesota ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"$1.4M","H":"","Y":"2024-10-25","Z":"","M":""},
+{"G":"Somerset ","A":"James Duncan","L":"Minnesota ","U":"USA","D":"2026","C":"Hartman","J":"Renovate","S":"Ongoing","B":"","H":"Seth Raynor","Y":"2024-12-24","Z":"","M":""},
+{"G":"Town & Country Club ","A":"Jeff Mingay","L":"Minnesota ","U":"USA","D":"2025","C":"Duininck","J":"Renovate","S":"Open","B":"","H":"Ben Schurmeier Robert Foulis","Y":"2025-04-09","Z":"","M":"Opening hole "},
+{"G":"Wayzata CC ","A":"Jackson Kahn","L":"Minnesota ","U":"USA","D":"2026","C":"Wadsworth Jose Vivo","J":"Renovate","S":"Construction","B":"$15M","H":"","Y":"2025-05-21","Z":"","M":""},
+{"G":"Woodhill CC ","A":"Brian Schneider","L":"Minnesota ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-08-01","Z":"Wayzata","M":"1918 Restoration "},
+{"G":"Cobos Ranch ","A":"","L":"Mississippi ","U":"USA","D":"2027","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2025-10-01","Z":"","M":"Subdivision "},
+{"G":"Big Cedar Cliffhangers ","A":"Jackson Kahn","L":"Missouri ","U":"USA","D":"2025","C":"Jose Vivo","J":"Short","S":"Open","B":"","H":"","Y":"2025-07-04","Z":"","M":"Johnny Morris "},
+{"G":"Buffalo Ridge ","A":"","L":"Missouri ","U":"USA","D":"2025","C":"","J":"Regrass","S":"Open","B":"","H":"Fazio","Y":"2025-08-01","Z":"","M":"New Greens "},
+{"G":"Hickory Hills CC ","A":"Tripp Davis","L":"Missouri ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$10M","H":"Perry Maxwell","Y":"2025-03-12","Z":"","M":"Plan "},
+{"G":"Hillcrest CC ","A":"Tripp Davis","L":"Missouri ","U":"USA","D":"2026","C":"Mathew Hathaway","J":"Renovate","S":"Construction","B":"$30M","H":"Donald Ross","Y":"2025-06-19","Z":"LinksDAO","M":""},
+{"G":"Sechrest 18 ","A":"Robert Gibbons T/W Design","L":"Missouri ","U":"USA","D":"2025","C":"Viridity Golf","J":"Masterplan","S":"Ongoing","B":"$370K","H":"","Y":"2025-10-06","Z":"Mozingo Lake ","M":""},
+{"G":"Normandie GC ","A":"Jack Nicklaus Chris Cochran","L":"Missouri ","U":"USA","D":"2026","C":"LaBar Viridity Golf","J":"Rebuild ","S":"Construction","B":"$15M","H":"Robert Foulis","Y":"2025-09-27","Z":"Clayco","M":"Tom O'Toole "},
+{"G":"Swope Memorial ","A":"Todd Clark Brent Hugo Ron Whitten","L":"Missouri ","U":"USA","D":"2026","C":"Casey Hames Mid-America","J":"Renovate","S":"Construction","B":"$8.5M","H":"A.W. Tillinghast","Y":"2025-05-29","Z":"CE Golf Design","M":"Mainline replacement "},
+{"G":"Westwood CC ","A":"Tyler Rae","L":"Missouri ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-03-26","Z":"","M":""},
+{"G":"Rising Sun GC ","A":"Davis Love Scot Sherman","L":"Montana ","U":"USA","D":"2025","C":"Heritage Links","J":"Masterplan","S":"Ongoing","B":"","H":"Johnny Miller","Y":"2025-03-26","Z":"Eco Bunker","M":""},
+{"G":"Yellowstone CC ","A":"Harry Bowers","L":"Montana ","U":"USA","D":"2025","C":"VM Golf Collin Bates","J":"Masterplan","S":"Open","B":"","H":"RTJ Sr.","Y":"2025-09-08","Z":"Signature Design","M":""},
+{"G":"Country Club of Lincoln ","A":"Todd Quitno","L":"Nebraska ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Construction","B":"$6M","H":"","Y":"2025-07-15","Z":"","M":""},
+{"G":"Old Dane ","A":"Trev Dormer","L":"Nebraska ","U":"USA","D":"2026","C":"Bunkerdrum Jeff Bradley Matthew Kellogg","J":"Rebuild ","S":"Construction","B":"","H":"Will Anderson","Y":"2024-11-10","Z":"East Valley Irrigation EVI","M":"Quirky Design "},
+{"G":"Quarry Oaks ","A":"John LaFoy","L":"Nebraska ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"","H":"John LaFoy","Y":"2025-06-06","Z":"PM Curt Grieser Lucas Schroeder","M":"Laser-leveled tees "},
+{"G":"Wild Horse ","A":"","L":"Nebraska ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-06-11","Z":"","M":""},
+{"G":"Wildcreek ","A":"Brian Curley","L":"Nevada ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Open","B":"$6.5M","H":"Phelps","Y":"2025-09-06","Z":"First Tee","M":"Par 34 "},
+{"G":"Bald Peak Colony Club ","A":"Kyle Franz","L":"New Hampshire ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2025-05-04","Z":"","M":""},
+{"G":"Hooper GC ","A":"Jeff Stein","L":"New Hampshire ","U":"USA","D":"2027","C":"MAS Golf","J":"Restore","S":"Drawing boards ","B":"","H":"Stiles Van Kleek","Y":"2024-10-27","Z":"","M":"steingolfdesign "},
+{"G":"Nashua CC ","A":"Robert McNeil","L":"New Hampshire ","U":"USA","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Stiles","Y":"2025-06-29","Z":"","M":""},
+{"G":"Owl's Nest Vineyard ","A":"Robert McNeil","L":"New Hampshire ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"Cornish","Y":"2023-12-22","Z":"White Mountain","M":"Vineyard "},
+{"G":"Arcola CC ","A":"Andy Staples","L":"New Jersey ","U":"USA","D":"2026","C":"LaBar","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-26","Z":"","M":""},
+{"G":"Baltusrol Upper ","A":"Hanse Wagner Kevin Murphy","L":"New Jersey ","U":"USA","D":"2025","C":"Total Turf","J":"Restore","S":"Open","B":"$22.9M","H":"A.W. Tillinghast","Y":"2025-05-31","Z":"Golf Preservations Inc","M":"Golf Water Paul Roche "},
+{"G":"Bedens Brook ","A":"Andrew Green","L":"New Jersey ","U":"USA","D":"2025","C":"LaBar","J":"Masterplan","S":"Ongoing","B":"","H":"Dick Wilson","Y":"2025-02-27","Z":"","M":""},
+{"G":"Essex Fells CC ","A":"Jeff Stein","L":"New Jersey ","U":"USA","D":"2025","C":"LaBar","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-28","Z":"","M":""},
+{"G":"Liberty National ","A":"PGA Tour Design Services","L":"New Jersey ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Ongoing","B":"","H":"Tom Kite","Y":"2025-01-19","Z":"","M":""},
+{"G":"Montclair ","A":"Brian Schneider","L":"New Jersey ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Ross Banks","Y":"2024-11-13","Z":"4th nine","M":"Montclair "},
+{"G":"Morris County GC ","A":"Jaeger Kovich Nicklaus Mills","L":"New Jersey ","U":"USA","D":"2025","C":"LGR LaBar","J":"Restore","S":"Open","B":"","H":"Raynor","Y":"2025-05-03","Z":"","M":"nicklausmills "},
+{"G":"Stone Harbor ","A":"Tyler Rae","L":"New Jersey ","U":"USA","D":"2025","C":"Total Turf GS","J":"Masterplan","S":"Open","B":"","H":"Muirhead","Y":"2025-05-30","Z":"","M":"Back Nine "},
+{"G":"Tamarack West ","A":"Mark Mungeam","L":"New Jersey ","U":"USA","D":"2025","C":"Turco Golf CME Associates","J":"Renovate","S":"Open","B":"","H":"Purdy","Y":"2025-06-14","Z":"Rain Bird Irrigation","M":"Public Golf "},
+{"G":"Tavistock CC ","A":"Jaegar Kovich","L":"New Jersey ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Alex Findlay","Y":"2023-08-23","Z":"","M":""},
+{"G":"Upper Montclair CC ","A":"A. John Harvey","L":"New Jersey ","U":"USA","D":"2025","C":"LGR LaBar","J":"Masterplan","S":"Open","B":"","H":"Tillinghast RTJ Sr.","Y":"2025-05-15","Z":"","M":""},
+{"G":"Weequahic GC ","A":"Stephen Kay Garrett Wasson Matt Schiffer","L":"New Jersey ","U":"USA","D":"2025","C":"Downes Tree Service Brad Sparta","J":"Renovate","S":"Open","B":"$9.3M","H":"Lowe Purdy","Y":"2025-08-01","Z":"","M":"Rain Bird "},
+{"G":"Scott Park ","A":"Trey Kemp","L":"New Mexico ","U":"USA","D":"2025","C":"Colligan","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-12-24","Z":"","M":""},
+{"G":"Colonie Town ","A":"Stephen Kay Garrett Wasson","L":"New York ","U":"USA","D":"2025","C":"XGD Systems","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-04-12","Z":"Public Golf Course","M":""},
+{"G":"Crag Burn ","A":"Tyler Rae","L":"New York ","U":"USA","D":"2026","C":"NMP Golf","J":"Restore","S":"Construction","B":"$5M","H":"RTJ Sr.","Y":"2025-09-25","Z":"Golf Preservations","M":"Aerial "},
+{"G":"Deepdale ","A":"Scot Sherman","L":"New York ","U":"USA","D":"2026","C":"MacCurrach","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-10-29","Z":"","M":"scotsherman "},
+{"G":"Garden City CC ","A":"Andy Staples","L":"New York ","U":"USA","D":"2026","C":"","J":"Restore","S":"Ongoing","B":"","H":"Walter Travis","Y":"2025-09-26","Z":"","M":"Plans "},
+{"G":"Glen Cove GC ","A":"","L":"New York ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Irrigation","S":"Ongoing","B":"$2.5M","H":"","Y":"2025-05-01","Z":"IMEG Engineering","M":""},
+{"G":"Glen Oak ","A":"Chris Wilczynski ","L":"New York ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"RTJ Sr.","Y":"2023-06-26","Z":"","M":""},
+{"G":"Mosholu ","A":"Stephen Kay","L":"New York ","U":"USA","D":"2025","C":"Turco Golf","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-07-12","Z":"","M":""},
+{"G":"North Fork CC ","A":"David Ferris","L":"New York ","U":"USA","D":"2025","C":"George E. Ley","J":"Restore","S":"Ongoing","B":"","H":"Donald Ross","Y":"2023-10-28","Z":"","M":"sanfordferrisgolfdesign "},
+{"G":"Oak Hill West ","A":"Andrew Green ","L":"New York ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2023-07-20","Z":"","M":""},
+{"G":"Old Westbury ","A":"Brian Silva","L":"New York ","U":"USA","D":"2026","C":"NMP Golf","J":"Renovate","S":"Construction","B":"","H":"Mitchell Hanse","Y":"2025-09-07","Z":"Toro irrigation Middletown Sprinkler","M":"TurfNet "},
+{"G":"Sands Point ","A":"Keith Foster Kevin Hargrave","L":"New York ","U":"USA","D":"2025","C":"New Generation Juan Trenado","J":"Restore","S":"Ongoing","B":"","H":"A.W. Tillinghast","Y":"2024-09-18","Z":"","M":"MGA "},
+{"G":"Storm King ","A":"Chris Gray","L":"New York ","U":"USA","D":"2026","C":"","J":"Rebuild","S":"Preview","B":"","H":"","Y":"2025-08-23","Z":"","M":""},
+{"G":"Sullivan County GC ","A":"Colton Craig Tom Coyne","L":"New York ","U":"USA","D":"2025","C":"US Pitchcare Willie Wilson","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-25","Z":"Shaun Smith ","M":"Course Called Home "},
+{"G":"Whippoorwill ","A":"Nicklaus Design","L":"New York ","U":"USA","D":"2025","C":"LGR LaBar","J":"Renovate","S":"Open","B":"","H":"Banks","Y":"2025-07-29","Z":"","M":""},
+{"G":"Willowdale Park ","A":"Faery's Golf","L":"New York ","U":"USA","D":"2026","C":"","J":"Reopen 9","S":"Construction","B":"$6.7M","H":"Willie Park","Y":"2025-04-26","Z":"was Westwood CC","M":""},
+{"G":"3's Charlotte ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-08-21","Z":"Davis Sezna","M":"8 AM Golf "},
+{"G":"Asheville Municipal ","A":"","L":"North Carolina ","U":"USA","D":"2027","C":"","J":"Renovate 9","S":"Drawing boards ","B":"$3.5M","H":"","Y":"2025-03-14","Z":"Hurricane Front 9","M":""},
+{"G":"Bald Head Islan+d ","A":"Andrew Green ","L":"North Carolina ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Cobb Cate","Y":"2025-02-24","Z":"","M":""},
+{"G":"Broadmoor Golf Links ","A":"Carlton Marshall","L":"North Carolina ","U":"USA","D":"2026","C":"Todd Godwin Fredrik Gustafsson TGC","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-06-28","Z":"Hurricane TreeWorks","M":"cmgolfdesign "},
+{"G":"CC Landfall ","A":"Troy Vincent Nicklaus Design","L":"North Carolina ","U":"USA","D":"2025","C":"CR Lutzke","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-17","Z":"","M":"Greens "},
+{"G":"CCNC Cardinal ","A":"Andrew Green","L":"North Carolina ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-06-10","Z":"","M":""},
+{"G":"Champion Hills ","A":"Tom Fazio","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-05-31","Z":"Hurricane repair","M":""},
+{"G":"Charlotte CC ","A":"Andrew Green","L":"North Carolina ","U":"USA","D":"2025","C":"Total Turf GS Greg Hufner","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-12-02","Z":"","M":"Gary Williams "},
+{"G":"Elk River Club ","A":"Nicklaus Design Chad Goetz","L":"North Carolina ","U":"USA","D":"2026","C":"Green Tee Golf","J":"Renovate","S":"Construction","B":"","H":"Nicklaus","Y":"2025-06-26","Z":"","M":""},
+{"G":"Gillespie ","A":"Rick Robbins","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$3M","H":"Perry Maxwell","Y":"2025-01-01","Z":"PGA","M":"Muni "},
+{"G":"Old Chatham GC ","A":"Beau Welling","L":"North Carolina ","U":"USA","D":"2025","C":"RD Lopez","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-01","Z":"","M":""},
+{"G":"Old Field ","A":"Colton Craig Smyers Coyne","L":"North Carolina ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2025-06-07","Z":"Colin Creek","M":""},
+{"G":" ","A":"","L":" ","U":"","D":"","C":"","J":"","S":"","B":"","H":"","Y":"","Z":"","M":""},
+{"G":"Pine Lake CC ","A":"Jeff Lawrence","L":"North Carolina ","U":"USA","D":"2025","C":"McAdams Aspen","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-09-10","Z":"PM Mazzella","M":"Winterberry Irrigation "},
+{"G":"Pinehurst #4 ","A":"","L":"North Carolina ","U":"USA","D":"2025","C":"LaBar LGR","J":"Regrass","S":"Open","B":"","H":"","Y":"2025-09-10","Z":"","M":"Greens restoration "},
+{"G":"River Run CC ","A":"","L":"North Carolina ","U":"USA","D":"2025","C":"Golf Course Services GCS","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-04-11","Z":"","M":"TifEagle Greens "},
+{"G":"Starmount Forest ","A":"Kris Spence","L":"North Carolina ","U":"USA","D":"2025","C":"Jim Harbin","J":"Renovate","S":"Construction","B":"","H":"Stiles Van Kleek","Y":"2025-03-13","Z":"PM Xan Swaim New Life Turf","M":"Irrigation Mike Pignato "},
+{"G":"Thistle Golf Club ","A":"CR Lutzke","L":"North Carolina ","U":"USA","D":"2025","C":"Carlos Perez","J":"Renovate","S":"Open","B":"","H":"Tim Cate","Y":"2025-09-29","Z":"","M":"Sprig Greens "},
+{"G":"Tryon Resort ","A":"Beau Welling Amanda Barbee","L":"North Carolina ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-09-07","Z":"","M":""},
+{"G":"Winston Lake GC ","A":"Richard Mandell","L":"North Carolina ","U":"USA","D":"2025","C":"W. Brown Construction","J":"Masterplan","S":"Open","B":"$2M","H":"","Y":"2025-05-13","Z":"","M":""},
+{"G":"Williston GC ","A":"Kevin Norby","L":"North Dakota ","U":"USA","D":"2028","C":"","J":"Redesign","S":"Drawing boards ","B":"","H":"","Y":"2025-09-10","Z":"Erik Christiansen EC Design Irrigation","M":""},
+{"G":"Brookside CC ","A":"Tyler Rae","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-30","Z":"","M":"Ross Greens "},
+{"G":"Cincinnati CC ","A":"Michael Hurdzan Chris Hurdzan","L":"Ohio ","U":"USA","D":"2025","C":"Aspen Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-06-23","Z":"Joel Braun Technical Choice","M":""},
+{"G":"Denison University ","A":"Gil Hanse","L":"Ohio ","U":"USA","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-10-27","Z":"Granville","M":""},
+{"G":"Grizzly ","A":"Michael Hurdzan","L":"Ohio ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-13","Z":"","M":""},
+{"G":"Hyde Park ","A":"Tyler Rae Jim Ryan","L":"Ohio ","U":"USA","D":"2026","C":"McDonald Sons","J":"Restore","S":"Construction","B":"","H":"Donald Ross","Y":"2025-07-14","Z":"","M":""},
+{"G":"Inverness ","A":"Andrew Green","L":"Ohio ","U":"USA","D":"2025","C":"","J":"Restore","S":"Open","B":"","H":"","Y":"2025-01-25","Z":"","M":"Green "},
+{"G":"Lakewood CC ","A":"Keith Foster Kevin Hargrave","L":"Ohio ","U":"USA","D":"2025","C":"Total Turf GS","J":"Restore","S":"Open","B":"$6M","H":"A.W. Tillinghast","Y":"2025-05-31","Z":"MKA Consultants Heritage Links Irrigation","M":"Masterplan "},
+{"G":"Meadowood GC ","A":"Fry Straka","L":"Ohio ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$5M","H":"","Y":"2025-03-31","Z":"","M":""},
+{"G":"Medina CC ","A":"Dave Zinkand","L":"Ohio ","U":"USA","D":"2025","C":"Majestic Excavating Frontier Golf","J":"Renovate","S":"Open","B":"$10M","H":"","Y":"2025-09-05","Z":"Reversible","M":""},
+{"G":"Napoleon Golf Club ","A":"Evan Baldridge","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-05","Z":"","M":""},
+{"G":"NCR CC North ","A":"Jim Nagle","L":"Ohio ","U":"USA","D":"2025","C":"Aspen Corporation ","J":"Restore","S":"Construction","B":"","H":"Dick Wilson","Y":"2025-08-02","Z":"Joel Braun Technical Choice Irrigation","M":"Jason Hurwitz Mazzella Partnership "},
+{"G":"Shady Hollow GC ","A":"George Ley","L":"Ohio ","U":"USA","D":"2025","C":"Henderson","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-09-09","Z":"Joel Braun Technical Choice Irrigation","M":"Irrigation Heads "},
+{"G":"Walden ","A":"Mike Nuzzo","L":"Ohio ","U":"USA","D":"2025","C":"Joe Hancock Scott Clem Golf Preservations","J":"Masterplan","S":"Ongoing","B":"","H":"Mitchell Schreiner Nuzzo","Y":"2025-09-14","Z":"","M":""},
+{"G":"Westwood CC ","A":"Ron Forse Jim Nagle","L":"Ohio ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"C.H. Alison","Y":"2024-10-19","Z":"","M":""},
+{"G":"Boots Hollow ","A":"Randy Heckenkemper","L":"Oklahoma ","U":"USA","D":"2025","C":"Jonesplan Aspen Golf","J":"Renovate","S":"Open","B":"$2.4M","H":"","Y":"2025-08-21","Z":"was Adams GC","M":""},
+{"G":"Graves Golf ","A":"Colton Craig","L":"Oklahoma ","U":"USA","D":"2025","C":"Jonesplan","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2025-04-17","Z":"was Coffee Creek","M":"6 holes "},
+{"G":"Karsten Creek ","A":"Andrew Green","L":"Oklahoma ","U":"USA","D":"2025","C":"McDonald Sons Heritage Links","J":"Rebuild ","S":"Open","B":"$31M","H":"Tom Fazio","Y":"2025-05-09","Z":"Ivan Salas Eddie Ruvalcaba","M":""},
+{"G":"Westwood Park GC ","A":"Smyers Craig Coyne","L":"Oklahoma ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-04-17","Z":"","M":""},
+{"G":"WinStar ","A":"","L":"Oklahoma ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-01-18","Z":"","M":""},
+{"G":"Lake Oswego ","A":"Dan Hixson","L":"Oregon ","U":"USA","D":"2025","C":"James Milroy Golf Systems","J":"Rebuild ","S":"Open","B":"$3.2M","H":"","Y":"2025-04-26","Z":"1600 yards","M":"Grow in "},
+{"G":"Shortland GC ","A":"Jackson Kahn","L":"Oregon ","U":"USA","D":"2025","C":"James Milroy Golf Systems Connor Dougherty","J":"Rebuild ","S":"Open","B":"","H":"","Y":"2025-08-17","Z":"Elevation USA","M":"Mark Christiansen Jordan McTaggart "},
+{"G":"St. Helens GC ","A":"Carlton Marshall","L":"Oregon ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-12-19","Z":"","M":"Rerouting "},
+{"G":"Allegheny CC ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-07-18","Z":"","M":""},
+{"G":"Bensalem Township Country Club ","A":"George Ley","L":"Pennsylvania ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"William Gordon","Y":"2025-10-01","Z":"","M":""},
+{"G":"Carlisle CC ","A":"Fry Straka","L":"Pennsylvania ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-05-27","Z":"","M":""},
+{"G":"Chester Valley ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Short","S":"Open","B":"","H":"","Y":"2025-06-17","Z":"6 holes","M":"Short Game Area "},
+{"G":"Cobbs Creek Olde ","A":"Hanse Wagner Jim Wagner","L":"Pennsylvania ","U":"USA","D":"2027","C":"Total Turf GS","J":"Restore","S":"Construction","B":"$20M","H":"Wilson Flynn Crump","Y":"2025-05-13","Z":"TGR Foundation","M":"William Flynn "},
+{"G":"Concord CC ","A":"Ron Forse","L":"Pennsylvania ","U":"USA","D":"2025","C":"","J":"Restore","S":"Construction","B":"","H":"Wilson Flynn Crump","Y":"2024-10-22","Z":"","M":"Sod "},
+{"G":"Eagles Mere CC ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"William Flynn","Y":"2024-03-05","Z":"","M":""},
+{"G":"Erie GC ","A":"Kevin Hargrave","L":"Pennsylvania ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"A.W. Tillinghast","Y":"2025-08-01","Z":"","M":""},
+{"G":"Foxburg GC ","A":"Ron Forse","L":"Pennsylvania ","U":"USA","D":"2028","C":"","J":"Restore","S":"Drawing boards ","B":"$2.5M","H":"","Y":"2025-05-26","Z":"EADS Group","M":"Preservation "},
+{"G":"Longue Vue Club ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","D":"2026","C":"McDonald Sons","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-10-01","Z":"","M":"_salas24_ "},
+{"G":"Merion West ","A":"Hanse Wagner","L":"Pennsylvania ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Hugh Wilson","Y":"2023-10-25","Z":"","M":""},
+{"G":"Philadelpha CC Spring Mill ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2025","C":"Mottin Golf","J":"Restore","S":"Open","B":"$15M","H":"William Flynn","Y":"2025-05-28","Z":"Irrigation Paul Roche","M":"Middletown Sprinklers "},
+{"G":"St. Davids ","A":"Tyler Rae Jim Ryan","L":"Pennsylvania ","U":"USA","D":"2025","C":"Mottin Golf","J":"Renovate","S":"Construction","B":"","H":"Donald Ross","Y":"2025-06-28","Z":"","M":"Green expansion "},
+{"G":"Sunnybrook GC ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-06-08","Z":"HDPE Irrigation","M":"Playability "},
+{"G":"Toftrees GC ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-02-21","Z":"","M":""},
+{"G":"Tumblebrook ","A":"Ron Prichard Christine Fraser Jeff Mingay","L":"Pennsylvania ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2023-10-07","Z":"Josh Woodward","M":"Vaughn Halyard "},
+{"G":"Whitford CC ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"2025","C":"Mottin Golf","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-04-21","Z":"Toro Golf","M":"jimnagle_gca "},
+{"G":"Rhode Island CC ","A":"Ian Andrew","L":"Rhode Island ","U":"USA","D":"2026","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-12-11","Z":"","M":""},
+{"G":"Camden CC ","A":"Scot Sherman","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Ross Travis","Y":"2025-07-26","Z":"","M":"Bunkers "},
+{"G":"Cedar Creek ","A":"Nathan Crace","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Arthur Hills","Y":"2025-06-24","Z":"","M":""},
+{"G":"Chechessee Creek ","A":"Dave Zinkand","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-07-04","Z":"","M":""},
+{"G":"Country Club of Charleston ","A":"","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Raynor","Y":"2025-01-14","Z":"","M":""},
+{"G":"Darlington CC ","A":"Richard Mandell","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-04-22","Z":"","M":"Par 5 "},
+{"G":"Greenville Chanticleer ","A":"Beau Welling Chase Webb","L":"South Carolina ","U":"USA","D":"2025","C":"Lucas Beasley Landscapes Unlimited Kyle Regen","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-10-24","Z":"Joe Titzer Gary Schapiro","M":"River silt "},
+{"G":"Harbour Town ","A":"Davis Love Steve Wenzloff","L":"South Carolina ","U":"USA","D":"2025","C":"MacCurrach","J":"Restore","S":"Construction","B":"","H":"","Y":"2025-05-02","Z":"PGA Tour Design & Construction Services","M":""},
+{"G":"Indigo Run ","A":"","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Nicklaus","Y":"2025-05-20","Z":"","M":""},
+{"G":"Moss Creek North ","A":"John Fought","L":"South Carolina ","U":"USA","D":"2025","C":"Duininck Golf","J":"Renovate","S":"Construction","B":"","H":"Fazio","Y":"2025-08-03","Z":"","M":"Project Update "},
+{"G":"Musgrove Mill ","A":"Erik Larsen","L":"South Carolina ","U":"USA","D":"2025","C":"McConnell","J":"Renovate","S":"Open","B":"$3.5M","H":"Palmer","Y":"2025-06-18","Z":"Environmental Landscaping","M":""},
+{"G":"Okatie Creek GC ","A":"","L":"South Carolina ","U":"USA","D":"2025","C":"XGD Systems TDI Golf","J":"Regrass","S":"Open","B":"","H":"McCumber","Y":"2025-10-01","Z":"","M":""},
+{"G":"Old Barnwell Gilroy ","A":"Brian Schneider Blake Conant","L":"South Carolina ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-06-18","Z":"","M":""},
+{"G":"Olde Eight ","A":"Drew Rogers","L":"South Carolina ","U":"USA","D":"2026","C":"Total Turf GS","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2024-12-06","Z":"Mazzella Partnership","M":""},
+{"G":"Pickens GC ","A":"Jeff Lawrence","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-09-18","Z":"","M":""},
+{"G":"River Hills CC ","A":"Jeff Lawrence","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Tom Jackson","Y":"2024-12-07","Z":"","M":"Long Range Planning "},
+{"G":"Whispering Pines ","A":"","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$1.4M","H":"","Y":"2025-09-02","Z":"","M":""},
+{"G":"Wild Dunes Harbor ","A":"Tom Fazio Bryan Bowers","L":"South Carolina ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Construction","B":"$9.5M","H":"Tom Fazio","Y":"2025-07-22","Z":"","M":"Harbor Course "},
+{"G":"Lakeview GC ","A":"Kevin Norby","L":"South Dakota ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$0.6M","H":"","Y":"2025-06-14","Z":"","M":"Muni Budget "},
+{"G":"Cherokee CC ","A":"Tyler Rae","L":"Tennessee ","U":"USA","D":"2026","C":"Duininck Golf","J":"Renovate","S":"Ongoing","B":"","H":"Donald Ross","Y":"2025-07-22","Z":"SOX Erosion ShoreSOX","M":""},
+{"G":"Jackson CC ","A":"Kris Spence","L":"Tennessee ","U":"USA","D":"2025","C":"Hollembeak James Burrows","J":"Renovate","S":"Open","B":"$5.5M","H":"","Y":"2025-09-14","Z":"Britt Adams Quality Golf Zeon TifTuf","M":"Irrigation KDC Craig Kaufmann "},
+{"G":"Stones River CC ","A":"Bill Bergin","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"$7M","H":"","Y":"2025-08-05","Z":"","M":"Bergin Golf Designs "},
+{"G":"Sweetens Cove ","A":"Tad King Rob Collins","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-06-14","Z":"","M":""},
+{"G":"TPC Southwind ","A":"","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Regrass","S":"Open","B":"","H":"","Y":"2025-06-14","Z":"","M":""},
+{"G":"Atlas Ranch ","A":"Roy Bechtol","L":"Texas ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-09-03","Z":"Developer Matt Michelsen","M":""},
+{"G":"Angelo State ","A":"Weibring Wolfard","L":"Texas ","U":"USA","D":"2025","C":"Greenscapes Six","J":"Short","S":"Open","B":"$5.2M","H":"","Y":"2025-04-14","Z":"Premier Greens","M":""},
+{"G":"Austin Beach Club ","A":"Jim Fazio Jr.","L":"Texas ","U":"USA","D":"2025","C":"Roy Bechtol","J":"Short","S":"Construction","B":"","H":"","Y":"2025-05-13","Z":"","M":""},
+{"G":"Bentwood CC ","A":"Jeff Blume","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"$2M","H":"","Y":"2025-10-04","Z":"","M":"TifEagle "},
+{"G":"City Limits GC ","A":"","L":"Texas ","U":"USA","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-09-12","Z":"","M":"Front Nine "},
+{"G":"Clubs of Stonebridge Ranch ","A":"Lanny Wadkins Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"Pete Dye","Y":"2025-04-10","Z":"Chisholm 9","M":"Cross Bunker "},
+{"G":"Coronado CC ","A":"Bill Bergin","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-03","Z":"Ameriturf Kurt Nortman","M":"777 Bentgrass "},
+{"G":"Cowboys GC ","A":"Beau Welling","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-06-03","Z":"Graham Construction & Engineering","M":""},
+{"G":"Dallas National ","A":"Tom Fazio","L":"Texas ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$30M","H":"","Y":"2025-09-09","Z":"","M":""},
+{"G":"Denton CC ","A":"Jay Blasi","L":"Texas ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-02-10","Z":"","M":""},
+{"G":"Eagle Pointe ","A":"Baxter Spann Finger Dye","L":"Texas ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-07-14","Z":"Tetra Tech","M":""},
+{"G":"Fair Oaks Ranch ","A":"Lanny Wadkins Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-07-04","Z":"","M":""},
+{"G":"Georgetown CC ","A":"Brian Ross","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-10","Z":"","M":"Greens Renovation "},
+{"G":"Great Hills CC ","A":"Chet Williams","L":"Texas ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$22M","H":"","Y":"2024-10-09","Z":"Irrigation EC Design","M":"Water Kimley-Horn "},
+{"G":"Henry Homberg GC ","A":"Baxter Spann Finger Dye","L":"Texas ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"$20M","H":"","Y":"2025-07-13","Z":"Tetra Tech","M":"Stormwater "},
+{"G":"Hermann Park ","A":"Jon Schmenk","L":"Texas ","U":"USA","D":"2026","C":"Wolf Point Don Mahaffey","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2025-08-19","Z":"Ryan Mahaffey","M":""},
+{"G":"Hogan Park Quail ","A":"Trey Kemp","L":"Texas ","U":"USA","D":"2026","C":"Mid-America","J":"Renovate","S":"Drawing boards ","B":"$9.8M","H":"","Y":"2025-07-11","Z":"Irrigation Larry Rodgers","M":""},
+{"G":"Houston CC ","A":"Andrew Green","L":"Texas ","U":"USA","D":"2027","C":"McDonald Sons","J":"Masterplan","S":"Drawing boards ","B":"","H":"RTJ Coore","Y":"2025-04-24","Z":"Irrigation Leibold EC Design","M":""},
+{"G":"Hurricane Creek CC ","A":"Beau Welling","L":"Texas ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-08-28","Z":"","M":"Project "},
+{"G":"Keeton Park ","A":"","L":"Texas ","U":"USA","D":"2030","C":"","J":"Masterplan","S":"Drawing boards ","B":"$9M","H":"","Y":"2025-05-11","Z":"","M":""},
+{"G":"Lakewood CC ","A":"Andrew Green","L":"Texas ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$30M","H":"Bendelow Plummer Coore Crenshaw","Y":"2024-08-26","Z":"Tahoma 31 fairway rough Bent greens with hydronics","M":""},
+{"G":"Laredo CC ","A":"Kurt Bowman","L":"Texas ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Joe Finger","Y":"2024-06-23","Z":"","M":"Grow In "},
+{"G":"Meadowbrook ","A":"John Colligan Trey Kemp","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links VM Golf Fleetwood Services","J":"Rebuild ","S":"Open","B":"$14M","H":"","Y":"2025-10-02","Z":"Irrigation Larry Rodgers","M":"Shaper Noel Avellenda "},
+{"G":"Mira Vista CC ","A":"Andy Staples","L":"Texas ","U":"USA","D":"2025","C":"LGR LaBar Jimmy Mikkelsen","J":"Rebuild ","S":"Construction","B":"$16M","H":"Tom Weiskopf","Y":"2024-12-22","Z":"Irrigation Michael Kuhn MKA","M":"Shaping "},
+{"G":"Olympia Hills ","A":"Nathan Crace","L":"Texas ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-05-08","Z":"NGF","M":""},
+{"G":"Quail Valley La Quinta ","A":"Jeff Blume Billy Ray Brown","L":"Texas ","U":"USA","D":"2026","C":"Greenscapes Six","J":"Renovate","S":"Construction","B":"$5.6M","H":"Jack Miller","Y":"2025-01-29","Z":"Halff Associates","M":"Golf Construction "},
+{"G":"Pinecrest CC ","A":"Kevin Hargrave","L":"Texas ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Press Maxwell","Y":"2025-02-13","Z":"","M":"kevinhhargrave "},
+{"G":"Rankin GC ","A":"Trey Kemp","L":"Texas ","U":"USA","D":"2025","C":"VM Golf","J":"Rebuild ","S":"Construction","B":"$12M","H":"","Y":"2024-05-12","Z":"","M":"Project Superintendent David Arteaga "},
+{"G":"Sammons GC ","A":"Baxter Spann","L":"Texas ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-02-23","Z":"","M":""},
+{"G":"San Angelo CC ","A":"Tripp Davis Kyle Downs","L":"Texas ","U":"USA","D":"2025","C":"VM Golf Greenscape Methods Don Mahaffey","J":"Renovate","S":"Construction","B":"","H":"John Bredemus","Y":"2025-05-02","Z":"","M":"Course Construction "},
+{"G":"San Antonio CC ","A":"","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links Carlos Colli Alex Muniz","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-02-26","Z":"","M":""},
+{"G":"Sand Hill Farm ","A":"","L":"Texas ","U":"USA","D":"2025","C":"Heritage Links","J":"Masterplan","S":"Construction","B":"","H":"Jacobsen Hardy","Y":"2025-04-03","Z":"","M":"3 new holes "},
+{"G":"Scott Schreiner GC ","A":"","L":"Texas ","U":"USA","D":"2025","C":"XGD Systems","J":"Renovate","S":"Open","B":"$4M","H":"Joe Finger","Y":"2025-08-28","Z":"PM Troon True Club Solutions","M":""},
+{"G":"Shary Municipal GC ","A":"","L":"Texas ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"$3M","H":"","Y":"2025-09-20","Z":"","M":""},
+{"G":"Sherrill Park #2 ","A":"Weibring Wolfard","L":"Texas ","U":"USA","D":"2025","C":"Landscapes Unlimited","J":"Renovate","S":"Open","B":"$9M","H":"Leon Howard","Y":"2025-02-22","Z":"","M":""},
+{"G":"Starcke Park ","A":"Ross Quitno Crace","L":"Texas ","U":"USA","D":"2025","C":"Mid-America","J":"Renovate","S":"Construction","B":"$6M","H":"John Bredemus","Y":"2025-10-01","Z":"Ian Williams Green Irrigation Solutions","M":"Flyover "},
+{"G":"Tenison Glen ","A":"Steve Wolfard","L":"Texas ","U":"USA","D":"2029","C":"","J":"Rebuild 9","S":"Drawing boards ","B":"$4M","H":"","Y":"2025-05-11","Z":"Reduce 9 holes","M":"Dallas Golf Initiative "},
+{"G":"TPC Craig Ranch ","A":"Lanny Wadkins Kurt Bowman","L":"Texas ","U":"USA","D":"2026","C":"Aspen Golf","J":"Renovate","S":"Construction","B":"$12M","H":"Weiskopf","Y":"2025-05-04","Z":"Irrigation","M":""},
+{"G":"TRA Lake ","A":"Ty Butler","L":"Texas ","U":"USA","D":"2026","C":"Landscapes Unlimited","J":"Renovate","S":"Drawing boards ","B":"","H":"Bruce Littell","Y":"2024-03-27","Z":"was Cape Royale","M":""},
+{"G":"Alpine CC ","A":"John Fought","L":"Utah ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Construction","B":"$6.8M","H":"","Y":"2025-06-15","Z":"","M":""},
+{"G":"Jeremy Ranch ","A":"Brandon Johnson","L":"Utah ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-05-01","Z":"","M":""},
+{"G":"Rose Park GC ","A":"","L":"Utah ","U":"USA","D":"2026","C":"","J":"Irrigation","S":"Drawing boards ","B":"$4.5M","H":"","Y":"2024-10-09","Z":"","M":""},
+{"G":"Salt Lake CC ","A":"Oglivy Cocking Mead","L":"Utah ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-05-26","Z":"","M":""},
+{"G":"Spruce Peak Stowe CC ","A":"Beau Welling","L":"Vermont ","U":"USA","D":"2025","C":"Chase Webb","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-06","Z":"Back Nine","M":""},
+{"G":"CC Fairfax ","A":"Logan Thompson","L":"Virginia ","U":"USA","D":"2025","C":"McDonald Sons","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-01-29","Z":"","M":"5th Green "},
+{"G":"CC VA Tuckahoe Creek ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"Joe Lee","Y":"2024-06-14","Z":"","M":""},
+{"G":"Crossings ","A":"Lester George Vinny Giles","L":"Virginia ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$11M","H":"","Y":"2024-10-18","Z":"GBN Phil Oweby","M":""},
+{"G":"Farmington CC ","A":"Dave Axland Rodney Cole","L":"Virginia ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-05-30","Z":"","M":""},
+{"G":"Forest Greens GC ","A":"Joel Weiman","L":"Virginia ","U":"USA","D":"2025","C":"McDonald Sons","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-07-24","Z":"PM Robert Shriver","M":""},
+{"G":"Foundry ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Ongoing","B":"$1M","H":"Fred Findlay","Y":"2024-06-14","Z":"","M":""},
+{"G":"Keswick Hall Full Cry ","A":"Scot Sherman","L":"Virginia ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-03-08","Z":"","M":""},
+{"G":"Lexington G&CC ","A":"Lester George","L":"Virginia ","U":"USA","D":"2027","C":"Aspen Golf","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-10-07","Z":"Toro 2 Wire Irrigation","M":"USGA Greens "},
+{"G":"Williamsburg The Shoe ","A":"Rees Jones","L":"Virginia ","U":"USA","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-07-19","Z":"","M":""},
+{"G":"North Shore GC ","A":"Dan Hixson","L":"Washington ","U":"USA","D":"2025","C":"Ridgetop Golf","J":"Renovate","S":"Construction","B":"$7.5M","H":"","Y":"2025-03-12","Z":"","M":""},
+{"G":"East Potomac ","A":"Tom Doak","L":"Washington DC ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Walter Travis","Y":"2022-12-14","Z":"","M":"Dapper "},
+{"G":"Rock Creek Park ","A":"Hanse Wagner","L":"Washington DC ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Construction","B":"$25M","H":"William Flynn","Y":"2024-11-28","Z":"","M":"Mike McCartin "},
+{"G":"Bluefield Elks ","A":"","L":"West Virginia ","U":"USA","D":"2026","C":"McDonald Sons","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-03","Z":"","M":""},
+{"G":"Pete Dye GC ","A":"Jim Nagle","L":"West Virginia ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-08-29","Z":"","M":""},
+{"G":"Grand Geneva ","A":"Matt Dusenberry","L":"Wisconsin ","U":"USA","D":"2026","C":"Jim McKenna Tad Burnett","J":"Short 10","S":"Grow In","B":"","H":"","Y":"2025-10-07","Z":"Wee Nip","M":""},
+{"G":"North Hills CC ","A":"Samuel Beckman","L":"Wisconsin ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-27","Z":"","M":"Amateur "},
+{"G":"Oconomowoc GC ","A":"Richard Mandell","L":"Wisconsin ","U":"USA","D":"2025","C":"Hollembeak","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-29","Z":"Bunkers","M":""},
+{"G":"Ridgeway CC ","A":"Samuel Beckman","L":"Wisconsin ","U":"USA","D":"2028","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-20","Z":"","M":""},
+{"G":"Trout Lake ","A":"Paul Albanese Chris Lutzke","L":"Wisconsin ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2024-11-09","Z":"","M":"algolfdesigns "},
+{"G":"Whitnall Park ","A":"Todd Quitno","L":"Wisconsin ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$8.3M","H":"","Y":"2023-12-07","Z":"","M":"Reconstruction "},
+{"G":"Yahara Hills West ","A":"Todd Quitno","L":"Wisconsin ","U":"USA","D":"2026","C":"","J":"Reduce","S":"Construction","B":"$2.5M","H":"","Y":"2025-08-04","Z":"","M":"Reduce 18 holes "},
+{"G":"Airport GC ","A":"","L":"Wyoming ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"$5M","H":"","Y":"2024-11-29","Z":"Muni Irrigation","M":""},
+{"G":"White Mountain GC ","A":"","L":"Wyoming ","U":"USA","D":"2025","C":"","J":"Irrigation","S":"Open","B":"","H":"","Y":"2025-04-13","Z":"Harvey Irrigation","M":""},
+{"G":"Rio Cuarto ","A":"Mackenzie Ebert","L":"Cordoba ","U":"Argentina","D":"2027","C":"","J":"New","S":"Ongoing","B":"","H":"","Y":"2025-07-30","Z":"","M":""},
+{"G":"Tierra del Sol ","A":"RTJ2 Mike Gorman","L":"Antilles ","U":"Aruba","D":"2025","C":"GreenBall Golf Construction","J":"Renovate","S":"Open","B":"","H":"RTJ","Y":"2025-04-13","Z":"Jason Chennault","M":"Iberostar "},
+{"G":"Treasure Cay ","A":"","L":"Abaco ","U":"Bahamas","D":"2029","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-09-16","Z":"","M":""},
+{"G":"Cotton Bay ","A":"RTJ II Mike Gorman","L":"Eleuthera ","U":"Bahamas","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"RTJ II","Y":"2025-04-13","Z":"","M":"Adam Moeller "},
+{"G":"Reef Course ","A":"Greg Norman","L":"Freeport ","U":"Bahamas","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-06-18","Z":"","M":""},
+{"G":"Casa de Campo Teeth of the Dog ","A":"Jerry Pate Steve Dana","L":"La Romana ","U":"Dominican Republic","D":"2025","C":"Total Golf Construction","J":"Renovate","S":"Construction","B":"","H":"Pete Dye","Y":"2024-08-10","Z":"Pure Dynasty Paspalum","M":""},
+{"G":"El Once Palmilla ","A":"Agustín Pizá","L":"Baja ","U":"Mexico","D":"2026","C":"","J":"Short","S":"Construction","B":"","H":"","Y":"2025-06-07","Z":"","M":""},
+{"G":"Twin Dolphin Backyard ","A":"Todd Eckenrode","L":"Baja ","U":"Mexico","D":"2025","C":"GreenLynx Marc Logan","J":"Short 6","S":"Open","B":"","H":"","Y":"2025-04-13","Z":"Greg Villeneuve","M":""},
+{"G":"Chapultepec ","A":"Greg Norman","L":"Mexico ","U":"Mexico","D":"2026","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2025-06-07","Z":"","M":""},
+{"G":"Mandarina ","A":"Greg Norman","L":"Puerto Vallarta ","U":"Mexico","D":"2025","C":"","J":"Short","S":"Open","B":"","H":"","Y":"2025-03-13","Z":"","M":"RLH "},
+{"G":"Marina Vallarta ","A":"","L":"Puerto Vallarta ","U":"Mexico","D":"2025","C":"","J":"Regrass","S":"Open","B":"","H":"","Y":"2025-09-13","Z":"","M":""},
+{"G":"TPC Dorado Beach East ","A":"RTJ Jr.","L":"Dorado ","U":"Puerto Rico","D":"2025","C":"Heritage Links","J":"Renovate","S":"Construction","B":"","H":"RTJ Sr.","Y":"2024-07-02","Z":"EarthGuard Mulch","M":"Agronomist "},
+{"G":"Club del Uruguay ","A":"CDP DeVries","L":"Montevideo ","U":"Uruguay","D":"2026","C":"","J":"Restore","S":"Ongoing","B":"","H":"Mackenzie","Y":"2024-06-19","Z":"","M":""},
+{"G":"Sandwell Park ","A":"Mackenzie Ebert","L":"Birmingham ","U":"England","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"Harry Colt","Y":"2025-06-19","Z":"","M":"Toro Irrigation "},
+{"G":"Sutton Coldfield ","A":"CDP Pont","L":"Birmingham ","U":"England","D":"2028","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-14","Z":"","M":""},
+{"G":"Mad Swans Mendips ","A":"Tom Mackenzie","L":"Bristol ","U":"England","D":"2025","C":"","J":"Reduce 12","S":"Open","B":"","H":"","Y":"2025-10-07","Z":"12 holes","M":""},
+{"G":"La Grande Mare ","A":"EGD Robin Hiseman","L":"Guernsey ","U":"England","D":"2025","C":"MJ Abbott","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-19","Z":"European Golf Design","M":"Toro Irritech John Clarkin Jonathan Pendry "},
+{"G":"Hayling GC ","A":"Mackenzie Ebert","L":"Hampshire ","U":"England","D":"2027","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-04-14","Z":"","M":""},
+{"G":"North Hants GC ","A":"Tom Mackenzie","L":"Hampshire ","U":"England","D":"2025","C":"MJ Abbott","J":"Renovate","S":"Open","B":"$2M","H":"","Y":"2025-04-14","Z":"Irrigation Pipes PE100","M":"Rain Bird 752 "},
+{"G":"Berkhamsted GC ","A":"Frank Pont CDP","L":"Hertfordshire ","U":"England","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Colt","Y":"2025-07-12","Z":"","M":""},
+{"G":"La Moye ","A":"Tom Mackenzie Mike Howard","L":"Jersey ","U":"England","D":"2026","C":"John Heath MJ Abbott","J":"Renovate","S":"Ongoing","B":"","H":"Braid","Y":"2025-07-12","Z":"","M":"13th Hole "},
+{"G":"Matfen Hall ","A":"James Edwards EDI","L":"Newcastle ","U":"England","D":"2026","C":"Profusion Environmental Southwest Greens","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-09","Z":"Ocmis","M":""},
+{"G":"Abbeydale GC ","A":"Jonathan Gaunt","L":"Sheffield ","U":"England","D":"2025","C":"Charlie Greasley","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-03-05","Z":"","M":"Phase II "},
+{"G":"Royal Birkdale ","A":"Tom Mackenzie","L":"Southport ","U":"England","D":"2025","C":"GolfLink Evolve Steven Morris ","J":"Renovate","S":"Open","B":"","H":"Taylor Hawtree","Y":"2025-03-05","Z":"Andy Appleby","M":"David Hewitt Finish Golf "},
+{"G":"Verulam ","A":"James Edwards EDI","L":"St. Albans ","U":"England","D":"2025","C":"CJW Conor Walsh","J":"Renovate","S":"Open","B":"","H":"","Y":"2024-06-22","Z":"","M":"Phase II "},
+{"G":"Aldeburgh GC ","A":"Martin Ebert","L":"Suffolk ","U":"England","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"Colt Alison","Y":"2025-09-22","Z":"","M":""},
+{"G":"Merrist Wood ","A":"","L":"Surrey ","U":"England","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-07-22","Z":"Tom Reid","M":""},
+{"G":"St. George's Hill ","A":"Brian Schneider Clyde Johnson","L":"Surrey ","U":"England","D":"2027","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Harry Colt","Y":"2023-08-01","Z":"Jaspers Miners Joe McDonnell","M":"1913 Map "},
+{"G":"Sunningdale ","A":"Hanse Wagner","L":"Surrey ","U":"England","D":"2030","C":"Ben Hillard","J":"Masterplan","S":"Drawing boards ","B":"","H":"Colt Simpson Morrison","Y":"2025-06-19","Z":"","M":""},
+{"G":"Wentworth East ","A":"EGD Dave Sampson","L":"Surrey ","U":"England","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Harry Colt","Y":"2024-09-20","Z":"","M":""},
+{"G":"Copthorne GC ","A":"","L":"West Sussex ","U":"England","D":"2026","C":"18 Hole Construction","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-09-29","Z":"360 Groundcare","M":"5th Green "},
+{"G":"Berehaven GC ","A":"Ken Kearney","L":"Cork ","U":"Ireland","D":"2026","C":"Emerald Construction","J":"New hole","S":"Construction","B":"","H":"","Y":"2025-10-29","Z":"","M":""},
+{"G":"Donegal GC ","A":"Paul McGinley Joe Bedford","L":"Donegal ","U":"Ireland","D":"2025","C":"","J":"Masterplan","S":"Open","B":"$1.1M","H":"Eddie Hackett","Y":"2025-04-02","Z":"Ian McClements iTurf Management","M":""},
+{"G":"Portsalon GC ","A":"Paul McGinley","L":"Donegal ","U":"Ireland","D":"2029","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Thompson Ruddy","Y":"2025-01-20","Z":"","M":""},
+{"G":"Portmarnock GC ","A":"Mackenzie Ebert","L":"Dublin ","U":"Ireland","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-05-06","Z":"","M":""},
+{"G":"Rosses Point ","A":"Martin Ebert","L":"Sligo ","U":"Ireland","D":"2028","C":"DAR Golf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-03-10","Z":"MCC Water Solutions","M":"Turfgrass "},
+{"G":"Royal Belfast ","A":"CDP Frank Pont Hendrik Hilgert","L":"Holywood ","U":"No. Ireland","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"Harry Colt","Y":"2024-12-20","Z":"","M":"CDP "},
+{"G":"Royal Portrush Valley ","A":"Martin Ebert","L":"Portrush ","U":"No. Ireland","D":"2025","C":"DAR Golf","J":"Re-Design","S":"Open","B":"","H":"","Y":"2025-05-16","Z":"","M":"Links Golf "},
+{"G":"Portstewart ","A":"Ross McMurray EGD","L":"Portstewart ","U":"No. Ireland","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Willie Park","Y":"2024-04-06","Z":"","M":"3 courses "},
+{"G":"Taymouth Castle ","A":"Beau Welling","L":"Aberfeldy ","U":"Scotland","D":"2025","C":"Discovery Land","J":"Renovate","S":"Construction","B":"","H":"James Braid","Y":"2024-09-14","Z":"","M":"Grow in "},
+{"G":"Belleisle ","A":"Jeffrey Danner Stuart Rennie Paul Lawrie","L":"Ayrshire ","U":"Scotland","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"James Braid","Y":"2024-10-05","Z":"","M":"Pangaea Golf Architecture "},
+{"G":"Troon Links Darley ","A":"Jeffrey Danner Stuart Rennie Paul Lawrie","L":"Ayrshire ","U":"Scotland","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-05","Z":"","M":""},
+{"G":"Monifieth Golf Links ","A":"CDP Pont Clayton Sam Cooper","L":"Dundee ","U":"Scotland","D":"2026","C":"CJW Golf","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-06-01","Z":"","M":"Medal "},
+{"G":"Turnberry Ailsa ","A":"Martin Ebert","L":"Girvan ","U":"Scotland","D":"2025","C":"","J":"Renovate","S":"Open","B":"$1.3M","H":"","Y":"2025-06-01","Z":"","M":"Dogleg 7th "},
+{"G":"Eastwood Estate ","A":"","L":"Glasgow ","U":"Scotland","D":"2025","C":"Greentech Sports and Fairways","J":"Reopen","S":"Open","B":"","H":"","Y":"2025-07-15","Z":"Jay Dobson","M":"12 holes "},
+{"G":"Spey Bay ","A":"CDP Clayton DeVries Pont","L":"Moray ","U":"Scotland","D":"2025","C":"Chris Haspell","J":"Rebuild ","S":"Open","B":"","H":"Ben Sayers","Y":"2025-06-23","Z":"Reversible","M":"Routing "},
+{"G":"Royal Dornoch Struie ","A":"King Collins Dormer","L":"Sutherland ","U":"Scotland","D":"","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-05-01","Z":"","M":""},
+{"G":"Whitchurch GC ","A":"James Edwards EDI","L":"Cardiff ","U":"Wales","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-03-27","Z":"Stuart Gillett Legacy Golf","M":""},
+{"G":"Raglan GC ","A":"","L":"Monmouthshire ","U":"Wales","D":"2025","C":"Lucy Sellick Lee Sellick Keiron Cook","J":"Reopen","S":"Open","B":"","H":"","Y":"2025-09-16","Z":"James Towner Chris Herbert","M":"DLF Seeds UK "},
+{"G":"Royal Zoute ","A":"Tom Mackenzie Mike Howard","L":"Bruges ","U":"Belgium","D":"2025","C":"PERCEEL","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-06-20","Z":"","M":""},
+{"G":"Aura Golf ","A":"Lassi Pekka Tilander","L":"Finland ","U":"Finland","D":"2026","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-04-12","Z":"","M":"GCA "},
+{"G":"Helsinki GC ","A":"Philip Spogárd","L":"Finland ","U":"Finland","D":"2026","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-10-07","Z":"Laru Jani","M":"USGA Spec "},
+{"G":"Pickala Golf Park ","A":"Nicklaus Dirk Bouts","L":"Finland ","U":"Finland","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-09-13","Z":"","M":"Harris Kalinka "},
+{"G":"Pickala Rock Resort ","A":"Lassi Pekka Tilander","L":"Finland ","U":"Finland","D":"2025","C":"Nelson Vecchio","J":"Short","S":"Open","B":"","H":"","Y":"2025-06-17","Z":"T.A.S. Sylvain Duval Steve Okula","M":"Graham Foster "},
+{"G":"Sarfvik GC Old ","A":"Pierre Fulke","L":"Helsinki ","U":"Finland","D":"2026","C":"David Nelson Vecchio","J":"Rebuild","S":"Construction","B":"$9M","H":"","Y":"2024-11-14","Z":"PM Ilkka Kaivosoja","M":""},
+{"G":"Cabot Bordeaux ","A":"","L":"Bordeaux ","U":"France","D":"2025","C":"Chris Haspell","J":"Renovate","S":"Open","B":"","H":"Bill Coore","Y":"2025-07-15","Z":"Bunkers","M":"manfescue "},
+{"G":"Fontainebleau GC ","A":"CDP Frank Pont Hendrik Hilgert","L":"Seine et Marne ","U":"France","D":"2027","C":"","J":"Restore","S":"Ongoing","B":"","H":"Tom Simpson","Y":"2025-05-11","Z":"","M":"Bunkers "},
+{"G":"An der Pinnau ","A":"Thomas Himmel","L":"Hamburg ","U":"Germany","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-06-17","Z":"","M":""},
+{"G":"Green Eagle West ","A":"European Golf Design","L":"Hamburg ","U":"Germany","D":"2026","C":"","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2025-06-18","Z":"","M":"2035 Ryder Cup "},
+{"G":"Bad Ems ","A":"Thomas Himmel","L":"Koblenz ","U":"Germany","D":"2027","C":"Josef Pötter","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-01-27","Z":"GolfPlatz","M":""},
+{"G":"Brautarholt ","A":"Tony Ristola","L":"Reykjavík ","U":"Iceland","D":"2025","C":"TrueLinks","J":"Add 6","S":"Ongoing","B":"","H":"Edwin Roald","Y":"2025-01-19","Z":"Expand 12 to 18 holes","M":"Masterplan "},
+{"G":"Tenuta Toscana ","A":"Tom Fazio","L":"Piedmont ","U":"Italy","D":"2028","C":"","J":"Redesign","S":"Drawing boards ","B":"","H":"","Y":"2025-06-18","Z":"Discovery Land","M":"harriskalinka "},
+{"G":"Noordwijkse ","A":"Martin Ebert","L":"Amsterdam ","U":"Netherlands","D":"2027","C":"","J":"Masterplan","S":"Construction","B":"","H":"Frank Pennink","Y":"2025-07-15","Z":"","M":"Sand Dunes "},
+{"G":"Landgoed Nieuwkerk ","A":"Van der Vaart","L":"Goirle ","U":"Netherlands","D":"2026","C":"Reyrink Groep De Enk Groen","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-05-11","Z":"Irrigation Smits BV","M":"Martin Brummel GrasMeesters "},
+{"G":"Keppelse ","A":"Spogard Van der Vaart","L":"Hoog-Keppel ","U":"Netherlands","D":"2025","C":"Vos Golf","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-06-01","Z":"","M":"Michiel van der Vaart "},
+{"G":"Losby ","A":"Caspar Grauballe","L":"Oslo ","U":"Norway","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-02-01","Z":"","M":""},
+{"G":"Els Club Vilamoura ","A":"Ernie Els","L":"Algarve ","U":"Portugal","D":"2025","C":"","J":"Renovate","S":"Open","B":"$20M","H":"Arnold Palmer","Y":"2025-07-22","Z":"PM DETAILS Arrow Global","M":"Harris Kalinka "},
+{"G":"Salgados GC ","A":"Troon Design","L":"Algarve ","U":"Portugal","D":"2025","C":"","J":"Renovate","S":"Open","B":"$3.6M","H":"","Y":"2025-02-21","Z":"Agronomy Simon Doyle","M":""},
+{"G":"La Finca Villamartín ","A":"Tim Lobb Sergio Caballo","L":"Alicante ","U":"Spain","D":"2026","C":"Pav Ciawlowski SURTEC Golf Agronomy","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-06-25","Z":"Garden & Golf","M":"lobbpartners "},
+{"G":"Pineda Sevilla ","A":"CDP Frank Pont Hendrik Hilgert","L":"Andalucia ","U":"Spain","D":"2027","C":"Accttua","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-05-13","Z":"Fernández Castaño","M":"Novogreen Cesped "},
+{"G":"Infinitum Hills ","A":"Dave Sampson EGD","L":"Barcelona ","U":"Spain","D":"2026","C":"","J":"Rebuild ","S":"Open","B":"","H":"Vidaor","Y":"2025-09-26","Z":"","M":"davesampson18 "},
+{"G":"Club de Campo Madrid Seve ","A":"Olazabal","L":"Madrid ","U":"Spain","D":"2025","C":"Carlos Arambarri Toni Ortner","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-13","Z":"","M":""},
+{"G":"Capdepera GC ","A":"CDP Frank Pont Hendrik Hilgert","L":"Mallorca ","U":"Spain","D":"","C":"Gonzalo Fernández Castaño","J":"Renovate","S":"Drawing boards ","B":"","H":"Maples","Y":"2025-09-14","Z":"","M":""},
+{"G":"Corvera ","A":"","L":"Murcia ","U":"Spain","D":"2026","C":"","J":"Rebuild ","S":"Construction","B":"","H":"","Y":"2024-03-07","Z":"","M":"corveragolf "},
+{"G":"Oliva Nova GC ","A":"CDP Frank Pont Hendrik Hilgert","L":"Valencia ","U":"Spain","D":"","C":"Gonzalo Fernández Castaño","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-09-14","Z":"","M":""},
+{"G":"Araslöv South ","A":"Johan Benestam","L":"Färlöv ","U":"Sweden","D":"2025","C":"David Nelson Vecchio","J":"Renovate","S":"Open","B":"$3M","H":"","Y":"2025-06-01","Z":"","M":""},
+{"G":"Torslanda ","A":"Christian Lundin","L":"Gothenburg ","U":"Sweden","D":"2025","C":"","J":"Rebuild ","S":"Ongoing","B":"","H":"","Y":"2024-11-17","Z":"","M":"Committee "},
+{"G":"Fågelbro ","A":"Johan Benestam","L":"Stockholm ","U":"Sweden","D":"2025","C":"Nelson Vecchio","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-06-01","Z":"CapillaryFlow","M":""},
+{"G":"Glenelg ","A":"Neil Crafter Ryan Van Der Veen","L":"Adelaide ","U":"Australia","D":"2025","C":"Tuohy Warren","J":"Renovate","S":"Open","B":"$3M","H":"Morcom","Y":"2024-12-23","Z":"PM Ryan Van Der Veen ","M":"AUS "},
+{"G":"Fairbairn ","A":"Ben Davey","L":"Canberra ","U":"Australia","D":"2027","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2024-08-08","Z":"","M":"Contour "},
+{"G":"Royal Canberra ","A":"Oglivy Cocking Mead","L":"Canberra ","U":"Australia","D":"2025","C":"","J":"Masterplan","S":"Open","B":"","H":"","Y":"2025-05-25","Z":"","M":""},
+{"G":"Yowani CC ","A":"Ben Davey","L":"Canberra ","U":"Australia","D":"2025","C":"Flemming Golf","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2024-10-14","Z":"","M":"Contour Golf Design "},
+{"G":"Redcliffe GC ","A":"Luke Shelton Crafter Mogford","L":"Brisbane ","U":"Australia","D":"2026","C":"Atlas Golf","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-10-01","Z":"","M":"Luke Shelton "},
+{"G":"Catalina Club ","A":"CDP Clayton Lukas Michel","L":"NSW ","U":"Australia","D":"2027","C":"Harley Kruse","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-07-05","Z":"","M":""},
+{"G":"Chatswood Golf Club ","A":"Neil Crafter ","L":"NSW ","U":"Australia","D":"2025","C":"","J":"Rebuild","S":"Construction","B":"","H":"","Y":"2025-07-17","Z":"Retirement community","M":"12 hole course "},
+{"G":"Elanora GC ","A":"Clayton DeVries Pont","L":"NSW ","U":"Australia","D":"2027","C":"Harley Kruse","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-07-17","Z":"","M":""},
+{"G":"Mollymook GC ","A":"Ryan Van Der Veen","L":"NSW ","U":"Australia","D":"2025","C":"Think Green Golf and Landscaping","J":"Masterplan","S":"Open","B":"","H":"","Y":"2024-12-10","Z":"Matt Milner","M":""},
+{"G":"Newcastle GC ","A":"Bob Harrison","L":"NSW ","U":"Australia","D":"2027","C":"Scott Champion","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-02-20","Z":"","M":""},
+{"G":"New South Wales ","A":"Mackenzie Ebert Thomas Stout","L":"NSW ","U":"Australia","D":"2025","C":"Craig Brown Global Turf","J":"Renovate","S":"Open","B":"","H":"MacKenzie","Y":"2025-03-01","Z":"","M":"777 bent sod "},
+{"G":"Pennant Hills GC ","A":"","L":"NSW ","U":"Australia","D":"2025","C":"Craig Brown","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-09-19","Z":"","M":""},
+{"G":"Riverside Oaks Bungool ","A":"","L":"NSW ","U":"Australia","D":"2025","C":"Flemming Golf","J":"Renovate","S":"Construction","B":"","H":"Bob Harrison","Y":"2024-02-24","Z":"Flood repair","M":""},
+{"G":"Royal Sydney Bay ","A":"Gil Hanse","L":"NSW ","U":"Australia","D":"2025","C":"Harley Kruse Reece Haspell Matt Milner Think Green Global Turf","J":"Restore","S":"Open","B":"$12M","H":"Kent","Y":"2025-06-29","Z":"Josh McFadden Rory Paul Atlas Golf","M":"Santa Ana Couch "},
+{"G":"Shoalhaven Heads ","A":"","L":"NSW ","U":"Australia","D":"2025","C":"Think Green Golf and Landscaping","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-10-07","Z":"","M":""},
+{"G":"Mount Lawley ","A":"Oglivy Cocking Mead","L":"Perth ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-02-19","Z":"","M":"007 Bentgrass "},
+{"G":"Royal Perth ","A":"Clayton Lukas Michel","L":"Perth ","U":"Australia","D":"2026","C":"Harley Kruse","J":"Rebuild","S":"Ongoing","B":"","H":"","Y":"2025-08-28","Z":"","M":"Santa Ana bermuda "},
+{"G":"Royal Queensland Short ","A":"Oglivy Cocking Mead","L":"Queensland ","U":"Australia","D":"2027","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2025-08-03","Z":"Eastern Land","M":"Harris Kalinka "},
+{"G":"North Adelaide GC ","A":"Greg Norman","L":"South Aus. ","U":"Australia","D":"2028","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2025-02-16","Z":"LIV","M":""},
+{"G":"Royal Adelaide GC ","A":"Brian Slawnik","L":"South Aus. ","U":"Australia","D":"2026","C":"","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-10-01","Z":"Renaissance Golf Design","M":""},
+{"G":"The Grange West ","A":"Oglivy Cocking Mead","L":"South Aus. ","U":"Australia","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Morcom","Y":"2025-09-20","Z":"","M":""},
+{"G":"CC Tasmania ","A":"Robin Gibson","L":"Tasmania ","U":"Australia","D":"2026","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-08-30","Z":"","M":""},
+{"G":"Tasmania GC ","A":"Ben Davey","L":"Tasmania ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-13","Z":"Highway","M":""},
+{"G":"Centenary Park ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","D":"2025","C":"NewScope Turf & Civil","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-04-13","Z":"South Coast Irrigation Matt Heaton","M":"Newscope Turf & Civil "},
+{"G":"Huntingdale ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Alison","Y":"2024-10-25","Z":"Cranbourne JV","M":"environmental_golf_solutions "},
+{"G":"Metropolitan ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","D":"2025","C":"McMahons","J":"Restore","S":"Open","B":"","H":"","Y":"2025-06-13","Z":"STRI Australia","M":"Shane Newman "},
+{"G":"Portsea ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","D":"2028","C":"Harley Kruse","J":"Masterplan","S":"Ongoing","B":"","H":"","Y":"2025-06-24","Z":"","M":""},
+{"G":"Sale GC ","A":"Crafter Mogford","L":"Victoria ","U":"Australia","D":"2027","C":"","J":"Re-Design","S":"Drawing boards ","B":"","H":"","Y":"2025-04-02","Z":"","M":""},
+{"G":"Yering Meadows ","A":"CDP Clayton Lukas Michel","L":"Victoria ","U":"Australia","D":"2026","C":"GreenSpace Peter Vlahandreas","J":"Renovate","S":"Open","B":"$0.3M","H":"","Y":"2025-08-25","Z":"","M":""},
+{"G":"Kennedy Bay ","A":"Graham Marsh","L":"Western Aus. ","U":"Australia","D":"2025","C":"McMahons","J":"Renovate","S":"Construction","B":"","H":"Ian Baker-Finch","Y":"2025-02-22","Z":"","M":"Rough Shaping "},
+{"G":"The Hills ","A":"Oglivy Cocking Mead","L":"Arrowtown ","U":"NZ","D":"2028","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-08-23","Z":"Jim Rohrstaff","M":""},
+{"G":"Kauri Cliffs ","A":"","L":"Matauri Bay ","U":"NZ","D":"2025","C":"","J":"Regrass","S":"Construction","B":"","H":"","Y":"2025-08-20","Z":"","M":""},
+{"G":"Boulcott’s Farm ","A":"Kristine Kerr","L":"Wellington ","U":"NZ","D":"2029","C":"","J":"Rebuild 6","S":"Ongoing","B":"","H":"","Y":"2024-12-12","Z":"","M":""},
+{"G":"Miramar Links ","A":"Macpherson","L":"Wellington ","U":"NZ","D":"2026","C":"David Currie","J":"Rebuild 9","S":"Ongoing","B":"","H":"","Y":"2025-06-02","Z":"","M":"SM Golf Design "},
+{"G":"Garden Course ","A":"Peter Harradine","L":"Abu Dhabi ","U":"Abu Dhabi","D":"2025","C":"","J":"Rebuild ","S":"Construction","B":"","H":"","Y":"2024-07-05","Z":"","M":""},
+{"G":"Wellington Gymkhana ","A":"Vijit Nandrajog","L":"Tamil Nadu ","U":"India","D":"2025","C":"","J":"Renovate","S":"Open","B":"","H":"","Y":"2025-02-19","Z":"","M":""},
+{"G":"Tama Hills ","A":"","L":"Tokyo ","U":"Japan","D":"2025","C":"","J":"Regrass","S":"Open","B":"$1M","H":"","Y":"2025-03-31","Z":"","M":""},
+{"G":"Woo Jeong Hills ","A":"Cynthia Dye Designs O'Brien McGarey","L":"Seoul ","U":"Korea","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"Perry Dye","Y":"2024-12-21","Z":"","M":""},
+{"G":"Savan Resorts ","A":"Nicklaus Sean Quinn","L":"Savannakhet ","U":"Laos","D":"2025","C":"Flagstick Pepsun John Carson","J":"Short","S":"Construction","B":"","H":"","Y":"2025-07-15","Z":"Jeff Stamper CADSULT IDS Irrigation","M":""},
+{"G":"KLGCC East ","A":"Nick Faldo Gareth Williams","L":"Kuala Lumpur ","U":"Malaysia","D":"2025","C":"","J":"Renovate","S":"Construction","B":"","H":"","Y":"2025-09-09","Z":"Adam Calver","M":""},
+{"G":"Sembawang CC ","A":"David Dale Kevin Ramsey Golfplan","L":"Singapore ","U":"Singapore","D":"2026","C":"Adam Mortimer TEHC","J":"Renovate","S":"Construction","B":"","H":"Chris Pitman","Y":"2025-02-22","Z":"Stadium Primo Zoysia","M":""},
+{"G":"SICC Island ","A":"Brett Mogg Neil Haworth","L":"Singapore ","U":"Singapore","D":"2025","C":"TEHC Centaur Asia Pacific","J":"Renovate","S":"Open","B":"$20M","H":"","Y":"2025-09-09","Z":"Soil Scout","M":"Profile Porous Ceramic "},
+{"G":"Al Hamra ","A":"Peter Harradine","L":"Dubai ","U":"UAE","D":"2025","C":"Adam Kelland Ray Burt","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2025-07-27","Z":"Orient Irrigation Services","M":""},
+{"G":"The Hills ","A":"Peter Matkovich","L":"Harare ","U":"Zimbabwe","D":"2026","C":"Joe Smith","J":"Rebuild","S":"Construction","B":"$7M","H":"","Y":"2025-07-02","Z":"Warren Hills","M":"Progress Update "}
+ ]
+}
diff --git a/data/gI.json b/data/gI.json
new file mode 100644
index 0000000000000..e6ea0693f406f
--- /dev/null
+++ b/data/gI.json
@@ -0,0 +1,117 @@
+{
+ "data":[
+{"G":"Great Keppel Island ","A":"Greg Norman","D":"2012","L":"Queensland ","U":"Australia","Z":"","M":""},
+{"G":"Waterton Lakes ","A":"Tim Lobb Oliver Tubb","D":"2025","L":"Alberta ","U":"Canada","Z":"","M":""},
+{"G":"Mabou ","A":"TBA","D":"2027","L":"Nova Scotia ","U":"Canada","Z":"","M":"Provincial Parks Act "},
+{"G":"Taboo ","A":"Nicklaus Design","D":"2024","L":"Ontario ","U":"Canada","Z":"","M":""},
+{"G":"Weston ","A":"Andy Staples","D":"2022","L":"Ontario ","U":"Canada","Z":"","M":"Design Plan "},
+{"G":"BellAir ","A":"Forrest Richardson","D":"2022","L":"Arizona ","U":"USA","Z":"","M":""},
+{"G":"Brookside GC ","A":"Forrest Richardson","D":"2026","L":"California ","U":"USA","Z":"Muni","M":""},
+{"G":"Camarillo Hills ","A":"Damian Pascuzzo","D":"2027","L":"California ","U":"USA","Z":"12 Holes","M":"Redevelopment "},
+{"G":"Carlton Oaks ","A":"Cary Bickler","D":"2019","L":"California ","U":"USA","Z":"","M":"ALIKA Real Estate "},
+{"G":"Coyote Canyon ","A":"TBA","D":"2022","L":"California ","U":"USA","Z":"","M":""},
+{"G":"Desert Willow Firecliff ","A":"TBA","D":"2024","L":"California ","U":"USA","Z":"$1.8M","M":""},
+{"G":"Hacienda ","A":"Todd Eckenrode","D":"2025","L":"California ","U":"USA","Z":"","M":"Masterplan "},
+{"G":"Lucerne Valley ","A":"Dave Edsall","D":"2024","L":"California ","U":"USA","Z":"Rancho Lucerne","M":""},
+{"G":"Shingle Springs ","A":"Forrest Richardson","D":"2024","L":"California ","U":"USA","Z":"","M":""},
+{"G":"Talus ","A":"","D":"2024","L":"California ","U":"USA","Z":"was SilverRock","M":""},
+{"G":"Vandenburg Dunes ","A":"TBA","D":"2027","L":"California ","U":"USA","Z":"Larkin","M":""},
+{"G":"Brightwater ","A":"TBA","D":"2026","L":"Colorado ","U":"USA","Z":"","M":"Mountain Golf "},
+{"G":"Florida Keys Resort ","A":"","D":"2028","L":"Florida ","U":"USA","Z":"","M":""},
+{"G":"Innisbrook Osprey North ","A":"TBA","D":"2025","L":"Florida ","U":"USA","Z":"12 holes","M":""},
+{"G":"Jonathan Dickinson ","A":"","D":"2024","L":"Florida ","U":"USA","Z":"","M":"State Park "},
+{"G":"Lekarica Hills CC ","A":"TBD","D":"2014","L":"Florida ","U":"USA","Z":"","M":"Site tour "},
+{"G":"Lone Pine GC ","A":"TBD","D":"2027","L":"Florida ","U":"USA","Z":"Riviera Beach","M":""},
+{"G":"Paradise Isle ","A":"Ron Garl","D":"2026","L":"Florida ","U":"USA","Z":"","M":""},
+{"G":"Black Sand Beach ","A":"","D":"2021","L":"Hawaii ","U":"USA","Z":"Jack Snyder","M":""},
+{"G":"Makaha North Course ","A":"Tiger Woods","D":"2022","L":"Hawaii ","U":"USA","Z":"New owner KH Makaha","M":"$20M sale "},
+{"G":"Makaha South Course ","A":"Gil Hanse","D":"2022","L":"Hawaii ","U":"USA","Z":"","M":""},
+{"G":"McCall GC ","A":"David Druzisky","D":"2023","L":"Idaho ","U":"USA","Z":"$3.7M","M":""},
+{"G":"Willowbrook ","A":"Phil Smith","D":"2027","L":"Idaho ","U":"USA","Z":"Richard M. Phillips","M":""},
+{"G":"Southshore Jackson Park ","A":"Tiger Woods","D":"2032","L":"Illinois ","U":"USA","Z":"","M":""},
+{"G":"Waveland ","A":"TBA","D":"2022","L":"Iowa ","U":"USA","Z":"waveland1932project.org","M":"Joe Wandro "},
+{"G":"Bedico Creek ","A":"TBA","D":"2010","L":"Louisiana ","U":"USA","Z":"","M":""},
+{"G":"Eastover ","A":"TBA","D":"2009","L":"Louisiana ","U":"USA","Z":"$5M","M":""},
+{"G":"Greenbury Point ","A":"Jack Nicklaus","D":"2023","L":"Maryland ","U":"USA","Z":"","M":""},
+{"G":"Hiawatha ","A":"Tom Lehman","D":"2029","L":"Minnesota ","U":"USA","Z":"$43M","M":""},
+{"G":"BrazenHead12 ","A":"Tad King Rob Collins","D":"2021","L":"Mississippi ","U":"USA","Z":"","M":"Loops of 3/6/9/12 "},
+{"G":"Otter Creek LaFleur ","A":"Crace RTJ II","D":"2024","L":"Mississippi ","U":"USA","Z":"$13M","M":"State Park "},
+{"G":"Balducci Vineyards ","A":"Rees Jones","D":"2021","L":"Missouri ","U":"USA","Z":"David Hoffmann","M":""},
+{"G":"Big Sky Resort ","A":"Raymond Hearn","D":"2025","L":"Montana ","U":"USA","Z":"","M":""},
+{"G":"Audobon Amherst ","A":"NLE","D":"2023","L":"New York ","U":"USA","Z":"was Westwood CC","M":"$8M Real Estate "},
+{"G":"Buffalo Olmsted ","A":"Jack Nicklaus","D":"2026","L":"New York ","U":"USA","Z":"$23M","M":"Dixon "},
+{"G":"Knapp Ranch ","A":"","D":"","L":"Oregon ","U":"USA","Z":"","M":""},
+{"G":"Oregon Dunes ","A":"John Fought","D":"","L":"Oregon ","U":"USA","Z":"Douglas Point ","M":""},
+{"G":"Pacific Gales ","A":"Haley Esler","D":"2026","L":"Oregon ","U":"USA","Z":"","M":"Planning Board "},
+{"G":"Wicked Pony ","A":"Tom Doak","D":"2009","L":"Oregon ","U":"USA","Z":"","M":""},
+{"G":"Winnapaug ","A":"Nicklaus Design","D":"2022","L":"Rhode Island ","U":"USA","Z":"Jill Scola","M":""},
+{"G":"Cheekwood ","A":"Nicklaus Design","D":"2021","L":"Tennessee ","U":"USA","Z":"","M":""},
+{"G":"Walter E. Long Park ","A":"Joe Ogilvie","D":"2014","L":"Texas ","U":"USA","Z":"Decker Lake","M":"Water Permits "},
+{"G":"Badger Mountain ","A":"John Steidel","D":"2010","L":"Washington ","U":"USA","Z":"Nor Am","M":"Real estate "},
+{"G":"Port Townsend ","A":"TBA","D":"2023","L":"Washington ","U":"USA","Z":"NGF $ 1M","M":""},
+{"G":"Kohler Whistling Straits 2 ","A":"King Collins","D":"2023","L":"Wisconsin ","U":"USA","Z":"Permit approved","M":"Fried Egg "},
+{"G":"Lago Escondido ","A":"TBA","D":"2009","L":"Bariloche ","U":"Argentina","Z":"Joe Lewis","M":""},
+{"G":"Kakona Resort ","A":"David McLay Kidd","D":"2022","L":"Abaco ","U":"Bahamas","Z":"High Bank Bay","M":""},
+{"G":"Bock Cay ","A":"Nick Faldo","D":"2014","L":"Exuma ","U":"Bahamas","Z":"Brandon White Construction","M":""},
+{"G":"Boa Vista ","A":"Rees Jones","D":"2022","L":"Sao Paulo ","U":"Brazil","Z":"","M":"Greg Muirhead ASGCA "},
+{"G":"Campinas Eduardo Walker ","A":"Dana Fry Jason Straka","D":"2019","L":"São Paulo ","U":"Brazil","Z":"","M":""},
+{"G":"Bellomonte ","A":"TBA","D":"2030","L":"Guanabo ","U":"Cuba","Z":"","M":""},
+{"G":"Carbonera Club ","A":"PGADC","D":"2030","L":"Palmares ","U":"Cuba","Z":"","M":""},
+{"G":"El Salado Resort ","A":"IDOM","D":"2030","L":"Pinar del Rio ","U":"Cuba","Z":"","M":""},
+{"G":"El Salado ","A":"Jon Hunt","D":"2018","L":"Santiago ","U":"Cuba","Z":"IDG","M":""},
+{"G":"Naco Golf & Country Club ","A":"Angel Jimenez","D":"2025","L":"Santo Domingo ","U":"Dominican Republic","Z":"","M":""},
+{"G":"Maraiko Bay ","A":"David Hemstock","D":"2028","L":"Mahaica ","U":"Guyana","Z":"Rudy Ramalingum CIMGRO","M":""},
+{"G":"Tijuana CC ","A":"Agustín Pizá","D":"2023","L":"Baja ","U":"Mexico","Z":"","M":"Erik Anders Lang "},
+{"G":"Chichén Itzá ","A":"Greg Norman","D":"2022","L":"Yucatan ","U":"Mexico","Z":"","M":"GrupoCíclo "},
+{"G":"St. Andrews ","A":"Jemsek","D":"2023","L":"Port of Spain ","U":"Trinidad","Z":"","M":""},
+{"G":"Hallamshire ","A":"Frank Pont","D":"2022","L":"Sheffield ","U":"England","Z":"","M":"Heathland "},
+{"G":"Centurion ","A":"TBA","D":"2024","L":"St. Albans ","U":"England","Z":"","M":""},
+{"G":"Bartragh Island ","A":"Nick Faldo","D":"2021","L":"Sligo ","U":"Ireland","Z":"","M":"Links Golf "},
+{"G":"Ury Estate ","A":"Jack Nicklaus Bouts","D":"2024","L":"Aberdeen ","U":"Scotland","Z":"Turfgrass Agronomy Services","M":"IMG "},
+{"G":"Irvine Beach ","A":"TBA","D":"2027","L":"Ayrshire ","U":"Scotland","Z":"","M":""},
+{"G":"The Angus ","A":"Webster Clarke","D":"2022","L":"Dundee ","U":"Scotland","Z":"","M":"$120M "},
+{"G":"Mar Hall ","A":"TBA","D":"2024","L":"Glasgow ","U":"Scotland","Z":"","M":""},
+{"G":"Castlecraig ","A":"TBA","D":"2025","L":"Tain ","U":"Scotland","Z":"","M":"GCA "},
+{"G":"Matalda ","A":"Ernie Els","D":"2028","L":"Cres ","U":"Croatia","Z":"","M":""},
+{"G":"Razvoj Golf Resort ","A":"TBD","D":"2023","L":"Dubrovnik ","U":"Croatia","Z":"","M":""},
+{"G":"Eagle Pine Resort ","A":"Graham Marsh","D":"2026","L":"Pissouri ","U":"Cyprus","Z":"","M":""},
+{"G":"Tammer ","A":"Mikko Ilonen","D":"2021","L":"Finland ","U":"Finland","Z":"$11M","M":""},
+{"G":"Montagne Noir ","A":"NCM","D":"2010","L":"Fontiers Cabardès ","U":"France","Z":"","M":""},
+{"G":"Domaine Lavagnac ","A":"Jack Nicklaus","D":"2023","L":"Occitanie ","U":"France","Z":"","M":""},
+{"G":"Val-Grand ","A":"Nick Faldo","D":"2021","L":"Paris ","U":"France","Z":"","M":"Paris Golf "},
+{"G":"Delphi Golf Resort ","A":"TBA","D":"2028","L":"Fokida ","U":"Greece","Z":"","M":""},
+{"G":"Kilada Hills ","A":"Nicklaus Dirk Bouts","D":"2024","L":"Kilada ","U":"Greece","Z":"","M":"WSJ 2010 "},
+{"G":"Monte Rei South ","A":"Jack Nicklaus","D":"2022","L":"Portugal ","U":"Portugal","Z":"","M":"Rei "},
+{"G":"TBA ","A":"TBA","D":"2026","L":"Belgrade ","U":"Serbia","Z":"","M":""},
+{"G":"Los Cálamos ","A":"Stirling Martin","D":"2024","L":"Castellon ","U":"Spain","Z":"","M":"EIGCA "},
+{"G":"Valle del Golf ","A":"","D":"2027","L":"Malaga ","U":"Spain","Z":"","M":""},
+{"G":"TBA ","A":"Russell Talley","D":"1987","L":"Lake Geneva ","U":"Switzerland","Z":"","M":""},
+{"G":"Kameruka ","A":"Harley Kruse","D":"2027","L":"NSW ","U":"Australia","Z":"","M":""},
+{"G":"Wisemans Ferry ","A":"","D":"2024","L":"NSW ","U":"Australia","Z":"$100M","M":""},
+{"G":"Musselroe Bay ","A":"Oglivy Cocking Mead","D":"2030","L":"Tasmania ","U":"Australia","Z":"","M":"Harris Kalinka "},
+{"G":"Douglas Links ","A":"","D":"2022","L":"North Island ","U":"NZ","Z":"Ohau River","M":""},
+{"G":"TBA ","A":"TBA","D":"2023","L":"Baku ","U":"Azerbaijan","Z":"","M":""},
+{"G":"Golf Harmony ","A":"","D":"2024","L":"Kampot ","U":"Cambodia","Z":"","M":"Design Plan "},
+{"G":"Thansur Bokor Highland Resort ","A":"Arnold Palmer","D":"2008","L":"Phnom Penh ","U":"Cambodia","Z":"","M":""},
+{"G":"Bellus Angkor Resort ","A":"David McLay Kidd","D":"2010","L":"Siem Reap ","U":"Cambodia","Z":"","M":""},
+{"G":"O’Chhuteal Beach Resort ","A":"","D":"2004","L":"Sihanoukville ","U":"Cambodia","Z":"","M":""},
+{"G":"Simapo Island ","A":"Tom Doak Eric Iverson","D":"2014","L":"Hainan ","U":"China","Z":"Brett Hochstein","M":""},
+{"G":"Labuan Bajo ","A":"","D":"2022","L":"East Nusa Tenggara ","U":"Indonesia","Z":"","M":""},
+{"G":"Nusantara ","A":"","D":"2030","L":"Kalimantan ","U":"Indonesia","Z":"","M":""},
+{"G":"Mandalika ","A":"","D":"2020","L":"Lombok ","U":"Indonesia","Z":"$65M","M":" Special Economic Zone "},
+{"G":"Land Authority ","A":"TBA","D":"2028","L":"Eilat ","U":"Isreael","Z":"","M":""},
+{"G":"Kuala Penyu Golf & Country Club ","A":"TBA","D":"2030","L":"Sabah ","U":"Malaysia","Z":"","M":""},
+{"G":"Sarai Alamgir ","A":"TBA","D":"2024","L":"Gujrat ","U":"Pakistan","Z":"New Kharian","M":" "},
+{"G":"Panglao Resort ","A":"DSME","D":"2025","L":"Bohol ","U":"Philippines","Z":"","M":""},
+{"G":"Dolphin Island ","A":"TBA","D":"2028","L":"Cebu ","U":"Philippines","Z":"","M":"Vision "},
+{"G":"Carmen ","A":"TBA","D":"2026","L":"Davao City ","U":"Philippines","Z":"","M":""},
+{"G":"Shishkino CC ","A":"Agustin Piza","D":"2024","L":"Moscow ","U":"Russia","Z":"","M":""},
+{"G":"AK Bars ","A":"Harradine","D":"2022","L":"Tatarstan ","U":"Russia","Z":"","M":"Engo "},
+{"G":"Vladivostok GC ","A":"Rasinkangas Fream","D":"2024","L":"Vladivostok ","U":"Russia","Z":"","M":""},
+{"G":"Panditharatna ","A":"TBA","D":"2011","L":"Muthurajawela ","U":"Sri Lanka","Z":"","M":""},
+{"G":"Ruayrungruang ","A":"Tiger Woods","D":"2025","L":"Bangkok ","U":"Thailand","Z":"","M":""},
+{"G":"Equides GC ","A":"Jonathan Davison","D":"2023","L":"Kiev ","U":"Ukraine","Z":"","M":"Progress "},
+{"G":"Porto Cairo ","A":"Steve Ritson","D":"2022","L":"Cairo ","U":"Egypt","Z":"","M":"EIGCA "},
+{"G":"Adonai ","A":"TBA","D":"2023","L":"Ho ","U":"Ghana","Z":"","M":"Image "}
+ ]
+}
diff --git a/data/gNLE.json b/data/gNLE.json
new file mode 100644
index 0000000000000..9cb4494f4993c
--- /dev/null
+++ b/data/gNLE.json
@@ -0,0 +1,596 @@
+{
+ "data":[
+{"R":"N America","G":"Akokiniskway Greens GC ","L":"Alberta ","U":"Canada","E":"","C":"Rosebud ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sherwood Golf and Country Club ","L":"Alberta ","U":"Canada","E":"","C":"Sherwood Park ","D":"2010","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Ironhead Golf & Country Club ","L":"Alberta ","U":"Canada","E":"","C":"Wabamun ","D":"1999","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Royal Oak Golf Club ","L":"British Columbia ","U":"Canada","E":"","C":"Saanich ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rainbow's End GC ","L":"British Columbia ","U":"Canada","E":"","C":"Sayward ","D":"2008","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Prospect Lake GC ","L":"British Columbia ","U":"Canada","E":"","C":"Victoria ","D":"2015","J":"Abandoned","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Falls Golf Club ","L":"Manitoba ","U":"Canada","E":"","C":"Pine Falls ","D":"2001","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gilridge Golf Club ","L":"New Brunswick ","U":"Canada","E":"","C":"Fredericton ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Aroostook Valley Country Club ","L":"New Brunswick ","U":"Canada","E":"","C":"Perth-Andover ","D":"1995","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Annapolis Royal Golf & Country Club ","L":"Nova Scotia ","U":"Canada","E":"","C":"Annapolis Royal ","D":"2003","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glenway GC ","L":"Ontario ","U":"Canada","E":"","C":"Newmarket ","D":"2017","J":"City Park","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Nationview GC ","L":"Ontario ","U":"Canada","E":"","C":"South Dundas ","D":"1992","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Turkey Point Golf Club ","L":"Ontario ","U":"Canada","E":"","C":"Turkey Point ","D":"2007","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Summerside GC ","L":"Prince Edward Island ","U":"Canada","E":"","C":"Summerside ","D":"2011","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Norway Bay GC ","L":"Quebec ","U":"Canada","E":"","C":"Bristol ","D":"2004","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Dorval Municipal Golf Club ","L":"Quebec ","U":"Canada","E":"","C":"Dorval ","D":"1990","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gray Rocks Resort - La Belle ","L":"Quebec ","U":"Canada","E":"","C":"Mont-Tremblant ","D":"2000","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Big Wills Creek GC ","L":"Alabama ","U":"USA","E":"","C":"Attalla ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Indian Pines GC ","L":"Alabama ","U":"USA","E":"","C":"Auburn ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Heatherwood Hills Country Club ","L":"Alabama ","U":"USA","E":"","C":"Birmingham ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Capstone Club ","L":"Alabama ","U":"USA","E":"","C":"Brookwood ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Capstone Club ","L":"Alabama ","U":"USA","E":"","C":"Brookwood ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Decatur Country Club ","L":"Alabama ","U":"USA","E":"","C":"Decatur ","D":"2022","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Olympia Spa GC ","L":"Alabama ","U":"USA","E":"","C":"Dothan ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakepoint Resort GC ","L":"Alabama ","U":"USA","E":"","C":"Eufaula ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gulf State Park GC ","L":"Alabama ","U":"USA","E":"","C":"Gulf Shores ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Huntsville Municipal GC ","L":"Alabama ","U":"USA","E":"","C":"Huntsville ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fox Run Golf Club ","L":"Alabama ","U":"USA","E":"","C":"Meridianville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Trojan Oaks GC ","L":"Alabama ","U":"USA","E":"","C":"Troy ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Harry Pritchett GC ","L":"Alabama ","U":"USA","E":"","C":"Tuscaloosa ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Elmendorf Air Force Base ","L":"Alaska ","U":"USA","E":"","C":"Anchorage ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oasis Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Florence ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glen Lakes GC ","L":"Arizona ","U":"USA","E":"","C":"Glendale ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Apache Stronghold ","L":"Arizona ","U":"USA","E":"","C":"Globe ","D":"","J":"","S":"Closed","B":"","O":"","H":"Tom Doak","Z":"","M":""},
+{"R":"N America","G":"Falcon Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Litchfield Park ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Dreamland Villa GC ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fiesta Lakes Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Freedom GC ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mesa Family Golf Center ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Patriot GC ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Quick Hits Golf ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Riverview GC ","L":"Arizona ","U":"USA","E":"","C":"Mesa ","D":"2012","J":"Baseball","S":"Closed","B":"","O":"","H":"","Z":"Muni","M":""},
+{"R":"N America","G":"Country Meadows GC ","L":"Arizona ","U":"USA","E":"","C":"Peoria ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Coyote Ridge Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Peoria ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Ahwatukee Lakes Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Club West Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"El Caro Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"2007","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Maryvale Municipal GC ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Phantom Horse Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Villa de la Paz ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Vistal ","L":"Arizona ","U":"USA","E":"","C":"Phoenix ","D":"2017","J":"Real estate","S":"Closed","B":"$4.8M","O":"","H":"","Z":"Avance","M":""},
+{"R":"N America","G":"Tegavah Golf Club ","L":"Arizona ","U":"USA","E":"","C":"Rio Verde ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Vista Verde GC ","L":"Arizona ","U":"USA","E":"","C":"Rio Verde ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Links Golf Club at Queen Creek ","L":"Arizona ","U":"USA","E":"","C":"San Tan Valley ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"ASU Karsten GC ","L":"Arizona ","U":"USA","E":"","C":"Tempe ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shalimar GC ","L":"Arizona ","U":"USA","E":"","C":"Tempe ","D":"2025","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Longhills GC ","L":"Arkansas ","U":"USA","E":"","C":"Benton ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Greystone Country Club ","L":"Arkansas ","U":"USA","E":"","C":"Cabot ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Belvedere Golf Club ","L":"Arkansas ","U":"USA","E":"","C":"Hot Springs ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hindman GC ","L":"Arkansas ","U":"USA","E":"","C":"Little Rock ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"War Memorial GC ","L":"Arkansas ","U":"USA","E":"","C":"Little Rock ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Stone Links GC ","L":"Arkansas ","U":"USA","E":"","C":"North Little Rock ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Big Sugar Golf Club ","L":"Arkansas ","U":"USA","E":"","C":"Pea Ridge ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cedars Country Club ","L":"Arkansas ","U":"USA","E":"","C":"Van Buren ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sierra Meadows CC ","L":"California ","U":"USA","E":"","C":"Ahwahnee ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Aliso Viejo CC ","L":"California ","U":"USA","E":"","C":"Aliso Viejo ","D":"2001","J":"","S":"Reduced","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Roddy Ranch GC ","L":"California ","U":"USA","E":"","C":"Antioch ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sycamore Canyon GC ","L":"California ","U":"USA","E":"","C":"Arvin ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"McAllister Ranch GC ","L":"California ","U":"USA","E":"","C":"Bakersfield ","D":"Never Opened","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pepper Tree GC ","L":"California ","U":"USA","E":"","C":"Bakersfield ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Barstow GC ","L":"California ","U":"USA","E":"","C":"Barstow ","D":"2007","J":"","S":"Closed","B":"","O":"","H":"","Z":" Sun and Sky CC","M":""},
+{"R":"N America","G":"Borrego Springs Resort ","L":"California ","U":"USA","E":"San Diego","C":"Borrego Springs ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"Water","M":""},
+{"R":"N America","G":"Shadow Lakes GC ","L":"California ","U":"USA","E":"","C":"Brentwood ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Paradise Pines GC ","L":"California ","U":"USA","E":"","C":"Chico ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Salt Creek GC ","L":"California ","U":"USA","E":"San Diego","C":"Chula Vista ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Otay water district "},
+{"R":"N America","G":"Cypress GC ","L":"California ","U":"USA","E":"","C":"Colma ","D":"2012","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Green River GC ","L":"California ","U":"USA","E":"","C":"Corona ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mountain View CC ","L":"California ","U":"USA","E":"","C":"Corona ","D":"2009","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bass Lake GC ","L":"California ","U":"USA","E":"","C":"El Dorado County ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fallbrook GC ","L":"California ","U":"USA","E":"San Diego","C":"Fallbrook ","D":"2016","J":"Winery","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Elkins Ranch GC ","L":"California ","U":"USA","E":"","C":"Fillmore ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Before "},
+{"R":"N America","G":"Mile Square GC ","L":"California ","U":"USA","E":"","C":"Fountain Valley ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Airways Municipal GC ","L":"California ","U":"USA","E":"","C":"Fresno ","D":"2027","J":"Airport","S":"Proposal","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Javier Fresno West GC ","L":"California ","U":"USA","E":"","C":"Fresno ","D":"2012","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Ocean Meadows GC ","L":"California ","U":"USA","E":"","C":"Goleta ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Skywest GC ","L":"California ","U":"USA","E":"","C":"Hayward ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Indian Springs GC ","L":"California ","U":"USA","E":"","C":"Indio ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"El Toro GC ","L":"California ","U":"USA","E":"","C":"Irvine ","D":"2000","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oak Creek GC ","L":"California ","U":"USA","E":"","C":"Irvine ","D":"2025","J":"Real estate","S":"Proposal","B":"","O":"","H":"","Z":"Public GC","M":""},
+{"R":"N America","G":"Riviera Hills GC ","L":"California ","U":"USA","E":"","C":"Kelseyville ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kern Valley GC ","L":"California ","U":"USA","E":"","C":"Kernville ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sun Valley GC ","L":"California ","U":"USA","E":"","C":"La Mesa ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sierra La Verne CC ","L":"California ","U":"USA","E":"","C":"La Verne ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lake Elizabeth GC ","L":"California ","U":"USA","E":"","C":"Lake Hughes ","D":"2009","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Barona Creek ","L":"California ","U":"USA","E":"","C":"Lakeside ","D":"2021","J":"","S":"Reduced","B":"","O":"","H":"","Z":"Water","M":""},
+{"R":"N America","G":"Springtown GC ","L":"California ","U":"USA","E":"","C":"Livermore ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lockeford Springs GC ","L":"California ","U":"USA","E":"","C":"Lodi ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Montebello GC (Bella Verde) ","L":"California ","U":"USA","E":"","C":"Los Angeles ","D":"2022","J":"","S":"Reduced 9","B":"","O":"","H":"","Z":"Max Behr","M":""},
+{"R":"N America","G":"Victoria ","L":"California ","U":"USA","E":"","C":"Los Angeles ","D":"","J":"Kimmelman","S":"Proposal","B":"$50M","O":"","H":"Arnold Palmer","Z":"Tennis Center","M":""},
+{"R":"N America","G":"Weddington ","L":"California ","U":"USA","E":"","C":"Los Angeles ","D":"2024","J":"Real estate","S":"Closed","B":"$42M","O":"","H":"","Z":"","M":"School "},
+{"R":"N America","G":"Woodland Hills CC ","L":"California ","U":"USA","E":"","C":"Los Angeles ","D":"","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Malibu CC ","L":"California ","U":"USA","E":"","C":"Malibu ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"San Geronimo GC ","L":"California ","U":"USA","E":"","C":"Marin ","D":"2018","J":"Conservation","S":"Closed","B":"$8.8M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Meadow GC ","L":"California ","U":"USA","E":"","C":"Martinez ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cherry Hills GC ","L":"California ","U":"USA","E":"","C":"Menifee ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"North GC ","L":"California ","U":"USA","E":"","C":"Menifee ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Langtry Farms GC ","L":"California ","U":"USA","E":"","C":"Middletown ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Moreno Valley Ranch GC ","L":"California ","U":"USA","E":"","C":"Moreno Valley ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Quail Ranch GC ","L":"California ","U":"USA","E":"","C":"Moreno Valley ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mountain House GC ","L":"California ","U":"USA","E":"","C":"Mountain House ","D":"2008","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Forest Meadows GC ","L":"California ","U":"USA","E":"","C":"Murphys ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Silver Pines GC ","L":"California ","U":"USA","E":"","C":"Newark ","D":"2000","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Primm Valley GC ","L":"California ","U":"USA","E":"","C":"Nipton ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"Tom Fazio","Z":"","M":""},
+{"R":"N America","G":"Ridgeline GC ","L":"California ","U":"USA","E":"","C":"Orange ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Desert Dunes GC ","L":"California ","U":"USA","E":"","C":"Palm Desert ","D":"2025","J":"Park","S":"Closed","B":"","O":"","H":"","Z":"RTJ Jr.","M":""},
+{"R":"N America","G":"Palm Desert Short Course ","L":"California ","U":"USA","E":"","C":"Palm Desert ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Santa Rosa CC ","L":"California ","U":"USA","E":"","C":"Palm Desert ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bel Air Greens ","L":"California ","U":"USA","E":"","C":"Palm Springs ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mesquite Golf & Country Club ","L":"California ","U":"USA","E":"","C":"Palm Springs ","D":"2022","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Palm Springs CC ","L":"California ","U":"USA","E":"","C":"Palm Springs ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"Whitewater CC","M":""},
+{"R":"N America","G":"Diablo Grande Golf & CC (Legends Course) ","L":"California ","U":"USA","E":"","C":"Patterson ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Adobe Creek GC ","L":"California ","U":"USA","E":"","C":"Petaluma ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Delta View GC ","L":"California ","U":"USA","E":"","C":"Pittsburg ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Grayson Woods GC ","L":"California ","U":"USA","E":"","C":"Pleasant Hill ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Point Mugu GC John Clark ","L":"California ","U":"USA","E":"","C":"Point Mugu ","D":"2007","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Aetna Springs GC ","L":"California ","U":"USA","E":"Napa","C":"Pope Valley ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lindsay Municipal GC ","L":"California ","U":"USA","E":"","C":"Porterville ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"StoneRidge CC ","L":"California ","U":"USA","E":"San Diego","C":"Poway ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Carmel Valley ","L":"California ","U":"USA","E":"","C":"Rancho Cañada ","D":"2016","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"Palo Corona","M":""},
+{"R":"N America","G":"Empire Lakes GC ","L":"California ","U":"USA","E":"","C":"Rancho Cucamonga ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rancho Mirage CC ","L":"California ","U":"USA","E":"","C":"Rancho Mirage ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lake Redding GC ","L":"California ","U":"USA","E":"","C":"Redding ","D":"2009","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"El Rancho Verde GC ","L":"California ","U":"USA","E":"","C":"Rialto ","D":"2011","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Champions Club at The Retreat ","L":"California ","U":"USA","E":"","C":"Riverside ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"El Rivino CC ","L":"California ","U":"USA","E":"","C":"Riverside ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Paradise Knolls GC ","L":"California ","U":"USA","E":"","C":"Riverside ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Riverside GC ","L":"California ","U":"USA","E":"","C":"Riverside ","D":"2009","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rocklin GC ","L":"California ","U":"USA","E":"","C":"Rocklin ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"Sunset Whitney CC","M":""},
+{"R":"N America","G":"Rolling Greens GC ","L":"California ","U":"USA","E":"","C":"Roseville ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Palm Meadows GC ","L":"California ","U":"USA","E":"","C":"San Bernardino ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"San Bernardino CC ","L":"California ","U":"USA","E":"","C":"San Bernardino ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Carmel Highlands Golf Resort ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2015","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Carmel Mountain Ranch ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2018","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cottonwood Lakes ","L":"California ","U":"USA","E":"San Diego","C":"El Cajon ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Escondido CC ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2013","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Riverwalk GC ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2026","J":"Real estate","S":"Approved","B":"","O":"","H":"","Z":"","M":"Development "},
+{"R":"N America","G":"Salt Creek GC ","L":"California ","U":"USA","E":"San Diego","C":"Chula Vista ","D":"2019","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"San Luis Rey Downs ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2014","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Town Park Villas GC ","L":"California ","U":"USA","E":"San Diego","C":"San Diego ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"University City Village","M":""},
+{"R":"N America","G":"Pleasant Hills GC ","L":"California ","U":"USA","E":"","C":"San Jose ","D":"2004","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Ranch GC ","L":"California ","U":"USA","E":"","C":"San Jose ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wikiup GC ","L":"California ","U":"USA","E":"","C":"Santa Rosa ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sea Ranch Golf Links ","L":"California ","U":"USA","E":"","C":"Sea Ranch ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lost Canyons GC ","L":"California ","U":"USA","E":"Ventura","C":"Simi Valley ","D":"2016","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lyons GC ","L":"California ","U":"USA","E":"","C":"Stockton ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cherry Hills GC ","L":"California ","U":"USA","E":"","C":"Sun City ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sunol Valley GC ","L":"California ","U":"USA","E":"","C":"Sunol ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cascades GC ","L":"California ","U":"USA","E":"","C":"Sylmar ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Horse Thief CC ","L":"California ","U":"USA","E":"","C":"Tehachapi ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Stevinson Ranch GC ","L":"California ","U":"USA","E":"","C":"Turlock ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Green Tree GC ","L":"California ","U":"USA","E":"","C":"Vacaville ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Marshallia Ranch ","L":"California ","U":"USA","E":"","C":"Vandenberg AFB ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Westwinds GC ","L":"California ","U":"USA","E":"","C":"Victorville ","D":"2012","J":"Air Force Base Closure","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oak Patch GC ","L":"California ","U":"USA","E":"","C":"Visalia ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Valley Rose GC ","L":"California ","U":"USA","E":"","C":"Wasco ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Coyote Run GC ","L":"California ","U":"USA","E":"","C":"Yuba City ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fitzsimons GC ","L":"Colorado ","U":"USA","E":"","C":"Aurora ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Antelope Hills GC ","L":"Colorado ","U":"USA","E":"","C":"Bennett ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Eagle Trace GC ","L":"Colorado ","U":"USA","E":"","C":"Broomfield ","D":"2026","J":"","S":"Proposal","B":"","O":"","H":"","Z":"","M":"Water rights "},
+{"R":"N America","G":"Shadow Hills Golf Club ","L":"Colorado ","U":"USA","E":"","C":"Cañon City ","D":"2009","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Broadmoor Mountain Course ","L":"Colorado ","U":"USA","E":"","C":"Colorado Springs ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"Landslide","M":""},
+{"R":"N America","G":"Park Hill Golf Club ","L":"Colorado ","U":"USA","E":"","C":"Denver ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Green Gables Country Club ","L":"Colorado ","U":"USA","E":"","C":"Lakewood ","D":"2008","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cougar Canyon Golf Links ","L":"Colorado ","U":"USA","E":"","C":"Trinidad ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Blue Fox Run GC ","L":"Connecticut ","U":"USA","E":"","C":"Hartford ","D":"","J":"","S":"Open","B":"$5.7M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Black Birch Golf Club ","L":"Connecticut ","U":"USA","E":"","C":"Moodus ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cavaliers Country Club ","L":"Delaware ","U":"USA","E":"","C":"Christiana ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rookery North GC ","L":"Delaware ","U":"USA","E":"","C":"Milford ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shawnee Country Club ","L":"Delaware ","U":"USA","E":"","C":"Milford ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Three Little Bakers Country Club ","L":"Delaware ","U":"USA","E":"","C":"Newark ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Brandywine Country Club ","L":"Delaware ","U":"USA","E":"","C":"Wilmington ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hercules Country Club ","L":"Delaware ","U":"USA","E":"","C":"Wilmington ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Country Club at Deer Run ","L":"Florida ","U":"USA","E":"","C":"Casselberry ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Heron Bay Golf Club ","L":"Florida ","U":"USA","E":"","C":"Coral Springs ","D":"2019","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"Wetlands","M":""},
+{"R":"N America","G":"Sandhill GC ","L":"Florida ","U":"USA","E":"","C":"Deland ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Eglen Air Force Base ","L":"Florida ","U":"USA","E":"","C":"Destin ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Riviera GC ","L":"Florida ","U":"USA","E":"","C":"East Naples ","D":"2022","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wildflower Country Club ","L":"Florida ","U":"USA","E":"","C":"Englewood ","D":"2006","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gainesville CC ","L":"Florida ","U":"USA","E":"","C":"Gainesville ","D":"2024","J":"","S":"Closed","B":"$2M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Meadowbrook GC ","L":"Florida ","U":"USA","E":"","C":"Gainesville ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"West End GC ","L":"Florida ","U":"USA","E":"","C":"Gainesville ","D":"2022","J":"Park","S":"Closed","B":"$3.8M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakeside GC ","L":"Florida ","U":"USA","E":"","C":"Inverness ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Keystone ","L":"Florida ","U":"USA","E":"","C":"Lake Geneva ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Inverrary Country Club ","L":"Florida ","U":"USA","E":"","C":"Miami ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"RTJ Sr.","M":""},
+{"R":"N America","G":"Sugarloaf Mountain ","L":"Florida ","U":"USA","E":"","C":"Orlando ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"Coore Crenshaw","Z":"","M":""},
+{"R":"N America","G":"Tomoka Oaks ","L":"Florida ","U":"USA","E":"","C":"Ormond Beach ","D":"2020","J":"Real Estate","S":"Abandoned","B":"","O":"","H":"","Z":"Permits","M":""},
+{"R":"N America","G":"Pebble Creek ","L":"Florida ","U":"USA","E":"","C":"Tampa Bay ","D":"2021","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Turtle Creek GC ","L":"Florida ","U":"USA","E":"","C":"Rockledge ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gulf Gate GC ","L":"Florida ","U":"USA","E":"","C":"Sarasota ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Treasure Bay Golf ","L":"Florida ","U":"USA","E":"","C":"Tampa Bay ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"Hurricane","M":""},
+{"R":"N America","G":"Sherwood CC ","L":"Florida ","U":"USA","E":"","C":"Titusville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Centennial ","L":"Georgia ","U":"USA","E":"","C":"Acworth ","D":"2004","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Athens Country Club (Old) ","L":"Georgia ","U":"USA","E":"","C":"Athens ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"White Columns Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Atlanta ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Green Meadows GC ","L":"Georgia ","U":"USA","E":"","C":"Augusta ","D":"2016","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fieldstone Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Conyers ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Highlands Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Conyers ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gold Creek Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Dawsonville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oak Haven GC ","L":"Georgia ","U":"USA","E":"","C":"Macon ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Long Shadow GC ","L":"Georgia ","U":"USA","E":"","C":"Madison ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Orchard Hills Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Newnan ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rocky Creek Golf Club ","L":"Georgia ","U":"USA","E":"","C":"Vidalia ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Ko'olau Golf Club ","L":"Hawaii ","U":"USA","E":"","C":"Kaneohe ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sea Mountain GC ","L":"Hawaii ","U":"USA","E":"","C":"Pahala ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Foxtail GC ","L":"Idaho ","U":"USA","E":"","C":"Boise ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Montpelier GC ","L":"Idaho ","U":"USA","E":"","C":"Montpelier ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fresh Meadow GC ","L":"Illinois ","U":"USA","E":"","C":"Hillside ","D":"2000","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gleneagles Country Club ","L":"Illinois ","U":"USA","E":"","C":"Lemont ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Brassie Golf Club ","L":"Indiana ","U":"USA","E":"","C":"Chesterton ","D":"2009","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Old Orchard ","L":"Indiana ","U":"USA","E":"","C":"Elkhart ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wesselman Woods ","L":"Indiana ","U":"USA","E":"","C":"Evansville ","D":"2019","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Blackford GC ","L":"Indiana ","U":"USA","E":"","C":"Hartford City ","D":"2025","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Riverside GC ","L":"Indiana ","U":"USA","E":"","C":"Indianapolis ","D":"2019","J":"Playground","S":"Closed","B":"$13M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"South Grove GC ","L":"Indiana ","U":"USA","E":"","C":"Indianapolis ","D":"2012","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Thatcher GC ","L":"Indiana ","U":"USA","E":"","C":"Indianapolis ","D":"2008","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Whispering Hills GC ","L":"Indiana ","U":"USA","E":"","C":"Indianapolis ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wolf Run GC ","L":"Indiana ","U":"USA","E":"","C":"Zanesville ","D":"2017","J":"Conservation","S":"Closed","B":"$5.5M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Atlantic Golf & Country Club ","L":"Iowa ","U":"USA","E":"","C":"Atlantic ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Jones GC ","L":"Iowa ","U":"USA","E":"","C":"Cedar Rapids ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Clinton Country Club ","L":"Iowa ","U":"USA","E":"","C":"Clinton ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Dodge Riverside ","L":"Iowa ","U":"USA","E":"","C":"Council Bluffs ","D":"2025","J":"Real estate","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakeside National Golf Club ","L":"Iowa ","U":"USA","E":"","C":"Jefferson ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Newton Country Club ","L":"Iowa ","U":"USA","E":"","C":"Newton ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Emporia Country Club ","L":"Kansas ","U":"USA","E":"","C":"Emporia ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cottonwood Hills Golf Club ","L":"Kansas ","U":"USA","E":"","C":"Hutchinson ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Custer Hill GC ","L":"Kansas ","U":"USA","E":"","C":"Junction City ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Painted Hills GC ","L":"Kansas ","U":"USA","E":"","C":"Kansas City ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakeside Hills GC ","L":"Kansas ","U":"USA","E":"","C":"Olathe ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Deer Creek GC ","L":"Kansas ","U":"USA","E":"","C":"Overland Park ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Elks Country Club ","L":"Kansas ","U":"USA","E":"","C":"Salina ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shawnee Country Club ","L":"Kansas ","U":"USA","E":"","C":"Topeka ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Braeburn Wichita State GC ","L":"Kansas ","U":"USA","E":"","C":"Wichita ","D":"2014","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"L.W. Clapp GC ","L":"Kansas ","U":"USA","E":"","C":"Wichita ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"Muni","M":""},
+{"R":"N America","G":"Rolling Meadows GC ","L":"Kentucky ","U":"USA","E":"","C":"Ashland ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hartland GC ","L":"Kentucky ","U":"USA","E":"","C":"Bowling Green ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Franklin County Country Club ","L":"Kentucky ","U":"USA","E":"","C":"Frankfort ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Players Club of Henderson ","L":"Kentucky ","U":"USA","E":"","C":"Henderson ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fincastle Heights Golf Club ","L":"Kentucky ","U":"USA","E":"","C":"Louisville ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glenmary Country Club ","L":"Kentucky ","U":"USA","E":"","C":"Louisville ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Old Silo Golf Club ","L":"Kentucky ","U":"USA","E":"","C":"Mount Sterling ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Paxton Park GC ","L":"Kentucky ","U":"USA","E":"","C":"Paducah ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Tanglewood GC ","L":"Kentucky ","U":"USA","E":"","C":"Taylorsville ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Southwind GC ","L":"Kentucky ","U":"USA","E":"","C":"Winchester ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bayou Barriere Golf Club ","L":"Louisiana ","U":"USA","E":"","C":"Belle Chasse ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hahnville GC ","L":"Louisiana ","U":"USA","E":"","C":"Hahnville ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shreveport CC ","L":"Louisiana ","U":"USA","E":"","C":"Shreveport ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Bluffs at Thompson Creek ","L":"Louisiana ","U":"USA","E":"","C":"St. Francisville ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kennebec Heights GC ","L":"Maine ","U":"USA","E":"","C":"Gardiner ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gorham Country Club ","L":"Maine ","U":"USA","E":"","C":"Gorham ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Katahdin Country Club ","L":"Maine ","U":"USA","E":"","C":"Milo ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Naples Golf and Country Club ","L":"Maine ","U":"USA","E":"","C":"Naples ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pleasant Hill GC ","L":"Maine ","U":"USA","E":"","C":"Scarborough ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sable Oaks Golf Club ","L":"Maine ","U":"USA","E":"","C":"South Portland ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rivermeadow Golf Club ","L":"Maine ","U":"USA","E":"","C":"Westbrook ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Twin Falls Golf Club ","L":"Maine ","U":"USA","E":"","C":"Westbrook ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Streamside GC ","L":"Maine ","U":"USA","E":"","C":"Winterport ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Beechtree Golf Club ","L":"Maryland ","U":"USA","E":"","C":"Aberdeen ","D":"2007","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"Tom Doak","M":""},
+{"R":"N America","G":"Bay Club ","L":"Maryland ","U":"USA","E":"","C":"Berlin ","D":"2016","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Montgomery Village GC ","L":"Maryland ","U":"USA","E":"","C":"Gaithersburg ","D":"2013","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glenn Dale ","L":"Maryland ","U":"USA","E":"","C":"Glenn Dale ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Patuxent Greens ","L":"Maryland ","U":"USA","E":"","C":"Laurel ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"Laurel Pines","M":""},
+{"R":"N America","G":"West Winds GC ","L":"Maryland ","U":"USA","E":"","C":"New Market ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hillendale Country Club ","L":"Maryland ","U":"USA","E":"","C":"Phoenix ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Red Gate GC ","L":"Maryland ","U":"USA","E":"","C":"Rockville ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Muni "},
+{"R":"N America","G":"Wakefield Valley GC ","L":"Maryland ","U":"USA","E":"","C":"Westminster ","D":"2012","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Edge Hill GC ","L":"Massachusetts ","U":"USA","E":"","C":"Ashfield ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Maplegate CC ","L":"Massachusetts ","U":"USA","E":"","C":"Bellingham ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"New England CC ","L":"Massachusetts ","U":"USA","E":"","C":"Bellingham ","D":"2025","J":"Real estate","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Leicester ","L":"Massachusetts ","U":"USA","E":"","C":"Leicester ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Redevelopment "},
+{"R":"N America","G":"Beaver Brook GC ","L":"Massachusetts ","U":"USA","E":"","C":"Northampton ","D":"2025","J":"Conservation","S":"Closed","B":"$1.5M","O":"","H":"","Z":"","M":"The Trustees "},
+{"R":"N America","G":"Warren Valley East ","L":"Michigan ","U":"USA","E":"","C":"Dearborn Heights ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Rogell GC ","L":"Michigan ","U":"USA","E":"","C":"Detroit ","D":"2013","J":"Real estate","S":"Closed","B":"$5.3M","O":"","H":"","Z":"Conservation","M":" "},
+{"R":"N America","G":"Palmer Park GC ","L":"Michigan ","U":"USA","E":"","C":"Detroit ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Salt River GC ","L":"Michigan ","U":"USA","E":"","C":"Detroit ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Brookwood GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kearsley Lake GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Loch Lomond GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mott Park GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Shores GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rustic Glen GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Southmoor GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Vienna Greens GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Willow Brook GC ","L":"Michigan ","U":"USA","E":"","C":"Flint ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Black Forest GC ","L":"Michigan ","U":"USA","E":"","C":"Gaylord ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"Tom Doak","Z":"","M":""},
+{"R":"N America","G":"Walnut Hills GC ","L":"Michigan ","U":"USA","E":"","C":"Lansing ","D":"2018","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Four Winds GC ","L":"Michigan ","U":"USA","E":"","C":"Lansing ","D":"2002","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Red Cedar GC ","L":"Michigan ","U":"USA","E":"","C":"Lansing ","D":"2007","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sycamore GC ","L":"Michigan ","U":"USA","E":"","C":"Lansing ","D":"2019","J":"Disc Golf","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Waverly Hills GC ","L":"Michigan ","U":"USA","E":"","C":"Lansing ","D":"2007","J":"Abandoned","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Brighton GC ","L":"Michigan ","U":"USA","E":"","C":"Mt. Brighton ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cedar Glen GC ","L":"Michigan ","U":"USA","E":"","C":"New Baltimore ","D":"2025","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Devil's Ridge Golf Club ","L":"Michigan ","U":"USA","E":"","C":"Oxford ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Elk Ridge GC ","L":"Michigan ","U":"USA","E":"","C":" ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Albert Lea Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Albert Lea ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Tri-City Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Belle Plaine ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Clearbrook Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Clearbrook ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lester Park GC ","L":"Minnesota ","U":"USA","E":"","C":"Duluth ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lake Pepin Country Club ","L":"Minnesota ","U":"USA","E":"","C":"Lake City ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lake Harriet Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Minneapolis ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Monte-Sota Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Montevideo ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Bridges of Mounds View ","L":"Minnesota ","U":"USA","E":"","C":"Mounds View ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fort Ridgely GC ","L":"Minnesota ","U":"USA","E":"","C":"New Ulm ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Red Lake Falls Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Red Lake Falls ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rush City Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"Rush City ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Ridge GC ","L":"Minnesota ","U":"USA","E":"","C":"St. Cloud ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Les Bolstad ","L":"Minnesota ","U":"USA","E":"","C":"St. Paul ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"University "},
+{"R":"N America","G":"Bryn Mawr Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"St. Paul ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hillcrest Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"St. Paul ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Roadside Golf Club ","L":"Minnesota ","U":"USA","E":"","C":"St. Paul ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Birch Bay GC ","L":"Minnesota ","U":"USA","E":"","C":"Unknown ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hickory Hill Country Club ","L":"Mississippi ","U":"USA","E":"","C":"Gautier ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bayou Vista GC ","L":"Mississippi ","U":"USA","E":"","C":"Gulfport ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Great Southern Golf Club ","L":"Mississippi ","U":"USA","E":"","C":"Gulfport ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Gulf Hills Golf Club ","L":"Mississippi ","U":"USA","E":"","C":"Ocean Springs ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Harrah's Casino Tunica GC ","L":"Mississippi ","U":"USA","E":"","C":"Tunica Resorts ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bootheel Golf Club ","L":"Missouri ","U":"USA","E":"","C":"Sikeston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Country Lake Golf Club ","L":"Missouri ","U":"USA","E":"","C":"Warrenton ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fort Custer GC ","L":"Montana ","U":"USA","E":"","C":"Hardin ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Skyline Woods GC ","L":"Nebraska ","U":"USA","E":"","C":"Elkhorn ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Benson Park GC ","L":"Nebraska ","U":"USA","E":"","C":"Omaha ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Falls ","L":"Nevada ","U":"USA","E":"","C":"Henderson ","D":"2009","J":"Real estate","S":"Closed","B":"","O":"","H":"Tom Weiskopf","Z":"Lake Las Vegas","M":""},
+{"R":"N America","G":"Badlands ","L":"Nevada ","U":"USA","E":"Clark","C":"Las Vegas ","D":"2016","J":"Real estate","S":"Closed","B":"$286M","O":"","H":"","Z":"Lennar","M":"Legal "},
+{"R":"N America","G":"Black Mountain ","L":"Nevada ","U":"USA","E":"Clark","C":"Las Vegas ","D":"2018","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"Lennar","M":""},
+{"R":"N America","G":"Desert Pines ","L":"Nevada ","U":"USA","E":"Clark","C":"Las Vegas ","D":"2027","J":"Real estate","S":"Proposed","B":"$17.4M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Silverstone Golf Club ","L":"Nevada ","U":"USA","E":"Clark","C":"Las Vegas ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Emerald River GC ","L":"Nevada ","U":"USA","E":"","C":"Laughlin ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"","G":" ","L":" ","U":"","E":"","C":" ","D":"","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Northgate GC ","L":"Nevada ","U":"USA","E":"","C":"Reno ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Countryside Golf Club ","L":"New Hampshire ","U":"USA","E":"","C":"Dunbarton ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hanover Country Club ","L":"New Hampshire ","U":"USA","E":"","C":"Hanover ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hanover Country Club ","L":"New Hampshire ","U":"USA","E":"","C":"Hanover ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Green Meadow Golf Club ","L":"New Hampshire ","U":"USA","E":"","C":"Hudson ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kingston Fairways Golf Club ","L":"New Hampshire ","U":"USA","E":"","C":"Kingston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Old York GC ","L":"New Jersey ","U":"USA","E":"","C":"Chesterfield ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"Gary Player","Z":"","M":""},
+{"R":"N America","G":"Old Orchard ","L":"New Jersey ","U":"USA","E":"","C":"Eatontown ","D":"2024","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"Tillinghast","M":""},
+{"R":"N America","G":"Englewood Golf Club ","L":"New Jersey ","U":"USA","E":"","C":"Englewood ","D":"1977","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Hidden Valley GC ","L":"New Mexico ","U":"USA","E":"","C":"Aztec ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Club Rio Rancho ","L":"New Mexico ","U":"USA","E":"","C":"Rio Rancho ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"WSMR GC ","L":"New Mexico ","U":"USA","E":"","C":"White Sands ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pinnacle State Park GC ","L":"New York ","U":"USA","E":"","C":"Addison ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Westwood CC ","L":"New York ","U":"USA","E":"","C":"Amherst ","D":"2014","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Nevele Grand Hotel GC ","L":"New York ","U":"USA","E":"","C":"Ellenville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Blue Heron GC ","L":"New York ","U":"USA","E":"","C":"Macedon ","D":"2025","J":"Real estate","S":"Reduce 9","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kutsher's Hotel and Country Club ","L":"New York ","U":"USA","E":"","C":"Monticello ","D":"2013","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Tallgrass GC ","L":"New York ","U":"USA","E":"","C":"Shoreham ","D":"2017","J":"Real estate","S":"Closed","B":"","O":"","H":"Hanse","Z":"Hanse","M":""},
+{"R":"N America","G":"Woodmere CC ","L":"New York ","U":"USA","E":"","C":"Hempstead ","D":"2020","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Donald J. Trump State Park GC ","L":"New York ","U":"USA","E":"","C":"Yorktown Heights ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Carolina Shores Golf & Country Club ","L":"North Carolina ","U":"USA","E":"","C":"Brunswick County ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mt. Mitchell GC ","L":"North Carolina ","U":"USA","E":"","C":"Burnsville ","D":"2025","J":"Hurricane","S":"Temporary?","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Farmstead ","L":"North Carolina ","U":"USA","E":"","C":"Calabash ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Marsh Harbour Golf Links ","L":"North Carolina ","U":"USA","E":"","C":"Calabash ","D":"2003","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Charlotte Golf Links ","L":"North Carolina ","U":"USA","E":"","C":"Charlotte ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"Tom Doak","M":""},
+{"R":"N America","G":"The Golf Club at Ballantyne ","L":"North Carolina ","U":"USA","E":"","C":"Charlotte ","D":"2021","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"Northwood","M":""},
+{"R":"N America","G":"Lakeshore GC ","L":"North Carolina ","U":"USA","E":"","C":"Durham ","D":"2018","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hope Mills ","L":"North Carolina ","U":"USA","E":"","C":"Fayetteville ","D":"2014","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":"9 Holes "},
+{"R":"N America","G":"Overhills ","L":"North Carolina ","U":"USA","E":"","C":"Fayetteville ","D":"Donald Ross","J":"","S":"Abandoned","B":"","O":"","H":"","Z":"Chris Buie","M":" "},
+{"R":"N America","G":"Ocean Isle Beach GC ","L":"North Carolina ","U":"USA","E":"","C":"Ocean Isle ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Chevoit Hills GC ","L":"North Carolina ","U":"USA","E":"","C":"Raleigh ","D":"2006","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wil-Mar Golf ","L":"North Carolina ","U":"USA","E":"","C":"Raleigh ","D":"2022","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Angels Trace ","L":"North Carolina ","U":"USA","E":"","C":"Sunset Beach ","D":"2006","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Birchwood GC ","L":"North Dakota ","U":"USA","E":"","C":"Bottineau ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pheasant Country GC ","L":"North Dakota ","U":"USA","E":"","C":"South Heart ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lake View GC ","L":"Ohio ","U":"USA","E":"","C":"Alliance ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Edgewood Golf Club ","L":"Ohio ","U":"USA","E":"","C":"Canton ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rolling Green GC ","L":"Ohio ","U":"USA","E":"","C":"Canton ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Tam O'Shanter GC ","L":"Ohio ","U":"USA","E":"","C":"Canton ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Skyland Pines Golf Club ","L":"Ohio ","U":"USA","E":"","C":"Canton ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shawnee Lookout ","L":"Ohio ","U":"USA","E":"","C":"Cincinnati ","D":"2019","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oakwood Club ","L":"Ohio ","U":"USA","E":"","C":"Cleveland Heights ","D":"2010","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Hawk's Nest ","L":"Ohio ","U":"USA","E":"","C":"Creston ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wayside ","L":"Ohio ","U":"USA","E":"","C":"Findlay ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hickory Grove GC ","L":"Ohio ","U":"USA","E":"","C":"Harpster ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Seven Hills Country Club ","L":"Ohio ","U":"USA","E":"","C":"Lake Township ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Acacia Country Club ","L":"Ohio ","U":"USA","E":"","C":"Lyndhurst ","D":"2013","J":"","S":"Closed","B":"","O":"","H":"","Z":"Donald Ross","M":""},
+{"R":"N America","G":"Hickory ","L":"Ohio ","U":"USA","E":"","C":"Marion ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mar-O-Del GC ","L":"Ohio ","U":"USA","E":"","C":"Marion ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sanctuary GC ","L":"Ohio ","U":"USA","E":"","C":"Marion ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Whetstone GC ","L":"Ohio ","U":"USA","E":"","C":"Marion ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Moundbuilders Country Club ","L":"Ohio ","U":"USA","E":"","C":"Newark ","D":"2025","J":"Legal","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Lakes Golf Club ","L":"Ohio ","U":"USA","E":"","C":"Mount Gilead ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Whetstone ","L":"Ohio ","U":"USA","E":"","C":"Whetstone ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"White Hawk GC ","L":"Oklahoma ","U":"USA","E":"","C":"Bixby ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Emerald Falls ","L":"Oklahoma ","U":"USA","E":"","C":"Broken Arrow ","D":"2014","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fountainhead Creek ","L":"Oklahoma ","U":"USA","E":"","C":"Checotah ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Woods ","L":"Oklahoma ","U":"USA","E":"","C":"Coweta ","D":"2010","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Coffee Creek GC ","L":"Oklahoma ","U":"USA","E":"","C":"Edmond ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pheasant Run Golf Club ","L":"Oklahoma ","U":"USA","E":"","C":"Enid ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Broadmoore GC ","L":"Oklahoma ","U":"USA","E":"","C":"Moore ","D":"2019","J":"Real estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Eagle Crest GC ","L":"Oklahoma ","U":"USA","E":"","C":"Muskogee ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cobblestone Creek Golf Club ","L":"Oklahoma ","U":"USA","E":"","C":"Norman ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakeside GC ","L":"Oklahoma ","U":"USA","E":"","C":"Oklahoma City ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Okmulgee CC ","L":"Oklahoma ","U":"USA","E":"","C":"Oklahoma City ","D":"2010","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"SilverHorn GC ","L":"Oklahoma ","U":"USA","E":"","C":"Oklahoma City ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shadow Creek GC ","L":"Oklahoma ","U":"USA","E":"","C":"Sallisaw ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Clary Fields Golf Club ","L":"Oklahoma ","U":"USA","E":"","C":"Sapulpa ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Page Belcher GC ","L":"Oklahoma ","U":"USA","E":"","C":"Tulsa ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Quail Valley GC ","L":"Oregon ","U":"USA","E":"","C":"Banks ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Marysville GC ","L":"Oregon ","U":"USA","E":"Benton","C":"Corvallis ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Eagle Creek GC ","L":"Oregon ","U":"USA","E":"Clackamas","C":"Estacada ","D":"2025","J":"Conservation","S":"Closed","B":"$6.4M","O":"","H":"","Z":"Watershed","M":""},
+{"R":"N America","G":"RiverRidge GC ","L":"Oregon ","U":"USA","E":"Lane","C":"Eugene ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cottonwood Lakes GC ","L":"Oregon ","U":"USA","E":"Marion","C":"Salem ","D":"2005","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Broadmoor GC ","L":"Oregon ","U":"USA","E":"","C":"Portland ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Local News "},
+{"R":"N America","G":"Sandelie GC ","L":"Oregon ","U":"USA","E":"","C":"Portland ","D":"2022","J":"Real Estate","S":"Reduced","B":"","O":"","H":"","Z":"Short Course","M":""},
+{"R":"N America","G":"Battle Creek Golf Club ","L":"Oregon ","U":"USA","E":"","C":"Salem ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kah-Nee-Ta High Desert Resort & Casino ","L":"Oregon ","U":"USA","E":"","C":"Warm Springs ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Loch Nairn GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Avondale ","D":"2022","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Upper Dublin GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Dresher ","D":"2019","J":"Park","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cedar Ridge GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Gettysburg ","D":"2025","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gettysburg CC ","L":"Pennsylvania ","U":"USA","E":"","C":"Gettysburg ","D":"","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Gilbertsville Golf Club ","L":"Pennsylvania ","U":"USA","E":"","C":"Gilbertsville ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Dauphin Highlands GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Harrisburg ","D":"2027","J":"Real Estate","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Liberty Forge GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Harrisburg ","D":"2026","J":"Real Estate","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Limekiln Golf Club ","L":"Pennsylvania ","U":"USA","E":"","C":"Horsham ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Evergreen GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Lancaster ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Sink holes "},
+{"R":"N America","G":"Mahoning Valley CC ","L":"Pennsylvania ","U":"USA","E":"","C":"Lehighton ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"FDR GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Philadelphia ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cobbs Creek Golf Club ","L":"Pennsylvania ","U":"USA","E":"","C":"Philadelphia ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Karakung GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Philadelphia ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wingfield Pines ","L":"Pennsylvania ","U":"USA","E":"","C":"Pittsburgh ","D":"2001","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Monroe Valley GC ","L":"Pennsylvania ","U":"USA","E":"","C":"Swatara Township ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mountain Laurel Golf Club ","L":"Pennsylvania ","U":"USA","E":"","C":"White Haven ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Metacomet Country Club ","L":"Rhode Island ","U":"USA","E":"","C":"East Providence ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Beaver Tail GC ","L":"Rhode Island ","U":"USA","E":"","C":"Jamestown ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Carolina Shores G&CC ","L":"South Carolina ","U":"USA","E":"","C":"Brunswick ","D":"2024","J":"Real estate","S":"Closed","B":"","O":"","H":"Tom Jackson","Z":"","M":""},
+{"R":"N America","G":"Marsh Harbour Golf Links ","L":"South Carolina ","U":"USA","E":"","C":"Calabash ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wild Wing Plantation (Woodstork Course) ","L":"South Carolina ","U":"USA","E":"","C":"Conway ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Melrose GC ","L":"South Carolina ","U":"USA","E":"","C":"Daufuskie Island ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Wellman Club ","L":"South Carolina ","U":"USA","E":"","C":"Johnsonville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bay Tree Golf Plantation ","L":"South Carolina ","U":"USA","E":"","C":"Little River ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Heather Glen Golf Links ","L":"South Carolina ","U":"USA","E":"","C":"Myrtle Beach ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"River Oaks Golf Club ","L":"South Carolina ","U":"USA","E":"","C":"Myrtle Beach ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Waterway Hills Golf Club ","L":"South Carolina ","U":"USA","E":"","C":"Myrtle Beach ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wicked Stick Golf Links ","L":"South Carolina ","U":"USA","E":"","C":"Myrtle Beach ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Possum Trot GC ","L":"South Carolina ","U":"USA","E":"","C":"North Myrtle Beach ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sea Gull Golf Club ","L":"South Carolina ","U":"USA","E":"","C":"Pawleys Island ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Brierwood Golf Club ","L":"South Carolina ","U":"USA","E":"","C":"South Brunswick ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Ocean Harbour Golf Links ","L":"South Carolina ","U":"USA","E":"","C":" ","D":"2002","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wild Oak GC ","L":"South Dakota ","U":"USA","E":"","C":"Mitchell ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pine Lakes ","L":"Tennessee ","U":"USA","E":"","C":"Alcoa ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Baileytown ","L":"Tennessee ","U":"USA","E":"","C":"Baileytown ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Quail Ridge GC ","L":"Tennessee ","U":"USA","E":"","C":"Bartlett ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":"Housing "},
+{"R":"N America","G":"Nine Hole at Eastland Green South ","L":"Tennessee ","U":"USA","E":"","C":"Clarksville ","D":"2019","J":"City Park","S":"Closed","B":"$1.3M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lost Creek GC ","L":"Tennessee ","U":"USA","E":"","C":"Jefferson City ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Deane Hill CC ","L":"Tennessee ","U":"USA","E":"","C":"Knoxville ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Royal Oaks GC ","L":"Tennessee ","U":"USA","E":"","C":"Maryville ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Millstone GC ","L":"Tennessee ","U":"USA","E":"","C":"Morristown ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Veteran Admin GC ","L":"Tennessee ","U":"USA","E":"","C":"Nashville ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bays Mountain GC ","L":"Tennessee ","U":"USA","E":"","C":"Seymour ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Buffalo Valley GC ","L":"Tennessee ","U":"USA","E":"","C":"Unicoi ","D":"2018","J":"","S":"Closed","B":"$1.8M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Great Southwest ","L":"Texas ","U":"USA","E":"","C":"Arlington ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rolling Hills CC ","L":"Texas ","U":"USA","E":"","C":"Arlington ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bluebonnet Hill Golf Club ","L":"Texas ","U":"USA","E":"","C":"Austin ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Balcones CC Spicewood ","L":"Texas ","U":"USA","E":"","C":"Austin ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bergstrom Air Force Base GC ","L":"Texas ","U":"USA","E":"","C":"Bastrop ","D":"1993","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lost Pines GC ","L":"Texas ","U":"USA","E":"","C":"Bastrop ","D":"2015","J":"Conservation","S":"Closed","B":"","O":"State","H":"","Z":"Fire","M":""},
+{"R":"N America","G":"Tabbs Bay GC ","L":"Texas ","U":"USA","E":"","C":"Baytown ","D":"2025","J":"Disc Golf","S":"Closed","B":"","O":"City","H":"","Z":"","M":""},
+{"R":"N America","G":"John C. Beasley Municipal GC ","L":"Texas ","U":"USA","E":"","C":"Beeville ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bryan Municipal GC ","L":"Texas ","U":"USA","E":"","C":"Bryan ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"The Tree Farm Course ","L":"Texas ","U":"USA","E":"","C":"Canton ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Clear Lake Golf Club ","L":"Texas ","U":"USA","E":"","C":"Clear Lake ","D":"2005","J":"","S":"Closed","B":"$20M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"King's Crossing ","L":"Texas ","U":"USA","E":"","C":"Corpus Christi ","D":"2008","J":"Real Estate","S":"Closed","B":"","O":"","H":"Bill Coore","Z":"","M":""},
+{"R":"N America","G":"Cypress Lakes ","L":"Texas ","U":"USA","E":"Harris","C":"Cypresswood ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sleepy Hollow ","L":"Texas ","U":"USA","E":"","C":"Dallas ","D":"2017","J":"Flood Plain","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"TWU Course ","L":"Texas ","U":"USA","E":"","C":"Denton ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"UNT Course ","L":"Texas ","U":"USA","E":"","C":"Denton ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Vista Hills CC ","L":"Texas ","U":"USA","E":"","C":"El Paso ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"Avanta","M":""},
+{"R":"N America","G":"Lake Country on Eagle Mountain Lake ","L":"Texas ","U":"USA","E":"","C":"Fort Worth ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Z. Boaz ","L":"Texas ","U":"USA","E":"","C":"Fort Worth ","D":"2012","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Friendswood Golf Club ","L":"Texas ","U":"USA","E":"","C":"Friendswood ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Woodhaven CC ","L":"Texas ","U":"USA","E":"","C":"Ft. Worth ","D":"2021","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Willow Springs ","L":"Texas ","U":"USA","E":"","C":"Haslet ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Bear Creek Golf World ","L":"Texas ","U":"USA","E":"","C":"Houston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"El Dorado Country Club ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"1999","J":"","S":"Reopen","B":"","O":"","H":"","Z":"Redstone Golf Club Houston","M":""},
+{"R":"N America","G":"Glenbrook GC ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Golfcrest Country Club ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"1971","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Heron Lakes GC ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"2007","J":"Conservation","S":"Closed","B":"","O":"Exploration Green","H":"","Z":"Watershed","M":""},
+{"R":"N America","G":"Inwood CC ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"","J":"","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Texaco Golf Club ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"2019","J":"Conservation","S":"Closed","B":"","O":"County","H":"","Z":"","M":""},
+{"R":"N America","G":"Treeline GC ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Willowisp CC ","L":"Texas ","U":"USA","E":"Harris","C":"Houston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Green Meadow GC ","L":"Texas ","U":"USA","E":"Harris","C":"Katy ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Marfa Municipal GC ","L":"Texas ","U":"USA","E":"","C":"Marfa ","D":"","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Golf Club of McKinney ","L":"Texas ","U":"USA","E":"","C":"McKinney ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"McKinney CC ","L":"Texas ","U":"USA","E":"","C":"McKinney ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Old Orchard ","L":"Texas ","U":"USA","E":"Harris","C":"Richmond ","D":"2005","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"La Cantera Palmer Course ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Mission del Lago GC ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Pecan Valley Golf Club ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"2015","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"Valor Club","M":""},
+{"R":"N America","G":"Quail Creek Country Club ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Texas State University GC ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"2015","J":"Flood","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Republic Golf Club ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"2020","J":"Conservation","S":"Closed","B":"$7.3M","O":"","H":"","Z":"200 acre arboretum","M":"Before closure "},
+{"R":"N America","G":"Woodlake Golf Club ","L":"Texas ","U":"USA","E":"","C":"San Antonio ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Highland Lakes GC ","L":"Texas ","U":"USA","E":"","C":"San Marcos ","D":"2011","J":"","S":"Closed","B":"","O":"State","H":"","Z":"Inks Lake State Park","M":""},
+{"R":"N America","G":"Lost Pines GC at Bastrop State Park ","L":"Texas ","U":"USA","E":"","C":"San Marcos ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Colovista GC ","L":"Texas ","U":"USA","E":"","C":"Sugar Land ","D":"2011","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"First Colony GC ","L":"Texas ","U":"USA","E":"","C":"Sugar Land ","D":"2000","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Longview GC ","L":"Texas ","U":"USA","E":"","C":"White Oak ","D":"2025","J":"Real Estate","S":"","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Kokopelli Golf Club ","L":"Utah ","U":"USA","E":"","C":"Apple Valley ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glendale GC ","L":"Utah ","U":"USA","E":"","C":"Salt Lake City ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Jordan River Par-3 ","L":"Utah ","U":"USA","E":"","C":"Salt Lake City ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wingpointe ","L":"Utah ","U":"USA","E":"","C":"Salt Lake City ","D":"2015","J":"Airport","S":"Closed","B":"$7M","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Tater Hill GC ","L":"Vermont ","U":"USA","E":"","C":"Chester ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Montpelier Elks Country Club ","L":"Vermont ","U":"USA","E":"","C":"Montpelier ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Catamount Country Club ","L":"Vermont ","U":"USA","E":"","C":"Williston ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Geelong Golf Club ","L":"Victoria ","U":"USA","E":"","C":"Geelong ","D":"2004","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Olinda GC ","L":"Victoria ","U":"USA","E":"","C":"Olinda ","D":"2012","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Vista Links ","L":"Virginia ","U":"USA","E":"","C":"Buena Vista ","D":"2022","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cahoon Plantation ","L":"Virginia ","U":"USA","E":"","C":"Chesapeake ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Virginia Oaks Golf Club ","L":"Virginia ","U":"USA","E":"","C":"Gainesville ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"Pete Dye","M":""},
+{"R":"N America","G":"King Carter GC ","L":"Virginia ","U":"USA","E":"","C":"Irvington ","D":"2018","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"Joel Weiman Andrew Green McDonald Sons","M":""},
+{"R":"N America","G":"Beacon Hill Golf Club ","L":"Virginia ","U":"USA","E":"","C":"Leesburg ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"General's Ridge GC ","L":"Virginia ","U":"USA","E":"","C":"Manassas Park ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lambert's Point GC ","L":"Virginia ","U":"USA","E":"","C":"Norfolk ","D":"2022","J":"Municipality","S":"Closed","B":"","O":"","H":"","Z":"Wastewater treatment facility","M":""},
+{"R":"N America","G":"Reston National ","L":"Virginia ","U":"USA","E":"","C":"Reston ","D":"2025","J":"Real Estate","S":"Permits","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Glenwood Golf Club ","L":"Virginia ","U":"USA","E":"","C":"Richmond ","D":"2022","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Colonial GC ","L":"Virginia ","U":"USA","E":"","C":"Toano ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"West Neck GC ","L":"Virginia ","U":"USA","E":"","C":"Virginia Beach ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Spotswood GC ","L":"Virginia ","U":"USA","E":"","C":"Williamsburg ","D":"","J":"","S":"Reduced","B":"","O":"","H":"","Z":"Par 3","M":""},
+{"R":"N America","G":"The Osprey's Golf Club ","L":"Virginia ","U":"USA","E":"","C":"Woodbridge ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Wayne GC ","L":"Washington ","U":"USA","E":"","C":"Bothell ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Cedars on Salmon Creek ","L":"Washington ","U":"USA","E":"","C":"Brush Prairie ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Hartwood ","L":"Washington ","U":"USA","E":"","C":"Brush Prairie ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Lakeview ","L":"Washington ","U":"USA","E":"","C":"Vancouver ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Fort Steilacoom GC ","L":"Washington ","U":"USA","E":"","C":"Lakewood ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sundance GC ","L":"Washington ","U":"USA","E":"","C":"Nine Mile Falls ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Meadow Ponds GC ","L":"West Virginia ","U":"USA","E":"","C":"Cassville ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Sleepy Hollow Golf Club ","L":"West Virginia ","U":"USA","E":"","C":"Charles Town ","D":"2015","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Oakhurst Links ","L":"West Virginia ","U":"USA","E":"","C":"White Sulphur Springs ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"South Hills CC ","L":"Wisconsin ","U":"USA","E":"","C":"Franksville ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Shorewood GC ","L":"Wisconsin ","U":"USA","E":"","C":"Green Bay ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Blackstone Creek GC ","L":"Wisconsin ","U":"USA","E":"","C":"Milwaukee ","D":"2025","J":"","S":"Permits","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Doyne Park GC ","L":"Wisconsin ","U":"USA","E":"","C":"Milwaukee ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Rainbow Springs GC ","L":"Wisconsin ","U":"USA","E":"","C":"Mukwonago ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"N America","G":"Yahara Hills East ","L":"Wisconsin ","U":"USA","E":"","C":"Madison ","D":"2026","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":"Reduce 18 holes "},
+{"R":"N America","G":"F.E. Warren AFB GC ","L":"Wyoming ","U":"USA","E":"","C":"Cheyenne ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"L America","G":"Bahia de los Suenos ","L":"Baja California ","U":"Mexico","E":"","C":"Baja del Sur ","D":"2010","J":"","S":"Closed","B":"","O":"","H":"","Z":"Tom Doak","M":""},
+{"R":"L America","G":"Bajamar Lagos 9 ","L":"Baja California ","U":"Mexico","E":"","C":"Ensenada ","D":"2023","J":"","S":"Reduced","B":"","O":"","H":"","Z":"","M":""},
+{"R":"L America","G":"Pok Ta Pok GC ","L":"Quintana Roo ","U":"Mexico","E":"","C":"Cancun ","D":"2023","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"L America","G":"Leparadis ","L":"Praslin Bay ","U":"St Lucia","E":"","C":"Praslin Bay ","D":"","J":"","S":"Abandoned","B":"$29M","O":"","H":"","Z":"Greg Norman","M":" "},
+{"R":"GB&I","G":"Blue Mountain GC ","L":"Berkshire ","U":"England","E":"","C":"Bracknell ","D":"2016","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Sapey GC ","L":"Herefordshire ","U":"England","E":"","C":"Worcester ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Broke Hill GC ","L":"Kent ","U":"England","E":"","C":"Seven Oaks ","D":"","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Woodlands Manor Golf Club ","L":"Kent ","U":"England","E":"","C":"Seven Oaks ","D":"2019","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Beacon Park GC ","L":"Lancashire ","U":"England","E":"","C":" ","D":"2024","J":"Council","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Uxbridge GC ","L":"London ","U":"England","E":"","C":"Middlesex ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Caddington GC ","L":"Luton ","U":"England","E":"","C":"Luton ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Gatley GC ","L":"Manchester ","U":"England","E":"","C":"Manchester ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Wirral ","L":"Merseyside ","U":"England","E":"","C":"Liverpool ","D":"","J":"","S":"Abandoned","B":"","O":"","H":"","Z":"Council","M":""},
+{"R":"GB&I","G":"Holy Island Golf Links ","L":"Northumberland ","U":"England","E":"","C":"Northumberland ","D":"","J":"","S":"Closed","B":"","O":"","H":"","Z":"James Braid","M":" "},
+{"R":"GB&I","G":"Pewit GC ","L":"Nottinghamshire ","U":"England","E":"","C":"Nottinghamshire ","D":"2022","J":"Conservation","S":"Closed","B":"$650K","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"North Oxford ","L":"Oxford ","U":"England","E":"","C":"Oxford ","D":"2025","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Slievenamon ","L":"Tipperary ","U":"Ireland","E":"","C":"Tipperary ","D":"2025","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Caird Park GC ","L":"Dundee ","U":"Scotland","E":"","C":"Dundee ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Dalmuir ","L":"Glasgow ","U":"Scotland","E":"","C":"Clydebank ","D":"2025","J":"TBD","S":"Council","B":"","O":"","H":"","Z":"Muni","M":""},
+{"R":"GB&I","G":"gWest ","L":"Perthshire ","U":"Scotland","E":"","C":"Perthshire ","D":"","J":"","S":"Abandoned","B":"","O":"","H":"","Z":"David McLay Kidd","M":""},
+{"R":"GB&I","G":"Hirsel GC ","L":" ","U":"Scotland","E":"","C":"Coldstream ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"The Plock ","L":" ","U":"Scotland","E":"","C":"Kyle ","D":"","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"GB&I","G":"Torrance Park GC ","L":"Lanarkshire ","U":"Scotland","E":"","C":"Motherwell ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Europe","G":"Sant Jordi ","L":"Castellon ","U":"Spain","E":"","C":"Castellon ","D":"","J":"","S":"Abandoned","B":"","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Victoria Park Golf Complex ","L":"Queensland ","U":"Australia","E":"","C":"Brisbane ","D":"2021","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Capricorn Resort GC ","L":"Queensland ","U":"Australia","E":"","C":"Yeppoon ","D":"2016","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Hatherleigh GC ","L":"South Australia ","U":"Australia","E":"","C":"Hatherleigh ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Stirling Golf Club ","L":"South Australia ","U":"Australia","E":"","C":"Stirling ","D":"2024","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Oakleigh ","L":"Victoria ","U":"Australia","E":"","C":"Melbourne ","D":"2023","J":"Park Conversion","S":"Closed","B":"$11M","O":"","H":"","Z":"","M":""},
+{"R":"AU/NZ","G":"Pakenham GC ","L":"Victoria ","U":"Australia","E":"","C":"Melbourne ","D":"2025","J":"Abandoned","S":"Council","B":"","O":"","H":"","Z":"Muni","M":""},
+{"R":"AU/NZ","G":"Takapuna GC ","L":"South Island ","U":"New Zealand","E":"","C":"Auckland ","D":"2025","J":"","S":"Proposed","B":"","O":"","H":"","Z":"Reduce 9 holes","M":"Stormwater Reservoir "},
+{"R":"Asia","G":"Ramu ","L":"Cox's Bazar ","U":"Bangladesh","E":"","C":"Chittagong ","D":"","J":"Real Estate","S":"Closed","B":"","O":"","H":"Paul Jansen","Z":"Cricket Stadium","M":""},
+{"R":"Asia","G":"Simapo Island GC ","L":"Hainan Island ","U":"China","E":"","C":"Haikou ","D":"2017","J":"","S":"Never Opened","B":"","O":"","H":"Tom Doak","Z":"Tom Doak Eric Iverson Brett Hochstein","M":""},
+{"R":"Asia","G":" Madras Gymkhana Club Golf Annexe ","L":"Tamil Nadu ","U":"India","E":"","C":"Chennai ","D":"2025","J":"Conservation","S":"Closed","B":"","O":"","H":"","Z":"Guindy Links","M":""},
+{"R":"Asia","G":"Bali National ","L":"Bali ","U":"Indonesia","E":"","C":"Bali ","D":"","J":"Real Estate","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Nirwana Bali ","L":"Bali ","U":"Indonesia","E":"","C":"Bali ","D":"","J":"","S":"Closed","B":"","O":"","H":"Greg Norman","Z":"","M":""},
+{"R":"Asia","G":"Satsumasendai GC ","L":"Kagoshima ","U":"Japan","E":"","C":"Satsumasendai ","D":"2020","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Fushimi GC ","L":"Kyoto ","U":"Japan","E":"","C":"Fushimi ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Kyotanba GC ","L":"Kyoto ","U":"Japan","E":"","C":"Kyotanba ","D":"2017","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Misasa ","L":"Tottori ","U":"Japan","E":"","C":"Misasa ","D":"2018","J":"","S":"Closed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Keppel Club Sime ","L":"Singapore ","U":"Singapore","E":"","C":"Singapore ","D":"2030","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Mandai Executive GC ","L":"Singapore ","U":"Singapore","E":"","C":"Singapore ","D":"2026","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Orchid CC ","L":"Singapore ","U":"Singapore","E":"","C":"Yishun ","D":"2030","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"SICC Bukit ","L":"Singapore ","U":"Singapore","E":"","C":"Sime Road ","D":"2035","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Tanah Merah Garden GC ","L":"Singapore ","U":"Singapore","E":"","C":"Changi ","D":"2035","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""},
+{"R":"Asia","G":"Warren G&CC ","L":"Singapore ","U":"Singapore","E":"","C":"Choa Chu Kang ","D":"2030","J":"","S":"Proposed","B":"","O":"","H":"","Z":"","M":""}
+ ]
+}
+
diff --git a/data/gP.json b/data/gP.json
new file mode 100644
index 0000000000000..c2b6cd9c42e3e
--- /dev/null
+++ b/data/gP.json
@@ -0,0 +1,288 @@
+{
+ "data":[
+{"G":"Banff Springs ","A":"Ian Andrew","L":"Alberta ","U":"Canada","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-12-10","Z":"","M":""},
+{"G":"Waterton Lakes ","A":"Tim Lobb Oliver Tubb","L":"Alberta ","U":"Canada","D":"2025","C":"","J":"","S":"Renovate","B":"","H":"Stanley Thompson","Y":"2024-04-18","Z":"","M":""},
+{"G":"Victoria GC ","A":"Mackenzie Ebert","L":"BC ","U":"Canada","D":"2028","C":"","J":"Renovate","S":"Masterplan","B":"","H":"AV Macan","Y":"2024-12-28","Z":"","M":""},
+{"G":"Whistler ","A":"Thad Layton","L":"BC ","U":"Canada","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-03-15","Z":"","M":""},
+{"G":"Mabou ","A":"TBA","L":"Nova Scotia ","U":"Canada","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-04-30","Z":"","M":""},
+{"G":"Kawartha Bay ","A":"Doug Carrick","L":"Ontario ","U":"Canada","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-07-14","Z":"","M":""},
+{"G":"MontHill ","A":"Whitman Axland Cutten","L":"Ontario ","U":"Canada","D":"2025","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2022-09-06","Z":"","M":"Beyond the Contour "},
+{"G":"Taboo ","A":"Nicklaus Design","L":"Ontario ","U":"Canada","D":"2024","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Ron Garl","Y":"2022-02-23","Z":"","M":""},
+{"G":"Weston ","A":"Andy Staples","L":"Ontario ","U":"Canada","D":"2022","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Willie Park","Y":"2022-03-25","Z":"","M":""},
+{"G":"Beaconsfield ","A":"Mingay Fraser","L":"Quebec ","U":"Canada","D":"2024","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Thompson","Y":"2021-06-18","Z":"Stanley Thompson","M":""},
+{"G":"Royal Quebec ","A":"Jeff Mingay","L":"Quebec ","U":"Canada","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-08-05","Z":"","M":""},
+{"G":"Talladega The Feud ","A":"Carlton Marshall","L":"Alabama ","U":"USA","D":"2024","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2024-01-25","Z":"","M":"cmgolfdesign "},
+{"G":"BellAir ","A":"Forrest Richardson","L":"Arizona ","U":"USA","D":"2022","C":"","J":"Renovate","S":"Drawing boards","B":"","H":"Lawrence Nash","Y":"2022-03-20","Z":"","M":""},
+{"G":"Estrella Junior National ","A":"Bill Phillips","L":"Arizona ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"$24M","H":"","Y":"2022-11-20","Z":"Tres Rios","M":""},
+{"G":"Legacy Club Emerald Bay ","A":"","L":"Arizona ","U":"USA","D":"2028","C":"","J":"New","S":"Drawing Boards","B":"","H":"","Y":"2024-09-08","Z":"S3 Britton Lee","M":""},
+{"G":"Phoenix CC ","A":"Andy Staples","L":"Arizona ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Collis","Y":"2023-08-05","Z":"","M":""},
+{"G":"Sun City Pebblebrook ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-10-07","Z":"USGA Green Section","M":""},
+{"G":"Sun City Stardust ","A":"Gary Brawley","L":"Arizona ","U":"USA","D":"2029","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-10-07","Z":"Brian Whitlark","M":""},
+{"G":"Brookside GC ","A":"Forrest Richardson","L":"California ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Billy Bell Jr.","Y":"2023-09-27","Z":"","M":""},
+{"G":"Camarillo Hills ","A":"Damian Pascuzzo","L":"California ","U":"USA","D":"2027","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"","Y":"2023-04-28","Z":"","M":""},
+{"G":"Carlton Oaks ","A":"Cary Bickler","L":"California ","U":"USA","D":"2019","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Coyote Canyon ","A":"TBA","L":"California ","U":"USA","D":"2022","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2022-11-03","Z":"","M":""},
+{"G":"Desert Willow Firecliff ","A":"TBA","L":"California ","U":"USA","D":"2024","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-05-05","Z":"","M":""},
+{"G":"Guenoc Valley ","A":"Tom Doak","L":"California ","U":"USA","D":"2028","C":"","J":"New","S":"Drawing Boards","B":"","H":"","Y":"2024-03-07","Z":"Maha Napa Resort","M":""},
+{"G":"Hacienda ","A":"Todd Eckenrode","L":"California ","U":"USA","D":"2025","C":"","J":"","S":"Drawing boards ","B":"","H":"William Watson","Y":"2024-01-05","Z":"","M":""},
+{"G":"Haggin Oaks ","A":"Brett Hochstein","L":"California ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Mackenzie","Y":"2023-03-22","Z":"","M":"Morton Golf "},
+{"G":"Lake Tahoe ","A":"Coore Crenshaw","L":"California ","U":"USA","D":"2025","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2021-12-08","Z":"","M":""},
+{"G":"Lucerne Valley ","A":"Dave Edsall","L":"California ","U":"USA","D":"2024","C":"","J":"New","S":"Started","B":"","H":"","Y":"2024-03-05","Z":"","M":""},
+{"G":"Malibu CC ","A":"Jackson Kahn","L":"California ","U":"USA","D":"2014","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2023-08-26","Z":"CA Coastal Commission","M":""},
+{"G":"Pajaro Valley ","A":"Forrest Richardson Mark Swartz","L":"California ","U":"USA","D":"2026","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"Peter Hay","Y":"2023-10-07","Z":"","M":""},
+{"G":"San Clemente Muni ","A":"Andy Staples","L":"California ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Bell","Y":"2024-12-06","Z":"THK Associates Dan Conway","M":"Municipal Golf "},
+{"G":"Shingle Springs ","A":"Forrest Richardson","L":"California ","U":"USA","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"9","Y":"2022-09-13","Z":"","M":""},
+{"G":"Talus ","A":"","L":"California ","U":"USA","D":"2024","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-07-21","Z":"","M":""},
+{"G":"Vandenburg Dunes ","A":"TBA","L":"California ","U":"USA","D":"2022","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2022-12-11","Z":"","M":""},
+{"G":"William Land ","A":"Brett Hochstein","L":"California ","U":"USA","D":"2024","C":"","J":"Restore","S":"Drawing boards ","B":"$7M","H":"Leonard Starks","Y":"2024-06-21","Z":"","M":"Walking "},
+{"G":"Brightwater ","A":"TBA","L":"Colorado ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-11-15","Z":"","M":""},
+{"G":"Stagecoach Mountain ","A":"","L":"Colorado ","U":"USA","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-30","Z":"Yellowstone Club","M":""},
+{"G":"Shuttle Meadow CC ","A":"Nick Campanelli Brad Klein","L":"Connecticut ","U":"USA","D":"2025","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Leonard Starks","Y":"2025-04-25","Z":"","M":""},
+{"G":"Bear Lakes ","A":"Love Sherman","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Masterplan","B":"","H":"Nicklaus","Y":"2024-08-22","Z":"","M":""},
+{"G":"Boca National ","A":"Fazio Price","L":"Florida ","U":"USA","D":"2021","C":"","J":"Rebuild","S":"Permits","B":"","H":"","Y":"2021-01-24","Z":"","M":"City Council "},
+{"G":"Delray Beach ","A":"6 proposals","L":"Florida ","U":"USA","D":"2025","C":"","J":"Rebuild","S":"Council","B":"$27M","H":"Donald Ross ","Y":"2025-10-04","Z":"County Municipal","M":" "},
+{"G":"Emerald Hills ","A":"Nicklaus","L":"Florida ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-07-09","Z":"","M":""},
+{"G":"Florida Keys ","A":"Kipp Schulties","L":"Florida ","U":"USA","D":"2025","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"Mahannah","Y":"2024-04-17","Z":"Real Estate","M":""},
+{"G":"Florida Keys Resort ","A":"","L":"Florida ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-07-14","Z":"","M":""},
+{"G":"Heritage Palms Royal ","A":"Gordon Lewis","L":"Florida ","U":"USA","D":"2022","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Azinger Lewis","Y":"2021-10-29","Z":"","M":"TifEagle "},
+{"G":"Hollywood Muni ","A":"Rees Jones","L":"Florida ","U":"USA","D":"2026","C":"QGS","J":"Renovate 36","S":"Drawing boards ","B":"","H":"Ewing","Y":"2023-03-23","Z":"GCF PPG Chip Abele Ari Pearl","M":""},
+{"G":"Innisbrook Osprey North ","A":"TBA","L":"Florida ","U":"USA","D":"2025","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"Arthur Hills","Y":"2023-03-01","Z":"","M":""},
+{"G":"Jonathan Dickinson ","A":"","L":"Florida ","U":"USA","D":"2024","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2024-09-01","Z":"","M":""},
+{"G":"Lekarica Hills CC ","A":"TBD","L":"Florida ","U":"USA","D":"2014","C":"","J":"Rebuild","S":"Golf Course Closed","B":"","H":"Van Kleek Stiles","Y":"2023-10-23","Z":"","M":""},
+{"G":"Lone Pine GC ","A":"TBD","L":"Florida ","U":"USA","D":"2027","C":"","J":"Rebuild","S":"Real estate","B":"","H":"","Y":"2023-07-21","Z":"","M":""},
+{"G":"Palm Beach Polo Cypress ","A":"Tiger Woods","L":"Florida ","U":"USA","D":"2027","C":"Beau Welling","J":"Rebuild ","S":"Drawing boards ","B":"","H":"Pete Dye","Y":"2023-04-25","Z":"Justin Timberlake","M":"The Wellington "},
+{"G":"Paradise Isle ","A":"Ron Garl","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-07-13","Z":"","M":""},
+{"G":"Ritz Carlton Grande Lakes ","A":"Carlton Marshall","L":"Florida ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-04-27","Z":"","M":""},
+{"G":"River Run Golf Links ","A":"","L":"Florida ","U":"USA","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"$7.2M","H":"","Y":"2023-12-12","Z":"NGF Consulting","M":""},
+{"G":"Rivergrass ","A":"TBA","L":"Florida ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-21","Z":"","M":""},
+{"G":"St. Petersburg CC ","A":"","L":"Florida ","U":"USA","D":"2024","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"A.W. Tillinghast","Y":"2023-10-03","Z":"","M":""},
+{"G":"Tesoro Palmer Watson ","A":"","L":"Florida ","U":"USA","D":"2024","C":"South Florida Golf Renovations","J":"Renovate 36","S":"Drawing boards ","B":"","H":"Palmer Watson","Y":"2023-04-10","Z":"","M":"Club Leader "},
+{"G":"University of Florida ","A":"TBA","L":"Florida ","U":"USA","D":"2027","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-03-13","Z":"Tyler Matthews","M":""},
+{"G":"Jekyll Island Great Dunes ","A":"Brian Ross Jeff Stein","L":"Georgia ","U":"USA","D":"2026","C":"Danny Loveridge Robert Nelson","J":"Restore","S":"Drawing boards ","B":"","H":"Walter Travis","Y":"2024-01-28","Z":"NLT","M":""},
+{"G":"Landings Terrapin Point ","A":"","L":"Georgia ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Willard Byrd","Y":"2025-02-03","Z":"","M":""},
+{"G":"Roosevelt Memorial ","A":"","L":"Georgia ","U":"USA","D":"2027","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross ","Y":"2024-03-01","Z":"","M":""},
+{"G":"The Standard Club ","A":"Tyler Rae","L":"Georgia ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Arthur Hills","Y":"2024-03-05","Z":"","M":""},
+{"G":"Black Sand Beach ","A":"","L":"Hawaii ","U":"USA","D":"2021","C":"","J":"Rebuild","S":"Permits","B":"","H":"","Y":"2025-06-13","Z":"","M":""},
+{"G":"Makaha North Course ","A":"Tiger Woods","L":"Hawaii ","U":"USA","D":"2022","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Makaha South Course ","A":"Gil Hanse","L":"Hawaii ","U":"USA","D":"2022","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"Billy Bell Jr.","Y":"2023-01-01","Z":"","M":""},
+{"G":"Ouli Farms ","A":"","L":"Hawaii ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-06-21","Z":"840 acres","M":"OuliFarms "},
+{"G":"McCall GC ","A":"David Druzisky","L":"Idaho ","U":"USA","D":"2023","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-12-30","Z":"","M":""},
+{"G":"River Club ","A":"Brian Curley","L":"Idaho ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-01-28","Z":"Will Gustafson","M":""},
+{"G":"Twisted Earth ","A":"Gene Bates","L":"Idaho ","U":"USA","D":"2023","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-02-26","Z":"","M":""},
+{"G":"Willowbrook ","A":"Phil Smith","L":"Idaho ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-12-09","Z":"","M":""},
+{"G":"Idlewild ","A":"David Esler","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Langford Moreau","Y":"2023-12-23","Z":"","M":"16th hole "},
+{"G":"Indian Hill ","A":"CDP Clayton DeVries Pont","L":"Illinois ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Colt Barker","Y":"2022-10-08","Z":"","M":"Donald Ross "},
+{"G":"Merit Club ","A":"Todd Quitno Nathan Crace","L":"Illinois ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Bob Lohmann","Y":"2023-11-18","Z":"","M":""},
+{"G":"North Shore ","A":"Mackenzie Ebert","L":"Illinois ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-12-28","Z":"","M":""},
+{"G":"Royal Fox ","A":"Sanford Ferris","L":"Illinois ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-01-03","Z":"","M":"sanfordferrisgolfdesign "},
+{"G":"Southshore Jackson Park ","A":"Tiger Woods","L":"Illinois ","U":"USA","D":"2032","C":"","J":"Rebuild","S":"Drawing boards ","B":"","H":"","Y":"2024-01-09","Z":"","M":""},
+{"G":"Foster Park ","A":"Forrest Hills Smith","L":"Indiana ","U":"USA","D":"2028","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2022-09-09","Z":"","M":"Proposal "},
+{"G":"Wooded View GC ","A":"Nathan Crace","L":"Indiana ","U":"USA","D":"2028","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2025-03-18","Z":"Clarksville Parks Muni","M":"Championship course "},
+{"G":"Waveland ","A":"TBA","L":"Iowa ","U":"USA","D":"2022","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2022-05-13","Z":"","M":""},
+{"G":"Firekeeper ","A":"Christine Fraser","L":"Kansas ","U":"USA","D":"2025","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2023-09-03","Z":"","M":""},
+{"G":"Spring Creek ","A":"Chuck Ermisch","L":"Kansas ","U":"USA","D":"2035","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-10-12","Z":"","M":""},
+{"G":"Bedico Creek ","A":"TBA","L":"Louisiana ","U":"USA","D":"2010","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Eastover ","A":"TBA","L":"Louisiana ","U":"USA","D":"2009","C":"","J":"Rebuild","S":"Never started","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Elkridge ","A":"Andrew Green","L":"Maryland ","U":"USA","D":"2026","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Seth Raynor","Y":"2024-04-12","Z":"","M":""},
+{"G":"Greenbury Point ","A":"Jack Nicklaus","L":"Maryland ","U":"USA","D":"2023","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-06-21","Z":"","M":""},
+{"G":"Long Meadow CC ","A":"Tyler Rae","L":"Massachusetts ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-07-27","Z":"","M":""},
+{"G":"Whaling City GC ","A":"","L":"Massachusetts ","U":"USA","D":"2027","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"","Y":"2025-02-15","Z":"Real estate","M":""},
+{"G":"DeVries Golf Detroit ","A":"Mike DeVries","L":"Michigan ","U":"USA","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-22","Z":"","M":""},
+{"G":"Travis Pointe ","A":"Chris Wilczynski ","L":"Michigan ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-05-11","Z":"","M":""},
+{"G":"Hiawatha ","A":"Tom Lehman","L":"Minnesota ","U":"USA","D":"2029","C":"","J":"Renovate","S":"Drawing boards ","B":"$43M","H":"","Y":"2023-12-03","Z":"Approved","M":""},
+{"G":"Pine Ridge ","A":"","L":"Minnesota ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-06-29","Z":"Real estate","M":""},
+{"G":"BrazenHead12 ","A":"Tad King Rob Collins","L":"Mississippi ","U":"USA","D":"2021","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-12-17","Z":"","M":""},
+{"G":"Otter Creek LaFleur ","A":"Crace RTJ II","L":"Mississippi ","U":"USA","D":"2024","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2023-12-17","Z":"","M":""},
+{"G":"Balducci Vineyards ","A":"Rees Jones","L":"Missouri ","U":"USA","D":"2021","C":"","J":"New","S":"Started","B":"","H":"","Y":"2023-12-09","Z":"","M":""},
+{"G":"Big Sky Resort ","A":"Raymond Hearn","L":"Montana ","U":"USA","D":"2025","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2023-12-09","Z":"","M":""},
+{"G":"Skyline Woods ","A":"","L":"Nebraska ","U":"USA","D":"2024","C":"Landscapes Unlimited","J":"Rebuild ","S":"Drawing boards ","B":"$10M","H":"","Y":"2023-09-19","Z":"","M":"Owner Dennis Circo "},
+{"G":"Campbell Ranch ","A":"","L":"New Mexico ","U":"USA","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-12-07","Z":"Zoning Committee Meeting","M":" "},
+{"G":"Audobon Amherst ","A":"NLE","L":"New York ","U":"USA","D":"2023","C":"","J":"Reduce","S":"Never started","B":"","H":"William Harries","Y":"2024-04-07","Z":"","M":""},
+{"G":"Buffalo Olmsted ","A":"Jack Nicklaus","L":"New York ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-12-27","Z":"","M":""},
+{"G":"Engineers ","A":"Nicklaus Design","L":"New York ","U":"USA","D":"2026","C":"ClubCorp","J":"Renovate","S":"Drawing boards ","B":"$12M","H":"Herbert Strong","Y":"2023-11-01","Z":"RXR Real Estate","M":""},
+{"G":"Pine Hills ","A":"Tyler Rae Jim Ryan","L":"New York ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-10-12","Z":"","M":""},
+{"G":"Biltmore Forest ","A":"Gil Hanse","L":"North Carolina ","U":"USA","D":"2029","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-06-15","Z":"","M":""},
+{"G":"Hope Valley CC ","A":"Kris Spence","L":"North Carolina ","U":"USA","D":"2028","C":"","J":"Restore","S":"Ongoing","B":"","H":"Donald Ross","Y":"2024-06-20","Z":"","M":""},
+{"G":"Pine Valley ","A":"Kris Spence","L":"North Carolina ","U":"USA","D":"2028","C":"","J":"Rebuild ","S":"Drawing boards ","B":"$5M","H":"","Y":"2024-06-15","Z":"","M":""},
+{"G":"Elyria CC ","A":"Eric Iverson","L":"Ohio ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"William Flynn","Y":"2024-06-21","Z":"","M":""},
+{"G":"Douglas Point ","A":"John Fought","L":"Oregon ","U":"USA","D":"2029","C":"","J":"New","S":"Drawing boards ","B":"$62M","H":"","Y":"2024-11-03","Z":"","M":""},
+{"G":"Knapp Ranch ","A":"","L":"Oregon ","U":"USA","D":"","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-23","Z":"","M":""},
+{"G":"New River Dunes ","A":"David Kidd","L":"Oregon ","U":"USA","D":"","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-23","Z":"","M":""},
+{"G":"Oregon Dunes ","A":"John Fought","L":"Oregon ","U":"USA","D":"","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-10-23","Z":"","M":""},
+{"G":"Pacific Gales ","A":"Haley Esler","L":"Oregon ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-04-27","Z":"","M":""},
+{"G":"Resort Eagle Point ","A":"Forrest Richardson","L":"Oregon ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"RTJ Jr.","Y":"2023-10-05","Z":"","M":""},
+{"G":"Tribute Club ","A":"Whitman Axland Cutten","L":"Oregon ","U":"USA","D":"2026","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2025-05-29","Z":"Water","M":"Thornburgh Resort "},
+{"G":"Wicked Pony ","A":"Tom Doak","L":"Oregon ","U":"USA","D":"2009","C":"","J":"New","S":"Stopped","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Bucknell ","A":"Jay Blasi","L":"Pennsylvania ","U":"USA","D":"","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2025-02-13","Z":"","M":""},
+{"G":"CC Harrisburg ","A":"Jim Nagle","L":"Pennsylvania ","U":"USA","D":"","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Flynn","Y":"2025-05-29","Z":"","M":""},
+{"G":"Southmoore ","A":"Richardson Danner Fine","L":"Pennsylvania ","U":"USA","D":"2027","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"Blaukovitch","Y":"2023-03-09","Z":"","M":""},
+{"G":"Union League Torresdale ","A":"Andrew Green","L":"Pennsylvania ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-03-16","Z":"","M":"Construction "},
+{"G":"Winnapaug ","A":"Nicklaus Design","L":"Rhode Island ","U":"USA","D":"2022","C":"","J":"Restore","S":"Real estate","B":"","H":"Donald Ross","Y":"2022-04-22","Z":"","M":""},
+{"G":"Cypress Shoals ","A":"Tom Watson","L":"South Carolina ","U":"USA","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-06-14","Z":"","M":"1700 acres "},
+{"G":"St. Helena Island ","A":"","L":"South Carolina ","U":"USA","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-04-17","Z":"","M":""},
+{"G":"Belle Meade ","A":"","L":"Tennessee ","U":"USA","D":"2029","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Donald Ross","Y":"2024-11-23","Z":"","M":"Brad Klein "},
+{"G":"Cheekwood ","A":"Nicklaus Design","L":"Tennessee ","U":"USA","D":"2021","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Harpeth Hills ","A":"Bruce Hepner","L":"Tennessee ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-11-14","Z":"","M":""},
+{"G":"Stones River ","A":"Bill Bergin","L":"Tennessee ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-04-13","Z":"","M":"Bergin Designs "},
+{"G":"Ted Rhodes ","A":"Bruce Hepner","L":"Tennessee ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-11-14","Z":"","M":""},
+{"G":"Valleybrook ","A":"Cynthia Dye","L":"Tennessee ","U":"USA","D":"2025","C":"","J":"Renovate","S":"Drawing Boards","B":"","H":"Charles Adams","Y":"2023-10-20","Z":"","M":""},
+{"G":"Walter E. Long Park ","A":"Joe Ogilvie","L":"Texas ","U":"USA","D":"2014","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2024-04-15","Z":"","M":""},
+{"G":"Woodlands ","A":"","L":"Texas ","U":"USA","D":"2026","C":"","J":"Short","S":"Drawing Boards","B":"","H":"","Y":"2025-05-22","Z":"","M":""},
+{"G":"Ekwanok CC ","A":"Brian Schneider","L":"Vermont ","U":"USA","D":"","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Walter Travis","Y":"2024-10-19","Z":"","M":""},
+{"G":"Army Navy CC ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-08-12","Z":"","M":""},
+{"G":"Mount Vernon ","A":"McDonald Liddy","L":"Virginia ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-12-15","Z":"","M":"Plan "},
+{"G":"Salisbury CC ","A":"Bill Bergin","L":"Virginia ","U":"USA","D":"2025","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-04-04","Z":"","M":""},
+{"G":"Willow Oaks ","A":"Andrew Green","L":"Virginia ","U":"USA","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-06-15","Z":"","M":""},
+{"G":"Badger Mountain ","A":"John Steidel","L":"Washington ","U":"USA","D":"2010","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2010-01-01","Z":"","M":""},
+{"G":"Meadow Park ","A":"TBA","L":"Washington ","U":"USA","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"$40M","H":"","Y":"2024-06-22","Z":"","M":"PGA "},
+{"G":"Port Townsend ","A":"TBA","L":"Washington ","U":"USA","D":"2023","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-03-01","Z":"","M":""},
+{"G":"Langston ","A":"Beau Welling","L":"Washington DC ","U":"USA","D":"2030","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Parish","Y":"2022-12-14","Z":"","M":"Callaway "},
+{"G":"Kohler Whistling Straits 2 ","A":"King Collins","L":"Wisconsin ","U":"USA","D":"2023","C":"","J":"Public","S":"Drawing boards ","B":"","H":"","Y":"2023-12-14","Z":"","M":""},
+{"G":"North Hills CC ","A":"Sam Beckman David Savic","L":"Wisconsin ","U":"USA","D":"2027","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-08-04","Z":"","M":"Redesign Ken Killian "},
+{"G":"St. Croix National ","A":"Rob Gavarkovs","L":"Wisconsin ","U":"USA","D":"2028","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-03-15","Z":"","M":""},
+{"G":"Lago Escondido ","A":"TBA","L":"Bariloche ","U":"Argentina","D":"2009","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-11-21","Z":"","M":""},
+{"G":"Northbeach Links ","A":"Ezpeleta","L":"Partido Costa ","U":"Argentina","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2023-03-15","Z":"","M":"3 holes "},
+{"G":"Tierra del Sol ","A":"RTJ II","L":"Arashi ","U":"Aruba","D":"2024","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"RTJ II","Y":"2023-12-09","Z":"","M":""},
+{"G":"Kakona Resort ","A":"David McLay Kidd","L":"Abaco ","U":"Bahamas","D":"2022","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-07-24","Z":"","M":""},
+{"G":"Bock Cay ","A":"Nick Faldo","L":"Exuma ","U":"Bahamas","D":"2014","C":"","J":"New","S":"Started","B":"","H":"","Y":"2024-02-01","Z":"","M":""},
+{"G":"Boa Vista ","A":"Rees Jones","L":"Sao Paulo ","U":"Brazil","D":"2022","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-12-14","Z":"","M":""},
+{"G":"Campinas Eduardo Walker ","A":"Dana Fry Jason Straka","L":"São Paulo ","U":"Brazil","D":"2019","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-11-29","Z":"","M":""},
+{"G":"Sport de Golf ","A":"RTJ II","L":"Santiago ","U":"Chile","D":"2024","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2022-04-06","Z":"Santiago","M":""},
+{"G":"Bellomonte ","A":"TBA","L":"Guanabo ","U":"Cuba","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-07-25","Z":"","M":""},
+{"G":"Carbonera Club ","A":"PGADC","L":"Palmares ","U":"Cuba","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-07-25","Z":"","M":""},
+{"G":"El Salado Resort ","A":"IDOM","L":"Pinar del Rio ","U":"Cuba","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-07-25","Z":"","M":""},
+{"G":"El Salado ","A":"Jon Hunt","L":"Santiago ","U":"Cuba","D":"2018","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-10-14","Z":"","M":""},
+{"G":"Cocotal Golf ","A":"Abril Ortiz","L":"Punta Cana ","U":"Dominican","D":"2024","C":"Total Golf Construction","J":"Renovate","S":"Drawing boards ","B":"","H":"Pepe Gancedo","Y":"2024-07-21","Z":"","M":""},
+{"G":"Naco Golf & Country Club ","A":"Angel Jimenez","L":"Santo Domingo ","U":"Dominican Republic","D":"2025","C":"","J":"New","S":"Drawing boards","B":"","H":"","Y":"2025-02-27","Z":"","M":""},
+{"G":"Quito Tenis y Golf ","A":"RTJ II Bruce Charlton","L":"Quito ","U":"Ecuador","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-23","Z":"","M":""},
+{"G":"Tuscania Resort ","A":"Raymond Hearn","L":"San Salvador ","U":"El Salvador","D":"2026","C":"","J":"Short","S":"Drawing boards ","B":"","H":"","Y":"2024-11-30","Z":"","M":"Juan Heras "},
+{"G":"Maraiko Bay ","A":"David Hemstock","L":"Mahaica ","U":"Guyana","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-01-05","Z":"","M":""},
+{"G":"Los Cabos ","A":"Greg Norman","L":"Baja ","U":"Mexico","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-02-23","Z":"","M":"Four Seasons "},
+{"G":"Tijuana CC ","A":"Agustín Pizá","L":"Baja ","U":"Mexico","D":"2023","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2023-06-09","Z":"","M":""},
+{"G":"Desertica ","A":"Agustín Pizá Brandel Chamblee","L":"Cuatro Cíenegas ","U":"Mexico","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-03-29","Z":"Butterfly Effect","M":"GCA "},
+{"G":"Costa Canuva ","A":"Lorena Ochoa Greg Norma","L":"Nayarit ","U":"Mexico","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-07-21","Z":"","M":""},
+{"G":"Chichén Itzá ","A":"Greg Norman","L":"Yucatan ","U":"Mexico","D":"2022","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-03-02","Z":"","M":""},
+{"G":"Resort TBA ","A":"Jon Hunt IDG","L":" ","U":"Mexico","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-11-04","Z":"","M":""},
+{"G":"Christophe Harbour ","A":"Tom Fazio","L":" ","U":"St. Kitts","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-04-01","Z":"","M":""},
+{"G":"1881 ","A":"RTJ2 Mike Gorman","L":"Praslin Bay ","U":"St. Lucia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-25","Z":"Reversible Routing","M":""},
+{"G":"St. Andrews ","A":"Jemsek","L":"Port of Spain ","U":"Trinidad","D":"2023","C":"","J":"Renovate","S":"Drawing boards","B":"","H":"","Y":"2021-02-01","Z":"","M":""},
+{"G":"Luton Hoo ","A":"Gary Player Justin Rose","L":"Bedfordshire ","U":"England","D":"2027","C":"McMurray","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2024-04-14","Z":"Ryder Cup Bid","M":""},
+{"G":"Hulton Park ","A":"European Golf Design","L":"Bolton ","U":"England","D":"2028","C":"","J":"New","S":"Drawing boards","B":"$300M","H":"","Y":"2024-02-09","Z":"","M":"2035 Ryder Cup "},
+{"G":"Wallasey ","A":"CDP Clayton DeVries Pont","L":"Cheshire ","U":"England","D":"2027","C":"","J":"Re-Route","S":"Drawing boards ","B":"","H":"","Y":"2024-02-10","Z":"","M":"Joe McDonnell "},
+{"G":"Cleeve Hill ","A":"CDP Frank Pont Sam Cooper","L":"Cotswold ","U":"England","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Old Tom Morris","Y":"2024-07-09","Z":"","M":""},
+{"G":"Teign Valley ","A":"Tom Mackenzie","L":"Devon ","U":"England","D":"2025","C":"","J":"Re-Route","S":"Drawing boards ","B":"","H":"","Y":"2024-12-28","Z":"","M":""},
+{"G":"Blacknest ","A":"Mackenzie Ebert","L":"East Hampshire ","U":"England","D":"2028","C":"","J":"Re-Route 12","S":"Drawing boards ","B":"","H":"","Y":"2024-08-09","Z":"","M":""},
+{"G":"East Horton GC ","A":"James Edwards","L":"Hampshire ","U":"England","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2025-03-04","Z":"","M":""},
+{"G":"La Moye ","A":"Mackenzie Ebert","L":"Jersey ","U":"England","D":"2028","C":"","J":"Renovate","S":"Masterplan","B":"","H":"James Braid","Y":"2024-06-21","Z":"","M":""},
+{"G":"Legacy Club ","A":"Jeremy Slessor","L":"London ","U":"England","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"Pete Dye","Y":"2023-11-01","Z":"","M":"Layout "},
+{"G":"Stoke Park ","A":"Mackenzie Ebert","L":"London ","U":"England","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2023-12-01","Z":"","M":"18 holes "},
+{"G":"Houghton on the Hill ","A":"TBA","L":"Moodie Brown ","U":"England","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-12-12","Z":"Scraptoft","M":"Plans "},
+{"G":"Hallamshire ","A":"CDP Clayton DeVries Pont","L":"Sheffield ","U":"England","D":"2028","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"Morrison","Y":"2024-02-20","Z":"","M":""},
+{"G":"Hallamshire ","A":"Frank Pont","L":"Sheffield ","U":"England","D":"2022","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2022-03-12","Z":"","M":""},
+{"G":"Centurion ","A":"TBA","L":"St. Albans ","U":"England","D":"2024","C":"","J":"New 10","S":"Drawing boards","B":"","H":"","Y":"2023-12-21","Z":"","M":""},
+{"G":"Merrist Wood ","A":"","L":"Surrey ","U":"England","D":"","C":"","J":"Rebuild ","S":"Drawing boards ","B":"","H":"","Y":"2025-04-14","Z":"","M":""},
+{"G":"Wentworth East ","A":"","L":"Surrey ","U":"England","D":"2024","C":"","J":"Renovate","S":"Drawing boards","B":"","H":"Harry Colt","Y":"2024-02-14","Z":"","M":""},
+{"G":"Bognor Regis ","A":"European Golf Design","L":"West Sussex ","U":"England","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-03-25","Z":"","M":"Planning "},
+{"G":"County Louth Baltray ","A":"Martin Ebert","L":"Louth ","U":"Ireland","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Tom Simpson","Y":"2023-04-26","Z":"","M":""},
+{"G":"Bartragh Island ","A":"Nick Faldo","L":"Sligo ","U":"Ireland","D":"2021","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-02-02","Z":"","M":""},
+{"G":"Fraserburgh ","A":"CDP Clayton DeVries Pont","L":"Aberdeen ","U":"Scotland","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"James Braid","Y":"2023-07-03","Z":"","M":""},
+{"G":"Irvine Beach ","A":"TBA","L":"Ayrshire ","U":"Scotland","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-05-12","Z":"","M":""},
+{"G":"Coul Links ","A":"Bill Coore Ben Crenshaw","L":"Dornoch ","U":"Scotland","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-10","Z":"Keiser","M":"SSSI ESA "},
+{"G":"Southerness ","A":"Pont Clayton","L":"Dumfries ","U":"Scotland","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"Donald Ross","Y":"2023-03-02","Z":"","M":""},
+{"G":"The Angus ","A":"Webster Clarke","L":"Dundee ","U":"Scotland","D":"2022","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-03-07","Z":"","M":""},
+{"G":"Dunbar Short ","A":"Russell Woosnam","L":"East Lothian ","U":"Scotland","D":"2026","C":"","J":"Short","S":"Drawing boards ","B":"$4.5M","H":"","Y":"2024-04-07","Z":"","M":""},
+{"G":"St. Andrews Bay ","A":"Mackenzie Ebert","L":"Fife ","U":"Scotland","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-07","Z":"New Century","M":""},
+{"G":"Mar Hall ","A":"TBA","L":"Glasgow ","U":"Scotland","D":"2024","C":"","J":"Update","S":"Drawing boards ","B":"","H":"","Y":"2023-12-27","Z":"","M":""},
+{"G":"Castlecraig ","A":"TBA","L":"Tain ","U":"Scotland","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-03-29","Z":"","M":""},
+{"G":"Royal Oostende ","A":"CDP Pont","L":"De Haan ","U":"Belgium","D":"2024","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2022-07-04","Z":"","M":""},
+{"G":"Matalda ","A":"Ernie Els","L":"Cres ","U":"Croatia","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-04-30","Z":"","M":""},
+{"G":"Razvoj Golf Resort ","A":"TBD","L":"Dubrovnik ","U":"Croatia","D":"2023","C":"","J":"New","S":"Permits","B":"","H":"","Y":"2023-07-21","Z":"","M":""},
+{"G":"Limassol Hills ","A":"Jonathan Gaunt","L":"Cyprus ","U":"Cyprus","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2020-12-21","Z":"","M":" "},
+{"G":"Eagle Pine Resort ","A":"Graham Marsh","L":"Pissouri ","U":"Cyprus","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-12-31","Z":"","M":""},
+{"G":"Estonian Golf Annika ","A":"EGD","L":" ","U":"Estonia","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-10-25","Z":"GaryJo","M":"2016 "},
+{"G":"Hirsala ","A":"Lundin Leijon","L":"Finland ","U":"Finland","D":"2026","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-05-22","Z":"","M":"Sustainability "},
+{"G":"Tammer ","A":"Mikko Ilonen","L":"Finland ","U":"Finland","D":"2021","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-12-12","Z":"Land swap","M":""},
+{"G":"Montagne Noir ","A":"NCM","L":"Fontiers Cabardès ","U":"France","D":"2010","C":"","J":"","S":"Drawing boards ","B":"","H":"","Y":"2024-02-01","Z":"","M":""},
+{"G":"Domaine Lavagnac ","A":"Jack Nicklaus","L":"Occitanie ","U":"France","D":"2023","C":"","J":"New","S":"Drought","B":"","H":"","Y":"2023-05-13","Z":"","M":""},
+{"G":"Val-Grand ","A":"Nick Faldo","L":"Paris ","U":"France","D":"2021","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-01-02","Z":"","M":""},
+{"G":"Baden Baden ","A":"Thomas Himmel","L":"Baden Baden ","U":"Germany","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Archibald White","Y":"2024-04-09","Z":"","M":"himmelgolfdesign "},
+{"G":"Villmar-Weyer ","A":"Städler Reinmuth","L":"Limburg ","U":"Germany","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-04-12","Z":"","M":""},
+{"G":"Delphi Golf Resort ","A":"TBA","L":"Fokida ","U":"Greece","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-01-12","Z":"","M":""},
+{"G":"Kilada Hills ","A":"Nicklaus Dirk Bouts","L":"Kilada ","U":"Greece","D":"2024","C":"","J":"New","S":"Stopped","B":"","H":"","Y":"2024-10-17","Z":"","M":""},
+{"G":"Oddur GC ","A":"RTJ II Bruce Charlton Mike Gorman","L":"Reykjavik ","U":"Iceland","D":"2027","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2025-05-17","Z":"","M":"Site walk "},
+{"G":"Poiano Resort ","A":"De Simone","L":"Garda ","U":"Italy","D":"2027","C":"Bariselli Fratelli","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-10-05","Z":"","M":""},
+{"G":"Monte Rocha ","A":"Nick Faldo","L":"Algarve ","U":"Portugal","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-10-22","Z":"","M":""},
+{"G":"Vilamoura Old ","A":"Ernie Els Greg Letsche","L":"Algarve ","U":"Portugal","D":"2026","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"Frank Pennink","Y":"2023-11-04","Z":"","M":""},
+{"G":"Laguna Park ","A":"Mackenzie Ebert","L":"Porto ","U":"Portugal","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-12-23","Z":"","M":""},
+{"G":"Monte Rei South ","A":"Jack Nicklaus","L":"Portugal ","U":"Portugal","D":"2022","C":"","J":"New","S":"Drawing boards","B":"","H":"","Y":"2021-12-31","Z":"","M":""},
+{"G":"TBA ","A":"TBA","L":"Belgrade ","U":"Serbia","D":"2026","C":"","J":"New","S":"Drawing boards","B":"","H":"","Y":"2023-01-24","Z":"","M":""},
+{"G":"Macenas ","A":"Stirling Martin","L":"Almería ","U":"Spain","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-12-15","Z":"","M":"2009 Plan "},
+{"G":"Los Cálamos ","A":"Stirling Martin","L":"Castellon ","U":"Spain","D":"2024","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2022-08-04","Z":"","M":""},
+{"G":"Cortijo Los Ortejones ","A":"","L":"Malaga ","U":"Spain","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-22","Z":"","M":""},
+{"G":"Valle del Golf ","A":"","L":"Malaga ","U":"Spain","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-12-12","Z":"","M":""},
+{"G":"Pego Golf ","A":"Olazabal","L":"Spain ","U":"Spain","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-18","Z":"","M":""},
+{"G":"Los Cálamos ","A":"Stirling Martin","L":"Valencia ","U":"Spain","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"$7M","H":"","Y":"2022-10-28","Z":"Sant Gregori","M":"Burriana "},
+{"G":"Gävle ","A":"Lobb Lundin","L":"Gävle ","U":"Sweden","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2023-12-28","Z":"Old Avan","M":""},
+{"G":"Ljunghusen GC ","A":"Johan Benestam","L":"Malmo ","U":"Sweden","D":"2027","C":"","J":"Masterplan","S":"Drawing boards ","B":"","H":"","Y":"2024-11-24","Z":"","M":""},
+{"G":"Bråvikens ","A":"Johan Benestam","L":"Norrköping ","U":"Sweden","D":"2025","C":"","J":"Renovate","S":"Ongoing","B":"","H":"","Y":"2022-06-23","Z":"","M":""},
+{"G":"Österåkers Väster ","A":"Christian Lundin Henrik Stenson","L":"Stockholm ","U":"Sweden","D":"2026","C":"","J":"Rebuild ","S":"Drawing boards","B":"","H":"","Y":"2024-02-11","Z":"","M":"EIGCA "},
+{"G":"TBA ","A":"Russell Talley","L":"Lake Geneva ","U":"Switzerland","D":"1987","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-01-01","Z":"","M":""},
+{"G":"Murrumbidgee ","A":"Ben Davey","L":"Canberra ","U":"Australia","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2022-08-24","Z":"","M":""},
+{"G":"Kameruka ","A":"Harley Kruse","L":"NSW ","U":"Australia","D":"2027","C":"","J":"Restore","S":"Drawing boards ","B":"","H":"","Y":"2023-04-24","Z":"","M":""},
+{"G":"Moore Park GC ","A":"","L":"NSW ","U":"Australia","D":"2026","C":"","J":"Reduce","S":"Drawing boards ","B":"","H":"","Y":"2024-03-16","Z":"","M":""},
+{"G":"Wisemans Ferry ","A":"","L":"NSW ","U":"Australia","D":"2024","C":"","J":"New 9","S":"Drawing boards ","B":"","H":"","Y":"2024-09-16","Z":"","M":""},
+{"G":"Wembley ","A":"CDP Clayton Michel","L":"Perth ","U":"Australia","D":"2026","C":"Harley Kruse","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-09-01","Z":"Public Golf","M":""},
+{"G":"Great Keppel Island ","A":"Greg Norman","L":"Queensland ","U":"Australia","D":"2012","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-02-05","Z":"","M":""},
+{"G":"Royal Queensland ","A":"Oglivy Cocking Mead","L":"Queensland ","U":"Australia","D":"2032","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2023-03-01","Z":"2032 Olympics","M":"RQGOLF "},
+{"G":"Port Lincoln ","A":"Greg Norman","L":"South Aus. ","U":"Australia","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-02-26","Z":"","M":""},
+{"G":"Arm End ","A":"Oglivy Cocking Mead","L":"Tasmania ","U":"Australia","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-03-16","Z":"","M":"Overhead "},
+{"G":"Musselroe Bay ","A":"Oglivy Cocking Mead","L":"Tasmania ","U":"Australia","D":"2030","C":"","J":"","S":"Drawing boards ","B":"","H":"","Y":"2022-12-20","Z":"","M":""},
+{"G":"Kew GC ","A":"CDP Clayton Michel","L":"Victoria ","U":"Australia","D":"2033","C":"Harley Kruse","J":"Renovate","S":"Masterplan","B":"","H":"Fred Fritts","Y":"2023-09-11","Z":"","M":"2022 Flood "},
+{"G":"Port Fairy ","A":"CDP Clayton DeVries Pont","L":"Victoria ","U":"Australia","D":"2026","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-04-01","Z":"","M":"Routing "},
+{"G":"Riversdale GC ","A":"Oglivy Cocking Mead","L":"Victoria ","U":"Australia","D":"2027","C":"","J":"Renovate","S":"Masterplan","B":"","H":"","Y":"2024-12-20","Z":"","M":""},
+{"G":"Hastings Bridge Pa ","A":"Greg Turner","L":"Napier ","U":"NZ","D":"2027","C":"","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2025-01-26","Z":"David Moore","M":"Tourism "},
+{"G":"Douglas Links ","A":"","L":"North Island ","U":"NZ","D":"2022","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2022-07-11","Z":"","M":""},
+{"G":"TBA ","A":"TBA","L":"Baku ","U":"Azerbaijan","D":"2023","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2020-12-30","Z":"","M":""},
+{"G":"Golf Harmony ","A":"","L":"Kampot ","U":"Cambodia","D":"2024","C":"","J":"New","S":"Drawing Boards","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"Thansur Bokor Highland Resort ","A":"Arnold Palmer","L":"Phnom Penh ","U":"Cambodia","D":"2008","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"Bellus Angkor Resort ","A":"David McLay Kidd","L":"Siem Reap ","U":"Cambodia","D":"2010","C":"","J":"New","S":"Never started","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"O’Chhuteal Beach Resort ","A":"","L":"Sihanoukville ","U":"Cambodia","D":"2004","C":"","J":"New","S":"Stopped","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"Simapo Island ","A":"Tom Doak Eric Iverson","L":"Hainan ","U":"China","D":"2014","C":"","J":"New","S":"Stopped","B":"","H":"","Y":"2023-08-27","Z":"","M":""},
+{"G":"Aivot Golf PGA ","A":"Tim Lobb Alex Hay","L":"Goa ","U":"India","D":"2027","C":"GreenLinks Consulting","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-09-18","Z":"","M":""},
+{"G":"TBA ","A":"Jon Hunt","L":"Gujarat ","U":"India","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-11","Z":"","M":""},
+{"G":"Hyderabad GC ","A":"Richardson Jeffrey Danner","L":"Hyderabad ","U":"India","D":"2025","C":"Heblikar","J":"Renovate","S":"Drawing boards ","B":"","H":"","Y":"2024-03-01","Z":"Re-routing 4 holes","M":""},
+{"G":"TBA ","A":"Carlton Marshall","L":" ","U":"India","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-05-22","Z":"","M":""},
+{"G":"Labuan Bajo ","A":"","L":"East Nusa Tenggara ","U":"Indonesia","D":"2022","C":"","J":"New","S":"SEZ","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"Nusantara ","A":"","L":"Kalimantan ","U":"Indonesia","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-01-16","Z":"","M":""},
+{"G":"Mandalika ","A":"","L":"Lombok ","U":"Indonesia","D":"2020","C":"","J":"New","S":"SEZ","B":"","H":"","Y":"2023-12-01","Z":"","M":""},
+{"G":"Eagle Hills ","A":"","L":"Baghdad ","U":"Iraq","D":"2029","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-06-28","Z":"","M":""},
+{"G":"Land Authority ","A":"TBA","L":"Eilat ","U":"Isreael","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-09-22","Z":"","M":""},
+{"G":"Dream Land Lao ","A":"","L":"Vientiane ","U":"Laos","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"$200M","H":"","Y":"2023-09-25","Z":"Don Kangkhong island","M":""},
+{"G":"Kuala Penyu Golf & Country Club ","A":"TBA","L":"Sabah ","U":"Malaysia","D":"2030","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-12-10","Z":"","M":""},
+{"G":"Baccarat Hotel ","A":"","L":"South Malé ","U":"Maldives","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-05-31","Z":"9 holes","M":""},
+{"G":"Sarai Alamgir ","A":"TBA","L":"Gujrat ","U":"Pakistan","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2022-09-25","Z":"","M":""},
+{"G":"Panglao Resort ","A":"DSME","L":"Bohol ","U":"Philippines","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-03-01","Z":"","M":""},
+{"G":"Cebu CC ","A":"Netforce","L":"Cebu ","U":"Philippines","D":"2025","C":"","J":"Renovate","S":"Drawing boards ","B":"$13.5M","H":"","Y":"2023-12-08","Z":"","M":""},
+{"G":"Dolphin Island ","A":"TBA","L":"Cebu ","U":"Philippines","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-01-25","Z":"","M":""},
+{"G":"Carmen ","A":"TBA","L":"Davao City ","U":"Philippines","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-09-01","Z":"","M":""},
+{"G":"McKinley CC Golf Resort ","A":"Songho Golf Design","L":"Laguna ","U":"Philippines","D":"2025","C":"Netforce","J":"New","S":"Construction","B":"$60M","H":"","Y":"2023-11-30","Z":"Heerim","M":""},
+{"G":"New Manila Bay ","A":"","L":"Manila ","U":"Philippines","D":"2026","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-01-25","Z":"","M":"Pearl "},
+{"G":"Hann Reserve River ","A":"Nick Faldo","L":"New Clark City ","U":"Philippines","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-08-17","Z":"Dae Sik","M":""},
+{"G":"Shishkino CC ","A":"Agustin Piza","L":"Moscow ","U":"Russia","D":"2024","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-10-29","Z":"","M":""},
+{"G":"AK Bars ","A":"Harradine","L":"Tatarstan ","U":"Russia","D":"2022","C":"","J":"New","S":"TBD","B":"","H":"","Y":"2022-10-19","Z":"","M":""},
+{"G":"Vladivostok GC ","A":"Rasinkangas Fream","L":"Vladivostok ","U":"Russia","D":"2024","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2021-09-23","Z":"","M":""},
+{"G":"Jaffna ","A":"Ebert Mackenzie","L":"Jaffna ","U":"Sri Lanka","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-12-27","Z":"","M":""},
+{"G":"Panditharatna ","A":"TBA","L":"Muthurajawela ","U":"Sri Lanka","D":"2011","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-12-27","Z":"","M":""},
+{"G":"Ruayrungruang ","A":"Tiger Woods","L":"Bangkok ","U":"Thailand","D":"2025","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2020-11-14","Z":"","M":""},
+{"G":"Equides GC ","A":"Jonathan Davison","L":"Kiev ","U":"Ukraine","D":"2023","C":"","J":"New","S":"Started","B":"","H":"","Y":"2023-02-04","Z":"","M":""},
+{"G":"TBA ","A":"Thomas Himmel","L":"Hanoi ","U":"Vietnam","D":"2028","C":"","J":"New 36","S":"Drawing boards ","B":"","H":"","Y":"2024-05-09","Z":"","M":""},
+{"G":"Can Gio ","A":"","L":"Ho Chi Minh ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2025-01-19","Z":"Vingroup","M":"Reclamation "},
+{"G":"Hoiana Shores 2 ","A":"","L":"Hoi An ","U":"Vietnam","D":"2027","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-07-15","Z":"","M":""},
+{"G":"Bai Thom ","A":"","L":"Phu Quoc ","U":"Vietnam","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-09","Z":"","M":""},
+{"G":"Bai Vong ","A":"","L":"Phu Quoc ","U":"Vietnam","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2024-04-09","Z":"Vinpearl","M":""},
+{"G":"Tarafo Bay ","A":"Jon Hunt Andrew Craven","L":"Boa Vista ","U":"Cape Verde","D":"2034","C":"","J":"New 54","S":"Drawing boards ","B":"","H":"","Y":"2024-09-20","Z":"IDG","M":"Resort Golf "},
+{"G":"Porto Cairo ","A":"Steve Ritson","L":"Cairo ","U":"Egypt","D":"2022","C":"","J":"New","S":"Construction","B":"","H":"","Y":"2024-03-13","Z":"","M":""},
+{"G":"Adonai ","A":"TBA","L":"Ho ","U":"Ghana","D":"2023","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2021-01-09","Z":"","M":""},
+{"G":"Tunis Sport City ","A":"Peter Harradine","L":"Tunis ","U":"Tunis","D":"2028","C":"","J":"New","S":"Drawing boards ","B":"","H":"","Y":"2023-08-28","Z":"","M":""}
+ ]
+}
diff --git a/es/Punta-Brava.htm b/es/Punta-Brava.htm
new file mode 100644
index 0000000000000..c6f6614e4147f
--- /dev/null
+++ b/es/Punta-Brava.htm
@@ -0,0 +1,90 @@
+---
+
+---
+
+
+
+
+
+ Punta Brava - Campo de Golf - Océano Pacífico
+
+
+
+
+
+
+
+
+
+
+
+Punta Brava - Tom Doak - Vistas al Océano Pacífico
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/es/Rolling-Sands-Golf.htm b/es/Rolling-Sands-Golf.htm
new file mode 100644
index 0000000000000..1010f206b05ac
--- /dev/null
+++ b/es/Rolling-Sands-Golf.htm
@@ -0,0 +1,87 @@
+---
+
+---
+
+
+
+
+
+ Rolling Sands - Tom Doak Design in South Florida
+
+
+
+
+
+
+
+
+
+
+
+ Rolling Sands - Tom Doak - Florida
+
+
+
+
+
+
+
+
+
+
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000000000..deaeabdd1d32d
Binary files /dev/null and b/favicon.ico differ
diff --git a/iMap.css b/iMap.css
new file mode 100644
index 0000000000000..e1baa94aba1bf
--- /dev/null
+++ b/iMap.css
@@ -0,0 +1,182 @@
+html {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+*,
+*:before,
+*:after {
+ -webkit-box-sizing: inherit;
+ -moz-box-sizing: inherit;
+ box-sizing: inherit;
+}
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+}
+
+html,
+body,
+#storyMap {
+ height: 100%;
+ width: 100%;
+}
+
+/* story map container */
+#storyMap {
+ margin: 0 auto;
+}
+
+/* story map menu bar */
+.vco-menubar-button,
+.vco-mobile .vco-menubar-button:hover,
+/* map icons */ .vco-map .vco-mapmarker {
+ color: #fff;
+}
+
+.vco-menubar-button,
+.vco-mobile .vco-menubar-button:hover {
+ background-color: #0b3c5d;
+}
+
+.vco-menubar-button {
+ -webkit-transition: background-color 0.2s ease-in-out;
+ -moz-transition: background-color 0.2s ease-in-out;
+ -o-transition: background-color 0.2s ease-in-out;
+ transition: background-color 0.2s ease-in-out;
+}
+
+.vco-menubar-button:hover,
+.vco-menubar-button:focus,
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-next
+ .vco-slidenav-icon:hover:before,
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-previous
+ .vco-slidenav-icon:hover:before,
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-next
+ .vco-slidenav-icon:focus:before,
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-previous
+ .vco-slidenav-icon:focus:before,
+.vco-mobile .vco-menubar-button:active {
+ background-color: #d9b310;
+}
+
+.vco-storymap p a {
+ color: #00e;
+ text-decoration: underline;
+}
+
+.vco-map .vco-mapmarker-icon:after {
+ content: url(https://raw.githubusercontent.com/pmacMaps/storymapsJS-pamagic-board/master/assets/images/pamagic-marker.png);
+}
+
+/* before and after buttons */
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-next
+ .vco-slidenav-icon:before,
+.vco-layout-landscape
+ .vco-storyslider
+ .vco-slidenav-previous
+ .vco-slidenav-icon:before {
+ background-color: #0b3c5d;
+ -webkit-transition: background-color 0.2s ease-in-out;
+ -moz-transition: background-color 0.2s ease-in-out;
+ -o-transition: background-color 0.2s ease-in-out;
+ transition: background-color 0.2s ease-in-out;
+}
+
+.vco-mobile .vco-layout-landscape .vco-storyslider .vco-slidenav-next,
+.vco-mobile .vco-layout-landscape .vco-storyslider .vco-slidenav-previous {
+ display: none !important;
+}
+
+/* tour points text */
+div.vco-storymap.vco-mobile.vco-layout-landscape
+ > div.vco-storyslider.vco-storyslider {
+ z-index: 1500;
+}
+
+.vco-slide-content {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ border-radius: 5px;
+ background-color: #fff;
+}
+
+.vco-storymap h2.vco-headline-title {
+ font-size: 1.5em;
+}
+
+.vco-headline,
+.vco-storymap h2 {
+ font-size: 1.4em;
+}
+
+.vco-text p {
+ color: #333;
+}
+
+.vco-storymap p {
+ line-height: 1.25em;
+}
+
+/* leaflet elements */
+.vco-map .leaflet-container .leaflet-control-attribution {
+ background: rgba(255, 255, 255, 0.8);
+ padding: 8px;
+ border-radius: 5px;
+}
+
+.vco-map .leaflet-container .leaflet-control-attribution a {
+ color: #00f;
+}
+
+/* Media Queries */
+@media screen and (orientation: landscape) {
+ .vco-slide-content {
+ padding-left: 10px !important;
+ margin-right: -20px !important;
+ }
+}
+
+/* override zoom control being hidden */
+@media screen and (max-width: 451px) {
+ .vco-mobile.vco-skinny .leaflet-control-zoom {
+ display: inherit;
+ }
+
+ div.leaflet-top.leaflet-left {
+ margin-top: 20px;
+ }
+}
+
+@media screen and (max-width: 768px) {
+ .vco-media .vco-media-content-container .vco-media-content img {
+ max-height: 250px;
+ }
+
+ .vco-storymap p {
+ margin: 25px 0;
+ font-size: 1.05em;
+ line-height: 1.5em;
+ }
+
+ .vco-storymap p:first-child {
+ margin-top: 10px;
+ }
+
+ .vco-storymap p:last-child {
+ margin-bottom: 10px;
+ }
+}
diff --git a/iMap.html b/iMap.html
new file mode 100644
index 0000000000000..24a14660182b0
--- /dev/null
+++ b/iMap.html
@@ -0,0 +1,79 @@
+---
+
+---
+
+
+
+
+
+ New Golf Course Opening - Travel Itinerary for Top 100 World potential
+
+
+
+
+
+
+
+
+
+
+
+ New Golf Course Openings - Travel Plan
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iMap2.css b/iMap2.css
new file mode 100644
index 0000000000000..ee700f37eb040
--- /dev/null
+++ b/iMap2.css
@@ -0,0 +1,3059 @@
+/*!
+ StoryMap
+
+ Designed and built by Zach Wise for the Northwestern University Knight Lab
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+*/
+/* Includes
+================================================== */
+/* VARIABLES
+----------------------------------------------------- */
+/* TYPEFACE
+================================================== */
+/* COLOR SCHEME
+================================================== */
+/* UI COLOR
+================================================== */
+/* UI
+================================================== */
+/* Animation
+================================================== */
+/* GFX
+================================================== */
+/* Mixins.less
+ Snippets of reusable CSS to develop faster and keep code readable
+ * ----------------------------------------------------------------- */
+/* Reset
+------------------------------------------------------------------------------------------- */
+.vco-storyjs {
+ /* Reset tags and common classes
+ Display in IE6-9 and FF3
+ Based on: http://github.com/necolas/normalize.css
+ ------------------------------------------------------------------------------------------- */
+ /* Prevents modern browsers from displaying 'audio' without controls
+ Based on: http://github.com/necolas/normalize.css
+ ------------------------------------------------------------------------------------------- */
+ /* Prevents sub and sup affecting line-height in all browsers
+ Based on: http://github.com/necolas/normalize.css
+ ------------------------------------------------------------------------------------------- */
+ /* Img border in a's and image quality
+ Based on: http://github.com/necolas/normalize.css
+ ------------------------------------------------------------------------------------------- */
+ /* Forms
+ Based on: http://github.com/necolas/normalize.css
+ ------------------------------------------------------------------------------------------- */
+}
+.vco-storyjs div * {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.vco-storyjs h1,
+.vco-storyjs h2,
+.vco-storyjs h3,
+.vco-storyjs h4,
+.vco-storyjs h5,
+.vco-storyjs h6,
+.vco-storyjs p,
+.vco-storyjs blockquote,
+.vco-storyjs pre,
+.vco-storyjs a,
+.vco-storyjs abbr,
+.vco-storyjs acronym,
+.vco-storyjs address,
+.vco-storyjs cite,
+.vco-storyjs code,
+.vco-storyjs del,
+.vco-storyjs dfn,
+.vco-storyjs em,
+.vco-storyjs img,
+.vco-storyjs q,
+.vco-storyjs s,
+.vco-storyjs samp,
+.vco-storyjs small,
+.vco-storyjs strike,
+.vco-storyjs strong,
+.vco-storyjs sub,
+.vco-storyjs sup,
+.vco-storyjs tt,
+.vco-storyjs var,
+.vco-storyjs dd,
+.vco-storyjs dl,
+.vco-storyjs dt,
+.vco-storyjs li,
+.vco-storyjs ol,
+.vco-storyjs ul,
+.vco-storyjs fieldset,
+.vco-storyjs form,
+.vco-storyjs label,
+.vco-storyjs legend,
+.vco-storyjs button,
+.vco-storyjs table,
+.vco-storyjs caption,
+.vco-storyjs tbody,
+.vco-storyjs tfoot,
+.vco-storyjs thead,
+.vco-storyjs tr,
+.vco-storyjs th,
+.vco-storyjs td,
+.vco-storyjs .vco-container,
+.vco-storyjs .content-container,
+.vco-storyjs .media,
+.vco-storyjs .text,
+.vco-storyjs .vco-slider,
+.vco-storyjs .slider,
+.vco-storyjs .date,
+.vco-storyjs .title,
+.vco-storyjs .message,
+.vco-storyjs .map,
+.vco-storyjs .credit,
+.vco-storyjs .caption,
+.vco-storyjs .vco-feedback,
+.vco-storyjs .vco-feature,
+.vco-storyjs .toolbar,
+.vco-storyjs .marker,
+.vco-storyjs .dot,
+.vco-storyjs .line,
+.vco-storyjs .flag,
+.vco-storyjs .time,
+.vco-storyjs .era,
+.vco-storyjs .major,
+.vco-storyjs .minor,
+.vco-storyjs .vco-navigation,
+.vco-storyjs .start,
+.vco-storyjs .active {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-weight: normal;
+ font-style: normal;
+ font-size: 100%;
+ line-height: 1;
+ font-family: inherit;
+ width: auto;
+ float: none;
+}
+.vco-storyjs h1,
+.vco-storyjs h2,
+.vco-storyjs h3,
+.vco-storyjs h4,
+.vco-storyjs h5,
+.vco-storyjs h6 {
+ clear: none;
+}
+.vco-storyjs table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+.vco-storyjs ol,
+.vco-storyjs ul {
+ list-style: none;
+}
+.vco-storyjs q:before,
+.vco-storyjs q:after,
+.vco-storyjs blockquote:before,
+.vco-storyjs blockquote:after {
+ content: "";
+}
+.vco-storyjs a:focus {
+ outline: thin dotted;
+}
+.vco-storyjs a:hover,
+.vco-storyjs a:active {
+ outline: 0;
+}
+.vco-storyjs article,
+.vco-storyjs aside,
+.vco-storyjs details,
+.vco-storyjs figcaption,
+.vco-storyjs figure,
+.vco-storyjs footer,
+.vco-storyjs header,
+.vco-storyjs hgroup,
+.vco-storyjs nav,
+.vco-storyjs section {
+ display: block;
+}
+.vco-storyjs audio,
+.vco-storyjs canvas,
+.vco-storyjs video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+.vco-storyjs audio:not([controls]) {
+ display: none;
+}
+.vco-storyjs div {
+ max-width: none;
+}
+.vco-storyjs sub,
+.vco-storyjs sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+.vco-storyjs sup {
+ top: -0.5em;
+}
+.vco-storyjs sub {
+ bottom: -0.25em;
+}
+.vco-storyjs img {
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+.vco-storyjs button,
+.vco-storyjs input,
+.vco-storyjs select,
+.vco-storyjs textarea {
+ font-size: 100%;
+ margin: 0;
+ vertical-align: baseline;
+ *vertical-align: middle;
+}
+.vco-storyjs button,
+.vco-storyjs input {
+ line-height: normal;
+ *overflow: visible;
+}
+.vco-storyjs button::-moz-focus-inner,
+.vco-storyjs input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+.vco-storyjs button,
+.vco-storyjs input[type="button"],
+.vco-storyjs input[type="reset"],
+.vco-storyjs input[type="submit"] {
+ cursor: pointer;
+ -webkit-appearance: button;
+}
+.vco-storyjs input[type="search"] {
+ -webkit-appearance: textfield;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.vco-storyjs input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+.vco-storyjs textarea {
+ overflow: auto;
+ vertical-align: top;
+}
+.vco-storymap {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+.vco-storymap h1,
+.vco-storymap h2,
+.vco-storymap h3 {
+ font-size: 36px;
+ line-height: 36px;
+}
+.vco-storymap h1 small,
+.vco-storymap h2 small,
+.vco-storymap h3 small {
+ font-size: 24px;
+ line-height: 24px;
+}
+.vco-storymap h4,
+.vco-storymap h5,
+.vco-storymap h6 {
+ font-size: 24px;
+ line-height: 24px;
+ margin-bottom: 0px;
+}
+.vco-storymap h4 small,
+.vco-storymap h5 small,
+.vco-storymap h6 small {
+ font-size: 15px;
+ line-height: 15px;
+}
+.vco-storymap h2.vco-headline-title {
+ font-size: 46px;
+ line-height: 46px;
+}
+.vco-storymap h2.vco-headline-title small {
+ display: block;
+ margin-top: 5px;
+ font-size: 24px;
+ line-height: 24px;
+}
+.vco-storymap h2 {
+ margin-top: 20px;
+ margin-bottom: 5px;
+}
+.vco-storymap p {
+ margin-top: 5px;
+ margin-bottom: 10px;
+ font-size: 15px;
+ color: #666666;
+}
+.vco-storymap p a {
+ color: #666666;
+ text-decoration: none;
+ background-image: -moz-linear-gradient(top, rgba(102, 102, 102, 0) 50%, rgba(102, 102, 102, 0.6) 50%);
+ background-image: -webkit-linear-gradient(top, rgba(102, 102, 102, 0) 50%, rgba(102, 102, 102, 0.6) 50%);
+ background-image: -o-linear-gradient(top, rgba(102, 102, 102, 0) 50%, rgba(102, 102, 102, 0.6) 50%);
+ background-image: linear-gradient(to bottom, rgba(102, 102, 102, 0) 50%, rgba(102, 102, 102, 0.6) 50%);
+ background-repeat: repeat-x;
+ background-size: 2px 2px;
+ background-position: 0 17px;
+ text-shadow: -2px -1px 0 white, 2px -1px 0 white, -2px 1px 0 white, 2px 1px 0 white;
+}
+.vco-storymap p a:hover,
+.vco-storymap p a:focus {
+ color: #c34528;
+ text-decoration: none;
+}
+@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
+ .vco-storymap p a {
+ text-decoration: underline;
+ background-image: none;
+ text-shadow: none;
+ }
+ .vco-storymap p a:hover,
+ .vco-storymap p a:focus {
+ color: #c34528;
+ text-decoration: underline;
+ }
+}
+.vco-storymap b,
+.vco-storymap strong {
+ font-weight: bold;
+}
+.vco-storymap i,
+.vco-storymap em {
+ font-style: italic;
+}
+.vco-storymap a {
+ text-decoration: none;
+ color: #c34528;
+}
+.vco-storymap a:hover {
+ text-decoration: underline;
+ color: #6e2717;
+}
+.vco-storymap .vco-caption,
+.vco-storymap .vco-credit,
+.vco-storymap .vco-slidenav-next,
+.vco-storymap .vco-slidenav-previous {
+ font-size: 11px;
+ line-height: 11px;
+}
+.vco-storymap .vco-caption a,
+.vco-storymap .vco-credit a,
+.vco-storymap .vco-slidenav-next a,
+.vco-storymap .vco-slidenav-previous a {
+ color: #000;
+}
+.vco-storymap blockquote,
+.vco-storymap blockquote p {
+ font-family: "Georgia", Times New Roman, Times, serif;
+ color: #999999;
+ font-size: 24px;
+ line-height: 24px;
+ text-align: left;
+ background: transparent;
+ border: 0px;
+ padding: 0px;
+}
+.vco-storymap blockquote cite,
+.vco-storymap blockquote p cite {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 11px;
+ color: #666666;
+ display: block;
+ text-align: right;
+ font-style: normal;
+}
+.vco-storymap blockquote cite:before,
+.vco-storymap blockquote p cite:before {
+ content: "\2014";
+}
+.vco-storymap blockquote p:before {
+ content: open-quote;
+ display: inline-block;
+ font-size: 36px;
+ position: relative;
+ top: 8px;
+ margin-right: 5px;
+}
+.vco-storymap blockquote p:after {
+ content: close-quote;
+ display: inline-block;
+ font-size: 36px;
+ position: relative;
+ top: 8px;
+ margin-left: 3px;
+}
+.vco-storymap blockquote {
+ margin: 10px;
+}
+.vco-storymap blockquote p {
+ margin: 0;
+}
+.vco-storymap .vcard {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 15px;
+ line-height: 15px;
+}
+.vco-storymap .vco-text ul {
+ padding: 0px;
+ padding-left: 30px;
+ margin: 0;
+}
+.vco-storymap .vco-text ul li {
+ margin-bottom: 5px;
+}
+.vco-storymap .vco-note {
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: italic;
+ background-color: #e6e6e6;
+ font-size: 15px;
+ line-height: 17px;
+ padding: 10px;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border: 1px solid #faebcc;
+}
+@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {
+ .vco-storymap h1,
+ .vco-storymap h2,
+ .vco-storymap h3 {
+ font-size: 36px;
+ line-height: 36px;
+ }
+}
+@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {
+ .vco-storymap h1,
+ .vco-storymap h2,
+ .vco-storymap h3 {
+ font-size: 32px;
+ line-height: 32px;
+ }
+}
+.vco-skinny h2 {
+ margin-top: 0px;
+ padding-top: 7px;
+}
+/* Icons
+================================================== */
+@font-face {
+ font-family: 'vco-icons';
+ src: url(../css/icons/vco-icons.eot);
+ src: url(../css/icons/vco-icons.eot?#iefix) format('embedded-opentype'), url(../css/icons/vco-icons.ttf) format('truetype'), url(../css/icons/vco-icons.woff2) format('woff2'), url(../css/icons/vco-icons.woff) format('woff'), url(../css/icons/vco-icons.svg#vco-icons) format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+[class^="vco-icon-"],
+[class*=" vco-icon-"] {
+ font-family: 'vco-icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.vco-icon-vine:after {
+ content: "\e64d";
+}
+.vco-icon-wikipedia:after {
+ content: "\e64e";
+}
+.vco-icon-chevron-right:after {
+ content: "\e64f";
+}
+.vco-icon-chevron-left:after {
+ content: "\e650";
+}
+.vco-icon-youtube-logo:after {
+ content: "\e651";
+}
+.vco-icon-foursquare:after {
+ content: "\e652";
+}
+.vco-icon-camera-retro:after {
+ content: "\e653";
+}
+.vco-icon-doc:after {
+ content: "\e654";
+}
+.vco-icon-weibo:after {
+ content: "\e655";
+}
+.vco-icon-resize-horizontal:after {
+ content: "\e656";
+}
+.vco-icon-resize-vertical:after {
+ content: "\e657";
+}
+.vco-icon-resize-full:after {
+ content: "\e658";
+}
+.vco-icon-resize-small:after {
+ content: "\e659";
+}
+.vco-icon-twitter:after {
+ content: "\e62b";
+}
+.vco-icon-google-plus:after {
+ content: "\e62c";
+}
+.vco-icon-video:after {
+ content: "\e62d";
+}
+.vco-icon-youtube:after {
+ content: "\e62d";
+}
+.vco-icon-plaintext:after {
+ content: "\e62e";
+}
+.vco-icon-storify:after {
+ content: "\e62e";
+}
+.vco-icon-image-v2:after {
+ content: "\e62f";
+}
+.vco-icon-quote-v2:after {
+ content: "\e630";
+}
+.vco-icon-zoom-in:after {
+ content: "\e631";
+}
+.vco-icon-zoom-out:after {
+ content: "\e632";
+}
+.vco-icon-list:after {
+ content: "\e633";
+}
+.vco-icon-music:after {
+ content: "\e634";
+}
+.vco-icon-location:after {
+ content: "\e635";
+}
+.vco-icon-web:after {
+ content: "\e636";
+}
+.vco-icon-share-v2:after {
+ content: "\e637";
+}
+.vco-icon-soundcloud:after {
+ content: "\e639";
+}
+.vco-icon-video-v2:after {
+ content: "\e63a";
+}
+.vco-icon-dailymotion:after {
+ content: "\e63a";
+}
+.vco-icon-tumblr:after {
+ content: "\e63b";
+}
+.vco-icon-lastfm:after {
+ content: "\e63c";
+}
+.vco-icon-github:after {
+ content: "\e63d";
+}
+.vco-icon-goback:after {
+ content: "\e63e";
+}
+.vco-icon-doc-v2:after {
+ content: "\e63f";
+}
+.vco-icon-googledrive:after {
+ content: "\e640";
+}
+.vco-icon-facebook:after {
+ content: "\e641";
+}
+.vco-icon-flickr:after {
+ content: "\e642";
+}
+.vco-icon-dribbble:after {
+ content: "\e643";
+}
+.vco-icon-image:after {
+ content: "\e605";
+}
+.vco-icon-vimeo:after {
+ content: "\e606";
+}
+.vco-icon-instagram:after {
+ content: "\e644";
+}
+.vco-icon-pinterest:after {
+ content: "\e645";
+}
+.vco-icon-arrow-left:after {
+ content: "\e646";
+}
+.vco-icon-arrow-down:after {
+ content: "\e647";
+}
+.vco-icon-arrow-up:after {
+ content: "\e648";
+}
+.vco-icon-arrow-right:after {
+ content: "\e649";
+}
+.vco-icon-share:after {
+ content: "\e64a";
+}
+.vco-icon-blockquote:after {
+ content: "\e64b";
+}
+.vco-icon-evernote:after {
+ content: "\e64c";
+}
+.vco-icon-mappin:after {
+ content: "\e600";
+}
+.vco-icon-swipe-right:after {
+ content: "\e601";
+}
+.vco-icon-swipe-left:after {
+ content: "\e602";
+}
+.vco-icon-touch-spread:after {
+ content: "\e603";
+}
+.vco-icon-touch-pinch:after {
+ content: "\e604";
+}
+/* Disable Text selection when dragging
+================================================== */
+.vco-dragging {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+/* MenuBar
+================================================== */
+.vco-menubar {
+ position: absolute;
+ z-index: 11;
+ text-align: left;
+ overflow: hidden;
+ border-bottom: 1px solid #e6e6e6;
+ border-right: 1px solid #e6e6e6;
+ border-bottom-right-radius: 7px;
+ left: 0px;
+}
+.vco-menubar .vco-menubar-button:first-child {
+ border-left: 0;
+}
+/* Landscape
+================================================== */
+/* Color
+================================================== */
+/*
+.vco-sizebar.vco-sizebar-inverted {
+ border-bottom: 1px solid #FFF;
+ //background-color:#000;
+ color:#a5a5a5;
+ .vco-sizebar-button {
+ border-left: 1px solid darken(@color-background, 70);
+ //color:#a5a5a5;
+ }
+ .vco-sizebar-button:hover {
+ //background:@color-theme;
+ color:@color-background;
+ }
+}
+.vco-sizebar.vco-sizebar-inverted:before {
+ background-color:#000;
+ //.gradient-vertical (rgba(0,0,0,0.25), rgba(0,0,0,1));
+ //.translucent-background(rgb(0,0,0), .5);
+ border-top: 2px solid #000;
+ animation: invertToBlack 1s;
+ -webkit-animation:invertToBlack 1s;
+}
+*/
+@keyframes invertToBlack {
+ from {
+ background-color: #FFF;
+ }
+ to {
+ background-color: #000;
+ }
+}
+@-webkit-keyframes invertToBlack {
+ from {
+ background: #FFF;
+ }
+ to {
+ background: #000;
+ }
+}
+@keyframes invertToWhite {
+ from {
+ background-color: #000;
+ }
+ to {
+ background-color: #FFF;
+ }
+}
+@-webkit-keyframes invertToWhite {
+ from {
+ background: #000;
+ }
+ to {
+ background: #FFF;
+ }
+}
+/* MenuBar Button
+================================================== */
+.vco-menubar-button {
+ border-left: 1px solid #e6e6e6;
+ font-size: 14px;
+ padding: 6px 12px 6px 12px;
+ background-color: rgba(217, 217, 217, 0.9);
+ background-color: #FFF;
+ cursor: pointer;
+ font-weight: bold;
+ color: #737373;
+}
+.vco-menubar-button .vco-icon-arrow-up,
+.vco-menubar-button .vco-icon-arrow-down {
+ display: inline-block;
+ height: 14px;
+ overflow: hidden;
+ font-size: 20px;
+ position: relative;
+ top: -2px;
+}
+.vco-menubar-button:hover {
+ background: #c34528;
+ color: #FFF;
+}
+.vco-mobile .vco-menubar-button:hover {
+ background-color: rgba(217, 217, 217, 0.67);
+ color: #737373;
+}
+.vco-mobile .vco-menubar-button:active {
+ background: #c34528;
+ color: #FFF;
+}
+@keyframes invertToBlack {
+ from {
+ background-color: #FFF;
+ }
+ to {
+ background-color: #000;
+ }
+}
+@-webkit-keyframes invertToBlack {
+ from {
+ background: #FFF;
+ }
+ to {
+ background: #000;
+ }
+}
+@keyframes invertToWhite {
+ from {
+ background-color: #000;
+ }
+ to {
+ background-color: #FFF;
+ }
+}
+@-webkit-keyframes invertToWhite {
+ from {
+ background: #000;
+ }
+ to {
+ background: #FFF;
+ }
+}
+/* MESSAGE
+================================================== */
+.vco-message,
+.vco-message-full {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ display: table;
+ overflow: hidden;
+ top: 0px;
+ left: 0px;
+ z-index: 99;
+ margin: auto;
+ text-align: center;
+}
+.vco-message .vco-message-container,
+.vco-message-full .vco-message-container {
+ padding: 20px;
+ margin: 20px;
+ text-align: center;
+ vertical-align: middle;
+ display: table-cell;
+}
+.vco-message .vco-message-container .vco-message-content,
+.vco-message-full .vco-message-container .vco-message-content {
+ color: #666;
+ text-align: center;
+ font-size: 11px;
+ line-height: 13px;
+ text-transform: uppercase;
+ margin-top: 7.5px;
+ margin-bottom: 7.5px;
+ text-shadow: 1px 1px 1px #FFF;
+}
+.vco-message .vco-message-container .vco-loading-icon,
+.vco-message-full .vco-message-container .vco-loading-icon {
+ width: 30px;
+ height: 30px;
+ background-color: #666;
+ vertical-align: middle;
+ -webkit-box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1);
+ -moz-box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1);
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+ -webkit-animation: rotateplane 1.2s infinite ease-in-out;
+ animation: rotateplane 1.2s infinite ease-in-out;
+}
+@-webkit-keyframes rotateplane {
+ 0% {
+ -webkit-transform: perspective(120px);
+ }
+ 50% {
+ -webkit-transform: perspective(120px) rotateY(180deg);
+ }
+ 100% {
+ -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg);
+ }
+}
+@keyframes rotateplane {
+ 0% {
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ }
+ 50% {
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ }
+ 100% {
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ }
+}
+.vco-message-full {
+ background-color: hsla(0, 0%, 20%, 0.8);
+}
+.vco-message-full [class^="vco-icon-"],
+.vco-message-full [class*=" vco-icon-"] {
+ color: #FFF;
+ font-size: 72px;
+}
+.vco-message-full .vco-message-container .vco-message-content {
+ font-size: 22px;
+ line-height: 22px;
+ text-shadow: none;
+ color: #FFF;
+ text-transform: none;
+ font-weight: bold;
+}
+.vco-message-full .vco-message-container .vco-message-content .vco-button {
+ display: inline-block;
+ cursor: pointer;
+ background-color: #FFF;
+ color: #333;
+ padding: 10px;
+ margin-top: 10px;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+.vcoanimate {
+ -webkit-transform: translateZ(0);
+ -webkit-perspective: 1000;
+ -webkit-backface-visibility: hidden;
+}
+.vco-animate {
+ -webkit-transition: all 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -moz-transition: all 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition: all 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ transition: all 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -moz-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+}
+.vco-animate-opacity {
+ -webkit-transition: opacity 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -moz-transition: opacity 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition: opacity 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ transition: opacity 1000ms cubic-bezier(0.77, 0, 0.175, 1);
+ -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -moz-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+}
+/* SLIDE
+================================================== */
+.vco-slide {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding: 0px;
+ margin: 0px;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.vco-slide .vco-slide-calltoaction {
+ cursor: pointer;
+ font-weight: bold;
+ padding-top: 10px;
+ margin-bottom: 10px;
+ padding-bottom: 10px;
+}
+.vco-slide .vco-slide-calltoaction .vco-slide-calltoaction-button-text {
+ display: inline-block;
+ background-color: #c34528;
+ color: #FFF;
+ padding: 10px 15px 10px 15px;
+ border-radius: 7px;
+}
+.vco-slide .vco-slide-calltoaction:hover .vco-slide-calltoaction-button-text {
+ background-color: #842f1b;
+ color: #FFF;
+}
+.vco-slide .vco-slide-background {
+ background-color: #FFF;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ overflow: hidden;
+ display: none;
+ filter: alpha(opacity=50);
+ -khtml-opacity: 0.5;
+ -moz-opacity: 0.5;
+ opacity: 0.5;
+ background: no-repeat center center;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.vco-slide .vco-slide-scrollable-container {
+ display: table;
+ table-layout: fixed;
+ height: 100%;
+ z-index: 1;
+}
+.vco-slide .vco-slide-content-container {
+ display: table-cell;
+ vertical-align: middle;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ z-index: 3;
+}
+.vco-slide .vco-slide-content-container .vco-slide-content {
+ vertical-align: middle;
+ padding-left: 100px;
+ padding-right: 100px;
+ position: relative;
+ max-width: 100%;
+}
+.vco-slide .vco-slide-content-container .vco-slide-content .vco-media {
+ position: relative;
+ width: 100%;
+ min-width: 50%;
+ float: left;
+ margin-top: auto;
+ margin-bottom: auto;
+}
+.vco-slide .vco-slide-content-container .vco-slide-content .vco-text {
+ width: 50%;
+ max-width: 50%;
+ min-width: 120px;
+ padding: 0 20px 0 20px;
+ display: table-cell;
+ vertical-align: middle;
+ text-align: left;
+}
+.vco-slide .vco-slide-content-container .vco-slide-content .vco-text .vco-slide-calltoaction {
+ width: 100%;
+}
+/* Only Media (no text)
+================================================== */
+.vco-slide-media-only .vco-slide-content-container .vco-slide-content {
+ text-align: center;
+}
+.vco-slide-media-only .vco-slide-content-container .vco-slide-content .vco-media {
+ text-align: center;
+ position: relative;
+ width: 100%;
+ min-width: 50%;
+ max-width: 100%;
+ float: none;
+ margin-top: auto;
+ margin-bottom: auto;
+}
+.vco-slide-media-only .vco-slide-content-container .vco-slide-content .vco-text {
+ width: 100%;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+.vco-slide-media-only .vco-slide-content-container .vco-slide-content .vco-text h2 {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+/* Only Text (no media)
+================================================== */
+.vco-slide-text-only .vco-slide-content-container .vco-slide-content {
+ text-align: center;
+}
+.vco-slide-text-only .vco-slide-content-container .vco-slide-content .vco-text {
+ max-width: 80%;
+ width: 80%;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+/* Background
+================================================== */
+.vco-slide.vco-full-image-background,
+.vco-slide.vco-full-color-background {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-slide.vco-full-image-background p,
+.vco-slide.vco-full-color-background p,
+.vco-slide.vco-full-image-background h1,
+.vco-slide.vco-full-color-background h1,
+.vco-slide.vco-full-image-background h2,
+.vco-slide.vco-full-color-background h2,
+.vco-slide.vco-full-image-background h3,
+.vco-slide.vco-full-color-background h3,
+.vco-slide.vco-full-image-background h4,
+.vco-slide.vco-full-color-background h4,
+.vco-slide.vco-full-image-background h5,
+.vco-slide.vco-full-color-background h5,
+.vco-slide.vco-full-image-background h6,
+.vco-slide.vco-full-color-background h6 {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-slide.vco-full-image-background a,
+.vco-slide.vco-full-color-background a,
+.vco-slide.vco-full-image-background a:hover,
+.vco-slide.vco-full-color-background a:hover,
+.vco-slide.vco-full-image-background b,
+.vco-slide.vco-full-color-background b,
+.vco-slide.vco-full-image-background i,
+.vco-slide.vco-full-color-background i,
+.vco-slide.vco-full-image-background blockquote,
+.vco-slide.vco-full-color-background blockquote,
+.vco-slide.vco-full-image-background blockquote p,
+.vco-slide.vco-full-color-background blockquote p {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+ color: #ffffff;
+}
+.vco-slide.vco-full-image-background .vco-caption,
+.vco-slide.vco-full-color-background .vco-caption,
+.vco-slide.vco-full-image-background .vco-credit,
+.vco-slide.vco-full-color-background .vco-credit {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-slide.vco-full-image-background .vco-media-twitter blockquote,
+.vco-slide.vco-full-color-background .vco-media-twitter blockquote,
+.vco-slide.vco-full-image-background .vco-media-blockquote blockquote,
+.vco-slide.vco-full-color-background .vco-media-blockquote blockquote {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-slide.vco-full-image-background .vco-media-twitter blockquote p,
+.vco-slide.vco-full-color-background .vco-media-twitter blockquote p,
+.vco-slide.vco-full-image-background .vco-media-blockquote blockquote p,
+.vco-slide.vco-full-color-background .vco-media-blockquote blockquote p {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-slide.vco-full-image-background .vcard a,
+.vco-slide.vco-full-color-background .vcard a,
+.vco-slide.vco-full-image-background .vcard .nickname,
+.vco-slide.vco-full-color-background .vcard .nickname {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+/* Landscape
+================================================== */
+/* Full Image Background
+================================================== */
+.vco-slide.vco-full-image-background {
+ background: no-repeat center center;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ background-position: center 25%;
+ text-shadow: 1px 1px 2px #000;
+}
+.vco-slide.vco-full-image-background p,
+.vco-slide.vco-full-image-background h1,
+.vco-slide.vco-full-image-background h2,
+.vco-slide.vco-full-image-background h3,
+.vco-slide.vco-full-image-background h4,
+.vco-slide.vco-full-image-background h5,
+.vco-slide.vco-full-image-background h6 {
+ text-shadow: 1px 1px 2px #000;
+}
+.vco-slide.vco-full-image-background .vco-caption,
+.vco-slide.vco-full-image-background .vco-credit {
+ text-shadow: 1px 1px 2px #000;
+}
+.vco-slide.vco-full-image-background .vco-media-twitter blockquote,
+.vco-slide.vco-full-image-background .vco-media-blockquote blockquote {
+ text-shadow: 1px 1px 2px #000 !important;
+}
+.vco-slide.vco-full-image-background .vco-media-twitter blockquote p,
+.vco-slide.vco-full-image-background .vco-media-blockquote blockquote p {
+ text-shadow: 1px 1px 2px #000 !important;
+}
+/* Color Background
+================================================== */
+/* Text Background
+================================================== */
+.vco-slide.vco-text-background .vco-text .vco-text-content-container {
+ padding: 20px;
+ /* Fallback for web browsers that doesn't support RGBa */
+ background: #000000 transparent;
+ /* RGBa with 0.6 opacity */
+ background: rgba(0, 0, 0, 0.6);
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+.vco-slide.vco-text-background .vco-text .vco-text-content-container h2 {
+ margin-top: 5px;
+}
+/* Landscape
+================================================== */
+.vco-layout-landscape .vco-slide .vco-slide-content-container .vco-slide-content .vco-media {
+ display: block;
+ vertical-align: baseline;
+ height: auto;
+ margin-bottom: 20px;
+ max-height: 50%;
+}
+.vco-layout-landscape .vco-slide .vco-slide-content-container .vco-slide-content .vco-text {
+ display: block;
+ height: auto;
+ vertical-align: baseline;
+ width: 100%;
+ max-width: 100%;
+ min-width: 0;
+ float: none;
+ padding: 0;
+}
+.vco-skinny .vco-slide {
+ display: block;
+}
+.vco-skinny .vco-slide .vco-slide-content-container {
+ display: block;
+ position: static;
+ height: auto;
+ vertical-align: baseline;
+}
+.vco-skinny .vco-slide .vco-slide-content-container .vco-slide-content {
+ display: block;
+ position: static;
+ vertical-align: baseline;
+ height: auto;
+}
+.vco-skinny .vco-slide .vco-slide-content-container .vco-slide-content .vco-media {
+ position: static;
+ width: 100%;
+ height: auto;
+ float: none;
+ display: block;
+}
+.vco-skinny .vco-slide .vco-slide-content-container .vco-slide-content .vco-text {
+ display: block;
+ height: auto;
+ vertical-align: baseline;
+ position: static;
+ width: 100%;
+ max-width: 100%;
+ min-width: 0;
+ float: none;
+ padding: 0;
+}
+.vco-skinny .vco-slide .vco-slide-content-container .vco-slide-content .vco-text .vco-text-content-container {
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 10px;
+}
+.vco-mobile.vco-skinny .vco-slide-content-container .vco-slide-content .vco-media img,
+.vco-mobile.vco-skinny .vco-slide-content-container .vco-slide-content .vco-media embed,
+.vco-mobile.vco-skinny .vco-slide-content-container .vco-slide-content .vco-media object,
+.vco-mobile.vco-skinny .vco-slide-content-container .vco-slide-content .vco-media video,
+.vco-mobile.vco-skinny .vco-slide-content-container .vco-slide-content .vco-media iframe {
+ max-height: 225px;
+}
+/* SlideNav
+================================================== */
+/* NAVIGATION
+================================================== */
+.vco-slidenav-previous,
+.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 {
+ height: 200px;
+ width: 00px;
+ position: absolute;
+}
+.vco-slidenav-previous .vco-slidenav-title,
+.vco-slidenav-next .vco-slidenav-title,
+.vco-slidenav-previous .vco-slidenav-description,
+.vco-slidenav-next .vco-slidenav-description {
+ width: 100%;
+ -ms-word-break: break-all;
+ word-break: break-all;
+ /* Non standard for webkit */
+ word-break: break-word;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+ filter: alpha(opacity=15);
+ -khtml-opacity: 0.15;
+ -moz-opacity: 0.15;
+ opacity: 0.15;
+}
+.vco-slidenav-previous .vco-slidenav-title,
+.vco-slidenav-next .vco-slidenav-title {
+ margin-top: 10px;
+ font-size: 15px;
+ line-height: 15px;
+ font-size: 11px;
+ line-height: 11px;
+}
+.vco-slidenav-previous .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-next .vco-slidenav-content-container .vco-slidenav-title,
+.vco-slidenav-previous .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 {
+ 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-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-next .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 {
+ font-family: 'vco-icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-size: 32px;
+ margin-bottom: 5px;
+}
+.vco-slidenav-next:hover .vco-slidenav-title,
+.vco-slidenav-previous:hover .vco-slidenav-title,
+.vco-slidenav-next:hover .vco-slidenav-description,
+.vco-slidenav-previous:hover .vco-slidenav-description {
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-slidenav-next {
+ text-align: right;
+ margin-right: 10px;
+ right: 100px;
+}
+.vco-slidenav-next .vco-slidenav-icon {
+ margin-left: 76px;
+}
+.vco-slidenav-next .vco-slidenav-icon:before {
+ content: "\e64f";
+}
+.vco-slidenav-next:hover .vco-slidenav-icon {
+ margin-left: 80px;
+}
+.vco-slidenav-previous {
+ text-align: left;
+ margin-left: 10px;
+}
+.vco-slidenav-previous .vco-slidenav-icon {
+ margin-left: 0px;
+}
+.vco-slidenav-previous .vco-slidenav-icon:before {
+ content: "\e650";
+}
+.vco-slidenav-previous:hover .vco-slidenav-icon {
+ margin-left: -4px;
+}
+/* Skinny
+================================================== */
+.vco-skinny .vco-slidenav-next {
+ right: 32px;
+}
+.vco-skinny .vco-slidenav-next .vco-slidenav-icon {
+ margin-left: 8px;
+}
+.vco-skinny .vco-slidenav-next:hover .vco-slidenav-icon {
+ margin-left: 12px;
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-skinny .vco-slidenav-previous:hover .vco-slidenav-icon {
+ margin-left: -4px;
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-skinny .vco-slidenav-previous .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-previous .vco-slidenav-content-container .vco-slidenav-title,
+.vco-skinny .vco-slidenav-next .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 {
+ 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-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-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 {
+ color: #FFF;
+}
+.vco-skinny .vco-slidenav-previous .vco-slidenav-title,
+.vco-skinny .vco-slidenav-next .vco-slidenav-title,
+.vco-skinny .vco-slidenav-previous .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 {
+ filter: alpha(opacity=33);
+ -khtml-opacity: 0.33;
+ -moz-opacity: 0.33;
+ opacity: 0.33;
+}
+/* Mobile and Landscape
+================================================== */
+.vco-layout-landscape.vco-mobile .vco-slidenav-next:hover {
+ right: 70px;
+}
+.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 {
+ margin-left: 0px;
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-layout-landscape.vco-mobile .vco-slidenav-previous:hover .vco-slidenav-icon {
+ margin-left: 80px;
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-layout-landscape.vco-mobile .vco-slidenav-previous:active .vco-slidenav-icon {
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+ margin-left: -4px;
+}
+/* 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 {
+ 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 {
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+/* Mobile
+================================================== */
+.vco-mobile .vco-slidenav-previous,
+.vco-skinny.vco-mobile .vco-slidenav-previous,
+.vco-skinny.vco-layout-landscape.vco-mobile .vco-slidenav-previous,
+.vco-skinny.vco-layout-portrait.vco-mobile .vco-slidenav-previous,
+.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 {
+ 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 {
+ 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-next .vco-slidenav-title,
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .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 {
+ 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-next .vco-slidenav-description,
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-description {
+ display: none;
+}
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous {
+ left: -100%;
+ margin-left: 0px;
+}
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-icon:before {
+ border-bottom-right-radius: 7px;
+ border-top-right-radius: 7px;
+}
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous:hover .vco-slidenav-icon {
+ margin-left: -4px;
+}
+.vco-layout-landscape .vco-storyslider .vco-slidenav-next {
+ right: 130px;
+}
+.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-icon:before {
+ border-bottom-left-radius: 7px;
+ border-top-left-radius: 7px;
+}
+/* StorySlider
+================================================== */
+/* SLIDER CONTAINERS
+================================================== */
+.vco-storyslider {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+ position: relative;
+}
+.vco-storyslider img,
+.vco-storyslider embed,
+.vco-storyslider object,
+.vco-storyslider video,
+.vco-storyslider iframe {
+ max-width: 100%;
+ position: relative;
+}
+.vco-storyslider .vco-slider-background {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ pointer-events: none;
+}
+.vco-storyslider .vco-slider-touch-mask {
+ width: 100%;
+ height: 100%;
+ z-index: 25;
+ top: 0px;
+ left: 0px;
+ position: absolute;
+}
+.vco-storyslider .vco-slider-container-mask {
+ text-align: center;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ z-index: 5;
+}
+.vco-storyslider .vco-slider-container-mask .vco-slider-container {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ height: 100%;
+ text-align: center;
+}
+.vco-storyslider .vco-slider-container-mask .vco-slider-container .vco-slider-item-container {
+ width: 100%;
+ height: 100%;
+ display: table-cell;
+ vertical-align: middle;
+}
+/* Requires Variables.less
+================================================== */
+.vco-media {
+ width: 100%;
+ min-width: 50%;
+ height: 100%;
+ margin-top: auto;
+ margin-bottom: auto;
+ position: relative;
+}
+.vco-media .vco-message {
+ position: relative;
+}
+.vco-media .vco-media-content-container .vco-media-content {
+ position: relative;
+ *zoom: 1;
+}
+.vco-media .vco-media-content-container .vco-media-content:before,
+.vco-media .vco-media-content-container .vco-media-content:after {
+ display: table;
+ content: "";
+}
+.vco-media .vco-media-content-container .vco-media-content:after {
+ clear: both;
+}
+.vco-media .vco-media-content-container .vco-media-content .vco-media-loaderror p {
+ color: #d9d9d9;
+ text-align: center;
+}
+.vco-media .vco-media-content-container .vco-media-content .vco-media-loaderror p span {
+ color: #d9d9d9;
+}
+.vco-media .vco-media-content-container .vco-media-content .vco-media-loaderror [class^="vco-icon-"],
+.vco-media .vco-media-content-container .vco-media-content .vco-media-loaderror [class*=" vco-icon-"] {
+ font-size: 36px;
+ color: #d9d9d9;
+ text-align: center;
+}
+.vco-media .vco-media-content-container .vco-media-content img,
+.vco-media .vco-media-content-container .vco-media-content embed,
+.vco-media .vco-media-content-container .vco-media-content object,
+.vco-media .vco-media-content-container .vco-media-content video {
+ max-width: 100%;
+ max-height: 100%;
+}
+/* Media Shodow
+================================================== */
+.vco-media-shadow {
+ position: relative;
+ z-index: 1;
+ -webkit-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.5);
+ box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.5);
+}
+/*
+.vco-media-shadow:before, .vco-media-shadow:after {
+ z-index: -1;
+ position: absolute;
+ content: "";
+ bottom: 15px;
+ left: 10px;
+ width: 50%;
+ top: 80%;
+ max-width:300px;
+ background: #333;
+ .box-shadow(0 15px 10px #666);
+ .transform(rotate(-2deg));
+}
+.vco-media-shadow::after {
+ .transform(rotate(2deg));
+ right: 10px;
+ left: auto;
+}
+*/
+/* VCard
+================================================== */
+.vcard {
+ *zoom: 1;
+ margin-bottom: 15px;
+ margin-top: 10px;
+}
+.vcard:before,
+.vcard:after {
+ display: table;
+ content: "";
+}
+.vcard:after {
+ clear: both;
+}
+.vcard .twitter-date {
+ text-align: left;
+ font-size: 11px;
+}
+.vcard .author {
+ float: right;
+}
+.vcard a {
+ color: #333333;
+ text-decoration: none;
+}
+.vcard a:hover {
+ text-decoration: none;
+}
+.vcard a:hover .fn,
+.vcard a:hover .nickname {
+ color: #c34528;
+}
+.vcard .fn,
+.vcard .nickname {
+ padding-left: 42px;
+}
+.vcard .fn {
+ display: block;
+ font-weight: bold;
+}
+.vcard .nickname {
+ margin-top: 1px;
+ display: block;
+ color: #666666;
+}
+.vcard .avatar {
+ float: left;
+ display: block;
+ width: 32px;
+ height: 32px;
+}
+.vcard .avatar img {
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.vco-slide.vco-full-image-background a,
+.vco-slide.vco-full-color-background a,
+.vco-slide.vco-full-image-background .vcard a,
+.vco-slide.vco-full-color-background .vcard a {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+ color: #ffffff;
+}
+/* Credit
+================================================== */
+.vco-credit {
+ color: #999999;
+ text-align: right;
+ display: block;
+ margin: 0 auto;
+ margin-top: 6px;
+ font-size: 10px;
+ line-height: 13px;
+}
+/* Caption
+================================================== */
+.vco-caption {
+ text-align: left;
+ margin-right: auto;
+ margin-left: auto;
+ margin-top: 10px;
+ color: #666666;
+ font-size: 11px;
+ line-height: 14px;
+ text-rendering: optimizeLegibility;
+ word-wrap: break-word;
+}
+/* Full Image Background
+================================================== */
+.vco-full-image-background .vco-media-shadow:before,
+.vco-full-color-background .vco-media-shadow:before,
+.vco-full-image-background .vco-media-shadow:after,
+.vco-full-color-background .vco-media-shadow:after {
+ background: none;
+ -webkit-box-shadow: 0 0px 0px #000;
+ -moz-box-shadow: 0 0px 0px #000;
+ box-shadow: 0 0px 0px #000;
+}
+/* Mobile, iPhone and skinny
+================================================== */
+@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {
+ .vco-media {
+ width: 100%;
+ height: auto;
+ float: none;
+ display: block;
+ }
+}
+.vco-skinny .vco-media {
+ width: 100%;
+ height: auto;
+ float: none;
+ display: block;
+}
+.vco-skinny .vco-media .vco-media-content-container .vco-credit,
+.vco-skinny .vco-media .vco-media-content-container .vco-caption {
+ margin-top: 2px;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-size: 8px;
+}
+.vco-skinny .vco-media .vco-media-content-container .vco-credit {
+ margin-top: 0px;
+}
+/* Requires Variables.less
+================================================== */
+.vco-text {
+ width: 50%;
+ max-width: 50%;
+ min-width: 120px;
+ padding: 0 20px 0 20px;
+ display: table-cell;
+ display: block;
+ vertical-align: middle;
+ text-align: left;
+ text-shadow: none;
+ color: #737373;
+}
+.vco-text p {
+ color: #737373;
+}
+.vco-text h2.vco-headline-title,
+.vco-text h2.vco-headline {
+ margin-top: 0;
+ color: #000;
+}
+.vco-text .vco-headline-date,
+.vco-text h3.vco-headline-date {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 15px;
+ line-height: 15px;
+ font-weight: normal;
+ margin: 0 0 2px 0;
+ color: #b3b3b3;
+}
+.vco-text .vco-headline-date small,
+.vco-text h3.vco-headline-date small {
+ font-size: 15px;
+ line-height: 15px;
+ font-weight: normal;
+ color: #b3b3b3;
+}
+.vco-text .vco-text-date {
+ display: inline-block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: normal;
+ margin-top: 10px;
+ font-size: 12px;
+ color: #b3b3b3;
+}
+.vco-full-image-background .vco-text,
+.vco-full-color-background .vco-text,
+.vco-full-image-background .vco-text p,
+.vco-full-color-background .vco-text p {
+ color: #ababab !important;
+ text-shadow: 1px 1px 2px #000;
+}
+.vco-full-image-background .vco-text .vco-headline-date,
+.vco-full-color-background .vco-text .vco-headline-date,
+.vco-full-image-background .vco-text p .vco-headline-date,
+.vco-full-color-background .vco-text p .vco-headline-date,
+.vco-full-image-background .vco-text h3.vco-headline-date,
+.vco-full-color-background .vco-text h3.vco-headline-date,
+.vco-full-image-background .vco-text p h3.vco-headline-date,
+.vco-full-color-background .vco-text p h3.vco-headline-date {
+ color: #ababab !important;
+}
+.vco-full-image-background .vco-text .vco-headline-date small,
+.vco-full-color-background .vco-text .vco-headline-date small,
+.vco-full-image-background .vco-text p .vco-headline-date small,
+.vco-full-color-background .vco-text p .vco-headline-date small,
+.vco-full-image-background .vco-text h3.vco-headline-date small,
+.vco-full-color-background .vco-text h3.vco-headline-date small,
+.vco-full-image-background .vco-text p h3.vco-headline-date small,
+.vco-full-color-background .vco-text p h3.vco-headline-date small {
+ color: #ababab !important;
+}
+/* Skinny
+================================================== */
+.vco-skinny .vco-text {
+ width: 100%;
+ max-width: 100%;
+ min-width: auto;
+ float: none;
+ margin-top: 20px;
+}
+/* Mobile, iPhone
+================================================== */
+/* Mobile, iPhone and skinny
+================================================== */
+.vco-media .vco-media-image {
+ width: auto !important;
+}
+.vco-mobile.vco-skinny .vco-media .vco-media-image {
+ max-height: 250px !important;
+}
+.vco-media .vco-media-twitter {
+ text-align: left;
+ clear: both;
+}
+.vco-media .vco-media-twitter blockquote {
+ margin: 0;
+ margin-right: 15px;
+ font-size: 15px;
+ line-height: 21px;
+ color: #333;
+}
+.vco-media .vco-media-twitter blockquote p {
+ font-size: 36px;
+ line-height: 39px;
+ color: #000;
+}
+.vco-media .vco-media-twitter blockquote p:before {
+ display: none;
+}
+.vco-media .vco-media-twitter blockquote p:after {
+ display: none;
+}
+.vco-media .vco-media-twitter .vco-icon-twitter {
+ color: #55ACEE;
+}
+.vco-media .vco-media-twitter .vcard a:hover,
+.vco-media .vco-media-twitter .vcard a.vco-date:hover {
+ text-decoration: none;
+ color: #55ACEE;
+}
+.vco-media .vco-media-twitter .vcard a:hover .fn,
+.vco-media .vco-media-twitter .vcard a.vco-date:hover .fn,
+.vco-media .vco-media-twitter .vcard a:hover .nickname,
+.vco-media .vco-media-twitter .vcard a.vco-date:hover .nickname {
+ color: #55ACEE;
+}
+.vco-slide-media-only .vco-media .vco-media-twitter {
+ width: 80%;
+ margin-left: auto;
+ margin-right: auto;
+}
+.vco-mobile.vco-skinny .vco-media .vco-media-twitter blockquote p {
+ font-size: 15px;
+ line-height: 21px;
+}
+.vco-skinny .vco-media .vco-media-twitter {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.vco-skinny .vco-media .vco-media-twitter blockquote p {
+ font-size: 24px;
+ line-height: 26px;
+}
+.vco-media .vco-media-blockquote {
+ text-align: left;
+ clear: both;
+}
+.vco-media .vco-media-blockquote blockquote {
+ margin: 0;
+ margin-right: 15px;
+ text-align: left;
+}
+.vco-media .vco-media-blockquote blockquote p {
+ font-size: 36px;
+ line-height: 39px;
+}
+.vco-media .vco-media-blockquote blockquote cite {
+ font-size: 15px;
+ line-height: 21px;
+ color: #333;
+ text-align: right;
+}
+.vco-media .vco-media-blockquote blockquote p:before {
+ content: open-quote;
+ display: inline-block;
+ margin-right: 5px;
+}
+.vco-media .vco-media-blockquote blockquote p:after {
+ content: close-quote;
+ display: inline-block;
+ margin-left: 3px;
+}
+.vco-slide-media-only .vco-media .vco-media-blockquote {
+ width: 80%;
+ margin-left: auto;
+ margin-right: auto;
+}
+@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {
+ .vco-media .vco-media-blockquote blockquote p {
+ font-size: 24px;
+ line-height: 26px;
+ }
+}
+@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {
+ .vco-media .vco-media-blockquote blockquote p {
+ font-size: 15px;
+ line-height: 21px;
+ }
+}
+.vco-mobile.vco-skinny .vco-media .vco-media-instagram {
+ max-height: 250px !important;
+}
+.vco-media .vco-media-profile {
+ border-radius: 50%;
+}
+.vco-media .vco-media-iframe {
+ width: 100%;
+ height: 100%;
+}
+.vco-media .vco-media-iframe iframe {
+ width: 100%;
+ height: 100%;
+}
+.vco-media .vco-media-wikipedia {
+ text-align: left;
+ margin-left: auto;
+ margin-right: auto;
+ clear: both;
+}
+.vco-media .vco-media-wikipedia .wiki-source {
+ font-size: 13px;
+ line-height: 19px;
+ font-style: italic;
+}
+.vco-media .vco-media-wikipedia h4 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+.vco-media .vco-media-wikipedia h4 a {
+ color: #000;
+ text-decoration: none;
+}
+.vco-media .vco-media-wikipedia h4 a:hover {
+ text-decoration: underline;
+}
+.vco-media .vco-media-wikipedia p {
+ font-size: 13px;
+ line-height: 19px;
+}
+.vco-slide.vco-full-image-background .vco-media .vco-media-wikipedia,
+.vco-slide.vco-full-color-background .vco-media .vco-media-wikipedia {
+ padding: 20px;
+ /* Fallback for web browsers that doesn't support RGBa */
+ background: #000000 transparent;
+ /* RGBa with 0.6 opacity */
+ background: rgba(0, 0, 0, 0.6);
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+.vco-slide.vco-full-image-background .vco-media .vco-media-wikipedia h4 a,
+.vco-slide.vco-full-color-background .vco-media .vco-media-wikipedia h4 a {
+ color: #FFF !important;
+ text-shadow: 1px 1px 1px #000 !important;
+}
+.vco-mobile.vco-skinny .vco-media .vco-media-wikipedia {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+/* required styles */
+.leaflet-map-pane,
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-tile-pane,
+.leaflet-tile-container,
+.leaflet-overlay-pane,
+.leaflet-shadow-pane,
+.leaflet-marker-pane,
+.leaflet-popup-pane,
+.leaflet-overlay-pane svg,
+.leaflet-zoom-box,
+.leaflet-image-layer,
+.leaflet-layer {
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+.leaflet-container {
+ overflow: hidden;
+ -ms-touch-action: none;
+}
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-user-drag: none;
+}
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ display: block;
+}
+/* map is broken in FF if you have max-width: 100% on tiles */
+.leaflet-container img {
+ max-width: none !important;
+}
+/* stupid Android 2 doesn't understand "max-width: none" properly */
+.leaflet-container img.leaflet-image-layer {
+ max-width: 15000px !important;
+}
+.leaflet-tile {
+ filter: inherit;
+ visibility: hidden;
+}
+.leaflet-tile-loaded {
+ visibility: inherit;
+}
+.leaflet-zoom-box {
+ width: 0;
+ height: 0;
+}
+/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
+.leaflet-overlay-pane svg {
+ -moz-user-select: none;
+}
+.leaflet-tile-pane {
+ z-index: 2;
+}
+.leaflet-objects-pane {
+ z-index: 3;
+}
+.leaflet-overlay-pane {
+ z-index: 4;
+}
+.leaflet-shadow-pane {
+ z-index: 5;
+}
+.leaflet-marker-pane {
+ z-index: 6;
+}
+.leaflet-popup-pane {
+ z-index: 7;
+}
+.leaflet-vml-shape {
+ width: 1px;
+ height: 1px;
+}
+.lvml {
+ behavior: url(#default#VML);
+ display: inline-block;
+ position: absolute;
+}
+/* control positioning */
+.leaflet-control {
+ position: relative;
+ z-index: 7;
+ pointer-events: auto;
+}
+.leaflet-top,
+.leaflet-bottom {
+ position: absolute;
+ z-index: 1000;
+ pointer-events: none;
+}
+.leaflet-top {
+ top: 0;
+}
+.leaflet-right {
+ right: 0;
+}
+.leaflet-bottom {
+ bottom: 0;
+}
+.leaflet-left {
+ left: 0;
+}
+.leaflet-control {
+ float: left;
+ clear: both;
+}
+.leaflet-right .leaflet-control {
+ float: right;
+}
+.leaflet-top .leaflet-control {
+ margin-top: 10px;
+}
+.leaflet-bottom .leaflet-control {
+ margin-bottom: 10px;
+}
+.leaflet-left .leaflet-control {
+ margin-left: 10px;
+}
+.leaflet-right .leaflet-control {
+ margin-right: 10px;
+}
+/* zoom and fade animations */
+.leaflet-fade-anim .leaflet-tile,
+.leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ -o-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+.leaflet-fade-anim .leaflet-tile-loaded,
+.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+ opacity: 1;
+}
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+}
+.leaflet-zoom-anim .leaflet-tile,
+.leaflet-pan-anim .leaflet-tile,
+.leaflet-touching .leaflet-zoom-animated {
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none;
+}
+.leaflet-zoom-anim .leaflet-zoom-hide {
+ visibility: hidden;
+}
+/* cursors */
+.leaflet-clickable {
+ cursor: pointer;
+}
+.leaflet-container {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+}
+.leaflet-popup-pane,
+.leaflet-control {
+ cursor: auto;
+}
+.leaflet-dragging .leaflet-container,
+.leaflet-dragging .leaflet-clickable {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+}
+/* visual tweaks */
+.leaflet-container {
+ background: #ddd;
+ outline: 0;
+}
+.leaflet-container a {
+ color: #0078A8;
+}
+.leaflet-container a.leaflet-active {
+ outline: 2px solid orange;
+}
+.leaflet-zoom-box {
+ border: 2px dotted #38f;
+ background: rgba(255, 255, 255, 0.5);
+}
+/* general typography */
+.leaflet-container {
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+}
+/* general toolbar styles */
+.leaflet-bar {
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65);
+ border-radius: 4px;
+}
+.leaflet-bar a,
+.leaflet-bar a:hover {
+ background-color: #fff;
+ border-bottom: 1px solid #ccc;
+ width: 26px;
+ height: 26px;
+ line-height: 26px;
+ display: block;
+ text-align: center;
+ text-decoration: none;
+ color: black;
+}
+.leaflet-bar a,
+.leaflet-control-layers-toggle {
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ display: block;
+}
+.leaflet-bar a:hover {
+ background-color: #f4f4f4;
+}
+.leaflet-bar a:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.leaflet-bar a:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom: none;
+}
+.leaflet-bar a.leaflet-disabled {
+ cursor: default;
+ background-color: #f4f4f4;
+ color: #bbb;
+}
+.leaflet-touch .leaflet-bar a {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+}
+/* zoom control */
+.leaflet-control-zoom-in,
+.leaflet-control-zoom-out {
+ font: bold 18px 'Lucida Console', Monaco, monospace;
+ text-indent: 1px;
+}
+.leaflet-control-zoom-out {
+ font-size: 20px;
+}
+.leaflet-touch .leaflet-control-zoom-in {
+ font-size: 22px;
+}
+.leaflet-touch .leaflet-control-zoom-out {
+ font-size: 24px;
+}
+/* layers control */
+.leaflet-control-layers {
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
+ background: #fff;
+ border-radius: 5px;
+}
+.leaflet-control-layers-toggle {
+ background-image: url(../css/icons/layers.png);
+ width: 36px;
+ height: 36px;
+}
+.leaflet-retina .leaflet-control-layers-toggle {
+ background-image: url(../css/icons/layers-2x.png);
+ background-size: 26px 26px;
+}
+.leaflet-touch .leaflet-control-layers-toggle {
+ width: 44px;
+ height: 44px;
+}
+.leaflet-control-layers .leaflet-control-layers-list,
+.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
+ display: none;
+}
+.leaflet-control-layers-expanded .leaflet-control-layers-list {
+ display: block;
+ position: relative;
+}
+.leaflet-control-layers-expanded {
+ padding: 6px 10px 6px 6px;
+ color: #333;
+ background: #fff;
+}
+.leaflet-control-layers-selector {
+ margin-top: 2px;
+ position: relative;
+ top: 1px;
+}
+.leaflet-control-layers label {
+ display: block;
+}
+.leaflet-control-layers-separator {
+ height: 0;
+ border-top: 1px solid #ddd;
+ margin: 5px -10px 5px -6px;
+}
+/* attribution and scale controls */
+.leaflet-container .leaflet-control-attribution {
+ background: #fff;
+ background: rgba(255, 255, 255, 0.7);
+ margin: 0;
+}
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+ padding: 0 5px;
+ color: #333;
+}
+.leaflet-control-attribution a {
+ text-decoration: none;
+}
+.leaflet-control-attribution a:hover {
+ text-decoration: underline;
+}
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+ font-size: 11px;
+}
+.leaflet-left .leaflet-control-scale {
+ margin-left: 5px;
+}
+.leaflet-bottom .leaflet-control-scale {
+ margin-bottom: 5px;
+}
+.leaflet-control-scale-line {
+ border: 2px solid #777;
+ border-top: none;
+ line-height: 1.1;
+ padding: 2px 5px 1px;
+ font-size: 11px;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ background: #fff;
+ background: rgba(255, 255, 255, 0.5);
+}
+.leaflet-control-scale-line:not(:first-child) {
+ border-top: 2px solid #777;
+ border-bottom: none;
+ margin-top: -2px;
+}
+.leaflet-control-scale-line:not(:first-child):not(:last-child) {
+ border-bottom: 2px solid #777;
+}
+.leaflet-touch .leaflet-control-attribution,
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ box-shadow: none;
+}
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ border: 2px solid rgba(0, 0, 0, 0.2);
+ background-clip: padding-box;
+}
+/* popup */
+.leaflet-popup {
+ position: absolute;
+ text-align: center;
+}
+.leaflet-popup-content-wrapper {
+ padding: 1px;
+ text-align: left;
+ border-radius: 12px;
+}
+.leaflet-popup-content {
+ margin: 13px 19px;
+ line-height: 1.4;
+}
+.leaflet-popup-content p {
+ margin: 18px 0;
+}
+.leaflet-popup-tip-container {
+ margin: 0 auto;
+ width: 40px;
+ height: 20px;
+ position: relative;
+ overflow: hidden;
+}
+.leaflet-popup-tip {
+ width: 17px;
+ height: 17px;
+ padding: 1px;
+ margin: -10px auto 0;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+ background: white;
+ box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
+}
+.leaflet-container a.leaflet-popup-close-button {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 4px 4px 0 0;
+ text-align: center;
+ width: 18px;
+ height: 14px;
+ font: 16px/14px Tahoma, Verdana, sans-serif;
+ color: #c3c3c3;
+ text-decoration: none;
+ font-weight: bold;
+ background: transparent;
+}
+.leaflet-container a.leaflet-popup-close-button:hover {
+ color: #999;
+}
+.leaflet-popup-scrolled {
+ overflow: auto;
+ border-bottom: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+}
+.leaflet-oldie .leaflet-popup-content-wrapper {
+ zoom: 1;
+}
+.leaflet-oldie .leaflet-popup-tip {
+ width: 24px;
+ margin: 0 auto;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+}
+.leaflet-oldie .leaflet-popup-tip-container {
+ margin-top: -1px;
+}
+.leaflet-oldie .leaflet-control-zoom,
+.leaflet-oldie .leaflet-control-layers,
+.leaflet-oldie .leaflet-popup-content-wrapper,
+.leaflet-oldie .leaflet-popup-tip {
+ border: 1px solid #999;
+}
+/* div icon */
+.leaflet-div-icon {
+ background: #fff;
+ border: 1px solid #666;
+}
+.leaflet-vml-shape {
+ width: 1px;
+ height: 1px;
+}
+.lvml {
+ behavior: url(#default#VML);
+ display: inline-block;
+ position: absolute;
+}
+.leaflet-control {
+ display: inline;
+}
+.leaflet-popup-tip {
+ width: 21px;
+ _width: 27px;
+ margin: 0 auto;
+ _margin-top: -3px;
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
+}
+.leaflet-popup-tip-container {
+ margin-top: -1px;
+}
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+ border: 1px solid #999;
+}
+.leaflet-popup-content-wrapper {
+ zoom: 1;
+}
+.leaflet-control-zoom,
+.leaflet-control-layers {
+ border: 3px solid #999;
+}
+.leaflet-control-attribution,
+.leaflet-control-layers,
+.leaflet-control-scale-line {
+ background: white;
+}
+.leaflet-zoom-box {
+ filter: alpha(opacity=50);
+}
+.leaflet-control-attribution {
+ border-top: 1px solid #bbb;
+ border-left: 1px solid #bbb;
+}
+/* Requires Variables.less
+================================================== */
+.vco-map {
+ /*
+ .leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);
+ -moz-transition: -moz-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);
+ -o-transition: -o-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);
+ transition: transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);
+ }
+ */
+ /*
+ .leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 1s cubic-bezier(1, 0, 0, 1);
+ -moz-transition: -moz-transform 1s cubic-bezier(1, 0, 0, 1);
+ -o-transition: -o-transform 1s cubic-bezier(1, 0, 0, 1);
+ transition: transform 1s cubic-bezier(1, 0, 0, 1);
+ }
+ */
+ /*
+ .leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none;
+ }
+ */
+}
+.vco-map .leaflet-container .leaflet-control-attribution {
+ color: #999;
+ margin-bottom: 3px !important;
+}
+.vco-map .leaflet-container .leaflet-control-attribution a {
+ color: #666;
+}
+.vco-map .leaflet-container .leaflet-control-attribution .vco-knightlab-brand,
+.vco-map .leaflet-container .leaflet-control-attribution a.vco-knightlab-brand {
+ margin-left: 5px;
+ text-shadow: 0px 0px 1px #FFF, 0px 0px 1px #FFF, 0px 0px 5px #FFF;
+ font-size: 14px;
+ font-weight: bold;
+}
+.vco-map .leaflet-container .leaflet-control-attribution .vco-knightlab-brand span,
+.vco-map .leaflet-container .leaflet-control-attribution a.vco-knightlab-brand span {
+ color: #c34528;
+ display: inline-block;
+ transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ /* IE 9 */
+ -webkit-transform: rotate(45deg);
+ /* Opera, Chrome, and Safari */
+}
+.vco-map .leaflet-container .leaflet-control-attribution .vco-knightlab-brand:hover,
+.vco-map .leaflet-container .leaflet-control-attribution a.vco-knightlab-brand:hover {
+ text-decoration: none;
+ color: #dd735a;
+}
+.vco-map .leaflet-container img.leaflet-image-layer {
+ max-width: none !important;
+}
+.vco-map .leaflet-overlay-pane {
+ z-index: auto;
+}
+.vco-map .leaflet-overlay-pane .leaflet-image-layer {
+ z-index: -1;
+}
+.vco-map .leaflet-overlay-pane svg {
+ z-index: 4;
+}
+.vco-map .leaflet-fade-anim .leaflet-tile,
+.vco-map .leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.5s linear;
+ -moz-transition: opacity 0.5s linear;
+ -o-transition: opacity 0.5s linear;
+ transition: opacity 0.5s linear;
+}
+.vco-map .leaflet-fade-anim .leaflet-tile-loaded,
+.vco-map .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+ opacity: 1;
+}
+.vco-map .leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);
+ -moz-transition: -moz-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);
+ -o-transition: -o-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);
+ transition: transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);
+ -webkit-transform: translateZ(0);
+ -webkit-perspective: 1000;
+ -webkit-backface-visibility: hidden;
+}
+.vco-map.vco-map-touch-zoom .leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
+ -webkit-transform: translateZ(0);
+ -webkit-perspective: 1000;
+ -webkit-backface-visibility: hidden;
+}
+.vco-map .leaflet-bottom {
+ bottom: 0;
+}
+.vco-map .leaflet-right {
+ left: 0;
+ right: auto;
+}
+.vco-map .leaflet-container .leaflet-control-attribution {
+ background-color: transparent;
+ box-shadow: none;
+ margin: 0;
+ border: none;
+ font-size: 10px;
+}
+.vco-map .leaflet-container {
+ background-color: transparent;
+}
+.vco-map .leaflet-popup-content-wrapper {
+ display: none;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #b3b3b3;
+ -webkit-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
+}
+.vco-map .leaflet-popup-content-wrapper .leaflet-popup-content {
+ margin: 7px;
+}
+.vco-map .leaflet-popup-content-wrapper .leaflet-popup-content h4 {
+ margin: 0;
+ font-weight: normal;
+}
+.vco-map .leaflet-popup-tip-container {
+ margin: 0 auto;
+ width: 40px;
+ height: 20px;
+ position: relative;
+ overflow: hidden;
+ display: none;
+}
+.vco-map .leaflet-bar {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+/* Landscape
+================================================== */
+.vco-layout-landscape .vco-map .leaflet-bottom {
+ bottom: 0;
+}
+.vco-layout-landscape .vco-map .leaflet-right {
+ left: 0;
+ right: auto;
+}
+.vco-layout-landscape .vco-map .leaflet-top {
+ bottom: 0;
+ top: 28px;
+}
+.vco-layout-portrait .leaflet-bottom {
+ bottom: 0;
+ top: auto;
+}
+/* Mobile, iPhone and skinny
+================================================== */
+.vco-mobile.vco-skinny .leaflet-control-zoom,
+.vco-mobile.vco-skinny .leaflet-control-layers {
+ display: none;
+}
+.vco-mobile.vco-skinny .leaflet-container .leaflet-control-attribution {
+ font-size: 8px;
+}
+.vco-mobile.vco-skinny .leaflet-container .leaflet-control-attribution .vco-knightlab-brand,
+.vco-mobile.vco-skinny .leaflet-container .leaflet-control-attribution a.vco-knightlab-brand {
+ font-size: 8px;
+}
+.vco-skinny .leaflet-container .leaflet-control-attribution {
+ background-color: transparent;
+ box-shadow: none;
+ margin: 0;
+ border: none;
+ font-size: 8px;
+}
+.vco-skinny .leaflet-container .leaflet-control-attribution .vco-knightlab-brand,
+.vco-skinny .leaflet-container .leaflet-control-attribution a.vco-knightlab-brand {
+ font-size: 12px;
+}
+.vco-map .leaflet-container .leaflet-bottom .leaflet-control-minimap {
+ margin-left: 10px;
+ margin-bottom: 25px;
+}
+.vco-map .leaflet-container .leaflet-top .leaflet-control-minimap {
+ margin-left: 10px;
+ margin-top: 10px;
+}
+.vco-map .leaflet-container .leaflet-control-minimap {
+ border: solid #FFF 2px;
+ -webkit-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.3);
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ background-color: #b3b3b3;
+ transition: all 0.2s;
+ border: 2px solid #b3b3b3;
+}
+.vco-map .leaflet-container .leaflet-control-minimap a {
+ background-color: #b3b3b3;
+ z-index: 99999;
+ transition: all 0.2s;
+ border-radius: 3px 0px 0px 0px;
+}
+.vco-map .leaflet-container .leaflet-control-minimap a.minimized {
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.vco-map .leaflet-container .leaflet-control-minimap-toggle-display {
+ height: 19px;
+ width: 19px;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ border: 1px solid #b3b3b3;
+ background-color: #808080;
+}
+.vco-map .leaflet-container .leaflet-control-minimap-toggle-display:after {
+ font-family: 'vco-icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ color: #FFF;
+ font-size: 20px;
+ content: "\e647";
+}
+.vco-map .leaflet-container .mapbox-maplogo {
+ position: relative;
+ display: inline-block;
+ height: 20px;
+ width: 65px;
+ margin: 0 3px -5px 3px;
+ text-indent: -9999px;
+ z-index: 99999;
+ overflow: hidden;
+ background-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");
+ background-repeat: no-repeat;
+ background-position: 0 0 ;
+ background-size: 65px 20px;
+}
+/* Requires Variables.less
+================================================== */
+.vco-map {
+ /* Marker Media Icons
+ ================================================== */
+}
+.vco-map .vco-mapmarker,
+.vco-map .vco-mapmarker-active {
+ font-family: 'vco-icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ width: 38px !important;
+ height: 52px !important;
+ top: -46px;
+ left: -13px;
+}
+.vco-map .vco-mapmarker:before,
+.vco-map .vco-mapmarker-active:before {
+ content: "\e600";
+ font-size: 52px;
+ text-shadow: rgba(0, 0, 0, 0.66) 0px 2px 5px;
+}
+.vco-map .vco-mapmarker {
+ color: #a5a5a5;
+}
+.vco-map .vco-mapmarker-active {
+ color: #c34528;
+}
+.vco-map .vco-mapmarker-image-icon,
+.vco-map .vco-mapmarker-image-icon-active {
+ border: 2px solid #a5a5a5;
+ box-shadow: 2px 2px 2px #000;
+ opacity: 1;
+}
+.vco-map .vco-mapmarker-image-icon {
+ -webkit-filter: grayscale(100%);
+ -moz-filter: grayscale(100%);
+ filter: grayscale(100%);
+}
+.vco-map .vco-mapmarker-image-icon-active {
+ opacity: 1;
+ border: 4px solid #c34528;
+ -webkit-filter: grayscale(0);
+ -moz-filter: grayscale(0);
+ filter: grayscale(0);
+}
+.vco-map .vco-mapmarker-icon:after {
+ font-size: 24px;
+ color: #FFF;
+ text-align: center;
+ width: 38px;
+ height: 24px;
+ overflow: hidden;
+ display: block;
+ position: absolute;
+ top: 8px;
+ left: 0px;
+ filter: alpha(opacity=75);
+ -khtml-opacity: 0.75;
+ -moz-opacity: 0.75;
+ opacity: 0.75;
+}
+.vco-map .vco-mapmarker-active.vco-mapmarker-icon:after {
+ filter: alpha(opacity=100);
+ -khtml-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.vco-map .vco-icon-wikipedia:after {
+ font-size: 16px;
+ top: 12px;
+}
+.vco-map .vco-icon-image:after {
+ top: 6px;
+}
+.vco-map .vco-icon-vine:after,
+.vco-map .vco-icon-vimeo:after,
+.vco-map .vco-icon-twitter:after {
+ top: 8px;
+}
+/* Mobile, iPhone and skinny
+================================================== */
+/* Requires Variables.less
+================================================== */
+.vco-map .vco-mapimage-display:hover .vco-mapmarker,
+.vco-map .vco-mapimage-display:hover .vco-mapmarker-active {
+ display: block;
+}
+.vco-map .vco-mapimage-display .vco-mapmarker,
+.vco-map .vco-mapimage-display .vco-mapmarker-active {
+ display: none;
+}
+/* Mobile, iPhone and skinny
+================================================== */
+/* Requires Variables.less
+================================================== */
+.vco-map {
+ height: 100%;
+ overflow: hidden;
+ top: 0px;
+ background-color: #333;
+}
+.vco-map .vco-map-mask {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+.vco-map .vco-map-mask .vco-map-display {
+ width: 100%;
+ height: 100%;
+}
+/* Mobile, iPhone and skinny
+================================================== */
+.vco-storymap h2.vco-headline-title .vco-snapmap-instagram,
+.vco-storymap h2.vco-headline-title .vco-snapmap-flickr {
+ text-align: center;
+ display: block;
+ text-transform: none !important;
+}
+.vco-storymap h2.vco-headline-title .vco-snapmap-instagram a,
+.vco-storymap h2.vco-headline-title .vco-snapmap-flickr a {
+ color: #666666;
+}
+.vco-storymap .vco-media-instagram-likes {
+ display: inline-block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ margin-top: 10px;
+ font-size: 12px;
+ color: #666666;
+ /*
+ &:before {
+ content:'\2665';
+ margin-right:3px;
+ font-weight:normal;
+ font-size:14px;
+ }
+ */
+}
+.vco-storymap .vco-media-instagram-likes:after {
+ content: 'Likes';
+ margin-left: 3px;
+ color: #999;
+ font-weight: normal;
+ margin-right: 10px;
+}
+.vco-storymap .vco-snapmap-user-description,
+.vco-storymap .vco-snapmap-user-location {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ display: block;
+}
+.vco-storymap .vco-snapmap-instagram-text {
+ text-align: center;
+ display: none;
+}
+.vco-storymap .vco-snapmap-instagram-text a {
+ color: #000;
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-posts,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-followed_by,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-follows,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website a {
+ display: inline-block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ margin-top: 10px;
+ font-size: 12px;
+ margin-left: 20px;
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-posts:after,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-followed_by:after,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-follows:after,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website:after,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website a:after {
+ margin-left: 3px;
+ color: #999;
+ font-weight: normal;
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-posts:after {
+ content: 'Posts';
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-followed_by:after {
+ content: 'Followers';
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-follows:after {
+ content: 'Following';
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website a {
+ font-weight: normal;
+ display: block;
+ margin: 0;
+ color: #999;
+}
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website:after,
+.vco-storymap .vco-snapmap-instagram-text .vco-snapmap-instagram-website a:after {
+ margin-left: 0;
+ color: #999;
+ font-weight: normal;
+}
+.vco-storymap .vco-snapmap-user-location {
+ font-weight: bold;
+ font-size: 12px;
+ text-align: center;
+}
+.vco-storymap .vco-snapmap-flickr-views {
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ margin-top: 10px;
+ font-size: 12px;
+}
+.vco-storymap .vco-snapmap-flickr-views:after {
+ content: 'Views';
+ margin-left: 3px;
+ color: #999;
+ font-weight: normal;
+}
+/* StoryMap
+================================================== */
+.vco-storymap {
+ width: 100%;
+ height: 100%;
+ font-size: 16px;
+ line-height: normal;
+ overflow: hidden;
+ position: relative;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.vco-storymap *,
+.vco-storymap *::before,
+.vco-storymap *::after {
+ box-sizing: content-box;
+}
+/* Portrait
+================================================== */
+.vco-layout-portrait .vco-storyslider {
+ padding-top: 10px;
+ -webkit-box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.2);
+}
+/* Landscape
+================================================== */
+.vco-layout-landscape .vco-storyslider {
+ padding-top: 0px;
+ position: absolute;
+ width: 50%;
+ left: 50%;
+ overflow: visible;
+}
+.vco-layout-landscape .vco-storyslider .vco-slider-background {
+ margin-left: -20%;
+ width: 120%;
+ overflow: hidden;
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(255, 255, 255, 0.0001) 0%), color-stop(rgba(255, 255, 255, 0.85) 15%));
+ background-image: linear-gradient(to right, rgba(255, 255, 255, 0.0001) 0%, rgba(255, 255, 255, 0.85) 15%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#d9ffffff', GradientType=1);
+}
+.vco-layout-landscape .vco-storyslider .vco-slider-container-mask {
+ overflow: visible;
+}
+/* Default Fonts
+================================================== */
+/*
+.vco-storymap {
+ font-family:'Pontano Sans',sans-serif !important;
+}
+.vco-storymap {
+ h1, h2, h3, h4, h5, h6 {
+ font-family:'Bevan',serif !important;
+ font-weight: normal;
+ }
+}
+.vco-secondary-font {
+
+}
+*/
+/* Right to Left
+================================================== */
+.vco-rtl .vco-text-content,
+.vco-rtl .vco-text,
+.vco-rtl .vco-caption,
+.vco-rtl .vco-media-wikipedia,
+.vco-rtl .vco-headline,
+.vco-rtl .vco-media-blockquote {
+ text-align: right;
+}
+
+
+/*# sourceMappingURL=storymap.css.map*/
diff --git a/iMap2.json b/iMap2.json
new file mode 100644
index 0000000000000..ba2a4b15fcf94
--- /dev/null
+++ b/iMap2.json
@@ -0,0 +1,259 @@
+{"storymap": {
+ "slides": [
+ {
+ "type": "overview",
+ "text": {
+ "headline": "Candidates",
+ "text": "Te Arai - South
Te Arai - North
Cabot Citrus Farms - Barrens
Cabot St. Lucia
Barbuda Ocean Club
La Réserve Golf Links
7 Mile Beach
El Desafío
PGA Frisco - Fields Ranch East
McArthur West
Lost Rail
Landmand
Sand Valley - Lido
Pinehurst #10
Old Barnwell
Tree Farm
Wicker Point
Ban Rakat Club - Ballyshear
Terras da Comporta Dunas
"
+ }
+ },{
+ "text": {
+ "headline": "Te Arai - South",
+ "text": "Te Arai - South built by Coore Crenshaw in New Zealand opened in March 2023.
"
+ },
+ "location": {
+ "lat": -36.1967176,
+ "lon": 174.616897,
+ "zoom": 9
+ },
+ "media": {
+ "url": "https://tearai.com/golf/south-course/"
+ }
+ },{
+ "text": {
+ "headline": "Te Arai - North",
+ "text": "Te Arai - North built by Tom Doak with construction assistance by Angela Moser in New Zealand expected in November 2023.
"
+ },
+ "location": {
+ "lat": -36.1967176,
+ "lon": 174.616897,
+ "zoom": 9
+ },
+ "media": {
+ "url": "https://tearai.com/golf/north-course/"
+ }
+ },{
+ "text": {
+ "headline": "Cabot Citrus Farms - Barrens",
+ "text": "Cabot Barrens built by Kyle Franz in Florida and expected late 2024. Adjacent golf course Cabot Oaks built by Kyle Franze, Mike Nuzzo, Ran Morrissett. Cabot 21 short course and practice range will be designed by Mike Nuzzo.
"
+ },
+ "location": {
+ "lat": 28.6829807,
+ "lon": -82.4815757,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=hRDq0PHq4HE"
+ }
+ },{
+ "text": {
+ "headline": "Cabot St. Lucia",
+ "text": "Cabot St. Lucia built by Coore Crenshaw in St. Lucia expected in November 2023
"
+ },
+ "location": {
+ "lat": 14.074383,
+ "lon": -60.935679,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=FT1An-ycess"
+ }
+ },{
+ "text": {
+ "headline": "Terras da Comporta Dunas",
+ "text": "Terras da Comporta Dunas built by David Kidd in Portugal opens in May 2023
"
+ },
+ "location": {
+ "lat": 38.324931,
+ "lon": -8.785595,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=yFKLopBaevc"
+ }
+ },{
+ "text": {
+ "headline": "Barbuda Ocean Club",
+ "text": "Barbuda Ocean Club built by Tom Fazio under Discovery Land opened 2023
"
+ },
+ "location": {
+ "lat": 17.549588,
+ "lon": -61.765555,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://vimeo.com/716161120"
+ }
+ },{
+ "text": {
+ "headline": "La Réserve Golf Links",
+ "text": "La Réserve Golf Links built in Bel Ombre, Mauritius by Peter Matkovich with co-design credit to Louis Oosthuizen opened September 2022. La Reserve will be the new host venue for the DP World Tour’s AfrAsia Bank Mauritius Open.
"
+ },
+ "location": {
+ "lat": -20.10175,
+ "lon": 57.701072,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://heritagegolfclub.mu/golf/la-reserve-golf-links/"
+ }
+ },{
+ "text": {
+ "headline": "7 Mile Beach",
+ "text": "7 Mile Beach built by Clayton DeVries Pont in Hobart, Tasmania, Australia expected in December 2023
"
+ },
+ "location": {
+ "lat": -42.848042,
+ "lon": 147.479254,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://7milegolf.com.au/2023/01/10/progress-report-09-01-23/"
+ }
+ },{
+ "text": {
+ "headline": "El Desafío",
+ "text": "El Desafío in San Martin de los Andes, Argentina was built by Greg Norman with assistance from Matthew Dusenberry completing 9 holes in 2011. The Patagonia course is one of the few Western properties planted in fescue grass and was featured in https://www.nytimes.com/2020/09/11/realestate/golf-argentina-patagonia.html The New York Times. The back nine is currently under construction now with an anticipated opening in late 2024.
"
+ },
+ "location": {
+ "lat": -40.1258034,
+ "lon": -71.1854148,
+ "zoom": 5
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=O3IEXVlPJkQ"
+ }
+ },{
+ "text": {
+ "headline": "McArthur West",
+ "text": "McArthur West built by Coore Crenshaw in Florida, USA expected in December 2023
"
+ },
+ "location": {
+ "lat": 27.094252,
+ "lon": -80.169722,
+ "zoom": 9
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=vkOCIOJV__s"
+ }
+ },{
+ "text": {
+ "headline": "PGA Frisco - Fields Ranch East",
+ "text": "PGA Frisco - Fields Ranch East is built by Gil Hanse in Frisco, Texas and opening spring 2023. Adjacent golf course PGA Frisco - Fields Ranch West is built by Beau Welling.
"
+ },
+ "location": {
+ "lat": 33.2124296,
+ "lon": -96.8572536,
+ "zoom": 8
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=FXtltDZo3kg"
+ }
+ },{
+ "text": {
+ "headline": "Lost Rail",
+ "text": "Lost Rail built by Scott Hoffman and construction by Bill Kubly from Landscapes Unlimited in Nebraska, USA opened in September 2022
"
+ },
+ "location": {
+ "lat": 41.172158,
+ "lon": -96.282254,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=dHZZXSr74Nc"
+ }
+ },{
+ "text": {
+ "headline": "Landmand",
+ "text": "Landmand built by Rob Collins and Tad King in Nebraska, USA opened in August 2022. 2023 tee times are sold out. The 17th hole green is a modern interpretation of Alister Mackenzie's lost NLE Sitwell Park green.
"
+ },
+ "location": {
+ "lat": 42.3675785,
+ "lon": -96.5259281,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=8zEc4lsdLms"
+ }
+ },{
+ "text": {
+ "headline": "Sand Valley - Lido",
+ "text": "Sand Valley Lido built by Doak Schneider Slawnik in Wisconsin, USA open summer 2023
"
+ },
+ "location": {
+ "lat": 44.171728,
+ "lon": -89.857699,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=hq7Zl82hkFY"
+ }
+ },{
+ "text": {
+ "headline": "Pinehurst #10",
+ "text": "Pinehurst Resort's 10th course routed by Tom Doak, built by Angela Moser is expected to open in spring 2024. Rich LaBar leads site construction under firm LaBar Golf Renovations.
"
+ },
+ "location": {
+ "lat": 35.1467958,
+ "lon": -79.4512055,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=R-P7peWhNwM"
+ }
+ },{
+ "text": {
+ "headline": "Old Barnwell",
+ "text": "Old Barnwell built by Brian Schneider, Blake Conannt and MacCurrach construction in South Carolina, USA estimated opening October 2023
"
+ },
+ "location": {
+ "lat": 33.4569422,
+ "lon": -81.5602724,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://oldbarnwell.com/"
+ }
+ },{
+ "text": {
+ "headline": "Tree Farm",
+ "text": "Tree Farm built by Goalby Blair Doak in South Carolina, USA opened in March 2023
"
+ },
+ "location": {
+ "lat": 33.539347,
+ "lon": -81.746414,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://thefriedegg.com/zac-blair-the-buck-club-hires-tom-doak-kye-goalby-to-design-the-tree-farm/"
+ }
+ },{
+ "text": {
+ "headline": "Wicker Point",
+ "text": "Wicker Point Golf Club on Lake Martin in Alabama, USA designed by Coore Crenshaw with construction services provided by Landscapes Unlimited opens in September 2023
"
+ },
+ "location": {
+ "lat": 32.7947244,
+ "lon": -85.992651,
+ "zoom": 7
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=gqoTHpLyFcc"
+ }
+ },{
+ "text": {
+ "headline": "Ban Rakat Club - Ballyshear",
+ "text": "Ban Rakat Club - Ballyshear built by Hanse in Thailand opened in January 2022
"
+ },
+ "location": {
+ "lat": 13.609653,
+ "lon": 100.882831,
+ "zoom": 6
+ },
+ "media": {
+ "url": "https://www.youtube.com/watch?v=xR9IHesKJ5I"
+ }
+ }
+ ]
+ }
+}
diff --git a/images/Battle-Run-Golf-98-A-St.png b/images/Battle-Run-Golf-98-A-St.png
new file mode 100644
index 0000000000000..cb63cb4aebbc6
Binary files /dev/null and b/images/Battle-Run-Golf-98-A-St.png differ
diff --git a/images/Beddo-Kerrville.png b/images/Beddo-Kerrville.png
new file mode 100644
index 0000000000000..883c19eb3359f
Binary files /dev/null and b/images/Beddo-Kerrville.png differ
diff --git a/images/Blasi-Lakeside-Routing.png b/images/Blasi-Lakeside-Routing.png
new file mode 100644
index 0000000000000..67af425aac5a1
Binary files /dev/null and b/images/Blasi-Lakeside-Routing.png differ
diff --git a/images/Celebrity-Greens.jpg b/images/Celebrity-Greens.jpg
new file mode 100644
index 0000000000000..a590cd35985d9
Binary files /dev/null and b/images/Celebrity-Greens.jpg differ
diff --git a/images/Dhoho-Golf-Club-Indonesia-Hole-14.jpeg b/images/Dhoho-Golf-Club-Indonesia-Hole-14.jpeg
new file mode 100644
index 0000000000000..6814e64365050
Binary files /dev/null and b/images/Dhoho-Golf-Club-Indonesia-Hole-14.jpeg differ
diff --git a/images/Dhoho-Golf-Club-Indonesia-Hole-17.jpeg b/images/Dhoho-Golf-Club-Indonesia-Hole-17.jpeg
new file mode 100644
index 0000000000000..6814e64365050
Binary files /dev/null and b/images/Dhoho-Golf-Club-Indonesia-Hole-17.jpeg differ
diff --git a/images/Erbil.png b/images/Erbil.png
new file mode 100644
index 0000000000000..bf3585e3e176c
Binary files /dev/null and b/images/Erbil.png differ
diff --git a/images/Fairway-Hole-2.jpeg b/images/Fairway-Hole-2.jpeg
new file mode 100644
index 0000000000000..14a284bf9d322
Binary files /dev/null and b/images/Fairway-Hole-2.jpeg differ
diff --git a/images/Fairway-Hole-2.png b/images/Fairway-Hole-2.png
new file mode 100644
index 0000000000000..5ace8940c38fb
Binary files /dev/null and b/images/Fairway-Hole-2.png differ
diff --git a/images/Fairway.jpg b/images/Fairway.jpg
new file mode 100644
index 0000000000000..7a1cb21620016
Binary files /dev/null and b/images/Fairway.jpg differ
diff --git a/images/Hope.jpg b/images/Hope.jpg
new file mode 100644
index 0000000000000..905d6fbf57653
Binary files /dev/null and b/images/Hope.jpg differ
diff --git a/images/Olsson-Battle-Run.png b/images/Olsson-Battle-Run.png
new file mode 100644
index 0000000000000..a912b9e834af2
Binary files /dev/null and b/images/Olsson-Battle-Run.png differ
diff --git a/images/Scott-Schreiner-Municipal-Golf-Course-Masterplan.png b/images/Scott-Schreiner-Municipal-Golf-Course-Masterplan.png
new file mode 100644
index 0000000000000..cc6b77b289674
Binary files /dev/null and b/images/Scott-Schreiner-Municipal-Golf-Course-Masterplan.png differ
diff --git a/images/TGR-Design-Trout-National.png b/images/TGR-Design-Trout-National.png
new file mode 100644
index 0000000000000..4434f99703922
Binary files /dev/null and b/images/TGR-Design-Trout-National.png differ
diff --git a/images/summary.png b/images/summary.png
new file mode 100644
index 0000000000000..4a6eae3bac1ca
Binary files /dev/null and b/images/summary.png differ
diff --git a/incomplete.html b/incomplete.html
new file mode 100644
index 0000000000000..ba2894c916bfa
--- /dev/null
+++ b/incomplete.html
@@ -0,0 +1,21 @@
+---
+
+---
+
+
+
+ {% include header.html %}
+
+ Golf Course on Hold, Incomplete, NLE
+
+
+
+ On Hold, Incomplete, Pending Approval, NLE(No Longer Exists)
+ Return to active projects
+
+ {% include pastIncomplete.html %}
+
+ {% include bodyFooter.html %}
+
+ {% include footer.html %}
+
diff --git a/index.html b/index.html
index 5e0cb3ee5773d..178c7e61f80f6 100644
--- a/index.html
+++ b/index.html
@@ -1,18 +1,21 @@
---
-layout: default
----
-
-
- {% for post in site.posts %}
-
-
-
-
- {{ post.excerpt }}
-
+---
+
+
+
+ {% include headerIndex.html %}
+
+ New Golf Course - Golf Architecture - Routing Renovation Restoration
+
- Read More
-
- {% endfor %}
-
\ No newline at end of file
+
+
+ {% include Year.html %}
+
+
+
+ {% include bodyFooter.html %}
+
+ {% include footer.html %}
+
diff --git a/js/jquery-3.7.1.slim.min.js b/js/jquery-3.7.1.slim.min.js
new file mode 100644
index 0000000000000..35906b9293f7a
--- /dev/null
+++ b/js/jquery-3.7.1.slim.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},m=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||m).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),b=new RegExp(ge+"|>"),A=new RegExp(g),D=new RegExp("^"+t+"$"),N={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+d),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},L=/^(?:input|select|textarea|button)$/i,j=/^h\d$/i,O=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,P=/[+~]/,H=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=K(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{E.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){E={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(V(e),e=e||C,T)){if(11!==d&&(u=O.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return E.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return E.call(n,a),n}else{if(u[2])return E.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return E.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||p&&p.test(t))){if(c=t,f=e,1===d&&(b.test(t)||m.test(t))){(f=P.test(t)&&X(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=k)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+G(l[o]);c=l.join(",")}try{return E.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function B(e){return e[k]=!0,e}function F(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function $(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return B(function(o){return o=+o,B(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function X(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=C&&9===n.nodeType&&n.documentElement&&(r=(C=n).documentElement,T=!ce.isXMLDoc(C),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=C&&(t=C.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=F(function(e){return r.appendChild(e).id=ce.expando,!C.getElementsByName||!C.getElementsByName(ce.expando).length}),le.disconnectedMatch=F(function(e){return i.call(e,"*")}),le.scope=F(function(){return C.querySelectorAll(":scope")}),le.cssHas=F(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(x.filter.ID=function(e){var t=e.replace(H,q);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&T){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(H,q);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&T){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},x.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&T)return t.getElementsByClassName(e)},p=[],F(function(e){var t;r.appendChild(e).innerHTML=" ",e.querySelectorAll("[selected]").length||p.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+k+"-]").length||p.push("~="),e.querySelectorAll("a#"+k+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=C.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===C||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),C}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),T&&!h[t+" "]&&(!p||!p.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(H,q),e[3]=(e[3]||e[4]||e[5]||"").replace(H,q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return N.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&A.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(H,q).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||E,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:k.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:m,!0)),C.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=m.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,E=ce(m);var S=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;re=m.createDocumentFragment().appendChild(m.createElement("div")),(be=m.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),re.appendChild(be),le.checkClone=re.cloneNode(!0).cloneNode(!0).lastChild.checked,re.innerHTML="x ",le.noCloneChecked=!!re.cloneNode(!0).lastChild.defaultValue,re.innerHTML=" ",le.option=!!re.lastChild;var Te={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function Ee(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function ke(e,t){for(var n=0,r=e.length;n",""]);var Se=/<|?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Me(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ie(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function We(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n ",2===yt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(r)):t=m),o=!n&&[],(i=C.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||K})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Qe(le.pixelPosition,function(e,t){if(t)return t=Ve(e,n),$e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0hqdefault fallback
+ * - When doing this, apply referrerpolicy (https://github.com/ampproject/amphtml/pull/3940)
+ * TODO: Consider using webp if supported, falling back to jpg
+ */
+ if (!this.style.backgroundImage) {
+ this.style.backgroundImage = `url("https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg")`;
+ }
+
+ // Set up play button, and its visually hidden label
+ if (!playBtnEl) {
+ playBtnEl = document.createElement('button');
+ playBtnEl.type = 'button';
+ playBtnEl.classList.add('lty-playbtn');
+ this.append(playBtnEl);
+ }
+ if (!playBtnEl.textContent) {
+ const playBtnLabelEl = document.createElement('span');
+ playBtnLabelEl.className = 'lyt-visually-hidden';
+ playBtnLabelEl.textContent = this.playLabel;
+ playBtnEl.append(playBtnLabelEl);
+ }
+ playBtnEl.removeAttribute('href');
+
+ // On hover (or tap), warm up the TCP connections we're (likely) about to use.
+ this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});
+
+ // Once the user clicks, add the real iframe and drop our play button
+ // TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time
+ // We'd want to only do this for in-viewport or near-viewport ones: https://github.com/ampproject/amphtml/pull/5003
+ this.addEventListener('click', this.addIframe);
+
+ // Chrome & Edge desktop have no problem with the basic YouTube Embed with ?autoplay=1
+ // However Safari desktop and most/all mobile browsers do not successfully track the user gesture of clicking through the creation/loading of the iframe,
+ // so they don't autoplay automatically. Instead we must load an additional 2 sequential JS files (1KB + 165KB) (un-br) for the YT Player API
+ // TODO: Try loading the the YT API in parallel with our iframe and then attaching/playing it. #82
+ this.needsYTApiForAutoplay = navigator.vendor.includes('Apple') || navigator.userAgent.includes('Mobi');
+ }
+
+ /**
+ * Add a to the head
+ */
+ static addPrefetch(kind, url, as) {
+ const linkEl = document.createElement('link');
+ linkEl.rel = kind;
+ linkEl.href = url;
+ if (as) {
+ linkEl.as = as;
+ }
+ document.head.append(linkEl);
+ }
+
+ /**
+ * Begin pre-connecting to warm up the iframe load
+ * Since the embed's network requests load within its iframe,
+ * preload/prefetch'ing them outside the iframe will only cause double-downloads.
+ * So, the best we can do is warm up a few connections to origins that are in the critical path.
+ *
+ * Maybe ` ` would work, but it's unsupported: http://crbug.com/593267
+ * But TBH, I don't think it'll happen soon with Site Isolation and split caches adding serious complexity.
+ */
+ static warmConnections() {
+ if (LiteYTEmbed.preconnected) return;
+
+ // The iframe document and most of its subresources come right off youtube.com
+ LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');
+ // The botguard script is fetched off from google.com
+ LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');
+
+ // Not certain if these ad related domains are in the critical path. Could verify with domain-specific throttling.
+ LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');
+ LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');
+
+ LiteYTEmbed.preconnected = true;
+ }
+
+ fetchYTPlayerApi() {
+ if (window.YT || (window.YT && window.YT.Player)) return;
+
+ this.ytApiPromise = new Promise((res, rej) => {
+ var el = document.createElement('script');
+ el.src = 'https://www.youtube.com/iframe_api';
+ el.async = true;
+ el.onload = _ => {
+ YT.ready(res);
+ };
+ el.onerror = rej;
+ this.append(el);
+ });
+ }
+
+ async addYTPlayerIframe(params) {
+ this.fetchYTPlayerApi();
+ await this.ytApiPromise;
+
+ const videoPlaceholderEl = document.createElement('div')
+ this.append(videoPlaceholderEl);
+
+ const paramsObj = Object.fromEntries(params.entries());
+
+ new YT.Player(videoPlaceholderEl, {
+ width: '100%',
+ videoId: this.videoId,
+ playerVars: paramsObj,
+ events: {
+ 'onReady': event => {
+ event.target.playVideo();
+ }
+ }
+ });
+ }
+
+ async addIframe(){
+ if (this.classList.contains('lyt-activated')) return;
+ this.classList.add('lyt-activated');
+
+ const params = new URLSearchParams(this.getAttribute('params') || []);
+ params.append('autoplay', '1');
+ params.append('playsinline', '1');
+
+ if (this.needsYTApiForAutoplay) {
+ return this.addYTPlayerIframe(params);
+ }
+
+ const iframeEl = document.createElement('iframe');
+ iframeEl.width = 560;
+ iframeEl.height = 315;
+ // No encoding necessary as [title] is safe. https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#:~:text=Safe%20HTML%20Attributes%20include
+ iframeEl.title = this.playLabel;
+ iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
+ iframeEl.allowFullscreen = true;
+ // AFAIK, the encoding here isn't necessary for XSS, but we'll do it only because this is a URL
+ // https://stackoverflow.com/q/64959723/89484
+ iframeEl.src = `https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${params.toString()}`;
+ this.append(iframeEl);
+
+ // Set focus for a11y
+ iframeEl.focus();
+ }
+}
+// Register custom element
+customElements.define('lite-youtube', LiteYTEmbed);
diff --git a/privacy.htm b/privacy.htm
new file mode 100644
index 0000000000000..9f37bf62498a8
--- /dev/null
+++ b/privacy.htm
@@ -0,0 +1,69 @@
+---
+
+---
+
+
+
+ Fescue - Privacy Policy
+ {% include header.html %}
+
+
+
+
+
+
+
+
Fescue - Privacy Policy
+
+
+
+
+Privacy Policy
+Last Updated: December 16, 2023
+
+Who we are
+Our website address is: https://fescue.github.com. Privacy information is controlled by Thomas Brown/Paul Rudovsky.
+
+What personal data we collect and why we collect it
+
+Cookies
+Embedded content from other websites
+Articles on this site may include embedded content (e.g. youtube, pinterest, wordpress.org, etc.). Embedded content from other websites executes in the exact same way as if the visitor has visited that website. These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
+
+Analytics
+We use Google analytics and Bing Webmaster Tools from Microsoft to record information about the pages a user has seen, for example the URL of the page, time of day, device used, etc. The information that we collect is anonymized and sent to Google Analytics/Bing Webmaster Tools from Microsoft for analysis.
+Google Analytics/Bing Webmaster Tools from Microsoft also collects Internet Protocol (IP) addresses to provide and protect the security of the service, and to give website owners a sense of which country, state, or city in the world their users come from (also known as “IP geolocation”).
+Google Analytics/Bing Webmaster Tools from Microsoft uses first-party cookies to report on visitor interactions on this website. Users may disable cookies or delete any individual cookie.
+
+Who we share your data with
+We will never sell, rent, or lease your Personal Data to a third party.
+
+How long we retain your data
+If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
+Google Analytics/Bing Webmaster Tools from Microsoft data is retained indefinitely. Contact forms and comments cookies are held for one year.
+
+USERS UNDER 13 YEARS OF AGE
+Our Services are not directed to and we do not knowingly collect Personal Data from children under the age of 13.
+
+Protection of Personal Data
+We use reasonable and appropriate physical, electronic, and administrative safeguards to protect personal data from loss, misuse and unauthorized access, disclosure, alteration and destruction, taking into account the nature of the Personal Data and risks involved in processing that information.
+
+Changes to this Privacy Policy
+Fescue may change this Privacy Policy at any time. The most recent version of the Privacy Policy is indicated by the “Last Updated” date at the top of the Privacy Policy. All changes are effective immediately upon posting. Please review this Privacy Policy frequently to stay updated on changes that may affect you. Your continued use of this website signifies your continuing consent to be bound by this Privacy Policy.
+
+
+
+
+
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000000000..478aab512492a
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,6 @@
+User-agent: *
+Disallow: /short
+Disallow: /short/
+Disallow: /about
+Disallow: /about/
+Disallow: /Cayo-Largo/
diff --git a/s.js b/s.js
new file mode 100644
index 0000000000000..8f2bb1f7420f1
--- /dev/null
+++ b/s.js
@@ -0,0 +1,7878 @@
+var KLStoryMap;
+(() => {
+ var t = {
+ 243: (t, e, i) => {
+ var o, n;
+ ! function (s, a, r) {
+ var h, l, c = s.L,
+ d = {};
+ d.version = "0.7.7", "object" == typeof t.exports ? t.exports = d : (n = "function" == typeof (o = d) ? o.call(e, i, e, t) : o) === r || (t.exports = n), d.noConflict = function () {
+ return s.L = c, this
+ }, s.L = d, d.Util = {
+ extend: function (t) {
+ var e, i, o, n, s = Array.prototype.slice.call(arguments, 1);
+ for (i = 0, o = s.length; i < o; i++)
+ for (e in n = s[i] || {}) n.hasOwnProperty(e) && (t[e] = n[e]);
+ return t
+ },
+ bind: function (t, e) {
+ var i = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : null;
+ return function () {
+ return t.apply(e, i || arguments)
+ }
+ },
+ stamp: (h = 0, l = "_leaflet_id", function (t) {
+ return t[l] = t[l] || ++h, t[l]
+ }),
+ invokeEach: function (t, e, i) {
+ var o, n;
+ if ("object" == typeof t) {
+ for (o in n = Array.prototype.slice.call(arguments, 3), t) e.apply(i, [o, t[o]].concat(n));
+ return !0
+ }
+ return !1
+ },
+ limitExecByInterval: function (t, e, i) {
+ var o, n;
+ return function s() {
+ var a = arguments;
+ o ? n = !0 : (o = !0, setTimeout((function () {
+ o = !1, n && (s.apply(i, a), n = !1)
+ }), e), t.apply(i, a))
+ }
+ },
+ falseFn: function () {
+ return !1
+ },
+ formatNum: function (t, e) {
+ var i = Math.pow(10, e || 5);
+ return Math.round(t * i) / i
+ },
+ trim: function (t) {
+ return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
+ },
+ splitWords: function (t) {
+ return d.Util.trim(t).split(/\s+/)
+ },
+ setOptions: function (t, e) {
+ return t.options = d.extend({}, t.options, e), t.options
+ },
+ getParamString: function (t, e, i) {
+ var o = [];
+ for (var n in t) o.push(encodeURIComponent(i ? n.toUpperCase() : n) + "=" + encodeURIComponent(t[n]));
+ return (e && -1 !== e.indexOf("?") ? "&" : "?") + o.join("&")
+ },
+ template: function (t, e) {
+ return t.replace(/\{ *([\w_]+) *\}/g, (function (t, i) {
+ var o = e[i];
+ if (o === r) throw new Error("No value provided for variable " + t);
+ return "function" == typeof o && (o = o(e)), o
+ }))
+ },
+ isArray: Array.isArray || function (t) {
+ return "[object Array]" === Object.prototype.toString.call(t)
+ },
+ emptyImageUrl: "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
+ },
+ function () {
+ function t(t) {
+ var e, i, o = ["webkit", "moz", "o", "ms"];
+ for (e = 0; e < o.length && !i; e++) i = s[o[e] + t];
+ return i
+ }
+ var e = 0;
+
+ function i(t) {
+ var i = +new Date,
+ o = Math.max(0, 16 - (i - e));
+ return e = i + o, s.setTimeout(t, o)
+ }
+ var o = s.requestAnimationFrame || t("RequestAnimationFrame") || i,
+ n = s.cancelAnimationFrame || t("CancelAnimationFrame") || t("CancelRequestAnimationFrame") || function (t) {
+ s.clearTimeout(t)
+ };
+ d.Util.requestAnimFrame = function (t, e, n, a) {
+ if (t = d.bind(t, e), !n || o !== i) return o.call(s, t, a);
+ t()
+ }, d.Util.cancelAnimFrame = function (t) {
+ t && n.call(s, t)
+ }
+ }(), d.extend = d.Util.extend, d.bind = d.Util.bind, d.stamp = d.Util.stamp, d.setOptions = d.Util.setOptions, d.Class = function () {}, d.Class.extend = function (t) {
+ var e = function () {
+ this.initialize && this.initialize.apply(this, arguments), this._initHooks && this.callInitHooks()
+ },
+ i = function () {};
+ i.prototype = this.prototype;
+ var o = new i;
+ for (var n in o.constructor = e, e.prototype = o, this) this.hasOwnProperty(n) && "prototype" !== n && (e[n] = this[n]);
+ t.statics && (d.extend(e, t.statics), delete t.statics), t.includes && (d.Util.extend.apply(null, [o].concat(t.includes)), delete t.includes), t.options && o.options && (t.options = d.extend({}, o.options, t.options)), d.extend(o, t), o._initHooks = [];
+ var s = this;
+ return e.__super__ = s.prototype, o.callInitHooks = function () {
+ if (!this._initHooksCalled) {
+ s.prototype.callInitHooks && s.prototype.callInitHooks.call(this), this._initHooksCalled = !0;
+ for (var t = 0, e = o._initHooks.length; t < e; t++) o._initHooks[t].call(this)
+ }
+ }, e
+ }, d.Class.include = function (t) {
+ d.extend(this.prototype, t)
+ }, d.Class.mergeOptions = function (t) {
+ d.extend(this.prototype.options, t)
+ }, d.Class.addInitHook = function (t) {
+ var e = Array.prototype.slice.call(arguments, 1),
+ i = "function" == typeof t ? t : function () {
+ this[t].apply(this, e)
+ };
+ this.prototype._initHooks = this.prototype._initHooks || [], this.prototype._initHooks.push(i)
+ };
+ var p, _, u, m, g, f, v, y, w, b, L, x, M, k, P, T, D, S, C, E, O, z, B, A = "_leaflet_events";
+ d.Mixin = {}, d.Mixin.Events = {
+ addEventListener: function (t, e, i) {
+ if (d.Util.invokeEach(t, this.addEventListener, this, e, i)) return this;
+ var o, n, s, a, r, h, l, c = this[A] = this[A] || {},
+ p = i && i !== this && d.stamp(i);
+ for (o = 0, n = (t = d.Util.splitWords(t)).length; o < n; o++) s = {
+ action: e,
+ context: i || this
+ }, a = t[o], p ? (h = (r = a + "_idx") + "_len", (l = c[r] = c[r] || {})[p] || (l[p] = [], c[h] = (c[h] || 0) + 1), l[p].push(s)) : (c[a] = c[a] || [], c[a].push(s));
+ return this
+ },
+ hasEventListeners: function (t) {
+ var e = this[A];
+ return !!e && (t in e && e[t].length > 0 || t + "_idx" in e && e[t + "_idx_len"] > 0)
+ },
+ removeEventListener: function (t, e, i) {
+ if (!this[A]) return this;
+ if (!t) return this.clearAllEventListeners();
+ if (d.Util.invokeEach(t, this.removeEventListener, this, e, i)) return this;
+ var o, n, s, a, r, h, l, c, p = this[A],
+ _ = i && i !== this && d.stamp(i);
+ for (o = 0, n = (t = d.Util.splitWords(t)).length; o < n; o++)
+ if (l = (h = (s = t[o]) + "_idx") + "_len", c = p[h], e) {
+ if (a = _ && c ? c[_] : p[s]) {
+ for (r = a.length - 1; r >= 0; r--) a[r].action !== e || i && a[r].context !== i || (a.splice(r, 1)[0].action = d.Util.falseFn);
+ i && c && 0 === a.length && (delete c[_], p[l]--)
+ }
+ } else delete p[s], delete p[h], delete p[l];
+ return this
+ },
+ clearAllEventListeners: function () {
+ return delete this[A], this
+ },
+ fireEvent: function (t, e) {
+ if (!this.hasEventListeners(t)) return this;
+ var i, o, n, s, a, r = d.Util.extend({}, e, {
+ type: t,
+ target: this
+ }),
+ h = this[A];
+ if (h[t])
+ for (o = 0, n = (i = h[t].slice()).length; o < n; o++) i[o].action.call(i[o].context, r);
+ for (a in s = h[t + "_idx"])
+ if (i = s[a].slice())
+ for (o = 0, n = i.length; o < n; o++) i[o].action.call(i[o].context, r);
+ return this
+ },
+ addOneTimeEventListener: function (t, e, i) {
+ if (d.Util.invokeEach(t, this.addOneTimeEventListener, this, e, i)) return this;
+ var o = d.bind((function () {
+ this.removeEventListener(t, e, i).removeEventListener(t, o, i)
+ }), this);
+ return this.addEventListener(t, e, i).addEventListener(t, o, i)
+ }
+ }, d.Mixin.Events.on = d.Mixin.Events.addEventListener, d.Mixin.Events.off = d.Mixin.Events.removeEventListener, d.Mixin.Events.once = d.Mixin.Events.addOneTimeEventListener, d.Mixin.Events.fire = d.Mixin.Events.fireEvent, _ = (p = "ActiveXObject" in s) && !a.addEventListener, u = navigator.userAgent.toLowerCase(), m = -1 !== u.indexOf("webkit"), g = -1 !== u.indexOf("chrome"), f = -1 !== u.indexOf("phantom"), v = -1 !== u.indexOf("android"), y = -1 !== u.search("android [23]"), w = -1 !== u.indexOf("gecko"), b = "undefined" != typeof orientation, L = !s.PointerEvent && s.MSPointerEvent, x = s.PointerEvent && s.navigator.pointerEnabled || L, M = "devicePixelRatio" in s && s.devicePixelRatio > 1 || "matchMedia" in s && s.matchMedia("(min-resolution:144dpi)") && s.matchMedia("(min-resolution:144dpi)").matches, k = a.documentElement, P = p && "transition" in k.style, T = "WebKitCSSMatrix" in s && "m11" in new s.WebKitCSSMatrix && !y, D = "MozPerspective" in k.style, S = "OTransition" in k.style, C = !s.L_DISABLE_3D && (P || T || D || S) && !f, E = !s.L_NO_TOUCH && !f && (x || "ontouchstart" in s || s.DocumentTouch && a instanceof s.DocumentTouch), d.Browser = {
+ ie: p,
+ ielt9: _,
+ webkit: m,
+ gecko: w && !m && !s.opera && !p,
+ android: v,
+ android23: y,
+ chrome: g,
+ ie3d: P,
+ webkit3d: T,
+ gecko3d: D,
+ opera3d: S,
+ any3d: C,
+ mobile: b,
+ mobileWebkit: b && m,
+ mobileWebkit3d: b && T,
+ mobileOpera: b && s.opera,
+ touch: E,
+ msPointer: L,
+ pointer: x,
+ retina: M
+ }, d.Point = function (t, e, i) {
+ this.x = i ? Math.round(t) : t, this.y = i ? Math.round(e) : e
+ }, d.Point.prototype = {
+ clone: function () {
+ return new d.Point(this.x, this.y)
+ },
+ add: function (t) {
+ return this.clone()._add(d.point(t))
+ },
+ _add: function (t) {
+ return this.x += t.x, this.y += t.y, this
+ },
+ subtract: function (t) {
+ return this.clone()._subtract(d.point(t))
+ },
+ _subtract: function (t) {
+ return this.x -= t.x, this.y -= t.y, this
+ },
+ divideBy: function (t) {
+ return this.clone()._divideBy(t)
+ },
+ _divideBy: function (t) {
+ return this.x /= t, this.y /= t, this
+ },
+ multiplyBy: function (t) {
+ return this.clone()._multiplyBy(t)
+ },
+ _multiplyBy: function (t) {
+ return this.x *= t, this.y *= t, this
+ },
+ round: function () {
+ return this.clone()._round()
+ },
+ _round: function () {
+ return this.x = Math.round(this.x), this.y = Math.round(this.y), this
+ },
+ floor: function () {
+ return this.clone()._floor()
+ },
+ _floor: function () {
+ return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this
+ },
+ distanceTo: function (t) {
+ var e = (t = d.point(t)).x - this.x,
+ i = t.y - this.y;
+ return Math.sqrt(e * e + i * i)
+ },
+ equals: function (t) {
+ return (t = d.point(t)).x === this.x && t.y === this.y
+ },
+ contains: function (t) {
+ return t = d.point(t), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y)
+ },
+ toString: function () {
+ return "Point(" + d.Util.formatNum(this.x) + ", " + d.Util.formatNum(this.y) + ")"
+ }
+ }, d.point = function (t, e, i) {
+ return t instanceof d.Point ? t : d.Util.isArray(t) ? new d.Point(t[0], t[1]) : t === r || null === t ? t : new d.Point(t, e, i)
+ }, d.Bounds = function (t, e) {
+ if (t)
+ for (var i = e ? [t, e] : t, o = 0, n = i.length; o < n; o++) this.extend(i[o])
+ }, d.Bounds.prototype = {
+ extend: function (t) {
+ return t = d.point(t), this.min || this.max ? (this.min.x = Math.min(t.x, this.min.x), this.max.x = Math.max(t.x, this.max.x), this.min.y = Math.min(t.y, this.min.y), this.max.y = Math.max(t.y, this.max.y)) : (this.min = t.clone(), this.max = t.clone()), this
+ },
+ getCenter: function (t) {
+ return new d.Point((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t)
+ },
+ getBottomLeft: function () {
+ return new d.Point(this.min.x, this.max.y)
+ },
+ getTopRight: function () {
+ return new d.Point(this.max.x, this.min.y)
+ },
+ getSize: function () {
+ return this.max.subtract(this.min)
+ },
+ contains: function (t) {
+ var e, i;
+ return (t = "number" == typeof t[0] || t instanceof d.Point ? d.point(t) : d.bounds(t)) instanceof d.Bounds ? (e = t.min, i = t.max) : e = i = t, e.x >= this.min.x && i.x <= this.max.x && e.y >= this.min.y && i.y <= this.max.y
+ },
+ intersects: function (t) {
+ t = d.bounds(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
+ },
+ isValid: function () {
+ return !(!this.min || !this.max)
+ }
+ }, d.bounds = function (t, e) {
+ return !t || t instanceof d.Bounds ? t : new d.Bounds(t, e)
+ }, d.Transformation = function (t, e, i, o) {
+ this._a = t, this._b = e, this._c = i, this._d = o
+ }, d.Transformation.prototype = {
+ transform: function (t, e) {
+ return this._transform(t.clone(), e)
+ },
+ _transform: function (t, e) {
+ return e = e || 1, t.x = e * (this._a * t.x + this._b), t.y = e * (this._c * t.y + this._d), t
+ },
+ untransform: function (t, e) {
+ return e = e || 1, new d.Point((t.x / e - this._b) / this._a, (t.y / e - this._d) / this._c)
+ }
+ }, d.DomUtil = {
+ get: function (t) {
+ return "string" == typeof t ? a.getElementById(t) : t
+ },
+ getStyle: function (t, e) {
+ var i = t.style[e];
+ if (!i && t.currentStyle && (i = t.currentStyle[e]), (!i || "auto" === i) && a.defaultView) {
+ var o = a.defaultView.getComputedStyle(t, null);
+ i = o ? o[e] : null
+ }
+ return "auto" === i ? null : i
+ },
+ getViewportOffset: function (t) {
+ var e, i = 0,
+ o = 0,
+ n = t,
+ s = a.body,
+ r = a.documentElement;
+ do {
+ if (i += n.offsetTop || 0, o += n.offsetLeft || 0, i += parseInt(d.DomUtil.getStyle(n, "borderTopWidth"), 10) || 0, o += parseInt(d.DomUtil.getStyle(n, "borderLeftWidth"), 10) || 0, e = d.DomUtil.getStyle(n, "position"), n.offsetParent === s && "absolute" === e) break;
+ if ("fixed" === e) {
+ i += s.scrollTop || r.scrollTop || 0, o += s.scrollLeft || r.scrollLeft || 0;
+ break
+ }
+ if ("relative" === e && !n.offsetLeft) {
+ var h = d.DomUtil.getStyle(n, "width"),
+ l = d.DomUtil.getStyle(n, "max-width"),
+ c = n.getBoundingClientRect();
+ "none" === h && "none" === l || (o += c.left + n.clientLeft), i += c.top + (s.scrollTop || r.scrollTop || 0);
+ break
+ }
+ n = n.offsetParent
+ } while (n);
+ n = t;
+ do {
+ if (n === s) break;
+ i -= n.scrollTop || 0, o -= n.scrollLeft || 0, n = n.parentNode
+ } while (n);
+ return new d.Point(o, i)
+ },
+ documentIsLtr: function () {
+ return d.DomUtil._docIsLtrCached || (d.DomUtil._docIsLtrCached = !0, d.DomUtil._docIsLtr = "ltr" === d.DomUtil.getStyle(a.body, "direction")), d.DomUtil._docIsLtr
+ },
+ create: function (t, e, i) {
+ var o = a.createElement(t);
+ return o.className = e, i && i.appendChild(o), o
+ },
+ hasClass: function (t, e) {
+ if (t.classList !== r) return t.classList.contains(e);
+ var i = d.DomUtil._getClass(t);
+ return i.length > 0 && new RegExp("(^|\\s)" + e + "(\\s|$)").test(i)
+ },
+ addClass: function (t, e) {
+ if (t.classList !== r)
+ for (var i = d.Util.splitWords(e), o = 0, n = i.length; o < n; o++) t.classList.add(i[o]);
+ else if (!d.DomUtil.hasClass(t, e)) {
+ var s = d.DomUtil._getClass(t);
+ d.DomUtil._setClass(t, (s ? s + " " : "") + e)
+ }
+ },
+ removeClass: function (t, e) {
+ t.classList !== r ? t.classList.remove(e) : d.DomUtil._setClass(t, d.Util.trim((" " + d.DomUtil._getClass(t) + " ").replace(" " + e + " ", " ")))
+ },
+ _setClass: function (t, e) {
+ t.className.baseVal === r ? t.className = e : t.className.baseVal = e
+ },
+ _getClass: function (t) {
+ return t.className.baseVal === r ? t.className : t.className.baseVal
+ },
+ setOpacity: function (t, e) {
+ if ("opacity" in t.style) t.style.opacity = e;
+ else if ("filter" in t.style) {
+ var i = !1,
+ o = "DXImageTransform.Microsoft.Alpha";
+ try {
+ i = t.filters.item(o)
+ } catch (t) {
+ if (1 === e) return
+ }
+ e = Math.round(100 * e), i ? (i.Enabled = 100 !== e, i.Opacity = e) : t.style.filter += " progid:" + o + "(opacity=" + e + ")"
+ }
+ },
+ testProp: function (t) {
+ for (var e = a.documentElement.style, i = 0; i < t.length; i++)
+ if (t[i] in e) return t[i];
+ return !1
+ },
+ getTranslateString: function (t) {
+ var e = d.Browser.webkit3d,
+ i = (e ? ",0" : "") + ")";
+ return "translate" + (e ? "3d" : "") + "(" + t.x + "px," + t.y + "px" + i
+ },
+ getScaleString: function (t, e) {
+ return d.DomUtil.getTranslateString(e.add(e.multiplyBy(-1 * t))) + (" scale(" + t + ") ")
+ },
+ setPosition: function (t, e, i) {
+ t._leaflet_pos = e, !i && d.Browser.any3d ? t.style[d.DomUtil.TRANSFORM] = d.DomUtil.getTranslateString(e) : (t.style.left = e.x + "px", t.style.top = e.y + "px")
+ },
+ getPosition: function (t) {
+ return t._leaflet_pos
+ }
+ }, d.DomUtil.TRANSFORM = d.DomUtil.testProp(["transform", "WebkitTransform", "OTransform", "MozTransform", "msTransform"]), d.DomUtil.TRANSITION = d.DomUtil.testProp(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]), d.DomUtil.TRANSITION_END = "webkitTransition" === d.DomUtil.TRANSITION || "OTransition" === d.DomUtil.TRANSITION ? d.DomUtil.TRANSITION + "End" : "transitionend",
+ function () {
+ if ("onselectstart" in a) d.extend(d.DomUtil, {
+ disableTextSelection: function () {
+ d.DomEvent.on(s, "selectstart", d.DomEvent.preventDefault)
+ },
+ enableTextSelection: function () {
+ d.DomEvent.off(s, "selectstart", d.DomEvent.preventDefault)
+ }
+ });
+ else {
+ var t = d.DomUtil.testProp(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]);
+ d.extend(d.DomUtil, {
+ disableTextSelection: function () {
+ if (t) {
+ var e = a.documentElement.style;
+ this._userSelect = e[t], e[t] = "none"
+ }
+ },
+ enableTextSelection: function () {
+ t && (a.documentElement.style[t] = this._userSelect, delete this._userSelect)
+ }
+ })
+ }
+ d.extend(d.DomUtil, {
+ disableImageDrag: function () {
+ d.DomEvent.on(s, "dragstart", d.DomEvent.preventDefault)
+ },
+ enableImageDrag: function () {
+ d.DomEvent.off(s, "dragstart", d.DomEvent.preventDefault)
+ }
+ })
+ }(), d.LatLng = function (t, e, i) {
+ if (t = parseFloat(t), e = parseFloat(e), isNaN(t) || isNaN(e)) throw new Error("Invalid LatLng object: (" + t + ", " + e + ")");
+ this.lat = t, this.lng = e, i !== r && (this.alt = parseFloat(i))
+ }, d.extend(d.LatLng, {
+ DEG_TO_RAD: Math.PI / 180,
+ RAD_TO_DEG: 180 / Math.PI,
+ MAX_MARGIN: 1e-9
+ }), d.LatLng.prototype = {
+ equals: function (t) {
+ return !!t && (t = d.latLng(t), Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)) <= d.LatLng.MAX_MARGIN)
+ },
+ toString: function (t) {
+ return "LatLng(" + d.Util.formatNum(this.lat, t) + ", " + d.Util.formatNum(this.lng, t) + ")"
+ },
+ distanceTo: function (t) {
+ t = d.latLng(t);
+ var e = d.LatLng.DEG_TO_RAD,
+ i = (t.lat - this.lat) * e,
+ o = (t.lng - this.lng) * e,
+ n = this.lat * e,
+ s = t.lat * e,
+ a = Math.sin(i / 2),
+ r = Math.sin(o / 2),
+ h = a * a + r * r * Math.cos(n) * Math.cos(s);
+ return 12756274 * Math.atan2(Math.sqrt(h), Math.sqrt(1 - h))
+ },
+ wrap: function (t, e) {
+ var i = this.lng;
+ return i = (i + (e = e || 180)) % (e - (t = t || -180)) + (i < t || i === e ? e : t), new d.LatLng(this.lat, i)
+ }
+ }, d.latLng = function (t, e) {
+ return t instanceof d.LatLng ? t : d.Util.isArray(t) ? "number" == typeof t[0] || "string" == typeof t[0] ? new d.LatLng(t[0], t[1], t[2]) : null : t === r || null === t ? t : "object" == typeof t && "lat" in t ? new d.LatLng(t.lat, "lng" in t ? t.lng : t.lon) : e === r ? null : new d.LatLng(t, e)
+ }, d.LatLngBounds = function (t, e) {
+ if (t)
+ for (var i = e ? [t, e] : t, o = 0, n = i.length; o < n; o++) this.extend(i[o])
+ }, d.LatLngBounds.prototype = {
+ extend: function (t) {
+ if (!t) return this;
+ var e = d.latLng(t);
+ return (t = null !== e ? e : d.latLngBounds(t)) instanceof d.LatLng ? this._southWest || this._northEast ? (this._southWest.lat = Math.min(t.lat, this._southWest.lat), this._southWest.lng = Math.min(t.lng, this._southWest.lng), this._northEast.lat = Math.max(t.lat, this._northEast.lat), this._northEast.lng = Math.max(t.lng, this._northEast.lng)) : (this._southWest = new d.LatLng(t.lat, t.lng), this._northEast = new d.LatLng(t.lat, t.lng)) : t instanceof d.LatLngBounds && (this.extend(t._southWest), this.extend(t._northEast)), this
+ },
+ pad: function (t) {
+ var e = this._southWest,
+ i = this._northEast,
+ o = Math.abs(e.lat - i.lat) * t,
+ n = Math.abs(e.lng - i.lng) * t;
+ return new d.LatLngBounds(new d.LatLng(e.lat - o, e.lng - n), new d.LatLng(i.lat + o, i.lng + n))
+ },
+ getCenter: function () {
+ return new d.LatLng((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2)
+ },
+ getSouthWest: function () {
+ return this._southWest
+ },
+ getNorthEast: function () {
+ return this._northEast
+ },
+ getNorthWest: function () {
+ return new d.LatLng(this.getNorth(), this.getWest())
+ },
+ getSouthEast: function () {
+ return new d.LatLng(this.getSouth(), this.getEast())
+ },
+ getWest: function () {
+ return this._southWest.lng
+ },
+ getSouth: function () {
+ return this._southWest.lat
+ },
+ getEast: function () {
+ return this._northEast.lng
+ },
+ getNorth: function () {
+ return this._northEast.lat
+ },
+ contains: function (t) {
+ t = "number" == typeof t[0] || t instanceof d.LatLng ? d.latLng(t) : d.latLngBounds(t);
+ var e, i, o = this._southWest,
+ n = this._northEast;
+ return t instanceof d.LatLngBounds ? (e = t.getSouthWest(), i = t.getNorthEast()) : e = i = t, e.lat >= o.lat && i.lat <= n.lat && e.lng >= o.lng && i.lng <= n.lng
+ },
+ intersects: function (t) {
+ t = d.latLngBounds(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
+ },
+ toBBoxString: function () {
+ return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(",")
+ },
+ equals: function (t) {
+ return !!t && (t = d.latLngBounds(t), this._southWest.equals(t.getSouthWest()) && this._northEast.equals(t.getNorthEast()))
+ },
+ isValid: function () {
+ return !(!this._southWest || !this._northEast)
+ }
+ }, d.latLngBounds = function (t, e) {
+ return !t || t instanceof d.LatLngBounds ? t : new d.LatLngBounds(t, e)
+ }, d.Projection = {}, d.Projection.SphericalMercator = {
+ MAX_LATITUDE: 85.0511287798,
+ project: function (t) {
+ var e = d.LatLng.DEG_TO_RAD,
+ i = this.MAX_LATITUDE,
+ o = Math.max(Math.min(i, t.lat), -i),
+ n = t.lng * e,
+ s = o * e;
+ return s = Math.log(Math.tan(Math.PI / 4 + s / 2)), new d.Point(n, s)
+ },
+ unproject: function (t) {
+ var e = d.LatLng.RAD_TO_DEG,
+ i = t.x * e,
+ o = (2 * Math.atan(Math.exp(t.y)) - Math.PI / 2) * e;
+ return new d.LatLng(o, i)
+ }
+ }, d.Projection.LonLat = {
+ project: function (t) {
+ return new d.Point(t.lng, t.lat)
+ },
+ unproject: function (t) {
+ return new d.LatLng(t.y, t.x)
+ }
+ }, d.CRS = {
+ latLngToPoint: function (t, e) {
+ var i = this.projection.project(t),
+ o = this.scale(e);
+ return this.transformation._transform(i, o)
+ },
+ pointToLatLng: function (t, e) {
+ var i = this.scale(e),
+ o = this.transformation.untransform(t, i);
+ return this.projection.unproject(o)
+ },
+ project: function (t) {
+ return this.projection.project(t)
+ },
+ scale: function (t) {
+ return 256 * Math.pow(2, t)
+ },
+ getSize: function (t) {
+ var e = this.scale(t);
+ return d.point(e, e)
+ }
+ }, d.CRS.Simple = d.extend({}, d.CRS, {
+ projection: d.Projection.LonLat,
+ transformation: new d.Transformation(1, 0, -1, 0),
+ scale: function (t) {
+ return Math.pow(2, t)
+ }
+ }), d.CRS.EPSG3857 = d.extend({}, d.CRS, {
+ code: "EPSG:3857",
+ projection: d.Projection.SphericalMercator,
+ transformation: new d.Transformation(.5 / Math.PI, .5, -.5 / Math.PI, .5),
+ project: function (t) {
+ return this.projection.project(t).multiplyBy(6378137)
+ }
+ }), d.CRS.EPSG900913 = d.extend({}, d.CRS.EPSG3857, {
+ code: "EPSG:900913"
+ }), d.CRS.EPSG4326 = d.extend({}, d.CRS, {
+ code: "EPSG:4326",
+ projection: d.Projection.LonLat,
+ transformation: new d.Transformation(1 / 360, .5, -1 / 360, .5)
+ }), d.Map = d.Class.extend({
+ includes: d.Mixin.Events,
+ options: {
+ crs: d.CRS.EPSG3857,
+ fadeAnimation: d.DomUtil.TRANSITION && !d.Browser.android23,
+ trackResize: !0,
+ markerZoomAnimation: d.DomUtil.TRANSITION && d.Browser.any3d
+ },
+ initialize: function (t, e) {
+ e = d.setOptions(this, e), this._initContainer(t), this._initLayout(), this._onResize = d.bind(this._onResize, this), this._initEvents(), e.maxBounds && this.setMaxBounds(e.maxBounds), e.center && e.zoom !== r && this.setView(d.latLng(e.center), e.zoom, {
+ reset: !0
+ }), this._handlers = [], this._layers = {}, this._zoomBoundLayers = {}, this._tileLayersNum = 0, this.callInitHooks(), this._addLayers(e.layers)
+ },
+ setView: function (t, e) {
+ return e = e === r ? this.getZoom() : e, this._resetView(d.latLng(t), this._limitZoom(e)), this
+ },
+ setZoom: function (t, e) {
+ return this._loaded ? this.setView(this.getCenter(), t, {
+ zoom: e
+ }) : (this._zoom = this._limitZoom(t), this)
+ },
+ zoomIn: function (t, e) {
+ return this.setZoom(this._zoom + (t || 1), e)
+ },
+ zoomOut: function (t, e) {
+ return this.setZoom(this._zoom - (t || 1), e)
+ },
+ setZoomAround: function (t, e, i) {
+ var o = this.getZoomScale(e),
+ n = this.getSize().divideBy(2),
+ s = (t instanceof d.Point ? t : this.latLngToContainerPoint(t)).subtract(n).multiplyBy(1 - 1 / o),
+ a = this.containerPointToLatLng(n.add(s));
+ return this.setView(a, e, {
+ zoom: i
+ })
+ },
+ fitBounds: function (t, e) {
+ e = e || {}, t = t.getBounds ? t.getBounds() : d.latLngBounds(t);
+ var i = d.point(e.paddingTopLeft || e.padding || [0, 0]),
+ o = d.point(e.paddingBottomRight || e.padding || [0, 0]),
+ n = this.getBoundsZoom(t, !1, i.add(o));
+ n = e.maxZoom ? Math.min(e.maxZoom, n) : n;
+ var s = o.subtract(i).divideBy(2),
+ a = this.project(t.getSouthWest(), n),
+ r = this.project(t.getNorthEast(), n),
+ h = this.unproject(a.add(r).divideBy(2).add(s), n);
+ return this.setView(h, n, e)
+ },
+ fitWorld: function (t) {
+ return this.fitBounds([
+ [-90, -180],
+ [90, 180]
+ ], t)
+ },
+ panTo: function (t, e) {
+ return this.setView(t, this._zoom, {
+ pan: e
+ })
+ },
+ panBy: function (t) {
+ return this.fire("movestart"), this._rawPanBy(d.point(t)), this.fire("move"), this.fire("moveend")
+ },
+ setMaxBounds: function (t) {
+ return t = d.latLngBounds(t), this.options.maxBounds = t, t ? (this._loaded && this._panInsideMaxBounds(), this.on("moveend", this._panInsideMaxBounds, this)) : this.off("moveend", this._panInsideMaxBounds, this)
+ },
+ panInsideBounds: function (t, e) {
+ var i = this.getCenter(),
+ o = this._limitCenter(i, this._zoom, t);
+ return i.equals(o) ? this : this.panTo(o, e)
+ },
+ addLayer: function (t) {
+ var e = d.stamp(t);
+ return this._layers[e] || (this._layers[e] = t, !t.options || isNaN(t.options.maxZoom) && isNaN(t.options.minZoom) || (this._zoomBoundLayers[e] = t, this._updateZoomLevels()), this.options.zoomAnimation && d.TileLayer && t instanceof d.TileLayer && (this._tileLayersNum++, this._tileLayersToLoad++, t.on("load", this._onTileLayerLoad, this)), this._loaded && this._layerAdd(t)), this
+ },
+ removeLayer: function (t) {
+ var e = d.stamp(t);
+ return this._layers[e] ? (this._loaded && t.onRemove(this), delete this._layers[e], this._loaded && this.fire("layerremove", {
+ layer: t
+ }), this._zoomBoundLayers[e] && (delete this._zoomBoundLayers[e], this._updateZoomLevels()), this.options.zoomAnimation && d.TileLayer && t instanceof d.TileLayer && (this._tileLayersNum--, this._tileLayersToLoad--, t.off("load", this._onTileLayerLoad, this)), this) : this
+ },
+ hasLayer: function (t) {
+ return !!t && d.stamp(t) in this._layers
+ },
+ eachLayer: function (t, e) {
+ for (var i in this._layers) t.call(e, this._layers[i]);
+ return this
+ },
+ invalidateSize: function (t) {
+ if (!this._loaded) return this;
+ t = d.extend({
+ animate: !1,
+ pan: !0
+ }, !0 === t ? {
+ animate: !0
+ } : t);
+ var e = this.getSize();
+ this._sizeChanged = !0, this._initialCenter = null;
+ var i = this.getSize(),
+ o = e.divideBy(2).round(),
+ n = i.divideBy(2).round(),
+ s = o.subtract(n);
+ return s.x || s.y ? (t.animate && t.pan ? this.panBy(s) : (t.pan && this._rawPanBy(s), this.fire("move"), t.debounceMoveend ? (clearTimeout(this._sizeTimer), this._sizeTimer = setTimeout(d.bind(this.fire, this, "moveend"), 200)) : this.fire("moveend")), this.fire("resize", {
+ oldSize: e,
+ newSize: i
+ })) : this
+ },
+ 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 () {
+ this._loaded && this.fire("unload"), this._initEvents("off");
+ try {
+ delete this._container._leaflet
+ } catch (t) {
+ this._container._leaflet = r
+ }
+ return this._clearPanes(), this._clearControlPos && this._clearControlPos(), this._clearHandlers(), this
+ },
+ getCenter: function () {
+ return this._checkIfLoaded(), this._initialCenter && !this._moved() ? this._initialCenter : this.layerPointToLatLng(this._getCenterLayerPoint())
+ },
+ getZoom: function () {
+ return this._zoom
+ },
+ getBounds: function () {
+ var t = this.getPixelBounds(),
+ e = this.unproject(t.getBottomLeft()),
+ i = this.unproject(t.getTopRight());
+ return new d.LatLngBounds(e, i)
+ },
+ getMinZoom: function () {
+ return this.options.minZoom === r ? this._layersMinZoom === r ? 0 : this._layersMinZoom : this.options.minZoom
+ },
+ getMaxZoom: function () {
+ return this.options.maxZoom === r ? this._layersMaxZoom === r ? 1 / 0 : this._layersMaxZoom : this.options.maxZoom
+ },
+ getBoundsZoom: function (t, e, i) {
+ t = d.latLngBounds(t);
+ var o, n = this.getMinZoom() - (e ? 1 : 0),
+ s = this.getMaxZoom(),
+ a = this.getSize(),
+ r = t.getNorthWest(),
+ h = t.getSouthEast(),
+ l = !0;
+ i = d.point(i || [0, 0]);
+ do {
+ n++, o = this.project(h, n).subtract(this.project(r, n)).add(i), l = e ? o.x < a.x || o.y < a.y : a.contains(o)
+ } while (l && n <= s);
+ return l && e ? null : e ? n : n - 1
+ },
+ getSize: function () {
+ return this._size && !this._sizeChanged || (this._size = new d.Point(this._container.clientWidth, this._container.clientHeight), this._sizeChanged = !1), this._size.clone()
+ },
+ getPixelBounds: function () {
+ var t = this._getTopLeftPoint();
+ return new d.Bounds(t, t.add(this.getSize()))
+ },
+ getPixelOrigin: function () {
+ return this._checkIfLoaded(), this._initialTopLeftPoint
+ },
+ getPanes: function () {
+ return this._panes
+ },
+ getContainer: function () {
+ return this._container
+ },
+ getZoomScale: function (t) {
+ var e = this.options.crs;
+ return e.scale(t) / e.scale(this._zoom)
+ },
+ getScaleZoom: function (t) {
+ return this._zoom + Math.log(t) / Math.LN2
+ },
+ project: function (t, e) {
+ return e = e === r ? this._zoom : e, this.options.crs.latLngToPoint(d.latLng(t), e)
+ },
+ unproject: function (t, e) {
+ return e = e === r ? this._zoom : e, this.options.crs.pointToLatLng(d.point(t), e)
+ },
+ layerPointToLatLng: function (t) {
+ var e = d.point(t).add(this.getPixelOrigin());
+ return this.unproject(e)
+ },
+ latLngToLayerPoint: function (t) {
+ return this.project(d.latLng(t))._round()._subtract(this.getPixelOrigin())
+ },
+ containerPointToLayerPoint: function (t) {
+ return d.point(t).subtract(this._getMapPanePos())
+ },
+ layerPointToContainerPoint: function (t) {
+ return d.point(t).add(this._getMapPanePos())
+ },
+ containerPointToLatLng: function (t) {
+ var e = this.containerPointToLayerPoint(d.point(t));
+ return this.layerPointToLatLng(e)
+ },
+ latLngToContainerPoint: function (t) {
+ return this.layerPointToContainerPoint(this.latLngToLayerPoint(d.latLng(t)))
+ },
+ mouseEventToContainerPoint: function (t) {
+ return d.DomEvent.getMousePosition(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 = d.DomUtil.get(t);
+ if (!e) throw new Error("Map container not found.");
+ if (e._leaflet) throw new Error("Map container is already initialized.");
+ e._leaflet = !0
+ },
+ _initLayout: function () {
+ var t = this._container;
+ d.DomUtil.addClass(t, "leaflet-container" + (d.Browser.touch ? " leaflet-touch" : "") + (d.Browser.retina ? " leaflet-retina" : "") + (d.Browser.ielt9 ? " leaflet-oldie" : "") + (this.options.fadeAnimation ? " leaflet-fade-anim" : ""));
+ var e = d.DomUtil.getStyle(t, "position");
+ "absolute" !== e && "relative" !== e && "fixed" !== e && (t.style.position = "relative"), this._initPanes(), this._initControlPos && this._initControlPos()
+ },
+ _initPanes: function () {
+ var t = this._panes = {};
+ this._mapPane = t.mapPane = this._createPane("leaflet-map-pane", this._container), this._tilePane = t.tilePane = this._createPane("leaflet-tile-pane", this._mapPane), t.objectsPane = this._createPane("leaflet-objects-pane", this._mapPane), t.shadowPane = this._createPane("leaflet-shadow-pane"), t.overlayPane = this._createPane("leaflet-overlay-pane"), t.markerPane = this._createPane("leaflet-marker-pane"), t.popupPane = this._createPane("leaflet-popup-pane");
+ var e = " leaflet-zoom-hide";
+ this.options.markerZoomAnimation || (d.DomUtil.addClass(t.markerPane, e), d.DomUtil.addClass(t.shadowPane, e), d.DomUtil.addClass(t.popupPane, e))
+ },
+ _createPane: function (t, e) {
+ return d.DomUtil.create("div", t, e || this._panes.objectsPane)
+ },
+ _clearPanes: function () {
+ this._container.removeChild(this._mapPane)
+ },
+ _addLayers: function (t) {
+ for (var e = 0, i = (t = t ? d.Util.isArray(t) ? t : [t] : []).length; e < i; e++) this.addLayer(t[e])
+ },
+ _resetView: function (t, e, i, o) {
+ var n = this._zoom !== e;
+ o || (this.fire("movestart"), n && this.fire("zoomstart")), this._zoom = e, this._initialCenter = t, this._initialTopLeftPoint = this._getNewTopLeftPoint(t), i ? this._initialTopLeftPoint._add(this._getMapPanePos()) : d.DomUtil.setPosition(this._mapPane, new d.Point(0, 0)), this._tileLayersToLoad = this._tileLayersNum;
+ var s = !this._loaded;
+ this._loaded = !0, this.fire("viewreset", {
+ hard: !i
+ }), s && (this.fire("load"), this.eachLayer(this._layerAdd, this)), this.fire("move"), (n || o) && this.fire("zoomend"), this.fire("moveend", {
+ hard: !i
+ })
+ },
+ _rawPanBy: function (t) {
+ d.DomUtil.setPosition(this._mapPane, this._getMapPanePos().subtract(t))
+ },
+ _getZoomSpan: function () {
+ return this.getMaxZoom() - this.getMinZoom()
+ },
+ _updateZoomLevels: function () {
+ var t, e = 1 / 0,
+ i = -1 / 0,
+ o = this._getZoomSpan();
+ for (t in this._zoomBoundLayers) {
+ var n = this._zoomBoundLayers[t];
+ isNaN(n.options.minZoom) || (e = Math.min(e, n.options.minZoom)), isNaN(n.options.maxZoom) || (i = Math.max(i, n.options.maxZoom))
+ }
+ t === r ? this._layersMaxZoom = this._layersMinZoom = r : (this._layersMaxZoom = i, this._layersMinZoom = e), o !== this._getZoomSpan() && this.fire("zoomlevelschange")
+ },
+ _panInsideMaxBounds: function () {
+ this.panInsideBounds(this.options.maxBounds)
+ },
+ _checkIfLoaded: function () {
+ if (!this._loaded) throw new Error("Set map center and zoom first.")
+ },
+ _initEvents: function (t) {
+ if (d.DomEvent) {
+ t = t || "on", d.DomEvent[t](this._container, "click", this._onMouseClick, this);
+ var e, i, o = ["dblclick", "mousedown", "mouseup", "mouseenter", "mouseleave", "mousemove", "contextmenu"];
+ for (e = 0, i = o.length; e < i; e++) d.DomEvent[t](this._container, o[e], this._fireMouseEvent, this);
+ this.options.trackResize && d.DomEvent[t](s, "resize", this._onResize, this)
+ }
+ },
+ _onResize: function () {
+ d.Util.cancelAnimFrame(this._resizeRequest), this._resizeRequest = d.Util.requestAnimFrame((function () {
+ this.invalidateSize({
+ debounceMoveend: !0
+ })
+ }), this, !1, this._container)
+ },
+ _onMouseClick: function (t) {
+ !this._loaded || !t._simulated && (this.dragging && this.dragging.moved() || this.boxZoom && this.boxZoom.moved()) || d.DomEvent._skipped(t) || (this.fire("preclick"), this._fireMouseEvent(t))
+ },
+ _fireMouseEvent: function (t) {
+ if (this._loaded && !d.DomEvent._skipped(t)) {
+ var e = t.type;
+ if (e = "mouseenter" === e ? "mouseover" : "mouseleave" === e ? "mouseout" : e, this.hasEventListeners(e)) {
+ "contextmenu" === e && d.DomEvent.preventDefault(t);
+ var i = this.mouseEventToContainerPoint(t),
+ o = this.containerPointToLayerPoint(i),
+ n = this.layerPointToLatLng(o);
+ this.fire(e, {
+ latlng: n,
+ layerPoint: o,
+ containerPoint: i,
+ originalEvent: t
+ })
+ }
+ }
+ },
+ _onTileLayerLoad: function () {
+ this._tileLayersToLoad--, this._tileLayersNum && !this._tileLayersToLoad && this.fire("tilelayersload")
+ },
+ _clearHandlers: function () {
+ for (var t = 0, e = this._handlers.length; t < e; t++) this._handlers[t].disable()
+ },
+ whenReady: function (t, e) {
+ return this._loaded ? t.call(e || this, this) : this.on("load", t, e), this
+ },
+ _layerAdd: function (t) {
+ t.onAdd(this), this.fire("layeradd", {
+ layer: t
+ })
+ },
+ _getMapPanePos: function () {
+ return d.DomUtil.getPosition(this._mapPane)
+ },
+ _moved: function () {
+ var t = this._getMapPanePos();
+ return t && !t.equals([0, 0])
+ },
+ _getTopLeftPoint: function () {
+ return this.getPixelOrigin().subtract(this._getMapPanePos())
+ },
+ _getNewTopLeftPoint: function (t, e) {
+ var i = this.getSize()._divideBy(2);
+ return this.project(t, e)._subtract(i)._round()
+ },
+ _latLngToNewLayerPoint: function (t, e, i) {
+ var o = this._getNewTopLeftPoint(i, e).add(this._getMapPanePos());
+ return this.project(t, e)._subtract(o)
+ },
+ _getCenterLayerPoint: function () {
+ return this.containerPointToLayerPoint(this.getSize()._divideBy(2))
+ },
+ _getCenterOffset: function (t) {
+ return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())
+ },
+ _limitCenter: function (t, e, i) {
+ if (!i) return t;
+ var o = this.project(t, e),
+ n = this.getSize().divideBy(2),
+ s = new d.Bounds(o.subtract(n), o.add(n)),
+ a = this._getBoundsOffset(s, i, e);
+ return this.unproject(o.add(a), e)
+ },
+ _limitOffset: function (t, e) {
+ if (!e) return t;
+ var i = this.getPixelBounds(),
+ o = new d.Bounds(i.min.add(t), i.max.add(t));
+ return t.add(this._getBoundsOffset(o, e))
+ },
+ _getBoundsOffset: function (t, e, i) {
+ var o = this.project(e.getNorthWest(), i).subtract(t.min),
+ n = this.project(e.getSouthEast(), i).subtract(t.max),
+ s = this._rebound(o.x, -n.x),
+ a = this._rebound(o.y, -n.y);
+ return new d.Point(s, a)
+ },
+ _rebound: function (t, e) {
+ return t + e > 0 ? 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();
+ return Math.max(e, Math.min(i, t))
+ }
+ }), d.map = function (t, e) {
+ return new d.Map(t, e)
+ }, d.Projection.Mercator = {
+ MAX_LATITUDE: 85.0840591556,
+ R_MINOR: 6356752.314245179,
+ R_MAJOR: 6378137,
+ project: function (t) {
+ var e = d.LatLng.DEG_TO_RAD,
+ i = this.MAX_LATITUDE,
+ o = Math.max(Math.min(i, t.lat), -i),
+ n = this.R_MAJOR,
+ s = this.R_MINOR,
+ a = t.lng * e * n,
+ r = o * e,
+ h = s / n,
+ l = Math.sqrt(1 - h * h),
+ c = l * Math.sin(r);
+ c = Math.pow((1 - c) / (1 + c), .5 * l);
+ var p = Math.tan(.5 * (.5 * Math.PI - r)) / c;
+ return r = -n * Math.log(p), new d.Point(a, r)
+ },
+ unproject: function (t) {
+ for (var e, i = d.LatLng.RAD_TO_DEG, o = this.R_MAJOR, n = this.R_MINOR, s = t.x * i / o, a = n / o, r = Math.sqrt(1 - a * a), h = Math.exp(-t.y / o), l = Math.PI / 2 - 2 * Math.atan(h), c = 15, p = .1; Math.abs(p) > 1e-7 && --c > 0;) e = r * Math.sin(l), l += p = Math.PI / 2 - 2 * Math.atan(h * Math.pow((1 - e) / (1 + e), .5 * r)) - l;
+ return new d.LatLng(l * i, s)
+ }
+ }, d.CRS.EPSG3395 = d.extend({}, d.CRS, {
+ code: "EPSG:3395",
+ projection: d.Projection.Mercator,
+ transformation: (O = d.Projection.Mercator.R_MAJOR, z = .5 / (Math.PI * O), new d.Transformation(z, .5, -z, .5))
+ }), d.TileLayer = d.Class.extend({
+ includes: d.Mixin.Events,
+ options: {
+ minZoom: 0,
+ maxZoom: 18,
+ tileSize: 256,
+ subdomains: "abc",
+ errorTileUrl: "",
+ attribution: "",
+ zoomOffset: 0,
+ opacity: 1,
+ unloadInvisibleTiles: d.Browser.mobile,
+ updateWhenIdle: d.Browser.mobile
+ },
+ initialize: function (t, e) {
+ (e = d.setOptions(this, e)).detectRetina && d.Browser.retina && e.maxZoom > 0 && (e.tileSize = Math.floor(e.tileSize / 2), e.zoomOffset++, e.minZoom > 0 && e.minZoom--, this.options.maxZoom--), e.bounds && (e.bounds = d.latLngBounds(e.bounds)), this._url = t;
+ var i = this.options.subdomains;
+ "string" == typeof i && (this.options.subdomains = i.split(""))
+ },
+ onAdd: function (t) {
+ this._map = t, this._animated = t._zoomAnimated, this._initContainer(), t.on({
+ viewreset: this._reset,
+ moveend: this._update
+ }, this), this._animated && t.on({
+ zoomanim: this._animateZoom,
+ zoomend: this._endZoomAnim
+ }, this), this.options.updateWhenIdle || (this._limitedUpdate = d.Util.limitExecByInterval(this._update, 150, this), t.on("move", this._limitedUpdate, this)), this._reset(), this._update()
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ onRemove: function (t) {
+ this._container.parentNode.removeChild(this._container), t.off({
+ viewreset: this._reset,
+ moveend: this._update
+ }, this), this._animated && t.off({
+ zoomanim: this._animateZoom,
+ zoomend: this._endZoomAnim
+ }, this), this.options.updateWhenIdle || t.off("move", this._limitedUpdate, this), this._container = null, this._map = null
+ },
+ bringToFront: function () {
+ var t = this._map._panes.tilePane;
+ return this._container && (t.appendChild(this._container), this._setAutoZIndex(t, Math.max)), this
+ },
+ bringToBack: function () {
+ var t = this._map._panes.tilePane;
+ return this._container && (t.insertBefore(this._container, t.firstChild), this._setAutoZIndex(t, Math.min)), this
+ },
+ getAttribution: function () {
+ return this.options.attribution
+ },
+ getContainer: function () {
+ return this._container
+ },
+ setOpacity: function (t) {
+ return this.options.opacity = t, this._map && this._updateOpacity(), this
+ },
+ setZIndex: function (t) {
+ return this.options.zIndex = t, this._updateZIndex(), this
+ },
+ setUrl: function (t, e) {
+ return this._url = t, e || this.redraw(), this
+ },
+ redraw: function () {
+ return this._map && (this._reset({
+ hard: !0
+ }), this._update()), this
+ },
+ _updateZIndex: function () {
+ this._container && this.options.zIndex !== r && (this._container.style.zIndex = this.options.zIndex)
+ },
+ _setAutoZIndex: function (t, e) {
+ var i, o, n, s = t.children,
+ a = -e(1 / 0, -1 / 0);
+ for (o = 0, n = s.length; o < n; o++) s[o] !== this._container && (i = parseInt(s[o].style.zIndex, 10), isNaN(i) || (a = e(a, i)));
+ this.options.zIndex = this._container.style.zIndex = (isFinite(a) ? a : 0) + e(1, -1)
+ },
+ _updateOpacity: function () {
+ var t, e = this._tiles;
+ if (d.Browser.ielt9)
+ for (t in e) d.DomUtil.setOpacity(e[t], this.options.opacity);
+ else d.DomUtil.setOpacity(this._container, this.options.opacity)
+ },
+ _initContainer: function () {
+ var t = this._map._panes.tilePane;
+ if (!this._container) {
+ if (this._container = d.DomUtil.create("div", "leaflet-layer"), this._updateZIndex(), this._animated) {
+ var e = "leaflet-tile-container";
+ this._bgBuffer = d.DomUtil.create("div", e, this._container), this._tileContainer = d.DomUtil.create("div", e, this._container)
+ } else this._tileContainer = this._container;
+ t.appendChild(this._container), this.options.opacity < 1 && this._updateOpacity()
+ }
+ },
+ _reset: function (t) {
+ for (var e in this._tiles) this.fire("tileunload", {
+ tile: this._tiles[e]
+ });
+ this._tiles = {}, this._tilesToLoad = 0, this.options.reuseTiles && (this._unusedTiles = []), this._tileContainer.innerHTML = "", this._animated && t && t.hard && this._clearBgBuffer(), this._initContainer()
+ },
+ _getTileSize: function () {
+ var t = this._map,
+ e = t.getZoom() + this.options.zoomOffset,
+ i = this.options.maxNativeZoom,
+ o = this.options.tileSize;
+ return i && e > i && (o = Math.round(t.getZoomScale(e) / t.getZoomScale(i) * o)), o
+ },
+ _update: function () {
+ if (this._map) {
+ var t = this._map,
+ e = t.getPixelBounds(),
+ i = t.getZoom(),
+ o = this._getTileSize();
+ if (!(i > this.options.maxZoom || i < this.options.minZoom)) {
+ var n = d.bounds(e.min.divideBy(o)._floor(), e.max.divideBy(o)._floor());
+ this._addTilesFromCenterOut(n), (this.options.unloadInvisibleTiles || this.options.reuseTiles) && this._removeOtherTiles(n)
+ }
+ }
+ },
+ _addTilesFromCenterOut: function (t) {
+ var e, i, o, n = [],
+ s = t.getCenter();
+ for (e = t.min.y; e <= t.max.y; e++)
+ for (i = t.min.x; i <= t.max.x; i++) o = new d.Point(i, e), this._tileShouldBeLoaded(o) && n.push(o);
+ var r = n.length;
+ if (0 !== r) {
+ n.sort((function (t, e) {
+ return t.distanceTo(s) - e.distanceTo(s)
+ }));
+ var h = a.createDocumentFragment();
+ for (this._tilesToLoad || this.fire("loading"), this._tilesToLoad += r, i = 0; i < r; i++) this._addTile(n[i], h);
+ this._tileContainer.appendChild(h)
+ }
+ },
+ _tileShouldBeLoaded: function (t) {
+ if (t.x + ":" + t.y in this._tiles) return !1;
+ var e = this.options;
+ if (!e.continuousWorld) {
+ var i = this._getWrapTileNum();
+ if (e.noWrap && (t.x < 0 || t.x >= i.x) || t.y < 0 || t.y >= i.y) return !1
+ }
+ if (e.bounds) {
+ var o = this._getTileSize(),
+ n = t.multiplyBy(o),
+ s = n.add([o, o]),
+ a = this._map.unproject(n),
+ r = this._map.unproject(s);
+ if (e.continuousWorld || e.noWrap || (a = a.wrap(), r = r.wrap()), !e.bounds.intersects([a, r])) return !1
+ }
+ return !0
+ },
+ _removeOtherTiles: function (t) {
+ var e, i, o, n;
+ for (n in this._tiles) e = n.split(":"), i = parseInt(e[0], 10), o = parseInt(e[1], 10), (i < t.min.x || i > t.max.x || o < t.min.y || o > t.max.y) && this._removeTile(n)
+ },
+ _removeTile: function (t) {
+ var e = this._tiles[t];
+ this.fire("tileunload", {
+ tile: e,
+ url: e.src
+ }), this.options.reuseTiles ? (d.DomUtil.removeClass(e, "leaflet-tile-loaded"), this._unusedTiles.push(e)) : e.parentNode === this._tileContainer && this._tileContainer.removeChild(e), d.Browser.android || (e.onload = null, e.src = d.Util.emptyImageUrl), delete this._tiles[t]
+ },
+ _addTile: function (t, e) {
+ var i = this._getTilePos(t),
+ o = this._getTile();
+ d.DomUtil.setPosition(o, i, d.Browser.chrome), this._tiles[t.x + ":" + t.y] = o, this._loadTile(o, t), o.parentNode !== this._tileContainer && e.appendChild(o)
+ },
+ _getZoomForUrl: function () {
+ var t = this.options,
+ e = this._map.getZoom();
+ return t.zoomReverse && (e = t.maxZoom - e), e += t.zoomOffset, t.maxNativeZoom ? Math.min(e, t.maxNativeZoom) : e
+ },
+ _getTilePos: function (t) {
+ var e = this._map.getPixelOrigin(),
+ i = this._getTileSize();
+ return t.multiplyBy(i).subtract(e)
+ },
+ getTileUrl: function (t) {
+ return d.Util.template(this._url, d.extend({
+ s: this._getSubdomain(t),
+ z: t.z,
+ x: t.x,
+ y: t.y
+ }, this.options))
+ },
+ _getWrapTileNum: function () {
+ return this._map.options.crs.getSize(this._map.getZoom()).divideBy(this._getTileSize())._floor()
+ },
+ _adjustTilePoint: function (t) {
+ var e = this._getWrapTileNum();
+ this.options.continuousWorld || this.options.noWrap || (t.x = (t.x % e.x + e.x) % e.x), this.options.tms && (t.y = e.y - t.y - 1), t.z = this._getZoomForUrl()
+ },
+ _getSubdomain: function (t) {
+ var e = Math.abs(t.x + t.y) % this.options.subdomains.length;
+ return this.options.subdomains[e]
+ },
+ _getTile: function () {
+ if (this.options.reuseTiles && this._unusedTiles.length > 0) {
+ var t = this._unusedTiles.pop();
+ return this._resetTile(t), t
+ }
+ return this._createTile()
+ },
+ _resetTile: function () {},
+ _createTile: function () {
+ var t = d.DomUtil.create("img", "leaflet-tile");
+ return t.style.width = t.style.height = this._getTileSize() + "px", t.galleryimg = "no", t.onselectstart = t.onmousemove = d.Util.falseFn, d.Browser.ielt9 && this.options.opacity !== r && d.DomUtil.setOpacity(t, this.options.opacity), d.Browser.mobileWebkit3d && (t.style.WebkitBackfaceVisibility = "hidden"), t
+ },
+ _loadTile: function (t, e) {
+ t._layer = this, t.onload = this._tileOnLoad, t.onerror = this._tileOnError, this._adjustTilePoint(e), t.src = this.getTileUrl(e), this.fire("tileloadstart", {
+ tile: t,
+ url: t.src
+ })
+ },
+ _tileLoaded: function () {
+ this._tilesToLoad--, this._animated && d.DomUtil.addClass(this._tileContainer, "leaflet-zoom-animated"), this._tilesToLoad || (this.fire("load"), this._animated && (clearTimeout(this._clearBgBufferTimer), this._clearBgBufferTimer = setTimeout(d.bind(this._clearBgBuffer, this), 500)))
+ },
+ _tileOnLoad: function () {
+ var t = this._layer;
+ this.src !== d.Util.emptyImageUrl && (d.DomUtil.addClass(this, "leaflet-tile-loaded"), t.fire("tileload", {
+ tile: this,
+ url: this.src
+ })), t._tileLoaded()
+ },
+ _tileOnError: function () {
+ var t = this._layer;
+ t.fire("tileerror", {
+ tile: this,
+ url: this.src
+ });
+ var e = t.options.errorTileUrl;
+ e && (this.src = e), t._tileLoaded()
+ }
+ }), d.tileLayer = function (t, e) {
+ return new d.TileLayer(t, e)
+ }, d.TileLayer.WMS = d.TileLayer.extend({
+ defaultWmsParams: {
+ service: "WMS",
+ request: "GetMap",
+ version: "1.1.1",
+ layers: "",
+ styles: "",
+ format: "image/jpeg",
+ transparent: !1
+ },
+ initialize: function (t, e) {
+ this._url = t;
+ var i = d.extend({}, this.defaultWmsParams),
+ o = e.tileSize || this.options.tileSize;
+ for (var n in e.detectRetina && d.Browser.retina ? i.width = i.height = 2 * o : i.width = i.height = o, e) this.options.hasOwnProperty(n) || "crs" === n || (i[n] = e[n]);
+ this.wmsParams = i, d.setOptions(this, e)
+ },
+ 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, d.TileLayer.prototype.onAdd.call(this, t)
+ },
+ getTileUrl: function (t) {
+ var e = this._map,
+ i = this.options.tileSize,
+ o = t.multiplyBy(i),
+ n = o.add([i, i]),
+ s = this._crs.project(e.unproject(o, t.z)),
+ a = this._crs.project(e.unproject(n, t.z)),
+ r = this._wmsVersion >= 1.3 && this._crs === d.CRS.EPSG4326 ? [a.y, s.x, s.y, a.x].join(",") : [s.x, a.y, a.x, s.y].join(","),
+ h = d.Util.template(this._url, {
+ s: this._getSubdomain(t)
+ });
+ return h + d.Util.getParamString(this.wmsParams, h, !0) + "&BBOX=" + r
+ },
+ setParams: function (t, e) {
+ return d.extend(this.wmsParams, t), e || this.redraw(), this
+ }
+ }), d.tileLayer.wms = function (t, e) {
+ return new d.TileLayer.WMS(t, e)
+ }, d.TileLayer.Canvas = d.TileLayer.extend({
+ options: {
+ async: !1
+ },
+ initialize: function (t) {
+ d.setOptions(this, t)
+ },
+ redraw: function () {
+ for (var t in this._map && (this._reset({
+ hard: !0
+ }), this._update()), this._tiles) this._redrawTile(this._tiles[t]);
+ return this
+ },
+ _redrawTile: function (t) {
+ this.drawTile(t, t._tilePoint, this._map._zoom)
+ },
+ _createTile: function () {
+ var t = d.DomUtil.create("canvas", "leaflet-tile");
+ return t.width = t.height = this.options.tileSize, t.onselectstart = t.onmousemove = d.Util.falseFn, t
+ },
+ _loadTile: function (t, e) {
+ t._layer = this, t._tilePoint = e, this._redrawTile(t), this.options.async || this.tileDrawn(t)
+ },
+ drawTile: function () {},
+ tileDrawn: function (t) {
+ this._tileOnLoad.call(t)
+ }
+ }), d.tileLayer.canvas = function (t) {
+ return new d.TileLayer.Canvas(t)
+ }, d.ImageOverlay = d.Class.extend({
+ includes: d.Mixin.Events,
+ options: {
+ opacity: 1
+ },
+ initialize: function (t, e, i) {
+ this._url = t, this._bounds = d.latLngBounds(e), d.setOptions(this, i)
+ },
+ onAdd: function (t) {
+ this._map = t, this._image || this._initImage(), t._panes.overlayPane.appendChild(this._image), t.on("viewreset", this._reset, this), t.options.zoomAnimation && d.Browser.any3d && t.on("zoomanim", this._animateZoom, this), this._reset()
+ },
+ onRemove: function (t) {
+ t.getPanes().overlayPane.removeChild(this._image), t.off("viewreset", this._reset, this), t.options.zoomAnimation && t.off("zoomanim", this._animateZoom, this)
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ setOpacity: function (t) {
+ return this.options.opacity = t, this._updateOpacity(), this
+ },
+ bringToFront: function () {
+ return this._image && this._map._panes.overlayPane.appendChild(this._image), this
+ },
+ bringToBack: function () {
+ var t = this._map._panes.overlayPane;
+ return this._image && t.insertBefore(this._image, t.firstChild), this
+ },
+ setUrl: function (t) {
+ this._url = t, this._image.src = this._url
+ },
+ getAttribution: function () {
+ return this.options.attribution
+ },
+ _initImage: function () {
+ this._image = d.DomUtil.create("img", "leaflet-image-layer"), this._map.options.zoomAnimation && d.Browser.any3d ? d.DomUtil.addClass(this._image, "leaflet-zoom-animated") : d.DomUtil.addClass(this._image, "leaflet-zoom-hide"), this._updateOpacity(), d.extend(this._image, {
+ galleryimg: "no",
+ onselectstart: d.Util.falseFn,
+ onmousemove: d.Util.falseFn,
+ onload: d.bind(this._onImageLoad, this),
+ src: this._url
+ })
+ },
+ _animateZoom: function (t) {
+ var e = this._map,
+ i = this._image,
+ o = e.getZoomScale(t.zoom),
+ n = this._bounds.getNorthWest(),
+ s = this._bounds.getSouthEast(),
+ a = e._latLngToNewLayerPoint(n, t.zoom, t.center),
+ r = e._latLngToNewLayerPoint(s, t.zoom, t.center)._subtract(a),
+ h = a._add(r._multiplyBy(.5 * (1 - 1 / o)));
+ i.style[d.DomUtil.TRANSFORM] = d.DomUtil.getTranslateString(h) + " scale(" + o + ") "
+ },
+ _reset: function () {
+ var t = this._image,
+ e = this._map.latLngToLayerPoint(this._bounds.getNorthWest()),
+ i = this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(e);
+ d.DomUtil.setPosition(t, e), t.style.width = i.x + "px", t.style.height = i.y + "px"
+ },
+ _onImageLoad: function () {
+ this.fire("load")
+ },
+ _updateOpacity: function () {
+ d.DomUtil.setOpacity(this._image, this.options.opacity)
+ }
+ }), d.imageOverlay = function (t, e, i) {
+ return new d.ImageOverlay(t, e, i)
+ }, d.Icon = d.Class.extend({
+ options: {
+ className: ""
+ },
+ initialize: function (t) {
+ d.setOptions(this, t)
+ },
+ createIcon: function (t) {
+ return this._createIcon("icon", t)
+ },
+ createShadow: function (t) {
+ return this._createIcon("shadow", t)
+ },
+ _createIcon: function (t, e) {
+ var i, o = this._getIconUrl(t);
+ if (!o) {
+ if ("icon" === t) throw new Error("iconUrl not set in Icon options (see the docs).");
+ return null
+ }
+ return i = e && "IMG" === e.tagName ? this._createImg(o, e) : this._createImg(o), this._setIconStyles(i, t), i
+ },
+ _setIconStyles: function (t, e) {
+ var i, o = this.options,
+ n = d.point(o[e + "Size"]);
+ !(i = "shadow" === e ? d.point(o.shadowAnchor || o.iconAnchor) : d.point(o.iconAnchor)) && n && (i = n.divideBy(2, !0)), t.className = "leaflet-marker-" + e + " " + o.className, i && (t.style.marginLeft = -i.x + "px", t.style.marginTop = -i.y + "px"), n && (t.style.width = n.x + "px", t.style.height = n.y + "px")
+ },
+ _createImg: function (t, e) {
+ return (e = e || a.createElement("img")).src = t, e
+ },
+ _getIconUrl: function (t) {
+ return d.Browser.retina && this.options[t + "RetinaUrl"] ? this.options[t + "RetinaUrl"] : this.options[t + "Url"]
+ }
+ }), d.icon = function (t) {
+ return new d.Icon(t)
+ }, d.Icon.Default = d.Icon.extend({
+ options: {
+ iconSize: [25, 41],
+ iconAnchor: [12, 41],
+ popupAnchor: [1, -34],
+ shadowSize: [41, 41]
+ },
+ _getIconUrl: function (t) {
+ var e = t + "Url";
+ if (this.options[e]) return this.options[e];
+ d.Browser.retina && "icon" === t && (t += "-2x");
+ var i = d.Icon.Default.imagePath;
+ if (!i) throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");
+ return i + "/marker-" + t + ".png"
+ }
+ }), d.Icon.Default.imagePath = function () {
+ var t, e, i, o, n = a.getElementsByTagName("script"),
+ s = /[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;
+ for (t = 0, e = n.length; t < e; t++)
+ if ((i = n[t].src).match(s)) return ((o = i.split(s)[0]) ? o + "/" : "") + "images"
+ }(), d.Marker = d.Class.extend({
+ includes: d.Mixin.Events,
+ options: {
+ icon: new d.Icon.Default,
+ title: "",
+ alt: "",
+ clickable: !0,
+ draggable: !1,
+ keyboard: !0,
+ zIndexOffset: 0,
+ opacity: 1,
+ riseOnHover: !1,
+ riseOffset: 250
+ },
+ initialize: function (t, e) {
+ d.setOptions(this, e), this._latlng = d.latLng(t)
+ },
+ onAdd: function (t) {
+ this._map = t, t.on("viewreset", this.update, this), this._initIcon(), this.update(), this.fire("add"), t.options.zoomAnimation && t.options.markerZoomAnimation && t.on("zoomanim", this._animateZoom, this)
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ onRemove: function (t) {
+ this.dragging && this.dragging.disable(), this._removeIcon(), this._removeShadow(), this.fire("remove"), t.off({
+ viewreset: this.update,
+ zoomanim: this._animateZoom
+ }, this), this._map = null
+ },
+ getLatLng: function () {
+ return this._latlng
+ },
+ setLatLng: function (t) {
+ return this._latlng = d.latLng(t), this.update(), this.fire("move", {
+ latlng: this._latlng
+ })
+ },
+ setZIndexOffset: function (t) {
+ return this.options.zIndexOffset = t, this.update(), this
+ },
+ setIcon: function (t) {
+ return this.options.icon = t, this._map && (this._initIcon(), this.update()), this._popup && this.bindPopup(this._popup), this
+ },
+ update: function () {
+ return this._icon && this._setPos(this._map.latLngToLayerPoint(this._latlng).round()), this
+ },
+ _initIcon: function () {
+ var t = this.options,
+ e = this._map,
+ i = e.options.zoomAnimation && e.options.markerZoomAnimation ? "leaflet-zoom-animated" : "leaflet-zoom-hide",
+ o = t.icon.createIcon(this._icon),
+ n = !1;
+ o !== this._icon && (this._icon && this._removeIcon(), n = !0, t.title && (o.title = t.title), t.alt && (o.alt = t.alt)), d.DomUtil.addClass(o, i), t.keyboard && (o.tabIndex = "0"), this._icon = o, this._initInteraction(), t.riseOnHover && d.DomEvent.on(o, "mouseover", this._bringToFront, this).on(o, "mouseout", this._resetZIndex, this);
+ var s = t.icon.createShadow(this._shadow),
+ a = !1;
+ s !== this._shadow && (this._removeShadow(), a = !0), s && d.DomUtil.addClass(s, i), this._shadow = s, t.opacity < 1 && this._updateOpacity();
+ var r = this._map._panes;
+ n && r.markerPane.appendChild(this._icon), s && a && r.shadowPane.appendChild(this._shadow)
+ },
+ _removeIcon: function () {
+ this.options.riseOnHover && d.DomEvent.off(this._icon, "mouseover", this._bringToFront).off(this._icon, "mouseout", this._resetZIndex), this._map._panes.markerPane.removeChild(this._icon), this._icon = null
+ },
+ _removeShadow: function () {
+ this._shadow && this._map._panes.shadowPane.removeChild(this._shadow), this._shadow = null
+ },
+ _setPos: function (t) {
+ d.DomUtil.setPosition(this._icon, t), this._shadow && d.DomUtil.setPosition(this._shadow, t), this._zIndex = t.y + this.options.zIndexOffset, this._resetZIndex()
+ },
+ _updateZIndex: function (t) {
+ this._icon.style.zIndex = this._zIndex + t
+ },
+ _animateZoom: function (t) {
+ var e = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round();
+ this._setPos(e)
+ },
+ _initInteraction: function () {
+ if (this.options.clickable) {
+ var t = this._icon,
+ e = ["dblclick", "mousedown", "mouseover", "mouseout", "contextmenu"];
+ d.DomUtil.addClass(t, "leaflet-clickable"), d.DomEvent.on(t, "click", this._onMouseClick, this), d.DomEvent.on(t, "keypress", this._onKeyPress, this);
+ for (var i = 0; i < e.length; i++) d.DomEvent.on(t, e[i], this._fireMouseEvent, this);
+ d.Handler.MarkerDrag && (this.dragging = new d.Handler.MarkerDrag(this), this.options.draggable && this.dragging.enable())
+ }
+ },
+ _onMouseClick: function (t) {
+ var e = this.dragging && this.dragging.moved();
+ (this.hasEventListeners(t.type) || e) && d.DomEvent.stopPropagation(t), e || (this.dragging && this.dragging._enabled || !this._map.dragging || !this._map.dragging.moved()) && this.fire(t.type, {
+ originalEvent: t,
+ latlng: this._latlng
+ })
+ },
+ _onKeyPress: function (t) {
+ 13 === t.keyCode && this.fire("click", {
+ originalEvent: t,
+ latlng: this._latlng
+ })
+ },
+ _fireMouseEvent: function (t) {
+ this.fire(t.type, {
+ originalEvent: t,
+ latlng: this._latlng
+ }), "contextmenu" === t.type && this.hasEventListeners(t.type) && d.DomEvent.preventDefault(t), "mousedown" !== t.type ? d.DomEvent.stopPropagation(t) : d.DomEvent.preventDefault(t)
+ },
+ setOpacity: function (t) {
+ return this.options.opacity = t, this._map && this._updateOpacity(), this
+ },
+ _updateOpacity: function () {
+ d.DomUtil.setOpacity(this._icon, this.options.opacity), this._shadow && d.DomUtil.setOpacity(this._shadow, this.options.opacity)
+ },
+ _bringToFront: function () {
+ this._updateZIndex(this.options.riseOffset)
+ },
+ _resetZIndex: function () {
+ this._updateZIndex(0)
+ }
+ }), d.marker = function (t, e) {
+ return new d.Marker(t, e)
+ }, d.DivIcon = d.Icon.extend({
+ options: {
+ iconSize: [12, 12],
+ className: "leaflet-div-icon",
+ html: !1
+ },
+ createIcon: function (t) {
+ var e = t && "DIV" === t.tagName ? t : a.createElement("div"),
+ i = this.options;
+ return !1 !== i.html ? e.innerHTML = i.html : e.innerHTML = "", i.bgPos && (e.style.backgroundPosition = -i.bgPos.x + "px " + -i.bgPos.y + "px"), this._setIconStyles(e, "icon"), e
+ },
+ createShadow: function () {
+ return null
+ }
+ }), d.divIcon = function (t) {
+ return new d.DivIcon(t)
+ }, d.Map.mergeOptions({
+ closePopupOnClick: !0
+ }), d.Popup = d.Class.extend({
+ includes: d.Mixin.Events,
+ options: {
+ minWidth: 50,
+ maxWidth: 300,
+ autoPan: !0,
+ closeButton: !0,
+ offset: [0, 7],
+ autoPanPadding: [5, 5],
+ keepInView: !1,
+ className: "",
+ zoomAnimation: !0
+ },
+ initialize: function (t, e) {
+ d.setOptions(this, t), this._source = e, this._animated = d.Browser.any3d && this.options.zoomAnimation, this._isOpen = !1
+ },
+ onAdd: function (t) {
+ this._map = t, this._container || this._initLayout();
+ var e = t.options.fadeAnimation;
+ e && d.DomUtil.setOpacity(this._container, 0), t._panes.popupPane.appendChild(this._container), t.on(this._getEvents(), this), this.update(), e && d.DomUtil.setOpacity(this._container, 1), this.fire("open"), t.fire("popupopen", {
+ popup: this
+ }), this._source && this._source.fire("popupopen", {
+ popup: this
+ })
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ openOn: function (t) {
+ return t.openPopup(this), this
+ },
+ onRemove: function (t) {
+ t._panes.popupPane.removeChild(this._container), d.Util.falseFn(this._container.offsetWidth), t.off(this._getEvents(), this), t.options.fadeAnimation && d.DomUtil.setOpacity(this._container, 0), this._map = null, this.fire("close"), t.fire("popupclose", {
+ popup: this
+ }), this._source && this._source.fire("popupclose", {
+ popup: this
+ })
+ },
+ getLatLng: function () {
+ return this._latlng
+ },
+ setLatLng: function (t) {
+ return this._latlng = d.latLng(t), this._map && (this._updatePosition(), this._adjustPan()), this
+ },
+ getContent: function () {
+ return this._content
+ },
+ setContent: function (t) {
+ return this._content = t, this.update(), this
+ },
+ update: function () {
+ this._map && (this._container.style.visibility = "hidden", this._updateContent(), this._updateLayout(), this._updatePosition(), this._container.style.visibility = "", this._adjustPan())
+ },
+ _getEvents: function () {
+ var t = {
+ viewreset: this._updatePosition
+ };
+ return this._animated && (t.zoomanim = this._zoomAnimation), ("closeOnClick" in this.options ? this.options.closeOnClick : this._map.options.closePopupOnClick) && (t.preclick = this._close), this.options.keepInView && (t.moveend = this._adjustPan), t
+ },
+ _close: function () {
+ this._map && this._map.closePopup(this)
+ },
+ _initLayout: function () {
+ var t, e = "leaflet-popup",
+ i = e + " " + this.options.className + " leaflet-zoom-" + (this._animated ? "animated" : "hide"),
+ o = this._container = d.DomUtil.create("div", i);
+ this.options.closeButton && ((t = this._closeButton = d.DomUtil.create("a", e + "-close-button", o)).href = "#close", t.innerHTML = "×", d.DomEvent.disableClickPropagation(t), d.DomEvent.on(t, "click", this._onCloseButtonClick, this));
+ var n = this._wrapper = d.DomUtil.create("div", e + "-content-wrapper", o);
+ d.DomEvent.disableClickPropagation(n), this._contentNode = d.DomUtil.create("div", e + "-content", n), d.DomEvent.disableScrollPropagation(this._contentNode), d.DomEvent.on(n, "contextmenu", d.DomEvent.stopPropagation), this._tipContainer = d.DomUtil.create("div", e + "-tip-container", o), this._tip = d.DomUtil.create("div", e + "-tip", this._tipContainer)
+ },
+ _updateContent: function () {
+ if (this._content) {
+ if ("string" == typeof this._content) this._contentNode.innerHTML = this._content;
+ else {
+ for (; this._contentNode.hasChildNodes();) this._contentNode.removeChild(this._contentNode.firstChild);
+ this._contentNode.appendChild(this._content)
+ }
+ this.fire("contentupdate")
+ }
+ },
+ _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", d.DomUtil.addClass(t, s)) : d.DomUtil.removeClass(t, s), this._containerWidth = this._container.offsetWidth
+ },
+ _updatePosition: function () {
+ if (this._map) {
+ var t = this._map.latLngToLayerPoint(this._latlng),
+ e = this._animated,
+ i = d.point(this.options.offset);
+ e && d.DomUtil.setPosition(this._container, t), this._containerBottom = -i.y - (e ? 0 : t.y), this._containerLeft = -Math.round(this._containerWidth / 2) + i.x + (e ? 0 : t.x), this._container.style.bottom = this._containerBottom + "px", this._container.style.left = this._containerLeft + "px"
+ }
+ },
+ _zoomAnimation: function (t) {
+ var e = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center);
+ d.DomUtil.setPosition(this._container, e)
+ },
+ _adjustPan: function () {
+ if (this.options.autoPan) {
+ var t = this._map,
+ e = this._container.offsetHeight,
+ i = this._containerWidth,
+ o = new d.Point(this._containerLeft, -e - this._containerBottom);
+ this._animated && o._add(d.DomUtil.getPosition(this._container));
+ var n = t.layerPointToContainerPoint(o),
+ s = d.point(this.options.autoPanPadding),
+ a = d.point(this.options.autoPanPaddingTopLeft || s),
+ r = d.point(this.options.autoPanPaddingBottomRight || s),
+ h = t.getSize(),
+ l = 0,
+ c = 0;
+ n.x + i + r.x > h.x && (l = n.x + i - h.x + r.x), n.x - l - a.x < 0 && (l = n.x - a.x), n.y + e + r.y > h.y && (c = n.y + e - h.y + r.y), n.y - c - a.y < 0 && (c = n.y - a.y), (l || c) && t.fire("autopanstart").panBy([l, c])
+ }
+ },
+ _onCloseButtonClick: function (t) {
+ this._close(), d.DomEvent.stop(t)
+ }
+ }), d.popup = function (t, e) {
+ return new d.Popup(t, e)
+ }, d.Map.include({
+ openPopup: function (t, e, i) {
+ if (this.closePopup(), !(t instanceof d.Popup)) {
+ var o = t;
+ t = new d.Popup(i).setLatLng(e).setContent(o)
+ }
+ return t._isOpen = !0, this._popup = t, this.addLayer(t)
+ },
+ closePopup: function (t) {
+ return t && t !== this._popup || (t = this._popup, this._popup = null), t && (this.removeLayer(t), t._isOpen = !1), this
+ }
+ }), d.Marker.include({
+ openPopup: function () {
+ return this._popup && this._map && !this._map.hasLayer(this._popup) && (this._popup.setLatLng(this._latlng), this._map.openPopup(this._popup)), this
+ },
+ closePopup: function () {
+ return this._popup && this._popup._close(), this
+ },
+ togglePopup: function () {
+ return this._popup && (this._popup._isOpen ? this.closePopup() : this.openPopup()), this
+ },
+ bindPopup: function (t, e) {
+ var i = d.point(this.options.icon.options.popupAnchor || [0, 0]);
+ return i = i.add(d.Popup.prototype.options.offset), e && e.offset && (i = i.add(e.offset)), e = d.extend({
+ offset: i
+ }, e), this._popupHandlersAdded || (this.on("click", this.togglePopup, this).on("remove", this.closePopup, this).on("move", this._movePopup, this), this._popupHandlersAdded = !0), t instanceof d.Popup ? (d.setOptions(t, e), this._popup = t, t._source = this) : this._popup = new d.Popup(e, this).setContent(t), this
+ },
+ setPopupContent: function (t) {
+ return this._popup && this._popup.setContent(t), this
+ },
+ unbindPopup: function () {
+ return this._popup && (this._popup = null, this.off("click", this.togglePopup, this).off("remove", this.closePopup, this).off("move", this._movePopup, this), this._popupHandlersAdded = !1), this
+ },
+ getPopup: function () {
+ return this._popup
+ },
+ _movePopup: function (t) {
+ this._popup.setLatLng(t.latlng)
+ }
+ }), d.LayerGroup = d.Class.extend({
+ initialize: function (t) {
+ var e, i;
+ if (this._layers = {}, t)
+ for (e = 0, i = t.length; e < i; e++) this.addLayer(t[e])
+ },
+ addLayer: function (t) {
+ var e = this.getLayerId(t);
+ return this._layers[e] = t, this._map && this._map.addLayer(t), this
+ },
+ removeLayer: function (t) {
+ var e = t in this._layers ? t : this.getLayerId(t);
+ return this._map && this._layers[e] && this._map.removeLayer(this._layers[e]), delete this._layers[e], this
+ },
+ hasLayer: function (t) {
+ return !!t && (t in this._layers || this.getLayerId(t) in this._layers)
+ },
+ clearLayers: function () {
+ return this.eachLayer(this.removeLayer, this), this
+ },
+ invoke: function (t) {
+ var e, i, o = Array.prototype.slice.call(arguments, 1);
+ for (e in this._layers)(i = this._layers[e])[t] && i[t].apply(i, o);
+ return this
+ },
+ onAdd: function (t) {
+ this._map = t, this.eachLayer(t.addLayer, t)
+ },
+ onRemove: function (t) {
+ this.eachLayer(t.removeLayer, t), this._map = null
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ eachLayer: function (t, e) {
+ for (var i in this._layers) t.call(e, this._layers[i]);
+ return this
+ },
+ getLayer: function (t) {
+ return this._layers[t]
+ },
+ getLayers: function () {
+ var t = [];
+ for (var e in this._layers) t.push(this._layers[e]);
+ return t
+ },
+ setZIndex: function (t) {
+ return this.invoke("setZIndex", t)
+ },
+ getLayerId: function (t) {
+ return d.stamp(t)
+ }
+ }), d.layerGroup = function (t) {
+ return new d.LayerGroup(t)
+ }, d.FeatureGroup = d.LayerGroup.extend({
+ includes: d.Mixin.Events,
+ statics: {
+ EVENTS: "click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"
+ },
+ addLayer: function (t) {
+ return this.hasLayer(t) ? this : ("on" in t && t.on(d.FeatureGroup.EVENTS, this._propagateEvent, this), d.LayerGroup.prototype.addLayer.call(this, t), this._popupContent && t.bindPopup && t.bindPopup(this._popupContent, this._popupOptions), this.fire("layeradd", {
+ layer: t
+ }))
+ },
+ removeLayer: function (t) {
+ return this.hasLayer(t) ? (t in this._layers && (t = this._layers[t]), "off" in t && t.off(d.FeatureGroup.EVENTS, this._propagateEvent, this), d.LayerGroup.prototype.removeLayer.call(this, t), this._popupContent && this.invoke("unbindPopup"), this.fire("layerremove", {
+ layer: t
+ })) : this
+ },
+ bindPopup: function (t, e) {
+ return this._popupContent = t, this._popupOptions = e, this.invoke("bindPopup", t, e)
+ },
+ openPopup: function (t) {
+ for (var e in this._layers) {
+ this._layers[e].openPopup(t);
+ break
+ }
+ return this
+ },
+ setStyle: function (t) {
+ return this.invoke("setStyle", t)
+ },
+ bringToFront: function () {
+ return this.invoke("bringToFront")
+ },
+ bringToBack: function () {
+ return this.invoke("bringToBack")
+ },
+ getBounds: function () {
+ var t = new d.LatLngBounds;
+ return this.eachLayer((function (e) {
+ t.extend(e instanceof d.Marker ? e.getLatLng() : e.getBounds())
+ })), t
+ },
+ _propagateEvent: function (t) {
+ t = d.extend({
+ layer: t.target,
+ target: this
+ }, t), this.fire(t.type, t)
+ }
+ }), d.featureGroup = function (t) {
+ return new d.FeatureGroup(t)
+ }, d.Path = d.Class.extend({
+ includes: [d.Mixin.Events],
+ statics: {
+ CLIP_PADDING: (B = ((d.Browser.mobile ? 1280 : 2e3) / Math.max(s.outerWidth, s.outerHeight) - 1) / 2, Math.max(0, Math.min(.5, B)))
+ },
+ options: {
+ stroke: !0,
+ color: "#0033ff",
+ dashArray: null,
+ lineCap: null,
+ lineJoin: null,
+ weight: 5,
+ opacity: .5,
+ fill: !1,
+ fillColor: null,
+ fillOpacity: .2,
+ clickable: !0
+ },
+ initialize: function (t) {
+ d.setOptions(this, t)
+ },
+ onAdd: function (t) {
+ this._map = t, this._container || (this._initElements(), this._initEvents()), this.projectLatlngs(), this._updatePath(), this._container && this._map._pathRoot.appendChild(this._container), this.fire("add"), t.on({
+ viewreset: this.projectLatlngs,
+ moveend: this._updatePath
+ }, this)
+ },
+ addTo: function (t) {
+ return t.addLayer(this), this
+ },
+ onRemove: function (t) {
+ t._pathRoot.removeChild(this._container), this.fire("remove"), this._map = null, d.Browser.vml && (this._container = null, this._stroke = null, this._fill = null), t.off({
+ viewreset: this.projectLatlngs,
+ moveend: this._updatePath
+ }, this)
+ },
+ projectLatlngs: function () {},
+ setStyle: function (t) {
+ return d.setOptions(this, t), this._container && this._updateStyle(), this
+ },
+ redraw: function () {
+ return this._map && (this.projectLatlngs(), this._updatePath()), this
+ }
+ }), d.Map.include({
+ _updatePathViewport: function () {
+ var t = d.Path.CLIP_PADDING,
+ e = this.getSize(),
+ i = d.DomUtil.getPosition(this._mapPane).multiplyBy(-1)._subtract(e.multiplyBy(t)._round()),
+ o = i.add(e.multiplyBy(1 + 2 * t)._round());
+ this._pathViewport = new d.Bounds(i, o)
+ }
+ }), d.Path.SVG_NS = "http://www.w3.org/2000/svg", d.Browser.svg = !(!a.createElementNS || !a.createElementNS(d.Path.SVG_NS, "svg").createSVGRect), d.Path = d.Path.extend({
+ statics: {
+ SVG: d.Browser.svg
+ },
+ bringToFront: function () {
+ var t = this._map._pathRoot,
+ e = this._container;
+ return e && t.lastChild !== e && t.appendChild(e), this
+ },
+ bringToBack: function () {
+ var t = this._map._pathRoot,
+ e = this._container,
+ i = t.firstChild;
+ return e && i !== e && t.insertBefore(e, i), this
+ },
+ getPathString: function () {},
+ _createElement: function (t) {
+ return a.createElementNS(d.Path.SVG_NS, t)
+ },
+ _initElements: function () {
+ this._map._initPathRoot(), this._initPath(), this._initStyle()
+ },
+ _initPath: function () {
+ this._container = this._createElement("g"), this._path = this._createElement("path"), this.options.className && d.DomUtil.addClass(this._path, this.options.className), this._container.appendChild(this._path)
+ },
+ _initStyle: function () {
+ this.options.stroke && (this._path.setAttribute("stroke-linejoin", "round"), this._path.setAttribute("stroke-linecap", "round")), this.options.fill && this._path.setAttribute("fill-rule", "evenodd"), this.options.pointerEvents && this._path.setAttribute("pointer-events", this.options.pointerEvents), this.options.clickable || this.options.pointerEvents || this._path.setAttribute("pointer-events", "none"), this._updateStyle()
+ },
+ _updateStyle: function () {
+ this.options.stroke ? (this._path.setAttribute("stroke", this.options.color), this._path.setAttribute("stroke-opacity", this.options.opacity), this._path.setAttribute("stroke-width", this.options.weight), this.options.dashArray ? this._path.setAttribute("stroke-dasharray", this.options.dashArray) : this._path.removeAttribute("stroke-dasharray"), this.options.lineCap && this._path.setAttribute("stroke-linecap", this.options.lineCap), this.options.lineJoin && this._path.setAttribute("stroke-linejoin", this.options.lineJoin)) : this._path.setAttribute("stroke", "none"), this.options.fill ? (this._path.setAttribute("fill", this.options.fillColor || this.options.color), this._path.setAttribute("fill-opacity", this.options.fillOpacity)) : this._path.setAttribute("fill", "none")
+ },
+ _updatePath: function () {
+ var t = this.getPathString();
+ t || (t = "M0 0"), this._path.setAttribute("d", t)
+ },
+ _initEvents: function () {
+ if (this.options.clickable) {
+ !d.Browser.svg && d.Browser.vml || d.DomUtil.addClass(this._path, "leaflet-clickable"), d.DomEvent.on(this._container, "click", this._onMouseClick, this);
+ for (var t = ["dblclick", "mousedown", "mouseover", "mouseout", "mousemove", "contextmenu"], e = 0; e < t.length; e++) d.DomEvent.on(this._container, t[e], this._fireMouseEvent, this)
+ }
+ },
+ _onMouseClick: function (t) {
+ this._map.dragging && this._map.dragging.moved() || this._fireMouseEvent(t)
+ },
+ _fireMouseEvent: function (t) {
+ if (this._map && this.hasEventListeners(t.type)) {
+ var e = this._map,
+ i = e.mouseEventToContainerPoint(t),
+ o = e.containerPointToLayerPoint(i),
+ n = e.layerPointToLatLng(o);
+ this.fire(t.type, {
+ latlng: n,
+ layerPoint: o,
+ containerPoint: i,
+ originalEvent: t
+ }), "contextmenu" === t.type && d.DomEvent.preventDefault(t), "mousemove" !== t.type && d.DomEvent.stopPropagation(t)
+ }
+ }
+ }), d.Map.include({
+ _initPathRoot: function () {
+ this._pathRoot || (this._pathRoot = d.Path.prototype._createElement("svg"), this._panes.overlayPane.appendChild(this._pathRoot), this.options.zoomAnimation && d.Browser.any3d ? (d.DomUtil.addClass(this._pathRoot, "leaflet-zoom-animated"), this.on({
+ zoomanim: this._animatePathZoom,
+ zoomend: this._endPathZoom
+ })) : d.DomUtil.addClass(this._pathRoot, "leaflet-zoom-hide"), this.on("moveend", this._updateSvgViewport), this._updateSvgViewport())
+ },
+ _animatePathZoom: function (t) {
+ var e = this.getZoomScale(t.zoom),
+ i = this._getCenterOffset(t.center)._multiplyBy(-e)._add(this._pathViewport.min);
+ this._pathRoot.style[d.DomUtil.TRANSFORM] = d.DomUtil.getTranslateString(i) + " scale(" + e + ") ", this._pathZooming = !0
+ },
+ _endPathZoom: function () {
+ this._pathZooming = !1
+ },
+ _updateSvgViewport: function () {
+ if (!this._pathZooming) {
+ this._updatePathViewport();
+ var t = this._pathViewport,
+ e = t.min,
+ i = t.max,
+ o = i.x - e.x,
+ n = i.y - e.y,
+ s = this._pathRoot,
+ a = this._panes.overlayPane;
+ d.Browser.mobileWebkit && a.removeChild(s), d.DomUtil.setPosition(s, e), s.setAttribute("width", o), s.setAttribute("height", n), s.setAttribute("viewBox", [e.x, e.y, o, n].join(" ")), d.Browser.mobileWebkit && a.appendChild(s)
+ }
+ }
+ }), d.Path.include({
+ bindPopup: function (t, e) {
+ return t instanceof d.Popup ? this._popup = t : (this._popup && !e || (this._popup = new d.Popup(e, this)), this._popup.setContent(t)), this._popupHandlersAdded || (this.on("click", this._openPopup, this).on("remove", this.closePopup, this), this._popupHandlersAdded = !0), this
+ },
+ unbindPopup: function () {
+ return this._popup && (this._popup = null, this.off("click", this._openPopup).off("remove", this.closePopup), this._popupHandlersAdded = !1), this
+ },
+ openPopup: function (t) {
+ return this._popup && (t = t || this._latlng || this._latlngs[Math.floor(this._latlngs.length / 2)], this._openPopup({
+ latlng: t
+ })), this
+ },
+ closePopup: function () {
+ return this._popup && this._popup._close(), this
+ },
+ _openPopup: function (t) {
+ this._popup.setLatLng(t.latlng), this._map.openPopup(this._popup)
+ }
+ }), d.Browser.vml = !d.Browser.svg && function () {
+ try {
+ var t = a.createElement("div");
+ t.innerHTML = ' ';
+ var e = t.firstChild;
+ return e.style.behavior = "url(#default#VML)", e && "object" == typeof e.adj
+ } catch (t) {
+ return !1
+ }
+ }(), d.Path = d.Browser.svg || !d.Browser.vml ? d.Path : d.Path.extend({
+ statics: {
+ VML: !0,
+ CLIP_PADDING: .02
+ },
+ _createElement: function () {
+ try {
+ return a.namespaces.add("lvml", "urn:schemas-microsoft-com:vml"),
+ function (t) {
+ return a.createElement("')
+ }
+ } catch (t) {
+ return function (t) {
+ return a.createElement("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')
+ }
+ }
+ }(),
+ _initPath: function () {
+ var t = this._container = this._createElement("shape");
+ d.DomUtil.addClass(t, "leaflet-vml-shape" + (this.options.className ? " " + this.options.className : "")), this.options.clickable && d.DomUtil.addClass(t, "leaflet-clickable"), t.coordsize = "1 1", this._path = this._createElement("path"), t.appendChild(this._path), this._map._pathRoot.appendChild(t)
+ },
+ _initStyle: function () {
+ this._updateStyle()
+ },
+ _updateStyle: function () {
+ var t = this._stroke,
+ e = this._fill,
+ i = this.options,
+ o = this._container;
+ o.stroked = i.stroke, o.filled = i.fill, i.stroke ? (t || ((t = this._stroke = this._createElement("stroke")).endcap = "round", o.appendChild(t)), t.weight = i.weight + "px", t.color = i.color, t.opacity = i.opacity, i.dashArray ? t.dashStyle = d.Util.isArray(i.dashArray) ? i.dashArray.join(" ") : i.dashArray.replace(/( *, *)/g, " ") : t.dashStyle = "", i.lineCap && (t.endcap = i.lineCap.replace("butt", "flat")), i.lineJoin && (t.joinstyle = i.lineJoin)) : t && (o.removeChild(t), this._stroke = null), i.fill ? (e || (e = this._fill = this._createElement("fill"), o.appendChild(e)), e.color = i.fillColor || i.color, e.opacity = i.fillOpacity) : e && (o.removeChild(e), this._fill = null)
+ },
+ _updatePath: function () {
+ var t = this._container.style;
+ t.display = "none", this._path.v = this.getPathString() + " ", t.display = ""
+ }
+ }), d.Map.include(d.Browser.svg || !d.Browser.vml ? {} : {
+ _initPathRoot: function () {
+ if (!this._pathRoot) {
+ var t = this._pathRoot = a.createElement("div");
+ t.className = "leaflet-vml-container", this._panes.overlayPane.appendChild(t), this.on("moveend", this._updatePathViewport), this._updatePathViewport()
+ }
+ }
+ }), d.Browser.canvas = !!a.createElement("canvas").getContext, d.Path = d.Path.SVG && !s.L_PREFER_CANVAS || !d.Browser.canvas ? d.Path : d.Path.extend({
+ statics: {
+ CANVAS: !0,
+ SVG: !1
+ },
+ redraw: function () {
+ return this._map && (this.projectLatlngs(), this._requestUpdate()), this
+ },
+ setStyle: function (t) {
+ return d.setOptions(this, t), this._map && (this._updateStyle(), this._requestUpdate()), this
+ },
+ onRemove: function (t) {
+ t.off("viewreset", this.projectLatlngs, this).off("moveend", this._updatePath, this), this.options.clickable && (this._map.off("click", this._onClick, this), this._map.off("mousemove", this._onMouseMove, this)), this._requestUpdate(), this.fire("remove"), this._map = null
+ },
+ _requestUpdate: function () {
+ this._map && !d.Path._updateRequest && (d.Path._updateRequest = d.Util.requestAnimFrame(this._fireMapMoveEnd, this._map))
+ },
+ _fireMapMoveEnd: function () {
+ d.Path._updateRequest = null, this.fire("moveend")
+ },
+ _initElements: function () {
+ this._map._initPathRoot(), this._ctx = this._map._canvasCtx
+ },
+ _updateStyle: function () {
+ var t = this.options;
+ t.stroke && (this._ctx.lineWidth = t.weight, this._ctx.strokeStyle = t.color), t.fill && (this._ctx.fillStyle = t.fillColor || t.color), t.lineCap && (this._ctx.lineCap = t.lineCap), t.lineJoin && (this._ctx.lineJoin = t.lineJoin)
+ },
+ _drawPath: function () {
+ var t, e, i, o, n, s;
+ for (this._ctx.beginPath(), t = 0, i = this._parts.length; t < i; t++) {
+ for (e = 0, o = this._parts[t].length; e < o; e++) n = this._parts[t][e], s = (0 === e ? "move" : "line") + "To", this._ctx[s](n.x, n.y);
+ this instanceof d.Polygon && this._ctx.closePath()
+ }
+ },
+ _checkIfEmpty: function () {
+ return !this._parts.length
+ },
+ _updatePath: function () {
+ if (!this._checkIfEmpty()) {
+ var t = this._ctx,
+ e = this.options;
+ this._drawPath(), t.save(), this._updateStyle(), e.fill && (t.globalAlpha = e.fillOpacity, t.fill(e.fillRule || "evenodd")), e.stroke && (t.globalAlpha = e.opacity, t.stroke()), t.restore()
+ }
+ },
+ _initEvents: function () {
+ this.options.clickable && (this._map.on("mousemove", this._onMouseMove, this), this._map.on("click dblclick contextmenu", this._fireMouseEvent, this))
+ },
+ _fireMouseEvent: function (t) {
+ this._containsPoint(t.layerPoint) && this.fire(t.type, t)
+ },
+ _onMouseMove: function (t) {
+ this._map && !this._map._animatingZoom && (this._containsPoint(t.layerPoint) ? (this._ctx.canvas.style.cursor = "pointer", this._mouseInside = !0, this.fire("mouseover", t)) : this._mouseInside && (this._ctx.canvas.style.cursor = "", this._mouseInside = !1, this.fire("mouseout", t)))
+ }
+ }), d.Map.include(d.Path.SVG && !s.L_PREFER_CANVAS || !d.Browser.canvas ? {} : {
+ _initPathRoot: function () {
+ var t, e = this._pathRoot;
+ e || ((e = this._pathRoot = a.createElement("canvas")).style.position = "absolute", (t = this._canvasCtx = e.getContext("2d")).lineCap = "round", t.lineJoin = "round", this._panes.overlayPane.appendChild(e), this.options.zoomAnimation && (this._pathRoot.className = "leaflet-zoom-animated", this.on("zoomanim", this._animatePathZoom), this.on("zoomend", this._endPathZoom)), this.on("moveend", this._updateCanvasViewport), this._updateCanvasViewport())
+ },
+ _updateCanvasViewport: function () {
+ if (!this._pathZooming) {
+ this._updatePathViewport();
+ var t = this._pathViewport,
+ e = t.min,
+ i = t.max.subtract(e),
+ o = this._pathRoot;
+ d.DomUtil.setPosition(o, e), o.width = i.x, o.height = i.y, o.getContext("2d").translate(-e.x, -e.y)
+ }
+ }
+ }), d.LineUtil = {
+ simplify: function (t, e) {
+ if (!e || !t.length) return t.slice();
+ var i = e * e;
+ return t = this._reducePoints(t, i), t = this._simplifyDP(t, i)
+ },
+ pointToSegmentDistance: function (t, e, i) {
+ return Math.sqrt(this._sqClosestPointOnSegment(t, e, i, !0))
+ },
+ closestPointOnSegment: function (t, e, i) {
+ return this._sqClosestPointOnSegment(t, e, i)
+ },
+ _simplifyDP: function (t, e) {
+ var i = t.length,
+ o = new("undefined" != typeof Uint8Array ? Uint8Array : Array)(i);
+ o[0] = o[i - 1] = 1, this._simplifyDPStep(t, o, e, 0, i - 1);
+ var n, s = [];
+ for (n = 0; n < i; n++) o[n] && s.push(t[n]);
+ return s
+ },
+ _simplifyDPStep: function (t, e, i, o, n) {
+ var s, a, r, h = 0;
+ for (a = o + 1; a <= n - 1; a++)(r = this._sqClosestPointOnSegment(t[a], t[o], t[n], !0)) > h && (s = a, h = r);
+ h > i && (e[s] = 1, this._simplifyDPStep(t, e, i, o, s), this._simplifyDPStep(t, e, i, s, n))
+ },
+ _reducePoints: function (t, e) {
+ for (var i = [t[0]], o = 1, n = 0, s = t.length; o < s; o++) this._sqDist(t[o], t[n]) > e && (i.push(t[o]), n = o);
+ return n < s - 1 && i.push(t[s - 1]), i
+ },
+ clipSegment: function (t, e, i, o) {
+ var n, s, a, r = o ? this._lastCode : this._getBitCode(t, i),
+ h = this._getBitCode(e, i);
+ for (this._lastCode = h;;) {
+ if (!(r | h)) return [t, e];
+ if (r & h) return !1;
+ n = r || h, s = this._getEdgeIntersection(t, e, n, i), a = this._getBitCode(s, i), n === r ? (t = s, r = a) : (e = s, h = a)
+ }
+ },
+ _getEdgeIntersection: function (t, e, i, o) {
+ var n = e.x - t.x,
+ s = e.y - t.y,
+ a = o.min,
+ r = o.max;
+ return 8 & i ? new d.Point(t.x + n * (r.y - t.y) / s, r.y) : 4 & i ? new d.Point(t.x + n * (a.y - t.y) / s, a.y) : 2 & i ? new d.Point(r.x, t.y + s * (r.x - t.x) / n) : 1 & i ? new d.Point(a.x, t.y + s * (a.x - t.x) / n) : void 0
+ },
+ _getBitCode: function (t, e) {
+ var i = 0;
+ return t.x < e.min.x ? i |= 1 : t.x > e.max.x && (i |= 2), t.y < e.min.y ? i |= 4 : t.y > e.max.y && (i |= 8), i
+ },
+ _sqDist: function (t, e) {
+ var i = e.x - t.x,
+ o = e.y - t.y;
+ return i * i + o * o
+ },
+ _sqClosestPointOnSegment: function (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 d.Point(s, a)
+ }
+ }, d.Polyline = d.Path.extend({
+ initialize: function (t, e) {
+ d.Path.prototype.initialize.call(this, e), this._latlngs = this._convertLatLngs(t)
+ },
+ options: {
+ smoothFactor: 1,
+ noClip: !1
+ },
+ projectLatlngs: function () {
+ this._originalPoints = [];
+ for (var t = 0, e = this._latlngs.length; t < e; t++) this._originalPoints[t] = this._map.latLngToLayerPoint(this._latlngs[t])
+ },
+ getPathString: function () {
+ for (var t = 0, e = this._parts.length, i = ""; t < e; t++) i += this._getPathPartStr(this._parts[t]);
+ return i
+ },
+ getLatLngs: function () {
+ return this._latlngs
+ },
+ setLatLngs: function (t) {
+ return this._latlngs = this._convertLatLngs(t), this.redraw()
+ },
+ addLatLng: function (t) {
+ return this._latlngs.push(d.latLng(t)), this.redraw()
+ },
+ spliceLatLngs: function () {
+ var t = [].splice.apply(this._latlngs, arguments);
+ return this._convertLatLngs(this._latlngs, !0), this.redraw(), t
+ },
+ closestLayerPoint: function (t) {
+ for (var e, i, o = 1 / 0, n = this._parts, s = null, a = 0, r = n.length; a < r; a++)
+ for (var h = n[a], l = 1, c = h.length; l < c; l++) {
+ e = h[l - 1], i = h[l];
+ var p = d.LineUtil._sqClosestPointOnSegment(t, e, i, !0);
+ p < o && (o = p, s = d.LineUtil._sqClosestPointOnSegment(t, e, i))
+ }
+ return s && (s.distance = Math.sqrt(o)), s
+ },
+ getBounds: function () {
+ return new d.LatLngBounds(this.getLatLngs())
+ },
+ _convertLatLngs: function (t, e) {
+ var i, o, n = e ? t : [];
+ for (i = 0, o = t.length; i < o; i++) {
+ if (d.Util.isArray(t[i]) && "number" != typeof t[i][0]) return;
+ n[i] = d.latLng(t[i])
+ }
+ return n
+ },
+ _initEvents: function () {
+ d.Path.prototype._initEvents.call(this)
+ },
+ _getPathPartStr: function (t) {
+ for (var e, i = d.Path.VML, o = 0, n = t.length, s = ""; o < n; o++) e = t[o], i && e._round(), s += (o ? "L" : "M") + e.x + " " + e.y;
+ return s
+ },
+ _clipPoints: function () {
+ var t, e, i, o = this._originalPoints,
+ n = o.length;
+ if (this.options.noClip) this._parts = [o];
+ else {
+ this._parts = [];
+ var s = this._parts,
+ a = this._map._pathViewport,
+ r = d.LineUtil;
+ for (t = 0, e = 0; t < n - 1; t++)(i = r.clipSegment(o[t], o[t + 1], a, t)) && (s[e] = s[e] || [], s[e].push(i[0]), i[1] === o[t + 1] && t !== n - 2 || (s[e].push(i[1]), e++))
+ }
+ },
+ _simplifyPoints: function () {
+ for (var t = this._parts, e = d.LineUtil, i = 0, o = t.length; i < o; i++) t[i] = e.simplify(t[i], this.options.smoothFactor)
+ },
+ _updatePath: function () {
+ this._map && (this._clipPoints(), this._simplifyPoints(), d.Path.prototype._updatePath.call(this))
+ }
+ }), d.polyline = function (t, e) {
+ return new d.Polyline(t, e)
+ }, d.PolyUtil = {}, d.PolyUtil.clipPolygon = function (t, e) {
+ var i, o, n, s, a, r, h, l, c, p = [1, 4, 2, 8],
+ _ = d.LineUtil;
+ for (o = 0, h = t.length; o < h; o++) t[o]._code = _._getBitCode(t[o], e);
+ for (s = 0; s < 4; s++) {
+ for (l = p[s], i = [], o = 0, n = (h = t.length) - 1; o < h; n = o++) a = t[o], r = t[n], a._code & l ? r._code & l || ((c = _._getEdgeIntersection(r, a, l, e))._code = _._getBitCode(c, e), i.push(c)) : (r._code & l && ((c = _._getEdgeIntersection(r, a, l, e))._code = _._getBitCode(c, e), i.push(c)), i.push(a));
+ t = i
+ }
+ return t
+ }, d.Polygon = d.Polyline.extend({
+ options: {
+ fill: !0
+ },
+ initialize: function (t, e) {
+ d.Polyline.prototype.initialize.call(this, t, e), this._initWithHoles(t)
+ },
+ _initWithHoles: function (t) {
+ var e, i, o;
+ if (t && d.Util.isArray(t[0]) && "number" != typeof t[0][0])
+ for (this._latlngs = this._convertLatLngs(t[0]), this._holes = t.slice(1), e = 0, i = this._holes.length; e < i; e++)(o = this._holes[e] = this._convertLatLngs(this._holes[e]))[0].equals(o[o.length - 1]) && o.pop();
+ (t = this._latlngs).length >= 2 && t[0].equals(t[t.length - 1]) && t.pop()
+ },
+ projectLatlngs: function () {
+ var t, e, i, o;
+ if (d.Polyline.prototype.projectLatlngs.call(this), this._holePoints = [], this._holes)
+ for (t = 0, i = this._holes.length; t < i; t++)
+ for (this._holePoints[t] = [], e = 0, o = this._holes[t].length; e < o; e++) this._holePoints[t][e] = this._map.latLngToLayerPoint(this._holes[t][e])
+ },
+ setLatLngs: function (t) {
+ return t && d.Util.isArray(t[0]) && "number" != typeof t[0][0] ? (this._initWithHoles(t), this.redraw()) : d.Polyline.prototype.setLatLngs.call(this, t)
+ },
+ _clipPoints: function () {
+ var t = this._originalPoints,
+ e = [];
+ if (this._parts = [t].concat(this._holePoints), !this.options.noClip) {
+ for (var i = 0, o = this._parts.length; i < o; i++) {
+ var n = d.PolyUtil.clipPolygon(this._parts[i], this._map._pathViewport);
+ n.length && e.push(n)
+ }
+ this._parts = e
+ }
+ },
+ _getPathPartStr: function (t) {
+ return d.Polyline.prototype._getPathPartStr.call(this, t) + (d.Browser.svg ? "z" : "x")
+ }
+ }), d.polygon = function (t, e) {
+ return new d.Polygon(t, e)
+ },
+ function () {
+ function t(t) {
+ return d.FeatureGroup.extend({
+ initialize: function (t, e) {
+ this._layers = {}, this._options = e, this.setLatLngs(t)
+ },
+ setLatLngs: function (e) {
+ var i = 0,
+ o = e.length;
+ for (this.eachLayer((function (t) {
+ i < o ? t.setLatLngs(e[i++]) : this.removeLayer(t)
+ }), this); i < o;) this.addLayer(new t(e[i++], this._options));
+ return this
+ },
+ getLatLngs: function () {
+ var t = [];
+ return this.eachLayer((function (e) {
+ t.push(e.getLatLngs())
+ })), t
+ }
+ })
+ }
+ d.MultiPolyline = t(d.Polyline), d.MultiPolygon = t(d.Polygon), d.multiPolyline = function (t, e) {
+ return new d.MultiPolyline(t, e)
+ }, d.multiPolygon = function (t, e) {
+ return new d.MultiPolygon(t, e)
+ }
+ }(), d.Rectangle = d.Polygon.extend({
+ initialize: function (t, e) {
+ d.Polygon.prototype.initialize.call(this, this._boundsToLatLngs(t), e)
+ },
+ setBounds: function (t) {
+ this.setLatLngs(this._boundsToLatLngs(t))
+ },
+ _boundsToLatLngs: function (t) {
+ return [(t = d.latLngBounds(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()]
+ }
+ }), d.rectangle = function (t, e) {
+ return new d.Rectangle(t, e)
+ }, d.Circle = d.Path.extend({
+ initialize: function (t, e, i) {
+ d.Path.prototype.initialize.call(this, i), this._latlng = d.latLng(t), this._mRadius = e
+ },
+ options: {
+ fill: !0
+ },
+ setLatLng: function (t) {
+ return this._latlng = d.latLng(t), this.redraw()
+ },
+ setRadius: function (t) {
+ return this._mRadius = t, this.redraw()
+ },
+ projectLatlngs: function () {
+ var t = this._getLngRadius(),
+ e = this._latlng,
+ i = this._map.latLngToLayerPoint([e.lat, e.lng - t]);
+ this._point = this._map.latLngToLayerPoint(e), this._radius = Math.max(this._point.x - i.x, 1)
+ },
+ getBounds: function () {
+ var t = this._getLngRadius(),
+ e = this._mRadius / 40075017 * 360,
+ i = this._latlng;
+ return new d.LatLngBounds([i.lat - e, i.lng - t], [i.lat + e, i.lng + t])
+ },
+ getLatLng: function () {
+ return this._latlng
+ },
+ getPathString: function () {
+ var t = this._point,
+ e = this._radius;
+ return this._checkIfEmpty() ? "" : d.Browser.svg ? "M" + t.x + "," + (t.y - e) + "A" + e + "," + e + ",0,1,1," + (t.x - .1) + "," + (t.y - e) + " z" : (t._round(), e = Math.round(e), "AL " + t.x + "," + t.y + " " + e + "," + e + " 0,23592600")
+ },
+ getRadius: function () {
+ return this._mRadius
+ },
+ _getLatRadius: function () {
+ return this._mRadius / 40075017 * 360
+ },
+ _getLngRadius: function () {
+ return this._getLatRadius() / Math.cos(d.LatLng.DEG_TO_RAD * this._latlng.lat)
+ },
+ _checkIfEmpty: function () {
+ if (!this._map) return !1;
+ var t = this._map._pathViewport,
+ e = this._radius,
+ i = this._point;
+ return i.x - e > t.max.x || i.y - e > t.max.y || i.x + e < t.min.x || i.y + e < t.min.y
+ }
+ }), d.circle = function (t, e, i) {
+ return new d.Circle(t, e, i)
+ }, d.CircleMarker = d.Circle.extend({
+ options: {
+ radius: 10,
+ weight: 2
+ },
+ initialize: function (t, e) {
+ d.Circle.prototype.initialize.call(this, t, null, e), this._radius = this.options.radius
+ },
+ projectLatlngs: function () {
+ this._point = this._map.latLngToLayerPoint(this._latlng)
+ },
+ _updateStyle: function () {
+ d.Circle.prototype._updateStyle.call(this), this.setRadius(this.options.radius)
+ },
+ setLatLng: function (t) {
+ return d.Circle.prototype.setLatLng.call(this, t), this._popup && this._popup._isOpen && this._popup.setLatLng(t), this
+ },
+ setRadius: function (t) {
+ return this.options.radius = this._radius = t, this.redraw()
+ },
+ getRadius: function () {
+ return this._radius
+ }
+ }), d.circleMarker = function (t, e) {
+ return new d.CircleMarker(t, e)
+ }, d.Polyline.include(d.Path.CANVAS ? {
+ _containsPoint: function (t, e) {
+ var i, o, n, s, a, r, h = this.options.weight / 2;
+ for (d.Browser.touch && (h += 10), i = 0, s = this._parts.length; i < s; i++)
+ for (o = 0, n = (a = (r = this._parts[i]).length) - 1; o < a; n = o++)
+ if ((e || 0 !== o) && d.LineUtil.pointToSegmentDistance(t, r[n], r[o]) <= h) return !0;
+ return !1
+ }
+ } : {}), d.Polygon.include(d.Path.CANVAS ? {
+ _containsPoint: function (t) {
+ var e, i, o, n, s, a, r, h, l = !1;
+ if (d.Polyline.prototype._containsPoint.call(this, t, !0)) return !0;
+ for (n = 0, r = this._parts.length; n < r; n++)
+ for (s = 0, a = (h = (e = this._parts[n]).length) - 1; s < h; a = s++) i = e[s], o = e[a], i.y > t.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
+ }
+ } : {}), d.Circle.include(d.Path.CANVAS ? {
+ _drawPath: function () {
+ var t = this._point;
+ this._ctx.beginPath(), this._ctx.arc(t.x, t.y, this._radius, 0, 2 * Math.PI, !1)
+ },
+ _containsPoint: function (t) {
+ var e = this._point,
+ i = this.options.stroke ? this.options.weight / 2 : 0;
+ return t.distanceTo(e) <= this._radius + i
+ }
+ } : {}), d.CircleMarker.include(d.Path.CANVAS ? {
+ _updateStyle: function () {
+ d.Path.prototype._updateStyle.call(this)
+ }
+ } : {}), d.GeoJSON = d.FeatureGroup.extend({
+ initialize: function (t, e) {
+ d.setOptions(this, e), this._layers = {}, t && this.addData(t)
+ },
+ addData: function (t) {
+ var e, i, o, n = d.Util.isArray(t) ? t : t.features;
+ if (n) {
+ for (e = 0, i = n.length; e < i; e++)((o = n[e]).geometries || o.geometry || o.features || o.coordinates) && this.addData(n[e]);
+ return this
+ }
+ var s = this.options;
+ if (!s.filter || s.filter(t)) {
+ var a = d.GeoJSON.geometryToLayer(t, s.pointToLayer, s.coordsToLatLng, s);
+ return a.feature = d.GeoJSON.asFeature(t), a.defaultOptions = a.options, this.resetStyle(a), s.onEachFeature && s.onEachFeature(t, a), this.addLayer(a)
+ }
+ },
+ resetStyle: function (t) {
+ var e = this.options.style;
+ e && (d.Util.extend(t.options, t.defaultOptions), this._setLayerStyle(t, e))
+ },
+ setStyle: function (t) {
+ this.eachLayer((function (e) {
+ this._setLayerStyle(e, t)
+ }), this)
+ },
+ _setLayerStyle: function (t, e) {
+ "function" == typeof e && (e = e(t.feature)), t.setStyle && t.setStyle(e)
+ }
+ }), d.extend(d.GeoJSON, {
+ geometryToLayer: function (t, e, i, o) {
+ var n, s, a, r, h = "Feature" === t.type ? t.geometry : t,
+ l = h.coordinates,
+ c = [];
+ switch (i = i || this.coordsToLatLng, h.type) {
+ case "Point":
+ return n = i(l), e ? e(t, n) : new d.Marker(n);
+ case "MultiPoint":
+ for (a = 0, r = l.length; a < r; a++) n = i(l[a]), c.push(e ? e(t, n) : new d.Marker(n));
+ return new d.FeatureGroup(c);
+ case "LineString":
+ return s = this.coordsToLatLngs(l, 0, i), new d.Polyline(s, o);
+ case "Polygon":
+ if (2 === l.length && !l[1].length) throw new Error("Invalid GeoJSON object.");
+ return s = this.coordsToLatLngs(l, 1, i), new d.Polygon(s, o);
+ case "MultiLineString":
+ return s = this.coordsToLatLngs(l, 1, i), new d.MultiPolyline(s, o);
+ case "MultiPolygon":
+ return s = this.coordsToLatLngs(l, 2, i), new d.MultiPolygon(s, o);
+ case "GeometryCollection":
+ for (a = 0, r = h.geometries.length; a < r; a++) c.push(this.geometryToLayer({
+ geometry: h.geometries[a],
+ type: "Feature",
+ properties: t.properties
+ }, e, i, o));
+ return new d.FeatureGroup(c);
+ default:
+ throw new Error("Invalid GeoJSON object.")
+ }
+ },
+ coordsToLatLng: function (t) {
+ return new d.LatLng(t[1], t[0], t[2])
+ },
+ coordsToLatLngs: function (t, e, i) {
+ var o, n, s, a = [];
+ for (n = 0, s = t.length; n < s; n++) o = e ? this.coordsToLatLngs(t[n], e - 1, i) : (i || this.coordsToLatLng)(t[n]), a.push(o);
+ return a
+ },
+ latLngToCoords: function (t) {
+ var e = [t.lng, t.lat];
+ return t.alt !== r && e.push(t.alt), e
+ },
+ latLngsToCoords: function (t) {
+ for (var e = [], i = 0, o = t.length; i < o; i++) e.push(d.GeoJSON.latLngToCoords(t[i]));
+ return e
+ },
+ getFeature: function (t, e) {
+ return t.feature ? d.extend({}, t.feature, {
+ geometry: e
+ }) : d.GeoJSON.asFeature(e)
+ },
+ asFeature: function (t) {
+ return "Feature" === t.type ? t : {
+ type: "Feature",
+ properties: {},
+ geometry: t
+ }
+ }
+ });
+ var I = {
+ toGeoJSON: function () {
+ return d.GeoJSON.getFeature(this, {
+ type: "Point",
+ coordinates: d.GeoJSON.latLngToCoords(this.getLatLng())
+ })
+ }
+ };
+ d.Marker.include(I), d.Circle.include(I), d.CircleMarker.include(I), d.Polyline.include({
+ toGeoJSON: function () {
+ return d.GeoJSON.getFeature(this, {
+ type: "LineString",
+ coordinates: d.GeoJSON.latLngsToCoords(this.getLatLngs())
+ })
+ }
+ }), d.Polygon.include({
+ toGeoJSON: function () {
+ var t, e, i, o = [d.GeoJSON.latLngsToCoords(this.getLatLngs())];
+ if (o[0].push(o[0][0]), this._holes)
+ for (t = 0, e = this._holes.length; t < e; t++)(i = d.GeoJSON.latLngsToCoords(this._holes[t])).push(i[0]), o.push(i);
+ return d.GeoJSON.getFeature(this, {
+ type: "Polygon",
+ coordinates: o
+ })
+ }
+ }),
+ function () {
+ function t(t) {
+ return function () {
+ var e = [];
+ return this.eachLayer((function (t) {
+ e.push(t.toGeoJSON().geometry.coordinates)
+ })), d.GeoJSON.getFeature(this, {
+ type: t,
+ coordinates: e
+ })
+ }
+ }
+ d.MultiPolyline.include({
+ toGeoJSON: t("MultiLineString")
+ }), d.MultiPolygon.include({
+ toGeoJSON: t("MultiPolygon")
+ }), d.LayerGroup.include({
+ toGeoJSON: function () {
+ var e, i = this.feature && this.feature.geometry,
+ o = [];
+ if (i && "MultiPoint" === i.type) return t("MultiPoint").call(this);
+ var n = i && "GeometryCollection" === i.type;
+ return this.eachLayer((function (t) {
+ t.toGeoJSON && (e = t.toGeoJSON(), o.push(n ? e.geometry : d.GeoJSON.asFeature(e)))
+ })), n ? d.GeoJSON.getFeature(this, {
+ geometries: o,
+ type: "GeometryCollection"
+ }) : {
+ type: "FeatureCollection",
+ features: o
+ }
+ }
+ })
+ }(), d.geoJson = function (t, e) {
+ return new d.GeoJSON(t, e)
+ }, d.DomEvent = {
+ addListener: function (t, e, i, o) {
+ var n, s, a, r = d.stamp(i),
+ h = "_leaflet_" + e + r;
+ return t[h] ? this : (n = function (e) {
+ return i.call(o || t, e || d.DomEvent._getEvent())
+ }, d.Browser.pointer && 0 === e.indexOf("touch") ? this.addPointerListener(t, e, n, r) : (d.Browser.touch && "dblclick" === e && this.addDoubleTapListener && this.addDoubleTapListener(t, n, r), "addEventListener" in t ? "mousewheel" === e ? (t.addEventListener("DOMMouseScroll", n, !1), t.addEventListener(e, n, !1)) : "mouseenter" === e || "mouseleave" === e ? (s = n, a = "mouseenter" === e ? "mouseover" : "mouseout", n = function (e) {
+ if (d.DomEvent._checkMouse(t, e)) return s(e)
+ }, t.addEventListener(a, n, !1)) : "click" === e && d.Browser.android ? (s = n, n = function (t) {
+ return d.DomEvent._filterClick(t, s)
+ }, t.addEventListener(e, n, !1)) : t.addEventListener(e, n, !1) : "attachEvent" in t && t.attachEvent("on" + e, n), t[h] = n, this))
+ },
+ removeListener: function (t, e, i) {
+ var o = d.stamp(i),
+ n = "_leaflet_" + e + o,
+ s = t[n];
+ return s ? (d.Browser.pointer && 0 === e.indexOf("touch") ? this.removePointerListener(t, e, o) : d.Browser.touch && "dblclick" === e && this.removeDoubleTapListener ? this.removeDoubleTapListener(t, o) : "removeEventListener" in t ? "mousewheel" === e ? (t.removeEventListener("DOMMouseScroll", s, !1), t.removeEventListener(e, s, !1)) : "mouseenter" === e || "mouseleave" === e ? t.removeEventListener("mouseenter" === e ? "mouseover" : "mouseout", s, !1) : t.removeEventListener(e, s, !1) : "detachEvent" in t && t.detachEvent("on" + e, s), t[n] = null, this) : this
+ },
+ stopPropagation: function (t) {
+ return t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0, d.DomEvent._skipped(t), this
+ },
+ disableScrollPropagation: function (t) {
+ var e = d.DomEvent.stopPropagation;
+ return d.DomEvent.on(t, "mousewheel", e).on(t, "MozMousePixelScroll", e)
+ },
+ disableClickPropagation: function (t) {
+ for (var e = d.DomEvent.stopPropagation, i = d.Draggable.START.length - 1; i >= 0; i--) d.DomEvent.on(t, d.Draggable.START[i], e);
+ return d.DomEvent.on(t, "click", d.DomEvent._fakeStop).on(t, "dblclick", e)
+ },
+ preventDefault: function (t) {
+ return t.preventDefault ? t.preventDefault() : t.returnValue = !1, this
+ },
+ stop: function (t) {
+ return d.DomEvent.preventDefault(t).stopPropagation(t)
+ },
+ getMousePosition: function (t, e) {
+ if (!e) return new d.Point(t.clientX, t.clientY);
+ var i = e.getBoundingClientRect();
+ return new d.Point(t.clientX - i.left - e.clientLeft, t.clientY - i.top - e.clientTop)
+ },
+ getWheelDelta: function (t) {
+ var e = 0;
+ return t.wheelDelta && (e = t.wheelDelta / 120), t.detail && (e = -t.detail / 3), e
+ },
+ _skipEvents: {},
+ _fakeStop: function (t) {
+ d.DomEvent._skipEvents[t.type] = !0
+ },
+ _skipped: function (t) {
+ var e = this._skipEvents[t.type];
+ return this._skipEvents[t.type] = !1, e
+ },
+ _checkMouse: function (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
+ },
+ _getEvent: function () {
+ var t = s.event;
+ if (!t)
+ for (var e = arguments.callee.caller; e && (!(t = e.arguments[0]) || s.Event !== t.constructor);) e = e.caller;
+ return t
+ },
+ _filterClick: function (t, e) {
+ var i = t.timeStamp || t.originalEvent.timeStamp,
+ o = d.DomEvent._lastClick && i - d.DomEvent._lastClick;
+ if (!(o && o > 100 && o < 500 || t.target._simulatedClick && !t._simulated)) return d.DomEvent._lastClick = i, e(t);
+ d.DomEvent.stop(t)
+ }
+ }, d.DomEvent.on = d.DomEvent.addListener, d.DomEvent.off = d.DomEvent.removeListener, d.Draggable = d.Class.extend({
+ includes: d.Mixin.Events,
+ statics: {
+ START: d.Browser.touch ? ["touchstart", "mousedown"] : ["mousedown"],
+ END: {
+ mousedown: "mouseup",
+ touchstart: "touchend",
+ pointerdown: "touchend",
+ MSPointerDown: "touchend"
+ },
+ MOVE: {
+ mousedown: "mousemove",
+ touchstart: "touchmove",
+ pointerdown: "touchmove",
+ MSPointerDown: "touchmove"
+ }
+ },
+ initialize: function (t, e) {
+ this._element = t, this._dragStartTarget = e || t
+ },
+ enable: function () {
+ if (!this._enabled) {
+ for (var t = d.Draggable.START.length - 1; t >= 0; t--) d.DomEvent.on(this._dragStartTarget, d.Draggable.START[t], this._onDown, this);
+ this._enabled = !0
+ }
+ },
+ disable: function () {
+ if (this._enabled) {
+ for (var t = d.Draggable.START.length - 1; t >= 0; t--) d.DomEvent.off(this._dragStartTarget, d.Draggable.START[t], this._onDown, this);
+ this._enabled = !1, this._moved = !1
+ }
+ },
+ _onDown: function (t) {
+ if (this._moved = !1, !t.shiftKey && (1 === t.which || 1 === t.button || t.touches) && (d.DomEvent.stopPropagation(t), !d.Draggable._disabled && (d.DomUtil.disableImageDrag(), d.DomUtil.disableTextSelection(), !this._moving))) {
+ var e = t.touches ? t.touches[0] : t;
+ this._startPoint = new d.Point(e.clientX, e.clientY), this._startPos = this._newPos = d.DomUtil.getPosition(this._element), d.DomEvent.on(a, d.Draggable.MOVE[t.type], this._onMove, this).on(a, d.Draggable.END[t.type], this._onUp, this)
+ }
+ },
+ _onMove: function (t) {
+ 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 d.Point(e.clientX, e.clientY).subtract(this._startPoint);
+ (i.x || i.y) && (d.Browser.touch && Math.abs(i.x) + Math.abs(i.y) < 3 || (d.DomEvent.preventDefault(t), this._moved || (this.fire("dragstart"), this._moved = !0, this._startPos = d.DomUtil.getPosition(this._element).subtract(i), d.DomUtil.addClass(a.body, "leaflet-dragging"), this._lastTarget = t.target || t.srcElement, d.DomUtil.addClass(this._lastTarget, "leaflet-drag-target")), this._newPos = this._startPos.add(i), this._moving = !0, d.Util.cancelAnimFrame(this._animRequest), this._animRequest = d.Util.requestAnimFrame(this._updatePosition, this, !0, this._dragStartTarget)))
+ }
+ },
+ _updatePosition: function () {
+ this.fire("predrag"), d.DomUtil.setPosition(this._element, this._newPos), this.fire("drag")
+ },
+ _onUp: function () {
+ for (var t in d.DomUtil.removeClass(a.body, "leaflet-dragging"), this._lastTarget && (d.DomUtil.removeClass(this._lastTarget, "leaflet-drag-target"), this._lastTarget = null), d.Draggable.MOVE) d.DomEvent.off(a, d.Draggable.MOVE[t], this._onMove).off(a, d.Draggable.END[t], this._onUp);
+ d.DomUtil.enableImageDrag(), d.DomUtil.enableTextSelection(), this._moved && this._moving && (d.Util.cancelAnimFrame(this._animRequest), this.fire("dragend", {
+ distance: this._newPos.distanceTo(this._startPos)
+ })), this._moving = !1
+ }
+ }), d.Handler = d.Class.extend({
+ initialize: function (t) {
+ this._map = t
+ },
+ enable: function () {
+ this._enabled || (this._enabled = !0, this.addHooks())
+ },
+ disable: function () {
+ this._enabled && (this._enabled = !1, this.removeHooks())
+ },
+ enabled: function () {
+ return !!this._enabled
+ }
+ }), d.Map.mergeOptions({
+ dragging: !0,
+ inertia: !d.Browser.android23,
+ inertiaDeceleration: 3400,
+ inertiaMaxSpeed: 1 / 0,
+ inertiaThreshold: d.Browser.touch ? 32 : 18,
+ easeLinearity: .25,
+ worldCopyJump: !1
+ }), d.Map.Drag = d.Handler.extend({
+ addHooks: function () {
+ if (!this._draggable) {
+ var t = this._map;
+ this._draggable = new d.Draggable(t._mapPane, t._container), this._draggable.on({
+ dragstart: this._onDragStart,
+ drag: this._onDrag,
+ dragend: this._onDragEnd
+ }, this), t.options.worldCopyJump && (this._draggable.on("predrag", this._onPreDrag, this), t.on("viewreset", this._onViewReset, this), t.whenReady(this._onViewReset, this))
+ }
+ this._draggable.enable()
+ },
+ removeHooks: function () {
+ this._draggable.disable()
+ },
+ moved: function () {
+ return this._draggable && this._draggable._moved
+ },
+ _onDragStart: function () {
+ var t = this._map;
+ t._panAnim && t._panAnim.stop(), t.fire("movestart").fire("dragstart"), t.options.inertia && (this._positions = [], this._times = [])
+ },
+ _onDrag: function () {
+ if (this._map.options.inertia) {
+ var t = this._lastTime = +new Date,
+ e = this._lastPos = this._draggable._newPos;
+ this._positions.push(e), this._times.push(t), t - this._times[0] > 200 && (this._positions.shift(), this._times.shift())
+ }
+ this._map.fire("move").fire("drag")
+ },
+ _onViewReset: function () {
+ var t = this._map.getSize()._divideBy(2),
+ e = this._map.latLngToLayerPoint([0, 0]);
+ this._initialWorldOffset = e.subtract(t).x, this._worldWidth = this._map.project([0, 180]).x
+ },
+ _onPreDrag: 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) < Math.abs(s + i) ? n : s;
+ this._draggable._newPos.x = a
+ },
+ _onDragEnd: function (t) {
+ var e = this._map,
+ i = e.options,
+ o = +new Date - this._lastTime,
+ n = !i.inertia || o > i.inertiaThreshold || !this._positions[0];
+ if (e.fire("dragend", t), n) e.fire("moveend");
+ else {
+ var s = this._lastPos.subtract(this._positions[0]),
+ a = (this._lastTime + o - this._times[0]) / 1e3,
+ r = i.easeLinearity,
+ h = s.multiplyBy(r / a),
+ l = h.distanceTo([0, 0]),
+ c = Math.min(i.inertiaMaxSpeed, l),
+ p = h.multiplyBy(c / l),
+ _ = c / (i.inertiaDeceleration * r),
+ u = p.multiplyBy(-_ / 2).round();
+ u.x && u.y ? (u = e._limitOffset(u, e.options.maxBounds), d.Util.requestAnimFrame((function () {
+ e.panBy(u, {
+ duration: _,
+ easeLinearity: r,
+ noMoveStart: !0
+ })
+ }))) : e.fire("moveend")
+ }
+ }
+ }), d.Map.addInitHook("addHandler", "dragging", d.Map.Drag), d.Map.mergeOptions({
+ doubleClickZoom: !0
+ }), d.Map.DoubleClickZoom = d.Handler.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() + (t.originalEvent.shiftKey ? -1 : 1);
+ "center" === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i)
+ }
+ }), d.Map.addInitHook("addHandler", "doubleClickZoom", d.Map.DoubleClickZoom), d.Map.mergeOptions({
+ scrollWheelZoom: !0
+ }), d.Map.ScrollWheelZoom = d.Handler.extend({
+ addHooks: function () {
+ d.DomEvent.on(this._map._container, "mousewheel", this._onWheelScroll, this), d.DomEvent.on(this._map._container, "MozMousePixelScroll", d.DomEvent.preventDefault), this._delta = 0
+ },
+ removeHooks: function () {
+ d.DomEvent.off(this._map._container, "mousewheel", this._onWheelScroll), d.DomEvent.off(this._map._container, "MozMousePixelScroll", d.DomEvent.preventDefault)
+ },
+ _onWheelScroll: function (t) {
+ var e = d.DomEvent.getWheelDelta(t);
+ this._delta += e, this._lastMousePos = this._map.mouseEventToContainerPoint(t), this._startTime || (this._startTime = +new Date);
+ var i = Math.max(40 - (+new Date - this._startTime), 0);
+ clearTimeout(this._timer), this._timer = setTimeout(d.bind(this._performZoom, this), i), d.DomEvent.preventDefault(t), d.DomEvent.stopPropagation(t)
+ },
+ _performZoom: function () {
+ var t = this._map,
+ e = this._delta,
+ i = t.getZoom();
+ e = e > 0 ? Math.ceil(e) : Math.floor(e), e = Math.max(Math.min(e, 4), -4), e = t._limitZoom(i + e) - i, this._delta = 0, this._startTime = null, e && ("center" === t.options.scrollWheelZoom ? t.setZoom(i + e) : t.setZoomAround(this._lastMousePos, i + e))
+ }
+ }), d.Map.addInitHook("addHandler", "scrollWheelZoom", d.Map.ScrollWheelZoom), d.extend(d.DomEvent, {
+ _touchstart: d.Browser.msPointer ? "MSPointerDown" : d.Browser.pointer ? "pointerdown" : "touchstart",
+ _touchend: d.Browser.msPointer ? "MSPointerUp" : d.Browser.pointer ? "pointerup" : "touchend",
+ addDoubleTapListener: function (t, e, i) {
+ var o, n, s = !1,
+ r = "_leaflet_",
+ h = this._touchstart,
+ l = this._touchend,
+ c = [];
+
+ function p(t) {
+ var e;
+ if (d.Browser.pointer ? (c.push(t.pointerId), e = c.length) : e = t.touches.length, !(e > 1)) {
+ var i = Date.now(),
+ a = i - (o || i);
+ n = t.touches ? t.touches[0] : t, s = a > 0 && a <= 250, o = i
+ }
+ }
+
+ function _(t) {
+ if (d.Browser.pointer) {
+ var i = c.indexOf(t.pointerId);
+ if (-1 === i) return;
+ c.splice(i, 1)
+ }
+ if (s) {
+ if (d.Browser.pointer) {
+ var a, r = {};
+ for (var h in n) a = n[h], r[h] = "function" == typeof a ? a.bind(n) : a;
+ n = r
+ }
+ n.type = "dblclick", e(n), o = null
+ }
+ }
+ t[r + h + i] = p, t[r + l + i] = _;
+ var u = d.Browser.pointer ? a.documentElement : t;
+ return t.addEventListener(h, p, !1), u.addEventListener(l, _, !1), d.Browser.pointer && u.addEventListener(d.DomEvent.POINTER_CANCEL, _, !1), this
+ },
+ removeDoubleTapListener: function (t, e) {
+ var i = "_leaflet_";
+ return t.removeEventListener(this._touchstart, t[i + this._touchstart + e], !1), (d.Browser.pointer ? a.documentElement : t).removeEventListener(this._touchend, t[i + this._touchend + e], !1), d.Browser.pointer && a.documentElement.removeEventListener(d.DomEvent.POINTER_CANCEL, t[i + this._touchend + e], !1), this
+ }
+ }), d.extend(d.DomEvent, {
+ POINTER_DOWN: d.Browser.msPointer ? "MSPointerDown" : "pointerdown",
+ POINTER_MOVE: d.Browser.msPointer ? "MSPointerMove" : "pointermove",
+ POINTER_UP: d.Browser.msPointer ? "MSPointerUp" : "pointerup",
+ POINTER_CANCEL: d.Browser.msPointer ? "MSPointerCancel" : "pointercancel",
+ _pointers: [],
+ _pointerDocumentListener: !1,
+ addPointerListener: function (t, e, i, o) {
+ switch (e) {
+ case "touchstart":
+ return this.addPointerListenerStart(t, e, i, o);
+ case "touchend":
+ return this.addPointerListenerEnd(t, e, i, o);
+ case "touchmove":
+ return this.addPointerListenerMove(t, e, i, o);
+ default:
+ throw "Unknown touch event type"
+ }
+ },
+ addPointerListenerStart: function (t, e, i, o) {
+ var n = this._pointers,
+ s = function (t) {
+ "mouse" !== t.pointerType && t.pointerType !== t.MSPOINTER_TYPE_MOUSE && d.DomEvent.preventDefault(t);
+ for (var e = !1, o = 0; o < n.length; o++)
+ if (n[o].pointerId === t.pointerId) {
+ e = !0;
+ break
+ } e || n.push(t), t.touches = n.slice(), t.changedTouches = [t], i(t)
+ };
+ if (t["_leaflet_touchstart" + o] = s, t.addEventListener(this.POINTER_DOWN, s, !1), !this._pointerDocumentListener) {
+ var r = function (t) {
+ for (var e = 0; e < n.length; e++)
+ if (n[e].pointerId === t.pointerId) {
+ n.splice(e, 1);
+ break
+ }
+ };
+ a.documentElement.addEventListener(this.POINTER_UP, r, !1), a.documentElement.addEventListener(this.POINTER_CANCEL, r, !1), this._pointerDocumentListener = !0
+ }
+ return this
+ },
+ addPointerListenerMove: function (t, e, i, o) {
+ var n = this._pointers;
+
+ function s(t) {
+ if (t.pointerType !== t.MSPOINTER_TYPE_MOUSE && "mouse" !== t.pointerType || 0 !== t.buttons) {
+ for (var e = 0; e < n.length; e++)
+ if (n[e].pointerId === t.pointerId) {
+ n[e] = t;
+ break
+ } t.touches = n.slice(), t.changedTouches = [t], i(t)
+ }
+ }
+ return t["_leaflet_touchmove" + o] = s, t.addEventListener(this.POINTER_MOVE, s, !1), this
+ },
+ addPointerListenerEnd: function (t, e, i, o) {
+ var n = this._pointers,
+ s = function (t) {
+ for (var e = 0; e < n.length; e++)
+ if (n[e].pointerId === t.pointerId) {
+ n.splice(e, 1);
+ break
+ } t.touches = n.slice(), t.changedTouches = [t], i(t)
+ };
+ return t["_leaflet_touchend" + o] = s, t.addEventListener(this.POINTER_UP, s, !1), t.addEventListener(this.POINTER_CANCEL, s, !1), this
+ },
+ removePointerListener: function (t, e, i) {
+ var o = t["_leaflet_" + e + i];
+ switch (e) {
+ case "touchstart":
+ t.removeEventListener(this.POINTER_DOWN, o, !1);
+ break;
+ case "touchmove":
+ t.removeEventListener(this.POINTER_MOVE, o, !1);
+ break;
+ case "touchend":
+ t.removeEventListener(this.POINTER_UP, o, !1), t.removeEventListener(this.POINTER_CANCEL, o, !1)
+ }
+ return this
+ }
+ }), d.Map.mergeOptions({
+ touchZoom: d.Browser.touch && !d.Browser.android23,
+ bounceAtZoomLimits: !0
+ }), d.Map.TouchZoom = d.Handler.extend({
+ addHooks: function () {
+ d.DomEvent.on(this._map._container, "touchstart", this._onTouchStart, this)
+ },
+ removeHooks: function () {
+ d.DomEvent.off(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.mouseEventToLayerPoint(t.touches[0]),
+ o = e.mouseEventToLayerPoint(t.touches[1]),
+ n = e._getCenterLayerPoint();
+ this._startCenter = i.add(o)._divideBy(2), this._startDist = i.distanceTo(o), this._moved = !1, this._zooming = !0, this._centerOffset = n.subtract(this._startCenter), e._panAnim && e._panAnim.stop(), d.DomEvent.on(a, "touchmove", this._onTouchMove, this).on(a, "touchend", this._onTouchEnd, this), d.DomEvent.preventDefault(t)
+ }
+ },
+ _onTouchMove: function (t) {
+ var e = this._map;
+ if (t.touches && 2 === t.touches.length && this._zooming) {
+ var i = e.mouseEventToLayerPoint(t.touches[0]),
+ o = e.mouseEventToLayerPoint(t.touches[1]);
+ this._scale = i.distanceTo(o) / this._startDist, this._delta = i._add(o)._divideBy(2)._subtract(this._startCenter), 1 !== this._scale && (!e.options.bounceAtZoomLimits && (e.getZoom() === e.getMinZoom() && this._scale < 1 || e.getZoom() === e.getMaxZoom() && this._scale > 1) || (this._moved || (d.DomUtil.addClass(e._mapPane, "leaflet-touching"), e.fire("movestart").fire("zoomstart"), this._moved = !0), d.Util.cancelAnimFrame(this._animRequest), this._animRequest = d.Util.requestAnimFrame(this._updateOnMove, this, !0, this._map._container), d.DomEvent.preventDefault(t)))
+ }
+ },
+ _updateOnMove: function () {
+ var t = this._map,
+ e = this._getScaleOrigin(),
+ i = t.layerPointToLatLng(e),
+ o = t.getScaleZoom(this._scale);
+ t._animateZoom(i, o, this._startCenter, this._scale, this._delta, !1, !0)
+ },
+ _onTouchEnd: function () {
+ if (this._moved && this._zooming) {
+ var t = this._map;
+ this._zooming = !1, d.DomUtil.removeClass(t._mapPane, "leaflet-touching"), d.Util.cancelAnimFrame(this._animRequest), d.DomEvent.off(a, "touchmove", this._onTouchMove).off(a, "touchend", this._onTouchEnd);
+ var e = this._getScaleOrigin(),
+ i = t.layerPointToLatLng(e),
+ o = t.getZoom(),
+ n = t.getScaleZoom(this._scale) - o,
+ s = n > 0 ? Math.ceil(n) : Math.floor(n),
+ r = t._limitZoom(o + s),
+ h = t.getZoomScale(r) / this._scale;
+ t._animateZoom(i, r, e, h)
+ } else this._zooming = !1
+ },
+ _getScaleOrigin: function () {
+ var t = this._centerOffset.subtract(this._delta).divideBy(this._scale);
+ return this._startCenter.add(t)
+ }
+ }), d.Map.addInitHook("addHandler", "touchZoom", d.Map.TouchZoom), d.Map.mergeOptions({
+ tap: !0,
+ tapTolerance: 15
+ }), d.Map.Tap = d.Handler.extend({
+ addHooks: function () {
+ d.DomEvent.on(this._map._container, "touchstart", this._onDown, this)
+ },
+ removeHooks: function () {
+ d.DomEvent.off(this._map._container, "touchstart", this._onDown, this)
+ },
+ _onDown: function (t) {
+ if (t.touches) {
+ if (d.DomEvent.preventDefault(t), this._fireClick = !0, t.touches.length > 1) return this._fireClick = !1, void clearTimeout(this._holdTimeout);
+ var e = t.touches[0],
+ i = e.target;
+ this._startPos = this._newPos = new d.Point(e.clientX, e.clientY), i.tagName && "a" === i.tagName.toLowerCase() && d.DomUtil.addClass(i, "leaflet-active"), this._holdTimeout = setTimeout(d.bind((function () {
+ this._isTapValid() && (this._fireClick = !1, this._onUp(), this._simulateEvent("contextmenu", e))
+ }), this), 1e3), d.DomEvent.on(a, "touchmove", this._onMove, this).on(a, "touchend", this._onUp, this)
+ }
+ },
+ _onUp: function (t) {
+ if (clearTimeout(this._holdTimeout), d.DomEvent.off(a, "touchmove", this._onMove, this).off(a, "touchend", this._onUp, this), this._fireClick && t && t.changedTouches) {
+ var e = t.changedTouches[0],
+ i = e.target;
+ i && i.tagName && "a" === i.tagName.toLowerCase() && d.DomUtil.removeClass(i, "leaflet-active"), this._isTapValid() && this._simulateEvent("click", e)
+ }
+ },
+ _isTapValid: function () {
+ return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance
+ },
+ _onMove: function (t) {
+ var e = t.touches[0];
+ this._newPos = new d.Point(e.clientX, e.clientY)
+ },
+ _simulateEvent: function (t, e) {
+ var i = a.createEvent("MouseEvents");
+ i._simulated = !0, e.target._simulatedClick = !0, i.initMouseEvent(t, !0, !0, s, 1, e.screenX, e.screenY, e.clientX, e.clientY, !1, !1, !1, !1, 0, null), e.target.dispatchEvent(i)
+ }
+ }), d.Browser.touch && !d.Browser.pointer && d.Map.addInitHook("addHandler", "tap", d.Map.Tap), d.Map.mergeOptions({
+ boxZoom: !0
+ }), d.Map.BoxZoom = d.Handler.extend({
+ initialize: function (t) {
+ this._map = t, this._container = t._container, this._pane = t._panes.overlayPane, this._moved = !1
+ },
+ addHooks: function () {
+ d.DomEvent.on(this._container, "mousedown", this._onMouseDown, this)
+ },
+ removeHooks: function () {
+ d.DomEvent.off(this._container, "mousedown", this._onMouseDown), this._moved = !1
+ },
+ moved: function () {
+ return this._moved
+ },
+ _onMouseDown: function (t) {
+ if (this._moved = !1, !t.shiftKey || 1 !== t.which && 1 !== t.button) return !1;
+ d.DomUtil.disableTextSelection(), d.DomUtil.disableImageDrag(), this._startLayerPoint = this._map.mouseEventToLayerPoint(t), d.DomEvent.on(a, "mousemove", this._onMouseMove, this).on(a, "mouseup", this._onMouseUp, this).on(a, "keydown", this._onKeyDown, this)
+ },
+ _onMouseMove: function (t) {
+ this._moved || (this._box = d.DomUtil.create("div", "leaflet-zoom-box", this._pane), d.DomUtil.setPosition(this._box, this._startLayerPoint), this._container.style.cursor = "crosshair", this._map.fire("boxzoomstart"));
+ var e = this._startLayerPoint,
+ i = this._box,
+ o = this._map.mouseEventToLayerPoint(t),
+ n = o.subtract(e),
+ s = new d.Point(Math.min(o.x, e.x), Math.min(o.y, e.y));
+ d.DomUtil.setPosition(i, s), this._moved = !0, i.style.width = Math.max(0, Math.abs(n.x) - 4) + "px", i.style.height = Math.max(0, Math.abs(n.y) - 4) + "px"
+ },
+ _finish: function () {
+ this._moved && (this._pane.removeChild(this._box), this._container.style.cursor = ""), d.DomUtil.enableTextSelection(), d.DomUtil.enableImageDrag(), d.DomEvent.off(a, "mousemove", this._onMouseMove).off(a, "mouseup", this._onMouseUp).off(a, "keydown", this._onKeyDown)
+ },
+ _onMouseUp: function (t) {
+ this._finish();
+ var e = this._map,
+ i = e.mouseEventToLayerPoint(t);
+ if (!this._startLayerPoint.equals(i)) {
+ var o = new d.LatLngBounds(e.layerPointToLatLng(this._startLayerPoint), e.layerPointToLatLng(i));
+ e.fitBounds(o), e.fire("boxzoomend", {
+ boxZoomBounds: o
+ })
+ }
+ },
+ _onKeyDown: function (t) {
+ 27 === t.keyCode && this._finish()
+ }
+ }), d.Map.addInitHook("addHandler", "boxZoom", d.Map.BoxZoom), d.Map.mergeOptions({
+ keyboard: !0,
+ keyboardPanOffset: 80,
+ keyboardZoomOffset: 1
+ }), d.Map.Keyboard = d.Handler.extend({
+ keyCodes: {
+ left: [37],
+ right: [39],
+ down: [40],
+ up: [38],
+ zoomIn: [187, 107, 61, 171],
+ zoomOut: [189, 109, 173]
+ },
+ initialize: function (t) {
+ this._map = t, this._setPanOffset(t.options.keyboardPanOffset), this._setZoomOffset(t.options.keyboardZoomOffset)
+ },
+ addHooks: function () {
+ var t = this._map._container; - 1 === t.tabIndex && (t.tabIndex = "0"), d.DomEvent.on(t, "focus", this._onFocus, this).on(t, "blur", this._onBlur, this).on(t, "mousedown", this._onMouseDown, this), this._map.on("focus", this._addHooks, this).on("blur", this._removeHooks, this)
+ },
+ removeHooks: function () {
+ this._removeHooks();
+ var t = this._map._container;
+ d.DomEvent.off(t, "focus", this._onFocus, this).off(t, "blur", this._onBlur, this).off(t, "mousedown", this._onMouseDown, this), this._map.off("focus", this._addHooks, this).off("blur", this._removeHooks, this)
+ },
+ _onMouseDown: function () {
+ if (!this._focused) {
+ var t = a.body,
+ e = a.documentElement,
+ i = t.scrollTop || e.scrollTop,
+ o = t.scrollLeft || e.scrollLeft;
+ this._map._container.focus(), s.scrollTo(o, i)
+ }
+ },
+ _onFocus: function () {
+ this._focused = !0, this._map.fire("focus")
+ },
+ _onBlur: function () {
+ this._focused = !1, this._map.fire("blur")
+ },
+ _setPanOffset: function (t) {
+ var e, i, o = this._panKeys = {},
+ n = this.keyCodes;
+ for (e = 0, i = n.left.length; e < i; e++) o[n.left[e]] = [-1 * t, 0];
+ for (e = 0, i = n.right.length; e < i; e++) o[n.right[e]] = [t, 0];
+ for (e = 0, i = n.down.length; e < i; e++) o[n.down[e]] = [0, t];
+ for (e = 0, i = n.up.length; e < i; e++) o[n.up[e]] = [0, -1 * t]
+ },
+ _setZoomOffset: function (t) {
+ var e, i, o = this._zoomKeys = {},
+ n = this.keyCodes;
+ for (e = 0, i = n.zoomIn.length; e < i; e++) o[n.zoomIn[e]] = t;
+ for (e = 0, i = n.zoomOut.length; e < i; e++) o[n.zoomOut[e]] = -t
+ },
+ _addHooks: function () {
+ d.DomEvent.on(a, "keydown", this._onKeyDown, this)
+ },
+ _removeHooks: function () {
+ d.DomEvent.off(a, "keydown", this._onKeyDown, this)
+ },
+ _onKeyDown: function (t) {
+ var e = t.keyCode,
+ i = this._map;
+ if (e in this._panKeys) {
+ if (i._panAnim && i._panAnim._inProgress) return;
+ i.panBy(this._panKeys[e]), i.options.maxBounds && i.panInsideBounds(i.options.maxBounds)
+ } else {
+ if (!(e in this._zoomKeys)) return;
+ i.setZoom(i.getZoom() + this._zoomKeys[e])
+ }
+ d.DomEvent.stop(t)
+ }
+ }), d.Map.addInitHook("addHandler", "keyboard", d.Map.Keyboard), d.Handler.MarkerDrag = d.Handler.extend({
+ initialize: function (t) {
+ this._marker = t
+ },
+ addHooks: function () {
+ var t = this._marker._icon;
+ this._draggable || (this._draggable = new d.Draggable(t, t)), this._draggable.on("dragstart", this._onDragStart, this).on("drag", this._onDrag, this).on("dragend", this._onDragEnd, this), this._draggable.enable(), d.DomUtil.addClass(this._marker._icon, "leaflet-marker-draggable")
+ },
+ removeHooks: function () {
+ this._draggable.off("dragstart", this._onDragStart, this).off("drag", this._onDrag, this).off("dragend", this._onDragEnd, this), this._draggable.disable(), d.DomUtil.removeClass(this._marker._icon, "leaflet-marker-draggable")
+ },
+ moved: function () {
+ return this._draggable && this._draggable._moved
+ },
+ _onDragStart: function () {
+ this._marker.closePopup().fire("movestart").fire("dragstart")
+ },
+ _onDrag: function () {
+ var t = this._marker,
+ e = t._shadow,
+ i = d.DomUtil.getPosition(t._icon),
+ o = t._map.layerPointToLatLng(i);
+ e && d.DomUtil.setPosition(e, i), t._latlng = o, t.fire("move", {
+ latlng: o
+ }).fire("drag")
+ },
+ _onDragEnd: function (t) {
+ this._marker.fire("moveend").fire("dragend", t)
+ }
+ }), d.Control = d.Class.extend({
+ options: {
+ position: "topright"
+ },
+ initialize: function (t) {
+ d.setOptions(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._map = t;
+ var e = this._container = this.onAdd(t),
+ i = this.getPosition(),
+ o = t._controlCorners[i];
+ return d.DomUtil.addClass(e, "leaflet-control"), -1 !== i.indexOf("bottom") ? o.insertBefore(e, o.firstChild) : o.appendChild(e), this
+ },
+ removeFrom: function (t) {
+ var e = this.getPosition();
+ return t._controlCorners[e].removeChild(this._container), this._map = null, this.onRemove && this.onRemove(t), this
+ },
+ _refocusOnMap: function () {
+ this._map && this._map.getContainer().focus()
+ }
+ }), d.control = function (t) {
+ return new d.Control(t)
+ }, d.Map.include({
+ addControl: function (t) {
+ return t.addTo(this), this
+ },
+ removeControl: function (t) {
+ return t.removeFrom(this), this
+ },
+ _initControlPos: function () {
+ var t = this._controlCorners = {},
+ e = "leaflet-",
+ i = this._controlContainer = d.DomUtil.create("div", e + "control-container", this._container);
+
+ function o(o, n) {
+ var s = e + o + " " + e + n;
+ t[o + n] = d.DomUtil.create("div", s, i)
+ }
+ o("top", "left"), o("top", "right"), o("bottom", "left"), o("bottom", "right")
+ },
+ _clearControlPos: function () {
+ this._container.removeChild(this._controlContainer)
+ }
+ }), d.Control.Zoom = d.Control.extend({
+ options: {
+ position: "topleft",
+ zoomInText: "+",
+ zoomInTitle: "Zoom in",
+ zoomOutText: "-",
+ zoomOutTitle: "Zoom out"
+ },
+ onAdd: function (t) {
+ var e = "leaflet-control-zoom",
+ i = d.DomUtil.create("div", e + " leaflet-bar");
+ return this._map = t, this._zoomInButton = this._createButton(this.options.zoomInText, this.options.zoomInTitle, e + "-in", i, this._zoomIn, this), this._zoomOutButton = this._createButton(this.options.zoomOutText, this.options.zoomOutTitle, e + "-out", i, this._zoomOut, this), this._updateDisabled(), t.on("zoomend zoomlevelschange", this._updateDisabled, this), i
+ },
+ onRemove: function (t) {
+ t.off("zoomend zoomlevelschange", this._updateDisabled, this)
+ },
+ _zoomIn: function (t) {
+ this._map.zoomIn(t.shiftKey ? 3 : 1)
+ },
+ _zoomOut: function (t) {
+ this._map.zoomOut(t.shiftKey ? 3 : 1)
+ },
+ _createButton: function (t, e, i, o, n, s) {
+ var a = d.DomUtil.create("a", i, o);
+ a.innerHTML = t, a.href = "#", a.title = e;
+ var r = d.DomEvent.stopPropagation;
+ return d.DomEvent.on(a, "click", r).on(a, "mousedown", r).on(a, "dblclick", r).on(a, "click", d.DomEvent.preventDefault).on(a, "click", n, s).on(a, "click", this._refocusOnMap, s), a
+ },
+ _updateDisabled: function () {
+ var t = this._map,
+ e = "leaflet-disabled";
+ d.DomUtil.removeClass(this._zoomInButton, e), d.DomUtil.removeClass(this._zoomOutButton, e), t._zoom === t.getMinZoom() && d.DomUtil.addClass(this._zoomOutButton, e), t._zoom === t.getMaxZoom() && d.DomUtil.addClass(this._zoomInButton, e)
+ }
+ }), d.Map.mergeOptions({
+ zoomControl: !0
+ }), d.Map.addInitHook((function () {
+ this.options.zoomControl && (this.zoomControl = new d.Control.Zoom, this.addControl(this.zoomControl))
+ })), d.control.zoom = function (t) {
+ return new d.Control.Zoom(t)
+ }, d.Control.Attribution = d.Control.extend({
+ options: {
+ position: "bottomright",
+ prefix: 'Leaflet '
+ },
+ initialize: function (t) {
+ d.setOptions(this, t), this._attributions = {}
+ },
+ onAdd: function (t) {
+ for (var e in this._container = d.DomUtil.create("div", "leaflet-control-attribution"), d.DomEvent.disableClickPropagation(this._container), t._layers) t._layers[e].getAttribution && this.addAttribution(t._layers[e].getAttribution());
+ return t.on("layeradd", this._onLayerAdd, this).on("layerremove", this._onLayerRemove, this), this._update(), this._container
+ },
+ onRemove: function (t) {
+ t.off("layeradd", this._onLayerAdd).off("layerremove", this._onLayerRemove)
+ },
+ setPrefix: function (t) {
+ return this.options.prefix = t, this._update(), this
+ },
+ addAttribution: function (t) {
+ if (t) return this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update(), this
+ },
+ removeAttribution: function (t) {
+ if (t) return this._attributions[t] && (this._attributions[t]--, this._update()), 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(" | ")
+ }
+ },
+ _onLayerAdd: function (t) {
+ t.layer.getAttribution && this.addAttribution(t.layer.getAttribution())
+ },
+ _onLayerRemove: function (t) {
+ t.layer.getAttribution && this.removeAttribution(t.layer.getAttribution())
+ }
+ }), d.Map.mergeOptions({
+ attributionControl: !0
+ }), d.Map.addInitHook((function () {
+ this.options.attributionControl && (this.attributionControl = (new d.Control.Attribution).addTo(this))
+ })), d.control.attribution = function (t) {
+ return new d.Control.Attribution(t)
+ }, d.Control.Scale = d.Control.extend({
+ options: {
+ position: "bottomleft",
+ maxWidth: 100,
+ metric: !0,
+ imperial: !0,
+ updateWhenIdle: !1
+ },
+ onAdd: function (t) {
+ this._map = t;
+ var e = "leaflet-control-scale",
+ i = d.DomUtil.create("div", e),
+ o = this.options;
+ return this._addScales(o, e, 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 = d.DomUtil.create("div", e + "-line", i)), t.imperial && (this._iScale = d.DomUtil.create("div", e + "-line", i))
+ },
+ _update: function () {
+ var t = this._map.getBounds(),
+ e = t.getCenter().lat,
+ i = 6378137 * Math.PI * Math.cos(e * Math.PI / 180) * (t.getNorthEast().lng - t.getSouthWest().lng) / 180,
+ o = this._map.getSize(),
+ n = this.options,
+ s = 0;
+ o.x > 0 && (s = i * (n.maxWidth / o.x)), this._updateScales(n, s)
+ },
+ _updateScales: function (t, e) {
+ t.metric && e && this._updateMetric(e), t.imperial && e && this._updateImperial(e)
+ },
+ _updateMetric: function (t) {
+ var e = this._getRoundNum(t);
+ this._mScale.style.width = this._getScaleWidth(e / t) + "px", this._mScale.innerHTML = e < 1e3 ? e + " m" : e / 1e3 + " km"
+ },
+ _updateImperial: function (t) {
+ var e, i, o, n = 3.2808399 * t,
+ s = this._iScale;
+ n > 5280 ? (e = n / 5280, i = this._getRoundNum(e), s.style.width = this._getScaleWidth(i / e) + "px", s.innerHTML = i + " mi") : (o = this._getRoundNum(n), s.style.width = this._getScaleWidth(o / n) + "px", s.innerHTML = o + " ft")
+ },
+ _getScaleWidth: function (t) {
+ return Math.round(this.options.maxWidth * t) - 10
+ },
+ _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)
+ }
+ }), d.control.scale = function (t) {
+ return new d.Control.Scale(t)
+ }, d.Control.Layers = d.Control.extend({
+ options: {
+ collapsed: !0,
+ position: "topright",
+ autoZIndex: !0
+ },
+ initialize: function (t, e, i) {
+ for (var o in d.setOptions(this, i), this._layers = {}, this._lastZIndex = 0, this._handlingClick = !1, t) this._addLayer(t[o], o);
+ for (o in e) this._addLayer(e[o], o, !0)
+ },
+ onAdd: function (t) {
+ return this._initLayout(), this._update(), t.on("layeradd", this._onLayerChange, this).on("layerremove", this._onLayerChange, this), this._container
+ },
+ onRemove: function (t) {
+ t.off("layeradd", this._onLayerChange, this).off("layerremove", this._onLayerChange, this)
+ },
+ addBaseLayer: function (t, e) {
+ return this._addLayer(t, e), this._update(), this
+ },
+ addOverlay: function (t, e) {
+ return this._addLayer(t, e, !0), this._update(), this
+ },
+ removeLayer: function (t) {
+ var e = d.stamp(t);
+ return delete this._layers[e], this._update(), this
+ },
+ _initLayout: function () {
+ var t = "leaflet-control-layers",
+ e = this._container = d.DomUtil.create("div", t);
+ e.setAttribute("aria-haspopup", !0), d.Browser.touch ? d.DomEvent.on(e, "click", d.DomEvent.stopPropagation) : d.DomEvent.disableClickPropagation(e).disableScrollPropagation(e);
+ var i = this._form = d.DomUtil.create("form", t + "-list");
+ if (this.options.collapsed) {
+ d.Browser.android || d.DomEvent.on(e, "mouseover", this._expand, this).on(e, "mouseout", this._collapse, this);
+ var o = this._layersLink = d.DomUtil.create("a", t + "-toggle", e);
+ o.href = "#", o.title = "Layers", d.Browser.touch ? d.DomEvent.on(o, "click", d.DomEvent.stop).on(o, "click", this._expand, this) : d.DomEvent.on(o, "focus", this._expand, this), d.DomEvent.on(i, "click", (function () {
+ setTimeout(d.bind(this._onInputClick, this), 0)
+ }), this), this._map.on("click", this._collapse, this)
+ } else this._expand();
+ this._baseLayersList = d.DomUtil.create("div", t + "-base", i), this._separator = d.DomUtil.create("div", t + "-separator", i), this._overlaysList = d.DomUtil.create("div", t + "-overlays", i), e.appendChild(i)
+ },
+ _addLayer: function (t, e, i) {
+ var o = d.stamp(t);
+ this._layers[o] = {
+ layer: t,
+ name: e,
+ overlay: i
+ }, this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex))
+ },
+ _update: function () {
+ if (this._container) {
+ this._baseLayersList.innerHTML = "", this._overlaysList.innerHTML = "";
+ var t, e, i = !1,
+ o = !1;
+ for (t in this._layers) e = this._layers[t], this._addItem(e), o = o || e.overlay, i = i || !e.overlay;
+ this._separator.style.display = o && i ? "" : "none"
+ }
+ },
+ _onLayerChange: function (t) {
+ var e = this._layers[d.stamp(t.layer)];
+ if (e) {
+ this._handlingClick || this._update();
+ var i = e.overlay ? "layeradd" === t.type ? "overlayadd" : "overlayremove" : "layeradd" === t.type ? "baselayerchange" : null;
+ i && this._map.fire(i, e)
+ }
+ },
+ _createRadioElement: function (t, e) {
+ var i = ' ";
+ var o = a.createElement("div");
+ return o.innerHTML = i, o.firstChild
+ },
+ _addItem: function (t) {
+ var e, i = a.createElement("label"),
+ o = this._map.hasLayer(t.layer);
+ t.overlay ? ((e = a.createElement("input")).type = "checkbox", e.className = "leaflet-control-layers-selector", e.defaultChecked = o) : e = this._createRadioElement("leaflet-base-layers", o), e.layerId = d.stamp(t.layer), d.DomEvent.on(e, "click", this._onInputClick, this);
+ var n = a.createElement("span");
+ return n.innerHTML = " " + t.name, i.appendChild(e), i.appendChild(n), (t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i), i
+ },
+ _onInputClick: function () {
+ var t, e, i, o = this._form.getElementsByTagName("input"),
+ n = o.length;
+ for (this._handlingClick = !0, t = 0; t < n; t++) e = o[t], i = this._layers[e.layerId], e.checked && !this._map.hasLayer(i.layer) ? this._map.addLayer(i.layer) : !e.checked && this._map.hasLayer(i.layer) && this._map.removeLayer(i.layer);
+ this._handlingClick = !1, this._refocusOnMap()
+ },
+ _expand: function () {
+ d.DomUtil.addClass(this._container, "leaflet-control-layers-expanded")
+ },
+ _collapse: function () {
+ this._container.className = this._container.className.replace(" leaflet-control-layers-expanded", "")
+ }
+ }), d.control.layers = function (t, e, i) {
+ return new d.Control.Layers(t, e, i)
+ }, d.PosAnimation = d.Class.extend({
+ includes: d.Mixin.Events,
+ run: function (t, e, i, o) {
+ this.stop(), this._el = t, this._inProgress = !0, this._newPos = e, this.fire("start"), t.style[d.DomUtil.TRANSITION] = "all " + (i || .25) + "s cubic-bezier(0,0," + (o || .5) + ",1)", d.DomEvent.on(t, d.DomUtil.TRANSITION_END, this._onTransitionEnd, this), d.DomUtil.setPosition(t, e), d.Util.falseFn(t.offsetWidth), this._stepTimer = setInterval(d.bind(this._onStep, this), 50)
+ },
+ stop: function () {
+ this._inProgress && (d.DomUtil.setPosition(this._el, this._getPos()), this._onTransitionEnd(), d.Util.falseFn(this._el.offsetWidth))
+ },
+ _onStep: function () {
+ var t = this._getPos();
+ t ? (this._el._leaflet_pos = t, this.fire("step")) : this._onTransitionEnd()
+ },
+ _transformRe: /([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,
+ _getPos: function () {
+ var t, e, i, o = this._el,
+ n = s.getComputedStyle(o);
+ if (d.Browser.any3d) {
+ if (!(i = n[d.DomUtil.TRANSFORM].match(this._transformRe))) return;
+ t = parseFloat(i[1]), e = parseFloat(i[2])
+ } else t = parseFloat(n.left), e = parseFloat(n.top);
+ return new d.Point(t, e, !0)
+ },
+ _onTransitionEnd: function () {
+ d.DomEvent.off(this._el, d.DomUtil.TRANSITION_END, this._onTransitionEnd, this), this._inProgress && (this._inProgress = !1, this._el.style[d.DomUtil.TRANSITION] = "", this._el._leaflet_pos = this._newPos, clearInterval(this._stepTimer), this.fire("step").fire("end"))
+ }
+ }), d.Map.include({
+ setView: function (t, e, i) {
+ if ((e = e === r ? this._zoom : this._limitZoom(e), t = this._limitCenter(d.latLng(t), e, this.options.maxBounds), i = i || {}, this._panAnim && this._panAnim.stop(), this._loaded && !i.reset && !0 !== i) && (i.animate !== r && (i.zoom = d.extend({
+ animate: i.animate
+ }, i.zoom), i.pan = d.extend({
+ animate: i.animate
+ }, i.pan)), this._zoom !== e ? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, i.zoom) : this._tryAnimatedPan(t, i.pan))) return clearTimeout(this._sizeTimer), this;
+ return this._resetView(t, e), this
+ },
+ panBy: function (t, e) {
+ if (e = e || {}, !(t = d.point(t).round()).x && !t.y) return this;
+ if (this._panAnim || (this._panAnim = new d.PosAnimation, this._panAnim.on({
+ step: this._onPanTransitionStep,
+ end: this._onPanTransitionEnd
+ }, this)), e.noMoveStart || this.fire("movestart"), !1 !== e.animate) {
+ d.DomUtil.addClass(this._mapPane, "leaflet-pan-anim");
+ var i = this._getMapPanePos().subtract(t);
+ this._panAnim.run(this._mapPane, i, e.duration || .25, e.easeLinearity)
+ } else this._rawPanBy(t), this.fire("move").fire("moveend");
+ return this
+ },
+ _onPanTransitionStep: function () {
+ this.fire("move")
+ },
+ _onPanTransitionEnd: function () {
+ d.DomUtil.removeClass(this._mapPane, "leaflet-pan-anim"), this.fire("moveend")
+ },
+ _tryAnimatedPan: function (t, e) {
+ var i = this._getCenterOffset(t)._floor();
+ return !(!0 !== (e && e.animate) && !this.getSize().contains(i)) && (this.panBy(i, e), !0)
+ }
+ }), d.PosAnimation = d.DomUtil.TRANSITION ? d.PosAnimation : d.PosAnimation.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 = d.DomUtil.getPosition(t), this._offset = e.subtract(this._startPos), this._startTime = +new Date, this.fire("start"), this._animate()
+ },
+ stop: function () {
+ this._inProgress && (this._step(), this._complete())
+ },
+ _animate: function () {
+ this._animId = d.Util.requestAnimFrame(this._animate, this), this._step()
+ },
+ _step: function () {
+ var t = +new Date - this._startTime,
+ e = 1e3 * this._duration;
+ t < e ? this._runFrame(this._easeOut(t / e)) : (this._runFrame(1), this._complete())
+ },
+ _runFrame: function (t) {
+ var e = this._startPos.add(this._offset.multiplyBy(t));
+ d.DomUtil.setPosition(this._el, e), this.fire("step")
+ },
+ _complete: function () {
+ d.Util.cancelAnimFrame(this._animId), this._inProgress = !1, this.fire("end")
+ },
+ _easeOut: function (t) {
+ return 1 - Math.pow(1 - t, this._easeOutPower)
+ }
+ }), d.Map.mergeOptions({
+ zoomAnimation: !0,
+ zoomAnimationThreshold: 4
+ }), d.DomUtil.TRANSITION && d.Map.addInitHook((function () {
+ this._zoomAnimated = this.options.zoomAnimation && d.DomUtil.TRANSITION && d.Browser.any3d && !d.Browser.android23 && !d.Browser.mobileOpera, this._zoomAnimated && d.DomEvent.on(this._mapPane, d.DomUtil.TRANSITION_END, this._catchTransitionEnd, this)
+ })), d.Map.include(d.DomUtil.TRANSITION ? {
+ _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),
+ s = this._getCenterLayerPoint()._add(n);
+ return !(!0 !== i.animate && !this.getSize().contains(n)) && (this.fire("movestart").fire("zoomstart"), this._animateZoom(t, e, s, o, null, !0), !0)
+ },
+ _animateZoom: function (t, e, i, o, n, s, a) {
+ a || (this._animatingZoom = !0), d.DomUtil.addClass(this._mapPane, "leaflet-zoom-anim"), this._animateToCenter = t, this._animateToZoom = e, d.Draggable && (d.Draggable._disabled = !0), d.Util.requestAnimFrame((function () {
+ this.fire("zoomanim", {
+ center: t,
+ zoom: e,
+ origin: i,
+ scale: o,
+ delta: n,
+ backwards: s
+ }), setTimeout(d.bind(this._onZoomTransitionEnd, this), 250)
+ }), this)
+ },
+ _onZoomTransitionEnd: function () {
+ this._animatingZoom && (this._animatingZoom = !1, d.DomUtil.removeClass(this._mapPane, "leaflet-zoom-anim"), d.Util.requestAnimFrame((function () {
+ this._resetView(this._animateToCenter, this._animateToZoom, !0, !0), d.Draggable && (d.Draggable._disabled = !1)
+ }), this))
+ }
+ } : {}), d.TileLayer.include({
+ _animateZoom: function (t) {
+ this._animating || (this._animating = !0, this._prepareBgBuffer());
+ var e = this._bgBuffer,
+ i = d.DomUtil.TRANSFORM,
+ o = t.delta ? d.DomUtil.getTranslateString(t.delta) : e.style[i],
+ n = d.DomUtil.getScaleString(t.scale, t.origin);
+ e.style[i] = t.backwards ? n + " " + o : o + " " + n
+ },
+ _endZoomAnim: function () {
+ var t = this._tileContainer,
+ e = this._bgBuffer;
+ t.style.visibility = "", t.parentNode.appendChild(t), d.Util.falseFn(e.offsetWidth);
+ var i = this._map.getZoom();
+ (i > this.options.maxZoom || i < this.options.minZoom) && this._clearBgBuffer(), this._animating = !1
+ },
+ _clearBgBuffer: function () {
+ var t = this._map;
+ !t || t._animatingZoom || t.touchZoom._zooming || (this._bgBuffer.innerHTML = "", this._bgBuffer.style[d.DomUtil.TRANSFORM] = "")
+ },
+ _prepareBgBuffer: function () {
+ var t = this._tileContainer,
+ e = this._bgBuffer,
+ i = this._getLoadedTilesPercentage(e),
+ o = this._getLoadedTilesPercentage(t);
+ if (e && i > .5 && o < .5) return t.style.visibility = "hidden", void this._stopLoadingImages(t);
+ e.style.visibility = "hidden", e.style[d.DomUtil.TRANSFORM] = "", this._tileContainer = e, e = this._bgBuffer = t, this._stopLoadingImages(e), clearTimeout(this._clearBgBufferTimer)
+ },
+ _getLoadedTilesPercentage: function (t) {
+ var e, i, o = t.getElementsByTagName("img"),
+ n = 0;
+ for (e = 0, i = o.length; e < i; e++) o[e].complete && n++;
+ return n / i
+ },
+ _stopLoadingImages: function (t) {
+ var e, i, o, n = Array.prototype.slice.call(t.getElementsByTagName("img"));
+ for (e = 0, i = n.length; e < i; e++)(o = n[e]).complete || (o.onload = d.Util.falseFn, o.onerror = d.Util.falseFn, o.src = d.Util.emptyImageUrl, o.parentNode.removeChild(o))
+ }
+ }), d.Map.include({
+ _defaultLocateOptions: {
+ watch: !1,
+ setView: !1,
+ maxZoom: 1 / 0,
+ timeout: 1e4,
+ maximumAge: 0,
+ enableHighAccuracy: !1
+ },
+ locate: function (t) {
+ if (t = this._locateOptions = d.extend(this._defaultLocateOptions, t), !navigator.geolocation) return this._handleGeolocationError({
+ code: 0,
+ message: "Geolocation not supported."
+ }), this;
+ var e = d.bind(this._handleGeolocationResponse, this),
+ i = d.bind(this._handleGeolocationError, this);
+ return t.watch ? this._locationWatchId = navigator.geolocation.watchPosition(e, i, t) : navigator.geolocation.getCurrentPosition(e, i, t), this
+ },
+ stopLocate: function () {
+ return navigator.geolocation && navigator.geolocation.clearWatch(this._locationWatchId), this._locateOptions && (this._locateOptions.setView = !1), this
+ },
+ _handleGeolocationError: function (t) {
+ 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) {
+ var e = t.coords.latitude,
+ i = t.coords.longitude,
+ o = new d.LatLng(e, i),
+ n = 180 * t.coords.accuracy / 40075017,
+ s = n / Math.cos(d.LatLng.DEG_TO_RAD * e),
+ a = d.latLngBounds([e - n, i - s], [e + n, i + s]),
+ r = this._locateOptions;
+ if (r.setView) {
+ var h = Math.min(this.getBoundsZoom(a), r.maxZoom);
+ this.setView(o, h)
+ }
+ var l = {
+ latlng: o,
+ bounds: a,
+ timestamp: t.timestamp
+ };
+ for (var c in t.coords) "number" == typeof t.coords[c] && (l[c] = t.coords[c]);
+ this.fire("locationfound", l)
+ }
+ })
+ }(window, document)
+ },
+ 16: (t, e, i) => {
+ "use strict";
+ i.r(e)
+ },
+ 965: 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 "}}')
+ },
+ 371: 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 "}}')
+ },
+ 473: 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 "}}')
+ },
+ 997: 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 "}}')
+ },
+ 879: 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 "}}')
+ },
+ 194: 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 "}}')
+ },
+ 299: 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 "}}')
+ },
+ 475: 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 "}}')
+ },
+ 376: 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 "}}')
+ },
+ 155: 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 "}}')
+ },
+ 68: 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 "}}')
+ },
+ 374: 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 "}}')
+ },
+ 130: 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 "}}')
+ },
+ 733: 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 "}}')
+ },
+ 873: 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 "}}')
+ },
+ 351: 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 "}}')
+ },
+ 697: 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 "}}')
+ },
+ 161: 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 "}}')
+ },
+ 314: 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 "}}')
+ },
+ 508: 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 "}}')
+ },
+ 849: 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 "}}')
+ },
+ 952: 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 "}}')
+ },
+ 865: 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 "}}')
+ },
+ 273: 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 "}}')
+ },
+ 830: 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 "}}')
+ },
+ 362: 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 "}}')
+ },
+ 125: 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 "}}')
+ },
+ 814: 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 "}}')
+ },
+ 220: 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":"左峿»‘動以ç€è¦½æˆ‘知é“了 "}}')
+ },
+ 329: (t, e, i) => {
+ var o = {
+ "./be.json": 965,
+ "./bg.json": 371,
+ "./cs.json": 473,
+ "./de.json": 997,
+ "./el.json": 879,
+ "./en.json": 194,
+ "./es.json": 299,
+ "./et.json": 475,
+ "./fr.json": 376,
+ "./he.json": 155,
+ "./hu.json": 68,
+ "./is.json": 374,
+ "./it.json": 130,
+ "./jp.json": 733,
+ "./ko.json": 873,
+ "./nl.json": 351,
+ "./nn.json": 697,
+ "./no.json": 161,
+ "./pl.json": 314,
+ "./pt.json": 508,
+ "./ru.json": 849,
+ "./sk.json": 952,
+ "./sr.json": 865,
+ "./sv.json": 273,
+ "./tr.json": 830,
+ "./uk.json": 362,
+ "./ur.json": 125,
+ "./zh-cn.json": 814,
+ "./zh-tw.json": 220
+ };
+
+ 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 = 329
+ }
+ },
+ e = {};
+
+ function i(o) {
+ var n = e[o];
+ if (void 0 !== n) return n.exports;
+ var s = e[o] = {
+ exports: {}
+ };
+ return t[o](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: () => G,
+ loadCSS: () => B,
+ setLanguage: () => j
+ });
+ 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,
+ p = a && "transition" in e.style,
+ _ = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix && !h,
+ u = "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),
+ M = function () {
+ var t = "portrait";
+ return window.innerWidth > window.innerHeight && (t = "landscape"), Math.abs(window.orientation), trace(t), t
+ };
+
+ function k(t) {
+ for (var e, i = Array.prototype.slice.call(arguments, 1), o = 0, n = i.length; o < n; o++)
+ for (var s in e = i[o] || {}) e.hasOwnProperty(s) && (t[s] = e[s]);
+ return t
+ }
+
+ function P(t, ...e) {
+ for (let o of e)
+ for (var i of Object.getOwnPropertyNames(o.prototype)) t.prototype[i] = o.prototype[i]
+ }
+
+ function T(t, e) {
+ var i;
+ for (i in e) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
+ return t
+ }
+
+ function D() {
+ var t = 0,
+ e = "_vco_id";
+ return function (i) {
+ return i[e] = i[e] || ++t, i[e]
+ }
+ }
+
+ function S(t, e) {
+ var i = function () {
+ var t;
+ return "abcdefghijklmnopqurstuvwxyz".substr((t = 32, Math.floor(Math.random() * t)), 1)
+ },
+ o = function (t) {
+ for (var e = "", o = 0; o < t; o++) e += i();
+ return e
+ };
+ return e ? e + "-" + o(t) : "vco-" + o(t)
+ }
+
+ function C(t) {
+ return y && (t = function (t) {
+ var e = {
+ "😄": 0,
+ "😃": 1,
+ "😀": 2,
+ "😊": 3,
+ "☺ï¸": 4,
+ "😉": 5,
+ "ðŸ˜": 6,
+ "😘": 7,
+ "😚": 8,
+ "😗": 9,
+ "😙": 10,
+ "😜": 11,
+ "ðŸ˜": 12,
+ "😛": 13,
+ "😳": 14,
+ "ðŸ˜": 15,
+ "😔": 16,
+ "😌": 17,
+ "😒": 18,
+ "😞": 19,
+ "😣": 20,
+ "😢": 21,
+ "😂": 22,
+ "ðŸ˜": 23,
+ "😪": 24,
+ "😥": 25,
+ "😰": 26,
+ "😅": 27,
+ "😓": 28,
+ "😩": 29,
+ "😫": 30,
+ "😨": 31,
+ "😱": 32,
+ "😠": 33,
+ "😡": 34,
+ "😤": 35,
+ "😖": 36,
+ "😆": 37,
+ "😋": 38,
+ "😷": 39,
+ "😎": 40,
+ "😴": 41,
+ "😵": 42,
+ "😲": 43,
+ "😟": 44,
+ "😦": 45,
+ "😧": 46,
+ "😈": 47,
+ "👿": 48,
+ "😮": 49,
+ "😬": 50,
+ "ðŸ˜": 51,
+ "😕": 52,
+ "😯": 53,
+ "😶": 54,
+ "😇": 55,
+ "ðŸ˜": 56,
+ "😑": 57,
+ "👲": 58,
+ "👳": 59,
+ "👮": 60,
+ "👷": 61,
+ "💂": 62,
+ "👶": 63,
+ "👦": 64,
+ "👧": 65,
+ "👨": 66,
+ "👩": 67,
+ "👴": 68,
+ "👵": 69,
+ "👱": 70,
+ "👼": 71,
+ "👸": 72,
+ "😺": 73,
+ "😸": 74,
+ "😻": 75,
+ "😽": 76,
+ "😼": 77,
+ "🙀": 78,
+ "😿": 79,
+ "😹": 80,
+ "😾": 81,
+ "👹": 82,
+ "👺": 83,
+ "🙈": 84,
+ "🙉": 85,
+ "🙊": 86,
+ "💀": 87,
+ "👽": 88,
+ "💩": 89,
+ "🔥": 90,
+ "✨": 91,
+ "🌟": 92,
+ "💫": 93,
+ "💥": 94,
+ "💢": 95,
+ "💦": 96,
+ "💧": 97,
+ "💤": 98,
+ "💨": 99,
+ "👂": 100,
+ "👀": 101,
+ "👃": 102,
+ "👅": 103,
+ "👄": 104,
+ "ðŸ‘": 105,
+ "👎": 106,
+ "👌": 107,
+ "👊": 108,
+ "✊": 109,
+ "✌ï¸": 110,
+ "👋": 111,
+ "✋": 112,
+ "ðŸ‘": 113,
+ "👆": 114,
+ "👇": 115,
+ "👉": 116,
+ "👈": 117,
+ "🙌": 118,
+ "ðŸ™": 119,
+ "â˜ï¸": 120,
+ "ðŸ‘": 121,
+ "💪": 122,
+ "🚶": 123,
+ "ðŸƒ": 124,
+ "💃": 125,
+ "👫": 126,
+ "👪": 127,
+ "👬": 128,
+ "ðŸ‘": 129,
+ "ðŸ’": 130,
+ "💑": 131,
+ "👯": 132,
+ "🙆": 133,
+ "🙅": 134,
+ "ðŸ’": 135,
+ "🙋": 136,
+ "💆": 137,
+ "💇": 138,
+ "💅": 139,
+ "👰": 140,
+ "🙎": 141,
+ "ðŸ™": 142,
+ "🙇": 143,
+ "🎩": 144,
+ "👑": 145,
+ "👒": 146,
+ "👟": 147,
+ "👞": 148,
+ "👡": 149,
+ "👠": 150,
+ "👢": 151,
+ "👕": 152,
+ "👔": 153,
+ "👚": 154,
+ "👗": 155,
+ "🎽": 156,
+ "👖": 157,
+ "👘": 158,
+ "👙": 159,
+ "💼": 160,
+ "👜": 161,
+ "ðŸ‘": 162,
+ "👛": 163,
+ "👓": 164,
+ "🎀": 165,
+ "🌂": 166,
+ "💄": 167,
+ "💛": 168,
+ "💙": 169,
+ "💜": 170,
+ "💚": 171,
+ "â¤ï¸": 172,
+ "💔": 173,
+ "💗": 174,
+ "💓": 175,
+ "💕": 176,
+ "💖": 177,
+ "💞": 178,
+ "💘": 179,
+ "💌": 180,
+ "💋": 181,
+ "ðŸ’": 182,
+ "💎": 183,
+ "👤": 184,
+ "👥": 185,
+ "💬": 186,
+ "👣": 187,
+ "ðŸ’": 188,
+ "ðŸ¶": 189,
+ "ðŸº": 190,
+ "ðŸ±": 191,
+ "ðŸ": 192,
+ "ðŸ¹": 193,
+ "ðŸ°": 194,
+ "ðŸ¸": 195,
+ "ðŸ¯": 196,
+ "ðŸ¨": 197,
+ "ðŸ»": 198,
+ "ðŸ·": 199,
+ "ðŸ½": 200,
+ "ðŸ®": 201,
+ "ðŸ—": 202,
+ "ðŸµ": 203,
+ "ðŸ’": 204,
+ "ðŸ´": 205,
+ "ðŸ‘": 206,
+ "ðŸ˜": 207,
+ "ðŸ¼": 208,
+ "ðŸ§": 209,
+ "ðŸ¦": 210,
+ "ðŸ¤": 211,
+ "ðŸ¥": 212,
+ "ðŸ£": 213,
+ "ðŸ”": 214,
+ "ðŸ": 215,
+ "ðŸ¢": 216,
+ "ðŸ›": 217,
+ "ðŸ": 218,
+ "ðŸœ": 219,
+ "ðŸž": 220,
+ "ðŸŒ": 221,
+ "ðŸ™": 222,
+ "ðŸš": 223,
+ "ðŸ ": 224,
+ "ðŸŸ": 225,
+ "ðŸ¬": 226,
+ "ðŸ³": 227,
+ "ðŸ‹": 228,
+ "ðŸ„": 229,
+ "ðŸ": 230,
+ "ðŸ€": 231,
+ "ðŸƒ": 232,
+ "ðŸ…": 233,
+ "ðŸ‡": 234,
+ "ðŸ‰": 235,
+ "ðŸŽ": 236,
+ "ðŸ": 237,
+ "ðŸ“": 238,
+ "ðŸ•": 239,
+ "ðŸ–": 240,
+ "ðŸ": 241,
+ "ðŸ‚": 242,
+ "ðŸ²": 243,
+ "ðŸ¡": 244,
+ "ðŸŠ": 245,
+ "ðŸ«": 246,
+ "ðŸª": 247,
+ "ðŸ†": 248,
+ "ðŸˆ": 249,
+ "ðŸ©": 250,
+ "ðŸ¾": 251,
+ "ðŸ’": 252,
+ "🌸": 253,
+ "🌷": 254,
+ "ðŸ€": 255,
+ "🌹": 256,
+ "🌻": 257,
+ "🌺": 258,
+ "ðŸ": 259,
+ "ðŸƒ": 260,
+ "ðŸ‚": 261,
+ "🌿": 262,
+ "🌾": 263,
+ "ðŸ„": 264,
+ "🌵": 265,
+ "🌴": 266,
+ "🌲": 267,
+ "🌳": 268,
+ "🌰": 269,
+ "🌱": 270,
+ "🌼": 271,
+ "ðŸŒ": 272,
+ "🌞": 273,
+ "ðŸŒ": 274,
+ "🌚": 275,
+ "🌑": 276,
+ "🌒": 277,
+ "🌓": 278,
+ "🌔": 279,
+ "🌕": 280,
+ "🌖": 281,
+ "🌗": 282,
+ "🌘": 283,
+ "🌜": 284,
+ "🌛": 285,
+ "🌙": 286,
+ "ðŸŒ": 287,
+ "🌎": 288,
+ "ðŸŒ": 289,
+ "🌋": 290,
+ "🌌": 291,
+ "🌠": 292,
+ "âï¸": 293,
+ "☀ï¸": 294,
+ "â›…ï¸": 295,
+ "â˜ï¸": 296,
+ "âš¡ï¸": 297,
+ "☔ï¸": 298,
+ "â„ï¸": 299,
+ "⛄ï¸": 300,
+ "🌀": 301,
+ "ðŸŒ": 302,
+ "🌈": 303,
+ "🌊": 304,
+ "ðŸŽ": 305,
+ "ðŸ’": 306,
+ "🎎": 307,
+ "🎒": 308,
+ "🎓": 309,
+ "ðŸŽ": 310,
+ "🎆": 311,
+ "🎇": 312,
+ "ðŸŽ": 313,
+ "🎑": 314,
+ "🎃": 315,
+ "👻": 316,
+ "🎅": 317,
+ "🎄": 318,
+ "ðŸŽ": 319,
+ "🎋": 320,
+ "🎉": 321,
+ "🎊": 322,
+ "🎈": 323,
+ "🎌": 324,
+ "🔮": 325,
+ "🎥": 326,
+ "📷": 327,
+ "📹": 328,
+ "📼": 329,
+ "💿": 330,
+ "📀": 331,
+ "💽": 332,
+ "💾": 333,
+ "💻": 334,
+ "📱": 335,
+ "☎ï¸": 336,
+ "📞": 337,
+ "📟": 338,
+ "📠": 339,
+ "📡": 340,
+ "📺": 341,
+ "📻": 342,
+ "🔊": 343,
+ "🔉": 344,
+ "🔈": 345,
+ "🔇": 346,
+ "🔔": 347,
+ "🔕": 348,
+ "📢": 349,
+ "📣": 350,
+ "â³": 351,
+ "⌛ï¸": 352,
+ "â°": 353,
+ "⌚ï¸": 354,
+ "🔓": 355,
+ "🔒": 356,
+ "ðŸ”": 357,
+ "ðŸ”": 358,
+ "🔑": 359,
+ "🔎": 360,
+ "💡": 361,
+ "🔦": 362,
+ "🔆": 363,
+ "🔅": 364,
+ "🔌": 365,
+ "🔋": 366,
+ "ðŸ”": 367,
+ "ðŸ›": 368,
+ "🛀": 369,
+ "🚿": 370,
+ "🚽": 371,
+ "🔧": 372,
+ "🔩": 373,
+ "🔨": 374,
+ "🚪": 375,
+ "🚬": 376,
+ "💣": 377,
+ "🔫": 378,
+ "🔪": 379,
+ "💊": 380,
+ "💉": 381,
+ "💰": 382,
+ "💴": 383,
+ "💵": 384,
+ "💷": 385,
+ "💶": 386,
+ "💳": 387,
+ "💸": 388,
+ "📲": 389,
+ "📧": 390,
+ "📥": 391,
+ "📤": 392,
+ "✉ï¸": 393,
+ "📩": 394,
+ "📨": 395,
+ "📯": 396,
+ "📫": 397,
+ "📪": 398,
+ "📬": 399,
+ "ðŸ“": 400,
+ "📮": 401,
+ "📦": 402,
+ "ðŸ“": 403,
+ "📄": 404,
+ "📃": 405,
+ "📑": 406,
+ "📊": 407,
+ "📈": 408,
+ "📉": 409,
+ "📜": 410,
+ "📋": 411,
+ "📅": 412,
+ "📆": 413,
+ "📇": 414,
+ "ðŸ“": 415,
+ "📂": 416,
+ "✂ï¸": 417,
+ "📌": 418,
+ "📎": 419,
+ "✒ï¸": 420,
+ "âœï¸": 421,
+ "ðŸ“": 422,
+ "ðŸ“": 423,
+ "📕": 424,
+ "📗": 425,
+ "📘": 426,
+ "📙": 427,
+ "📓": 428,
+ "📔": 429,
+ "📒": 430,
+ "📚": 431,
+ "📖": 432,
+ "🔖": 433,
+ "📛": 434,
+ "🔬": 435,
+ "ðŸ”": 436,
+ "📰": 437,
+ "🎨": 438,
+ "🎬": 439,
+ "🎤": 440,
+ "🎧": 441,
+ "🎼": 442,
+ "🎵": 443,
+ "🎶": 444,
+ "🎹": 445,
+ "🎻": 446,
+ "🎺": 447,
+ "🎷": 448,
+ "🎸": 449,
+ "👾": 450,
+ "🎮": 451,
+ "ðŸƒ": 452,
+ "🎴": 453,
+ "🀄ï¸": 454,
+ "🎲": 455,
+ "🎯": 456,
+ "ðŸˆ": 457,
+ "ðŸ€": 458,
+ "âš½ï¸": 459,
+ "âš¾ï¸": 460,
+ "🎾": 461,
+ "🎱": 462,
+ "ðŸ‰": 463,
+ "🎳": 464,
+ "⛳ï¸": 465,
+ "🚵": 466,
+ "🚴": 467,
+ "ðŸ": 468,
+ "ðŸ‡": 469,
+ "ðŸ†": 470,
+ "🎿": 471,
+ "ðŸ‚": 472,
+ "ðŸŠ": 473,
+ "ðŸ„": 474,
+ "🎣": 475,
+ "☕ï¸": 476,
+ "ðŸµ": 477,
+ "ðŸ¶": 478,
+ "ðŸ¼": 479,
+ "ðŸº": 480,
+ "ðŸ»": 481,
+ "ðŸ¸": 482,
+ "ðŸ¹": 483,
+ "ðŸ·": 484,
+ "ðŸ´": 485,
+ "ðŸ•": 486,
+ "ðŸ”": 487,
+ "ðŸŸ": 488,
+ "ðŸ—": 489,
+ "ðŸ–": 490,
+ "ðŸ": 491,
+ "ðŸ›": 492,
+ "ðŸ¤": 493,
+ "ðŸ±": 494,
+ "ðŸ£": 495,
+ "ðŸ¥": 496,
+ "ðŸ™": 497,
+ "ðŸ˜": 498,
+ "ðŸš": 499,
+ "ðŸœ": 500,
+ "ðŸ²": 501,
+ "ðŸ¢": 502,
+ "ðŸ¡": 503,
+ "ðŸ³": 504,
+ "ðŸž": 505,
+ "ðŸ©": 506,
+ "ðŸ®": 507,
+ "ðŸ¦": 508,
+ "ðŸ¨": 509,
+ "ðŸ§": 510,
+ "🎂": 511,
+ "ðŸ°": 512,
+ "ðŸª": 513,
+ "ðŸ«": 514,
+ "ðŸ¬": 515,
+ "ðŸ": 516,
+ "ðŸ¯": 517,
+ "ðŸŽ": 518,
+ "ðŸ": 519,
+ "ðŸŠ": 520,
+ "ðŸ‹": 521,
+ "ðŸ’": 522,
+ "ðŸ‡": 523,
+ "ðŸ‰": 524,
+ "ðŸ“": 525,
+ "ðŸ‘": 526,
+ "ðŸˆ": 527,
+ "ðŸŒ": 528,
+ "ðŸ": 529,
+ "ðŸ": 530,
+ "ðŸ ": 531,
+ "ðŸ†": 532,
+ "ðŸ…": 533,
+ "🌽": 534,
+ "ðŸ ": 535,
+ "ðŸ¡": 536,
+ "ðŸ«": 537,
+ "ðŸ¢": 538,
+ "ðŸ£": 539,
+ "ðŸ¥": 540,
+ "ðŸ¦": 541,
+ "ðŸª": 542,
+ "ðŸ©": 543,
+ "ðŸ¨": 544,
+ "💒": 545,
+ "⛪ï¸": 546,
+ "ðŸ¬": 547,
+ "ðŸ¤": 548,
+ "🌇": 549,
+ "🌆": 550,
+ "ðŸ¯": 551,
+ "ðŸ°": 552,
+ "⛺ï¸": 553,
+ "ðŸ": 554,
+ "🗼": 555,
+ "🗾": 556,
+ "🗻": 557,
+ "🌄": 558,
+ "🌅": 559,
+ "🌃": 560,
+ "🗽": 561,
+ "🌉": 562,
+ "🎠": 563,
+ "🎡": 564,
+ "⛲ï¸": 565,
+ "🎢": 566,
+ "🚢": 567,
+ "⛵ï¸": 568,
+ "🚤": 569,
+ "🚣": 570,
+ "âš“ï¸": 571,
+ "🚀": 572,
+ "✈ï¸": 573,
+ "💺": 574,
+ "ðŸš": 575,
+ "🚂": 576,
+ "🚊": 577,
+ "🚉": 578,
+ "🚞": 579,
+ "🚆": 580,
+ "🚄": 581,
+ "🚅": 582,
+ "🚈": 583,
+ "🚇": 584,
+ "ðŸš": 585,
+ "🚋": 586,
+ "🚃": 587,
+ "🚎": 588,
+ "🚌": 589,
+ "ðŸš": 590,
+ "🚙": 591,
+ "🚘": 592,
+ "🚗": 593,
+ "🚕": 594,
+ "🚖": 595,
+ "🚛": 596,
+ "🚚": 597,
+ "🚨": 598,
+ "🚓": 599,
+ "🚔": 600,
+ "🚒": 601,
+ "🚑": 602,
+ "ðŸš": 603,
+ "🚲": 604,
+ "🚡": 605,
+ "🚟": 606,
+ "🚠": 607,
+ "🚜": 608,
+ "💈": 609,
+ "ðŸš": 610,
+ "🎫": 611,
+ "🚦": 612,
+ "🚥": 613,
+ "âš ï¸": 614,
+ "🚧": 615,
+ "🔰": 616,
+ "⛽ï¸": 617,
+ "ðŸ®": 618,
+ "🎰": 619,
+ "♨ï¸": 620,
+ "🗿": 621,
+ "🎪": 622,
+ "ðŸŽ": 623,
+ "ðŸ“": 624,
+ "🚩": 625,
+ "🇯🇵": 626,
+ "🇰🇷": 627,
+ "🇩🇪": 628,
+ "🇨🇳": 629,
+ "🇺🇸": 630,
+ "🇫🇷": 631,
+ "🇪🇸": 632,
+ "🇮🇹": 633,
+ "🇷🇺": 634,
+ "🇬🇧": 635,
+ "1⃣": 636,
+ "2⃣": 637,
+ "3⃣": 638,
+ "4⃣": 639,
+ "5⃣": 640,
+ "6⃣": 641,
+ "7⃣": 642,
+ "8⃣": 643,
+ "9⃣": 644,
+ "0⃣": 645,
+ "🔟": 646,
+ "🔢": 647,
+ "#⃣": 648,
+ "🔣": 649,
+ "⬆ï¸": 650,
+ "⬇ï¸": 651,
+ "⬅ï¸": 652,
+ "âž¡ï¸": 653,
+ "🔠": 654,
+ "🔡": 655,
+ "🔤": 656,
+ "↗ï¸": 657,
+ "↖ï¸": 658,
+ "↘ï¸": 659,
+ "↙ï¸": 660,
+ "↔ï¸": 661,
+ "↕ï¸": 662,
+ "🔄": 663,
+ "â—€ï¸": 664,
+ "â–¶ï¸": 665,
+ "🔼": 666,
+ "🔽": 667,
+ "↩ï¸": 668,
+ "↪ï¸": 669,
+ ℹ ï¸: 670,
+ "âª": 671,
+ "â©": 672,
+ "â«": 673,
+ "â¬": 674,
+ "⤵ï¸": 675,
+ "⤴ï¸": 676,
+ "🆗": 677,
+ "🔀": 678,
+ "ðŸ”": 679,
+ "🔂": 680,
+ "🆕": 681,
+ "🆙": 682,
+ "🆒": 683,
+ "🆓": 684,
+ "🆖": 685,
+ "📶": 686,
+ "🎦": 687,
+ "ðŸˆ": 688,
+ "🈯ï¸": 689,
+ "🈳": 690,
+ "🈵": 691,
+ "🈴": 692,
+ "🈲": 693,
+ "ðŸ‰": 694,
+ "🈹": 695,
+ "🈺": 696,
+ "🈶": 697,
+ "🈚ï¸": 698,
+ "🚻": 699,
+ "🚹": 700,
+ "🚺": 701,
+ "🚼": 702,
+ "🚾": 703,
+ "🚰": 704,
+ "🚮": 705,
+ "🅿ï¸": 706,
+ "♿ï¸": 707,
+ "ðŸš": 708,
+ "🈷": 709,
+ "🈸": 710,
+ "🈂": 711,
+ "â“‚ï¸": 712,
+ "🛂": 713,
+ "🛄": 714,
+ "🛅": 715,
+ "🛃": 716,
+ "🉑": 717,
+ "㊙ï¸": 718,
+ "㊗ï¸": 719,
+ "🆑": 720,
+ "🆘": 721,
+ "🆔": 722,
+ "🚫": 723,
+ "🔞": 724,
+ "📵": 725,
+ "🚯": 726,
+ "🚱": 727,
+ "🚳": 728,
+ "🚷": 729,
+ "🚸": 730,
+ "â›”ï¸": 731,
+ "✳ï¸": 732,
+ "â‡ï¸": 733,
+ "âŽ": 734,
+ "✅": 735,
+ "✴ï¸": 736,
+ "💟": 737,
+ "🆚": 738,
+ "📳": 739,
+ "📴": 740,
+ "🅰": 741,
+ "🅱": 742,
+ "🆎": 743,
+ "🅾": 744,
+ "💠": 745,
+ "âž¿": 746,
+ "â™»ï¸": 747,
+ "♈ï¸": 748,
+ "♉ï¸": 749,
+ "♊ï¸": 750,
+ "♋ï¸": 751,
+ "♌ï¸": 752,
+ "â™ï¸": 753,
+ "♎ï¸": 754,
+ "â™ï¸": 755,
+ "â™ï¸": 756,
+ "♑ï¸": 757,
+ "â™’ï¸": 758,
+ "♓ï¸": 759,
+ "⛎": 760,
+ "🔯": 761,
+ "ðŸ§": 762,
+ "💹": 763,
+ "💲": 764,
+ "💱": 765,
+ "©": 766,
+ "®": 767,
+ "â„¢": 768,
+ "âŒ": 769,
+ "‼ï¸": 770,
+ "â‰ï¸": 771,
+ "â—ï¸": 772,
+ "â“": 773,
+ "â•": 774,
+ "â”": 775,
+ "â•ï¸": 776,
+ "ðŸ”": 777,
+ "🔚": 778,
+ "🔙": 779,
+ "🔛": 780,
+ "🔜": 781,
+ "🔃": 782,
+ "🕛": 783,
+ "🕧": 784,
+ "ðŸ•": 785,
+ "🕜": 786,
+ "🕑": 787,
+ "ðŸ•": 788,
+ "🕒": 789,
+ "🕞": 790,
+ "🕓": 791,
+ "🕟": 792,
+ "🕔": 793,
+ "🕠": 794,
+ "🕕": 795,
+ "🕖": 796,
+ "🕗": 797,
+ "🕘": 798,
+ "🕙": 799,
+ "🕚": 800,
+ "🕡": 801,
+ "🕢": 802,
+ "🕣": 803,
+ "🕤": 804,
+ "🕥": 805,
+ "🕦": 806,
+ "✖ï¸": 807,
+ "âž•": 808,
+ "âž–": 809,
+ "âž—": 810,
+ "â™ ï¸": 811,
+ "♥ï¸": 812,
+ "♣ï¸": 813,
+ "♦ï¸": 814,
+ "💮": 815,
+ "💯": 816,
+ "✔ï¸": 817,
+ "☑ï¸": 818,
+ "🔘": 819,
+ "🔗": 820,
+ "âž°": 821,
+ "〰": 822,
+ "〽ï¸": 823,
+ "🔱": 824,
+ "â—¼ï¸": 825,
+ "â—»ï¸": 826,
+ "â—¾ï¸": 827,
+ "â—½ï¸": 828,
+ "â–ªï¸": 829,
+ "â–«ï¸": 830,
+ "🔺": 831,
+ "🔲": 832,
+ "🔳": 833,
+ "âš«ï¸": 834,
+ "⚪ï¸": 835,
+ "🔴": 836,
+ "🔵": 837,
+ "🔻": 838,
+ "⬜ï¸": 839,
+ "⬛ï¸": 840,
+ "🔶": 841,
+ "🔷": 842,
+ "🔸": 843,
+ "🔹": 844,
+ "☺": 4,
+ "✌": 110,
+ "â˜": 120,
+ "â¤": 172,
+ "â": 293,
+ "☀": 294,
+ "â›…": 295,
+ "â˜": 296,
+ "âš¡": 297,
+ "☔": 298,
+ "â„": 299,
+ "⛄": 300,
+ "☎": 336,
+ "⌛": 352,
+ "⌚": 354,
+ "✉": 393,
+ "✂": 417,
+ "✒": 420,
+ "âœ": 421,
+ "🀄": 454,
+ "âš½": 459,
+ "âš¾": 460,
+ "⛳": 465,
+ "☕": 476,
+ "⛪": 546,
+ "⛺": 553,
+ "⛲": 565,
+ "⛵": 568,
+ "âš“": 571,
+ "✈": 573,
+ "âš ": 614,
+ "⛽": 617,
+ "♨": 620,
+ "⬆": 650,
+ "⬇": 651,
+ "⬅": 652,
+ "âž¡": 653,
+ "↗": 657,
+ "↖": 658,
+ "↘": 659,
+ "↙": 660,
+ "↔": 661,
+ "↕": 662,
+ "â—€": 664,
+ "â–¶": 665,
+ "↩": 668,
+ "↪": 669,
+ ℹ: 670,
+ "⤵": 675,
+ "⤴": 676,
+ "🈯": 689,
+ "🈚": 698,
+ "🅿": 706,
+ "♿": 707,
+ "â“‚": 712,
+ "㊙": 718,
+ "㊗": 719,
+ "â›”": 731,
+ "✳": 732,
+ "â‡": 733,
+ "✴": 736,
+ "â™»": 747,
+ "♈": 748,
+ "♉": 749,
+ "♊": 750,
+ "♋": 751,
+ "♌": 752,
+ "â™": 753,
+ "♎": 754,
+ "â™": 755,
+ "â™": 756,
+ "♑": 757,
+ "â™’": 758,
+ "♓": 759,
+ "‼": 770,
+ "â‰": 771,
+ "â—": 772,
+ "â•": 776,
+ "✖": 807,
+ "â™ ": 811,
+ "♥": 812,
+ "♣": 813,
+ "♦": 814,
+ "✔": 817,
+ "☑": 818,
+ "〽": 823,
+ "â—¼": 825,
+ "â—»": 826,
+ "â—¾": 827,
+ "â—½": 828,
+ "â–ª": 829,
+ "â–«": 830,
+ "âš«": 834,
+ "⚪": 835,
+ "⬜": 839,
+ "⬛": 840
+ },
+ i = [];
+ for (var o in e) i.push(o);
+ var n = new RegExp("(" + i.join("|") + ")", "g");
+ return i = null, t.replace(n, (function (t, i) {
+ return ' '
+ }))
+ }(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
+ },
+ O = 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 z(t, e, i, o) {
+ A.js(t, e, i, o)
+ }
+
+ function B(t, e, i, o) {
+ A.css(t, e, i, o)
+ }
+ let A = 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),
+ p = "css" === t,
+ _ = [];
+ if (e)
+ if (e = "string" == typeof e ? [e] : e.concat(), p || 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 < a; ++s) this.queue[t].push({
+ urls: [e[s]],
+ callback: s === a - 1 ? i : null,
+ obj: o,
+ context: n
+ });
+ if (!this.pending[t] && (h = this.pending[t] = this.queue[t].shift())) {
+ for (s = 0, a = (l = h.urls).length; s < a; ++s) c = l[s], p ? r = this.env.gecko ? this.createNode("style") : this.createNode("link", {
+ href: c,
+ rel: "stylesheet"
+ }) : (r = this.createNode("script", {
+ src: c
+ })).async = !1, r.className = "lazyload", r.setAttribute("charset", "utf-8"), this.env.ie && !p ? r.onreadystatechange = function () {
+ /loaded|complete/.test(r.readyState) && (r.onreadystatechange = null, d())
+ } : p && (this.env.gecko || this.env.webkit) ? this.env.webkit ? (h.urls[s] = r.href, this.pollWebKit()) : (r.innerHTML = '@import "' + c + '";', this.pollGecko(r)) : r.onload = r.onerror = d, _.push(r);
+ for (s = 0, a = _.length; s < a; ++s) this.head.appendChild(_[s])
+ }
+ }
+ pollGecko(t) {
+ var e;
+ try {
+ e = !!t.sheet.cssRules
+ } catch (o) {
+ if (this.pollCount += 1, this.pollCount < 200) {
+ var i = this;
+ setTimeout((function () {
+ i.pollGecko(t)
+ }), 50)
+ } else e && this.finish("css");
+ return
+ }
+ this.finish("css")
+ }
+ pollWebKit() {
+ var t, e = this.pending.css;
+ if (e) {
+ for (t = this.styleSheets.length; --t >= 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; i < t.length; i++)
+ if (t[i] in e) return t[i];
+ return !1
+ }
+ }
+ let N = [.42, 0, 1, 1];
+ class U {
+ KeySpline(t) {
+ function e(t, e) {
+ return 1 - 3 * e + 3 * t
+ }
+
+ function i(t, e) {
+ return 3 * e - 6 * t
+ }
+
+ function o(t) {
+ return 3 * t
+ }
+
+ function n(t, n, s) {
+ return ((e(n, s) * t + i(n, s)) * t + o(n)) * t
+ }
+
+ function s(t, n, s) {
+ return 3 * e(n, s) * t * t + 2 * i(n, s) * t + o(n)
+ }
+ this.get = function (e) {
+ return t[0] == t[1] && t[2] == t[3] ? e : n(function (e) {
+ for (var i = e, o = 0; o < 4; ++o) {
+ var a = s(i, t[0], t[2]);
+ if (0 == a) return i;
+ i -= (n(i, t[0], t[2]) - e) / a
+ }
+ return i
+ }(e), t[1], t[3])
+ }
+ }
+ easeInSpline(t) {
+ return new U.KeySpline(N).get(t)
+ }
+ easeInOutExpo(t) {
+ return new U.KeySpline(N).get(t)
+ }
+ easeOut(t) {
+ return Math.sin(t * Math.PI / 2)
+ }
+ easeOutStrong(t) {
+ return 1 == t ? 1 : 1 - Math.pow(2, -10 * t)
+ }
+ easeIn(t) {
+ return t * t
+ }
+ easeInStrong(t) {
+ return 0 == t ? 0 : Math.pow(2, 10 * (t - 1))
+ }
+ easeOutBounce(t) {
+ return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
+ }
+ easeInBack(t) {
+ var e = 1.70158;
+ return t * t * ((e + 1) * t - e)
+ }
+ easeOutBack(t) {
+ var e = 1.70158;
+ return (t -= 1) * t * ((e + 1) * t + e) + 1
+ }
+ bounce(t) {
+ return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
+ }
+ bouncePast(t) {
+ return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 2 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 2 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 2 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375)
+ }
+ swingTo(t) {
+ var e = 1.70158;
+ return (t -= 1) * t * ((e + 1) * t + e) + 1
+ }
+ swingFrom(t) {
+ var e = 1.70158;
+ return t * t * ((e + 1) * t - e)
+ }
+ elastic(t) {
+ return -1 * Math.pow(4, -8 * t) * Math.sin((6 * t - 1) * (2 * Math.PI) / 2) + 1
+ }
+ spring(t) {
+ return 1 - Math.cos(4.5 * t * Math.PI) * Math.exp(6 * -t)
+ }
+ blink(t, e) {
+ return Math.round(t * (e || 5)) % 2
+ }
+ pulse(t, e) {
+ return -Math.cos(t * ((e || 5) - .5) * 2 * Math.PI) / 2 + .5
+ }
+ wobble(t) {
+ return -Math.cos(t * Math.PI * (9 * t)) / 2 + .5
+ }
+ sinusoidal(t) {
+ return -Math.cos(t * Math.PI) / 2 + .5
+ }
+ flicker(t) {
+ t += (Math.random() - .5) / 5;
+ return easings.sinusoidal(t < 0 ? 0 : t > 1 ? 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 Z = i(194);
+ var R = {};
+
+ function j(t) {
+ return R = function (t) {
+ var e = i(329)(`./${t}.json`);
+ for (let t in Z) e[t] ? "object" == typeof Z[t] && (e[t] = Object.assign(Z[t], e[t])) : e[t] = Z[t];
+ return e
+ }(t)
+ }
+ 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 < s; o++)
+ if (n[t][o].action === e && (!i || n[t][o].context === i)) return n[t].splice(o, 1), this;
+ return this
+ }
+ fire(t, e) {
+ if (!this.hasEventListeners(t)) return this;
+ for (var i = k({
+ type: t,
+ target: this
+ }, e), o = this._vco_events[t].slice(), n = 0, s = o.length; n < s; n++) o[n].action.call(o[n].context || this, i);
+ return this
+ }
+ }
+ i(243);
+ class F {
+ show(t) {
+ t || (this._el.container.style.display = "block")
+ }
+ hide(t) {
+ this._el.container.style.display = "none"
+ }
+ addTo(t) {
+ t.appendChild(this._el.container), this.onAdd()
+ }
+ removeFrom(t) {
+ t.removeChild(this._el.container), this.onRemove()
+ }
+ animatePosition(t, e, i) {
+ var o = {
+ duration: this.options.duration,
+ easing: this.options.ease
+ };
+ for (var n in t) t.hasOwnProperty(n) && (o[n] = i ? t[n] + "%" : t[n] + "px");
+ this.animator && this.animator.stop(), this.animator = VCO.Animate(e, o)
+ }
+ onLoaded() {
+ this.fire("loaded", this.data)
+ }
+ onAdd() {
+ this.fire("added", this.data)
+ }
+ onRemove() {
+ this.fire("removed", this.data)
+ }
+ setPosition(t, e) {
+ for (var i in t) t.hasOwnProperty(i) && (e ? e.style[i] = t[i] + "px" : this._el.container.style[i] = t[i] + "px")
+ }
+ getPosition() {
+ return VCO.Dom.getPosition(this._el.container)
+ }
+ }
+ class H {
+ constructor(t, e, i) {
+ this._el = {
+ container: {},
+ map: {},
+ map_mask: {}
+ }, this._el.container = "object" == typeof t ? t : I.get(t), this._loaded = {
+ data: !1,
+ map: !1
+ }, this._map = null, this._mini_map = null, this._markers = [], this.zoom_min_max = {
+ min: null,
+ max: null
+ }, this._line = null, this._line_active = null, this.current_marker = 0, this.bounds_array = null, this._tile_layer = null, this._tile_layer_mini = null, this._image_layer = null, this.data = {
+ uniqueid: "",
+ slides: [{
+ test: "yes"
+ }, {
+ test: "yes"
+ }, {
+ test: "yes"
+ }]
+ }, this.options = {
+ map_type: "stamen:toner-lite",
+ map_as_image: !1,
+ map_mini: !1,
+ map_background_color: "#d9d9d9",
+ map_subdomains: "",
+ map_access_token: "",
+ zoomify: {
+ path: "",
+ width: "",
+ height: "",
+ tolerance: .8,
+ attribution: ""
+ },
+ skinny_size: 650,
+ less_bounce: !0,
+ path_gfx: "gfx",
+ start_at_slide: 0,
+ map_popup: !1,
+ zoom_distance: 100,
+ calculate_zoom: !0,
+ line_follows_path: !0,
+ line_color: "#333",
+ line_color_inactive: "#000",
+ line_weight: 5,
+ line_opacity: .2,
+ line_dash: "5,5",
+ line_join: "miter",
+ show_lines: !0,
+ show_history_line: !0,
+ map_center_offset: null
+ }, this.animator = null, this.timer = null, this.touch_scale = 1, this.scroll = {
+ start_time: null
+ }, T(this.options, i), T(this.data, e), this._initLayout(), this._initEvents(), this._createMap(), this._initData()
+ }
+ updateDisplay(t, e, i, o, n) {
+ this._updateDisplay(t, e, i, o, n)
+ }
+ goTo(t, e) {
+ if (t < this._markers.length && t >= 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 (r < this.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++;
+ else if (r > this.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; t < this._markers.length; t++) this._markers[t].data.location && this._markers[t].data.location.zoom && this.updateMinMaxZoom(this._markers[t].data.location.zoom)
+ }
+ updateMinMaxZoom(t) {
+ this.zoom_min_max.max || (this.zoom_min_max.max = t), this.zoom_min_max.min || (this.zoom_min_max.min = t), this.zoom_min_max.max < t && (this.zoom_min_max.max = t), this.zoom_min_max.min > t && (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; e < this._markers.length; e++) this._markers[e] == t && this._markers.splice(e, 1);
+ this.fire("markerRemoved", t)
+ }
+ _createMarkers(t) {
+ for (var e = 0; e < t.length; e++) this._createMarker(t[e]), t[e].location && t[e].location.lat && this.options.show_lines && this._addToLine(this._line, t[e])
+ }
+ _createLines(t) {}
+ _createMap() {}
+ _createMiniMap() {}
+ _createMarker(t) {
+ var e = {};
+ e.on("markerclick", this._onMarkerClick), this._addMarker(e), this._markers.push(e), e.marker_number = this._markers.length - 1, this.fire("markerAdded", e)
+ }
+ _addMarker(t) {}
+ _removeMarker(t) {}
+ _resetMarkersActive() {
+ for (var t = 0; t < this._markers.length; t++) this._markers[t].active(!1)
+ }
+ _calculateMarkerZooms() {}
+ _createLine(t) {
+ return {
+ data: t
+ }
+ }
+ _addToLine(t, e) {}
+ _replaceLines(t, e) {}
+ _addLineToMap(t) {}
+ _panTo(t, e) {}
+ _zoomTo(t, e) {}
+ _viewTo(t, e) {}
+ _updateMapDisplay(t, e) {}
+ _refreshMap() {}
+ _getMapLocation(t) {
+ return {
+ x: 0,
+ y: 0
+ }
+ }
+ _getMapZoom() {
+ return 1
+ }
+ _getMapCenter() {
+ return {
+ lat: 0,
+ lng: 0
+ }
+ }
+ _getBoundsZoom(t, e, i, o) {}
+ _markerOverview() {}
+ _initialMapLocation() {}
+ _onMarkerChange(t) {
+ this.fire("change", {
+ current_marker: this.current_marker
+ })
+ }
+ _onMarkerClick(t) {
+ this.current_marker != t.marker_number && this.goTo(t.marker_number)
+ }
+ _onMapLoaded(t) {
+ this._loaded.map = !0, this.options.calculate_zoom && this.calculateMarkerZooms(), this.calculateMinMaxZoom(), this.options.map_mini && !x && this.createMiniMap(), this.initialMapLocation(), this.fire("loaded", this.data)
+ }
+ _onWheel(t) {
+ var e = this;
+ if (t.ctrlKey) {
+ var i = Math.exp(-t.deltaY / 100);
+ this.touch_scale *= i, t.preventDefault(), t.stopPropagation(t)
+ }
+ this.scroll.start_time || (this.scroll.start_time = +new Date);
+ var o = Math.max(40 - (+new Date - this.scroll.start_time), 0);
+ clearTimeout(this.scroll.timer), this.scroll.timer = setTimeout((function () {
+ e._scollZoom()
+ }), o)
+ }
+ _scollZoom(t) {
+ var e = this,
+ i = this._getMapZoom();
+ this.scroll.start_time = null, clearTimeout(this.scroll.timer), clearTimeout(this.scroll.timer_done), this.scroll.timer_done = setTimeout((function () {
+ e._scollZoomDone()
+ }), 1e3), this.zoomTo(Math.round(i * this.touch_scale))
+ }
+ _scollZoomDone(t) {
+ this.touch_scale = 1
+ }
+ _calculateZoomChange(t, e, i) {
+ return this._getBoundsZoom(t, e, i)
+ }
+ _updateDisplay(t, e, i, o) {
+ this._updateMapDisplay(i, o)
+ }
+ _initLayout() {
+ this._el.map_mask = I.create("div", "vco-map-mask", this._el.container), this.options.map_as_image ? this._el.map = I.create("div", "vco-map-display vco-mapimage-display", this._el.map_mask) : this._el.map = I.create("div", "vco-map-display", this._el.map_mask)
+ }
+ _initData() {
+ this.data.slides && (this._createMarkers(this.data.slides), this._resetMarkersActive(), this._markers[this.current_marker].active(!0), this._loaded.data = !0, this._initialMapLocation())
+ }
+ _initEvents() {
+ var t = this;
+ this._el.map.addEventListener("wheel", (function (e) {
+ t._onWheel(e)
+ }))
+ }
+ }
+ P(H, W, F);
+ let V = {
+ continuousWorld: !0,
+ tolerance: .8
+ };
+ class G extends L.TileLayer {
+ constructor(t, e = V) {
+ super(t, e), e = L.setOptions(this, e), this._url = t, e.width || (e.width = 600), e.height || (e.width = 600);
+ var i = L.point(e.width, e.height),
+ o = e.tileSize;
+ for (this._imageSize = [i], this._gridSize = [this._getGridSize(i)]; i.x > o || 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 < t.x && e.y * i < t.y) return o;
+ o--
+ }
+ return o
+ }
+ _tileShouldBeLoaded(t) {
+ var e = this._gridSize[this._map.getZoom()];
+ return e ? t.x >= 0 && t.x < e.x && t.y >= 0 && t.y < e.y : (console.log("_tileShouldBeLoaded: No gridSize for " + this._map.getZoom()), !1)
+ }
+ _addTile(t, e) {
+ var i = this._getTilePos(t),
+ o = this._getTile(),
+ n = this._map.getZoom(),
+ s = this._imageSize[n],
+ a = this._gridSize[n],
+ r = this.options.tileSize;
+ t.x === a.x - 1 && (o.style.width = s.x - r * (a.x - 1) + "px"), t.y === a.y - 1 && (o.style.height = s.y - r * (a.y - 1) + "px"), L.DomUtil.setPosition(o, i, L.Browser.chrome || L.Browser.android23), this._tiles[t.x + ":" + t.y] = o, this._loadTile(o, t), o.parentNode !== this._tileContainer && e.appendChild(o)
+ }
+ getTileUrl(t) {
+ return this._url + "TileGroup" + this._getTileGroup(t) + "/" + this._map.getZoom() + "-" + t.x + "-" + t.y + ".jpg"
+ }
+ _getTileGroup(t) {
+ var e, i = this._map.getZoom(),
+ o = 0;
+ for (let t = 0; t < i; t++) o += (e = this._gridSize[t]).x * e.y;
+ return o += t.y * this._gridSize[i].x + t.x, Math.floor(o / 256)
+ }
+ }
+ const q = {
+ position: "bottomright",
+ toggleDisplay: !1,
+ zoomLevelOffset: -5,
+ zoomLevelFixed: !1,
+ zoomAnimation: !1,
+ autoToggleDisplay: !1,
+ show_view: !0,
+ width: 150,
+ height: 150,
+ aimingRectOptions: {
+ color: "#c34528",
+ weight: 1,
+ clickable: !1,
+ stroke: !0
+ },
+ shadowRectOptions: {
+ color: "#000000",
+ weight: 1,
+ clickable: !1,
+ opacity: 0,
+ fillOpacity: 0
+ }
+ };
+ class J extends L.Control {
+ constructor(t, e) {
+ let i = Object.assign({}, q, e);
+ super(t, i), L.Util.setOptions(this, i), this.hideText = "Hide MiniMap", this.showText = "Show MiniMap", this.options.aimingRectOptions.clickable = !1, this.options.shadowRectOptions.clickable = !1, this._layer = t
+ }
+ onAdd(t) {
+ return this._mainMap = t, this._container = L.DomUtil.create("div", "leaflet-control-minimap"), this._container.style.width = this.options.width + "px", this._container.style.height = this.options.height + "px", L.DomEvent.disableClickPropagation(this._container), L.DomEvent.on(this._container, "mousewheel", L.DomEvent.stopPropagation), this._miniMap = new L.Map(this._container, {
+ attributionControl: !1,
+ zoomControl: !1,
+ zoomAnimation: this.options.zoomAnimation,
+ autoToggleDisplay: this.options.autoToggleDisplay,
+ touchZoom: !1,
+ scrollWheelZoom: !1,
+ doubleClickZoom: !1,
+ boxZoom: !1,
+ dragging: !1,
+ crs: t.options.crs
+ }), this._miniMap.addLayer(this._layer), this._mainMapMoving = !1, this._miniMapMoving = !1, this._userToggledDisplay = !1, this._minimized = !1, this.options.toggleDisplay && this._addToggleButton(), this._miniMap.whenReady(L.Util.bind((function () {
+ this._aimingRect = L.rectangle(this._mainMap.getBounds(), this.options.aimingRectOptions).addTo(this._miniMap), this._shadowRect = L.rectangle(this._mainMap.getBounds(), this.options.shadowRectOptions).addTo(this._miniMap), this._locationCircle = L.circleMarker(this._mainMap.getCenter(), {
+ fillColor: "#c34528",
+ color: "#FFFFFF",
+ weight: 2,
+ radius: 10,
+ fill: !0,
+ fillOpacity: 1,
+ stroke: !0,
+ clickable: !1
+ }).addTo(this._miniMap), this._locationCircle.setRadius(5), this._mainMap.on("moveend", this._onMainMapMoved, this), this._mainMap.on("move", this._onMainMapMoving, this), this.options.bounds_array && this._miniMap.fitBounds(this.options.bounds_array, {
+ padding: [15, 15]
+ })
+ }), this)), this._container
+ }
+ minimize(t) {
+ this._minimized || this._minimize()
+ }
+ restore() {
+ this._minimized && (this._restore(), this._miniMap.fitBounds(this.options.bounds_array, {
+ padding: [15, 15]
+ }))
+ }
+ addTo(t) {
+ return L.Control.prototype.addTo.call(this, t), this._miniMap.setView(this._mainMap.getCenter(), this._decideZoom(!0)), this._setDisplay(this._decideMinimized()), this
+ }
+ onRemove(t) {
+ this._mainMap.off("moveend", this._onMainMapMoved, this), this._mainMap.off("move", this._onMainMapMoving, this), this._miniMap.off("moveend", this._onMiniMapMoved, this), this._miniMap.removeLayer(this._layer)
+ }
+ _addToggleButton() {
+ this._toggleDisplayButton = this.options.toggleDisplay ? this._createButton("", this.hideText, "leaflet-control-minimap-toggle-display", this._container, this._toggleDisplayButtonClicked, this) : void 0
+ }
+ _createButton(t, e, i, o, n, s) {
+ var a = L.DomUtil.create("a", i, o);
+ a.innerHTML = t, a.href = "#", a.title = e;
+ var r = L.DomEvent.stopPropagation;
+ return L.DomEvent.on(a, "click", r).on(a, "mousedown", r).on(a, "dblclick", r).on(a, "click", L.DomEvent.preventDefault).on(a, "click", n, s), a
+ }
+ _toggleDisplayButtonClicked() {
+ this._userToggledDisplay = !0, this._minimized ? (this._restore(), this._toggleDisplayButton.title = this.hideText) : (this._minimize(), this._toggleDisplayButton.title = this.showText)
+ }
+ _setDisplay(t) {
+ t != this._minimized && (this._minimized ? this._restore() : this._minimize())
+ }
+ _minimize() {
+ this._container.style.width = "0px", this._container.style.height = "0px", this._container.style.border = "0", this._minimized = !0
+ }
+ _restore() {
+ this._container.style.width = this.options.width + "px", this._container.style.height = this.options.height + "px", this._container.style.border = "2px solid #b3b3b3", this._minimized = !1
+ }
+ _onMainMapMoved(t) {
+ if (this._miniMapMoving) this._miniMapMoving = !1;
+ else {
+ this._decideZoom(!0);
+ this._mainMapMoving = !0, this._setDisplay(this._decideMinimized())
+ }
+ this.options.show_view && this._aimingRect.setBounds(this._mainMap.getBounds()), this._locationCircle.setLatLng(this._mainMap.getCenter())
+ }
+ _onMainMapMoving(t) {
+ this.options.show_view && this._aimingRect.setBounds(this._mainMap.getBounds()), this._locationCircle.setLatLng(this._mainMap.getCenter())
+ }
+ _onMiniMapMoveStarted(t) {
+ var e = this._aimingRect.getBounds(),
+ i = this._miniMap.latLngToContainerPoint(e.getSouthWest()),
+ o = this._miniMap.latLngToContainerPoint(e.getNorthEast());
+ this._lastAimingRectPosition = {
+ sw: i,
+ ne: o
+ }
+ }
+ _onMiniMapMoving(t) {
+ !this._mainMapMoving && this._lastAimingRectPosition && (this._shadowRect.setBounds(new L.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw), this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne))), this._shadowRect.setStyle({
+ opacity: 1,
+ fillOpacity: .3
+ }))
+ }
+ _onMiniMapMoved(t) {
+ this._mainMapMoving ? this._mainMapMoving = !1 : (this._miniMapMoving = !0, this._mainMap.setView(this._miniMap.getCenter(), this._decideZoom(!1)), this._shadowRect.setStyle({
+ opacity: 0,
+ fillOpacity: 0
+ }))
+ }
+ _decideZoom(t) {
+ if (this.options.zoomLevelFixed || 0 == this.options.zoomLevelFixed) return t ? this.options.zoomLevelFixed : this._mainMap.getZoom();
+ if (t) return this._mainMap.getZoom() + this.options.zoomLevelOffset;
+ var e, i = this._miniMap.getZoom() - this._mainMap.getZoom(),
+ o = this._miniMap.getZoom() - this.options.zoomLevelOffset;
+ return i > this.options.zoomLevelOffset && this._mainMap.getZoom() < this._miniMap.getMinZoom() - this.options.zoomLevelOffset ? this._miniMap.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 K {
+ 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: U.easeInSpline,
+ width: 600,
+ height: 600,
+ map_popup: !1
+ }, this.animator = null, T(this.options, e), T(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(K, W);
+ class Y extends K {
+ _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() : {}
+ }
+ }
+ let X = "a b c d".split(" ");
+
+ function $(t, e, i, o) {
+ return {
+ url: ["//stamen-tiles-{S}.a.ssl.fastly.net/", t, "/{Z}/{X}/{Y}.", e].join(""),
+ type: e,
+ subdomains: X.slice(),
+ minZoom: i,
+ maxZoom: o,
+ attribution: ["Leaflet | ", 'Map tiles by Stamen Design , ', 'under CC BY 3.0 . ', 'Data by OpenStreetMap , ', 'under CC BY SA .'].join("")
+ }
+ }
+ let Q = {
+ toner: $("toner", "png", 0, 20),
+ terrain: $("terrain", "jpg", 4, 18),
+ watercolor: $("watercolor", "jpg", 0, 16),
+ "trees-cabs-crime": {
+ url: "http://{S}.tiles.mapbox.com/v3/stamen.trees-cabs-crime/{Z}/{X}/{Y}.png",
+ type: "png",
+ subdomains: "a b c d".split(" "),
+ minZoom: 11,
+ maxZoom: 18,
+ extent: [{
+ lat: 37.853,
+ lon: -122.577
+ }, {
+ lat: 37.684,
+ lon: -122.313
+ }],
+ attribution: ['Design by Shawn Allen at Stamen .', 'Data courtesy of FuF ,', 'Yellow Cab ', '& SFPD .'].join(" ")
+ }
+ };
+
+ function tt(t, e, i) {
+ for (var o = et(t), n = 0; n < e.length; n++) {
+ var s = [t, e[n]].join("-");
+ Q[s] = $(s, i || o.type, o.minZoom, o.maxZoom)
+ }
+ }
+
+ function et(t) {
+ if (t in Q) return Q[t];
+ throw "No such provider (" + t + ")"
+ }
+ tt("toner", ["hybrid", "labels", "lines", "background", "lite"]), tt("toner", ["2010"]), tt("toner", ["2011", "2011-lines", "2011-labels", "2011-lite"]), tt("terrain", ["background"]), tt("terrain", ["labels", "lines"], "png");
+ class it extends L.TileLayer {
+ constructor(t, e) {
+ super(t, e);
+ var i = et(t),
+ o = i.url.replace(/({[A-Z]})/g, (function (t) {
+ return t.toLowerCase()
+ })),
+ n = {
+ minZoom: i.minZoom,
+ maxZoom: i.maxZoom,
+ subdomains: i.subdomains,
+ scheme: "xyz",
+ attribution: i.attribution
+ };
+ e && T(n, e), L.TileLayer.prototype.initialize.call(this, o, n)
+ }
+ }
+ class ot extends H {
+ _createMap() {
+ this._map = new L.map(this._el.map, {
+ scrollWheelZoom: !1,
+ zoomControl: !this.options.map_mini
+ }), this._map.on("load", this._onMapLoaded, this), this._map.on("moveend", this._onMapMoveEnd, this), this._map.attributionControl.setPrefix("■ StoryMapJS ");
+ this.options.map_type.split(":");
+ 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 J(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 = t.split(":"),
+ n = {},
+ s = "Leaflet | ";
+ switch (e && (n = e), o[0]) {
+ case "mapbox":
+ var a;
+ if (n.attribution = s + "
© Mapbox © OpenStreetMap ", o.length > 2) a = "https://api.mapbox.com/styles/v1/" + o[2].substr("//styles/".length) + "/tiles/256/{z}/{x}/{y}@2x?access_token=" + this.options.map_access_token;
+ else a = "https://api.tiles.mapbox.com/v4/" + o[1] + "/{z}/{x}/{y}.png?access_token=" + this.options.map_access_token;
+ i = new L.TileLayer(a, n);
+ break;
+ case "stamen":
+ i = new it(o[1] || "toner-lite", n), this._map.getContainer().style.backgroundColor = "#FFFFFF";
+ break;
+ case "zoomify":
+ n.width = this.options.zoomify.width, n.height = this.options.zoomify.height, n.tolerance = this.options.zoomify.tolerance || .9, n.attribution = s + this.options.zoomify.attribution, i = new G(this.options.zoomify.path, n);
+ break;
+ case "osm":
+ n.subdomains = "ab", n.attribution = s + "© OpenStreetMap and contributors, under an open license ", i = new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", n);
+ break;
+ case "http":
+ case "https":
+ n.subdomains = this.options.map_subdomains, n.attribution = s + this.options.attribution, i = new L.TileLayer(this.options.map_type, n);
+ break;
+ default:
+ i = new it("toner", n)
+ }
+ 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 Y(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; i < t.length; i++) t[i].data.real_marker && e.push([t[i].data.location.lat, t[i].data.location.lon]);
+ return e
+ }
+ _calculateMarkerZooms() {
+ for (var t = 0; t < this._markers.length; t++)
+ if (this._markers[t].data.location) {
+ var e, i, o, n, s, a, r = this._markers[t];
+ o = r.data.type && "overview" == r.data.type ? this._getMapCenter(!0) : r.location(), e = t > 0 ? this._markers[t - 1].location() : this._getMapCenter(!0), n = this._calculateZoomChange(e, o), i = t < this._markers.length - 1 ? this._markers[t + 1].location() : this._getMapCenter(!0), s = this._calculateZoomChange(i, o), a = n && n < s ? n : s || n, (this.options.map_center_offset && 0 != this.options.map_center_offset.left || 0 != this.options.map_center_offset.top) && (a -= 1), r.data.location.zoom = a
+ }
+ }
+ _createLine(t) {
+ return new L.Polyline([], {
+ clickable: !1,
+ color: this.options.line_color,
+ weight: this.options.line_weight,
+ opacity: this.options.line_opacity,
+ dashArray: this.options.line_dash,
+ lineJoin: this.options.line_join,
+ className: "vco-map-line"
+ })
+ }
+ _addLineToMap(t) {
+ this._map.addLayer(t)
+ }
+ _addToLine(t, e) {
+ t.addLatLng({
+ lon: e.location.lon,
+ lat: e.location.lat
+ })
+ }
+ _replaceLines(t, e) {
+ t.setLatLngs(e)
+ }
+ _panTo(t, e) {
+ this._map.panTo({
+ lat: t.lat,
+ lon: t.lon
+ }, {
+ animate: !0,
+ duration: this.options.duration / 1e3,
+ easeLinearity: .1
+ })
+ }
+ _zoomTo(t, e) {
+ this._map.setZoom(t)
+ }
+ _viewTo(t, e) {
+ var i = !0,
+ o = this.options.duration / 1e3,
+ n = this._getMapZoom(),
+ s = {
+ lat: t.lat,
+ lon: t.lon
+ };
+ this.options.map_as_image || this._line_active.setStyle({
+ opacity: 1
+ }), t.zoom && (n = t.zoom), e && (e.duration && (0 == e.duration ? i = !1 : o = duration), e.zoom && this.options.calculate_zoom && (n = e.zoom)), this.options.map_center_offset && (s = this._getMapCenterOffset(s, n)), this._map.setView(s, n, {
+ pan: {
+ animate: i,
+ duration: o,
+ easeLinearity: .1
+ },
+ zoom: {
+ animate: i,
+ duration: o,
+ easeLinearity: .1
+ }
+ }), this._mini_map && this.options.width > this.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.offsetWidth < this.options.skinny_size ? this._mini_map.true_hide = !0 : this._mini_map && (this._mini_map.true_hide = !1)
+ }
+ _refreshMap() {
+ this._map && (this.timer && (clearTimeout(this.timer), this.timer = null), this._map.invalidateSize(), this._markers[this.current_marker].data.type && "overview" == this._markers[this.current_marker].data.type ? this._markerOverview() : this._viewTo(this._markers[this.current_marker].data.location, {
+ zoom: this._getMapZoom()
+ }))
+ }
+ }
+ P(ot, W), L.Map.include({
+ _tryAnimatedPan: function (t, e) {
+ var i = this._getCenterOffset(t)._floor();
+ return this.panBy(i, e), !0
+ },
+ _tryAnimatedZoom: function (t, e, i) {
+ if (void 0 === this._animateZoom) return !1;
+ if (this._animatingZoom) return !0;
+ i = i || {};
+ var o = this.getZoomScale(e),
+ n = this._getCenterOffset(t)._divideBy(1 - 1 / o),
+ s = this._getCenterLayerPoint()._add(n);
+ return this.fire("movestart").fire("zoomstart"), this._animateZoom(t, e, s, o, null, !0), !0
+ },
+ getBoundsZoom: function (t, e, i) {
+ t = L.latLngBounds(t);
+ var o, n = this.getMinZoom() - (e ? 1 : 0),
+ s = (this.getMinZoom(), this.getMaxZoom()),
+ a = this.getSize(),
+ r = t.getNorthWest(),
+ h = t.getSouthEast(),
+ l = [],
+ c = {
+ x: 0,
+ y: 0
+ },
+ d = {};
+ i = L.point(i || [0, 0]), a = this.getSize();
+ for (var p = 0; p < s; p++) n++, o = this.project(h, n).subtract(this.project(r, n)).add(i), l.push({
+ x: Math.abs(a.x - o.x),
+ y: Math.abs(a.y - o.y)
+ });
+ d = l[0];
+ for (var _ = 0; _ < l.length; _++) l[_].y <= d.y && (d.y = l[_].y, c.y = _), l[_].x <= d.x && (d.x = l[_].x, c.x = _);
+ return Math.round((c.y + c.x) / 2)
+ }
+ }), L.TileLayer.include({
+ getTiles: function () {
+ return this._tiles
+ }
+ });
+ class nt {
+ constructor(t, e, i) {
+ this._el = {
+ drag: t,
+ move: t
+ }, i && (this._el.move = i), this.options = {
+ enable: {
+ x: !0,
+ y: !0
+ },
+ constraint: {
+ top: !1,
+ bottom: !1,
+ left: !1,
+ right: !1
+ },
+ momentum_multiplier: 2e3,
+ duration: 1e3,
+ ease: VCO.Ease.easeInOutQuint
+ }, this.animator = null, this.dragevent = this.mousedrag, VCO.Browser.touch && (this.dragevent = this.touchdrag), this.data = {
+ sliding: !1,
+ direction: "none",
+ pagex: {
+ start: 0,
+ end: 0
+ },
+ pagey: {
+ start: 0,
+ end: 0
+ },
+ pos: {
+ start: {
+ x: 0,
+ y: 0
+ },
+ end: {
+ x: 0,
+ y: 0
+ }
+ },
+ new_pos: {
+ x: 0,
+ y: 0
+ },
+ new_pos_parent: {
+ x: 0,
+ y: 0
+ },
+ time: {
+ start: 0,
+ end: 0
+ },
+ touch: !1
+ }, T(this.options, e)
+ }
+ enable(t) {
+ this.data.pos.start = 0, this._el.move.style.left = this.data.pos.start.x + "px", this._el.move.style.top = this.data.pos.start.y + "px", this._el.move.style.position = "absolute"
+ }
+ disable() {
+ VCO.DomEvent.removeListener(this._el.drag, this.dragevent.down, this._onDragStart, this), VCO.DomEvent.removeListener(this._el.drag, this.dragevent.up, this._onDragEnd, this)
+ }
+ stopMomentum() {
+ this.animator && this.animator.stop()
+ }
+ updateConstraint(t) {
+ this.options.constraint = t
+ }
+ _onDragStart(t) {
+ VCO.Browser.touch ? t.originalEvent ? (this.data.pagex.start = t.originalEvent.touches[0].screenX, this.data.pagey.start = t.originalEvent.touches[0].screenY) : (this.data.pagex.start = t.targetTouches[0].screenX, this.data.pagey.start = t.targetTouches[0].screenY) : (this.data.pagex.start = t.pageX, this.data.pagey.start = t.pageY), this.options.enable.x && (this._el.move.style.left = this.data.pagex.start - this._el.move.offsetWidth / 2 + "px"), this.options.enable.y && (this._el.move.style.top = this.data.pagey.start - this._el.move.offsetHeight / 2 + "px"), this.data.pos.start = VCO.Dom.getPosition(this._el.drag), this.data.time.start = (new Date).getTime(), this.fire("dragstart", this.data), VCO.DomEvent.addListener(this._el.drag, this.dragevent.move, this._onDragMove, this), VCO.DomEvent.addListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this)
+ }
+ _onDragEnd(t) {
+ this.data.sliding = !1, VCO.DomEvent.removeListener(this._el.drag, this.dragevent.move, this._onDragMove, this), VCO.DomEvent.removeListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this), this.fire("dragend", this.data), this._momentum()
+ }
+ _onDragMove(t) {
+ t.preventDefault(), this.data.sliding = !0, VCO.Browser.touch ? t.originalEvent ? (this.data.pagex.end = t.originalEvent.touches[0].screenX, this.data.pagey.end = t.originalEvent.touches[0].screenY) : (this.data.pagex.end = t.targetTouches[0].screenX, this.data.pagey.end = t.targetTouches[0].screenY) : (this.data.pagex.end = t.pageX, this.data.pagey.end = t.pageY), this.data.pos.end = VCO.Dom.getPosition(this._el.drag), this.data.new_pos.x = -(this.data.pagex.start - this.data.pagex.end - this.data.pos.start.x), this.data.new_pos.y = -(this.data.pagey.start - this.data.pagey.end - this.data.pos.start.y), this.options.enable.x && (this._el.move.style.left = this.data.new_pos.x + "px"), this.options.enable.y && (this._el.move.style.top = this.data.new_pos.y + "px"), this.fire("dragmove", this.data)
+ }
+ _momentum() {
+ var t = {
+ x: 0,
+ y: 0,
+ time: 0
+ },
+ e = {
+ x: 0,
+ y: 0,
+ time: 0
+ },
+ i = !1;
+ VCO.Browser.touch, t.time = 10 * ((new Date).getTime() - this.data.time.start), e.time = 10 * ((new Date).getTime() - this.data.time.start), e.x = this.options.momentum_multiplier * (Math.abs(this.data.pagex.end) - Math.abs(this.data.pagex.start)), e.y = this.options.momentum_multiplier * (Math.abs(this.data.pagey.end) - Math.abs(this.data.pagey.start)), t.x = Math.round(e.x / e.time), t.y = Math.round(e.y / e.time), this.data.new_pos.x = Math.min(this.data.pos.end.x + t.x), this.data.new_pos.y = Math.min(this.data.pos.end.y + t.y), this.options.enable.x ? this.data.new_pos.x < 0 && (this.data.new_pos.x = 0) : this.data.new_pos.x = this.data.pos.start.x, this.options.enable.y ? this.data.new_pos.y < 0 && (this.data.new_pos.y = 0) : this.data.new_pos.y = this.data.pos.start.y, e.time < 3e3 && (i = !0), Math.abs(e.x) > 1e4 && (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.y < this.options.constraint.top && (t.y = this.options.constraint.top)), e.top = Math.floor(t.y) + "px"), this.options.enable.x && ((this.options.constraint.left || this.options.constraint.right) && (t.x > this.options.constraint.left ? t.x = this.options.constraint.left : t.x < this.options.constraint.right && (t.x = this.options.constraint.right)), e.left = Math.floor(t.x) + "px"), this.animator = VCO.Animate(this._el.move, e), this.fire("momentum", this.data)
+ }
+ }
+ P(W);
+ var st = {
+ addListener: function (t, e, i, o) {
+ var n = D(),
+ s = "_vco_" + e + n;
+ if (!t[s]) {
+ var a = function (e) {
+ return i.call(o || t, e || st._getEvent())
+ };
+ if (x && "dblclick" === e && this.addDoubleTapListener) this.addDoubleTapListener(t, a, n);
+ else if ("addEventListener" in t)
+ if ("mousewheel" === e) t.addEventListener("DOMMouseScroll", a, !1), t.addEventListener(e, a, !1);
+ else if ("mouseenter" === e || "mouseleave" === e) {
+ var r = a,
+ h = "mouseenter" === e ? "mouseover" : "mouseout";
+ a = function (e) {
+ if (st._checkMouse(t, e)) return r(e)
+ }, t.addEventListener(h, a, !1)
+ } else t.addEventListener(e, a, !1);
+ else "attachEvent" in t && t.attachEvent("on" + e, a);
+ t[s] = a
+ }
+ },
+ removeListener: function (t, e, i) {
+ var o = D(),
+ n = "_vco_" + e + o,
+ s = t[n];
+ s && (x && "dblclick" === e && this.removeDoubleTapListener ? this.removeDoubleTapListener(t, o) : "removeEventListener" in t ? "mousewheel" === e ? (t.removeEventListener("DOMMouseScroll", s, !1), t.removeEventListener(e, s, !1)) : "mouseenter" === e || "mouseleave" === e ? t.removeEventListener("mouseenter" === e ? "mouseover" : "mouseout", s, !1) : t.removeEventListener(e, s, !1) : "detachEvent" in t && t.detachEvent("on" + e, s), t[n] = null)
+ },
+ _checkMouse: function (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
+ },
+ _getEvent: function () {
+ var t = window.event;
+ if (!t)
+ for (var e = arguments.callee.caller; e && (!(t = e.arguments[0]) || window.Event !== t.constructor);) e = e.caller;
+ return t
+ },
+ stopPropagation: function (t) {
+ t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0
+ },
+ disableClickPropagation: function (t) {
+ st.addListener(t, nt.START, st.stopPropagation), st.addListener(t, "click", st.stopPropagation), st.addListener(t, "dblclick", st.stopPropagation)
+ },
+ preventDefault: function (t) {
+ t.preventDefault ? t.preventDefault() : t.returnValue = !1
+ },
+ stop: function (t) {
+ st.preventDefault(t), st.stopPropagation(t)
+ },
+ getWheelDelta: function (t) {
+ var e = 0;
+ return t.wheelDelta && (e = t.wheelDelta / 120), t.detail && (e = -t.detail / 3), e
+ }
+ };
+ class at {
+ constructor(t, e, i) {
+ this._el = {
+ parent: {},
+ container: {},
+ button_overview: {},
+ button_backtostart: {},
+ button_collapse_toggle: {},
+ arrow: {},
+ line: {},
+ coverbar: {},
+ grip: {}
+ }, this.collapsed = !1, this._el.container = "object" == typeof t ? t : I.get(t), e && (this._el.parent = e), this.options = {
+ width: 600,
+ height: 600,
+ duration: 1e3,
+ ease: U.easeInOutQuint,
+ menubar_default_y: 0
+ }, this.animator = {}, T(this.options, i), this._initLayout(), this._initEvents()
+ }
+ show(t) {
+ this.options.duration
+ }
+ hide(t) {}
+ setSticky(t) {
+ this.options.menubar_default_y = t
+ }
+ setColor(t) {
+ this._el.container.className = t ? "vco-menubar vco-menubar-inverted" : "vco-menubar"
+ }
+ updateDisplay(t, e, i, o) {
+ this._updateDisplay(t, e, i, o)
+ }
+ _onButtonOverview(t) {
+ this.fire("overview", t)
+ }
+ _onButtonBackToStart(t) {
+ this.fire("back_to_start", t)
+ }
+ _onButtonCollapseMap(t) {
+ this.collapsed ? (this.collapsed = !1, this.show(), this._el.button_overview.style.display = "inline", this.fire("collapse", {
+ y: this.options.menubar_default_y
+ }), this._el.button_collapse_toggle.innerHTML = b ? " " : R.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 ? " " : R.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 = R.buttons.overview : this._el.button_overview.innerHTML = R.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 = R.buttons.backtostart + " ", this._el.button_collapse_toggle.innerHTML = R.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, F);
+ 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\)/,
+ p = /scale\(((?:[+\-]=)?([\d\.]+))\)/,
+ _ = /skew\(((?:[+\-]=)?([\-\d\.]+))deg, ?((?:[+\-]=)?([\-\d\.]+))deg\)/,
+ u = /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; e < o.length; e++)
+ if (o[e] in i) return o[e]
+ }(),
+ f = void 0 !== t.createElement("a").style.opacity,
+ v = t.defaultView && t.defaultView.getComputedStyle ? function (e, i) {
+ i = P(i = "transform" == i ? g : i);
+ var o = null,
+ n = t.defaultView.getComputedStyle(e, "");
+ return n && (o = n[i]), e.style[i] || o
+ } : s.currentStyle ? function (t, e) {
+ if ("opacity" == (e = P(e))) {
+ var i = 100;
+ try {
+ i = t.filters["DXImageTransform.Microsoft.Alpha"].opacity
+ } catch (e) {
+ try {
+ i = t.filters("alpha").opacity
+ } catch (t) {}
+ }
+ return i / 100
+ }
+ var o = t.currentStyle ? t.currentStyle[e] : null;
+ return t.style[e] || o
+ } : function (t, e) {
+ return t.style[P(e)]
+ },
+ y = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.msRequestAnimationFrame || e.oRequestAnimationFrame || function (t) {
+ e.setTimeout((function () {
+ t(+new Date)
+ }), 17)
+ },
+ w = [];
+
+ function b(t) {
+ var e, i = w.length;
+ for (o && t > 1e12 && (t = n()), a && (t = n()), e = i; e--;) w[e](t);
+ w.length && y(b)
+ }
+
+ function L(t) {
+ var e, i = function (t, e, i) {
+ if (Array.prototype.indexOf) return t.indexOf(e);
+ for (i = 0; i < t.length; ++i)
+ if (t[i] === e) return i
+ }(w, t);
+ i >= 0 && (e = w.slice(i + 1), w.length = i, w = w.concat(e))
+ }
+
+ function x(t, e) {
+ var i, o = {};
+ return (i = t.match(d)) && (o.rotate = O(i[1], e ? e.rotate : null)), (i = t.match(p)) && (o.scale = O(i[1], e ? e.scale : null)), (i = t.match(_)) && (o.skewx = O(i[1], e ? e.skewx : null), o.skewy = O(i[3], e ? e.skewy : null)), (i = t.match(u)) && (o.translatex = O(i[1], e ? e.translatex : null), o.translatey = O(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 k(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 P(t) {
+ return t.replace(/-(.)/g, (function (t, e) {
+ return e.toUpperCase()
+ }))
+ }
+
+ function T(t) {
+ return "function" == typeof t
+ }
+
+ function D(t) {
+ return Math.sin(t * Math.PI / 2)
+ }
+
+ function S(t, e, i, o, s, a) {
+ o = T(o) ? o : z.easings[o] || D;
+ var h, l = t || r,
+ c = this,
+ d = a - s,
+ p = n(),
+ _ = 0,
+ u = 0;
+ return h = function t(n) {
+ var r = n - p;
+ if (r > l || _) return a = isFinite(a) ? a : 1, _ ? u && e(a) : e(a), L(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) {
+ _ = 1, u = t, t || (i = null)
+ }
+ }
+ }
+
+ function C(t, e) {
+ var i, o, n = t.length,
+ s = [];
+ for (i = 0; i < n; ++i) s[i] = [t[i][0], t[i][1]];
+ for (o = 1; o < n; ++o)
+ for (i = 0; i < n - o; ++i) s[i][0] = (1 - e) * s[i][0] + e * s[parseInt(i + 1, 10)][0], s[i][1] = (1 - e) * s[i][1] + e * s[parseInt(i + 1, 10)][1];
+ return [s[0][0], s[0][1]]
+ }
+
+ function E(t, e, i, o, n, s, a) {
+ if ("transform" == n) {
+ for (var h in a = {}, i[s][n]) a[h] = h in o[s][n] ? Math.round(((o[s][n][h] - i[s][n][h]) * t + i[s][n][h]) * r) / r : i[s][n][h];
+ return a
+ }
+ return "string" == typeof i[s][n] ? function (t, e, i) {
+ var o, n, s, a, r = [];
+ for (o = 0; o < 6; o++) s = Math.min(15, parseInt(e.charAt(o), 16)), a = Math.min(15, parseInt(i.charAt(o), 16)), n = (n = Math.floor((a - s) * t + s)) > 15 ? 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 O(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,
+ p = [],
+ _ = [],
+ u = [],
+ 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 (p[i] = {}, _[i] = {}, u[i] = {}, d) {
+ var y = v(s[i], "left"),
+ w = v(s[i], "top"),
+ b = [O(T(o) ? o(s[i]) : o || 0, parseFloat(y)), O(T(n) ? n(s[i]) : n || 0, parseFloat(w))];
+ m[i] = T(d) ? d(s[i], b) : d, m[i].push(b), m[i].unshift([parseInt(y, 10), parseInt(w, 10)])
+ }
+ for (var L in e) {
+ switch (L) {
+ case "complete":
+ case "duration":
+ case "easing":
+ case "bezier":
+ continue
+ }
+ var D, z = v(s[i], L),
+ B = T(e[L]) ? e[L](s[i]) : e[L];
+ "string" != typeof B || !h.test(B) || h.test(z) ? (p[i][L] = "transform" == L ? x(z) : "string" == typeof B && h.test(B) ? k(z).slice(1) : parseFloat(z), _[i][L] = "transform" == L ? x(B, p[i][L]) : "string" == typeof B && "#" == B.charAt(0) ? k(B).slice(1) : O(B, parseFloat(z)), "string" == typeof B && (D = B.match(c)) && (u[i][L] = D[1])) : delete e[L]
+ }
+ }
+ 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 = E(t, u, p, _, a, i), "transform" == a ? s[i].style[g] = M(o) : "opacity" != a || f ? s[i].style[P(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 = x, 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, T(this.options, e), T(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 = T(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, F);
+ 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"
+ }, T(this.data, t), T(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 || (R ? R.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, F);
+ 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 = {}, T(this.options, e), T(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 pt extends dt {
+ _loadMedia() {
+ var t = this;
+ this.message.updateMessage(R.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._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 _t extends dt {
+ _loadMedia() {
+ var t, e = this;
+ this.message.updateMessage(R.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 = S(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 < o.length; s++) i = o[s].split("="), n.push(i[0]), n[i[0]] = i[1];
+ return n
+ }(this.data.url), this.media_id = {}, this.data.url.match("v=") ? this.media_id.id = t.v : this.data.url.match("/embed/") ? this.media_id.id = this.data.url.split("embed/")[1].split(/[?&]/)[0] : this.data.url.match(/v\/|v=|youtu\.be\//) ? this.media_id.id = this.data.url.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0] : console.log("YouTube in URL but not a valid video"), this.media_id.start = t.t, this.media_id.hd = t.hd, z("https://www.youtube.com/iframe_api", (function () {
+ e.createMedia()
+ }))
+ }
+ _updateMediaDisplay() {
+ this._el.content_item.style.height = O({
+ w: this._el.content_item.offsetWidth
+ }) + "px"
+ }
+ _stopMedia() {
+ if (this.youtube_loaded) try {
+ this.player.getPlayerState() == YT.PlayerState.PLAYING && this.player.pauseVideo()
+ } catch (t) {
+ console.log(t)
+ }
+ }
+ createMedia() {
+ if (void 0 !== this.media_id.start) {
+ var t = this.media_id.start.toString(),
+ e = 0,
+ i = 0;
+ t.match("m") ? (e = parseInt(t.split("m")[0], 10), i = parseInt(t.split("m")[1].split("s")[0], 10), this.media_id.start = 60 * e + i) : this.media_id.start = 0
+ } else this.media_id.start = 0;
+ void 0 !== this.media_id.hd ? this.media_id.hd = !0 : this.media_id.hd = !1, this.createPlayer()
+ }
+ createPlayer() {
+ var t = this;
+ clearTimeout(this.timer), "undefined" != typeof YT && void 0 !== YT.Player ? this.player = new YT.Player(this._el.content_item.id, {
+ playerVars: {
+ enablejsapi: 1,
+ color: "white",
+ autohide: 1,
+ showinfo: 0,
+ theme: "light",
+ start: this.media_id.start,
+ fs: 0,
+ rel: 0
+ },
+ videoId: this.media_id.id,
+ events: {
+ onReady: function () {
+ t.onPlayerReady()
+ },
+ onStateChange: t.onStateChange
+ }
+ }) : this.timer = setTimeout((function () {
+ t.createPlayer()
+ }), 1e3), this.onLoaded()
+ }
+ onPlayerReady(t) {
+ this.youtube_loaded = !0, this._el.content_item = document.getElementById(this._el.content_item.id), this.onMediaLoaded(), this.onLoaded()
+ }
+ onStateChange(t) {
+ t.data == YT.PlayerState.ENDED && (t.target.seekTo(0), t.target.pauseVideo())
+ }
+ }
+ class ut extends dt {
+ _loadMedia() {
+ this.message.updateMessage(R.messages.loading + " " + this.options.media_name), this._el.content_item = I.create("div", "vco-media-item vco-media-blockquote", this._el.content), this.media_id = this.data.url, this._el.content_item.innerHTML = this.media_id, this.onLoaded()
+ }
+ updateMediaDisplay() {}
+ _updateMediaDisplay() {}
+ }
+ class mt extends dt {
+ _loadMedia() {
+ var t, e, i = this;
+ this.message.updateMessage(R.messages.loading + " " + this.options.media_name), this._el.content_item = I.create("div", "vco-media-item vco-media-wikipedia", this._el.content), this.media_id = this.data.url.split("wiki/")[1].split("#")[0].replace("_", " "), this.media_id = this.media_id.replace(" ", "%20"), e = this.data.url.split("//")[1].split(".wikipedia")[0];
+ let o = "wikipediaCallback_",
+ n = 512 - o.length,
+ s = o + this.media_id.replace(/[^0-9a-z]/gi, "").slice(0, n);
+ t = `https://${e}.wikipedia.org/w/api.php?action=query&prop=extracts&redirects=&titles=${this.media_id}&exintro=1&format=json&callback=${s}`;
+ let a = document.createElement("script");
+ window[s] = function (t) {
+ i.createMedia(t)
+ }, a.src = t, document.body.appendChild(a)
+ }
+ createMedia(t) {
+ var e = "";
+ if (t.query) {
+ var i;
+ (e = {
+ entry: {},
+ title: "",
+ text: "",
+ extract: "",
+ paragraphs: 1,
+ text_array: []
+ }).entry = function (t, e) {
+ if (void 0 !== t) {
+ var i = 0;
+ for (var o in t) {
+ if (e === i) return t[o];
+ i++
+ }
+ return ""
+ }
+ return ""
+ }(t.query.pages, 0), e.extract = e.entry.extract, e.title = e.entry.title, e.extract.match("") ? e.text_array = e.extract.split("
") : e.text_array.push(e.extract);
+ for (var o = 0; o < e.text_array.length; o++) o + 1 <= e.paragraphs && o + 1 < e.text_array.length && (e.text += "
" + e.text_array[o + 1]);
+ i = "
", i += "" + R.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(R.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 => {
+ z("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(R.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 = O({
+ 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(R.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 = O({
+ 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(R.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 = "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Course
+ Architect
+ Location
+ Country
+ Date
+ Construction
+ TypeOfJob
+ Status
+ Coverage
+ Budget
+ History
+ Updated
+ Comments
+
+
+
+
+
+
+
+