A repo for my personal website
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Removing old code

-6602
-90
old/about.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - About</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - </head> 14 - <body> 15 - <a href="#cd-nav" class="cd-nav-trigger">Menu 16 - <span class="cd-nav-icon"></span> 17 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 18 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 19 - </svg> 20 - </a> 21 - <div id="cd-nav" class="cd-nav"> 22 - <div class="cd-navigation-wrapper"> 23 - <div class="cd-half-block"> 24 - <nav> 25 - <ul class="cd-primary-nav"> 26 - <li><a href="index.html" data-i18n="[html]menu.showcase">Showcase</a></li> 27 - <li><a href="blog.html" data-i18n="[html]menu.blog">Blog</a></li> 28 - <li><a href="about.html" class="selected" data-i18n="[html]menu.about">About</a></li> 29 - <li><a href="contact.html" data-i18n="[html]menu.contact">Contact</a></li> 30 - </ul> 31 - </nav> 32 - </div><!-- .cd-half-block --> 33 - <div class="cd-half-block"> 34 - <address> 35 - <ul class="cd-contact-info"> 36 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 37 - </ul> 38 - <ul class="cd-contact-socials"> 39 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 40 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 41 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 42 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 43 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok" target="_blank" rel="noopener noreferrer">TikTok</a></li> 44 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 45 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 46 - </ul> 47 - </address> 48 - </div> <!-- .cd-half-block --> 49 - </div> <!-- .cd-navigation-wrapper --> 50 - </div> <!-- .cd-nav --> 51 - <div class="site-container"> 52 - <header class="site-header cf"> 53 - <div class="site-title"><a href="index.html">C/B/F</a></div> 54 - <div class="cf"></div> 55 - </header><!-- / .site-header --> 56 - <section class="site-content"> 57 - <div class="page-desc"> 58 - <p data-i18n="[html]about.quote">"Creativity is an energy. It's a precious energy, and it's something to be protected. A lot of people take for granted that they're a creative person, but I know from experience, feeling it in myself, it is a magic; it is an energy. And it can't be taken for granted." --Ava DuVernay</p> 59 - <img src="img/self.png" alt="" style="max-height:500px;" /> 60 - <p data-i18n="[html]about.bio">Every person is a story, and storyteller Cass Unterholzner is no different. He has been telling stories when he was younger. He pursued and is pursuing his creative cravings through short films, acting and playing music in musical theatre, developing and critiquing video games, and writing and recording music.<br />Even before entering high school, Cass participated in the a "Go Film!" workshop at the San Joaquin County Office of Education in Stockton, California learning about camera, lighting, and sound techniques. He worked with other teens to create and release a short film, as the Gaffer, the Foley Artist, and a Sound Editor. In high school, Cass took a class expanding his film knowledge in creating the school's announcements. After graduating, he started a YouTube channel where he posted short videos.<br />Along with working in film, Cass also participated in musical theatre. He appeared in many productions starting in 2007 with "Dear Edwina Jr" at Stockton Civic Theatre as well as many church musicals. In 2009, Cass starred in "The Music Man" for a senior project in Manteca, California. Later, he was cast as Professor Quirrel and was set to be the Musical Director for a production of "A Very Potter Musical" while directing and developing a Murder Mystery Dinner containing mostly improvised scenes.<br />Cass has always been interested in video game development and design as he played them often throughout his adolescence. This interest flourished and inspired him to major in Computer Science, first at San Joaquin Delta College and then University of the Pacific. He ended up switching his major to Media X to further pursue his passions. During his coursework, he worked with classmates to develop two games: a combat simulator for the tabletop role-playing game Dungeons and Dragons and a bullet-dodging game like the video game Cuphead. Cass intends to continue using video games as an alternate form of storytelling in the future.<br />Music has always been part of Cass's life. Inspired by his older sister taking lessons, he decided to learn piano at age 5. He later picked up more instruments such as the clarinet, the cello, and the guitar. Cass was active in his high school's band program where he took to arranging and writing for his school's wind ensemble and jazz band. He also played cello often in college and assisted East Union High School's theatre class in a production of "Next to Normal." In 2019, Cass sent a video of him playing an original song to the University of the Pacific’s student association. This resulted in Cass playing both original and cover songs at their Brickyard Series concert. Cass now writes indie pop music in his spare time.<br />Cass hopes to further his storytelling career using his YouTube channel talking about gaming, music, and languages. His free time consists of learning German, American Sign Language, Spanish, and Italian. When he's not crafting fantasy novels, Cass plays and runs sessions of various tabletop role-playing games for which he hopes to develop a podcast in the future.</p> 61 - <!--END .site-content--> 62 - </div> 63 - </section> 64 - <footer class="site-footer cf"> 65 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020. </p> 66 - <!--<nav class="languages" role="navigation"> 67 - <ul> 68 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 69 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 70 - </ul> 71 - </nav>--> 72 - </footer> 73 - <!--END .site-container--> 74 - </div> 75 - <script src="scripts/jquery-2.1.4.min.js"></script> 76 - <script src="scripts/jquery.fitvids.js"></script> 77 - <script src="scripts/jquery.imagesloaded.min.js"></script> 78 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 79 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 80 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 81 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 82 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 83 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 84 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 85 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 86 - <script src="scripts/showdown.min.js"></script> 87 - <script src="scripts/lang.js"></script> 88 - <script src="scripts/main.js"></script> 89 - </body> 90 - </html>
-101
old/blog-item.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - Blog Post</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - <script src="scripts/posts.js"></script> 14 - </head> 15 - <body> 16 - <a href="#cd-nav" class="cd-nav-trigger">Menu 17 - <span class="cd-nav-icon"></span> 18 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 19 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 20 - </svg> 21 - </a> 22 - <div id="cd-nav" class="cd-nav"> 23 - <div class="cd-navigation-wrapper"> 24 - <div class="cd-half-block"> 25 - <nav> 26 - <ul class="cd-primary-nav"> 27 - <li><a href="index.html" data-i18n="[html]menu.showcase">Showcase</a></li> 28 - <li><a href="blog.html" class="selected" data-i18n="[html]menu.blog">Blog</a></li> 29 - <li><a href="about.html" data-i18n="[html]menu.about">About</a></li> 30 - <li><a href="contact.html" data-i18n="[html]menu.contact">Contact</a></li> 31 - </ul> 32 - </nav> 33 - </div><!-- .cd-half-block --> 34 - <div class="cd-half-block"> 35 - <address> 36 - <ul class="cd-contact-info"> 37 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 38 - </ul> 39 - <ul class="cd-contact-socials"> 40 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 41 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 42 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 43 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 44 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok" target="_blank" rel="noopener noreferrer">TikTok</a></li> 45 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 46 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 47 - </ul> 48 - </address> 49 - </div> <!-- .cd-half-block --> 50 - </div> <!-- .cd-navigation-wrapper --> 51 - </div> <!-- .cd-nav --> 52 - <div class="site-container"> 53 - <header class="site-header cf"> 54 - <div class="site-title"><a href="index.html">C/B/F</a></div> 55 - <div class="cf"></div> 56 - <div class="site-tagline"> 57 - <h1 id="blog-post-title" data-i18n="[html]blog.post..title"></h1> 58 - <h6 class="date"><span id="blog-post-author" data-i18n="[html]blog.post..author"></span> | <span id="blog-post-date" data-i18n="[html]blog.post..date"></span></h6> 59 - </div> 60 - </header><!-- / .site-header --> 61 - <section class="site-content"> 62 - <div class="page-desc" id="blog-post-content"><div data-i18n="[html]blog.post..content"></div></div> 63 - <!--END .site-content--> 64 - </section> 65 - <div id="disqus_thread" style="margin:0 auto;width:75%;"> 66 - <script src="scripts/disqus.js"></script> 67 - <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> 68 - </div> 69 - <nav role="navigation"> 70 - <ul class="cd-pagination animated-buttons custom-icons"> 71 - <li class="button"><a href="#"><i data-i18n="[html]nav.previous">Prev</i></a></li> 72 - <li class="button"><a href="#"><i data-i18n="[html]nav.next">Next</i></a></li> 73 - </ul> 74 - </nav> <!-- cd-pagination-wrapper --> 75 - <footer class="site-footer cf"> 76 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020. </p> 77 - <!--<nav class="languages" role="navigation"> 78 - <ul> 79 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 80 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 81 - </ul> 82 - </nav>--> 83 - </footer> 84 - <!--END .site-container--> 85 - </div> 86 - <script src="scripts/jquery-2.1.4.min.js"></script> 87 - <script src="scripts/jquery.fitvids.js"></script> 88 - <script src="scripts/jquery.imagesloaded.min.js"></script> 89 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 90 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 91 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 92 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 93 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 94 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 95 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 96 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 97 - <script src="scripts/showdown.min.js"></script> 98 - <script src="scripts/lang.js"></script> 99 - <script src="scripts/blog-post-main.js"></script> 100 - </body> 101 - </html>
-58
old/blog-rss.xml
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <rss version="2.0"> 3 - <channel> 4 - <title>CityboundForest's Blog</title> 5 - <link>https://skeetcha.github.io/blog.html</link> 6 - <description>The blog posts from CityboundForest's website.</description> 7 - <language>en-us</language> 8 - <item> 9 - <title>Another Stream Schedule and Podcast Update</title> 10 - <link>https://skeetcha.github.io/blog-item.html#streamschedulepodcastupdate</link> 11 - <guid>streamschedulepodcastupdate</guid> 12 - <pubDate>Sun, 06 Feb 2022 12:00:00 PST</pubDate> 13 - <description>The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast</description> 14 - </item> 15 - <item> 16 - <title>Stream Schedule and an Update!</title> 17 - <link>https://skeetcha.github.io/blog-item.html#streamscheduleandbudgetupdate</link> 18 - <guid>streamscheduleandbudgetupdate</guid> 19 - <pubDate>Sun, 30 Jan 2022 12:13:00 PST</pubDate> 20 - <description>This week's stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast</description> 21 - </item> 22 - <item> 23 - <title>Another New Stream Schedule!</title> 24 - <link>https://skeetcha.github.io/blog-item.html#thirdstreamschedule</link> 25 - <guid>thirdstreamschedule</guid> 26 - <pubDate>Sun, 23 Jan 2022 17:27:00 PST</pubDate> 27 - <description>Another stream schedule for this upcoming week.</description> 28 - </item> 29 - <item> 30 - <title>New Stream schedule!</title> 31 - <link>https://skeetcha.github.io/blog-item.html#secondstreamschedule</link> 32 - <guid>secondstreamschedule</guid> 33 - <pubDate>Sun, 16 Jan 2022 14:10:00 PST</pubDate> 34 - <description>My new stream schedule for this upcoming week.</description> 35 - </item> 36 - <item> 37 - <title>Stream Schedule and Updates!</title> 38 - <link>https://skeetcha.github.io/blog-item.html#streamschedule_updates</link> 39 - <guid>streamschedule_update</guid> 40 - <pubDate>Sun, 09 Jan 2022 13:45:00 PST</pubDate> 41 - <description>A new stream schedule and some updates about my creative content.</description> 42 - </item> 43 - <item> 44 - <title>Minecraft Stream on Saturday!</title> 45 - <link>https://skeetcha.github.io/blog-item.html#minecraft_stream</link> 46 - <guid>minecraft_stream</guid> 47 - <pubDate>Wed, 05 Jan 2022 13:26:00 PST</pubDate> 48 - <description>Just a reminder of my upcoming Minecraft stream on Saturday.</description> 49 - </item> 50 - <item> 51 - <title>Updates!</title> 52 - <link>https://skeetcha.github.io/blog-item.html#updates</link> 53 - <guid>updates</guid> 54 - <pubDate>Sun, 02 Jan 2022 15:36:00 PST</pubDate> 55 - <description>A small little update on what I'm planning on doing in the coming year.</description> 56 - </item> 57 - </channel> 58 - </rss>
-170
old/blog.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - Blog</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - </head> 14 - <body> 15 - <a href="#cd-nav" class="cd-nav-trigger">Menu 16 - <span class="cd-nav-icon"></span> 17 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 18 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 19 - </svg> 20 - </a> 21 - <div id="cd-nav" class="cd-nav"> 22 - <div class="cd-navigation-wrapper"> 23 - <div class="cd-half-block"> 24 - <nav> 25 - <ul class="cd-primary-nav"> 26 - <li><a href="index.html" data-i18n="[html]menu.showcase">Showcase</a></li> 27 - <li><a href="blog.html"class="selected" data-i18n="[html]menu.blog">Blog</a></li> 28 - <li><a href="about.html" data-i18n="[html]menu.about">About</a></li> 29 - <li><a href="contact.html" data-i18n="[html]menu.contact">Contact</a></li> 30 - </ul> 31 - </nav> 32 - </div><!-- .cd-half-block --> 33 - <div class="cd-half-block"> 34 - <address> 35 - <ul class="cd-contact-info"> 36 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 37 - </ul> 38 - <ul class="cd-contact-socials"> 39 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 40 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 41 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 42 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 43 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok" target="_blank" rel="noopener noreferrer">TikTok</a></li> 44 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 45 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 46 - </ul> 47 - </address> 48 - </div> <!-- .cd-half-block --> 49 - </div> <!-- .cd-navigation-wrapper --> 50 - </div> <!-- .cd-nav --> 51 - <div class="site-container"> 52 - <header class="site-header cf"> 53 - <div class="site-title"><a href="index.html">C/B/F</a></div> 54 - <div class="cf"></div> 55 - </header><!-- / .site-header --> 56 - <section class="site-content"> 57 - <div class="page-desc"> 58 - <h4 data-i18n="[html]blog.title">Personal Blog</h4> 59 - <a href="blog-rss.xml"><img src="img/rss-icon.png" alt="rss-icon" style="width:20px;height:20px;"/></a> 60 - <p data-i18n="[html]blog.description">Random postings, news, and other thoughts coming soon!</p> 61 - </div> 62 - <article class="news active-news-page" data-page="1"> 63 - <div class="blog_item full grey_bg"> 64 - <a class="full_link" href="blog-item.html#streamschedulepodcastupdate"></a> 65 - <div class="abs_bg" style="background-color:#0f404f;"></div> 66 - <div class="blog_item_inner"> 67 - <h1 data-i18n="[html]blog.post.streamschedulepodcastupdate.title">Another Stream Schedule and Podcast Update</h1> 68 - <h5 class="date"><span data-i18n="[html]blog.post.streamschedulepodcastupdate.author">Cass Forest</span><span data-i18n="[html]blog.post.streamschedulepodcastupdate.date">2022 February 6</span></h5> 69 - <p data-i18n="[html].blog.post.streamschedulepodcastupdate.description">The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast</p> 70 - </div> 71 - </div> 72 - <div class="blog_item full grey_bg"> 73 - <a class="full_link" href="blog-item.html#streamscheduleandbudgetupdate"></a> 74 - <div class="abs_bg" style="background-color:#0f404f;"></div> 75 - <div class="blog_item_inner"> 76 - <h1 data-i18n="[html]blog.post.streamscheduleandbudgetupdate.title">Stream Schedule and an Update!</h1> 77 - <h5 class="date"><span data-i18n="[html]blog.post.streamscheduleandbudgetupdate.author">Cass Forest</span><span data-i18n="[html]blog.post.streamscheduleandbudgetupdate.date">2022 January 30</span></h5> 78 - <p data-i18n="[html]blog.post.streamscheduleandbudgetupdate.description">This week's stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast</p> 79 - </div> 80 - </div> 81 - <div class="blog_item full grey_bg"> 82 - <a class="full_link" href="blog-item.html#thirdstreamschedule"></a> 83 - <div class="abs_bg" style="background-color:#0f404f;"></div> 84 - <div class="blog_item_inner"> 85 - <h1 data-i18n="[html]blog.post.thirdstreamschedule.title">Another New Stream Schedule!</h1> 86 - <h5 class="date"><span data-i18n="[html]blog.post.thirdstreamschedule.author">Cass Forest</span><span data-i18n="[html]blog.post.thirdstreamschedule.date">2022 January 23</span></h5> 87 - <p data-i18n="[html]blog.post.thirdstreamschedule.description">Another stream schedule for this upcoming week.</p> 88 - </div> 89 - </div> 90 - <div class="blog_item full grey_bg"> 91 - <a class="full_link" href="blog-item.html#secondstreamschedule"></a> 92 - <div class="abs_bg" style="background-color:#0f404f;"></div> 93 - <div class="blog_item_inner"> 94 - <h1 data-i18n="[html]blog.post.secondstreamschedule.title">New Stream schedule!</h1> 95 - <h5 class="date"><span data-i18n="[html]blog.post.secondstreamschedule.author">Cass Forest</span><span data-i18n="[html]blog.post.secondstreamschedule.date">2022 January 16</span></h5> 96 - <p data-i18n="[html]blog.post.secondstreamschedule.description">My new stream schedule for this upcoming week.</p> 97 - </div> 98 - </div> 99 - <div class="blog_item full grey_bg"> 100 - <a class="full_link" href="blog-item.html#streamschedule_updates"></a> 101 - <div class="abs_bg" style="background-color:#0f404f;"></div> 102 - <div class="blog_item_inner"> 103 - <h1 data-i18n="[html]blog.post.streamschedule_updates.title">Stream Schedule and Updates!</h1> 104 - <h5 class="date"><span data-i18n="[html]blog.post.streamschedule_updates.author">Cass Forest</span><span data-i18n="[html]blog.post.streamschedule_updates.date">2022 January 09</span></h5> 105 - <p data-i18n="[html]blog.post.streamschedule_updates.description">A new stream schedule and some updates about my creative content.</p> 106 - </div> 107 - </div> 108 - </article> 109 - <article class="news" data-page="2"> 110 - <div class="blog_item full grey_bg "> 111 - <a class="full_link" href="blog-item.html#minecraft_stream"></a> 112 - <div class="abs_bg" style="background-color:#0f404f;"></div> 113 - <div class="blog_item_inner"> 114 - <h1 data-i18n="[html]blog.post.minecraft_stream.title">Minecraft Stream on Saturday!</h1> 115 - <h5 class="date"><span data-i18n="[html]blog.post.minecraft_stream.author">Cass Forest</span><span data-i18n="[html]blog.post.minecraft_stream.date">2022 January 05</span></h5> 116 - <p data-i18n="[html]blog.post.minecraft_stream.description">Just a reminder of my upcoming Minecraft stream on Saturday.</p> 117 - </div> 118 - </div> 119 - <div class="blog_item full grey_bg "> 120 - <a class="full_link" href="blog-item.html#updates"></a> 121 - <div class="abs_bg" style="background-color:#0f404f;"></div> 122 - <div class="blog_item_inner"> 123 - <h1 data-i18n="[html]blog.post.updates.title">Updates!</h1> 124 - <h5 class="date"><span data-i18n="[html]blog.post.updates.author">Cass Forest</span><span data-i18n="[html]blog.post.updates.date">2022 January 02</span></h5> 125 - <p data-i18n="[html]blog.post.updates.description">A small little update on what I'm planning on doing in the coming year.</p> 126 - </div> 127 - </div> 128 - </article> 129 - <!--END .site-content--> 130 - </section> 131 - <nav role="navigation"> 132 - <ul class="cd-pagination animated-buttons custom-icons"> 133 - <li class="button"><a id="previous" href="#"><i data-i18n="[html]nav.previous">Prev</i></a></li> 134 - <li><a class="current page-button" href="#" data-i18n="[html]nav.page.1" data-page="1">1</a></li> 135 - <!--<li><span id="left-elipses">...</span></li>--> 136 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.2" data-page="2">2</a></li> 137 - <!--<li><a href="#" class="page-button" data-i18n="[html]nav.page.3" data-page="3">3</a></li> 138 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.4" data-page="4">4</a></li> 139 - <li><span id="right-elipses">...</span></li> 140 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.20" data-page="20">20</a></li>--> 141 - <li class="button"><a id="next" href="#"><i data-i18n="[html]nav.next">Next</i></a></li> 142 - </ul> 143 - </nav> <!-- cd-pagination-wrapper --> 144 - <footer class="site-footer cf"> 145 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020. </p> 146 - <!--<nav class="languages" role="navigation"> 147 - <ul> 148 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 149 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 150 - </ul> 151 - </nav>--> 152 - </footer> 153 - <!--END .site-container--> 154 - </div> 155 - <script src="scripts/jquery-2.1.4.min.js"></script> 156 - <script src="scripts/jquery.fitvids.js"></script> 157 - <script src="scripts/jquery.imagesloaded.min.js"></script> 158 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 159 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 160 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 161 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 162 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 163 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 164 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 165 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 166 - <script src="scripts/showdown.min.js"></script> 167 - <script src="scripts/lang.js"></script> 168 - <script src="scripts/blog-main.js"></script> 169 - </body> 170 - </html>
-95
old/contact.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - Contact Me</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - </head> 14 - <body> 15 - <a href="#cd-nav" class="cd-nav-trigger">Menu 16 - <span class="cd-nav-icon"></span> 17 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 18 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 19 - </svg> 20 - </a> 21 - <div id="cd-nav" class="cd-nav"> 22 - <div class="cd-navigation-wrapper"> 23 - <div class="cd-half-block"> 24 - <nav> 25 - <ul class="cd-primary-nav"> 26 - <li><a href="index.html" data-i18n="[html]menu.showcase">Showcase</a></li> 27 - <li><a href="blog.html" data-i18n="[html]menu.blog">Blog</a></li> 28 - <li><a href="about.html" data-i18n="[html]menu.about">About</a></li> 29 - <li><a href="contact.html" class="selected" data-i18n="[html]menu.contact">Contact</a></li> 30 - </ul> 31 - </nav> 32 - </div><!-- .cd-half-block --> 33 - <div class="cd-half-block"> 34 - <address> 35 - <ul class="cd-contact-info"> 36 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 37 - </ul> 38 - <ul class="cd-contact-socials"> 39 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 40 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 41 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 42 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 43 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok" target="_blank" rel="noopener noreferrer">TikTok</a></li> 44 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 45 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 46 - </ul> 47 - </address> 48 - </div> <!-- .cd-half-block --> 49 - </div> <!-- .cd-navigation-wrapper --> 50 - </div> <!-- .cd-nav --> 51 - <div class="site-container"> 52 - <header class="site-header cf"> 53 - <div class="site-title"><a href="index.html">C/B/F</a></div> 54 - <div class="cf"></div> 55 - <div class="site-tagline"> 56 - <h1 id="blog-post-title" data-i18n="[html]contact.title">Contact Me</h1> 57 - </div> 58 - </header><!-- / .site-header --> 59 - <section class="site-content"> 60 - <div class="input"><input type="text" required placeholder="Name *" name="name" id="contact-name" /></div> 61 - <div class="input"><input type="email" required placeholder="Email *" name="email" id="contact-email" /></div> 62 - <div class="input"><textarea name="message" id="contact-message" placeholder="Message *"></textarea></div> 63 - <ul class="cd-pagination custom-icons"> 64 - <li class="button-submit"><a href="#"><i data-i18n="[html]contact.submit">Submit</i></a></li> 65 - </ul> 66 - <!--END .site-content--> 67 - </section> 68 - <footer class="site-footer cf"> 69 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020. </p> 70 - <!--<nav class="languages" role="navigation"> 71 - <ul> 72 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 73 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 74 - </ul> 75 - </nav>--> 76 - </footer> 77 - <!--END .site-container--> 78 - </div> 79 - <script src="scripts/jquery-2.1.4.min.js"></script> 80 - <script src="scripts/jquery.fitvids.js"></script> 81 - <script src="scripts/jquery.imagesloaded.min.js"></script> 82 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 83 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 84 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 85 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 86 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 87 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 88 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 89 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 90 - <script src="https://smtpjs.com/v3/smtp.js"></script> 91 - <script src="scripts/showdown.min.js"></script> 92 - <script src="scripts/lang.js"></script> 93 - <script src="scripts/contact-main.js"></script> 94 - </body> 95 - </html>
-72
old/fonts/quicksand.css
··· 1 - /* vietnamese */ 2 - @font-face { 3 - font-family: 'Quicksand'; 4 - font-style: normal; 5 - font-weight: 300; 6 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58m-wi40.woff2) format('woff2'); 7 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 8 - } 9 - /* latin-ext */ 10 - @font-face { 11 - font-family: 'Quicksand'; 12 - font-style: normal; 13 - font-weight: 300; 14 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58i-wi40.woff2) format('woff2'); 15 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 16 - } 17 - /* latin */ 18 - @font-face { 19 - font-family: 'Quicksand'; 20 - font-style: normal; 21 - font-weight: 300; 22 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58a-wg.woff2) format('woff2'); 23 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 24 - } 25 - /* vietnamese */ 26 - @font-face { 27 - font-family: 'Quicksand'; 28 - font-style: normal; 29 - font-weight: 400; 30 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58m-wi40.woff2) format('woff2'); 31 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 32 - } 33 - /* latin-ext */ 34 - @font-face { 35 - font-family: 'Quicksand'; 36 - font-style: normal; 37 - font-weight: 400; 38 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58i-wi40.woff2) format('woff2'); 39 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 40 - } 41 - /* latin */ 42 - @font-face { 43 - font-family: 'Quicksand'; 44 - font-style: normal; 45 - font-weight: 400; 46 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58a-wg.woff2) format('woff2'); 47 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 48 - } 49 - /* vietnamese */ 50 - @font-face { 51 - font-family: 'Quicksand'; 52 - font-style: normal; 53 - font-weight: 700; 54 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58m-wi40.woff2) format('woff2'); 55 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 56 - } 57 - /* latin-ext */ 58 - @font-face { 59 - font-family: 'Quicksand'; 60 - font-style: normal; 61 - font-weight: 700; 62 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58i-wi40.woff2) format('woff2'); 63 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 64 - } 65 - /* latin */ 66 - @font-face { 67 - font-family: 'Quicksand'; 68 - font-style: normal; 69 - font-weight: 700; 70 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58a-wg.woff2) format('woff2'); 71 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 72 - }
-16
old/fonts/righteous.css
··· 1 - /* latin-ext */ 2 - @font-face { 3 - font-family: 'Righteous'; 4 - font-style: normal; 5 - font-weight: 400; 6 - src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WhnGFucE.woff2) format('woff2'); 7 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 8 - } 9 - /* latin */ 10 - @font-face { 11 - font-family: 'Righteous'; 12 - font-style: normal; 13 - font-weight: 400; 14 - src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WiHGF.woff2) format('woff2'); 15 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 16 - }
old/img/banner.png

This is a binary file and will not be displayed.

old/img/bullet-rush.png

This is a binary file and will not be displayed.

old/img/cansat.png

This is a binary file and will not be displayed.

-7
old/img/cd-circle.svg
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 - <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 - <svg 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" 5 - width="54px" height="54px" viewBox="3 -3 54 54" enable-background="new 3 -3 54 54" xml:space="preserve"> 6 - <circle fill="none" stroke="#66788F" cx="30" cy="24" r="25"/> 7 - </svg>
-8
old/img/cd-icon-arrow.svg
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 - <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 - <svg 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" 5 - width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> 6 - <line fill="none" stroke="#62A380" stroke-miterlimit="10" x1="2" y1="8" x2="15" y2="8"/> 7 - <polyline fill="none" stroke="#62A380" stroke-miterlimit="10" points="7,3 2,8 7,13 "/> 8 - </svg>
old/img/dndcombatsim.png

This is a binary file and will not be displayed.

old/img/fourwoods.png

This is a binary file and will not be displayed.

old/img/mememachine.png

This is a binary file and will not be displayed.

-26
old/img/portfolio-icon.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> 3 - <!-- Generator: Sketch 3.3.3 (12072) - http://www.bohemiancoding.com/sketch --> 4 - <title>portfolio-icon</title> 5 - <desc>Created with Sketch.</desc> 6 - <defs></defs> 7 - <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> 8 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#e1e1e1"> 9 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1" sketch:type="MSShapeGroup"> 10 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 11 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 12 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 13 - </g> 14 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy" transform="translate(0.000000, 7.500000)" sketch:type="MSShapeGroup"> 15 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 16 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 17 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 18 - </g> 19 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" transform="translate(0.000000, 15.000000)" sketch:type="MSShapeGroup"> 20 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 21 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 22 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 23 - </g> 24 - </g> 25 - </g> 26 - </svg>
old/img/rss-icon.png

This is a binary file and will not be displayed.

old/img/self.png

This is a binary file and will not be displayed.

old/img/shutin.png

This is a binary file and will not be displayed.

-247
old/index.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - Home</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - </head> 14 - <body> 15 - <a href="#cd-nav" class="cd-nav-trigger">Menu 16 - <span class="cd-nav-icon"></span> 17 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 18 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 19 - </svg> 20 - </a> 21 - <div id="cd-nav" class="cd-nav"> 22 - <div class="cd-navigation-wrapper"> 23 - <div class="cd-half-block"> 24 - <nav> 25 - <ul class="cd-primary-nav"> 26 - <li><a href="index.html" class="selected" data-i18n="[html]menu.showcase">Showcase</a></li> 27 - <li><a href="blog.html" data-i18n="[html]menu.blog">Blog</a></li> 28 - <li><a href="about.html" data-i18n="[html]menu.about">About</a></li> 29 - <li><a href="contact.html" data-i18n="[html]menu.contact">Contact</a></li> 30 - </ul> 31 - </nav> 32 - </div><!-- .cd-half-block --> 33 - <div class="cd-half-block"> 34 - <address> 35 - <ul class="cd-contact-info"> 36 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 37 - </ul> 38 - <ul class="cd-contact-socials"> 39 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 40 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 41 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 42 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 43 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok" target="_blank" rel="noopener noreferrer">TikTok</a></li> 44 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 45 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 46 - </ul> 47 - </address> 48 - </div> <!-- .cd-half-block --> 49 - </div> <!-- .cd-navigation-wrapper --> 50 - </div> <!-- .cd-nav --> 51 - <div class="site-container"> 52 - <header class="site-header cf"> 53 - <div class="site-title"><a href="index.html">C/B/F</a></div> 54 - <div class="cf"></div> 55 - <div class="site-tagline"> 56 - <p><strong data-i18n="[html]title">CityboundForest</strong></p><!--<div data-i18n="title.message.1" style="font-size:18pt;">Hello I'm <strong>Cass Unterholzner.</strong></div><div data-i18n="title.message.2" style="font-size:18pt;">I'm a storyteller working in the media of <strong>film</strong>, <strong>theatre</strong>, <strong>video games</strong>, and <strong>music</strong>.</div>--><div data-i18n="[html]title.message" style="font-size:18pt;">Hello I'm <strong>Cass Unterholzner.</strong><br />I'm a storyteller working in the media of <strong style="color:#00eeff;">film</strong>, <strong style="color:#fffb00;">theatre</strong>, <strong style="color:#ff3e3e;">video games</strong>, and <strong style="color:#ff70e7;">music</strong>.</div> 57 - </div> 58 - </header><!-- / .site-header --> 59 - <section class="site-content"> 60 - <div class="projects-feed cf"> 61 - <article class="project cf"> 62 - <a href="portfolio-item.html#fourwoods" title="fourwoods"> 63 - <div class="thumb"> 64 - <div data-picture data-alt=""> 65 - <div data-src="img/fourwoods.png"></div> 66 - <!--[if (lt IE 9) & (!IEMobile)]> 67 - <div data-src="img/fourwoods.png"></div> 68 - <![endif]--> 69 - <noscript> 70 - <img src="img/fourwoods.png" alt="" /> 71 - </noscript> 72 - </div> 73 - </div> 74 - <div class="project-content-container"> 75 - <div class="project-content"> 76 - <div class="table"> 77 - <div class="table-cell"> 78 - <h2 class="thumbnail-title" data-i18n="[html]project.fourwoods.title">The Four Woods Podcast</h2> 79 - <p class="thumbnail-description" data-i18n="[html]project.fourwoods.description">An audio drama podcast about myth and magic - Writer, Director, Editor, Producer</p> 80 - </div> 81 - </div> 82 - </div> 83 - </div> 84 - <div class="overlay"></div> 85 - </a> 86 - </article> 87 - <article class="project cf"> 88 - <a href="portfolio-item.html#mememachine" title="mememachine"> 89 - <div class="thumb"> 90 - <div data-picture data-alt=""> 91 - <div data-src="img/mememachine.png"></div> 92 - <!--[if (lt IE 9) & (!IEMobile)]> 93 - <div data-src="img/mememachine.png"></div> 94 - <![endif]--> 95 - <noscript> 96 - <img src="img/mememachine.png" alt="" /> 97 - </noscript> 98 - </div> 99 - </div> 100 - <div class="project-content-container"> 101 - <div class="project-content"> 102 - <div class="table"> 103 - <div class="table-cell"> 104 - <h2 class="thumbnail-title" data-i18n="[html]project.mememachine.title">Meme Machine</h2> 105 - <p class="thumbnail-description" data-i18n="[html]project.mememachine.description">Download, Rate, and Create Memes - Programmer</p> 106 - </div> 107 - </div> 108 - </div> 109 - </div> 110 - <div class="overlay"></div> 111 - </a> 112 - </article> 113 - <article class="project cf"> 114 - <a href="portfolio-item.html#shutin" title="shutin"> 115 - <div class="thumb"> 116 - <div data-picture data-alt=""> 117 - <div data-src="img/shutin.png"></div> 118 - <!--[if (lt IE 9) & (!IEMobile)]> 119 - <div data-src="img/shutin.png"></div> 120 - <![endif]--> 121 - <noscript> 122 - <img src="img/shutin.png" alt="" /> 123 - </noscript> 124 - </div> 125 - </div> 126 - <div class="project-content-container"> 127 - <div class="project-content"> 128 - <div class="table"> 129 - <div class="table-cell"> 130 - <h2 class="thumbnail-title" data-i18n="[html]project.shutin.title">Shut In</h2> 131 - <p class="thumbnail-description" data-i18n="[html]project.shutin.description">Short Film - Gaffer, Foley Artist, Sound Editor</p> 132 - </div> 133 - </div> 134 - </div> 135 - </div> 136 - <div class="overlay"></div> 137 - </a> 138 - </article> 139 - <article class="project cf"> 140 - <a href="portfolio-item.html#bulletrush" title="bulletrush"> 141 - <div class="thumb"> 142 - <div data-picture data-alt=""> 143 - <div data-src="img/bullet-rush.png"></div> 144 - <!--[if (lt IE 9) & (!IEMobile)]> 145 - <div data-src="img/bullet-rush.png"></div> 146 - <![endif]--> 147 - <noscript> 148 - <img src="img/bullet-rush.png" alt="" /> 149 - </noscript> 150 - </div> 151 - </div> 152 - <div class="project-content-container"> 153 - <div class="project-content"> 154 - <div class="table"> 155 - <div class="table-cell"> 156 - <h2 class="thumbnail-title" data-i18n="[html]project.bulletrush.title">Bullet Rush</h2> 157 - <p class="thumbnail-description" data-i18n="[html]project.bulletrush.description">Cuphead meets First Person Shooter games - Programmer, Project Manager</p> 158 - </div> 159 - </div> 160 - </div> 161 - </div> 162 - <div class="overlay"></div> 163 - </a> 164 - </article> 165 - <article class="project cf"> 166 - <a href="portfolio-item.html#dndcombatsim" title="dndcombatsim"> 167 - <div class="thumb"> 168 - <div data-picture data-alt=""> 169 - <div data-src="img/dndcombatsim.png"></div> 170 - <!--[if (lt IE 9) & (!IEMobile)]> 171 - <div data-src="img/dndcombatsim.png"></div> 172 - <![endif]--> 173 - <noscript> 174 - <img src="img/dndcombatsim.png" alt="" /> 175 - </noscript> 176 - </div> 177 - </div> 178 - <div class="project-content-container"> 179 - <div class="project-content"> 180 - <div class="table"> 181 - <div class="table-cell"> 182 - <h2 class="thumbnail-title" data-i18n="[html]project.dndcombatsim.title">Dungeons and Dragons Combat Simulator</h2> 183 - <p class="thumbnail-description" data-i18n="[html]project.dndcombatsim.description">Combat simulator for the 5th Edition of the Tabletop RPG Dungeons and Dragons - Programmer, Project Manager</p> 184 - </div> 185 - </div> 186 - </div> 187 - </div> 188 - <div class="overlay"></div> 189 - </a> 190 - </article> 191 - <article class="project cf"> 192 - <a href="portfolio-item.html#cansat" title="cansat"> 193 - <div class="thumb"> 194 - <div data-picture data-alt=""> 195 - <div data-src="img/cansat.png"></div> 196 - <!--[if (lt IE 9) & (!IEMoble)]> 197 - <div data-src="img/cansat.png"></div> 198 - <![endif]--> 199 - <noscript> 200 - <img src="img/cansat.png" alt="" /> 201 - </noscript> 202 - </div> 203 - </div> 204 - <div class="project-content-container"> 205 - <div class="project-content"> 206 - <div class="table"> 207 - <div class="table-cell"> 208 - <h2 class="thumbnail-title" data-i18n="[html]project.cansat.title">CanSat</h2> 209 - <p class="thumbnail-description" data-i18n="[html]project.cansat.description">A simulated sattelite in an enclosure the shape and size of a soda can - Programmer</p> 210 - </div> 211 - </div> 212 - </div> 213 - </div> 214 - <div class="overlay"></div> 215 - </a> 216 - </article> 217 - <!--END .projects-feed--> 218 - </div> 219 - <!--END .site-content--> 220 - </section> 221 - <footer class="site-footer cf"> 222 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020. </p> 223 - <!--<nav class="languages" role="navigation"> 224 - <ul> 225 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 226 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 227 - </ul> 228 - </nav>--> 229 - </footer> 230 - <!--END .site-container--> 231 - </div> 232 - <script src="scripts/jquery-2.1.4.min.js"></script> 233 - <script src="scripts/jquery.fitvids.js"></script> 234 - <script src="scripts/jquery.imagesloaded.min.js"></script> 235 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 236 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 237 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 238 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 239 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 240 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 241 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 242 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 243 - <script src="scripts/showdown.min.js"></script> 244 - <script src="scripts/lang.js"></script> 245 - <script src="scripts/main.js"></script> 246 - </body> 247 - </html>
-247
old/portfolio-item.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en" class="no-js"> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <title>C/B/F - Projects</title> 9 - <link rel="stylesheet" href="style.css" media="screen" /> 10 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 11 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 12 - <script src="scripts/modernizr.js"></script> 13 - </head> 14 - <body> 15 - <a href="#cd-nav" class="cd-nav-trigger">Menu 16 - <span class="cd-nav-icon"></span> 17 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 18 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 19 - </svg> 20 - </a> 21 - <div id="cd-nav" class="cd-nav"> 22 - <div class="cd-navigation-wrapper"> 23 - <div class="cd-half-block"> 24 - <nav> 25 - <ul class="cd-primary-nav"> 26 - <li><a href="index.html" class="selected" data-i18n="[html]menu.showcase">Showcase</a></li> 27 - <li><a href="blog.html" data-i18n="[html]menu.blog">Blog</a></li> 28 - <li><a href="about.html" data-i18n="[html]menu.about">About</a></li> 29 - <li><a href="contact.html" data-i18n="[html]menu.contact">Contact</a></li> 30 - </ul> 31 - </nav> 32 - </div><!-- .cd-half-block --> 33 - <div class="cd-half-block"> 34 - <address> 35 - <ul class="cd-contact-info"> 36 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 37 - </ul> 38 - <ul class="cd-contact-socials"> 39 - <li><a href="https://instagram.com/cityboundforest" data-i18n="[html]socials.instagram" target="_blank" rel="noopener noreferrer">Instagram</a></li> 40 - <li><a href="https://twitter.com/cityboundforest" data-i18n="[html]socials.twitter" target="_blank" rel="noopener noreferrer">Twitter</a></li> 41 - <li><a href="https://facebook.com/cityboundforest" data-i18n="[html]socials.facebook" target="_blank" rel="noopener noreferrer">Facebook</a></li> 42 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" data-i18n="[html]socials.youtube" target="_blank" rel="noopener noreferrer">YouTube</a></li> 43 - <li><a href="https://tiktok.com/@cityboundforest" data-i18n="[html]socials.tiktok target="_blank" rel="noopener noreferrer">TikTok</a></li> 44 - <li><a href="https://twitch.tv/cityboundforest" data-i18n="[html]socials.twitch" target="_blank" rel="noopener noreferrer">Twitch</a></li> 45 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" data-i18n="[html]socials.mastodon" target="_blank">Mastodon</a></li> 46 - </ul> 47 - </address> 48 - </div> <!-- .cd-half-block --> 49 - </div> <!-- .cd-navigation-wrapper --> 50 - </div> <!-- .cd-nav --> 51 - <div class="site-container"> 52 - <header class="site-header cf"> 53 - <div class="site-title"><a href="index.html">C/B/F</a></div> 54 - <div class="cf"></div> 55 - </header><!-- / .site-header --> 56 - <section class="site-content"> 57 - <div class="page-desc"> 58 - <h1 data-i18n="[html]projects.title">Projects</h1> 59 - <p data-i18n="[html]projects.skills.label">Skills:</p> 60 - <p data-i18n="" id="skills-label"></p> 61 - </div> 62 - <article class="project project-page cf active-project" id="project-1"> 63 - <div class="thumb"> 64 - <div data-picture data-alt=""> 65 - <div data-src="img/fourwoods.png"></div> 66 - <!--[if (lt IE 9) & (!IEMobile)]> 67 - <div data-src="img/fourwoods.png"></div> 68 - <![endif]--> 69 - <noscript> 70 - <img src="img/fourwoods.png" alt="" /> 71 - </noscript> 72 - </div> 73 - </div> 74 - <div class="project-content-container"> 75 - <div class="project-content"> 76 - <div class="table"> 77 - <div class="table-cell"> 78 - <h2 class="thumbnail-title" data-i18n="[html]project.fourwoods.title">The Four Woods Podcast</h2> 79 - <p data-i18n="[html]project.fourwoods.long-description"></p> 80 - <p><a href="https://anchor.fm/4woodspodcast" data-i18n="[html]project.fourwoods.link.anchor" target="_blank" rel="noopener noreferrer">Anchor.FM Page</a></p> 81 - <!--<p><a--><p data-i18n="[html]project.fourwoods.link.apple"> <!--target="_blank" rel="noopener noreferrer">-->Apple Podcasts Page<!--</a>--></p> 82 - <p><a href="https://open.spotify.com/show/52RC9TpBXownRAKcwKFVQg" data-i18n="[html]project.fourwoods.link.spotify" target="_blank" rel="noopener noreferrer">Spotify Link</a></p> 83 - <!--<p><a--><p data-i18n="[html]project.fourwoods.link.google"> <!--target="_blank" rel="noopener noreferrer">-->Google Podcasts Page<!--</a>--></p> 84 - </div> 85 - </div> 86 - </div> 87 - </div> 88 - </article> 89 - <article class="project project-page cf" id="project-2"> 90 - <div class="thumb"> 91 - <div data-picture data-alt=""> 92 - <div data-src="img/mememachine.png"></div> 93 - <!--[if (lt IE 9) & (!IEMobile)]> 94 - <div data-src="img/mememachine.png"></div> 95 - <![endif]--> 96 - <noscript> 97 - <img src="img/mememachine.png" alt="" /> 98 - </noscript> 99 - </div> 100 - </div> 101 - <div class="project-content-container"> 102 - <div class="project-content"> 103 - <div class="table"> 104 - <div class="table-cell"> 105 - <h2 class="thumbnail-title" data-i18n="[html]project.mememachine.title">Meme Machine</h2> 106 - <p data-i18n="[html]project.mememachine.long-description">The Association for Computing Machinery, University of the Pacific chapter created a project in March 2017 that downloads and aggregates memes from various social media sites including Reddit, Imgur, Tumblr, and Imgflip using Python and Haskell. It included a plan to write a module that would gather ratings and use the data as input for machine learning to create its own memes.</p> 107 - <p><a href="https://github.com/uopacm/mememachinecollector" data-i18n="[html]project.mememachine.link" target="_blank" rel="noopener noreferrer">GitHub Repository</a></p> 108 - </div> 109 - </div> 110 - </div> 111 - </div> 112 - </article> 113 - <article class="project project-page cf" id="project-3"> 114 - <div class="thumb"> 115 - <div data-picture data-alt=""> 116 - <div data-src="img/shutin.png"></div> 117 - <!--[if (lt IE 9) & (!IEMobile)]> 118 - <div data-src="img/shutin.png"></div> 119 - <![endif]--> 120 - <noscript> 121 - <img src="img/shutin.png" alt="" /> 122 - </noscript> 123 - </div> 124 - </div> 125 - <div class="project-content-container"> 126 - <div class="project-content"> 127 - <div class="table"> 128 - <div class="table-cell"> 129 - <h2 class="thumbnail-title" data-i18n="[html]project.shutin.title">Shut In</h2> 130 - <p data-i18n="[html]project.shutin.long-description">The San Joaquin County Office of Education held a two-week filmmaking workshop in June 2012. After a full day of shooting at a daycare in Manteca, CA, the crew premiered the film at the Lincoln High School theatre to a packed house. The crew then held a Q and A session with those in attendance.</p> 131 - <p><a href="https://www.imdb.com/title/tt2644836/" data-i18n="[html]project.shutin.link" target="_blank" rel="noopener noreferrer">IMDB Link</a></p> 132 - <div class="embed embed-16by9"> 133 - <iframe src="https://www.youtube.com/embed/1g2i2bYbwC8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen class="embed-item">Your device does not support iframes.</iframe> 134 - </div> 135 - </div> 136 - </div> 137 - </div> 138 - </div> 139 - </article> 140 - <article class="project project-page cf" id="project-4"> 141 - <div class="thumb"> 142 - <div data-picture data-alt=""> 143 - <div data-src="img/bullet-rush.png"></div> 144 - <!--[if (lt IE 9) & (!IEMobile)]> 145 - <div data-src="img/bullet-rush.png"></div> 146 - <![endif]--> 147 - <noscript> 148 - <img src="img/bullet-rush.png" alt="" /> 149 - </noscript> 150 - </div> 151 - </div> 152 - <div class="project-content-container"> 153 - <div class="project-content"> 154 - <div class="table"> 155 - <div class="table-cell"> 156 - <h2 class="thumbnail-title" data-i18n="[html]project.bulletrush.title">Bullet Rush</h2> 157 - <p data-i18n="[html]project.bulletrush.long-description">I took the Computer Game Technologies course at University of the Pacific in Fall 2019 to learn Video Game Design and Development. After pitching ideas to the class similarly to my earlier Application Development course, I was placed as the Project Manager of the Bullet Rush team along with a Lead Programmer, a general Programmer, and a Media Director. At the end of the course, we presented to the community for feedback.</p> 158 - <p><a href="https://bitbucket.org/jacob5567/bullet-rush" data-i18n="[html]project.bulletrush.link" target="_blank" rel="noopener noreferrer">Bitbucket Repository</a></p> 159 - </div> 160 - </div> 161 - </div> 162 - </div> 163 - </article> 164 - <article class="project project-page cf" id="project-5"> 165 - <div class="thumb"> 166 - <div data-picture data-alt=""> 167 - <div data-src="img/dndcombatsim.png"></div> 168 - <!--[if (lt IE 9) & (!IEMobile)]> 169 - <div data-src="img/dndcombatsim.png"></div> 170 - <![endif]--> 171 - <noscript> 172 - <img src="img/dndcombatsim.png" alt="" /> 173 - </noscript> 174 - </div> 175 - </div> 176 - <div class="project-content-container"> 177 - <div class="project-content"> 178 - <div class="table"> 179 - <div class="table-cell"> 180 - <h2 class="thumbnail-title" data-i18n="[html]project.dndcombatsim.title">Dungeons and Dragons Combat Simulator</h2> 181 - <p data-i18n="[html]project.dndcombatsim.long-description">I took the Application Development course at University of the Pacific to learn how to work on a team to develop an application. In our groups, we proposed our final projects for the class and began our work. There were no roles, so I took initiative to be the Project Manager along with doing basic coding on the JSON data and general backend programming.</p> 182 - <p data-i18n="[html]project.dndcombatsim.link">Because we used data from 5e.tools, I am not including a link to the repository here.</p> 183 - </div> 184 - </div> 185 - </div> 186 - </div> 187 - </article> 188 - <article class="project project-page cf" id="project-6"> 189 - <div class="thumb"> 190 - <div data-picture data-alt=""> 191 - <div data-src="img/cansat.png"></div> 192 - <!--[if (lt IE 9) & (!IEMobile)]> 193 - <div data-src="img/cansat.png"></div> 194 - <![endif]--> 195 - <noscript> 196 - <img src="img/cansat.png" alt="" /> 197 - </noscript> 198 - </div> 199 - </div> 200 - <div class="project-content-container"> 201 - <div class="project-content"> 202 - <div class="table"> 203 - <div class="table-cell"> 204 - <h2 class="thumbnail-title" data-i18n="[html]project.cansat.title">CanSat</h2> 205 - <p data-i18n="[html]project.cansat.long-description">During my junior year of high school, my dad approached me with an offer to work on a project involving a simulated sattelite in an enclosure the size and shape of a soda can run by an Arduino. He connected me and two of his students to Ted Tagami of Magnitude.io and we were all connected with Dr. Elizabeth Basha and her students at University of the Pacific. The CanSat project was eventually launched into low-Earth orbit in November 2019.</p> 206 - <a href="https://magnitude.io/cansat-stem-education/" data-i18n="[html]project.cansat.link" target="_blank" rel="noopener noreferrer">More Information</a> 207 - </div> 208 - </div> 209 - </div> 210 - </div> 211 - </article> 212 - <!--END .site-content--> 213 - </section> 214 - <nav role="navigation"> 215 - <ul class="cd-pagination animated-buttons custom-icons"> 216 - <li class="button"><a href="#"><i data-i18n="[html]nav.previous">Prev</i></a></li> 217 - <li class="button-main"><a href="index.html"><i data-i18n="[html]nav.portfolio">Portfolio</i></a></li> 218 - <li class="button"><a href="#"><i data-i18n="[html]nav.next">Next</i></a></li> 219 - </ul> 220 - </nav> <!-- cd-pagination-wrapper --> 221 - <footer class="site-footer cf"> 222 - <p class="footer-text" data-i18n="[html]footer.copyright">© Copyright Cass Unterholzner 2020-2021.</p> 223 - <!--<nav class="languages" role="navigation"> 224 - <ul> 225 - <li class="active lang-switch-parent"><a href="#" class="lang-switch" data-locale="en">EN</a> |</li> 226 - <li class="lang-switch-parent"><a href="#" class="lang-switch" data-locale="de">DE</a></li> 227 - </ul> 228 - </nav>--> 229 - </footer> 230 - <!--END .site-container--> 231 - </div> 232 - <script src="scripts/jquery-2.1.4.min.js"></script> 233 - <script src="scripts/jquery.fitvids.js"></script> 234 - <script src="scripts/jquery.imagesloaded.min.js"></script> 235 - <script src="scripts/jquery_i18n/CLDRPluralRuleParser.js"></script> 236 - <script src="scripts/jquery_i18n/jquery.i18n.js"></script> 237 - <script src="scripts/jquery_i18n/jquery.i18n.messagestore.js"></script> 238 - <script src="scripts/jquery_i18n/jquery.i18n.fallbacks.js"></script> 239 - <script src="scripts/jquery_i18n/jquery.i18n.language.js"></script> 240 - <script src="scripts/jquery_i18n/jquery.i18n.parser.js"></script> 241 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.js"></script> 242 - <script src="scripts/jquery_i18n/jquery.i18n.emitter.bidi.js"></script> 243 - <script src="scripts/showdown.min.js"></script> 244 - <script src="scripts/lang.js"></script> 245 - <script src="scripts/project-main.js"></script> 246 - </body> 247 - </html>
-187
old/scripts/blog-main.js
··· 1 - var update_texts = function() { $('body').i18n(); }; 2 - var get_lang_code = function(el) { return el.attributes["data-locale"].value; }; 3 - var get_page = function(el) { 4 - //console.log(el); 5 - return el.attributes["data-page"].value; 6 - }; 7 - var currentPage = 1; 8 - var numPages = 1; 9 - 10 - jQuery(document).ready(function($){ 11 - var isLateralNavAnimating = false; 12 - 13 - //open/close lateral navigation 14 - $('.cd-nav-trigger').on('click', function(event){ 15 - event.preventDefault(); 16 - //stop if nav animation is running 17 - if( !isLateralNavAnimating ) { 18 - if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 19 - 20 - $('body').toggleClass('navigation-is-open'); 21 - $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){ 22 - //animation is over 23 - isLateralNavAnimating = false; 24 - }); 25 - } 26 - }); 27 - 28 - var pageNumber = window.location.hash.substr(1); 29 - var pages = $('.news'); 30 - 31 - if (pageNumber === '') { 32 - pageNumber = '1'; 33 - } 34 - 35 - for (var i = 0; i < pages.length; i++) { 36 - if ((get_page(pages[i]) === pageNumber) && (!pages[i].classList.contains('active-news-page'))) { 37 - pages[i].classList.add('active-news-page'); 38 - 39 - if (!($('.page-button')[i].className.includes('current'))) { 40 - $('.page-button')[i].classList.add('current'); 41 - } 42 - } else if ((get_page(pages[i]) !== pageNumber) && (pages[i].classList.contains('active-news-page'))) { 43 - pages[i].classList.remove('active-news-page'); 44 - 45 - if ($('.page-button')[i].className.includes('current')) { 46 - $('.page-button')[i].classList.remove('current'); 47 - } 48 - } 49 - } 50 - 51 - if (pageNumber === '1') { 52 - $('#left-elipses').css('display', 'none'); 53 - } 54 - 55 - if (pageNumber === '20') { 56 - $('#right-elipses').css('display', 'none'); 57 - } 58 - 59 - currentPage = parseInt(pageNumber); 60 - numPages = parseInt(pages.length); 61 - 62 - $('.page-button').click(function(e) { 63 - e.preventDefault(); 64 - window.location = 'blog.html#' + get_page(this); 65 - window.location.reload(); 66 - }); 67 - 68 - $('#previous').click(function(e) { 69 - e.preventDefault(); 70 - var newPage = currentPage - 1; 71 - 72 - if (newPage == 0) { 73 - newPage = 1; 74 - } 75 - 76 - window.location = 'blog.html#' + newPage.toString(); 77 - window.location.reload(); 78 - }); 79 - 80 - $('#next').click(function(e) { 81 - e.preventDefault(); 82 - var newPage = currentPage + 1; 83 - 84 - if (newPage > numPages) { 85 - newPage = numPages; 86 - } 87 - 88 - window.location = 'blog.html#' + newPage.toString(); 89 - window.location.reload(); 90 - }); 91 - 92 - $.i18n().parser = { 93 - parse: function(message, parameters) { 94 - var newmsg = message.replace(/\$(\d+)/g, function (str, match) { 95 - var index = parseInt(match, 10) - 1; 96 - return parameters[index] !== undefined ? parameters[index] : '$' + match; 97 - }); 98 - 99 - var converter = new showdown.Converter(); 100 - var convertedMsg = converter.makeHtml(newmsg).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 101 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 102 - 103 - return convertedMsg.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/]+)\]/gm, function(str, numMatch, innerText) { 104 - var num = parseInt(numMatch, 10) - 1; 105 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 106 - }); 107 - }, 108 - emitter: {} 109 - }; 110 - 111 - $.i18n().load(language_data); 112 - 113 - if (localStorage.getItem('locale') !== null) { 114 - $.i18n().locale = localStorage.getItem('locale'); 115 - var arr = $('.lang-switch-parent'); 116 - 117 - for (var i = 0; i < arr.length; i++) { 118 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 119 - if (!arr[i].classList.contains('active')) { 120 - arr[i].classList.add('active'); 121 - } 122 - } else { 123 - if (arr[i].classList.contains('active')) { 124 - arr[i].classList.remove('active'); 125 - } 126 - } 127 - } 128 - } 129 - 130 - update_texts(); 131 - 132 - $('.lang-switch').click(function(e) { 133 - e.preventDefault(); 134 - $.i18n().locale = $(this).data('locale'); 135 - update_texts(); 136 - localStorage.setItem('locale', $(this).data('locale')); 137 - var arr = $('.lang-switch-parent'); 138 - 139 - for (var i = 0; i < arr.length; i++) { 140 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 141 - if (!arr[i].classList.contains('active')) { 142 - arr[i].classList.add('active'); 143 - } 144 - } else { 145 - if (arr[i].classList.contains('active')) { 146 - arr[i].classList.remove('active'); 147 - } 148 - } 149 - } 150 - }); 151 - }); 152 - 153 - ! function(a) { 154 - "use strict"; 155 - a(document).ready(function() { 156 - function b() { 157 - window.location = i 158 - } 159 - var e = a(".site-title"), 160 - f = a("body"); 161 - setTimeout(function() { 162 - f.addClass("loaded") 163 - }, 150); 164 - var g = a(".project-assets").children("div"); 165 - a.each(g, function(b, c) { 166 - var d = a(this); 167 - d.imagesLoaded(function() { 168 - setTimeout(function() { 169 - d.addClass("loaded") 170 - }, 50 + 150 * b) 171 - }) 172 - }); 173 - var h = a(".projects-feed .project"); 174 - a.each(h, function(b, c) { 175 - var d = a(this); 176 - d.imagesLoaded(function() { 177 - setTimeout(function() { 178 - d.addClass("loaded") 179 - }, 50 + 50 * b) 180 - }) 181 - }); 182 - var i; 183 - a("a").on("click", function(a) { 184 - return "" == this.href || null == this.href ? void a.preventDefault() : void(-1 == this.href.indexOf("#") && -1 == this.href.indexOf("mailto:") && -1 == this.href.indexOf("javascript:") && "_blank" != this.target && (a.preventDefault(), i = this.href, f.removeClass("loaded"), setTimeout(b, 250))) 185 - }) 186 - }) 187 - }(window.jQuery);
-138
old/scripts/blog-post-main.js
··· 1 - var update_texts = function() { 2 - $('body').i18n(); 3 - $('#blog-post-title').text($('#blog-post-title').text().replace('<div>', '').replace('</div>', '')); 4 - $('#blog-post-author').text($('#blog-post-author').text().replace('<div>', '').replace('</div>', '')); 5 - $('#blog-post-date').text($('#blog-post-date').text().replace('<div>', '').replace('</div>', '')); 6 - }; 7 - var get_lang_code = function(el) { return el.attributes["data-locale"].value; }; 8 - 9 - var converter = new showdown.Converter(); 10 - 11 - jQuery(document).ready(function($){ 12 - var isLateralNavAnimating = false; 13 - 14 - //open/close lateral navigation 15 - $('.cd-nav-trigger').on('click', function(event){ 16 - event.preventDefault(); 17 - //stop if nav animation is running 18 - if( !isLateralNavAnimating ) { 19 - if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 20 - 21 - $('body').toggleClass('navigation-is-open'); 22 - $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){ 23 - //animation is over 24 - isLateralNavAnimating = false; 25 - }); 26 - } 27 - }); 28 - 29 - var postHash = window.location.hash.substr(1); 30 - var postData = posts[postHash]; 31 - 32 - if (postData !== undefined) { 33 - $('#blog-post-title')[0].attributes['data-i18n'].value = postData.title; 34 - $('#blog-post-author')[0].attributes['data-i18n'].value = postData.author; 35 - $('#blog-post-date')[0].attributes['data-i18n'].value = postData.date; 36 - } 37 - 38 - $.i18n().parser = { 39 - parse: function(message, parameters) { 40 - var newmsg = message.replace(/\$(\d+)/g, function (str, match) { 41 - var index = parseInt(match, 10) - 1; 42 - return parameters[index] !== undefined ? parameters[index] : '$' + match; 43 - }); 44 - 45 - var converter = new showdown.Converter(); 46 - var convertedMsg = converter.makeHtml(newmsg).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 47 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 48 - 49 - return convertedMsg.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/]+)\]/gm, function(str, numMatch, innerText) { 50 - var num = parseInt(numMatch, 10) - 1; 51 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 52 - }); 53 - }, 54 - emitter: {} 55 - }; 56 - 57 - $.i18n().load(language_data); 58 - 59 - if (postData !== undefined) { 60 - $('#blog-post-content').html(converter.makeHtml($.i18n(postData.content))); 61 - } 62 - 63 - if (localStorage.getItem('locale') !== null) { 64 - $.i18n().locale = localStorage.getItem('locale'); 65 - var arr = $('.lang-switch-parent'); 66 - 67 - for (var i = 0; i < arr.length; i++) { 68 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 69 - if (!arr[i].classList.contains('active')) { 70 - arr[i].classList.add('active'); 71 - } 72 - } else { 73 - if (arr[i].classList.contains('active')) { 74 - arr[i].classList.remove('active'); 75 - } 76 - } 77 - } 78 - } 79 - 80 - update_texts(); 81 - $(document).find("title").text('C/B/F - ' + $.i18n(postData.title).replace('<div>', '').replace('</div>', '')); 82 - 83 - $('.lang-switch').click(function(e) { 84 - e.preventDefault(); 85 - $.i18n().locale = $(this).data('locale'); 86 - update_texts(); 87 - localStorage.setItem('locale', $(this).data('locale')); 88 - var arr = $('.lang-switch-parent'); 89 - 90 - for (var i = 0; i < arr.length; i++) { 91 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 92 - if (!arr[i].classList.contains('active')) { 93 - arr[i].classList.add('active'); 94 - } 95 - } else { 96 - if (arr[i].classList.contains('active')) { 97 - arr[i].classList.remove('active'); 98 - } 99 - } 100 - } 101 - }); 102 - }); 103 - 104 - ! function(a) { 105 - "use strict"; 106 - a(document).ready(function() { 107 - function b() { 108 - window.location = i 109 - } 110 - var e = a(".site-title"), 111 - f = a("body"); 112 - setTimeout(function() { 113 - f.addClass("loaded") 114 - }, 150); 115 - var g = a(".project-assets").children("div"); 116 - a.each(g, function(b, c) { 117 - var d = a(this); 118 - d.imagesLoaded(function() { 119 - setTimeout(function() { 120 - d.addClass("loaded") 121 - }, 50 + 150 * b) 122 - }) 123 - }); 124 - var h = a(".projects-feed .project"); 125 - a.each(h, function(b, c) { 126 - var d = a(this); 127 - d.imagesLoaded(function() { 128 - setTimeout(function() { 129 - d.addClass("loaded") 130 - }, 50 + 50 * b) 131 - }) 132 - }); 133 - var i; 134 - a("a").on("click", function(a) { 135 - return "" == this.href || null == this.href ? void a.preventDefault() : void(-1 == this.href.indexOf("#") && -1 == this.href.indexOf("mailto:") && -1 == this.href.indexOf("javascript:") && "_blank" != this.target && (a.preventDefault(), i = this.href, f.removeClass("loaded"), setTimeout(b, 250))) 136 - }) 137 - }) 138 - }(window.jQuery);
-174
old/scripts/contact-main.js
··· 1 - var update_texts = function() { 2 - $('body').i18n(); 3 - $('input[name="name"]').prop('placeholder', $.i18n().localize('contact.placeholder.name')); 4 - $('input[name="email"]').prop('placeholder', $.i18n().localize('contact.placeholder.email')); 5 - $('textarea[name="message"]').prop('placeholder', $.i18n().localize('contact.placeholder.message')); 6 - }; 7 - 8 - var get_lang_code = function(el) { return el.attributes["data-locale"].value; }; 9 - var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 10 - 11 - function validateForm() { 12 - return ($('#contact-name').val() !== '') && ($('#contact-email').val() !== '') && ($('#contact-message').val() !== '') && ($('#contact-email').val().match(emailRegex)); 13 - } 14 - 15 - function showValidation(el, name) { 16 - if (name === 'email') { 17 - if (el.val() === '') { 18 - alert('Email field is empty.'); 19 - } else if (!el.val().match(emailRegex)) { 20 - alert('Email field does not contain an email.'); 21 - } 22 - } else { 23 - if (el.val() === '') { 24 - alert(name + ' field is empty.'); 25 - } 26 - } 27 - } 28 - 29 - jQuery(document).ready(function($){ 30 - var isLateralNavAnimating = false; 31 - 32 - //open/close lateral navigation 33 - $('.cd-nav-trigger').on('click', function(event){ 34 - event.preventDefault(); 35 - //stop if nav animation is running 36 - if( !isLateralNavAnimating ) { 37 - if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 38 - 39 - $('body').toggleClass('navigation-is-open'); 40 - $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){ 41 - //animation is over 42 - isLateralNavAnimating = false; 43 - }); 44 - } 45 - }); 46 - 47 - $.i18n().parser = { 48 - parse: function(message, parameters) { 49 - var newmsg = message.replace(/\$(\d+)/g, function (str, match) { 50 - var index = parseInt(match, 10) - 1; 51 - return parameters[index] !== undefined ? parameters[index] : '$' + match; 52 - }); 53 - 54 - var converter = new showdown.Converter(); 55 - var convertedMsg = converter.makeHtml(newmsg).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 56 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 57 - 58 - return convertedMsg.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/]+)\]/gm, function(str, numMatch, innerText) { 59 - var num = parseInt(numMatch, 10) - 1; 60 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 61 - }); 62 - }, 63 - emitter: {} 64 - }; 65 - 66 - $.i18n().load(language_data); 67 - 68 - if (localStorage.getItem('locale') !== null) { 69 - $.i18n().locale = localStorage.getItem('locale'); 70 - var arr = $('.lang-switch-parent'); 71 - 72 - for (var i = 0; i < arr.length; i++) { 73 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 74 - if (!arr[i].classList.contains('active')) { 75 - arr[i].classList.add('active'); 76 - } 77 - } else { 78 - if (arr[i].classList.contains('active')) { 79 - arr[i].classList.remove('active'); 80 - } 81 - } 82 - } 83 - } 84 - 85 - update_texts(); 86 - 87 - $('.lang-switch').click(function(e) { 88 - e.preventDefault(); 89 - $.i18n().locale = $(this).data('locale'); 90 - update_texts(); 91 - localStorage.setItem('locale', $(this).data('locale')); 92 - var arr = $('.lang-switch-parent'); 93 - 94 - for (var i = 0; i < arr.length; i++) { 95 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 96 - if (!arr[i].classList.contains('active')) { 97 - arr[i].classList.add('active'); 98 - } 99 - } else { 100 - if (arr[i].classList.contains('active')) { 101 - arr[i].classList.remove('active'); 102 - } 103 - } 104 - } 105 - }); 106 - 107 - $('.button-submit a').click(function(e) { 108 - e.preventDefault(); 109 - 110 - if (!validateForm()) { 111 - showValidation($('#contact-name'), 'Name'); 112 - showValidation($('#contact-email'), 'email'); 113 - showValidation($('#contact-message'), 'Message'); 114 - return false; 115 - } 116 - 117 - alert('Your message is sending. You will see a notification saying "OK" if your message sent. Press Okay to close this message.'); 118 - 119 - var name = $('#contact-name').val(); 120 - var email = $('#contact-email').val(); 121 - var message = $('#contact-message').val(); 122 - 123 - $('#contact-name').val(''); 124 - $('#contact-email').val(''); 125 - $('#contact-message').val(''); 126 - 127 - // Send email 128 - Email.send({ 129 - SecureToken: '35f5af2e-8f3d-4aea-99a0-cefbd03bb7f6', 130 - To: 'cityboundforest@gmail.com', 131 - From: email, 132 - Subject: 'Message from Website', 133 - Body: name + ' just sent you a message!\n\n' + message 134 - }).then( 135 - message => alert(message) 136 - ); 137 - }); 138 - }); 139 - 140 - ! function(a) { 141 - "use strict"; 142 - a(document).ready(function() { 143 - function b() { 144 - window.location = i 145 - } 146 - var e = a(".site-title"), 147 - f = a("body"); 148 - setTimeout(function() { 149 - f.addClass("loaded") 150 - }, 150); 151 - var g = a(".project-assets").children("div"); 152 - a.each(g, function(b, c) { 153 - var d = a(this); 154 - d.imagesLoaded(function() { 155 - setTimeout(function() { 156 - d.addClass("loaded") 157 - }, 50 + 150 * b) 158 - }) 159 - }); 160 - var h = a(".projects-feed .project"); 161 - a.each(h, function(b, c) { 162 - var d = a(this); 163 - d.imagesLoaded(function() { 164 - setTimeout(function() { 165 - d.addClass("loaded") 166 - }, 50 + 50 * b) 167 - }) 168 - }); 169 - var i; 170 - a("a").on("click", function(a) { 171 - return "" == this.href || null == this.href ? void a.preventDefault() : void(-1 == this.href.indexOf("#") && -1 == this.href.indexOf("mailto:") && -1 == this.href.indexOf("javascript:") && "_blank" != this.target && (a.preventDefault(), i = this.href, f.removeClass("loaded"), setTimeout(b, 250))) 172 - }) 173 - }) 174 - }(window.jQuery);
-15
old/scripts/disqus.js
··· 1 - /** 2 - * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. 3 - * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ 4 - 5 - var disqus_config = function () { 6 - this.page.url = window.location.href; // Replace PAGE_URL with your page's canonical URL variable 7 - this.page.identifier = window.location.hash.substr(1); // Replace PAGE_IDENTIFIER with your page's unique identifier variable 8 - }; 9 - 10 - (function() { // DON'T EDIT BELOW THIS LINE 11 - var d = document, s = d.createElement('script'); 12 - s.src = 'https://cityboundforest.disqus.com/embed.js'; 13 - s.setAttribute('data-timestamp', +new Date()); 14 - (d.head || d.body).appendChild(s); 15 - })();
-4
old/scripts/jquery-2.1.4.min.js
··· 1 - /*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ 2 - !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ 3 - return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)), 4 - void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
-74
old/scripts/jquery.fitvids.js
··· 1 - /*global jQuery */ 2 - /*jshint multistr:true browser:true */ 3 - /*! 4 - * FitVids 1.0 5 - * 6 - * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com 7 - * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ 8 - * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ 9 - * 10 - * Date: Thu Sept 01 18:00:00 2011 -0500 11 - */ 12 - 13 - (function( $ ){ 14 - 15 - "use strict"; 16 - 17 - $.fn.fitVids = function( options ) { 18 - var settings = { 19 - customSelector: null 20 - }; 21 - 22 - if(!document.getElementById('fit-vids-style')) { 23 - 24 - var div = document.createElement('div'), 25 - ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0], 26 - cssStyles = '&shy;<style>.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}</style>'; 27 - 28 - div.className = 'fit-vids-style'; 29 - div.id = 'fit-vids-style'; 30 - div.style.display = 'none'; 31 - div.innerHTML = cssStyles; 32 - 33 - ref.parentNode.insertBefore(div,ref); 34 - 35 - } 36 - 37 - if ( options ) { 38 - $.extend( settings, options ); 39 - } 40 - 41 - return this.each(function(){ 42 - var selectors = [ 43 - "iframe[src*='player.vimeo.com']", 44 - "iframe[src*='youtube.com']", 45 - "iframe[src*='youtube-nocookie.com']", 46 - "iframe[src*='kickstarter.com'][src*='video.html']", 47 - "object", 48 - "embed" 49 - ]; 50 - 51 - if (settings.customSelector) { 52 - selectors.push(settings.customSelector); 53 - } 54 - 55 - var $allVideos = $(this).find(selectors.join(',')); 56 - $allVideos = $allVideos.not("object object"); // SwfObj conflict patch 57 - 58 - $allVideos.each(function(){ 59 - var $this = $(this); 60 - if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } 61 - var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), 62 - width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), 63 - aspectRatio = height / width; 64 - if(!$this.attr('id')){ 65 - var videoID = 'fitvid' + Math.floor(Math.random()*999999); 66 - $this.attr('id', videoID); 67 - } 68 - $this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%"); 69 - $this.removeAttr('height').removeAttr('width'); 70 - }); 71 - }); 72 - }; 73 - // Works with either jQuery or Zepto 74 - })( window.jQuery || window.Zepto );
-3
old/scripts/jquery.imagesloaded.min.js
··· 1 - (function(c,q){var m="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";c.fn.imagesLoaded=function(f){function n(){var b=c(j),a=c(h);d&&(h.length?d.reject(e,b,a):d.resolve(e));c.isFunction(f)&&f.call(g,e,b,a)}function p(b){k(b.target,"error"===b.type)}function k(b,a){b.src===m||-1!==c.inArray(b,l)||(l.push(b),a?h.push(b):j.push(b),c.data(b,"imagesLoaded",{isBroken:a,src:b.src}),r&&d.notifyWith(c(b),[a,e,c(j),c(h)]),e.length===l.length&&(setTimeout(n),e.unbind(".imagesLoaded", 2 - p)))}var g=this,d=c.isFunction(c.Deferred)?c.Deferred():0,r=c.isFunction(d.notify),e=g.find("img").add(g.filter("img")),l=[],j=[],h=[];c.isPlainObject(f)&&c.each(f,function(b,a){if("callback"===b)f=a;else if(d)d[b](a)});e.length?e.bind("load.imagesLoaded error.imagesLoaded",p).each(function(b,a){var d=a.src,e=c.data(a,"imagesLoaded");if(e&&e.src===d)k(a,e.isBroken);else if(a.complete&&a.naturalWidth!==q)k(a,0===a.naturalWidth||0===a.naturalHeight);else if(a.readyState||a.complete)a.src=m,a.src=d}): 3 - n();return d?d.promise(g):g}})(jQuery);
-607
old/scripts/jquery_i18n/CLDRPluralRuleParser.js
··· 1 - /** 2 - * cldrpluralparser.js 3 - * A parser engine for CLDR plural rules. 4 - * 5 - * Copyright 2012-2014 Santhosh Thottingal and other contributors 6 - * Released under the MIT license 7 - * http://opensource.org/licenses/MIT 8 - * 9 - * @source https://github.com/santhoshtr/CLDRPluralRuleParser 10 - * @author Santhosh Thottingal <santhosh.thottingal@gmail.com> 11 - * @author Timo Tijhof 12 - * @author Amir Aharoni 13 - */ 14 - 15 - /** 16 - * Evaluates a plural rule in CLDR syntax for a number 17 - * @param {string} rule 18 - * @param {integer} number 19 - * @return {boolean} true if evaluation passed, false if evaluation failed. 20 - */ 21 - 22 - // UMD returnExports https://github.com/umdjs/umd/blob/master/returnExports.js 23 - (function(root, factory) { 24 - if (typeof define === 'function' && define.amd) { 25 - // AMD. Register as an anonymous module. 26 - define(factory); 27 - } else if (typeof exports === 'object') { 28 - // Node. Does not work with strict CommonJS, but 29 - // only CommonJS-like environments that support module.exports, 30 - // like Node. 31 - module.exports = factory(); 32 - } else { 33 - // Browser globals (root is window) 34 - root.pluralRuleParser = factory(); 35 - } 36 - }(this, function() { 37 - 38 - function pluralRuleParser(rule, number) { 39 - 'use strict'; 40 - 41 - /* 42 - Syntax: see http://unicode.org/reports/tr35/#Language_Plural_Rules 43 - ----------------------------------------------------------------- 44 - condition = and_condition ('or' and_condition)* 45 - ('@integer' samples)? 46 - ('@decimal' samples)? 47 - and_condition = relation ('and' relation)* 48 - relation = is_relation | in_relation | within_relation 49 - is_relation = expr 'is' ('not')? value 50 - in_relation = expr (('not')? 'in' | '=' | '!=') range_list 51 - within_relation = expr ('not')? 'within' range_list 52 - expr = operand (('mod' | '%') value)? 53 - operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' 54 - range_list = (range | value) (',' range_list)* 55 - value = digit+ 56 - digit = 0|1|2|3|4|5|6|7|8|9 57 - range = value'..'value 58 - samples = sampleRange (',' sampleRange)* (',' ('…'|'...'))? 59 - sampleRange = decimalValue '~' decimalValue 60 - decimalValue = value ('.' value)? 61 - */ 62 - 63 - // We don't evaluate the samples section of the rule. Ignore it. 64 - rule = rule.split('@')[0].replace(/^\s*/, '').replace(/\s*$/, ''); 65 - 66 - if (!rule.length) { 67 - // Empty rule or 'other' rule. 68 - return true; 69 - } 70 - 71 - // Indicates the current position in the rule as we parse through it. 72 - // Shared among all parsing functions below. 73 - var pos = 0, 74 - operand, 75 - expression, 76 - relation, 77 - result, 78 - whitespace = makeRegexParser(/^\s+/), 79 - value = makeRegexParser(/^\d+/), 80 - _n_ = makeStringParser('n'), 81 - _i_ = makeStringParser('i'), 82 - _f_ = makeStringParser('f'), 83 - _t_ = makeStringParser('t'), 84 - _v_ = makeStringParser('v'), 85 - _w_ = makeStringParser('w'), 86 - _is_ = makeStringParser('is'), 87 - _isnot_ = makeStringParser('is not'), 88 - _isnot_sign_ = makeStringParser('!='), 89 - _equal_ = makeStringParser('='), 90 - _mod_ = makeStringParser('mod'), 91 - _percent_ = makeStringParser('%'), 92 - _not_ = makeStringParser('not'), 93 - _in_ = makeStringParser('in'), 94 - _within_ = makeStringParser('within'), 95 - _range_ = makeStringParser('..'), 96 - _comma_ = makeStringParser(','), 97 - _or_ = makeStringParser('or'), 98 - _and_ = makeStringParser('and'); 99 - 100 - function debug() { 101 - // console.log.apply(console, arguments); 102 - } 103 - 104 - debug('pluralRuleParser', rule, number); 105 - 106 - // Try parsers until one works, if none work return null 107 - function choice(parserSyntax) { 108 - return function() { 109 - var i, result; 110 - 111 - for (i = 0; i < parserSyntax.length; i++) { 112 - result = parserSyntax[i](); 113 - 114 - if (result !== null) { 115 - return result; 116 - } 117 - } 118 - 119 - return null; 120 - }; 121 - } 122 - 123 - // Try several parserSyntax-es in a row. 124 - // All must succeed; otherwise, return null. 125 - // This is the only eager one. 126 - function sequence(parserSyntax) { 127 - var i, parserRes, 128 - originalPos = pos, 129 - result = []; 130 - 131 - for (i = 0; i < parserSyntax.length; i++) { 132 - parserRes = parserSyntax[i](); 133 - 134 - if (parserRes === null) { 135 - pos = originalPos; 136 - 137 - return null; 138 - } 139 - 140 - result.push(parserRes); 141 - } 142 - 143 - return result; 144 - } 145 - 146 - // Run the same parser over and over until it fails. 147 - // Must succeed a minimum of n times; otherwise, return null. 148 - function nOrMore(n, p) { 149 - return function() { 150 - var originalPos = pos, 151 - result = [], 152 - parsed = p(); 153 - 154 - while (parsed !== null) { 155 - result.push(parsed); 156 - parsed = p(); 157 - } 158 - 159 - if (result.length < n) { 160 - pos = originalPos; 161 - 162 - return null; 163 - } 164 - 165 - return result; 166 - }; 167 - } 168 - 169 - // Helpers - just make parserSyntax out of simpler JS builtin types 170 - function makeStringParser(s) { 171 - var len = s.length; 172 - 173 - return function() { 174 - var result = null; 175 - 176 - if (rule.substr(pos, len) === s) { 177 - result = s; 178 - pos += len; 179 - } 180 - 181 - return result; 182 - }; 183 - } 184 - 185 - function makeRegexParser(regex) { 186 - return function() { 187 - var matches = rule.substr(pos).match(regex); 188 - 189 - if (matches === null) { 190 - return null; 191 - } 192 - 193 - pos += matches[0].length; 194 - 195 - return matches[0]; 196 - }; 197 - } 198 - 199 - /** 200 - * Integer digits of n. 201 - */ 202 - function i() { 203 - var result = _i_(); 204 - 205 - if (result === null) { 206 - debug(' -- failed i', parseInt(number, 10)); 207 - 208 - return result; 209 - } 210 - 211 - result = parseInt(number, 10); 212 - debug(' -- passed i ', result); 213 - 214 - return result; 215 - } 216 - 217 - /** 218 - * Absolute value of the source number (integer and decimals). 219 - */ 220 - function n() { 221 - var result = _n_(); 222 - 223 - if (result === null) { 224 - debug(' -- failed n ', number); 225 - 226 - return result; 227 - } 228 - 229 - result = parseFloat(number, 10); 230 - debug(' -- passed n ', result); 231 - 232 - return result; 233 - } 234 - 235 - /** 236 - * Visible fractional digits in n, with trailing zeros. 237 - */ 238 - function f() { 239 - var result = _f_(); 240 - 241 - if (result === null) { 242 - debug(' -- failed f ', number); 243 - 244 - return result; 245 - } 246 - 247 - result = (number + '.').split('.')[1] || 0; 248 - debug(' -- passed f ', result); 249 - 250 - return result; 251 - } 252 - 253 - /** 254 - * Visible fractional digits in n, without trailing zeros. 255 - */ 256 - function t() { 257 - var result = _t_(); 258 - 259 - if (result === null) { 260 - debug(' -- failed t ', number); 261 - 262 - return result; 263 - } 264 - 265 - result = (number + '.').split('.')[1].replace(/0$/, '') || 0; 266 - debug(' -- passed t ', result); 267 - 268 - return result; 269 - } 270 - 271 - /** 272 - * Number of visible fraction digits in n, with trailing zeros. 273 - */ 274 - function v() { 275 - var result = _v_(); 276 - 277 - if (result === null) { 278 - debug(' -- failed v ', number); 279 - 280 - return result; 281 - } 282 - 283 - result = (number + '.').split('.')[1].length || 0; 284 - debug(' -- passed v ', result); 285 - 286 - return result; 287 - } 288 - 289 - /** 290 - * Number of visible fraction digits in n, without trailing zeros. 291 - */ 292 - function w() { 293 - var result = _w_(); 294 - 295 - if (result === null) { 296 - debug(' -- failed w ', number); 297 - 298 - return result; 299 - } 300 - 301 - result = (number + '.').split('.')[1].replace(/0$/, '').length || 0; 302 - debug(' -- passed w ', result); 303 - 304 - return result; 305 - } 306 - 307 - // operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' 308 - operand = choice([n, i, f, t, v, w]); 309 - 310 - // expr = operand (('mod' | '%') value)? 311 - expression = choice([mod, operand]); 312 - 313 - function mod() { 314 - var result = sequence( 315 - [operand, whitespace, choice([_mod_, _percent_]), whitespace, value] 316 - ); 317 - 318 - if (result === null) { 319 - debug(' -- failed mod'); 320 - 321 - return null; 322 - } 323 - 324 - debug(' -- passed ' + parseInt(result[0], 10) + ' ' + result[2] + ' ' + parseInt(result[4], 10)); 325 - 326 - return parseFloat(result[0]) % parseInt(result[4], 10); 327 - } 328 - 329 - function not() { 330 - var result = sequence([whitespace, _not_]); 331 - 332 - if (result === null) { 333 - debug(' -- failed not'); 334 - 335 - return null; 336 - } 337 - 338 - return result[1]; 339 - } 340 - 341 - // is_relation = expr 'is' ('not')? value 342 - function is() { 343 - var result = sequence([expression, whitespace, choice([_is_]), whitespace, value]); 344 - 345 - if (result !== null) { 346 - debug(' -- passed is : ' + result[0] + ' == ' + parseInt(result[4], 10)); 347 - 348 - return result[0] === parseInt(result[4], 10); 349 - } 350 - 351 - debug(' -- failed is'); 352 - 353 - return null; 354 - } 355 - 356 - // is_relation = expr 'is' ('not')? value 357 - function isnot() { 358 - var result = sequence( 359 - [expression, whitespace, choice([_isnot_, _isnot_sign_]), whitespace, value] 360 - ); 361 - 362 - if (result !== null) { 363 - debug(' -- passed isnot: ' + result[0] + ' != ' + parseInt(result[4], 10)); 364 - 365 - return result[0] !== parseInt(result[4], 10); 366 - } 367 - 368 - debug(' -- failed isnot'); 369 - 370 - return null; 371 - } 372 - 373 - function not_in() { 374 - var i, range_list, 375 - result = sequence([expression, whitespace, _isnot_sign_, whitespace, rangeList]); 376 - 377 - if (result !== null) { 378 - debug(' -- passed not_in: ' + result[0] + ' != ' + result[4]); 379 - range_list = result[4]; 380 - 381 - for (i = 0; i < range_list.length; i++) { 382 - if (parseInt(range_list[i], 10) === parseInt(result[0], 10)) { 383 - return false; 384 - } 385 - } 386 - 387 - return true; 388 - } 389 - 390 - debug(' -- failed not_in'); 391 - 392 - return null; 393 - } 394 - 395 - // range_list = (range | value) (',' range_list)* 396 - function rangeList() { 397 - var result = sequence([choice([range, value]), nOrMore(0, rangeTail)]), 398 - resultList = []; 399 - 400 - if (result !== null) { 401 - resultList = resultList.concat(result[0]); 402 - 403 - if (result[1][0]) { 404 - resultList = resultList.concat(result[1][0]); 405 - } 406 - 407 - return resultList; 408 - } 409 - 410 - debug(' -- failed rangeList'); 411 - 412 - return null; 413 - } 414 - 415 - function rangeTail() { 416 - // ',' range_list 417 - var result = sequence([_comma_, rangeList]); 418 - 419 - if (result !== null) { 420 - return result[1]; 421 - } 422 - 423 - debug(' -- failed rangeTail'); 424 - 425 - return null; 426 - } 427 - 428 - // range = value'..'value 429 - function range() { 430 - var i, array, left, right, 431 - result = sequence([value, _range_, value]); 432 - 433 - if (result !== null) { 434 - debug(' -- passed range'); 435 - 436 - array = []; 437 - left = parseInt(result[0], 10); 438 - right = parseInt(result[2], 10); 439 - 440 - for (i = left; i <= right; i++) { 441 - array.push(i); 442 - } 443 - 444 - return array; 445 - } 446 - 447 - debug(' -- failed range'); 448 - 449 - return null; 450 - } 451 - 452 - function _in() { 453 - var result, range_list, i; 454 - 455 - // in_relation = expr ('not')? 'in' range_list 456 - result = sequence( 457 - [expression, nOrMore(0, not), whitespace, choice([_in_, _equal_]), whitespace, rangeList] 458 - ); 459 - 460 - if (result !== null) { 461 - debug(' -- passed _in:' + result); 462 - 463 - range_list = result[5]; 464 - 465 - for (i = 0; i < range_list.length; i++) { 466 - if (parseInt(range_list[i], 10) === parseFloat(result[0])) { 467 - return (result[1][0] !== 'not'); 468 - } 469 - } 470 - 471 - return (result[1][0] === 'not'); 472 - } 473 - 474 - debug(' -- failed _in '); 475 - 476 - return null; 477 - } 478 - 479 - /** 480 - * The difference between "in" and "within" is that 481 - * "in" only includes integers in the specified range, 482 - * while "within" includes all values. 483 - */ 484 - function within() { 485 - var range_list, result; 486 - 487 - // within_relation = expr ('not')? 'within' range_list 488 - result = sequence( 489 - [expression, nOrMore(0, not), whitespace, _within_, whitespace, rangeList] 490 - ); 491 - 492 - if (result !== null) { 493 - debug(' -- passed within'); 494 - 495 - range_list = result[5]; 496 - 497 - if ((result[0] >= parseInt(range_list[0], 10)) && 498 - (result[0] < parseInt(range_list[range_list.length - 1], 10))) { 499 - 500 - return (result[1][0] !== 'not'); 501 - } 502 - 503 - return (result[1][0] === 'not'); 504 - } 505 - 506 - debug(' -- failed within '); 507 - 508 - return null; 509 - } 510 - 511 - // relation = is_relation | in_relation | within_relation 512 - relation = choice([is, not_in, isnot, _in, within]); 513 - 514 - // and_condition = relation ('and' relation)* 515 - function and() { 516 - var i, 517 - result = sequence([relation, nOrMore(0, andTail)]); 518 - 519 - if (result) { 520 - if (!result[0]) { 521 - return false; 522 - } 523 - 524 - for (i = 0; i < result[1].length; i++) { 525 - if (!result[1][i]) { 526 - return false; 527 - } 528 - } 529 - 530 - return true; 531 - } 532 - 533 - debug(' -- failed and'); 534 - 535 - return null; 536 - } 537 - 538 - // ('and' relation)* 539 - function andTail() { 540 - var result = sequence([whitespace, _and_, whitespace, relation]); 541 - 542 - if (result !== null) { 543 - debug(' -- passed andTail' + result); 544 - 545 - return result[3]; 546 - } 547 - 548 - debug(' -- failed andTail'); 549 - 550 - return null; 551 - 552 - } 553 - // ('or' and_condition)* 554 - function orTail() { 555 - var result = sequence([whitespace, _or_, whitespace, and]); 556 - 557 - if (result !== null) { 558 - debug(' -- passed orTail: ' + result[3]); 559 - 560 - return result[3]; 561 - } 562 - 563 - debug(' -- failed orTail'); 564 - 565 - return null; 566 - } 567 - 568 - // condition = and_condition ('or' and_condition)* 569 - function condition() { 570 - var i, 571 - result = sequence([and, nOrMore(0, orTail)]); 572 - 573 - if (result) { 574 - for (i = 0; i < result[1].length; i++) { 575 - if (result[1][i]) { 576 - return true; 577 - } 578 - } 579 - 580 - return result[0]; 581 - } 582 - 583 - return false; 584 - } 585 - 586 - result = condition(); 587 - 588 - /** 589 - * For success, the pos must have gotten to the end of the rule 590 - * and returned a non-null. 591 - * n.b. This is part of language infrastructure, 592 - * so we do not throw an internationalizable message. 593 - */ 594 - if (result === null) { 595 - throw new Error('Parse error at position ' + pos.toString() + ' for rule: ' + rule); 596 - } 597 - 598 - if (pos !== rule.length) { 599 - debug('Warning: Rule not parsed completely. Parser stopped at ' + rule.substr(0, pos) + ' for rule: ' + rule); 600 - } 601 - 602 - return result; 603 - } 604 - 605 - return pluralRuleParser; 606 - 607 - }));
-95
old/scripts/jquery_i18n/jquery.i18n.emitter.bidi.js
··· 1 - /*! 2 - * BIDI embedding support for jQuery.i18n 3 - * 4 - * Copyright (C) 2015, David Chan 5 - * 6 - * This code is dual licensed GPLv2 or later and MIT. You don't have to do 7 - * anything special to choose one license or the other and you don't have to 8 - * notify anyone which license you are using. You are free to use this code 9 - * in commercial projects as long as the copyright header is left intact. 10 - * See files GPL-LICENSE and MIT-LICENSE for details. 11 - * 12 - * @licence GNU General Public Licence 2.0 or later 13 - * @licence MIT License 14 - */ 15 - 16 - ( function ( $ ) { 17 - 'use strict'; 18 - var strongDirRegExp; 19 - 20 - /** 21 - * Matches the first strong directionality codepoint: 22 - * - in group 1 if it is LTR 23 - * - in group 2 if it is RTL 24 - * Does not match if there is no strong directionality codepoint. 25 - * 26 - * Generated by UnicodeJS (see tools/strongDir) from the UCD; see 27 - * https://phabricator.wikimedia.org/diffusion/GUJS/ . 28 - */ 29 - // eslint-disable-next-line no-misleading-character-class 30 - strongDirRegExp = new RegExp( 31 - '(?:' + 32 - '(' + 33 - '[\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u02bb-\u02c1\u02d0\u02d1\u02e0-\u02e4\u02ee\u0370-\u0373\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0482\u048a-\u052f\u0531-\u0556\u0559-\u055f\u0561-\u0587\u0589\u0903-\u0939\u093b\u093d-\u0940\u0949-\u094c\u094e-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c0\u09c7\u09c8\u09cb\u09cc\u09ce\u09d7\u09dc\u09dd\u09df-\u09e1\u09e6-\u09f1\u09f4-\u09fa\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3e-\u0a40\u0a59-\u0a5c\u0a5e\u0a66-\u0a6f\u0a72-\u0a74\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac0\u0ac9\u0acb\u0acc\u0ad0\u0ae0\u0ae1\u0ae6-\u0af0\u0af9\u0b02\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b3e\u0b40\u0b47\u0b48\u0b4b\u0b4c\u0b57\u0b5c\u0b5d\u0b5f-\u0b61\u0b66-\u0b77\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe\u0bbf\u0bc1\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0be6-\u0bf2\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c41-\u0c44\u0c58-\u0c5a\u0c60\u0c61\u0c66-\u0c6f\u0c7f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca\u0ccb\u0cd5\u0cd6\u0cde\u0ce0\u0ce1\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d57\u0d5f-\u0d61\u0d66-\u0d75\u0d79-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd1\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e4f-\u0e5b\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f17\u0f1a-\u0f34\u0f36\u0f38\u0f3e-\u0f47\u0f49-\u0f6c\u0f7f\u0f85\u0f88-\u0f8c\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fda\u1000-\u102c\u1031\u1038\u103b\u103c\u103f-\u1057\u105a-\u105d\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108c\u108e-\u109c\u109e-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1360-\u137c\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u167f\u1681-\u169a\u16a0-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17b6\u17be-\u17c5\u17c7\u17c8\u17d4-\u17da\u17dc\u17e0-\u17e9\u1810-\u1819\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1923-\u1926\u1929-\u192b\u1930\u1931\u1933-\u1938\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a16\u1a19\u1a1a\u1a1e-\u1a55\u1a57\u1a61\u1a63\u1a64\u1a6d-\u1a72\u1a80-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1b04-\u1b33\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b4b\u1b50-\u1b6a\u1b74-\u1b7c\u1b82-\u1ba1\u1ba6\u1ba7\u1baa\u1bae-\u1be5\u1be7\u1bea-\u1bec\u1bee\u1bf2\u1bf3\u1bfc-\u1c2b\u1c34\u1c35\u1c3b-\u1c49\u1c4d-\u1c7f\u1cc0-\u1cc7\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200e\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u214f\u2160-\u2188\u2336-\u237a\u2395\u249c-\u24e9\u26ac\u2800-\u28ff\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d70\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u302e\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u3190-\u31ba\u31f0-\u321c\u3220-\u324f\u3260-\u327b\u327f-\u32b0\u32c0-\u32cb\u32d0-\u32fe\u3300-\u3376\u337b-\u33dd\u33e0-\u33fe\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua60c\ua610-\ua62b\ua640-\ua66e\ua680-\ua69d\ua6a0-\ua6ef\ua6f2-\ua6f7\ua722-\ua787\ua789-\ua7ad\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua824\ua827\ua830-\ua837\ua840-\ua873\ua880-\ua8c3\ua8ce-\ua8d9\ua8f2-\ua8fd\ua900-\ua925\ua92e-\ua946\ua952\ua953\ua95f-\ua97c\ua983-\ua9b2\ua9b4\ua9b5\ua9ba\ua9bb\ua9bd-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9e4\ua9e6-\ua9fe\uaa00-\uaa28\uaa2f\uaa30\uaa33\uaa34\uaa40-\uaa42\uaa44-\uaa4b\uaa4d\uaa50-\uaa59\uaa5c-\uaa7b\uaa7d-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaaeb\uaaee-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab65\uab70-\uabe4\uabe6\uabe7\uabe9-\uabec\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ue000-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b]|\ud800[\udc0d-\udc26]|\ud800[\udc28-\udc3a]|\ud800\udc3c|\ud800\udc3d|\ud800[\udc3f-\udc4d]|\ud800[\udc50-\udc5d]|\ud800[\udc80-\udcfa]|\ud800\udd00|\ud800\udd02|\ud800[\udd07-\udd33]|\ud800[\udd37-\udd3f]|\ud800[\uddd0-\uddfc]|\ud800[\ude80-\ude9c]|\ud800[\udea0-\uded0]|\ud800[\udf00-\udf23]|\ud800[\udf30-\udf4a]|\ud800[\udf50-\udf75]|\ud800[\udf80-\udf9d]|\ud800[\udf9f-\udfc3]|\ud800[\udfc8-\udfd5]|\ud801[\udc00-\udc9d]|\ud801[\udca0-\udca9]|\ud801[\udd00-\udd27]|\ud801[\udd30-\udd63]|\ud801\udd6f|\ud801[\ude00-\udf36]|\ud801[\udf40-\udf55]|\ud801[\udf60-\udf67]|\ud804\udc00|\ud804[\udc02-\udc37]|\ud804[\udc47-\udc4d]|\ud804[\udc66-\udc6f]|\ud804[\udc82-\udcb2]|\ud804\udcb7|\ud804\udcb8|\ud804[\udcbb-\udcc1]|\ud804[\udcd0-\udce8]|\ud804[\udcf0-\udcf9]|\ud804[\udd03-\udd26]|\ud804\udd2c|\ud804[\udd36-\udd43]|\ud804[\udd50-\udd72]|\ud804[\udd74-\udd76]|\ud804[\udd82-\uddb5]|\ud804[\uddbf-\uddc9]|\ud804\uddcd|\ud804[\uddd0-\udddf]|\ud804[\udde1-\uddf4]|\ud804[\ude00-\ude11]|\ud804[\ude13-\ude2e]|\ud804\ude32|\ud804\ude33|\ud804\ude35|\ud804[\ude38-\ude3d]|\ud804[\ude80-\ude86]|\ud804\ude88|\ud804[\ude8a-\ude8d]|\ud804[\ude8f-\ude9d]|\ud804[\ude9f-\udea9]|\ud804[\udeb0-\udede]|\ud804[\udee0-\udee2]|\ud804[\udef0-\udef9]|\ud804\udf02|\ud804\udf03|\ud804[\udf05-\udf0c]|\ud804\udf0f|\ud804\udf10|\ud804[\udf13-\udf28]|\ud804[\udf2a-\udf30]|\ud804\udf32|\ud804\udf33|\ud804[\udf35-\udf39]|\ud804[\udf3d-\udf3f]|\ud804[\udf41-\udf44]|\ud804\udf47|\ud804\udf48|\ud804[\udf4b-\udf4d]|\ud804\udf50|\ud804\udf57|\ud804[\udf5d-\udf63]|\ud805[\udc80-\udcb2]|\ud805\udcb9|\ud805[\udcbb-\udcbe]|\ud805\udcc1|\ud805[\udcc4-\udcc7]|\ud805[\udcd0-\udcd9]|\ud805[\udd80-\uddb1]|\ud805[\uddb8-\uddbb]|\ud805\uddbe|\ud805[\uddc1-\udddb]|\ud805[\ude00-\ude32]|\ud805\ude3b|\ud805\ude3c|\ud805\ude3e|\ud805[\ude41-\ude44]|\ud805[\ude50-\ude59]|\ud805[\ude80-\udeaa]|\ud805\udeac|\ud805\udeae|\ud805\udeaf|\ud805\udeb6|\ud805[\udec0-\udec9]|\ud805[\udf00-\udf19]|\ud805\udf20|\ud805\udf21|\ud805\udf26|\ud805[\udf30-\udf3f]|\ud806[\udca0-\udcf2]|\ud806\udcff|\ud806[\udec0-\udef8]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e]|\ud809[\udc70-\udc74]|\ud809[\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38]|\ud81a[\ude40-\ude5e]|\ud81a[\ude60-\ude69]|\ud81a\ude6e|\ud81a\ude6f|\ud81a[\uded0-\udeed]|\ud81a\udef5|\ud81a[\udf00-\udf2f]|\ud81a[\udf37-\udf45]|\ud81a[\udf50-\udf59]|\ud81a[\udf5b-\udf61]|\ud81a[\udf63-\udf77]|\ud81a[\udf7d-\udf8f]|\ud81b[\udf00-\udf44]|\ud81b[\udf50-\udf7e]|\ud81b[\udf93-\udf9f]|\ud82c\udc00|\ud82c\udc01|\ud82f[\udc00-\udc6a]|\ud82f[\udc70-\udc7c]|\ud82f[\udc80-\udc88]|\ud82f[\udc90-\udc99]|\ud82f\udc9c|\ud82f\udc9f|\ud834[\udc00-\udcf5]|\ud834[\udd00-\udd26]|\ud834[\udd29-\udd66]|\ud834[\udd6a-\udd72]|\ud834\udd83|\ud834\udd84|\ud834[\udd8c-\udda9]|\ud834[\uddae-\udde8]|\ud834[\udf60-\udf71]|\ud835[\udc00-\udc54]|\ud835[\udc56-\udc9c]|\ud835\udc9e|\ud835\udc9f|\ud835\udca2|\ud835\udca5|\ud835\udca6|\ud835[\udca9-\udcac]|\ud835[\udcae-\udcb9]|\ud835\udcbb|\ud835[\udcbd-\udcc3]|\ud835[\udcc5-\udd05]|\ud835[\udd07-\udd0a]|\ud835[\udd0d-\udd14]|\ud835[\udd16-\udd1c]|\ud835[\udd1e-\udd39]|\ud835[\udd3b-\udd3e]|\ud835[\udd40-\udd44]|\ud835\udd46|\ud835[\udd4a-\udd50]|\ud835[\udd52-\udea5]|\ud835[\udea8-\udeda]|\ud835[\udedc-\udf14]|\ud835[\udf16-\udf4e]|\ud835[\udf50-\udf88]|\ud835[\udf8a-\udfc2]|\ud835[\udfc4-\udfcb]|\ud836[\udc00-\uddff]|\ud836[\ude37-\ude3a]|\ud836[\ude6d-\ude74]|\ud836[\ude76-\ude83]|\ud836[\ude85-\ude8b]|\ud83c[\udd10-\udd2e]|\ud83c[\udd30-\udd69]|\ud83c[\udd70-\udd9a]|\ud83c[\udde6-\ude02]|\ud83c[\ude10-\ude3a]|\ud83c[\ude40-\ude48]|\ud83c\ude50|\ud83c\ude51|[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\uded6]|\ud869[\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf34]|\ud86d[\udf40-\udfff]|\ud86e[\udc00-\udc1d]|\ud86e[\udc20-\udfff]|[\ud86f-\ud872][\udc00-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]|[\udb80-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|[\udbc0-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd]' + 34 - ')|(' + 35 - '[\u0590\u05be\u05c0\u05c3\u05c6\u05c8-\u05ff\u07c0-\u07ea\u07f4\u07f5\u07fa-\u0815\u081a\u0824\u0828\u082e-\u0858\u085c-\u089f\u200f\ufb1d\ufb1f-\ufb28\ufb2a-\ufb4f\u0608\u060b\u060d\u061b-\u064a\u066d-\u066f\u0671-\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u0710\u0712-\u072f\u074b-\u07a5\u07b1-\u07bf\u08a0-\u08e2\ufb50-\ufd3d\ufd40-\ufdcf\ufdf0-\ufdfc\ufdfe\ufdff\ufe70-\ufefe]|\ud802[\udc00-\udd1e]|\ud802[\udd20-\ude00]|\ud802\ude04|\ud802[\ude07-\ude0b]|\ud802[\ude10-\ude37]|\ud802[\ude3b-\ude3e]|\ud802[\ude40-\udee4]|\ud802[\udee7-\udf38]|\ud802[\udf40-\udfff]|\ud803[\udc00-\ude5f]|\ud803[\ude7f-\udfff]|\ud83a[\udc00-\udccf]|\ud83a[\udcd7-\udfff]|\ud83b[\udc00-\uddff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\ude00-\udeef]|\ud83b[\udef2-\udeff]' + 36 - ')' + 37 - ')' 38 - ); 39 - 40 - /** 41 - * Gets directionality of the first strongly directional codepoint 42 - * 43 - * This is the rule the BIDI algorithm uses to determine the directionality of 44 - * paragraphs ( http://unicode.org/reports/tr9/#The_Paragraph_Level ) and 45 - * FSI isolates ( http://unicode.org/reports/tr9/#Explicit_Directional_Isolates ). 46 - * 47 - * TODO: Does not handle BIDI control characters inside the text. 48 - * TODO: Does not handle unallocated characters. 49 - * 50 - * @param {string} text The text from which to extract initial directionality. 51 - * @return {string} Directionality (either 'ltr' or 'rtl') 52 - */ 53 - function strongDirFromContent( text ) { 54 - var m = text.match( strongDirRegExp ); 55 - if ( !m ) { 56 - return null; 57 - } 58 - if ( m[ 2 ] === undefined ) { 59 - return 'ltr'; 60 - } 61 - return 'rtl'; 62 - } 63 - 64 - $.extend( $.i18n.parser.emitter, { 65 - /** 66 - * Wraps argument with unicode control characters for directionality safety 67 - * 68 - * This solves the problem where directionality-neutral characters at the edge of 69 - * the argument string get interpreted with the wrong directionality from the 70 - * enclosing context, giving renderings that look corrupted like "(Ben_(WMF". 71 - * 72 - * The wrapping is LRE...PDF or RLE...PDF, depending on the detected 73 - * directionality of the argument string, using the BIDI algorithm's own "First 74 - * strong directional codepoint" rule. Essentially, this works round the fact that 75 - * there is no embedding equivalent of U+2068 FSI (isolation with heuristic 76 - * direction inference). The latter is cleaner but still not widely supported. 77 - * 78 - * @param {string[]} nodes The text nodes from which to take the first item. 79 - * @return {string} Wrapped String of content as needed. 80 - */ 81 - bidi: function ( nodes ) { 82 - var dir = strongDirFromContent( nodes[ 0 ] ); 83 - if ( dir === 'ltr' ) { 84 - // Wrap in LEFT-TO-RIGHT EMBEDDING ... POP DIRECTIONAL FORMATTING 85 - return '\u202A' + nodes[ 0 ] + '\u202C'; 86 - } 87 - if ( dir === 'rtl' ) { 88 - // Wrap in RIGHT-TO-LEFT EMBEDDING ... POP DIRECTIONAL FORMATTING 89 - return '\u202B' + nodes[ 0 ] + '\u202C'; 90 - } 91 - // No strong directionality: do not wrap 92 - return nodes[ 0 ]; 93 - } 94 - } ); 95 - }( jQuery ) );
-168
old/scripts/jquery_i18n/jquery.i18n.emitter.js
··· 1 - /*! 2 - * jQuery Internationalization library 3 - * 4 - * Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar 5 - * 6 - * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do 7 - * anything special to choose one license or the other and you don't have to 8 - * notify anyone which license you are using. You are free to use 9 - * UniversalLanguageSelector in commercial projects as long as the copyright 10 - * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. 11 - * 12 - * @licence GNU General Public Licence 2.0 or later 13 - * @licence MIT License 14 - */ 15 - 16 - ( function ( $ ) { 17 - 'use strict'; 18 - 19 - var MessageParserEmitter = function () { 20 - this.language = $.i18n.languages[ String.locale ] || $.i18n.languages[ 'default' ]; 21 - }; 22 - 23 - MessageParserEmitter.prototype = { 24 - constructor: MessageParserEmitter, 25 - 26 - /** 27 - * (We put this method definition here, and not in prototype, to make 28 - * sure it's not overwritten by any magic.) Walk entire node structure, 29 - * applying replacements and template functions when appropriate 30 - * 31 - * @param {Mixed} node abstract syntax tree (top node or subnode) 32 - * @param {Array} replacements for $1, $2, ... $n 33 - * @return {Mixed} single-string node or array of nodes suitable for 34 - * jQuery appending. 35 - */ 36 - emit: function ( node, replacements ) { 37 - var ret, subnodes, operation, 38 - messageParserEmitter = this; 39 - 40 - switch ( typeof node ) { 41 - case 'string': 42 - case 'number': 43 - ret = node; 44 - break; 45 - case 'object': 46 - // node is an array of nodes 47 - subnodes = $.map( node.slice( 1 ), function ( n ) { 48 - return messageParserEmitter.emit( n, replacements ); 49 - } ); 50 - 51 - operation = node[ 0 ].toLowerCase(); 52 - 53 - if ( typeof messageParserEmitter[ operation ] === 'function' ) { 54 - ret = messageParserEmitter[ operation ]( subnodes, replacements ); 55 - } else { 56 - throw new Error( 'unknown operation "' + operation + '"' ); 57 - } 58 - 59 - break; 60 - case 'undefined': 61 - // Parsing the empty string (as an entire expression, or as a 62 - // paramExpression in a template) results in undefined 63 - // Perhaps a more clever parser can detect this, and return the 64 - // empty string? Or is that useful information? 65 - // The logical thing is probably to return the empty string here 66 - // when we encounter undefined. 67 - ret = ''; 68 - break; 69 - default: 70 - throw new Error( 'unexpected type in AST: ' + typeof node ); 71 - } 72 - 73 - return ret; 74 - }, 75 - 76 - /** 77 - * Parsing has been applied depth-first we can assume that all nodes 78 - * here are single nodes Must return a single node to parents -- a 79 - * jQuery with synthetic span However, unwrap any other synthetic spans 80 - * in our children and pass them upwards 81 - * 82 - * @param {Array} nodes Mixed, some single nodes, some arrays of nodes. 83 - * @return {string} 84 - */ 85 - concat: function ( nodes ) { 86 - var result = ''; 87 - 88 - $.each( nodes, function ( i, node ) { 89 - // strings, integers, anything else 90 - result += node; 91 - } ); 92 - 93 - return result; 94 - }, 95 - 96 - /** 97 - * Return escaped replacement of correct index, or string if 98 - * unavailable. Note that we expect the parsed parameter to be 99 - * zero-based. i.e. $1 should have become [ 0 ]. if the specified 100 - * parameter is not found return the same string (e.g. "$99" -> 101 - * parameter 98 -> not found -> return "$99" ) TODO throw error if 102 - * nodes.length > 1 ? 103 - * 104 - * @param {Array} nodes One element, integer, n >= 0 105 - * @param {Array} replacements for $1, $2, ... $n 106 - * @return {string} replacement 107 - */ 108 - replace: function ( nodes, replacements ) { 109 - var index = parseInt( nodes[ 0 ], 10 ); 110 - 111 - if ( index < replacements.length ) { 112 - // replacement is not a string, don't touch! 113 - return replacements[ index ]; 114 - } else { 115 - // index not found, fallback to displaying variable 116 - return '$' + ( index + 1 ); 117 - } 118 - }, 119 - 120 - /** 121 - * Transform parsed structure into pluralization n.b. The first node may 122 - * be a non-integer (for instance, a string representing an Arabic 123 - * number). So convert it back with the current language's 124 - * convertNumber. 125 - * 126 - * @param {Array} nodes List [ {String|Number}, {String}, {String} ... ] 127 - * @return {string} selected pluralized form according to current 128 - * language. 129 - */ 130 - plural: function ( nodes ) { 131 - var count = parseFloat( this.language.convertNumber( nodes[ 0 ], 10 ) ), 132 - forms = nodes.slice( 1 ); 133 - 134 - return forms.length ? this.language.convertPlural( count, forms ) : ''; 135 - }, 136 - 137 - /** 138 - * Transform parsed structure into gender Usage 139 - * {{gender:gender|masculine|feminine|neutral}}. 140 - * 141 - * @param {Array} nodes List [ {String}, {String}, {String} , {String} ] 142 - * @return {string} selected gender form according to current language 143 - */ 144 - gender: function ( nodes ) { 145 - var gender = nodes[ 0 ], 146 - forms = nodes.slice( 1 ); 147 - 148 - return this.language.gender( gender, forms ); 149 - }, 150 - 151 - /** 152 - * Transform parsed structure into grammar conversion. Invoked by 153 - * putting {{grammar:form|word}} in a message 154 - * 155 - * @param {Array} nodes List [{Grammar case eg: genitive}, {String word}] 156 - * @return {string} selected grammatical form according to current 157 - * language. 158 - */ 159 - grammar: function ( nodes ) { 160 - var form = nodes[ 0 ], 161 - word = nodes[ 1 ]; 162 - 163 - return word && form && this.language.convertGrammar( word, form ); 164 - } 165 - }; 166 - 167 - $.extend( $.i18n.parser.emitter, new MessageParserEmitter() ); 168 - }( jQuery ) );
-186
old/scripts/jquery_i18n/jquery.i18n.fallbacks.js
··· 1 - /*! 2 - * jQuery Internationalization library 3 - * 4 - * Copyright (C) 2012 Santhosh Thottingal 5 - * 6 - * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do anything special to 7 - * choose one license or the other and you don't have to notify anyone which license you are using. 8 - * You are free to use UniversalLanguageSelector in commercial projects as long as the copyright 9 - * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. 10 - * 11 - * @licence GNU General Public Licence 2.0 or later 12 - * @licence MIT License 13 - */ 14 - ( function ( $ ) { 15 - 'use strict'; 16 - 17 - $.i18n = $.i18n || {}; 18 - $.extend( $.i18n.fallbacks, { 19 - ab: [ 'ru' ], 20 - ace: [ 'id' ], 21 - aln: [ 'sq' ], 22 - // Not so standard - als is supposed to be Tosk Albanian, 23 - // but in Wikipedia it's used for a Germanic language. 24 - als: [ 'gsw', 'de' ], 25 - an: [ 'es' ], 26 - anp: [ 'hi' ], 27 - arn: [ 'es' ], 28 - arz: [ 'ar' ], 29 - av: [ 'ru' ], 30 - ay: [ 'es' ], 31 - ba: [ 'ru' ], 32 - bar: [ 'de' ], 33 - 'bat-smg': [ 'sgs', 'lt' ], 34 - bcc: [ 'fa' ], 35 - 'be-x-old': [ 'be-tarask' ], 36 - bh: [ 'bho' ], 37 - bjn: [ 'id' ], 38 - bm: [ 'fr' ], 39 - bpy: [ 'bn' ], 40 - bqi: [ 'fa' ], 41 - bug: [ 'id' ], 42 - 'cbk-zam': [ 'es' ], 43 - ce: [ 'ru' ], 44 - crh: [ 'crh-latn' ], 45 - 'crh-cyrl': [ 'ru' ], 46 - csb: [ 'pl' ], 47 - cv: [ 'ru' ], 48 - 'de-at': [ 'de' ], 49 - 'de-ch': [ 'de' ], 50 - 'de-formal': [ 'de' ], 51 - dsb: [ 'de' ], 52 - dtp: [ 'ms' ], 53 - egl: [ 'it' ], 54 - eml: [ 'it' ], 55 - ff: [ 'fr' ], 56 - fit: [ 'fi' ], 57 - 'fiu-vro': [ 'vro', 'et' ], 58 - frc: [ 'fr' ], 59 - frp: [ 'fr' ], 60 - frr: [ 'de' ], 61 - fur: [ 'it' ], 62 - gag: [ 'tr' ], 63 - gan: [ 'gan-hant', 'zh-hant', 'zh-hans' ], 64 - 'gan-hans': [ 'zh-hans' ], 65 - 'gan-hant': [ 'zh-hant', 'zh-hans' ], 66 - gl: [ 'pt' ], 67 - glk: [ 'fa' ], 68 - gn: [ 'es' ], 69 - gsw: [ 'de' ], 70 - hif: [ 'hif-latn' ], 71 - hsb: [ 'de' ], 72 - ht: [ 'fr' ], 73 - ii: [ 'zh-cn', 'zh-hans' ], 74 - inh: [ 'ru' ], 75 - iu: [ 'ike-cans' ], 76 - jut: [ 'da' ], 77 - jv: [ 'id' ], 78 - kaa: [ 'kk-latn', 'kk-cyrl' ], 79 - kbd: [ 'kbd-cyrl' ], 80 - khw: [ 'ur' ], 81 - kiu: [ 'tr' ], 82 - kk: [ 'kk-cyrl' ], 83 - 'kk-arab': [ 'kk-cyrl' ], 84 - 'kk-latn': [ 'kk-cyrl' ], 85 - 'kk-cn': [ 'kk-arab', 'kk-cyrl' ], 86 - 'kk-kz': [ 'kk-cyrl' ], 87 - 'kk-tr': [ 'kk-latn', 'kk-cyrl' ], 88 - kl: [ 'da' ], 89 - 'ko-kp': [ 'ko' ], 90 - koi: [ 'ru' ], 91 - krc: [ 'ru' ], 92 - ks: [ 'ks-arab' ], 93 - ksh: [ 'de' ], 94 - ku: [ 'ku-latn' ], 95 - 'ku-arab': [ 'ckb' ], 96 - kv: [ 'ru' ], 97 - lad: [ 'es' ], 98 - lb: [ 'de' ], 99 - lbe: [ 'ru' ], 100 - lez: [ 'ru' ], 101 - li: [ 'nl' ], 102 - lij: [ 'it' ], 103 - liv: [ 'et' ], 104 - lmo: [ 'it' ], 105 - ln: [ 'fr' ], 106 - ltg: [ 'lv' ], 107 - lzz: [ 'tr' ], 108 - mai: [ 'hi' ], 109 - 'map-bms': [ 'jv', 'id' ], 110 - mg: [ 'fr' ], 111 - mhr: [ 'ru' ], 112 - min: [ 'id' ], 113 - mo: [ 'ro' ], 114 - mrj: [ 'ru' ], 115 - mwl: [ 'pt' ], 116 - myv: [ 'ru' ], 117 - mzn: [ 'fa' ], 118 - nah: [ 'es' ], 119 - nap: [ 'it' ], 120 - nds: [ 'de' ], 121 - 'nds-nl': [ 'nl' ], 122 - 'nl-informal': [ 'nl' ], 123 - no: [ 'nb' ], 124 - os: [ 'ru' ], 125 - pcd: [ 'fr' ], 126 - pdc: [ 'de' ], 127 - pdt: [ 'de' ], 128 - pfl: [ 'de' ], 129 - pms: [ 'it' ], 130 - pt: [ 'pt-br' ], 131 - 'pt-br': [ 'pt' ], 132 - qu: [ 'es' ], 133 - qug: [ 'qu', 'es' ], 134 - rgn: [ 'it' ], 135 - rmy: [ 'ro' ], 136 - 'roa-rup': [ 'rup' ], 137 - rue: [ 'uk', 'ru' ], 138 - ruq: [ 'ruq-latn', 'ro' ], 139 - 'ruq-cyrl': [ 'mk' ], 140 - 'ruq-latn': [ 'ro' ], 141 - sa: [ 'hi' ], 142 - sah: [ 'ru' ], 143 - scn: [ 'it' ], 144 - sg: [ 'fr' ], 145 - sgs: [ 'lt' ], 146 - sli: [ 'de' ], 147 - sr: [ 'sr-ec' ], 148 - srn: [ 'nl' ], 149 - stq: [ 'de' ], 150 - su: [ 'id' ], 151 - szl: [ 'pl' ], 152 - tcy: [ 'kn' ], 153 - tg: [ 'tg-cyrl' ], 154 - tt: [ 'tt-cyrl', 'ru' ], 155 - 'tt-cyrl': [ 'ru' ], 156 - ty: [ 'fr' ], 157 - udm: [ 'ru' ], 158 - ug: [ 'ug-arab' ], 159 - uk: [ 'ru' ], 160 - vec: [ 'it' ], 161 - vep: [ 'et' ], 162 - vls: [ 'nl' ], 163 - vmf: [ 'de' ], 164 - vot: [ 'fi' ], 165 - vro: [ 'et' ], 166 - wa: [ 'fr' ], 167 - wo: [ 'fr' ], 168 - wuu: [ 'zh-hans' ], 169 - xal: [ 'ru' ], 170 - xmf: [ 'ka' ], 171 - yi: [ 'he' ], 172 - za: [ 'zh-hans' ], 173 - zea: [ 'nl' ], 174 - zh: [ 'zh-hans' ], 175 - 'zh-classical': [ 'lzh' ], 176 - 'zh-cn': [ 'zh-hans' ], 177 - 'zh-hant': [ 'zh-hans' ], 178 - 'zh-hk': [ 'zh-hant', 'zh-hans' ], 179 - 'zh-min-nan': [ 'nan' ], 180 - 'zh-mo': [ 'zh-hk', 'zh-hant', 'zh-hans' ], 181 - 'zh-my': [ 'zh-sg', 'zh-hans' ], 182 - 'zh-sg': [ 'zh-hans' ], 183 - 'zh-tw': [ 'zh-hant', 'zh-hans' ], 184 - 'zh-yue': [ 'yue' ] 185 - } ); 186 - }( jQuery ) );
-290
old/scripts/jquery_i18n/jquery.i18n.js
··· 1 - /*! 2 - * jQuery Internationalization library 3 - * 4 - * Copyright (C) 2012 Santhosh Thottingal 5 - * 6 - * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do 7 - * anything special to choose one license or the other and you don't have to 8 - * notify anyone which license you are using. You are free to use 9 - * UniversalLanguageSelector in commercial projects as long as the copyright 10 - * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. 11 - * 12 - * @licence GNU General Public Licence 2.0 or later 13 - * @licence MIT License 14 - */ 15 - 16 - ( function ( $ ) { 17 - 'use strict'; 18 - 19 - var I18N, 20 - slice = Array.prototype.slice; 21 - /** 22 - * @constructor 23 - * @param {Object} options 24 - */ 25 - I18N = function ( options ) { 26 - // Load defaults 27 - this.options = $.extend( {}, I18N.defaults, options ); 28 - 29 - this.parser = this.options.parser; 30 - this.locale = this.options.locale; 31 - this.messageStore = this.options.messageStore; 32 - this.languages = {}; 33 - }; 34 - 35 - I18N.prototype = { 36 - /** 37 - * Localize a given messageKey to a locale. 38 - * @param {string} messageKey 39 - * @return {string} Localized message 40 - */ 41 - localize: function ( messageKey ) { 42 - var localeParts, localePartIndex, locale, fallbackIndex, 43 - tryingLocale, message; 44 - 45 - locale = this.locale; 46 - fallbackIndex = 0; 47 - 48 - while ( locale ) { 49 - // Iterate through locales starting at most-specific until 50 - // localization is found. As in fi-Latn-FI, fi-Latn and fi. 51 - localeParts = locale.split( '-' ); 52 - localePartIndex = localeParts.length; 53 - 54 - do { 55 - tryingLocale = localeParts.slice( 0, localePartIndex ).join( '-' ); 56 - message = this.messageStore.get( tryingLocale, messageKey ); 57 - 58 - if ( message ) { 59 - return message; 60 - } 61 - 62 - localePartIndex--; 63 - } while ( localePartIndex ); 64 - 65 - if ( locale === this.options.fallbackLocale ) { 66 - break; 67 - } 68 - 69 - locale = ( $.i18n.fallbacks[ this.locale ] && 70 - $.i18n.fallbacks[ this.locale ][ fallbackIndex ] ) || 71 - this.options.fallbackLocale; 72 - $.i18n.log( 'Trying fallback locale for ' + this.locale + ': ' + locale + ' (' + messageKey + ')' ); 73 - 74 - fallbackIndex++; 75 - } 76 - 77 - // key not found 78 - return ''; 79 - }, 80 - 81 - /* 82 - * Destroy the i18n instance. 83 - */ 84 - destroy: function () { 85 - $.removeData( document, 'i18n' ); 86 - }, 87 - 88 - /** 89 - * General message loading API This can take a URL string for 90 - * the json formatted messages. Example: 91 - * <code>load('path/to/all_localizations.json');</code> 92 - * 93 - * To load a localization file for a locale: 94 - * <code> 95 - * load('path/to/de-messages.json', 'de' ); 96 - * </code> 97 - * 98 - * To load a localization file from a directory: 99 - * <code> 100 - * load('path/to/i18n/directory', 'de' ); 101 - * </code> 102 - * The above method has the advantage of fallback resolution. 103 - * ie, it will automatically load the fallback locales for de. 104 - * For most usecases, this is the recommended method. 105 - * It is optional to have trailing slash at end. 106 - * 107 - * A data object containing message key- message translation mappings 108 - * can also be passed. Example: 109 - * <code> 110 - * load( { 'hello' : 'Hello' }, optionalLocale ); 111 - * </code> 112 - * 113 - * A source map containing key-value pair of languagename and locations 114 - * can also be passed. Example: 115 - * <code> 116 - * load( { 117 - * bn: 'i18n/bn.json', 118 - * he: 'i18n/he.json', 119 - * en: 'i18n/en.json' 120 - * } ) 121 - * </code> 122 - * 123 - * If the data argument is null/undefined/false, 124 - * all cached messages for the i18n instance will get reset. 125 - * 126 - * @param {string|Object} source 127 - * @param {string} locale Language tag 128 - * @return {jQuery.Promise} 129 - */ 130 - load: function ( source, locale ) { 131 - var fallbackLocales, locIndex, fallbackLocale, sourceMap = {}; 132 - if ( !source && !locale ) { 133 - source = 'i18n/' + $.i18n().locale + '.json'; 134 - locale = $.i18n().locale; 135 - } 136 - if ( typeof source === 'string' && 137 - // source extension should be json, but can have query params after that. 138 - source.split( '?' )[ 0 ].split( '.' ).pop() !== 'json' 139 - ) { 140 - // Load specified locale then check for fallbacks when directory is 141 - // specified in load() 142 - sourceMap[ locale ] = source + '/' + locale + '.json'; 143 - fallbackLocales = ( $.i18n.fallbacks[ locale ] || [] ) 144 - .concat( this.options.fallbackLocale ); 145 - for ( locIndex = 0; locIndex < fallbackLocales.length; locIndex++ ) { 146 - fallbackLocale = fallbackLocales[ locIndex ]; 147 - sourceMap[ fallbackLocale ] = source + '/' + fallbackLocale + '.json'; 148 - } 149 - return this.load( sourceMap ); 150 - } else { 151 - return this.messageStore.load( source, locale ); 152 - } 153 - 154 - }, 155 - 156 - /** 157 - * Does parameter and magic word substitution. 158 - * 159 - * @param {string} key Message key 160 - * @param {Array} parameters Message parameters 161 - * @return {string} 162 - */ 163 - parse: function ( key, parameters ) { 164 - var message = this.localize( key ); 165 - // FIXME: This changes the state of the I18N object, 166 - // should probably not change the 'this.parser' but just 167 - // pass it to the parser. 168 - this.parser.language = $.i18n.languages[ $.i18n().locale ] || $.i18n.languages[ 'default' ]; 169 - if ( message === '' ) { 170 - message = key; 171 - } 172 - return this.parser.parse( message, parameters ); 173 - } 174 - }; 175 - 176 - /** 177 - * Process a message from the $.I18N instance 178 - * for the current document, stored in jQuery.data(document). 179 - * 180 - * @param {string} key Key of the message. 181 - * @param {string} param1 [param...] Variadic list of parameters for {key}. 182 - * @return {string|$.I18N} Parsed message, or if no key was given 183 - * the instance of $.I18N is returned. 184 - */ 185 - $.i18n = function ( key, param1 ) { 186 - var parameters, 187 - i18n = $.data( document, 'i18n' ), 188 - options = typeof key === 'object' && key; 189 - 190 - // If the locale option for this call is different then the setup so far, 191 - // update it automatically. This doesn't just change the context for this 192 - // call but for all future call as well. 193 - // If there is no i18n setup yet, don't do this. It will be taken care of 194 - // by the `new I18N` construction below. 195 - // NOTE: It should only change language for this one call. 196 - // Then cache instances of I18N somewhere. 197 - if ( options && options.locale && i18n && i18n.locale !== options.locale ) { 198 - i18n.locale = options.locale; 199 - } 200 - 201 - if ( !i18n ) { 202 - i18n = new I18N( options ); 203 - $.data( document, 'i18n', i18n ); 204 - } 205 - 206 - if ( typeof key === 'string' ) { 207 - if ( param1 !== undefined ) { 208 - parameters = slice.call( arguments, 1 ); 209 - } else { 210 - parameters = []; 211 - } 212 - 213 - return i18n.parse( key, parameters ); 214 - } else { 215 - // FIXME: remove this feature/bug. 216 - return i18n; 217 - } 218 - }; 219 - 220 - $.fn.i18n = function () { 221 - var i18n = $.data( document, 'i18n' ); 222 - 223 - if ( !i18n ) { 224 - i18n = new I18N(); 225 - $.data( document, 'i18n', i18n ); 226 - } 227 - 228 - return this.each( function () { 229 - var $this = $( this ), 230 - messageKey = $this.data( 'i18n' ), 231 - lBracket, rBracket, type, key; 232 - 233 - if ( messageKey ) { 234 - lBracket = messageKey.indexOf( '[' ); 235 - rBracket = messageKey.indexOf( ']' ); 236 - if ( lBracket !== -1 && rBracket !== -1 && lBracket < rBracket ) { 237 - type = messageKey.slice( lBracket + 1, rBracket ); 238 - key = messageKey.slice( rBracket + 1 ); 239 - if ( type === 'html' ) { 240 - $this.html( i18n.parse( key ) ); 241 - } else { 242 - $this.attr( type, i18n.parse( key ) ); 243 - } 244 - } else { 245 - $this.text( i18n.parse( messageKey ) ); 246 - } 247 - } else { 248 - $this.find( '[data-i18n]' ).i18n(); 249 - } 250 - } ); 251 - }; 252 - 253 - function getDefaultLocale() { 254 - var locale = $( 'html' ).attr( 'lang' ); 255 - if ( !locale ) { 256 - locale = navigator.language || navigator.userLanguage || ''; 257 - } 258 - return locale; 259 - } 260 - 261 - $.i18n.languages = {}; 262 - $.i18n.messageStore = $.i18n.messageStore || {}; 263 - $.i18n.parser = { 264 - // The default parser only handles variable substitution 265 - parse: function ( message, parameters ) { 266 - return message.replace( /\$(\d+)/g, function ( str, match ) { 267 - var index = parseInt( match, 10 ) - 1; 268 - return parameters[ index ] !== undefined ? parameters[ index ] : '$' + match; 269 - } ); 270 - }, 271 - emitter: {} 272 - }; 273 - $.i18n.fallbacks = {}; 274 - $.i18n.debug = false; 275 - $.i18n.log = function ( /* arguments */ ) { 276 - if ( window.console && $.i18n.debug ) { 277 - window.console.log.apply( window.console, arguments ); 278 - } 279 - }; 280 - /* Static members */ 281 - I18N.defaults = { 282 - locale: getDefaultLocale(), 283 - fallbackLocale: 'en', 284 - parser: $.i18n.parser, 285 - messageStore: $.i18n.messageStore 286 - }; 287 - 288 - // Expose constructor 289 - $.i18n.constructor = I18N; 290 - }( jQuery ) );
-499
old/scripts/jquery_i18n/jquery.i18n.language.js
··· 1 - /* global pluralRuleParser */ 2 - ( function ( $ ) { 3 - 'use strict'; 4 - 5 - // jscs:disable 6 - var language = { 7 - // CLDR plural rules generated using 8 - // libs/CLDRPluralRuleParser/tools/PluralXML2JSON.html 9 - pluralRules: { 10 - ak: { 11 - one: 'n = 0..1' 12 - }, 13 - am: { 14 - one: 'i = 0 or n = 1' 15 - }, 16 - ar: { 17 - zero: 'n = 0', 18 - one: 'n = 1', 19 - two: 'n = 2', 20 - few: 'n % 100 = 3..10', 21 - many: 'n % 100 = 11..99' 22 - }, 23 - ars: { 24 - zero: 'n = 0', 25 - one: 'n = 1', 26 - two: 'n = 2', 27 - few: 'n % 100 = 3..10', 28 - many: 'n % 100 = 11..99' 29 - }, 30 - as: { 31 - one: 'i = 0 or n = 1' 32 - }, 33 - be: { 34 - one: 'n % 10 = 1 and n % 100 != 11', 35 - few: 'n % 10 = 2..4 and n % 100 != 12..14', 36 - many: 'n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14' 37 - }, 38 - bh: { 39 - one: 'n = 0..1' 40 - }, 41 - bn: { 42 - one: 'i = 0 or n = 1' 43 - }, 44 - br: { 45 - one: 'n % 10 = 1 and n % 100 != 11,71,91', 46 - two: 'n % 10 = 2 and n % 100 != 12,72,92', 47 - few: 'n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99', 48 - many: 'n != 0 and n % 1000000 = 0' 49 - }, 50 - bs: { 51 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11', 52 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14' 53 - }, 54 - cs: { 55 - one: 'i = 1 and v = 0', 56 - few: 'i = 2..4 and v = 0', 57 - many: 'v != 0' 58 - }, 59 - cy: { 60 - zero: 'n = 0', 61 - one: 'n = 1', 62 - two: 'n = 2', 63 - few: 'n = 3', 64 - many: 'n = 6' 65 - }, 66 - da: { 67 - one: 'n = 1 or t != 0 and i = 0,1' 68 - }, 69 - dsb: { 70 - one: 'v = 0 and i % 100 = 1 or f % 100 = 1', 71 - two: 'v = 0 and i % 100 = 2 or f % 100 = 2', 72 - few: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4' 73 - }, 74 - fa: { 75 - one: 'i = 0 or n = 1' 76 - }, 77 - ff: { 78 - one: 'i = 0,1' 79 - }, 80 - fil: { 81 - one: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9' 82 - }, 83 - fr: { 84 - one: 'i = 0,1' 85 - }, 86 - ga: { 87 - one: 'n = 1', 88 - two: 'n = 2', 89 - few: 'n = 3..6', 90 - many: 'n = 7..10' 91 - }, 92 - gd: { 93 - one: 'n = 1,11', 94 - two: 'n = 2,12', 95 - few: 'n = 3..10,13..19' 96 - }, 97 - gu: { 98 - one: 'i = 0 or n = 1' 99 - }, 100 - guw: { 101 - one: 'n = 0..1' 102 - }, 103 - gv: { 104 - one: 'v = 0 and i % 10 = 1', 105 - two: 'v = 0 and i % 10 = 2', 106 - few: 'v = 0 and i % 100 = 0,20,40,60,80', 107 - many: 'v != 0' 108 - }, 109 - he: { 110 - one: 'i = 1 and v = 0', 111 - two: 'i = 2 and v = 0', 112 - many: 'v = 0 and n != 0..10 and n % 10 = 0' 113 - }, 114 - hi: { 115 - one: 'i = 0 or n = 1' 116 - }, 117 - hr: { 118 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11', 119 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14' 120 - }, 121 - hsb: { 122 - one: 'v = 0 and i % 100 = 1 or f % 100 = 1', 123 - two: 'v = 0 and i % 100 = 2 or f % 100 = 2', 124 - few: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4' 125 - }, 126 - hy: { 127 - one: 'i = 0,1' 128 - }, 129 - is: { 130 - one: 't = 0 and i % 10 = 1 and i % 100 != 11 or t != 0' 131 - }, 132 - iu: { 133 - one: 'n = 1', 134 - two: 'n = 2' 135 - }, 136 - iw: { 137 - one: 'i = 1 and v = 0', 138 - two: 'i = 2 and v = 0', 139 - many: 'v = 0 and n != 0..10 and n % 10 = 0' 140 - }, 141 - kab: { 142 - one: 'i = 0,1' 143 - }, 144 - kn: { 145 - one: 'i = 0 or n = 1' 146 - }, 147 - kw: { 148 - one: 'n = 1', 149 - two: 'n = 2' 150 - }, 151 - lag: { 152 - zero: 'n = 0', 153 - one: 'i = 0,1 and n != 0' 154 - }, 155 - ln: { 156 - one: 'n = 0..1' 157 - }, 158 - lt: { 159 - one: 'n % 10 = 1 and n % 100 != 11..19', 160 - few: 'n % 10 = 2..9 and n % 100 != 11..19', 161 - many: 'f != 0' 162 - }, 163 - lv: { 164 - zero: 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19', 165 - one: 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1' 166 - }, 167 - mg: { 168 - one: 'n = 0..1' 169 - }, 170 - mk: { 171 - one: 'v = 0 and i % 10 = 1 or f % 10 = 1' 172 - }, 173 - mo: { 174 - one: 'i = 1 and v = 0', 175 - few: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19' 176 - }, 177 - mr: { 178 - one: 'i = 0 or n = 1' 179 - }, 180 - mt: { 181 - one: 'n = 1', 182 - few: 'n = 0 or n % 100 = 2..10', 183 - many: 'n % 100 = 11..19' 184 - }, 185 - naq: { 186 - one: 'n = 1', 187 - two: 'n = 2' 188 - }, 189 - nso: { 190 - one: 'n = 0..1' 191 - }, 192 - pa: { 193 - one: 'n = 0..1' 194 - }, 195 - pl: { 196 - one: 'i = 1 and v = 0', 197 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14', 198 - many: 'v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14' 199 - }, 200 - prg: { 201 - zero: 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19', 202 - one: 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1' 203 - }, 204 - pt: { 205 - one: 'i = 0..1' 206 - }, 207 - ro: { 208 - one: 'i = 1 and v = 0', 209 - few: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19' 210 - }, 211 - ru: { 212 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11', 213 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14', 214 - many: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14' 215 - }, 216 - se: { 217 - one: 'n = 1', 218 - two: 'n = 2' 219 - }, 220 - sh: { 221 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11', 222 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14' 223 - }, 224 - shi: { 225 - one: 'i = 0 or n = 1', 226 - few: 'n = 2..10' 227 - }, 228 - si: { 229 - one: 'n = 0,1 or i = 0 and f = 1' 230 - }, 231 - sk: { 232 - one: 'i = 1 and v = 0', 233 - few: 'i = 2..4 and v = 0', 234 - many: 'v != 0' 235 - }, 236 - sl: { 237 - one: 'v = 0 and i % 100 = 1', 238 - two: 'v = 0 and i % 100 = 2', 239 - few: 'v = 0 and i % 100 = 3..4 or v != 0' 240 - }, 241 - sma: { 242 - one: 'n = 1', 243 - two: 'n = 2' 244 - }, 245 - smi: { 246 - one: 'n = 1', 247 - two: 'n = 2' 248 - }, 249 - smj: { 250 - one: 'n = 1', 251 - two: 'n = 2' 252 - }, 253 - smn: { 254 - one: 'n = 1', 255 - two: 'n = 2' 256 - }, 257 - sms: { 258 - one: 'n = 1', 259 - two: 'n = 2' 260 - }, 261 - sr: { 262 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11', 263 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14' 264 - }, 265 - ti: { 266 - one: 'n = 0..1' 267 - }, 268 - tl: { 269 - one: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9' 270 - }, 271 - tzm: { 272 - one: 'n = 0..1 or n = 11..99' 273 - }, 274 - uk: { 275 - one: 'v = 0 and i % 10 = 1 and i % 100 != 11', 276 - few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14', 277 - many: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14' 278 - }, 279 - wa: { 280 - one: 'n = 0..1' 281 - }, 282 - zu: { 283 - one: 'i = 0 or n = 1' 284 - } 285 - }, 286 - // jscs:enable 287 - 288 - /** 289 - * Plural form transformations, needed for some languages. 290 - * 291 - * @param {integer} count 292 - * Non-localized quantifier 293 - * @param {Array} forms 294 - * List of plural forms 295 - * @return {string} Correct form for quantifier in this language 296 - */ 297 - convertPlural: function ( count, forms ) { 298 - var pluralRules, 299 - pluralFormIndex, 300 - index, 301 - explicitPluralPattern = /\d+=/i, 302 - formCount, 303 - form; 304 - 305 - if ( !forms || forms.length === 0 ) { 306 - return ''; 307 - } 308 - 309 - // Handle for Explicit 0= & 1= values 310 - for ( index = 0; index < forms.length; index++ ) { 311 - form = forms[ index ]; 312 - if ( explicitPluralPattern.test( form ) ) { 313 - formCount = parseInt( form.slice( 0, form.indexOf( '=' ) ), 10 ); 314 - if ( formCount === count ) { 315 - return ( form.slice( form.indexOf( '=' ) + 1 ) ); 316 - } 317 - forms[ index ] = undefined; 318 - } 319 - } 320 - 321 - forms = $.map( forms, function ( form ) { 322 - if ( form !== undefined ) { 323 - return form; 324 - } 325 - } ); 326 - 327 - pluralRules = this.pluralRules[ $.i18n().locale ]; 328 - 329 - if ( !pluralRules ) { 330 - // default fallback. 331 - return ( count === 1 ) ? forms[ 0 ] : forms[ 1 ]; 332 - } 333 - 334 - pluralFormIndex = this.getPluralForm( count, pluralRules ); 335 - pluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 ); 336 - 337 - return forms[ pluralFormIndex ]; 338 - }, 339 - 340 - /** 341 - * For the number, get the plural for index 342 - * 343 - * @param {integer} number 344 - * @param {Object} pluralRules 345 - * @return {integer} plural form index 346 - */ 347 - getPluralForm: function ( number, pluralRules ) { 348 - var i, 349 - pluralForms = [ 'zero', 'one', 'two', 'few', 'many', 'other' ], 350 - pluralFormIndex = 0; 351 - 352 - for ( i = 0; i < pluralForms.length; i++ ) { 353 - if ( pluralRules[ pluralForms[ i ] ] ) { 354 - if ( pluralRuleParser( pluralRules[ pluralForms[ i ] ], number ) ) { 355 - return pluralFormIndex; 356 - } 357 - 358 - pluralFormIndex++; 359 - } 360 - } 361 - 362 - return pluralFormIndex; 363 - }, 364 - 365 - /** 366 - * Converts a number using digitTransformTable. 367 - * 368 - * @param {number} num Value to be converted 369 - * @param {boolean} integer Convert the return value to an integer 370 - * @return {string} The number converted into a String. 371 - */ 372 - convertNumber: function ( num, integer ) { 373 - var tmp, item, i, 374 - transformTable, numberString, convertedNumber; 375 - 376 - // Set the target Transform table: 377 - transformTable = this.digitTransformTable( $.i18n().locale ); 378 - numberString = String( num ); 379 - convertedNumber = ''; 380 - 381 - if ( !transformTable ) { 382 - return num; 383 - } 384 - 385 - // Check if the restore to Latin number flag is set: 386 - if ( integer ) { 387 - if ( parseFloat( num, 10 ) === num ) { 388 - return num; 389 - } 390 - 391 - tmp = []; 392 - 393 - for ( item in transformTable ) { 394 - tmp[ transformTable[ item ] ] = item; 395 - } 396 - 397 - transformTable = tmp; 398 - } 399 - 400 - for ( i = 0; i < numberString.length; i++ ) { 401 - if ( transformTable[ numberString[ i ] ] ) { 402 - convertedNumber += transformTable[ numberString[ i ] ]; 403 - } else { 404 - convertedNumber += numberString[ i ]; 405 - } 406 - } 407 - 408 - return integer ? parseFloat( convertedNumber, 10 ) : convertedNumber; 409 - }, 410 - 411 - /** 412 - * Grammatical transformations, needed for inflected languages. 413 - * Invoked by putting {{grammar:form|word}} in a message. 414 - * Override this method for languages that need special grammar rules 415 - * applied dynamically. 416 - * 417 - * @param {string} word 418 - * @param {string} form 419 - * @return {string} 420 - */ 421 - // eslint-disable-next-line no-unused-vars 422 - convertGrammar: function ( word, form ) { 423 - return word; 424 - }, 425 - 426 - /** 427 - * Provides an alternative text depending on specified gender. Usage 428 - * {{gender:[gender|user object]|masculine|feminine|neutral}}. If second 429 - * or third parameter are not specified, masculine is used. 430 - * 431 - * These details may be overriden per language. 432 - * 433 - * @param {string} gender 434 - * male, female, or anything else for neutral. 435 - * @param {Array} forms 436 - * List of gender forms 437 - * 438 - * @return {string} 439 - */ 440 - gender: function ( gender, forms ) { 441 - if ( !forms || forms.length === 0 ) { 442 - return ''; 443 - } 444 - 445 - while ( forms.length < 2 ) { 446 - forms.push( forms[ forms.length - 1 ] ); 447 - } 448 - 449 - if ( gender === 'male' ) { 450 - return forms[ 0 ]; 451 - } 452 - 453 - if ( gender === 'female' ) { 454 - return forms[ 1 ]; 455 - } 456 - 457 - return ( forms.length === 3 ) ? forms[ 2 ] : forms[ 0 ]; 458 - }, 459 - 460 - /** 461 - * Get the digit transform table for the given language 462 - * See http://cldr.unicode.org/translation/numbering-systems 463 - * 464 - * @param {string} language 465 - * @return {Array|boolean} List of digits in the passed language or false 466 - * representation, or boolean false if there is no information. 467 - */ 468 - digitTransformTable: function ( language ) { 469 - var tables = { 470 - ar: '٠١٢٣٤٥٦٧٨٩', 471 - fa: '۰۱۲۳۴۵۶۷۸۹', 472 - ml: '൦൧൨൩൪൫൬൭൮൯', 473 - kn: '೦೧೨೩೪೫೬೭೮೯', 474 - lo: '໐໑໒໓໔໕໖໗໘໙', 475 - or: '୦୧୨୩୪୫୬୭୮୯', 476 - kh: '០១២៣៤៥៦៧៨៩', 477 - nqo: '߀߁߂߃߄߅߆߇߈߉', // Note that the digits go right to left 478 - pa: '੦੧੨੩੪੫੬੭੮੯', 479 - gu: '૦૧૨૩૪૫૬૭૮૯', 480 - hi: '०१२३४५६७८९', 481 - my: '၀၁၂၃၄၅၆၇၈၉', 482 - ta: '௦௧௨௩௪௫௬௭௮௯', 483 - te: '౦౧౨౩౪౫౬౭౮౯', 484 - th: '๐๑๒๓๔๕๖๗๘๙', // FIXME use iso 639 codes 485 - bo: '༠༡༢༣༤༥༦༧༨༩' // FIXME use iso 639 codes 486 - }; 487 - 488 - if ( !tables[ language ] ) { 489 - return false; 490 - } 491 - 492 - return tables[ language ].split( '' ); 493 - } 494 - }; 495 - 496 - $.extend( $.i18n.languages, { 497 - default: language 498 - } ); 499 - }( jQuery ) );
-123
old/scripts/jquery_i18n/jquery.i18n.messagestore.js
··· 1 - /*! 2 - * jQuery Internationalization library - Message Store 3 - * 4 - * Copyright (C) 2012 Santhosh Thottingal 5 - * 6 - * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do anything special to 7 - * choose one license or the other and you don't have to notify anyone which license you are using. 8 - * You are free to use UniversalLanguageSelector in commercial projects as long as the copyright 9 - * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. 10 - * 11 - * @licence GNU General Public Licence 2.0 or later 12 - * @licence MIT License 13 - */ 14 - 15 - ( function ( $ ) { 16 - 'use strict'; 17 - 18 - var MessageStore = function () { 19 - this.messages = {}; 20 - this.sources = {}; 21 - }; 22 - 23 - function jsonMessageLoader( url ) { 24 - var deferred = $.Deferred(); 25 - 26 - $.getJSON( url ) 27 - .done( deferred.resolve ) 28 - .fail( function ( jqxhr, settings, exception ) { 29 - $.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception ); 30 - // Ignore 404 exception, because we are handling fallabacks explicitly 31 - deferred.resolve(); 32 - } ); 33 - 34 - return deferred.promise(); 35 - } 36 - 37 - /** 38 - * See https://github.com/wikimedia/jquery.i18n/wiki/Specification#wiki-Message_File_Loading 39 - */ 40 - MessageStore.prototype = { 41 - 42 - /** 43 - * General message loading API This can take a URL string for 44 - * the json formatted messages. 45 - * <code>load('path/to/all_localizations.json');</code> 46 - * 47 - * This can also load a localization file for a locale <code> 48 - * load( 'path/to/de-messages.json', 'de' ); 49 - * </code> 50 - * A data object containing message key- message translation mappings 51 - * can also be passed Eg: 52 - * <code> 53 - * load( { 'hello' : 'Hello' }, optionalLocale ); 54 - * </code> If the data argument is 55 - * null/undefined/false, 56 - * all cached messages for the i18n instance will get reset. 57 - * 58 - * @param {string|Object} source 59 - * @param {string} locale Language tag 60 - * @return {jQuery.Promise} 61 - */ 62 - load: function ( source, locale ) { 63 - var key = null, 64 - deferreds = [], 65 - messageStore = this; 66 - 67 - if ( typeof source === 'string' ) { 68 - // This is a URL to the messages file. 69 - $.i18n.log( 'Loading messages from: ' + source ); 70 - return jsonMessageLoader( source ) 71 - .then( function ( localization ) { 72 - return messageStore.load( localization, locale ); 73 - } ); 74 - } 75 - 76 - if ( locale ) { 77 - // source is an key-value pair of messages for given locale 78 - messageStore.set( locale, source ); 79 - 80 - return $.Deferred().resolve(); 81 - } else { 82 - // source is a key-value pair of locales and their source 83 - for ( key in source ) { 84 - if ( Object.prototype.hasOwnProperty.call( source, key ) ) { 85 - locale = key; 86 - // No {locale} given, assume data is a group of languages, 87 - // call this function again for each language. 88 - deferreds.push( messageStore.load( source[ key ], locale ) ); 89 - } 90 - } 91 - return $.when.apply( $, deferreds ); 92 - } 93 - 94 - }, 95 - 96 - /** 97 - * Set messages to the given locale. 98 - * If locale exists, add messages to the locale. 99 - * 100 - * @param {string} locale 101 - * @param {Object} messages 102 - */ 103 - set: function ( locale, messages ) { 104 - if ( !this.messages[ locale ] ) { 105 - this.messages[ locale ] = messages; 106 - } else { 107 - this.messages[ locale ] = $.extend( this.messages[ locale ], messages ); 108 - } 109 - }, 110 - 111 - /** 112 - * 113 - * @param {string} locale 114 - * @param {string} messageKey 115 - * @return {boolean} 116 - */ 117 - get: function ( locale, messageKey ) { 118 - return this.messages[ locale ] && this.messages[ locale ][ messageKey ]; 119 - } 120 - }; 121 - 122 - $.extend( $.i18n.messageStore, new MessageStore() ); 123 - }( jQuery ) );
-310
old/scripts/jquery_i18n/jquery.i18n.parser.js
··· 1 - /*! 2 - * jQuery Internationalization library 3 - * 4 - * Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar 5 - * 6 - * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do 7 - * anything special to choose one license or the other and you don't have to 8 - * notify anyone which license you are using. You are free to use 9 - * UniversalLanguageSelector in commercial projects as long as the copyright 10 - * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. 11 - * 12 - * @licence GNU General Public Licence 2.0 or later 13 - * @licence MIT License 14 - */ 15 - 16 - ( function ( $ ) { 17 - 'use strict'; 18 - 19 - var MessageParser = function ( options ) { 20 - this.options = $.extend( {}, $.i18n.parser.defaults, options ); 21 - this.language = $.i18n.languages[ String.locale ] || $.i18n.languages[ 'default' ]; 22 - this.emitter = $.i18n.parser.emitter; 23 - }; 24 - 25 - MessageParser.prototype = { 26 - 27 - constructor: MessageParser, 28 - 29 - simpleParse: function ( message, parameters ) { 30 - return message.replace( /\$(\d+)/g, function ( str, match ) { 31 - var index = parseInt( match, 10 ) - 1; 32 - 33 - return parameters[ index ] !== undefined ? parameters[ index ] : '$' + match; 34 - } ); 35 - }, 36 - 37 - parse: function ( message, replacements ) { 38 - if ( message.indexOf( '{{' ) < 0 ) { 39 - return this.simpleParse( message, replacements ); 40 - } 41 - 42 - this.emitter.language = $.i18n.languages[ $.i18n().locale ] || 43 - $.i18n.languages[ 'default' ]; 44 - 45 - return this.emitter.emit( this.ast( message ), replacements ); 46 - }, 47 - 48 - ast: function ( message ) { 49 - var pipe, colon, backslash, anyCharacter, dollar, digits, regularLiteral, 50 - regularLiteralWithoutBar, regularLiteralWithoutSpace, escapedOrLiteralWithoutBar, 51 - escapedOrRegularLiteral, templateContents, templateName, openTemplate, 52 - closeTemplate, expression, paramExpression, result, 53 - pos = 0; 54 - 55 - // Try parsers until one works, if none work return null 56 - function choice( parserSyntax ) { 57 - return function () { 58 - var i, result; 59 - 60 - for ( i = 0; i < parserSyntax.length; i++ ) { 61 - result = parserSyntax[ i ](); 62 - 63 - if ( result !== null ) { 64 - return result; 65 - } 66 - } 67 - 68 - return null; 69 - }; 70 - } 71 - 72 - // Try several parserSyntax-es in a row. 73 - // All must succeed; otherwise, return null. 74 - // This is the only eager one. 75 - function sequence( parserSyntax ) { 76 - var i, res, 77 - originalPos = pos, 78 - result = []; 79 - 80 - for ( i = 0; i < parserSyntax.length; i++ ) { 81 - res = parserSyntax[ i ](); 82 - 83 - if ( res === null ) { 84 - pos = originalPos; 85 - 86 - return null; 87 - } 88 - 89 - result.push( res ); 90 - } 91 - 92 - return result; 93 - } 94 - 95 - // Run the same parser over and over until it fails. 96 - // Must succeed a minimum of n times; otherwise, return null. 97 - function nOrMore( n, p ) { 98 - return function () { 99 - var originalPos = pos, 100 - result = [], 101 - parsed = p(); 102 - 103 - while ( parsed !== null ) { 104 - result.push( parsed ); 105 - parsed = p(); 106 - } 107 - 108 - if ( result.length < n ) { 109 - pos = originalPos; 110 - 111 - return null; 112 - } 113 - 114 - return result; 115 - }; 116 - } 117 - 118 - // Helpers -- just make parserSyntax out of simpler JS builtin types 119 - 120 - function makeStringParser( s ) { 121 - var len = s.length; 122 - 123 - return function () { 124 - var result = null; 125 - 126 - if ( message.slice( pos, pos + len ) === s ) { 127 - result = s; 128 - pos += len; 129 - } 130 - 131 - return result; 132 - }; 133 - } 134 - 135 - function makeRegexParser( regex ) { 136 - return function () { 137 - var matches = message.slice( pos ).match( regex ); 138 - 139 - if ( matches === null ) { 140 - return null; 141 - } 142 - 143 - pos += matches[ 0 ].length; 144 - 145 - return matches[ 0 ]; 146 - }; 147 - } 148 - 149 - pipe = makeStringParser( '|' ); 150 - colon = makeStringParser( ':' ); 151 - backslash = makeStringParser( '\\' ); 152 - anyCharacter = makeRegexParser( /^./ ); 153 - dollar = makeStringParser( '$' ); 154 - digits = makeRegexParser( /^\d+/ ); 155 - regularLiteral = makeRegexParser( /^[^{}[\]$\\]/ ); 156 - regularLiteralWithoutBar = makeRegexParser( /^[^{}[\]$\\|]/ ); 157 - regularLiteralWithoutSpace = makeRegexParser( /^[^{}[\]$\s]/ ); 158 - 159 - // There is a general pattern: 160 - // parse a thing; 161 - // if it worked, apply transform, 162 - // otherwise return null. 163 - // But using this as a combinator seems to cause problems 164 - // when combined with nOrMore(). 165 - // May be some scoping issue. 166 - function transform( p, fn ) { 167 - return function () { 168 - var result = p(); 169 - 170 - return result === null ? null : fn( result ); 171 - }; 172 - } 173 - 174 - // Used to define "literals" within template parameters. The pipe 175 - // character is the parameter delimeter, so by default 176 - // it is not a literal in the parameter 177 - function literalWithoutBar() { 178 - var result = nOrMore( 1, escapedOrLiteralWithoutBar )(); 179 - 180 - return result === null ? null : result.join( '' ); 181 - } 182 - 183 - function literal() { 184 - var result = nOrMore( 1, escapedOrRegularLiteral )(); 185 - 186 - return result === null ? null : result.join( '' ); 187 - } 188 - 189 - function escapedLiteral() { 190 - var result = sequence( [ backslash, anyCharacter ] ); 191 - 192 - return result === null ? null : result[ 1 ]; 193 - } 194 - 195 - choice( [ escapedLiteral, regularLiteralWithoutSpace ] ); 196 - escapedOrLiteralWithoutBar = choice( [ escapedLiteral, regularLiteralWithoutBar ] ); 197 - escapedOrRegularLiteral = choice( [ escapedLiteral, regularLiteral ] ); 198 - 199 - function replacement() { 200 - var result = sequence( [ dollar, digits ] ); 201 - 202 - if ( result === null ) { 203 - return null; 204 - } 205 - 206 - return [ 'REPLACE', parseInt( result[ 1 ], 10 ) - 1 ]; 207 - } 208 - 209 - templateName = transform( 210 - // see $wgLegalTitleChars 211 - // not allowing : due to the need to catch "PLURAL:$1" 212 - makeRegexParser( /^[ !"$&'()*,./0-9;=?@A-Z^_`a-z~\x80-\xFF+-]+/ ), 213 - 214 - function ( result ) { 215 - return result.toString(); 216 - } 217 - ); 218 - 219 - function templateParam() { 220 - var expr, 221 - result = sequence( [ pipe, nOrMore( 0, paramExpression ) ] ); 222 - 223 - if ( result === null ) { 224 - return null; 225 - } 226 - 227 - expr = result[ 1 ]; 228 - 229 - // use a "CONCAT" operator if there are multiple nodes, 230 - // otherwise return the first node, raw. 231 - return expr.length > 1 ? [ 'CONCAT' ].concat( expr ) : expr[ 0 ]; 232 - } 233 - 234 - function templateWithReplacement() { 235 - var result = sequence( [ templateName, colon, replacement ] ); 236 - 237 - return result === null ? null : [ result[ 0 ], result[ 2 ] ]; 238 - } 239 - 240 - function templateWithOutReplacement() { 241 - var result = sequence( [ templateName, colon, paramExpression ] ); 242 - 243 - return result === null ? null : [ result[ 0 ], result[ 2 ] ]; 244 - } 245 - 246 - templateContents = choice( [ 247 - function () { 248 - var res = sequence( [ 249 - // templates can have placeholders for dynamic 250 - // replacement eg: {{PLURAL:$1|one car|$1 cars}} 251 - // or no placeholders eg: 252 - // {{GRAMMAR:genitive|{{SITENAME}}} 253 - choice( [ templateWithReplacement, templateWithOutReplacement ] ), 254 - nOrMore( 0, templateParam ) 255 - ] ); 256 - 257 - return res === null ? null : res[ 0 ].concat( res[ 1 ] ); 258 - }, 259 - function () { 260 - var res = sequence( [ templateName, nOrMore( 0, templateParam ) ] ); 261 - 262 - if ( res === null ) { 263 - return null; 264 - } 265 - 266 - return [ res[ 0 ] ].concat( res[ 1 ] ); 267 - } 268 - ] ); 269 - 270 - openTemplate = makeStringParser( '{{' ); 271 - closeTemplate = makeStringParser( '}}' ); 272 - 273 - function template() { 274 - var result = sequence( [ openTemplate, templateContents, closeTemplate ] ); 275 - 276 - return result === null ? null : result[ 1 ]; 277 - } 278 - 279 - expression = choice( [ template, replacement, literal ] ); 280 - paramExpression = choice( [ template, replacement, literalWithoutBar ] ); 281 - 282 - function start() { 283 - var result = nOrMore( 0, expression )(); 284 - 285 - if ( result === null ) { 286 - return null; 287 - } 288 - 289 - return [ 'CONCAT' ].concat( result ); 290 - } 291 - 292 - result = start(); 293 - 294 - /* 295 - * For success, the pos must have gotten to the end of the input 296 - * and returned a non-null. 297 - * n.b. This is part of language infrastructure, so we do not throw an 298 - * internationalizable message. 299 - */ 300 - if ( result === null || pos !== message.length ) { 301 - throw new Error( 'Parse error at position ' + pos.toString() + ' in input: ' + message ); 302 - } 303 - 304 - return result; 305 - } 306 - 307 - }; 308 - 309 - $.extend( $.i18n.parser, new MessageParser() ); 310 - }( jQuery ) );
-227
old/scripts/lang.js
··· 1 - var language_data = { 2 - "en": { 3 - "socials.instagram": "Instagram", 4 - "socials.twitter": "Twitter", 5 - "socials.facebook": "Facebook", 6 - "socials.youtube": "YouTube", 7 - "socials.tiktok": "TikTok", 8 - "socials.twitch": "Twitch", 9 - "socials.mastodon": "Mastodon", 10 - 11 - "menu.showcase": "Showcase", 12 - "menu.blog": "Blog", 13 - "menu.about": "About", 14 - "menu.docs": "Docs", 15 - "menu.contact": "Contact", 16 - 17 - "title": "CityboundForest", 18 - "title.message": "Hello I'm **Cass Unterholzner.** \nI'm a storyteller working in the media of !1[**film**], !2[**theatre**], !3[**video games**], and !4[**music**].", 19 - 20 - "footer.copyright": "© Copyright Cass Unterholzner 2020.", 21 - 22 - "project.mememachine.skills": "Python, Python Reddit Aggregator Wrapper (PRAW), ImgurPython", 23 - "project.mememachine.title": "Meme Machine", 24 - "project.mememachine.description": "Download, Rate, and Create Memes - Programmer", 25 - "project.mememachine.long-description": "The Association for Computing Machinery, University of the Pacific chapter created a project in March 2017 that downloads and aggregates memes from various social media sites including Reddit, Imgur, Tumblr, and Imgflip using Python and Haskell. It included a plan to write a module that would gather ratings and use the data as input for machine learning to create its own memes.", 26 - "project.mememachine.link": "GitHub Repository", 27 - 28 - "project.shutin.skills": "Final Cut Pro X, Adobe Premiere Pro, Foley Art, Lighting Setup", 29 - "project.shutin.title": "Shut In", 30 - "project.shutin.description": "Short Film - Gaffer, Foley Artist, Sound Editor", 31 - "project.shutin.long-description": "The San Joaquin County Office of Education held a two-week filmmaking workshop in June 2012. After a full day of shooting at a daycare in Manteca, CA, the crew premiered the film at the Lincoln High School theatre to a packed house. The crew then held a Q and A session with those in attendance.", 32 - "project.shutin.link": "IMDB Link", 33 - 34 - "project.bulletrush.skills": "Unity, C#, Project Management, Agile Development", 35 - "project.bulletrush.title": "Bullet Rush", 36 - "project.bulletrush.description": "Cuphead meets First Person Shooter games - Programmer, Project Manager", 37 - "project.bulletrush.long-description": "I took the Computer Game Technologies course at University of the Pacific in Fall 2019 to learn Video Game Design and Development. After pitching ideas to the class similarly to my earlier Application Development course, I was placed as the Project Manager of the Bullet Rush team along with a Lead Programmer, a general Programmer, and a Media Director. At the end of the course, we presented to the community for feedback.", 38 - "project.bulletrush.link": "Bitbucket Respository", 39 - 40 - "project.dndcombatsim.skills": "Java, JavaScript, Project Management", 41 - "project.dndcombatsim.title": "Dungeons and Dragons Combat Simulator", 42 - "project.dndcombatsim.description": "Combat simulator for the 5th Edition of the Tabletop RPG Dungeons and Dragons - Programmer, Project Manager", 43 - "project.dndcombatsim.long-description": "I took the Application Development course at University of the Pacific to learn how to work on a team to develop an application. In our groups, we proposed our final projects for the class and began our work. There were no roles, so I took initiative to be the Project Manager along with doing basic coding on the JSON data and general backend programming.", 44 - "project.dndcombatsim.link": "Because we used data from 5e.tools, I am not including a link to the repository here.", 45 - 46 - "project.cansat.skills": "C++, Arduino", 47 - "project.cansat.title": "CanSat", 48 - "project.cansat.description": "A simulated sattelite in an enclosure the shape and size of a soda can - Programmer", 49 - "project.cansat.long-description": "During my junior year of high school, my dad approached me with an offer to work on a project involving a simulated sattelite in an enclosure the size and shape of a soda can run by an Arduino. He connected me and two of his students to Ted Tagami of Magnitude.io and we were all connected with Dr. Elizabeth Basha and her students at University of the Pacific. The CanSat project was eventually launched into low-Earth orbit in November 2019.", 50 - "project.cansat.link": "More Information", 51 - 52 - "project.fourwoods.skills": "Adobe Audition, Scriptwriting, Directing for Voiceover", 53 - "project.fourwoods.title": "The Four Woods Podcast", 54 - "project.fourwoods.description": "An audio drama podcast about myth and magic - Writer, Director, Editor, Producer", 55 - "project.fourwoods.long-description": "The Four Woods Podcast, part of my senior project for my Media X degree at University of the Pacific, is an audio drama podcast about Ross Hansen, a 16-year-old kid who attends magical high school for the first time in his life after meeting his parents who he hasn't seen for thirteen years. A pilot episode of the podcast is currently available wherever you get your podcasts with more on the way in the coming months.", 56 - "project.fourwoods.link.anchor": "Anchor.FM Page", 57 - "project.fourwoods.link.apple": "Apple Podcasts Page", 58 - "project.fourwoods.link.spotify": "Spotify Link", 59 - "project.fourwoods.link.google": "Google Podcasts Page", 60 - 61 - "projects.title": "Projects", 62 - "projects.skills.label": "Skills:", 63 - 64 - "about.quote": "\"Creativity is an energy. It's a precious energy, and it's something to be protected. A lot of people take for granted that they're a creative person, but I know from experience, feeling it in myself, it is a magic; it is an energy. And it can't be taken for granted.\" --Ava DuVernay", 65 - 66 - "about.bio": "Every person is a story, and storyteller Cass Unterholzner is no different. They have been telling stories since they were younger. Their creative cravings have been sought after through !1[**short films**], !2[**acting**] and playing music in !2[**musical theatre**], !3[**developing**] and critiquing !3[**video games**], and !4[**writing**] and !4[**recording music**].\n\n\n\nCass is currently producing an !2[**audio drama podcast**] titled The Four Woods Podcast after developing it as a serial novel story with inspirations from the Harry Potter and Percy Jackson novels.\n\n\n\nEven before entering high school, Cass participated in the !1[**\"Go Film!\"**] workshop at the San Joaquin County Office of Education in Stockton, California learning about !1[**camera**], !1[**lighting**], and !1[**sound techniques**]. They worked with other teens to create and release a !1[**short film**], as the !1[**Gaffer**], the !1[**Foley Artist**], and a !1[**Sound Editor**]. In high school, Cass took a class expanding their !1[**film**] knowledge in creating the school's announcements. After graduating, they started a !1[**YouTube channel**] where they posted !1[**short videos**].\n\n\n\nAlong with working in !1[**film**], Cass also participated in !2[**musical theatre**]. They appeared in many productions starting in 2007 with !2[**\"Dear Edwina Jr\"**] at Stockton Civic Theatre as well as many !2[**church musicals**]. In 2009, Cass starred in !2[**\"The Music Man\"**] for a senior project in Manteca, California. Later, they were cast as !2[**Professor Quirrel**] and were set to be the !2[**Musical Director**] for a production of !2[**\"A Very Potter Musical\"**] while directing and developing a !2[**Murder Mystery Dinner**] containing mostly improvised scenes.\n\n\n\nCass has always been interested in !3[**video game development and design**] as they played them often throughout their adolescence. This interest flourished and inspired them to major in !3[**Computer Science**], first at San Joaquin Delta College and then University of the Pacific. They ended up switching their major to Media X to further pursue their passions. During their coursework, they worked with classmates to !3[**develop two games**]: a !3[**combat simulator**] for the tabletop role-playing game Dungeons and Dragons and a !3[**bullet-dodging game**] like the video game Cuphead. Cass intends to continue using !3[**video games**] as an alternate form of storytelling in the future.\n\n\n\n!4[**Music**] has always been part of Cass's life. Inspired by their older sister taking lessons, they decided to learn !4[**piano**] at age 5. They later picked up more instruments such as the !4[**clarinet**], the !4[**cello**], and the !4[**guitar**]. Cass was active in his !4[**high school's band**] program where they took to !4[**arranging**] and !4[**writing**] for their school's !4[**wind ensemble**] and !4[**jazz band**]. They also played !4[**cello**] often in college and assisted East Union High School's !2[**theatre class**] in a production of !2[**\"Next to Normal.\"**] In 2019, Cass sent a video of him playing an !4[**original song**] to the University of the Pacific’s student association. This resulted in Cass playing both !4[**original**] and !4[**cover songs**] at their !4[**Brickyard Series concert**]. Cass now writes !4[**indie pop music**] in their spare time.\n\n\n\nCass hopes to further their storytelling career using their !1[**YouTube channel**] talking about !3[**gaming**], !4[**music**], and languages. Their free time consists of learning German, American Sign Language, Spanish, and Italian. When they're not crafting fantasy novels, Cass plays and runs sessions of various tabletop role-playing games for which they hope to develop a podcast in the future.", 67 - 68 - "blog.title": "Personal Blog", 69 - "blog.description": "Random postings, news, and other thoughts coming soon!", 70 - 71 - "nav.previous": "Prev", 72 - "nav.portfolio": "Portfolio", 73 - "nav.next": "Next", 74 - 75 - "nav.page.1": "Page 1", 76 - "nav.page.2": "Page 2", 77 - "nav.page.3": "Page 3", 78 - "nav.page.4": "Page 4", 79 - "nav.page.20": "Page 20", 80 - 81 - "blog.post.streamschedulepodcastupdate.title": "Another Stream Schedule and Podcast Update", 82 - "blog.post.streamschedulepodcastupdate.author": "Cass Forest", 83 - "blog.post.streamschedulepodcastupdate.date": "2022 February 6", 84 - "blog.post.streamschedulepodcastupdate.content": "Hey everyone! This blog post, much like the film adaptation of Mockingjay by Susanne Collins, comes to you in two parts.\n\n### Part 1: Stream Schedule\n\nHere is the stream schedule for this upcoming week. Enjoy!\n\n![Stream schedule for February 7-11. All streams are at 1:00 pm PST. Monday's stream is Pokemon GenLocke: FireRed with a re-run at 11:15 am PST. Wednesday's stream is The Legend of Zelda: Majora's Mask with a re-run at 11:10 am PST. Thursday's stream is Fire Emblem: Three Houses with a re-run at 11:25 am PST. Friday's stream is Octopath Traveler with a re-run at 11:15 am PST.](https://imgur.com/LsJv53H.png)\n\n---\n\n### Part 2: The Four Woods Podcast Update\n\nLast week I said that I was getting together a budget for the continued production of my audio drama podcast, [The Four Woods Podcast](https://beacons.page/4woodspodcast). Well, I have since made a mock-up budget and am getting ready to start sending out a request for writers to join the project. The budget hasn't changed that much from my projections last week, so I'll still want to raise a lot of money for this project, most of which will be going to the actors. Any donations made to my Twitch page in which the donator requests that the money received be put towards the podcast (this includes subscriptions and bits) as well as donations made through my StreamElements donation page in which the donator requests that the money donated be put towards the podcast will be put to the side and will count towards that goal that I mentioned last week. Any of my Ko-Fi donations in which the donator requests that the money go towards the podcast will also be set aside similarly. I really hope I get to continue making this podcast as I had a lot of fun creating it last year.\n\n---\n\nIn any case, that's all for me on this post. I'll see you over on Twitch or wherever else I happen to be!", 85 - "blog.post.streamschedulepodcastupdate.description": "The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast", 86 - 87 - "blog.post.streamscheduleandbudgetupdate.title": "Stream Schedule and an Update!", 88 - "blog.post.streamscheduleandbudgetupdate.author": "Cass Forest", 89 - "blog.post.streamscheduleandbudgetupdate.date": "2022 January 30", 90 - "blog.post.streamscheduleandbudgetupdate.content": "Hey everyone! Here's a new stream schedule for this week. I'm going to keep publishing my stream schedules here as I make them but I still want to do more with this blog. If you have any ideas, let me know down below in the comments. Anyway, onto the stream schedule!\n\n![Stream schedule for January 31-Feburary 5. All streams are at 1:00 pm PST. Monday's stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday's stream is Majora's Mask with a re-run at 10:55 am PST. Thursday's stream is Fire Emblem: Three Houses with a re-run at 10:50 am PST. Friday's stream is Octopath Traveler with a re-run at 11:05 am PST. Saturday's stream is Minecraft with my friend KniightRyder with a re-run at 10:50 am PST.](https://imgur.com/et1MeD7.png)\n\nThat's all from me in this post, see you over on Twitch!\n\n---\n\n### Update on the Four Woods Podcast\n\nHey! I have an update on my audio drama podcast, The Four Woods Podcast. I've done some research and I'm moving forward in the pre-production process for season 1 of the show. Right now, all I've got is a budget outline for how much I'm going to need to raise to pay the actors, the writers that I'm going to bring on, the editors that I'm going to bring on (that's audio editors, not script editors), as well as myself. It's currently looking to be around $15,000, but I don't have exact numbers yet, and I won't have exact numbers until I figure out some specific things like any characters that I'm going to need to add for later episodes in the season. I'm considering making a Patreon, but I already have my [Ko-Fi](https://ko-fi.com/cityboundforest) set up and it can take monthly donations, so I'm tempted to use that instead. Let me know which you'd rather me use (Patreon or Ko-Fi) in the comments below.Any money coming in through Ko-Fi with the express mention of the podcast will go to the podcast (and if I make a Patreon, I'll put some percentage that I'll figure out later into the podcast); otherwise, it'll just go to me through my usual channels (similar to my Twitch subscriptions or StreamElements tips). In any case, things are looking up for the podcast and I'm excited to see where things are going to go. Keep an eye out on this space as well as my other socials to hear more about this and I'll see you later!!!", 91 - "blog.post.streamscheduleandbudgetupdate.description": "This week's stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast", 92 - 93 - "blog.post.thirdstreamschedule.title": "Another New Stream Schedule!", 94 - "blog.post.thirdstreamschedule.author": "Cass Forest", 95 - "blog.post.thirdstreamschedule.date": "2022 January 23", 96 - "blog.post.thirdstreamschedule.content": "Hey everyone! I'm back with another stream schedule! Also I've found that I've started to use this blog just to post my stream schedules and other creative updates and while I certainly want to keep doing that, I feel like it has a bigger purpose than that, but I haven't necessarily figured out what that is yet.\n\nAnyways, here's the stream schedule!\n\n![Stream schedule for January 24 - 28. All streams are at 1:00 pm PST. Monday's stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:25 am PST. Wednesday's stream is Majora's Mask with a re-run at 11:05 am PST. Thursday's stream is Fire Emblem: Three Houses with a re-run at 11:10 am PST. Friday's stream is Octopath Traveler with a re-run at 11:10 am PST.](https://imgur.com/3fRnOvI.png)\N\NThat's all from me for this post, see you over on Twitch!", 97 - "blog.post.thirdstreamschedule.description": "Another stream schedule for this upcoming week.", 98 - 99 - "blog.post.secondstreamschedule.title": "New Stream schedule!", 100 - "blog.post.secondstreamschedule.author": "Cass Forest", 101 - "blog.post.secondstreamschedule.date": "2022 January 16", 102 - "blog.post.secondstreamschedule.content": "Hello everyone! I'm back with another stream schedule!\n\n![Stream schedule for January 17-22. All streams are at 1:00 pm PST. Monday's stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:10 am PST. Wednesday's stream is The Legend of Zelda: Majora's Mask with a re-run at 10:35 am PST. Thursday's stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday's stream is Octopath Traveler with a re-run at 10:55 am PST. Saturday's stream is Minecraft with my friend KniightRyder with a re-run at 11:20 am PST.](https://imgur.com/UacPMso.png)\n\nThat's all from me for now, see you over on Twitch!", 103 - "blog.post.secondstreamschedule.description": "My new stream schedule for this upcoming week.", 104 - 105 - "blog.post.streamschedule_updates.title": "Stream Schedule and Updates!", 106 - "blog.post.streamschedule_updates.author": "Cass Forest", 107 - "blog.post.streamschedule_updates.date": "2022 January 09", 108 - "blog.post.streamschedule_updates.content": "Hello everyone! I'm back with some more announcements!\n\n#### !1[**Twitch Stream Schedule**]\n\nI have a new stream schedule for this week! Here it is!\n\n![Stream schedule for January 10-14. All streams are at 1:00 pm PST. Monday's stream is a Pokemon GenLocke starting with Pokemon FireRed. Wednesday's stream is The Legend of Zelda: Majora's Mask with a re-run at 11:05 am PST. Thursday's stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday's stream is Octopath Traveler with a re-run at 11:00 am PST.](https://imgur.com/zVuuK6D.png)\n\n#### Podcasts\n\nI'm currently trying to work on editing together a D&D actual play podcast surrounding the Skull & Shackles Adventure Path written for Pathfinder 1st Edition (although we play in Pathfinder 2nd Edition). Since I'm the only editor on the project and it's not my only priority (as streaming takes up most of my time alongside finding a stable job), it's been taking me a while to edit the first episode, but when it comes out, you'll be able to get an update here on my blog as well as on all of my social media accounts. The problem with me being the only editor on the project is that I *also* run the game and we're also like 20 sessions in. And we're starting sessions back up this upcoming week. So I have a lot of work to do on that.\n\nIn any case, I've worked out a kind of budget when it comes to paying the voice actors for my audio drama podcast The Four Woods Podcast. Beyond that, I'll need to, well, ask them whether or not they would be willing to return for the rest of the podcast as well as find writers and editors for the show.\n\n---\n\nIn any case, that's all I've got on this front for blog posts. I'm still wondering what else to put on this blog other than my stream updates and creative updates.", 109 - "blog.post.streamschedule_updates.description": "A new stream schedule and some updates about my creative content.", 110 - 111 - "blog.post.minecraft_stream.title": "Minecraft Stream on Saturday!", 112 - "blog.post.minecraft_stream.author": "Cass Forest", 113 - "blog.post.minecraft_stream.date": "2022 January 05", 114 - "blog.post.minecraft_stream.content": "Hey everyone! This is just a reminder that I'll be streaming this Saturday at 1:00 pm PST on my [Twitch Channel](https://twitch.tv/cityboundforest) playing Minecraft with my friend KniightRyder. Hope to see you there!\n\nMake sure you follow me on Twitch to get notifications for when I go live!", 115 - "blog.post.minecraft_stream.description": "Just a reminder of my upcoming Minecraft stream on Saturday.", 116 - 117 - "blog.post.updates.title": "Updates!", 118 - "blog.post.updates.author": "Cass Forest", 119 - "blog.post.updates.date": "2022 January 02", 120 - "blog.post.updates.content": "Hello everyone! I'm here with some updates for my creative career, and what better place to do it than here, on my blog, which I really haven't used all that much last year since putting it up on my website. In any case, I wanted to make some kind of announcement at the beginning of the year to sort of talk about what I want to do this year and also some goals I'd like to achieve professionally with my content creation.\n\n#### My !1[**YouTube**] and !1[**Twitch**] Channels\n\nI plan to continue streaming as I have been and am actually introducing a new series to my Twitch channel which you'll hear about at the beginning of next week (stay tuned to my Twitter for information on that). I have actually figured out a fix for the weird texture errors I was getting in my Majora's Mask 3D playthrough, so we won't be seeing any more of those when the series returns to my Twitch channel next week.\n\nAs for my YouTube channel, I plan to keep uploading my VODs from Twitch to YouTube like I have been. If you're wondering what I'm talking about, after my Twitch streams are over, I upload recordings of them to my YouTube channel as Unlisted. However, if you want to access them, you can head to the Playlists section on my YouTube channel and browse from there. Anyways, I want to keep doing more covers and keep releasing more videos of me playing music. I have a list of covers I want to get to, but I haven't been able to record any of them as of yet (except for one, which needs to be mixed, mastered, and edited together). I also have written a new song and am looking to get a music video of it done soon so be on the lookout for that on my YouTube channel.\n\n#### My !4[**Music**]\n\nAs I said in the last paragraph, I do have some new music coming out soon. It's been recorded, mixed, mastered--the whole kit and kaboodle. I just need to nail down some details to get a music video together and then you should be hearing it soon. I also have my EP of original music, some of which I released as an EP of demos last year titled [Unweather](https://distrokid.com/hyperfollow/cityboundforest/unweather), and that will be releasing sometime in the middle of the year, I project. It could be earlier, but I have another project that will be coming out first.\n\nRegarding that, that's an EP of some cover songs and while all the music has been recorded and finalized, I'm still working on a small part of the project that will be pretty cool and will involve some interesting pictures, so be on the lookout for that. I'll announce that on all of my socials (including here).\n\n#### Other News\n\nI am working on a number of projects (as always, haha), but some of them that I'll talk about here are The Four Woods Podcast, the Forest Cinema Podcast, and this blog.\n\nStarting with **The Four Woods Podcast**. It's the podcast that I launched last April as part of my senior project for my Media Studies degree. I have said that I do want to continue it past that senior project, and I do, in fact, have plans to do so, I just haven't gotten around to acting on those plans yet. I feel like this podcast is going to be a large project and I'll want to bring on at least a couple of people to do some parts of the podcast that I either find boring or can't do. Also on that note, I want to bring in some other writers with respect to Isaiah's character as a person of color (which I am not). Also just having a writing team that isn't comprised of just me will take a large load off my shoulders as showrunner. More news on The Four Woods Podcast should be coming by April.\n\nMoving onto the **Forest Cinema Podcast**. Most of you likely won't know what I'm talking about. But some of you might. In any case, the Forest Cinema Podcast is a podcast where I take pieces of media and analyze and review them critically from various angles. I've recorded episodes on media such as Hellblade: Senua's Sacrifice and Captain America: Civil War, so be on the lookout for an announcement of when that will be going live. I should be getting those first few episodes out by February.\n\nOnto this blog. Like I said at the beginning of this post, I haven't really used this blog all that much since putting it on my website at the beginning of last year. I want to be more intentional with my creative endeavors, so that means using this thing more often. I'll try to post an update on this blog every week or so talking about the things I've done or am doing that week, projects that are coming up, or announcements of music or podcast releases. Hopefully by the time this post has gone live, I'll have created an RSS link you can follow to get updates from this blog.\n\n---\n\nAnyways, that's it from me for now. I'll see you in the next blog post, or if you want to come talk to me live, I'll be streaming live on my Twitch channel this Saturday at 1:00 pm PST, so you can come by the stream and chat with me then.\n\n**UPDATE**: I have realized since writing this post that I probably should have some kind of comments section on my posts. I will be looking into that in the interim, but for now, feel free to use the contact form on my website here or by contacting me on my various social medias to discuss this blog post.\n\n**2nd Update**: I have sort of obviously added a Disqus comment form down below that will appear underneath all of my blog posts (hopefully the way I set it up works for all of them and they don't duplicate, fingers crossed). We may have some bumps in the road later on, but for now, this is where we're at. Enjoy!", 121 - "blog.post.updates.description": "A small little update on what I'm planning on doing in the coming year.", 122 - 123 - "contact.title": "Contact Me", 124 - "contact.placeholder.name": "Name *", 125 - "contact.placeholder.email": "Email *", 126 - "contact.placeholder.message": "Message *", 127 - "contact.submit": "Submit" 128 - }, 129 - "de": { 130 - "socials.instagram": "Instagram", 131 - "socials.twitter": "Twitter", 132 - "socials.facebook": "Facebook", 133 - "socials.youtube": "YouTube", 134 - "socials.tiktok": "TikTok", 135 - "socials.twitch": "Twitch", 136 - 137 - "menu.showcase": "Projekte", 138 - "menu.blog": "Blog", 139 - "menu.about": "Biographie", 140 - "menu.contact": "Kontaktieren", 141 - 142 - "title": "CityboundForest", 143 - "title.message": "Hallo ich bin **Cass Unterholzner.** \nIch bin Geschichtenerzähler, wer mit !1[**Film**], !2[**Theatre**], !3[**Videospiele**], und !4[**Musik**] arbeiten bin.", 144 - 145 - "footer.copyright": "© Copyright Cass Unterholzner 2020.", 146 - 147 - "project.mememachine.skills": "Python, Python Reddit Aggregator Wrapper (PRAW), ImgurPython", 148 - "project.mememachine.title": "Meme Machine", 149 - "project.mememachine.description": "Meme herunterladen, bewerten, und machen - Programmierer", 150 - "project.mememachine.long-description": "Die Ortsgruppe der Universität des Pazifiks der Vereinigung für Computer Maschinen schaffte ein Projekt in March 2017, das Meme von verschiedenen Social Media Seiten herunterladen und ansammeln einschießlich Reddit, Imgur, Tumblr, und Imgflip benutzend Python und Haskell. Es enthielt einen Plan zum schreiben eines Moduls, das Ratings sammeln und den Daten als Eingang für maschinellem Lernen benutzen würd, um zu seine eignen Meme schaffen.", 151 - "project.mememachine.link": "GitHub Repository", 152 - 153 - "project.shutin.skills": "Final Cut Pro X, Adobe Premiere Pro, Foley-Kunst, Beleuchtung Aufbau", 154 - "project.shutin.title": "Shut In", 155 - "project.shutin.description": "Kurzfilm - Gaffer, Foley-Künstler, Tonmeister", 156 - "project.shutin.long-description": "Das Büro von Ausbildung des San-Joaquin-Landkreis hatte einen Workshop für Filmgestaltung dauernd zwei Wochen in Juni 2012. Nach einem Tag gefüllten Filmen in einer Tagesstätte in Manteca, CA, die Crew hat den Film vor einem volles Haus erstaufgeführt. Die Crew hielt eine QnA-Diskussion mit denen ab, die da war.", 157 - "project.shutin.link": "IMDB Link", 158 - 159 - "project.bulletrush.skills": "Unity, C#, Projektmanagement, agile Entwicklung", 160 - "project.bulletrush.title": "Bullet Rush", 161 - "project.bulletrush.description": "Cuphead kombiniert mit FPS Spiele - Programmierer, Projektleiter", 162 - "project.bulletrush.long-description": "Ich belegte einen Kurs genannt „Computer Game Technologies“ an der Uniersität des Pazifiks im Herbst 2019, um zu Videospieldesign und -entwicklung erfahren. Nach machend einen Verkaufsgespräch für unseren Ideen zum Klasse (wie mit meinem Kurs genannt „Application Development“), ich war Projektleiter-Funktion zugewiesen für den Bullet Rush-Team zusammen mit einem Hauptprogrammierer, einem allgemeinem Programmierer, und einem Media-Direktor. Am Ende des Kurses, wir der Gemeinschaft präsentierten für Feedback.", 163 - "project.bulletrush.link": "Bitbucket Respository", 164 - 165 - "project.dndcombatsim.skills": "Java, JavaScript, Projektmanagement", 166 - "project.dndcombatsim.title": "Dungeons and Dragons Combat Simulator", 167 - "project.dndcombatsim.description": "Bekämpfung-Simulator für die fünfte Ausgabe des RPG Dungeons and Dragons - Programmierer, Projektleiter", 168 - "project.dndcombatsim.long-description": "Ich belegte einen Kurs genannt „Application Development“ an der Universität des Pazifiks, um zu lernen, wie man in einem Team arbeitet, um zu einer Anwendung entwickelte. Gruppenweise, wir unsere Abschlussprojekten schlugen vor und unserer Arbeit begannen. Es gaben keinen Positionen, also ich Initiative ergriff, um zu der Projektleiter sein, zusammen mit grundsätzlich Sachen programmieren mit den JSON-Daten und allgemeine Backend-Programmierung.", 169 - "project.dndcombatsim.link": "Ich nehme einen Link hier zum Repository nicht auf, weil wir Daten von 5e.tools benutzten haben.", 170 - 171 - "project.cansat.skills": "C++, Arduino", 172 - "project.cansat.title": "CanSat", 173 - "project.cansat.description": "Ein simulierter Satellit in einem Gehäuse mit den Form und Größe des Soda-Doses - Programmierer", 174 - "project.cansat.long-description": "Während meines dritten Highschooljahres, mein Vater kam mir und erzählte, über einen Gelegenheit, um zu ein Projekt umfassend einem simulierter Satellit in einem Gehäuse mit den Form und Größe des Soda-Doses betreibend durch einem Arduino arbeiten. Er verband mir und zwei seines Students mit Ted Tagami von Magnitude.io. Wir waren alle mit Dr. Elizabeth Basha und ihren Schülern an der Universität des Pazifiks verbunden. Das CanSat-Projekt wurde in eine erdnahe Umlaufbahn in November 2019 gebracht.", 175 - "project.cansat.link": "Weitere Informationen", 176 - 177 - "project.fourwoods.skills": "Adobe Audition, Drehbuchschreiben, Bei Voiceover Regie führen", 178 - "project.fourwoods.title": "The Four Woods Podcast", 179 - "project.fourwoods.description": "Ein Hörspiel-Podcast über Mythos und Zauber - Autor, Regisseur, Toncutter, Produzent", 180 - "project.fourwoods.long-description": "Das Four Woods Podcast--eine Folge meines Abschlussprojekt für meinem Abschluss in Media X an der Universität des Pazifiks--ist ein Hörspiel über Ross Hansen, ein sechzehnjähriges Kind, der ein Zauberhighschool zum ersten Mal zu seinem Leben besucht, nach kennenlernend seinem Eltern, die er nicht seit dreizehn Jahren sehen hat. Eine Pilot-Folge des Podcasts ist zurzeit verfügbar wo du deine Podcasts erhälst, mit mehr auf dem Weg in der folgende Monate.", 181 - "project.fourwoods.link.anchor": "Anchor.FM Seite", 182 - "project.fourwoods.link.apple": "Apple Podcasts Seite", 183 - "project.fourwoods.link.spotify": "Spotify Link", 184 - "project.fourwoods.link.google": "Google Podcasts Seite", 185 - 186 - "projects.title": "Projekte", 187 - "projects.skills.label": "Können:", 188 - 189 - "about.quote": "„Kreativität ist eine Energie. Es ist eine kostbare Energie, und es ist etwas, die geschützt sein soll. Vielen Menschen hält es für selbstverständlich, dass sie eine kreative Person sind, aber ich erfahrungsgemäß weiß--fühlend es für mir selbst--es ist eine Magie; es ist eine Energie. Und es für selbsverständlich nicht gehalten kann.“ --Ava DuVernay", 190 - 191 - "about.bio": "Jeder Person ist ein Geschicht, und der Geschichtenerzähler namens Cass Unterholzner nicht unterschiedlich ist. Er hat sein erzählen Geschichten seit er junger ist. Seine kreativen Begierden hatte gewesen getrachtet nach durch !1[**kurzen Filmen**], !2[**Schauspielerei**] und spielend Musik in !2[**Musiktheatre**], !3[**entwickelnd**] und besprechend !3[**Videospiele**], und !4[**schreibend**] und !4[**nehmend Musik auf**].\n\n\n\nCass schafft ein !2[**Hörspiel-Podcast**] namens „The Four Woods Podcast“, nach entwickelnd es, wie einer Fortsetzungsroman mit Inspirationen von den Romane namens Harry Potter und Percy Jackson.\n\n\n\nAuch bevor beginnend Highschool, Cass hatte in dem Workshop namens !1[**„Go Film“**] teil am San Joaquin Landkreis Büro der Ausbildung in Stockton, Kalifornien, um zu über !1[**Kamera-**], !1[**Beleuchtung-**], und !1[**Ton-Techniken**] lernen.Er arbeitete mit anderen Teenager, um zu einem !1[**kurzen Film**] schaffen und veröffentlichen. Seine Rollen waren der !1[**Oberbeleuchter**], der !1[**Geräuschemacher**], und einen !1[**Tonmeister**]. In Highschool, Cass belegte eine Klasse, um zu mehr über !1[**Film**] lernen und die Ankündigungen der Schule schaffen. Nach seinem Abitur, er einem !1[**YouTube-Kannal**] begann, wo er !1[**kurzer Videos**] veröffentlichte.\n\n\n\nNebst arbeitend in !1[**Film**], Cass nahm auch in !2[**Musiktheater**] teil. Er war in viele Produktionen beginnend in 2007 mit !2[**„Dear Edwina Jr“**] am Stockton Bügerlich Theatre, sowie viele !2[**Musicals an seiner Kirche**]. In 2009, Cass spielte eine Hauptrolle in !2[**„Der Musik-Mann“**] für Abschlussprojekt jemandes in Manteca, Kalifornien. Später, er wurde als !2[**Professor Quirrel**] besetzt und würde der !2[**musikalicher Leiter**] sein für eine Produktion von !2[**„A Very Potter Musical“**], während inszenierend und entwickelnd ein !2[**Kriminalstück-Abendessen**] enthaltend meistens improvisierten Szene.\n\n\n\nCass habe immer sich für !3[**Videospiel-Entwicklung und -Design**] interessiert, weil er sie oft im Verlauf von seinem Jugend spielte. Dieses Interesse florierte und inspirierte sich !3[**Informatik**] für seinem Hauptfach zu wählen, erste am San Joaquin Delta College und dann an der Universität des Pazifiks. Er änderte schließlich sein Hauptfach zum Media X, um zu nach seinen Leidenschaften streben. Während seiner Kursarbeit, er arbeitete mit Mitschüler, um zu !3[**zwei Videospiele entwickeln**]: ein !3[**Bekämpfung-Simulator**] für dem Tischplätte Rollenspiel namens Kerker und Drachen und ein !3[**Spiel, wo weichst Geschosse aus du**] wie das Videospiel namens Cuphead. Cass beabsichtigt !3[**Videospiel**] als ein alternativen Form von Erzählkunst in der Zukunft verwenden fortsetzten.\n\n\n\n!4[**Musik**] habe immer Leben des Cass gehört. Er war von seiner Schwester inspiriert und entscheid !4[**Piano**] zu lernen, wenn er 5 Jahre alt war. Er lernte später mehr Instrumenten, wie z.B. die !4[**Klarinette**], das !4[**Cello**], und die !4[**Gitarre**]. Cass war aktiv in der !4[**Band-Programm seines Highschool**], wo er Musik für dem !4[**Bläserensemble**] und der !4[**Jazzband**] seines HIghschool !4[**arrangierte**] und !4[**schreibte**]. Er spielte auch oft !4[**Cello**] an Universität und unterstützte die !2[**Theatreklasse**] am East Union Highschool mit ihrer Produktion von !2[**„Next to Normal“**]. In 2019, Cass schickte ein Video von sich, wo er einen !4[**Originalsong**] spielte, zum der Studentenorganisation des Universität des Pazifiks. Nach das, Cass spielte beide [!4[**Original-**] und !4[**Coversongs**] an ihrem !4[**Brickyard-Konzert**]. Cass schreibt jetzt !4[**Indie-Popmusik**] in seiner Freizeit.\n\n\n\nCass hofft seinen Beruf in Erzählkunst fördern mit seinem !1[**YouTube-Kannal**] sprechend über !3[**spielend**], !4[**Musik**], und Sprachen. Seine Freizeit besteht aus erlernend Deutsch, amerikanischer Gebärdensprache, Spanisch, und Italienisch. Wann er Fantasy-Romane nicht erstellt, Cass spielt und führt Sitzungen verschiedener Tischplätte Rollenspiel, die er wofür ein Podcast in der Zukunft entwickeln hofft.", 192 - 193 - "blog.title": "Persönlicher Blog", 194 - "blog.description": "Zufällige Beiträge, Nachrichten, und andere Gedanken: kommen bald!", 195 - 196 - "nav.previous": "Vor", 197 - "nav.portfolio": "Portfolio", 198 - "nav.next": "Nächste", 199 - 200 - "nav.page.1": "Seite 1", 201 - "nav.page.2": "Seite 2", 202 - "nav.page.3": "Seite 3", 203 - "nav.page.4": "Seite 4", 204 - "nav.page.20": "Seite 20", 205 - 206 - "blog.post.1.title": "", 207 - "blog.post.1.author": "", 208 - "blog.post.1.date": "", 209 - "blog.post.1.text": "", 210 - 211 - "blog.post.2.title": "", 212 - "blog.post.2.author": "", 213 - "blog.post.2.date": "", 214 - "blog.post.2.text": "", 215 - 216 - "blog.post.3.title": "", 217 - "blog.post.3.author": "", 218 - "blog.post.3.date": "", 219 - "blog.post.3.text": "", 220 - 221 - "contact.title": "Kontaktiere mich", 222 - "contact.placeholder.name": "Namen *", 223 - "contact.placeholder.email": "E-Mail *", 224 - "contact.placeholder.message": "Nachrichten *", 225 - "contact.submit": "Abschiken" 226 - } 227 - };
-117
old/scripts/main.js
··· 1 - var update_texts = function() { $('body').i18n(); }; 2 - var get_lang_code = function(el) { return el.attributes["data-locale"].value; }; 3 - 4 - jQuery(document).ready(function($){ 5 - var isLateralNavAnimating = false; 6 - 7 - //open/close lateral navigation 8 - $('.cd-nav-trigger').on('click', function(event){ 9 - event.preventDefault(); 10 - //stop if nav animation is running 11 - if( !isLateralNavAnimating ) { 12 - if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 13 - 14 - $('body').toggleClass('navigation-is-open'); 15 - $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){ 16 - //animation is over 17 - isLateralNavAnimating = false; 18 - }); 19 - } 20 - }); 21 - 22 - $.i18n().parser = { 23 - parse: function(message, parameters) { 24 - var newmsg = message.replace(/\$(\d+)/g, function (str, match) { 25 - var index = parseInt(match, 10) - 1; 26 - return parameters[index] !== undefined ? parameters[index] : '$' + match; 27 - }); 28 - 29 - var converter = new showdown.Converter(); 30 - var convertedMsg = converter.makeHtml(newmsg).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 31 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 32 - 33 - return convertedMsg.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/\-".!']+)\]/gm, function(str, numMatch, innerText) { 34 - var num = parseInt(numMatch, 10) - 1; 35 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 36 - }); 37 - }, 38 - emitter: {} 39 - }; 40 - 41 - $.i18n().load(language_data); 42 - 43 - if (localStorage.getItem('locale') !== null) { 44 - $.i18n().locale = localStorage.getItem('locale'); 45 - var arr = $('.lang-switch-parent'); 46 - 47 - for (var i = 0; i < arr.length; i++) { 48 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 49 - if (!arr[i].classList.contains('active')) { 50 - arr[i].classList.add('active'); 51 - } 52 - } else { 53 - if (arr[i].classList.contains('active')) { 54 - arr[i].classList.remove('active'); 55 - } 56 - } 57 - } 58 - } 59 - 60 - update_texts(); 61 - 62 - $('.lang-switch').click(function(e) { 63 - e.preventDefault(); 64 - $.i18n().locale = $(this).data('locale'); 65 - update_texts(); 66 - localStorage.setItem('locale', $(this).data('locale')); 67 - var arr = $('.lang-switch-parent'); 68 - 69 - for (var i = 0; i < arr.length; i++) { 70 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 71 - if (!arr[i].classList.contains('active')) { 72 - arr[i].classList.add('active'); 73 - } 74 - } else { 75 - if (arr[i].classList.contains('active')) { 76 - arr[i].classList.remove('active'); 77 - } 78 - } 79 - } 80 - }); 81 - }); 82 - 83 - ! function(a) { 84 - "use strict"; 85 - a(document).ready(function() { 86 - function b() { 87 - window.location = i 88 - } 89 - var e = a(".site-title"), 90 - f = a("body"); 91 - setTimeout(function() { 92 - f.addClass("loaded") 93 - }, 150); 94 - var g = a(".project-assets").children("div"); 95 - a.each(g, function(b, c) { 96 - var d = a(this); 97 - d.imagesLoaded(function() { 98 - setTimeout(function() { 99 - d.addClass("loaded") 100 - }, 50 + 150 * b) 101 - }) 102 - }); 103 - var h = a(".projects-feed .project"); 104 - a.each(h, function(b, c) { 105 - var d = a(this); 106 - d.imagesLoaded(function() { 107 - setTimeout(function() { 108 - d.addClass("loaded") 109 - }, 50 + 50 * b) 110 - }) 111 - }); 112 - var i; 113 - a("a").on("click", function(a) { 114 - return "" == this.href || null == this.href ? void a.preventDefault() : void(-1 == this.href.indexOf("#") && -1 == this.href.indexOf("mailto:") && -1 == this.href.indexOf("javascript:") && "_blank" != this.target && (a.preventDefault(), i = this.href, f.removeClass("loaded"), setTimeout(b, 250))) 115 - }) 116 - }) 117 - }(window.jQuery);
-542
old/scripts/modernizr.js
··· 1 - 2 - window.Modernizr = function(a, b, c) { 3 - function d(a) { 4 - t.cssText = a 5 - } 6 - 7 - function e(a, b) { 8 - return d(x.join(a + ";") + (b || "")) 9 - } 10 - 11 - function f(a, b) { 12 - return typeof a === b 13 - } 14 - 15 - function g(a, b) { 16 - return !!~("" + a).indexOf(b) 17 - } 18 - 19 - function h(a, b) { 20 - for (var d in a) { 21 - var e = a[d]; 22 - if (!g(e, "-") && t[e] !== c) return "pfx" == b ? e : !0 23 - } 24 - return !1 25 - } 26 - 27 - function i(a, b, d) { 28 - for (var e in a) { 29 - var g = b[a[e]]; 30 - if (g !== c) return d === !1 ? a[e] : f(g, "function") ? g.bind(d || b) : g 31 - } 32 - return !1 33 - } 34 - 35 - function j(a, b, c) { 36 - var d = a.charAt(0).toUpperCase() + a.slice(1), 37 - e = (a + " " + z.join(d + " ") + d).split(" "); 38 - return f(b, "string") || f(b, "undefined") ? h(e, b) : (e = (a + " " + A.join(d + " ") + d).split(" "), i(e, b, c)) 39 - } 40 - 41 - function k() { 42 - o.input = function(c) { 43 - for (var d = 0, e = c.length; e > d; d++) E[c[d]] = c[d] in u; 44 - return E.list && (E.list = !!b.createElement("datalist") && !!a.HTMLDataListElement), E 45 - }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), o.inputtypes = function(a) { 46 - for (var d, e, f, g = 0, h = a.length; h > g; g++) u.setAttribute("type", e = a[g]), d = "text" !== u.type, d && (u.value = v, u.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(e) && u.style.WebkitAppearance !== c ? (q.appendChild(u), f = b.defaultView, d = f.getComputedStyle && "textfield" !== f.getComputedStyle(u, null).WebkitAppearance && 0 !== u.offsetHeight, q.removeChild(u)) : /^(search|tel)$/.test(e) || (d = /^(url|email)$/.test(e) ? u.checkValidity && u.checkValidity() === !1 : u.value != v)), D[a[g]] = !!d; 47 - return D 48 - }("search tel url email datetime date month week time datetime-local number range color".split(" ")) 49 - } 50 - var l, m, n = "2.6.2", 51 - o = {}, 52 - p = !0, 53 - q = b.documentElement, 54 - r = "modernizr", 55 - s = b.createElement(r), 56 - t = s.style, 57 - u = b.createElement("input"), 58 - v = ":)", 59 - w = {}.toString, 60 - x = " -webkit- -moz- -o- -ms- ".split(" "), 61 - y = "Webkit Moz O ms", 62 - z = y.split(" "), 63 - A = y.toLowerCase().split(" "), 64 - B = { 65 - svg: "http://www.w3.org/2000/svg" 66 - }, 67 - C = {}, 68 - D = {}, 69 - E = {}, 70 - F = [], 71 - G = F.slice, 72 - H = function(a, c, d, e) { 73 - var f, g, h, i, j = b.createElement("div"), 74 - k = b.body, 75 - l = k || b.createElement("body"); 76 - if (parseInt(d, 10)) 77 - for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : r + (d + 1), j.appendChild(h); 78 - return f = ["&#173;", '<style id="s', r, '">', a, "</style>"].join(""), j.id = r, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = q.style.overflow, q.style.overflow = "hidden", q.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), q.style.overflow = i), !!g 79 - }, 80 - I = function() { 81 - function a(a, e) { 82 - e = e || b.createElement(d[a] || "div"), a = "on" + a; 83 - var g = a in e; 84 - return g || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(a, ""), g = f(e[a], "function"), f(e[a], "undefined") || (e[a] = c), e.removeAttribute(a))), e = null, g 85 - } 86 - var d = { 87 - select: "input", 88 - change: "input", 89 - submit: "form", 90 - reset: "form", 91 - error: "img", 92 - load: "img", 93 - abort: "img" 94 - }; 95 - return a 96 - }(), 97 - J = {}.hasOwnProperty; 98 - m = f(J, "undefined") || f(J.call, "undefined") ? function(a, b) { 99 - return b in a && f(a.constructor.prototype[b], "undefined") 100 - } : function(a, b) { 101 - return J.call(a, b) 102 - }, Function.prototype.bind || (Function.prototype.bind = function(a) { 103 - var b = this; 104 - if ("function" != typeof b) throw new TypeError; 105 - var c = G.call(arguments, 1), 106 - d = function() { 107 - if (this instanceof d) { 108 - var e = function() {}; 109 - e.prototype = b.prototype; 110 - var f = new e, 111 - g = b.apply(f, c.concat(G.call(arguments))); 112 - return Object(g) === g ? g : f 113 - } 114 - return b.apply(a, c.concat(G.call(arguments))) 115 - }; 116 - return d 117 - }), C.flexbox = function() { 118 - return j("flexWrap") 119 - }, C.flexboxlegacy = function() { 120 - return j("boxDirection") 121 - }, C.canvas = function() { 122 - var a = b.createElement("canvas"); 123 - return !!a.getContext && !!a.getContext("2d") 124 - }, C.canvastext = function() { 125 - return !!o.canvas && !!f(b.createElement("canvas").getContext("2d").fillText, "function") 126 - }, C.webgl = function() { 127 - return !!a.WebGLRenderingContext 128 - }, C.touch = function() { 129 - var c; 130 - return "ontouchstart" in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : H(["@media (", x.join("touch-enabled),("), r, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function(a) { 131 - c = 9 === a.offsetTop 132 - }), c 133 - }, C.geolocation = function() { 134 - return "geolocation" in navigator 135 - }, C.postmessage = function() { 136 - return !!a.postMessage 137 - }, C.websqldatabase = function() { 138 - return !!a.openDatabase 139 - }, C.indexedDB = function() { 140 - return !!j("indexedDB", a) 141 - }, C.hashchange = function() { 142 - return I("hashchange", a) && (b.documentMode === c || b.documentMode > 7) 143 - }, C.history = function() { 144 - return !!a.history && !!history.pushState 145 - }, C.draganddrop = function() { 146 - var a = b.createElement("div"); 147 - return "draggable" in a || "ondragstart" in a && "ondrop" in a 148 - }, C.websockets = function() { 149 - return "WebSocket" in a || "MozWebSocket" in a 150 - }, C.rgba = function() { 151 - return d("background-color:rgba(150,255,150,.5)"), g(t.backgroundColor, "rgba") 152 - }, C.hsla = function() { 153 - return d("background-color:hsla(120,40%,100%,.5)"), g(t.backgroundColor, "rgba") || g(t.backgroundColor, "hsla") 154 - }, C.multiplebgs = function() { 155 - return d("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(t.background) 156 - }, C.backgroundsize = function() { 157 - return j("backgroundSize") 158 - }, C.borderimage = function() { 159 - return j("borderImage") 160 - }, C.borderradius = function() { 161 - return j("borderRadius") 162 - }, C.boxshadow = function() { 163 - return j("boxShadow") 164 - }, C.textshadow = function() { 165 - return "" === b.createElement("div").style.textShadow 166 - }, C.opacity = function() { 167 - return e("opacity:.55"), /^0.55$/.test(t.opacity) 168 - }, C.cssanimations = function() { 169 - return j("animationName") 170 - }, C.csscolumns = function() { 171 - return j("columnCount") 172 - }, C.cssgradients = function() { 173 - var a = "background-image:", 174 - b = "gradient(linear,left top,right bottom,from(#9f9),to(white));", 175 - c = "linear-gradient(left top,#9f9, white);"; 176 - return d((a + "-webkit- ".split(" ").join(b + a) + x.join(c + a)).slice(0, -a.length)), g(t.backgroundImage, "gradient") 177 - }, C.cssreflections = function() { 178 - return j("boxReflect") 179 - }, C.csstransforms = function() { 180 - return !!j("transform") 181 - }, C.csstransforms3d = function() { 182 - var a = !!j("perspective"); 183 - return a && "webkitPerspective" in q.style && H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) { 184 - a = 9 === b.offsetLeft && 3 === b.offsetHeight 185 - }), a 186 - }, C.csstransitions = function() { 187 - return j("transition") 188 - }, C.fontface = function() { 189 - var a; 190 - return H('@font-face {font-family:"font";src:url("https://")}', function(c, d) { 191 - var e = b.getElementById("smodernizr"), 192 - f = e.sheet || e.styleSheet, 193 - g = f ? f.cssRules && f.cssRules[0] ? f.cssRules[0].cssText : f.cssText || "" : ""; 194 - a = /src/i.test(g) && 0 === g.indexOf(d.split(" ")[0]) 195 - }), a 196 - }, C.generatedcontent = function() { 197 - var a; 198 - return H(["#", r, "{font:0/0 a}#", r, ':after{content:"', v, '";visibility:hidden;font:3px/1 a}'].join(""), function(b) { 199 - a = b.offsetHeight >= 3 200 - }), a 201 - }, C.video = function() { 202 - var a = b.createElement("video"), 203 - c = !1; 204 - try { 205 - (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) 206 - } catch (d) {} 207 - return c 208 - }, C.audio = function() { 209 - var a = b.createElement("audio"), 210 - c = !1; 211 - try { 212 - (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), c.mp3 = a.canPlayType("audio/mpeg;").replace(/^no$/, ""), c.wav = a.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), c.m4a = (a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;")).replace(/^no$/, "")) 213 - } catch (d) {} 214 - return c 215 - }, C.localstorage = function() { 216 - try { 217 - return localStorage.setItem(r, r), localStorage.removeItem(r), !0 218 - } catch (a) { 219 - return !1 220 - } 221 - }, C.sessionstorage = function() { 222 - try { 223 - return sessionStorage.setItem(r, r), sessionStorage.removeItem(r), !0 224 - } catch (a) { 225 - return !1 226 - } 227 - }, C.webworkers = function() { 228 - return !!a.Worker 229 - }, C.applicationcache = function() { 230 - return !!a.applicationCache 231 - }, C.svg = function() { 232 - return !!b.createElementNS && !!b.createElementNS(B.svg, "svg").createSVGRect 233 - }, C.inlinesvg = function() { 234 - var a = b.createElement("div"); 235 - return a.innerHTML = "<svg/>", (a.firstChild && a.firstChild.namespaceURI) == B.svg 236 - }, C.smil = function() { 237 - return !!b.createElementNS && /SVGAnimate/.test(w.call(b.createElementNS(B.svg, "animate"))) 238 - }, C.svgclippaths = function() { 239 - return !!b.createElementNS && /SVGClipPath/.test(w.call(b.createElementNS(B.svg, "clipPath"))) 240 - }; 241 - for (var K in C) m(C, K) && (l = K.toLowerCase(), o[l] = C[K](), F.push((o[l] ? "" : "no-") + l)); 242 - return o.input || k(), o.addTest = function(a, b) { 243 - if ("object" == typeof a) 244 - for (var d in a) m(a, d) && o.addTest(d, a[d]); 245 - else { 246 - if (a = a.toLowerCase(), o[a] !== c) return o; 247 - b = "function" == typeof b ? b() : b, "undefined" != typeof p && p && (q.className += " " + (b ? "" : "no-") + a), o[a] = b 248 - } 249 - return o 250 - }, d(""), s = u = null, 251 - function(a, b) { 252 - function c(a, b) { 253 - var c = a.createElement("p"), 254 - d = a.getElementsByTagName("head")[0] || a.documentElement; 255 - return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild) 256 - } 257 - 258 - function d() { 259 - var a = r.elements; 260 - return "string" == typeof a ? a.split(" ") : a 261 - } 262 - 263 - function e(a) { 264 - var b = q[a[o]]; 265 - return b || (b = {}, p++, a[o] = p, q[p] = b), b 266 - } 267 - 268 - function f(a, c, d) { 269 - if (c || (c = b), k) return c.createElement(a); 270 - d || (d = e(c)); 271 - var f; 272 - return f = d.cache[a] ? d.cache[a].cloneNode() : n.test(a) ? (d.cache[a] = d.createElem(a)).cloneNode() : d.createElem(a), f.canHaveChildren && !m.test(a) ? d.frag.appendChild(f) : f 273 - } 274 - 275 - function g(a, c) { 276 - if (a || (a = b), k) return a.createDocumentFragment(); 277 - c = c || e(a); 278 - for (var f = c.frag.cloneNode(), g = 0, h = d(), i = h.length; i > g; g++) f.createElement(h[g]); 279 - return f 280 - } 281 - 282 - function h(a, b) { 283 - b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function(c) { 284 - return r.shivMethods ? f(c, a, b) : b.createElem(c) 285 - }, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + d().join().replace(/\w+/g, function(a) { 286 - return b.createElem(a), b.frag.createElement(a), 'c("' + a + '")' 287 - }) + ");return n}")(r, b.frag) 288 - } 289 - 290 - function i(a) { 291 - a || (a = b); 292 - var d = e(a); 293 - return r.shivCSS && !j && !d.hasCSS && (d.hasCSS = !!c(a, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), k || h(a, d), a 294 - } 295 - var j, k, l = a.html5 || {}, 296 - m = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, 297 - n = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, 298 - o = "_html5shiv", 299 - p = 0, 300 - q = {}; 301 - ! function() { 302 - try { 303 - var a = b.createElement("a"); 304 - a.innerHTML = "<xyz></xyz>", j = "hidden" in a, k = 1 == a.childNodes.length || function() { 305 - b.createElement("a"); 306 - var a = b.createDocumentFragment(); 307 - return "undefined" == typeof a.cloneNode || "undefined" == typeof a.createDocumentFragment || "undefined" == typeof a.createElement 308 - }() 309 - } catch (c) { 310 - j = !0, k = !0 311 - } 312 - }(); 313 - var r = { 314 - elements: l.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video", 315 - shivCSS: l.shivCSS !== !1, 316 - supportsUnknownElements: k, 317 - shivMethods: l.shivMethods !== !1, 318 - type: "default", 319 - shivDocument: i, 320 - createElement: f, 321 - createDocumentFragment: g 322 - }; 323 - a.html5 = r, i(b) 324 - }(this, b), o._version = n, o._prefixes = x, o._domPrefixes = A, o._cssomPrefixes = z, o.hasEvent = I, o.testProp = function(a) { 325 - return h([a]) 326 - }, o.testAllProps = j, o.testStyles = H, q.className = q.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (p ? " js " + F.join(" ") : ""), o 327 - }(this, this.document), 328 - function(a, b, c) { 329 - function d(a) { 330 - return "[object Function]" == q.call(a) 331 - } 332 - 333 - function e(a) { 334 - return "string" == typeof a 335 - } 336 - 337 - function f() {} 338 - 339 - function g(a) { 340 - return !a || "loaded" == a || "complete" == a || "uninitialized" == a 341 - } 342 - 343 - function h() { 344 - var a = r.shift(); 345 - s = 1, a ? a.t ? o(function() { 346 - ("c" == a.t ? m.injectCss : m.injectJs)(a.s, 0, a.a, a.x, a.e, 1) 347 - }, 0) : (a(), h()) : s = 0 348 - } 349 - 350 - function i(a, c, d, e, f, i, j) { 351 - function k(b) { 352 - if (!n && g(l.readyState) && (t.r = n = 1, !s && h(), l.onload = l.onreadystatechange = null, b)) { 353 - "img" != a && o(function() { 354 - v.removeChild(l) 355 - }, 50); 356 - for (var d in A[c]) A[c].hasOwnProperty(d) && A[c][d].onload() 357 - } 358 - } 359 - var j = j || m.errorTimeout, 360 - l = b.createElement(a), 361 - n = 0, 362 - q = 0, 363 - t = { 364 - t: d, 365 - s: c, 366 - e: f, 367 - a: i, 368 - x: j 369 - }; 370 - 1 === A[c] && (q = 1, A[c] = []), "object" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = "0", l.onerror = l.onload = l.onreadystatechange = function() { 371 - k.call(this, q) 372 - }, r.splice(e, 0, t), "img" != a && (q || 2 === A[c] ? (v.insertBefore(l, u ? null : p), o(k, j)) : A[c].push(l)) 373 - } 374 - 375 - function j(a, b, c, d, f) { 376 - return s = 0, b = b || "j", e(a) ? i("c" == b ? x : w, a, b, this.i++, c, d, f) : (r.splice(this.i++, 0, a), 1 == r.length && h()), this 377 - } 378 - 379 - function k() { 380 - var a = m; 381 - return a.loader = { 382 - load: j, 383 - i: 0 384 - }, a 385 - } 386 - var l, m, n = b.documentElement, 387 - o = a.setTimeout, 388 - p = b.getElementsByTagName("script")[0], 389 - q = {}.toString, 390 - r = [], 391 - s = 0, 392 - t = "MozAppearance" in n.style, 393 - u = t && !!b.createRange().compareNode, 394 - v = u ? n : p.parentNode, 395 - n = a.opera && "[object Opera]" == q.call(a.opera), 396 - n = !!b.attachEvent && !n, 397 - w = t ? "object" : n ? "script" : "img", 398 - x = n ? "script" : w, 399 - y = Array.isArray || function(a) { 400 - return "[object Array]" == q.call(a) 401 - }, 402 - z = [], 403 - A = {}, 404 - B = { 405 - timeout: function(a, b) { 406 - return b.length && (a.timeout = b[0]), a 407 - } 408 - }; 409 - m = function(a) { 410 - function b(a) { 411 - var b, c, d, a = a.split("!"), 412 - e = z.length, 413 - f = a.pop(), 414 - g = a.length, 415 - f = { 416 - url: f, 417 - origUrl: f, 418 - prefixes: a 419 - }; 420 - for (c = 0; g > c; c++) d = a[c].split("="), (b = B[d.shift()]) && (f = b(f, d)); 421 - for (c = 0; e > c; c++) f = z[c](f); 422 - return f 423 - } 424 - 425 - function g(a, e, f, g, h) { 426 - var i = b(a), 427 - j = i.autoCallback; 428 - i.url.split(".").pop().split("?").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split("/").pop().split("?")[0]]), i.instead ? i.instead(a, e, f, g, h) : (A[i.url] ? i.noexec = !0 : A[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && "css" == i.url.split(".").pop().split("?").shift() ? "c" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function() { 429 - k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), A[i.url] = 2 430 - }))) 431 - } 432 - 433 - function h(a, b) { 434 - function c(a, c) { 435 - if (a) { 436 - if (e(a)) c || (l = function() { 437 - var a = [].slice.call(arguments); 438 - m.apply(this, a), n() 439 - }), g(a, l, b, 0, j); 440 - else if (Object(a) === a) 441 - for (i in h = function() { 442 - var b, c = 0; 443 - for (b in a) a.hasOwnProperty(b) && c++; 444 - return c 445 - }(), a) a.hasOwnProperty(i) && (!c && !--h && (d(l) ? l = function() { 446 - var a = [].slice.call(arguments); 447 - m.apply(this, a), n() 448 - } : l[i] = function(a) { 449 - return function() { 450 - var b = [].slice.call(arguments); 451 - a && a.apply(this, b), n() 452 - } 453 - }(m[i])), g(a[i], l, b, i, j)) 454 - } else !c && n() 455 - } 456 - var h, i, j = !!a.test, 457 - k = a.load || a.both, 458 - l = a.callback || f, 459 - m = l, 460 - n = a.complete || f; 461 - c(j ? a.yep : a.nope, !!k), k && c(k) 462 - } 463 - var i, j, l = this.yepnope.loader; 464 - if (e(a)) g(a, 0, l, 0); 465 - else if (y(a)) 466 - for (i = 0; i < a.length; i++) j = a[i], e(j) ? g(j, 0, l, 0) : y(j) ? m(j) : Object(j) === j && h(j, l); 467 - else Object(a) === a && h(a, l) 468 - }, m.addPrefix = function(a, b) { 469 - B[a] = b 470 - }, m.addFilter = function(a) { 471 - z.push(a) 472 - }, m.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = "loading", b.addEventListener("DOMContentLoaded", l = function() { 473 - b.removeEventListener("DOMContentLoaded", l, 0), b.readyState = "complete" 474 - }, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function(a, c, d, e, i, j) { 475 - var k, l, n = b.createElement("script"), 476 - e = e || m.errorTimeout; 477 - n.src = a; 478 - for (l in d) n.setAttribute(l, d[l]); 479 - c = j ? h : c || f, n.onreadystatechange = n.onload = function() { 480 - !k && g(n.readyState) && (k = 1, c(), n.onload = n.onreadystatechange = null) 481 - }, o(function() { 482 - k || (k = 1, c(1)) 483 - }, e), i ? n.onload() : p.parentNode.insertBefore(n, p) 484 - }, a.yepnope.injectCss = function(a, c, d, e, g, i) { 485 - var j, e = b.createElement("link"), 486 - c = i ? h : c || f; 487 - e.href = a, e.rel = "stylesheet", e.type = "text/css"; 488 - for (j in d) e.setAttribute(j, d[j]); 489 - g || (p.parentNode.insertBefore(e, p), o(c, 0)) 490 - } 491 - }(this, document), Modernizr.load = function() { 492 - yepnope.apply(window, [].slice.call(arguments, 0)) 493 - }, window.matchMedia = window.matchMedia || function(a, b) { 494 - "use strict"; 495 - var c, d = a.documentElement, 496 - e = d.firstElementChild || d.firstChild, 497 - f = a.createElement("body"), 498 - g = a.createElement("div"); 499 - return g.id = "mq-test-1", g.style.cssText = "position:absolute;top:-100em", f.style.background = "none", f.appendChild(g), 500 - function(a) { 501 - return g.innerHTML = '&shy;<style media="' + a + '"> #mq-test-1 { width: 42px; }</style>', d.insertBefore(f, e), c = 42 === g.offsetWidth, d.removeChild(f), { 502 - matches: c, 503 - media: a 504 - } 505 - } 506 - }(document), 507 - function(a) { 508 - "use strict"; 509 - a.picturefill = function() { 510 - for (var b = a.document.getElementsByTagName("div"), c = 0, d = b.length; d > c; c++) 511 - if (null !== b[c].getAttribute("data-picture")) { 512 - for (var e = b[c].getElementsByTagName("div"), f = [], g = 0, h = e.length; h > g; g++) { 513 - var i = e[g].getAttribute("data-media"); 514 - (!i || a.matchMedia && a.matchMedia(i).matches) && f.push(e[g]) 515 - } 516 - var j = b[c].getElementsByTagName("img")[0]; 517 - if (f.length) { 518 - if (!j) { 519 - var k = f.pop(); 520 - j = a.document.createElement("img"), j.alt = b[c].getAttribute("data-alt"), j.className = b[c].getAttribute("data-class"), k.getAttribute("data-width") && (j.width = k.getAttribute("data-width")), b[c].appendChild(j), j.src = k.getAttribute("data-src") 521 - } 522 - } else j && b[c].removeChild(j) 523 - } 524 - }, a.addEventListener ? (a.addEventListener("resize", a.picturefill, !1), a.addEventListener("DOMContentLoaded", function() { 525 - a.picturefill(), a.removeEventListener("load", a.picturefill, !1) 526 - }, !1), a.addEventListener("load", a.picturefill, !1)) : a.attachEvent && a.attachEvent("onload", a.picturefill) 527 - }(this), 528 - function(a) { 529 - "use strict"; 530 - a.addEventListener("load", function() { 531 - var b = !1; 532 - if (a.matchMedia) { 533 - var c = a.matchMedia("only screen and (-moz-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx)"); 534 - c && c.matches && (b = !0) 535 - } 536 - "undefined" != typeof projects && document.images && projects.forEach(function(a, c) { 537 - "undefined" != typeof a.assets && a.assets.forEach(function(a, c) { 538 - b && a.content_url_x2 ? (new Image).src = a.content_url_x2 : a.content_url && ((new Image).src = a.content_url), a.full_url && ((new Image).src = a.full_url) 539 - }) 540 - }) 541 - }) 542 - }(window);
-44
old/scripts/posts.js
··· 1 - var posts = { 2 - updates: { 3 - title: 'blog.post.updates.title', 4 - date: 'blog.post.updates.date', 5 - author: 'blog.post.updates.author', 6 - content: 'blog.post.updates.content' 7 - }, 8 - minecraft_stream: { 9 - title: 'blog.post.minecraft_stream.title', 10 - date: 'blog.post.minecraft_stream.date', 11 - author: 'blog.post.minecraft_stream.author', 12 - content: 'blog.post.minecraft_stream.content' 13 - }, 14 - streamschedule_updates: { 15 - title: 'blog.post.streamschedule_updates.title', 16 - date: 'blog.post.streamschedule_updates.date', 17 - author: 'blog.post.streamschedule_updates.author', 18 - content: 'blog.post.streamschedule_updates.content' 19 - }, 20 - secondstreamschedule: { 21 - title: 'blog.post.secondstreamschedule.title', 22 - date: 'blog.post.secondstreamschedule.date', 23 - author: 'blog.post.secondstreamschedule.author', 24 - content: 'blog.post.secondstreamschedule.content' 25 - }, 26 - thirdstreamschedule: { 27 - title: 'blog.post.thirdstreamschedule.title', 28 - date: 'blog.post.thirdstreamschedule.date', 29 - author: 'blog.post.thirdstreamschedule.author', 30 - content: 'blog.post.thirdstreamschedule.content' 31 - }, 32 - streamscheduleandbudgetupdate: { 33 - title: 'blog.post.streamscheduleandbudgetupdate.title', 34 - date: 'blog.post.streamscheduleandbudgetupdate.date', 35 - author: 'blog.post.streamscheduleandbudgetupdate.author', 36 - content: 'blog.post.streamscheduleandbudgetupdate.content' 37 - }, 38 - streamschedulepodcastupdate: { 39 - title: 'blog.post.streamschedulepodcastupdate.title', 40 - date: 'blog.post.streamschedulepodcastupdate.date', 41 - author: 'blog.post.streamschedulepodcastupdate.author', 42 - content: 'blog.post.streamschedulepodcastupdate.content' 43 - } 44 - };
-177
old/scripts/project-main.js
··· 1 - var update_texts = function() { $('body').i18n(); }; 2 - var get_lang_code = function(el) { return el.attributes["data-locale"].value; }; 3 - var projectNames = ['fourwoods', 'mememachine', 'shutin', 'bulletrush', 'dndcombatsim', 'cansat']; 4 - 5 - function previousProject(event) { 6 - event.preventDefault(); 7 - var projectName = window.location.hash.substr(1); 8 - var anonName = 'project-' + (projectNames.indexOf(projectName) + 1).toString(); 9 - var lastAnonName = 'project-' + projectNames.indexOf(projectName).toString(); 10 - 11 - if (projectNames.indexOf(projectName) == 0) { 12 - window.location = 'portfolio-item.html#' + projectName; 13 - $('html, body').animate({scrollTop: 0}, 250); 14 - } else { 15 - var newProjectName = projectNames[projectNames.indexOf(projectName) - 1]; 16 - window.location = 'portfolio-item.html#' + newProjectName; 17 - $('html, body').animate({scrollTop: 0}, {duration: 250, queue: false}); 18 - $('#' + anonName).animate({opacity: 0}, 125, function() { 19 - $('#' + anonName).removeClass('active-project'); 20 - $('#skills-label').data('i18n', '[html]project.' + newProjectName + '.skills'); 21 - $('#skills-label').i18n(); 22 - $('#' + lastAnonName).animate({opacity: 1}, 125, function() { 23 - $('#' + lastAnonName).addClass('active-project'); 24 - }); 25 - }); 26 - } 27 - } 28 - 29 - function nextProject(event) { 30 - event.preventDefault(); 31 - var projectName = window.location.hash.substr(1); 32 - var anonName = 'project-' + (projectNames.indexOf(projectName) + 1).toString(); 33 - var nextAnonName = 'project-' + (projectNames.indexOf(projectName) + 2).toString(); 34 - 35 - if (projectNames.indexOf(projectName) == (projectNames.length - 1)) { 36 - window.location = 'portfolio-item.html#' + projectName; 37 - $('html, body').animate({scrollTop: 0}, 250); 38 - } else { 39 - var newProjectName = projectNames[projectNames.indexOf(projectName) + 1]; 40 - window.location = 'portfolio-item.html#' + newProjectName; 41 - $('html, body').animate({scrollTop: 0}, {duration: 250, queue: false}); 42 - $('#' + anonName).animate({opacity: 0}, 125, function() { 43 - $('#' + anonName).removeClass('active-project'); 44 - $('#skills-label').data('i18n', '[html]project.' + newProjectName + '.skills'); 45 - $('#skills-label').i18n(); 46 - $('#' + nextAnonName).animate({opacity: 1}, 125, function() { 47 - $('#' + nextAnonName).addClass('active-project'); 48 - }); 49 - }); 50 - } 51 - } 52 - 53 - jQuery(document).ready(function($){ 54 - var isLateralNavAnimating = false; 55 - 56 - //open/close lateral navigation 57 - $('.cd-nav-trigger').on('click', function(event){ 58 - event.preventDefault(); 59 - //stop if nav animation is running 60 - if( !isLateralNavAnimating ) { 61 - if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 62 - 63 - $('body').toggleClass('navigation-is-open'); 64 - $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){ 65 - //animation is over 66 - isLateralNavAnimating = false; 67 - }); 68 - } 69 - }); 70 - 71 - var projectName = 'project-' + (projectNames.indexOf(window.location.hash.substr(1)) + 1).toString(); 72 - 73 - if (!($('#' + projectName).hasClass('active-project'))) { 74 - $('.active-project').removeClass('active-project'); 75 - $('#' + projectName).addClass('active-project'); 76 - } 77 - 78 - $('.button:first-of-type a').click(previousProject); 79 - $('.button:last-of-type a').click(nextProject); 80 - 81 - $.i18n().parser = { 82 - parse: function(message, parameters) { 83 - var newmsg = message.replace(/\$(\d+)/g, function (str, match) { 84 - var index = parseInt(match, 10) - 1; 85 - return parameters[index] !== undefined ? parameters[index] : '$' + match; 86 - }); 87 - 88 - var converter = new showdown.Converter(); 89 - var convertedMsg = converter.makeHtml(newmsg).replace('<p>', '<div>').replace('</p>', '</div>'); 90 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 91 - 92 - return convertedMsg.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/]+)\]/gm, function(str, numMatch, innerText) { 93 - var num = parseInt(numMatch, 10) - 1; 94 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 95 - }); 96 - }, 97 - emitter: {} 98 - }; 99 - 100 - $.i18n().load(language_data); 101 - $('#skills-label').data('i18n', '[html]project.' + window.location.hash.substr(1) + '.skills'); 102 - 103 - if (localStorage.getItem('locale') !== null) { 104 - $.i18n().locale = localStorage.getItem('locale'); 105 - var arr = $('.lang-switch-parent'); 106 - 107 - for (var i = 0; i < arr.length; i++) { 108 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 109 - if (!arr[i].classList.contains('active')) { 110 - arr[i].classList.add('active'); 111 - } 112 - } else { 113 - if (arr[i].classList.contains('active')) { 114 - arr[i].classList.remove('active'); 115 - } 116 - } 117 - } 118 - } 119 - 120 - update_texts(); 121 - 122 - $('.lang-switch').click(function(e) { 123 - e.preventDefault(); 124 - $.i18n().locale = $(this).data('locale'); 125 - update_texts(); 126 - localStorage.setItem('locale', $(this).data('locale')); 127 - var arr = $('.lang-switch-parent'); 128 - 129 - for (var i = 0; i < arr.length; i++) { 130 - if (get_lang_code(arr[i].children[0]) === localStorage.getItem('locale')) { 131 - if (!arr[i].classList.contains('active')) { 132 - arr[i].classList.add('active'); 133 - } 134 - } else { 135 - if (arr[i].classList.contains('active')) { 136 - arr[i].classList.remove('active'); 137 - } 138 - } 139 - } 140 - }); 141 - }); 142 - 143 - ! function(a) { 144 - "use strict"; 145 - a(document).ready(function() { 146 - function b() { 147 - window.location = i 148 - } 149 - var e = a(".site-title"), 150 - f = a("body"); 151 - setTimeout(function() { 152 - f.addClass("loaded") 153 - }, 150); 154 - var g = a(".project-assets").children("div"); 155 - a.each(g, function(b, c) { 156 - var d = a(this); 157 - d.imagesLoaded(function() { 158 - setTimeout(function() { 159 - d.addClass("loaded") 160 - }, 50 + 150 * b) 161 - }) 162 - }); 163 - var h = a(".projects-feed .project"); 164 - a.each(h, function(b, c) { 165 - var d = a(this); 166 - d.imagesLoaded(function() { 167 - setTimeout(function() { 168 - d.addClass("loaded") 169 - }, 50 + 50 * b) 170 - }) 171 - }); 172 - var i; 173 - a("a").on("click", function(a) { 174 - return "" == this.href || null == this.href ? void a.preventDefault() : void(-1 == this.href.indexOf("#") && -1 == this.href.indexOf("mailto:") && -1 == this.href.indexOf("javascript:") && "_blank" != this.target && (a.preventDefault(), i = this.href, f.removeClass("loaded"), setTimeout(b, 250))) 175 - }) 176 - }) 177 - }(window.jQuery);
-3
old/scripts/showdown.min.js
··· 1 - /*! showdown v 1.9.1 - 02-11-2019 */ 2 - (function(){function e(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a].defaultValue);return t}function r(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",n={valid:!0,error:""};a.helper.isArray(e)||(e=[e]);for(var s=0;s<e.length;++s){var o=t+" sub-extension "+s+": ",i=e[s];if("object"!=typeof i)return n.valid=!1,n.error=o+"must be an object, but "+typeof i+" given",n;if(!a.helper.isString(i.type))return n.valid=!1,n.error=o+'property "type" must be a string, but '+typeof i.type+" given",n;var l=i.type=i.type.toLowerCase();if("language"===l&&(l=i.type="lang"),"html"===l&&(l=i.type="output"),"lang"!==l&&"output"!==l&&"listener"!==l)return n.valid=!1,n.error=o+"type "+l+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',n;if("listener"===l){if(a.helper.isUndefined(i.listeners))return n.valid=!1,n.error=o+'. Extensions of type "listener" must have a property called "listeners"',n}else if(a.helper.isUndefined(i.filter)&&a.helper.isUndefined(i.regex))return n.valid=!1,n.error=o+l+' extensions must define either a "regex" property or a "filter" method',n;if(i.listeners){if("object"!=typeof i.listeners)return n.valid=!1,n.error=o+'"listeners" property must be an object but '+typeof i.listeners+" given",n;for(var c in i.listeners)if(i.listeners.hasOwnProperty(c)&&"function"!=typeof i.listeners[c])return n.valid=!1,n.error=o+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+c+" must be a function but "+typeof i.listeners[c]+" given",n}if(i.filter){if("function"!=typeof i.filter)return n.valid=!1,n.error=o+'"filter" must be a function, but '+typeof i.filter+" given",n}else if(i.regex){if(a.helper.isString(i.regex)&&(i.regex=new RegExp(i.regex,"g")),!(i.regex instanceof RegExp))return n.valid=!1,n.error=o+'"regex" property must either be a string or a RegExp object, but '+typeof i.regex+" given",n;if(a.helper.isUndefined(i.replace))return n.valid=!1,n.error=o+'"regex" extensions must implement a replace string or function',n}}return n}function t(e,r){"use strict";return"¨E"+r.charCodeAt(0)+"E"}var a={},n={},s={},o=e(!0),i="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:function(){"use strict";var r=e(!0),t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=!0);return t}()};a.helper={},a.extensions={},a.setOption=function(e,r){"use strict";return o[e]=r,this},a.getOption=function(e){"use strict";return o[e]},a.getOptions=function(){"use strict";return o},a.resetOptions=function(){"use strict";o=e(!0)},a.setFlavor=function(e){"use strict";if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");a.resetOptions();var r=l[e];i=e;for(var t in r)r.hasOwnProperty(t)&&(o[t]=r[t])},a.getFlavor=function(){"use strict";return i},a.getFlavorOptions=function(e){"use strict";if(l.hasOwnProperty(e))return l[e]},a.getDefaultOptions=function(r){"use strict";return e(r)},a.subParser=function(e,r){"use strict";if(a.helper.isString(e)){if(void 0===r){if(n.hasOwnProperty(e))return n[e];throw Error("SubParser named "+e+" not registered!")}n[e]=r}},a.extension=function(e,t){"use strict";if(!a.helper.isString(e))throw Error("Extension 'name' must be a string");if(e=a.helper.stdExtName(e),a.helper.isUndefined(t)){if(!s.hasOwnProperty(e))throw Error("Extension named "+e+" is not registered!");return s[e]}"function"==typeof t&&(t=t()),a.helper.isArray(t)||(t=[t]);var n=r(t,e);if(!n.valid)throw Error(n.error);s[e]=t},a.getAllExtensions=function(){"use strict";return s},a.removeExtension=function(e){"use strict";delete s[e]},a.resetExtensions=function(){"use strict";s={}},a.validateExtension=function(e){"use strict";var t=r(e,null);return!!t.valid||(console.warn(t.error),!1)},a.hasOwnProperty("helper")||(a.helper={}),a.helper.isString=function(e){"use strict";return"string"==typeof e||e instanceof String},a.helper.isFunction=function(e){"use strict";return e&&"[object Function]"==={}.toString.call(e)},a.helper.isArray=function(e){"use strict";return Array.isArray(e)},a.helper.isUndefined=function(e){"use strict";return void 0===e},a.helper.forEach=function(e,r){"use strict";if(a.helper.isUndefined(e))throw new Error("obj param is required");if(a.helper.isUndefined(r))throw new Error("callback param is required");if(!a.helper.isFunction(r))throw new Error("callback param must be a function/closure");if("function"==typeof e.forEach)e.forEach(r);else if(a.helper.isArray(e))for(var t=0;t<e.length;t++)r(e[t],t,e);else{if("object"!=typeof e)throw new Error("obj does not seem to be an array or an iterable object");for(var n in e)e.hasOwnProperty(n)&&r(e[n],n,e)}},a.helper.stdExtName=function(e){"use strict";return e.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},a.helper.escapeCharactersCallback=t,a.helper.escapeCharacters=function(e,r,a){"use strict";var n="(["+r.replace(/([\[\]\\])/g,"\\$1")+"])";a&&(n="\\\\"+n);var s=new RegExp(n,"g");return e=e.replace(s,t)},a.helper.unescapeHTMLEntities=function(e){"use strict";return e.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")};var c=function(e,r,t,a){"use strict";var n,s,o,i,l,c=a||"",u=c.indexOf("g")>-1,d=new RegExp(r+"|"+t,"g"+c.replace(/g/g,"")),p=new RegExp(r,c.replace(/g/g,"")),h=[];do{for(n=0;o=d.exec(e);)if(p.test(o[0]))n++||(i=(s=d.lastIndex)-o[0].length);else if(n&&!--n){l=o.index+o[0].length;var _={left:{start:i,end:s},match:{start:s,end:o.index},right:{start:o.index,end:l},wholeMatch:{start:i,end:l}};if(h.push(_),!u)return h}}while(n&&(d.lastIndex=s));return h};a.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=c(e,r,t,a),s=[],o=0;o<n.length;++o)s.push([e.slice(n[o].wholeMatch.start,n[o].wholeMatch.end),e.slice(n[o].match.start,n[o].match.end),e.slice(n[o].left.start,n[o].left.end),e.slice(n[o].right.start,n[o].right.end)]);return s},a.helper.replaceRecursiveRegExp=function(e,r,t,n,s){"use strict";if(!a.helper.isFunction(r)){var o=r;r=function(){return o}}var i=c(e,t,n,s),l=e,u=i.length;if(u>0){var d=[];0!==i[0].wholeMatch.start&&d.push(e.slice(0,i[0].wholeMatch.start));for(var p=0;p<u;++p)d.push(r(e.slice(i[p].wholeMatch.start,i[p].wholeMatch.end),e.slice(i[p].match.start,i[p].match.end),e.slice(i[p].left.start,i[p].left.end),e.slice(i[p].right.start,i[p].right.end))),p<u-1&&d.push(e.slice(i[p].wholeMatch.end,i[p+1].wholeMatch.start));i[u-1].wholeMatch.end<e.length&&d.push(e.slice(i[u-1].wholeMatch.end)),l=d.join("")}return l},a.helper.regexIndexOf=function(e,r,t){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";if(r instanceof RegExp==!1)throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";var n=e.substring(t||0).search(r);return n>=0?n+(t||0):n},a.helper.splitAtIndex=function(e,r){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[e.substring(0,r),e.substring(r)]},a.helper.encodeEmailAddress=function(e){"use strict";var r=[function(e){return"&#"+e.charCodeAt(0)+";"},function(e){return"&#x"+e.charCodeAt(0).toString(16)+";"},function(e){return e}];return e=e.replace(/./g,function(e){if("@"===e)e=r[Math.floor(2*Math.random())](e);else{var t=Math.random();e=t>.9?r[2](e):t>.45?r[1](e):r[0](e)}return e})},a.helper.padEnd=function(e,r,t){"use strict";return r>>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),a.helper.regexes={asteriskDashAndColon:/([*_:~])/g},a.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️&zwj;♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴&zwj;♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱&zwj;♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇&zwj;♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷&zwj;♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨&zwj;❤️&zwj;👨",couple_with_heart_woman_woman:"👩&zwj;❤️&zwj;👩",couplekiss_man_man:"👨&zwj;❤️&zwj;💋&zwj;👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩&zwj;❤️&zwj;💋&zwj;👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯&zwj;♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁&zwj;🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨&zwj;👦",family_man_boy_boy:"👨&zwj;👦&zwj;👦",family_man_girl:"👨&zwj;👧",family_man_girl_boy:"👨&zwj;👧&zwj;👦",family_man_girl_girl:"👨&zwj;👧&zwj;👧",family_man_man_boy:"👨&zwj;👨&zwj;👦",family_man_man_boy_boy:"👨&zwj;👨&zwj;👦&zwj;👦",family_man_man_girl:"👨&zwj;👨&zwj;👧",family_man_man_girl_boy:"👨&zwj;👨&zwj;👧&zwj;👦",family_man_man_girl_girl:"👨&zwj;👨&zwj;👧&zwj;👧",family_man_woman_boy_boy:"👨&zwj;👩&zwj;👦&zwj;👦",family_man_woman_girl:"👨&zwj;👩&zwj;👧",family_man_woman_girl_boy:"👨&zwj;👩&zwj;👧&zwj;👦",family_man_woman_girl_girl:"👨&zwj;👩&zwj;👧&zwj;👧",family_woman_boy:"👩&zwj;👦",family_woman_boy_boy:"👩&zwj;👦&zwj;👦",family_woman_girl:"👩&zwj;👧",family_woman_girl_boy:"👩&zwj;👧&zwj;👦",family_woman_girl_girl:"👩&zwj;👧&zwj;👧",family_woman_woman_boy:"👩&zwj;👩&zwj;👦",family_woman_woman_boy_boy:"👩&zwj;👩&zwj;👦&zwj;👦",family_woman_woman_girl:"👩&zwj;👩&zwj;👧",family_woman_woman_girl_boy:"👩&zwj;👩&zwj;👧&zwj;👦",family_woman_woman_girl_girl:"👩&zwj;👩&zwj;👧&zwj;👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️&zwj;♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍&zwj;♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️&zwj;♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂&zwj;♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇&zwj;♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨&zwj;🎨",man_astronaut:"👨&zwj;🚀",man_cartwheeling:"🤸&zwj;♂️",man_cook:"👨&zwj;🍳",man_dancing:"🕺",man_facepalming:"🤦&zwj;♂️",man_factory_worker:"👨&zwj;🏭",man_farmer:"👨&zwj;🌾",man_firefighter:"👨&zwj;🚒",man_health_worker:"👨&zwj;⚕️",man_in_tuxedo:"🤵",man_judge:"👨&zwj;⚖️",man_juggling:"🤹&zwj;♂️",man_mechanic:"👨&zwj;🔧",man_office_worker:"👨&zwj;💼",man_pilot:"👨&zwj;✈️",man_playing_handball:"🤾&zwj;♂️",man_playing_water_polo:"🤽&zwj;♂️",man_scientist:"👨&zwj;🔬",man_shrugging:"🤷&zwj;♂️",man_singer:"👨&zwj;🎤",man_student:"👨&zwj;🎓",man_teacher:"👨&zwj;🏫",man_technologist:"👨&zwj;💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆&zwj;♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼&zwj;♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵&zwj;♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅&zwj;♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆&zwj;♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮&zwj;♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎&zwj;♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️&zwj;🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋&zwj;♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣&zwj;♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃&zwj;♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄&zwj;♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊&zwj;♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁&zwj;♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶&zwj;♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️&zwj;♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩&zwj;🎨",woman_astronaut:"👩&zwj;🚀",woman_cartwheeling:"🤸&zwj;♀️",woman_cook:"👩&zwj;🍳",woman_facepalming:"🤦&zwj;♀️",woman_factory_worker:"👩&zwj;🏭",woman_farmer:"👩&zwj;🌾",woman_firefighter:"👩&zwj;🚒",woman_health_worker:"👩&zwj;⚕️",woman_judge:"👩&zwj;⚖️",woman_juggling:"🤹&zwj;♀️",woman_mechanic:"👩&zwj;🔧",woman_office_worker:"👩&zwj;💼",woman_pilot:"👩&zwj;✈️",woman_playing_handball:"🤾&zwj;♀️",woman_playing_water_polo:"🤽&zwj;♀️",woman_scientist:"👩&zwj;🔬",woman_shrugging:"🤷&zwj;♀️",woman_singer:"👩&zwj;🎤",woman_student:"👩&zwj;🎓",woman_teacher:"👩&zwj;🏫",woman_technologist:"👩&zwj;💻",woman_with_turban:"👳&zwj;♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼&zwj;♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',showdown:"<span style=\"font-family: 'Anonymous Pro', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>"},a.Converter=function(e){"use strict";function t(e,t){if(t=t||null,a.helper.isString(e)){if(e=a.helper.stdExtName(e),t=e,a.extensions[e])return console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(e,t){"function"==typeof e&&(e=e(new a.Converter));a.helper.isArray(e)||(e=[e]);var n=r(e,t);if(!n.valid)throw Error(n.error);for(var s=0;s<e.length;++s)switch(e[s].type){case"lang":u.push(e[s]);break;case"output":d.push(e[s]);break;default:throw Error("Extension loader error: Type unrecognized!!!")}}(a.extensions[e],e);if(a.helper.isUndefined(s[e]))throw Error('Extension "'+e+'" could not be loaded. It was either not found or is not a valid extension.');e=s[e]}"function"==typeof e&&(e=e()),a.helper.isArray(e)||(e=[e]);var o=r(e,t);if(!o.valid)throw Error(o.error);for(var i=0;i<e.length;++i){switch(e[i].type){case"lang":u.push(e[i]);break;case"output":d.push(e[i])}if(e[i].hasOwnProperty("listeners"))for(var l in e[i].listeners)e[i].listeners.hasOwnProperty(l)&&n(l,e[i].listeners[l])}}function n(e,r){if(!a.helper.isString(e))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof e+" given");if("function"!=typeof r)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof r+" given");p.hasOwnProperty(e)||(p[e]=[]),p[e].push(r)}var c={},u=[],d=[],p={},h=i,_={parsed:{},raw:"",format:""};!function(){e=e||{};for(var r in o)o.hasOwnProperty(r)&&(c[r]=o[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(var n in e)e.hasOwnProperty(n)&&(c[n]=e[n]);c.extensions&&a.helper.forEach(c.extensions,t)}(),this._dispatch=function(e,r,t,a){if(p.hasOwnProperty(e))for(var n=0;n<p[e].length;++n){var s=p[e][n](e,r,this,t,a);s&&void 0!==s&&(r=s)}return r},this.listen=function(e,r){return n(e,r),this},this.makeHtml=function(e){if(!e)return e;var r={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:u,outputModifiers:d,converter:this,ghCodeBlocks:[],metadata:{parsed:{},raw:"",format:""}};return e=e.replace(/¨/g,"¨T"),e=e.replace(/\$/g,"¨D"),e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/\u00A0/g,"&nbsp;"),c.smartIndentationFix&&(e=function(e){var r=e.match(/^\s*/)[0].length,t=new RegExp("^\\s{0,"+r+"}","gm");return e.replace(t,"")}(e)),e="\n\n"+e+"\n\n",e=a.subParser("detab")(e,c,r),e=e.replace(/^[ \t]+$/gm,""),a.helper.forEach(u,function(t){e=a.subParser("runExtension")(t,e,c,r)}),e=a.subParser("metadata")(e,c,r),e=a.subParser("hashPreCodeTags")(e,c,r),e=a.subParser("githubCodeBlocks")(e,c,r),e=a.subParser("hashHTMLBlocks")(e,c,r),e=a.subParser("hashCodeTags")(e,c,r),e=a.subParser("stripLinkDefinitions")(e,c,r),e=a.subParser("blockGamut")(e,c,r),e=a.subParser("unhashHTMLSpans")(e,c,r),e=a.subParser("unescapeSpecialChars")(e,c,r),e=e.replace(/¨D/g,"$$"),e=e.replace(/¨T/g,"¨"),e=a.subParser("completeHTMLDocument")(e,c,r),a.helper.forEach(d,function(t){e=a.subParser("runExtension")(t,e,c,r)}),_=r.metadata,e},this.makeMarkdown=this.makeMd=function(e,r){function t(e){for(var r=0;r<e.childNodes.length;++r){var a=e.childNodes[r];3===a.nodeType?/\S/.test(a.nodeValue)?(a.nodeValue=a.nodeValue.split("\n").join(" "),a.nodeValue=a.nodeValue.replace(/(\s)+/g,"$1")):(e.removeChild(a),--r):1===a.nodeType&&t(a)}}if(e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/>[ \t]+</,">¨NBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}var n=r.createElement("div");n.innerHTML=e;var s={preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],n=0;n<r.length;++n)if(1===r[n].childElementCount&&"code"===r[n].firstChild.tagName.toLowerCase()){var s=r[n].firstChild.innerHTML.trim(),o=r[n].firstChild.getAttribute("data-language")||"";if(""===o)for(var i=r[n].firstChild.className.split(" "),l=0;l<i.length;++l){var c=i[l].match(/^language-(.+)$/);if(null!==c){o=c[1];break}}s=a.helper.unescapeHTMLEntities(s),t.push(s),r[n].outerHTML='<precode language="'+o+'" precodenum="'+n.toString()+'"></precode>'}else t.push(r[n].innerHTML),r[n].innerHTML="",r[n].setAttribute("prenum",n.toString());return t}(n)};t(n);for(var o=n.childNodes,i="",l=0;l<o.length;l++)i+=a.subParser("makeMarkdown.node")(o[l],s);return i},this.setOption=function(e,r){c[e]=r},this.getOption=function(e){return c[e]},this.getOptions=function(){return c},this.addExtension=function(e,r){t(e,r=r||null)},this.useExtension=function(e){t(e)},this.setFlavor=function(e){if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");var r=l[e];h=e;for(var t in r)r.hasOwnProperty(t)&&(c[t]=r[t])},this.getFlavor=function(){return h},this.removeExtension=function(e){a.helper.isArray(e)||(e=[e]);for(var r=0;r<e.length;++r){for(var t=e[r],n=0;n<u.length;++n)u[n]===t&&u[n].splice(n,1);for(;0<d.length;++n)d[0]===t&&d[0].splice(n,1)}},this.getAllExtensions=function(){return{language:u,output:d}},this.getMetadata=function(e){return e?_.raw:_.parsed},this.getMetadataFormat=function(){return _.format},this._setMetadataPair=function(e,r){_.parsed[e]=r},this._setMetadataFormat=function(e){_.format=e},this._setMetadataRaw=function(e){_.raw=e}},a.subParser("anchors",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){if(a.helper.isUndefined(c)&&(c=""),s=s.toLowerCase(),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)o="";else if(!o){if(s||(s=n.toLowerCase().replace(/ ?\n/g," ")),o="#"+s,a.helper.isUndefined(t.gUrls[s]))return e;o=t.gUrls[s],a.helper.isUndefined(t.gTitles[s])||(c=t.gTitles[s])}var u='<a href="'+(o=o.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"';return""!==c&&null!==c&&(u+=' title="'+(c=(c=c.replace(/"/g,"&quot;")).replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),r.openLinksInNewWindow&&!/^#/.test(o)&&(u+=' rel="noopener noreferrer" target="¨E95Eblank"'),u+=">"+n+"</a>"};return e=(e=t.converter._dispatch("anchors.before",e,r,t)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[([^\[\]]+)]()()()()()/g,n),r.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,t,n,s,o){if("\\"===n)return t+s;if(!a.helper.isString(r.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");var i=r.ghMentionsLink.replace(/\{u}/g,o),l="";return r.openLinksInNewWindow&&(l=' rel="noopener noreferrer" target="¨E95Eblank"'),t+'<a href="'+i+'"'+l+">"+s+"</a>"})),e=t.converter._dispatch("anchors.after",e,r,t)});var u=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,d=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,p=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,h=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,_=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,g=function(e){"use strict";return function(r,t,n,s,o,i,l){var c=n=n.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback),u="",d="",p=t||"",h=l||"";return/^www\./i.test(n)&&(n=n.replace(/^www\./i,"http://www.")),e.excludeTrailingPunctuationFromURLs&&i&&(u=i),e.openLinksInNewWindow&&(d=' rel="noopener noreferrer" target="¨E95Eblank"'),p+'<a href="'+n+'"'+d+">"+c+"</a>"+u+h}},m=function(e,r){"use strict";return function(t,n,s){var o="mailto:";return n=n||"",s=a.subParser("unescapeSpecialChars")(s,e,r),e.encodeEmails?(o=a.helper.encodeEmailAddress(o+s),s=a.helper.encodeEmailAddress(s)):o+=s,n+'<a href="'+o+'">'+s+"</a>"}};a.subParser("autoLinks",function(e,r,t){"use strict";return e=t.converter._dispatch("autoLinks.before",e,r,t),e=e.replace(p,g(r)),e=e.replace(_,m(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),a.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=r.excludeTrailingPunctuationFromURLs?e.replace(d,g(r)):e.replace(u,g(r)),e=e.replace(h,m(r,t)),e=t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),a.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=a.subParser("blockQuotes")(e,r,t),e=a.subParser("headers")(e,r,t),e=a.subParser("horizontalRule")(e,r,t),e=a.subParser("lists")(e,r,t),e=a.subParser("codeBlocks")(e,r,t),e=a.subParser("tables")(e,r,t),e=a.subParser("hashHTMLBlocks")(e,r,t),e=a.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),a.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t),e+="\n\n";var n=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(n=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=e.replace(n,function(e){return e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/¨0/g,""),e=e.replace(/^[ \t]+$/gm,""),e=a.subParser("githubCodeBlocks")(e,r,t),e=a.subParser("blockGamut")(e,r,t),e=e.replace(/(^|\n)/g,"$1 "),e=e.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(e,r){var t=r;return t=t.replace(/^ /gm,"¨0"),t=t.replace(/¨0/g,"")}),a.subParser("hashBlock")("<blockquote>\n"+e+"\n</blockquote>",r,t)}),e=t.converter._dispatch("blockQuotes.after",e,r,t)}),a.subParser("codeBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("codeBlocks.before",e,r,t);return e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,n,s){var o=n,i=s,l="\n";return o=a.subParser("outdent")(o,r,t),o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),r.omitExtraWLInCodeBlocks&&(l=""),o="<pre><code>"+o+l+"</code></pre>",a.subParser("hashBlock")(o,r,t)+i}),e=e.replace(/¨0/,""),e=t.converter._dispatch("codeBlocks.after",e,r,t)}),a.subParser("codeSpans",function(e,r,t){"use strict";return void 0===(e=t.converter._dispatch("codeSpans.before",e,r,t))&&(e=""),e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,n,s,o){var i=o;return i=i.replace(/^([ \t]*)/g,""),i=i.replace(/[ \t]*$/g,""),i=a.subParser("encodeCode")(i,r,t),i=n+"<code>"+i+"</code>",i=a.subParser("hashHTMLSpans")(i,r,t)}),e=t.converter._dispatch("codeSpans.after",e,r,t)}),a.subParser("completeHTMLDocument",function(e,r,t){"use strict";if(!r.completeHTMLDocument)return e;e=t.converter._dispatch("completeHTMLDocument.before",e,r,t);var a="html",n="<!DOCTYPE HTML>\n",s="",o='<meta charset="utf-8">\n',i="",l="";void 0!==t.metadata.parsed.doctype&&(n="<!DOCTYPE "+t.metadata.parsed.doctype+">\n","html"!==(a=t.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==a||(o='<meta charset="utf-8">'));for(var c in t.metadata.parsed)if(t.metadata.parsed.hasOwnProperty(c))switch(c.toLowerCase()){case"doctype":break;case"title":s="<title>"+t.metadata.parsed.title+"</title>\n";break;case"charset":o="html"===a||"html5"===a?'<meta charset="'+t.metadata.parsed.charset+'">\n':'<meta name="charset" content="'+t.metadata.parsed.charset+'">\n';break;case"language":case"lang":i=' lang="'+t.metadata.parsed[c]+'"',l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n';break;default:l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n'}return e=n+"<html"+i+">\n<head>\n"+s+o+l+"</head>\n<body>\n"+e.trim()+"\n</body>\n</html>",e=t.converter._dispatch("completeHTMLDocument.after",e,r,t)}),a.subParser("detab",function(e,r,t){"use strict";return e=t.converter._dispatch("detab.before",e,r,t),e=e.replace(/\t(?=\t)/g," "),e=e.replace(/\t/g,"¨A¨B"),e=e.replace(/¨B(.+?)¨A/g,function(e,r){for(var t=r,a=4-t.length%4,n=0;n<a;n++)t+=" ";return t}),e=e.replace(/¨A/g," "),e=e.replace(/¨B/g,""),e=t.converter._dispatch("detab.after",e,r,t)}),a.subParser("ellipsis",function(e,r,t){"use strict";return e=t.converter._dispatch("ellipsis.before",e,r,t),e=e.replace(/\.\.\./g,"…"),e=t.converter._dispatch("ellipsis.after",e,r,t)}),a.subParser("emoji",function(e,r,t){"use strict";if(!r.emoji)return e;return e=(e=t.converter._dispatch("emoji.before",e,r,t)).replace(/:([\S]+?):/g,function(e,r){return a.helper.emojis.hasOwnProperty(r)?a.helper.emojis[r]:e}),e=t.converter._dispatch("emoji.after",e,r,t)}),a.subParser("encodeAmpsAndAngles",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeAmpsAndAngles.before",e,r,t),e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),e=e.replace(/<(?![a-z\/?$!])/gi,"&lt;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=t.converter._dispatch("encodeAmpsAndAngles.after",e,r,t)}),a.subParser("encodeBackslashEscapes",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeBackslashEscapes.before",e,r,t),e=e.replace(/\\(\\)/g,a.helper.escapeCharactersCallback),e=e.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeBackslashEscapes.after",e,r,t)}),a.subParser("encodeCode",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeCode.before",e,r,t),e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/([*_{}\[\]\\=~-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeCode.after",e,r,t)}),a.subParser("escapeSpecialCharsWithinTagAttributes",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,r,t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=e.replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,r,t)}),a.subParser("githubCodeBlocks",function(e,r,t){"use strict";return r.ghCodeBlocks?(e=t.converter._dispatch("githubCodeBlocks.before",e,r,t),e+="¨0",e=e.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(e,n,s,o){var i=r.omitExtraWLInCodeBlocks?"":"\n";return o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),o="<pre><code"+(s?' class="'+s+" language-"+s+'"':"")+">"+o+i+"</code></pre>",o=a.subParser("hashBlock")(o,r,t),"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:o})-1)+"G\n\n"}),e=e.replace(/¨0/,""),t.converter._dispatch("githubCodeBlocks.after",e,r,t)):e}),a.subParser("hashBlock",function(e,r,t){"use strict";return e=t.converter._dispatch("hashBlock.before",e,r,t),e=e.replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n",e=t.converter._dispatch("hashBlock.after",e,r,t)}),a.subParser("hashCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"¨C"+(t.gHtmlSpans.push(i)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),e=t.converter._dispatch("hashCodeTags.after",e,r,t)}),a.subParser("hashElement",function(e,r,t){"use strict";return function(e,r){var a=r;return a=a.replace(/\n\n/g,"\n"),a=a.replace(/^\n/,""),a=a.replace(/\n+$/g,""),a="\n\n¨K"+(t.gHtmlBlocks.push(a)-1)+"K\n\n"}}),a.subParser("hashHTMLBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("hashHTMLBlocks.before",e,r,t);var n=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],s=function(e,r,a,n){var s=e;return-1!==a.search(/\bmarkdown\b/)&&(s=a+t.converter.makeHtml(r)+n),"\n\n¨K"+(t.gHtmlBlocks.push(s)-1)+"K\n\n"};r.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,r){return"&lt;"+r+"&gt;"}));for(var o=0;o<n.length;++o)for(var i,l=new RegExp("^ {0,3}(<"+n[o]+"\\b[^>]*>)","im"),c="<"+n[o]+"\\b[^>]*>",u="</"+n[o]+">";-1!==(i=a.helper.regexIndexOf(e,l));){var d=a.helper.splitAtIndex(e,i),p=a.helper.replaceRecursiveRegExp(d[1],s,c,u,"im");if(p===d[1])break;e=d[0].concat(p)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=a.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm"),e=e.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=t.converter._dispatch("hashHTMLBlocks.after",e,r,t)}),a.subParser("hashHTMLSpans",function(e,r,t){"use strict";function a(e){return"¨C"+(t.gHtmlSpans.push(e)-1)+"C"}return e=t.converter._dispatch("hashHTMLSpans.before",e,r,t),e=e.replace(/<[^>]+?\/>/gi,function(e){return a(e)}),e=e.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<[^>]+?>/gi,function(e){return a(e)}),e=t.converter._dispatch("hashHTMLSpans.after",e,r,t)}),a.subParser("unhashHTMLSpans",function(e,r,t){"use strict";e=t.converter._dispatch("unhashHTMLSpans.before",e,r,t);for(var a=0;a<t.gHtmlSpans.length;++a){for(var n=t.gHtmlSpans[a],s=0;/¨C(\d+)C/.test(n);){var o=RegExp.$1;if(n=n.replace("¨C"+o+"C",t.gHtmlSpans[o]),10===s){console.error("maximum nesting of 10 spans reached!!!");break}++s}e=e.replace("¨C"+a+"C",n)}return e=t.converter._dispatch("unhashHTMLSpans.after",e,r,t)}),a.subParser("hashPreCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashPreCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:i})-1)+"G\n\n"},"^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^ {0,3}</code>\\s*</pre>","gim"),e=t.converter._dispatch("hashPreCodeTags.after",e,r,t)}),a.subParser("headers",function(e,r,t){"use strict";function n(e){var n,s;if(r.customizedHeaderId){var o=e.match(/\{([^{]+?)}\s*$/);o&&o[1]&&(e=o[1])}return n=e,s=a.helper.isString(r.prefixHeaderId)?r.prefixHeaderId:!0===r.prefixHeaderId?"section-":"",r.rawPrefixHeaderId||(n=s+n),n=r.ghCompatibleHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():r.rawHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():n.replace(/[^\w]/g,"").toLowerCase(),r.rawPrefixHeaderId&&(n=s+n),t.hashLinkCounts[n]?n=n+"-"+t.hashLinkCounts[n]++:t.hashLinkCounts[n]=1,n}e=t.converter._dispatch("headers.before",e,r,t);var s=isNaN(parseInt(r.headerLevelStart))?1:parseInt(r.headerLevelStart),o=r.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,i=r.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;e=(e=e.replace(o,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c="<h"+s+l+">"+i+"</h"+s+">";return a.subParser("hashBlock")(c,r,t)})).replace(i,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c=s+1,u="<h"+c+l+">"+i+"</h"+c+">";return a.subParser("hashBlock")(u,r,t)});var l=r.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;return e=e.replace(l,function(e,o,i){var l=i;r.customizedHeaderId&&(l=i.replace(/\s?\{([^{]+?)}\s*$/,""));var c=a.subParser("spanGamut")(l,r,t),u=r.noHeaderId?"":' id="'+n(i)+'"',d=s-1+o.length,p="<h"+d+u+">"+c+"</h"+d+">";return a.subParser("hashBlock")(p,r,t)}),e=t.converter._dispatch("headers.after",e,r,t)}),a.subParser("horizontalRule",function(e,r,t){"use strict";e=t.converter._dispatch("horizontalRule.before",e,r,t);var n=a.subParser("hashBlock")("<hr />",r,t);return e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,n),e=t.converter._dispatch("horizontalRule.after",e,r,t)}),a.subParser("images",function(e,r,t){"use strict";function n(e,r,n,s,o,i,l,c){var u=t.gUrls,d=t.gTitles,p=t.gDimensions;if(n=n.toLowerCase(),c||(c=""),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)s="";else if(""===s||null===s){if(""!==n&&null!==n||(n=r.toLowerCase().replace(/ ?\n/g," ")),s="#"+n,a.helper.isUndefined(u[n]))return e;s=u[n],a.helper.isUndefined(d[n])||(c=d[n]),a.helper.isUndefined(p[n])||(o=p[n].width,i=p[n].height)}r=r.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback);var h='<img src="'+(s=s.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'" alt="'+r+'"';return c&&a.helper.isString(c)&&(h+=' title="'+(c=c.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),o&&i&&(h+=' width="'+(o="*"===o?"auto":o)+'"',h+=' height="'+(i="*"===i?"auto":i)+'"'),h+=" />"}return e=(e=t.converter._dispatch("images.before",e,r,t)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,r,t,a,s,o,i,l){return a=a.replace(/\s/g,""),n(e,r,t,a,s,o,0,l)}),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,n),e=e.replace(/!\[([^\[\]]+)]()()()()()/g,n),e=t.converter._dispatch("images.after",e,r,t)}),a.subParser("italicsAndBold",function(e,r,t){"use strict";function a(e,r,t){return r+e+t}return e=t.converter._dispatch("italicsAndBold.before",e,r,t),e=r.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return a(r,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return a(r,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,r){return a(r,"<em>","</em>")}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=r.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong><em>","</em></strong>")})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong>","</strong>")})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<em>","</em>")}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=t.converter._dispatch("italicsAndBold.after",e,r,t)}),a.subParser("lists",function(e,r,t){"use strict";function n(e,n){t.gListLevel++,e=e.replace(/\n{2,}$/,"\n");var s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,o=/\n[ \t]*\n(?!¨0)/.test(e+="¨0");return r.disableForced4SpacesIndentedSublists&&(s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=e.replace(s,function(e,n,s,i,l,c,u){u=u&&""!==u.trim();var d=a.subParser("outdent")(l,r,t),p="";return c&&r.tasklists&&(p=' class="task-list-item" style="list-style-type: none;"',d=d.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';return u&&(e+=" checked"),e+=">"})),d=d.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g,function(e){return"¨A"+e}),n||d.search(/\n{2,}/)>-1?(d=a.subParser("githubCodeBlocks")(d,r,t),d=a.subParser("blockGamut")(d,r,t)):(d=(d=a.subParser("lists")(d,r,t)).replace(/\n$/,""),d=(d=a.subParser("hashHTMLBlocks")(d,r,t)).replace(/\n\n+/g,"\n\n"),d=o?a.subParser("paragraphs")(d,r,t):a.subParser("spanGamut")(d,r,t)),d=d.replace("¨A",""),d="<li"+p+">"+d+"</li>\n"}),e=e.replace(/¨0/g,""),t.gListLevel--,n&&(e=e.replace(/\s+$/,"")),e}function s(e,r){if("ol"===r){var t=e.match(/^ *(\d+)\./);if(t&&"1"!==t[1])return' start="'+t[1]+'"'}return""}function o(e,t,a){var o=r.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,i=r.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,l="ul"===t?o:i,c="";if(-1!==e.search(l))!function r(u){var d=u.search(l),p=s(e,t);-1!==d?(c+="\n\n<"+t+p+">\n"+n(u.slice(0,d),!!a)+"</"+t+">\n",l="ul"===(t="ul"===t?"ol":"ul")?o:i,r(u.slice(d))):c+="\n\n<"+t+p+">\n"+n(u,!!a)+"</"+t+">\n"}(e);else{var u=s(e,t);c="\n\n<"+t+u+">\n"+n(e,!!a)+"</"+t+">\n"}return c}return e=t.converter._dispatch("lists.before",e,r,t),e+="¨0",e=t.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t){return o(r,t.search(/[*+-]/g)>-1?"ul":"ol",!0)}):e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t,a){return o(t,a.search(/[*+-]/g)>-1?"ul":"ol",!1)}),e=e.replace(/¨0/,""),e=t.converter._dispatch("lists.after",e,r,t)}),a.subParser("metadata",function(e,r,t){"use strict";function a(e){t.metadata.raw=e,(e=(e=e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")).replace(/\n {4}/g," ")).replace(/^([\S ]+): +([\s\S]+?)$/gm,function(e,r,a){return t.metadata.parsed[r]=a,""})}return r.metadata?(e=t.converter._dispatch("metadata.before",e,r,t),e=e.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/,function(e,r,t){return a(t),"¨M"}),e=e.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/,function(e,r,n){return r&&(t.metadata.format=r),a(n),"¨M"}),e=e.replace(/¨M/g,""),e=t.converter._dispatch("metadata.after",e,r,t)):e}),a.subParser("outdent",function(e,r,t){"use strict";return e=t.converter._dispatch("outdent.before",e,r,t),e=e.replace(/^(\t|[ ]{1,4})/gm,"¨0"),e=e.replace(/¨0/g,""),e=t.converter._dispatch("outdent.after",e,r,t)}),a.subParser("paragraphs",function(e,r,t){"use strict";for(var n=(e=(e=(e=t.converter._dispatch("paragraphs.before",e,r,t)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),s=[],o=n.length,i=0;i<o;i++){var l=n[i];l.search(/¨(K|G)(\d+)\1/g)>=0?s.push(l):l.search(/\S/)>=0&&(l=(l=a.subParser("spanGamut")(l,r,t)).replace(/^([ \t]*)/g,"<p>"),l+="</p>",s.push(l))}for(o=s.length,i=0;i<o;i++){for(var c="",u=s[i],d=!1;/¨(K|G)(\d+)\1/.test(u);){var p=RegExp.$1,h=RegExp.$2;c=(c="K"===p?t.gHtmlBlocks[h]:d?a.subParser("encodeCode")(t.ghCodeBlocks[h].text,r,t):t.ghCodeBlocks[h].codeblock).replace(/\$/g,"$$$$"),u=u.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,c),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(u)&&(d=!0)}s[i]=u}return e=s.join("\n"),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),t.converter._dispatch("paragraphs.after",e,r,t)}),a.subParser("runExtension",function(e,r,t,a){"use strict";if(e.filter)r=e.filter(r,a.converter,t);else if(e.regex){var n=e.regex;n instanceof RegExp||(n=new RegExp(n,"g")),r=r.replace(n,e.replace)}return r}),a.subParser("spanGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("spanGamut.before",e,r,t),e=a.subParser("codeSpans")(e,r,t),e=a.subParser("escapeSpecialCharsWithinTagAttributes")(e,r,t),e=a.subParser("encodeBackslashEscapes")(e,r,t),e=a.subParser("images")(e,r,t),e=a.subParser("anchors")(e,r,t),e=a.subParser("autoLinks")(e,r,t),e=a.subParser("simplifiedAutoLinks")(e,r,t),e=a.subParser("emoji")(e,r,t),e=a.subParser("underline")(e,r,t),e=a.subParser("italicsAndBold")(e,r,t),e=a.subParser("strikethrough")(e,r,t),e=a.subParser("ellipsis")(e,r,t),e=a.subParser("hashHTMLSpans")(e,r,t),e=a.subParser("encodeAmpsAndAngles")(e,r,t),r.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"<br />\n")):e=e.replace(/ +\n/g,"<br />\n"),e=t.converter._dispatch("spanGamut.after",e,r,t)}),a.subParser("strikethrough",function(e,r,t){"use strict";return r.strikethrough&&(e=(e=t.converter._dispatch("strikethrough.before",e,r,t)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,n){return function(e){return r.simplifiedAutoLink&&(e=a.subParser("simplifiedAutoLinks")(e,r,t)),"<del>"+e+"</del>"}(n)}),e=t.converter._dispatch("strikethrough.after",e,r,t)),e}),a.subParser("stripLinkDefinitions",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){return n=n.toLowerCase(),s.match(/^data:.+?\/.+?;base64,/)?t.gUrls[n]=s.replace(/\s/g,""):t.gUrls[n]=a.subParser("encodeAmpsAndAngles")(s,r,t),l?l+c:(c&&(t.gTitles[n]=c.replace(/"|'/g,"&quot;")),r.parseImgDimensions&&o&&i&&(t.gDimensions[n]={width:o,height:i}),"")};return e=(e+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,n),e=e.replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,n),e=e.replace(/¨0/,"")}),a.subParser("tables",function(e,r,t){"use strict";function n(e){return/^:[ \t]*--*$/.test(e)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(e)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(e)?' style="text-align:center;"':""}function s(e,n){var s="";return e=e.trim(),(r.tablesHeaderId||r.tableHeaderId)&&(s=' id="'+e.replace(/ /g,"_").toLowerCase()+'"'),e=a.subParser("spanGamut")(e,r,t),"<th"+s+n+">"+e+"</th>\n"}function o(e,n){return"<td"+n+">"+a.subParser("spanGamut")(e,r,t)+"</td>\n"}function i(e){var i,l=e.split("\n");for(i=0;i<l.length;++i)/^ {0,3}\|/.test(l[i])&&(l[i]=l[i].replace(/^ {0,3}\|/,"")),/\|[ \t]*$/.test(l[i])&&(l[i]=l[i].replace(/\|[ \t]*$/,"")),l[i]=a.subParser("codeSpans")(l[i],r,t);var c=l[0].split("|").map(function(e){return e.trim()}),u=l[1].split("|").map(function(e){return e.trim()}),d=[],p=[],h=[],_=[];for(l.shift(),l.shift(),i=0;i<l.length;++i)""!==l[i].trim()&&d.push(l[i].split("|").map(function(e){return e.trim()}));if(c.length<u.length)return e;for(i=0;i<u.length;++i)h.push(n(u[i]));for(i=0;i<c.length;++i)a.helper.isUndefined(h[i])&&(h[i]=""),p.push(s(c[i],h[i]));for(i=0;i<d.length;++i){for(var g=[],m=0;m<p.length;++m)a.helper.isUndefined(d[i][m]),g.push(o(d[i][m],h[m]));_.push(g)}return function(e,r){for(var t="<table>\n<thead>\n<tr>\n",a=e.length,n=0;n<a;++n)t+=e[n];for(t+="</tr>\n</thead>\n<tbody>\n",n=0;n<r.length;++n){t+="<tr>\n";for(var s=0;s<a;++s)t+=r[n][s];t+="</tr>\n"}return t+="</tbody>\n</table>\n"}(p,_)}if(!r.tables)return e;return e=t.converter._dispatch("tables.before",e,r,t),e=e.replace(/\\(\|)/g,a.helper.escapeCharactersCallback),e=e.replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,i),e=e.replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,i),e=t.converter._dispatch("tables.after",e,r,t)}),a.subParser("underline",function(e,r,t){"use strict";return r.underline?(e=t.converter._dispatch("underline.before",e,r,t),e=r.literalMidWordUnderscores?(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return"<u>"+r+"</u>"})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return"<u>"+r+"</u>"}):(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e}),e=e.replace(/(_)/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("underline.after",e,r,t)):e}),a.subParser("unescapeSpecialChars",function(e,r,t){"use strict";return e=t.converter._dispatch("unescapeSpecialChars.before",e,r,t),e=e.replace(/¨E(\d+)E/g,function(e,r){var t=parseInt(r);return String.fromCharCode(t)}),e=t.converter._dispatch("unescapeSpecialChars.after",e,r,t)}),a.subParser("makeMarkdown.blockquote",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o){var i=a.subParser("makeMarkdown.node")(n[o],r);""!==i&&(t+=i)}return t=t.trim(),t="> "+t.split("\n").join("\n> ")}),a.subParser("makeMarkdown.codeBlock",function(e,r){"use strict";var t=e.getAttribute("language"),a=e.getAttribute("precodenum");return"```"+t+"\n"+r.preList[a]+"\n```"}),a.subParser("makeMarkdown.codeSpan",function(e){"use strict";return"`"+e.innerHTML+"`"}),a.subParser("makeMarkdown.emphasis",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="*";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="*"}return t}),a.subParser("makeMarkdown.header",function(e,r,t){"use strict";var n=new Array(t+1).join("#"),s="";if(e.hasChildNodes()){s=n+" ";for(var o=e.childNodes,i=o.length,l=0;l<i;++l)s+=a.subParser("makeMarkdown.node")(o[l],r)}return s}),a.subParser("makeMarkdown.hr",function(){"use strict";return"---"}),a.subParser("makeMarkdown.image",function(e){"use strict";var r="";return e.hasAttribute("src")&&(r+="!["+e.getAttribute("alt")+"](",r+="<"+e.getAttribute("src")+">",e.hasAttribute("width")&&e.hasAttribute("height")&&(r+=" ="+e.getAttribute("width")+"x"+e.getAttribute("height")),e.hasAttribute("title")&&(r+=' "'+e.getAttribute("title")+'"'),r+=")"),r}),a.subParser("makeMarkdown.links",function(e,r){"use strict";var t="";if(e.hasChildNodes()&&e.hasAttribute("href")){var n=e.childNodes,s=n.length;t="[";for(var o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="](",t+="<"+e.getAttribute("href")+">",e.hasAttribute("title")&&(t+=' "'+e.getAttribute("title")+'"'),t+=")"}return t}),a.subParser("makeMarkdown.list",function(e,r,t){"use strict";var n="";if(!e.hasChildNodes())return"";for(var s=e.childNodes,o=s.length,i=e.getAttribute("start")||1,l=0;l<o;++l)if(void 0!==s[l].tagName&&"li"===s[l].tagName.toLowerCase()){n+=("ol"===t?i.toString()+". ":"- ")+a.subParser("makeMarkdown.listItem")(s[l],r),++i}return(n+="\n\x3c!-- --\x3e\n").trim()}),a.subParser("makeMarkdown.listItem",function(e,r){"use strict";for(var t="",n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return/\n$/.test(t)?t=t.split("\n").join("\n ").replace(/^ {4}$/gm,"").replace(/\n\n+/g,"\n\n"):t+="\n",t}),a.subParser("makeMarkdown.node",function(e,r,t){"use strict";t=t||!1;var n="";if(3===e.nodeType)return a.subParser("makeMarkdown.txt")(e,r);if(8===e.nodeType)return"\x3c!--"+e.data+"--\x3e\n\n";if(1!==e.nodeType)return"";switch(e.tagName.toLowerCase()){case"h1":t||(n=a.subParser("makeMarkdown.header")(e,r,1)+"\n\n");break;case"h2":t||(n=a.subParser("makeMarkdown.header")(e,r,2)+"\n\n");break;case"h3":t||(n=a.subParser("makeMarkdown.header")(e,r,3)+"\n\n");break;case"h4":t||(n=a.subParser("makeMarkdown.header")(e,r,4)+"\n\n");break;case"h5":t||(n=a.subParser("makeMarkdown.header")(e,r,5)+"\n\n");break;case"h6":t||(n=a.subParser("makeMarkdown.header")(e,r,6)+"\n\n");break;case"p":t||(n=a.subParser("makeMarkdown.paragraph")(e,r)+"\n\n");break;case"blockquote":t||(n=a.subParser("makeMarkdown.blockquote")(e,r)+"\n\n");break;case"hr":t||(n=a.subParser("makeMarkdown.hr")(e,r)+"\n\n");break;case"ol":t||(n=a.subParser("makeMarkdown.list")(e,r,"ol")+"\n\n");break;case"ul":t||(n=a.subParser("makeMarkdown.list")(e,r,"ul")+"\n\n");break;case"precode":t||(n=a.subParser("makeMarkdown.codeBlock")(e,r)+"\n\n");break;case"pre":t||(n=a.subParser("makeMarkdown.pre")(e,r)+"\n\n");break;case"table":t||(n=a.subParser("makeMarkdown.table")(e,r)+"\n\n");break;case"code":n=a.subParser("makeMarkdown.codeSpan")(e,r);break;case"em":case"i":n=a.subParser("makeMarkdown.emphasis")(e,r);break;case"strong":case"b":n=a.subParser("makeMarkdown.strong")(e,r);break;case"del":n=a.subParser("makeMarkdown.strikethrough")(e,r);break;case"a":n=a.subParser("makeMarkdown.links")(e,r);break;case"img":n=a.subParser("makeMarkdown.image")(e,r);break;default:n=e.outerHTML+"\n\n"}return n}),a.subParser("makeMarkdown.paragraph",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return t=t.trim()}),a.subParser("makeMarkdown.pre",function(e,r){"use strict";var t=e.getAttribute("prenum");return"<pre>"+r.preList[t]+"</pre>"}),a.subParser("makeMarkdown.strikethrough",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="~~";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="~~"}return t}),a.subParser("makeMarkdown.strong",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="**";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="**"}return t}),a.subParser("makeMarkdown.table",function(e,r){"use strict";var t,n,s="",o=[[],[]],i=e.querySelectorAll("thead>tr>th"),l=e.querySelectorAll("tbody>tr");for(t=0;t<i.length;++t){var c=a.subParser("makeMarkdown.tableCell")(i[t],r),u="---";if(i[t].hasAttribute("style")){switch(i[t].getAttribute("style").toLowerCase().replace(/\s/g,"")){case"text-align:left;":u=":---";break;case"text-align:right;":u="---:";break;case"text-align:center;":u=":---:"}}o[0][t]=c.trim(),o[1][t]=u}for(t=0;t<l.length;++t){var d=o.push([])-1,p=l[t].getElementsByTagName("td");for(n=0;n<i.length;++n){var h=" ";void 0!==p[n]&&(h=a.subParser("makeMarkdown.tableCell")(p[n],r)),o[d].push(h)}}var _=3;for(t=0;t<o.length;++t)for(n=0;n<o[t].length;++n){var g=o[t][n].length;g>_&&(_=g)}for(t=0;t<o.length;++t){for(n=0;n<o[t].length;++n)1===t?":"===o[t][n].slice(-1)?o[t][n]=a.helper.padEnd(o[t][n].slice(-1),_-1,"-")+":":o[t][n]=a.helper.padEnd(o[t][n],_,"-"):o[t][n]=a.helper.padEnd(o[t][n],_);s+="| "+o[t].join(" | ")+" |\n"}return s.trim()}),a.subParser("makeMarkdown.tableCell",function(e,r){"use strict";var t="";if(!e.hasChildNodes())return"";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r,!0);return t.trim()}),a.subParser("makeMarkdown.txt",function(e){"use strict";var r=e.nodeValue;return r=r.replace(/ +/g," "),r=r.replace(/¨NBSP;/g," "),r=a.helper.unescapeHTMLEntities(r),r=r.replace(/([*_~|`])/g,"\\$1"),r=r.replace(/^(\s*)>/g,"\\$1>"),r=r.replace(/^#/gm,"\\#"),r=r.replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3"),r=r.replace(/^( {0,3}\d+)\./gm,"$1\\."),r=r.replace(/^( {0,3})([+-])/gm,"$1\\$2"),r=r.replace(/]([\s]*)\(/g,"\\]$1\\("),r=r.replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:")});"function"==typeof define&&define.amd?define(function(){"use strict";return a}):"undefined"!=typeof module&&module.exports?module.exports=a:this.showdown=a}).call(this); 3 - //# sourceMappingURL=showdown.min.js.map
-1482
old/style.css
··· 1 - /* 2 - Template Name: Gorgo 3 - Author: Levent Usta 4 - Author URI: http://www.aristotheme.com 5 - Description: A template by Aristotheme. 6 - */ 7 - 8 - /*=================================*/ 9 - /* Table of Contents 10 - /* - Reset & Clearfix Styles 11 - /* - Main Styles 12 - /* - Titles 13 - /* - Navigation Styles 14 - /* - Projects Feed 15 - /* - Project Assets 16 - /* - Project Content 17 - /* - Paginations 18 - /* - News 19 - /* - Structure 20 - /* - Grid 21 - /* - Footer Styles 22 - /* - Media Queries 23 - 24 - 25 - /*=================================*/ 26 - 27 - /*=================================*/ 28 - /* Reset & Clearfix Styles 29 - /*=================================*/ 30 - 31 - html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } :focus { outline: 0; } ins { text-decoration: none; } del { text-decoration: line-through; } table { border-collapse: collapse; border-spacing: 0; } 32 - 33 - .cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } 34 - 35 - /*=================================*/ 36 - /* Main Styles 37 - /*=================================*/ 38 - 39 - * { box-sizing: border-box; } 40 - html { 41 - font-family: sans-serif; /* 1 */ 42 - -ms-text-size-adjust: 100%; /* 2 */ 43 - -webkit-text-size-adjust: 100%; /* 2 */ 44 - } 45 - body { 46 - background: #2c2c2c; 47 - color: white; 48 - font-family: 'quicksand', Arial, sans-serif; 49 - font-size: 18px; 50 - line-height: 1.65; 51 - opacity: 0; 52 - overflow-x: hidden; 53 - transition: opacity 0.25s ease-in 0.1s; 54 - word-wrap: break-word; 55 - -webkit-text-size-adjust: none; 56 - } 57 - body.loaded, 58 - .no-js body { 59 - opacity: 1; 60 - } 61 - a, a:visited { 62 - color: #28675d; 63 - text-decoration: none; 64 - transition: color 0.1s ease-in-out; 65 - } 66 - a:hover, a:active { 67 - color: #6a9e95; 68 - text-decoration: none; 69 - } 70 - 71 - h1,h2,h3 { 72 - font-weight: bold; 73 - line-height: 1.5; 74 - } 75 - h1 { 76 - font-size: 2.2rem; 77 - letter-spacing: -1px; 78 - margin: 0 0 40px; 79 - } 80 - 81 - h2 { 82 - font-size: 1.8rem; 83 - margin: 0; 84 - } 85 - 86 - h3 { 87 - font-size: 1.4rem; 88 - } 89 - 90 - h4 { 91 - font-size: 1.2rem; 92 - } 93 - 94 - h5 { 95 - font-size: 1rem; 96 - } 97 - 98 - h6 { 99 - font-size: .8rem; 100 - } 101 - 102 - h3, 103 - h4, 104 - h5, 105 - h6 { 106 - text-transform: uppercase; 107 - margin: 0 0 10px; 108 - } 109 - h4, 110 - h5, 111 - h6 { 112 - font-weight: normal; 113 - } 114 - p,li { 115 - font-weight: 400; 116 - font-size: 1.2rem; 117 - line-height: 1.5; 118 - margin: 0 0 20px; 119 - } 120 - small { 121 - font-weight: 300; 122 - font-size: 1rem; 123 - color: #575f62 124 - } 125 - img { 126 - height: auto; 127 - max-width: 100%; 128 - vertical-align: bottom; 129 - } 130 - 131 - hr{ 132 - border: 0; 133 - height: 4px; 134 - margin: 40px 0; 135 - background: #000; 136 - } 137 - 138 - pre, 139 - code, 140 - samp { 141 - font-family: "quicksand", Consolas, monospace; 142 - font-size: inherit; 143 - } 144 - 145 - pre, 146 - code { 147 - background-color: #222426; 148 - border-radius: 3px; 149 - } 150 - 151 - pre { 152 - margin-top: 0; 153 - margin-bottom: 1rem; 154 - overflow-x: scroll; 155 - padding: 1rem; 156 - } 157 - 158 - .example { 159 - border-bottom-left-radius: 0; 160 - border-bottom-right-radius: 0; 161 - background-color: #1b1d1e; 162 - position: relative; 163 - padding: 2rem 1rem; 164 - } 165 - 166 - .example-title { 167 - position: absolute; 168 - top: 0; 169 - right: 0; 170 - background-color: #222426; 171 - padding: 0 1rem; 172 - border-top-right-radius: 3px; 173 - border-bottom-left-radius: 3px; 174 - } 175 - .example + pre { 176 - border-top-left-radius: 0; 177 - border-top-right-radius: 0; 178 - /*border: 1px solid #ccc;*/ 179 - /*border-top: 0;*/ 180 - } 181 - pre { 182 - margin-bottom: 2rem; 183 - } 184 - 185 - .site-header { 186 - background-image: url("img/banner.png"); 187 - background-color: #008037; 188 - background-repeat: no-repeat; 189 - background-position: center; 190 - } 191 - 192 - /*===== Titles =====*/ 193 - .site-title { 194 - font-family: 'Righteous',helvetica,sans-serif; 195 - font-size: 26px; 196 - color: #069780; 197 - background-color: rgba(20, 20, 20, 0.5); 198 - line-height: 1.5em; 199 - position: relative; 200 - z-index: 12; 201 - letter-spacing: 4px; 202 - margin-bottom: 120px; 203 - } 204 - .site-title a { 205 - position: fixed; 206 - padding: 10px; 207 - } 208 - .site-title a, 209 - .site-title a:visited { color: #28675d; } 210 - .site-title a:hover, 211 - .site-title a:active { 212 - color: #069780; 213 - background-color: rgba(20, 20, 20, 0.5); 214 - opacity: 0.8; 215 - } 216 - .site-title div { display: inline; } 217 - .site-tagline { 218 - clear: both; 219 - margin-bottom: 40px; 220 - width: 100%; 221 - background-color: rgba(20, 20, 20, 0.5); 222 - padding: 10px; 223 - } 224 - .site-tagline p { 225 - color: #e1e1e1; 226 - font-size: 21px; 227 - text-align: left; 228 - width: 90%; 229 - } 230 - .site-tagline a, 231 - .site-tagline a:visited { color: #28675d; } 232 - .site-tagline a:hover { 233 - color: #298db0; 234 - } 235 - /*=================================*/ 236 - /* Language Styles 237 - /*=================================*/ 238 - .languages { 239 - position: relative; 240 - z-index: 1; 241 - float: right; 242 - -webkit-transition: -webkit-transform 0.5s; 243 - -moz-transition: -moz-transform 0.5s; 244 - transition: transform 0.5s; 245 - } 246 - .languages ul { 247 - list-style: none; 248 - margin: 0; 249 - padding: 0; 250 - } 251 - .languages ul li { 252 - display: inline-block; 253 - margin: 0; 254 - } 255 - .languages ul li a { 256 - color: #e1e1e1; 257 - font-weight: bold; 258 - font-size: 14px; 259 - line-height: 14px; 260 - } 261 - .languages ul li a:hover { 262 - color: #28675d; 263 - } 264 - 265 - .languages ul li.active a { 266 - color: #e1e1e1; 267 - } 268 - /*=================================*/ 269 - /* Navigation Styles 270 - /*=================================*/ 271 - .cd-nav-trigger { 272 - position: fixed; 273 - z-index: 999; 274 - right: 20px; 275 - top: 34px; 276 - height: 54px; 277 - width: 54px; 278 - background-color: #727272; 279 - border-radius: 50%; 280 - /* image replacement */ 281 - overflow: hidden; 282 - text-indent: 100%; 283 - white-space: nowrap; 284 - -webkit-transition: -webkit-transform 0.5s; 285 - -moz-transition: -moz-transform 0.5s; 286 - transition: transform 0.5s; 287 - } 288 - .cd-nav-trigger .cd-nav-icon { 289 - /* icon created in CSS */ 290 - position: absolute; 291 - z-index: 12; 292 - left: 50%; 293 - top: 50%; 294 - bottom: auto; 295 - right: auto; 296 - -webkit-transform: translateX(-50%) translateY(-50%); 297 - -moz-transform: translateX(-50%) translateY(-50%); 298 - -ms-transform: translateX(-50%) translateY(-50%); 299 - -o-transform: translateX(-50%) translateY(-50%); 300 - transform: translateX(-50%) translateY(-50%); 301 - width: 22px; 302 - height: 2px; 303 - background-color: #181a1b; 304 - } 305 - .cd-nav-trigger .cd-nav-icon::before, .cd-nav-trigger .cd-nav-icon:after { 306 - /* upper and lower lines of the menu icon */ 307 - content: ''; 308 - position: absolute; 309 - top: 0; 310 - right: 0; 311 - width: 100%; 312 - height: 100%; 313 - background-color: inherit; 314 - /* Force Hardware Acceleration in WebKit */ 315 - -webkit-transform: translateZ(0); 316 - -moz-transform: translateZ(0); 317 - -ms-transform: translateZ(0); 318 - -o-transform: translateZ(0); 319 - transform: translateZ(0); 320 - -webkit-backface-visibility: hidden; 321 - backface-visibility: hidden; 322 - -webkit-transition: -webkit-transform 0.5s, width 0.5s, top 0.3s; 323 - -moz-transition: -moz-transform 0.5s, width 0.5s, top 0.3s; 324 - transition: transform 0.5s, width 0.5s, top 0.3s; 325 - } 326 - .cd-nav-trigger .cd-nav-icon::before { 327 - -webkit-transform-origin: right top; 328 - -moz-transform-origin: right top; 329 - -ms-transform-origin: right top; 330 - -o-transform-origin: right top; 331 - transform-origin: right top; 332 - -webkit-transform: translateY(-6px); 333 - -moz-transform: translateY(-6px); 334 - -ms-transform: translateY(-6px); 335 - -o-transform: translateY(-6px); 336 - transform: translateY(-6px); 337 - } 338 - .cd-nav-trigger .cd-nav-icon::after { 339 - -webkit-transform-origin: right bottom; 340 - -moz-transform-origin: right bottom; 341 - -ms-transform-origin: right bottom; 342 - -o-transform-origin: right bottom; 343 - transform-origin: right bottom; 344 - -webkit-transform: translateY(6px); 345 - -moz-transform: translateY(6px); 346 - -ms-transform: translateY(6px); 347 - -o-transform: translateY(6px); 348 - transform: translateY(6px); 349 - } 350 - .no-touch .cd-nav-trigger:hover .cd-nav-icon::after { 351 - top: 2px; 352 - } 353 - .no-touch .cd-nav-trigger:hover .cd-nav-icon::before { 354 - top: -2px; 355 - } 356 - .cd-nav-trigger svg { 357 - position: absolute; 358 - top: 0; 359 - left: 0; 360 - } 361 - .cd-nav-trigger circle { 362 - /* circle border animation */ 363 - -webkit-transition: stroke-dashoffset 0.4s 0s; 364 - -moz-transition: stroke-dashoffset 0.4s 0s; 365 - transition: stroke-dashoffset 0.4s 0s; 366 - } 367 - .navigation-is-open .cd-nav-trigger { 368 - /* rotate trigger when navigation becomes visible */ 369 - -webkit-transform: rotate(180deg); 370 - -moz-transform: rotate(180deg); 371 - -ms-transform: rotate(180deg); 372 - -o-transform: rotate(180deg); 373 - transform: rotate(180deg); 374 - } 375 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::after, 376 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 377 - /* animate arrow --> from hamburger to arrow */ 378 - width: 50%; 379 - -webkit-transition: -webkit-transform 0.5s, width 0.5s; 380 - -moz-transition: -moz-transform 0.5s, width 0.5s; 381 - transition: transform 0.5s, width 0.5s; 382 - } 383 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 384 - -webkit-transform: rotate(45deg); 385 - -moz-transform: rotate(45deg); 386 - -ms-transform: rotate(45deg); 387 - -o-transform: rotate(45deg); 388 - transform: rotate(45deg); 389 - } 390 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::after { 391 - -webkit-transform: rotate(-45deg); 392 - -moz-transform: rotate(-45deg); 393 - -ms-transform: rotate(-45deg); 394 - -o-transform: rotate(-45deg); 395 - transform: rotate(-45deg); 396 - } 397 - .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::after, .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::before { 398 - top: 0; 399 - } 400 - .navigation-is-open .cd-nav-trigger circle { 401 - stroke-dashoffset: 0; 402 - -webkit-transition: stroke-dashoffset 0.4s 0.3s; 403 - -moz-transition: stroke-dashoffset 0.4s 0.3s; 404 - transition: stroke-dashoffset 0.4s 0.3s; 405 - } 406 - .cd-nav { 407 - position: fixed; 408 - z-index: 12; 409 - top: 0; 410 - left: 0; 411 - height: 100%; 412 - width: 100%; 413 - background-color: #212425; 414 - visibility: hidden; 415 - -webkit-transition: visibility 0s 0.7s; 416 - -moz-transition: visibility 0s 0.7s; 417 - transition: visibility 0s 0.7s; 418 - } 419 - .cd-nav .cd-navigation-wrapper { 420 - /* all navigation content */ 421 - padding: 20px; 422 - height: 100%; 423 - overflow-y: auto; 424 - -webkit-overflow-scrolling: touch; 425 - 426 - /* Force Hardware Acceleration in WebKit */ 427 - -webkit-transform: translateZ(0); 428 - -moz-transform: translateZ(0); 429 - -ms-transform: translateZ(0); 430 - -o-transform: translateZ(0); 431 - transform: translateZ(0); 432 - -webkit-backface-visibility: hidden; 433 - backface-visibility: hidden; 434 - -webkit-transform: translateX(-50%); 435 - -moz-transform: translateX(-50%); 436 - -ms-transform: translateX(-50%); 437 - -o-transform: translateX(-50%); 438 - transform: translateX(-50%); 439 - -webkit-transition: -webkit-transform 0.7s; 440 - -moz-transition: -moz-transform 0.7s; 441 - transition: transform 0.7s; 442 - -webkit-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 443 - -moz-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 444 - transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 445 - } 446 - .navigation-is-open .cd-nav { 447 - visibility: visible; 448 - -webkit-transition: visibility 0s 0s; 449 - -moz-transition: visibility 0s 0s; 450 - transition: visibility 0s 0s; 451 - } 452 - .navigation-is-open .cd-nav .cd-navigation-wrapper { 453 - -webkit-transform: translateX(0); 454 - -moz-transform: translateX(0); 455 - -ms-transform: translateX(0); 456 - -o-transform: translateX(0); 457 - transform: translateX(0); 458 - -webkit-transition: -webkit-transform 0.5s; 459 - -moz-transition: -moz-transform 0.5s; 460 - transition: transform 0.5s; 461 - -webkit-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 462 - -moz-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 463 - transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 464 - } 465 - 466 - .cd-nav .cd-primary-nav { 467 - margin-top: 90px; 468 - } 469 - .cd-nav .cd-primary-nav a { 470 - font-size: 21px; 471 - display: inline-block; 472 - } 473 - .cd-nav .cd-primary-nav a.selected { 474 - color: #b6b6b6; 475 - } 476 - .no-touch .cd-nav .cd-primary-nav a:hover { 477 - color: #b6b6b6; 478 - } 479 - .cd-nav .cd-contact-info { 480 - margin-top: 20px; 481 - margin-bottom: 20px; 482 - } 483 - .cd-nav .cd-contact-info li { 484 - margin-bottom: 0.5em; 485 - line-height: 1.2; 486 - color: rgba(24, 26, 27, 0.3); 487 - } 488 - .cd-nav .cd-contact-info a { 489 - color: #e1e1e1; 490 - } 491 - .cd-nav .cd-contact-info a:hover { 492 - color: #82888b; 493 - } 494 - .cd-nav .cd-contact-info span { 495 - display: block; 496 - } 497 - .cd-nav .cd-contact-info li, 498 - .cd-nav .cd-contact-info a, 499 - .cd-nav .cd-contact-info span { 500 - font-size: 18px; 501 - } 502 - 503 - .cd-nav .cd-contact-socials li { 504 - line-height: 1.8; 505 - } 506 - .cd-nav .cd-contact-socials a { 507 - color: #e1e1e1; 508 - text-transform: uppercase; 509 - letter-spacing: 2px; 510 - font-size: 16px 511 - } 512 - .cd-nav .cd-contact-socials a:hover { 513 - color: #82888b; 514 - } 515 - .no-js main { 516 - height: auto; 517 - overflow: visible; 518 - } 519 - 520 - .no-js .cd-nav { 521 - position: static; 522 - visibility: visible; 523 - } 524 - .no-js .cd-nav .cd-navigation-wrapper { 525 - height: auto; 526 - overflow: visible; 527 - padding: 100px 5%; 528 - -webkit-transform: translateX(0); 529 - -moz-transform: translateX(0); 530 - -ms-transform: translateX(0); 531 - -o-transform: translateX(0); 532 - transform: translateX(0); 533 - } 534 - /*===== Projects Feed =====*/ 535 - .projects-feed { 536 - clear: both; 537 - } 538 - .projects-feed .project { 539 - background: #181a1b; 540 - opacity: 0; 541 - overflow: hidden; 542 - position: relative; 543 - transition: opacity 0.25s ease-in 0.1s; 544 - width: 100%; 545 - } 546 - .no-js .projects-feed .project, 547 - .projects-feed .loaded { 548 - opacity: 1; 549 - } 550 - .projects-feed .project .overlay { 551 - background: #181a1b; 552 - background: rgba(24, 26, 27, 0.6); 553 - height: 100%; 554 - opacity: 0; 555 - position: absolute; 556 - top: 0; right: 0; bottom: 0; left: 0; 557 - -webkit-transition: opacity 0.15s ease-in-out; 558 - transition: opacity 0.15s ease-in-out; 559 - width: 100%; 560 - } 561 - .no-touch .projects-feed .project a:hover .overlay { 562 - opacity: 1; 563 - } 564 - .projects-feed .project-content-container { 565 - position: relative; 566 - width: 100%; 567 - padding-bottom: 100%; 568 - } 569 - .projects-feed .project-content-container::before { 570 - border-left: 22px solid transparent; 571 - border-right: 22px solid transparent; 572 - border-bottom: 22px solid #181a1b; 573 - content: ''; 574 - display: block; 575 - height: 0; 576 - margin: auto; 577 - position: absolute; 578 - top: -22px; left: 0; right: 0; 579 - width: 0; 580 - } 581 - .projects-feed .project-content { 582 - position: absolute; 583 - top: 0; right: 0; bottom: 0; left: 0; 584 - padding: 20px; 585 - } 586 - .table { 587 - display: table; 588 - height: 100%; 589 - width: 100%; 590 - } 591 - .table-cell { 592 - display: table-cell; 593 - height: 100%; 594 - width: 100%; 595 - vertical-align: middle; 596 - } 597 - .thumbnail-title { 598 - color: #e1e1e1; 599 - font-family: 'Righteous',helvetica,sans-serif; 600 - font-size: 21px; 601 - margin: 0 auto 10px auto; 602 - text-align: left; 603 - letter-spacing: 4px; 604 - text-transform:uppercase; 605 - max-width: 700px; 606 - text-align: center; 607 - width: 75%; 608 - word-wrap: break-word; 609 - } 610 - .thumbnail-description { 611 - color: #e1e1e1; 612 - font-family: 'quicksand', Arial, sans-serif; 613 - font-size: 16px; 614 - margin: 0 auto; 615 - max-height: 5em; 616 - max-width: 360px; 617 - text-align: left; 618 - width: 75%; 619 - text-transform: uppercase; 620 - } 621 - /*===== Project Assets =====*/ 622 - .thumb img { 623 - width: 100%; 624 - height: auto; 625 - } 626 - div.image, 627 - div.audio, 628 - div.video { 629 - text-align: center; 630 - transition: opacity 0.25s ease-in 0.1s; 631 - } 632 - .no-js div.image, 633 - .no-js div.audio, 634 - .no-js div.video, 635 - div.loaded { opacity: 1; } 636 - div.image img { width: 100%; } 637 - 638 - .view { 639 - cursor: -webkit-zoom-in; 640 - cursor: -moz-zoom-in; 641 - } 642 - /*===== Project Content =====*/ 643 - .project-meta { 644 - font-family: 'quicksand', Arial, sans-serif; 645 - font-size: 14px; 646 - color: #3e4446; 647 - margin-top: 28px; 648 - } 649 - .project-meta > span::before { 650 - content: "\002F"; 651 - margin: 0 5px 0 3px; 652 - } 653 - .project-meta > span:first-child::before { content: none; } 654 - .project-meta a, 655 - .project-meta a:visited { 656 - color: #3e4446; 657 - transition: opacity 0.2s ease-in-out; 658 - } 659 - .project-meta a:hover { color: #28675d; } 660 - .project-meta .tags { margin-top: 17px; } 661 - .project-meta .tags a { margin-left: 10px; } 662 - .project-meta .tags a:first-child { margin-left: 0; } 663 - 664 - /*===== Paginations =====*/ 665 - nav[role="navigation"] { 666 - text-align: center; 667 - } 668 - 669 - .cd-pagination { 670 - margin: 2em auto 2em; 671 - text-align: center; 672 - } 673 - .cd-pagination li { 674 - /* hide numbers on small devices */ 675 - display: none; 676 - margin: 0 .2em; 677 - } 678 - .cd-pagination li.button { 679 - /* make sure prev next buttons are visible */ 680 - display: inline-block; 681 - } 682 - .cd-pagination a, .cd-pagination span { 683 - display: inline-block; 684 - -webkit-user-select: none; 685 - -moz-user-select: none; 686 - -ms-user-select: none; 687 - user-select: none; 688 - /* use padding and font-size to change buttons size */ 689 - padding: .6em .8em; 690 - font-size: 18p 691 - x; 692 - 693 - } 694 - .cd-pagination a { 695 - border: 1px solid #26292b; 696 - } 697 - .no-touch .cd-pagination a:hover { 698 - background-color: #1f2223; 699 - } 700 - .cd-pagination a:active { 701 - /* click effect */ 702 - -webkit-transform: scale(0.9); 703 - -moz-transform: scale(0.9); 704 - -ms-transform: scale(0.9); 705 - -o-transform: scale(0.9); 706 - transform: scale(0.9); 707 - } 708 - .cd-pagination a.disabled { 709 - /* button disabled */ 710 - color: rgba(37, 51, 70, 0.4); 711 - pointer-events: none; 712 - } 713 - .cd-pagination a.disabled::before, .cd-pagination a.disabled::after { 714 - opacity: .4; 715 - } 716 - .cd-pagination .button:first-of-type a::before { 717 - content: '\00ab '; 718 - } 719 - .cd-pagination .button:last-of-type a::after { 720 - content: ' \00bb'; 721 - } 722 - .cd-pagination .current { 723 - /* selected number */ 724 - background-color: #28675d; 725 - border-color: #28675d; 726 - color: #181a1b; 727 - pointer-events: none; 728 - } 729 - @media only screen and (min-width: 768px) { 730 - .cd-pagination li { 731 - display: inline-block; 732 - } 733 - } 734 - @media only screen and (min-width: 1170px) { 735 - .cd-pagination { 736 - margin: 4em auto 4em; 737 - } 738 - } 739 - 740 - .cd-pagination.custom-icons .button a { 741 - position: relative; 742 - 743 - } 744 - .cd-pagination.custom-icons .button:first-of-type a { 745 - padding-left: 2.4em; 746 - } 747 - .cd-pagination.custom-icons .button:last-of-type a { 748 - padding-right: 2.4em; 749 - } 750 - .cd-pagination.custom-icons .button:first-of-type a::before, 751 - .cd-pagination.custom-icons .button:last-of-type a::after { 752 - content: ''; 753 - position: absolute; 754 - display: inline-block; 755 - /* set size for custom icons */ 756 - width: 16px; 757 - height: 16px; 758 - top: 50%; 759 - /* set margin-top = icon height/2 */ 760 - margin-top: -8px; 761 - background: transparent url("img/cd-icon-arrow.svg") no-repeat center center; 762 - } 763 - 764 - .cd-pagination.custom-icons .button-main a { 765 - background: transparent url("img/portfolio-icon.svg") no-repeat center center; 766 - } 767 - 768 - .cd-pagination.custom-icons .button-main a:hover { 769 - background: transparent url("img/portfolio-icon.svg") no-repeat center center; 770 - border:1px solid #212425; 771 - -webkit-transition: border 1s; 772 - -moz-transition: border 1s; 773 - transition: border 1s; 774 - } 775 - 776 - .button-submit a:hover { 777 - border: 1px solid #212425; 778 - -webkit-transition: border 1s; 779 - -moz-transition: border 1s; 780 - transition: border 1s; 781 - } 782 - 783 - .button-submit i { 784 - font-style: normal; 785 - } 786 - 787 - .cd-pagination.custom-icons .button:first-of-type a::before { 788 - left: .8em; 789 - } 790 - .cd-pagination.custom-icons .button:last-of-type a::after { 791 - right: .8em; 792 - -webkit-transform: rotate(180deg); 793 - -moz-transform: rotate(180deg); 794 - -ms-transform: rotate(180deg); 795 - -o-transform: rotate(180deg); 796 - transform: rotate(180deg); 797 - } 798 - 799 - .cd-pagination.animated-buttons a, 800 - .cd-pagination.animated-buttons span { 801 - padding: 0 1.4em; 802 - height: 50px; 803 - line-height: 50px; 804 - overflow: hidden; 805 - } 806 - .cd-pagination.animated-buttons .button a { 807 - position: relative; 808 - padding: 0 2em; 809 - } 810 - .cd-pagination.animated-buttons .button:first-of-type a::before, 811 - .cd-pagination.animated-buttons .button:last-of-type a::after { 812 - left: 50%; 813 - -webkit-transform: translateX(-50%); 814 - -moz-transform: translateX(-50%); 815 - -ms-transform: translateX(-50%); 816 - -o-transform: translateX(-50%); 817 - transform: translateX(-50%); 818 - right: auto; 819 - -webkit-transition: -webkit-transform 0.3s; 820 - -moz-transition: -moz-transform 0.3s; 821 - transition: transform 0.3s; 822 - } 823 - 824 - .cd-pagination.animated-buttons .button:last-of-type a::after { 825 - -webkit-transform: translateX(-50%) rotate(180deg); 826 - -moz-transform: translateX(-50%) rotate(180deg); 827 - -ms-transform: translateX(-50%) rotate(180deg); 828 - -o-transform: translateX(-50%) rotate(180deg); 829 - transform: translateX(-50%) rotate(180deg); 830 - } 831 - .cd-pagination.animated-buttons i { 832 - display: block; 833 - height: 100%; 834 - -webkit-transform: translateY(100%); 835 - -moz-transform: translateY(100%); 836 - -ms-transform: translateY(100%); 837 - -o-transform: translateY(100%); 838 - transform: translateY(100%); 839 - -webkit-transition: -webkit-transform 0.3s; 840 - -moz-transition: -moz-transform 0.3s; 841 - transition: transform 0.3s; 842 - font-style: normal; 843 - 844 - } 845 - 846 - .no-touch .cd-pagination.animated-buttons .button a:hover i { 847 - -webkit-transform: translateY(0); 848 - -moz-transform: translateY(0); 849 - -ms-transform: translateY(0); 850 - -o-transform: translateY(0); 851 - transform: translateY(0); 852 - } 853 - 854 - .no-touch .cd-pagination.animated-buttons .button:first-of-type a:hover::before { 855 - -webkit-transform: translateX(-50%) translateY(-50px); 856 - -moz-transform: translateX(-50%) translateY(-50px); 857 - -ms-transform: translateX(-50%) translateY(-50px); 858 - -o-transform: translateX(-50%) translateY(-50px); 859 - transform: translateX(-50%) translateY(-50px); 860 - } 861 - 862 - .no-touch .cd-pagination.animated-buttons .button:last-of-type a:hover::after { 863 - -webkit-transform: translateX(-50%) rotate(180deg) translateY(50px); 864 - -moz-transform: translateX(-50%) rotate(180deg) translateY(50px); 865 - -ms-transform: translateX(-50%) rotate(180deg) translateY(50px); 866 - -o-transform: translateX(-50%) rotate(180deg) translateY(50px); 867 - transform: translateX(-50%) rotate(180deg) translateY(50px); 868 - } 869 - 870 - 871 - /*===== News =====*/ 872 - .news .blog_item:nth-child(odd) { background: #28675d; } 873 - .news .blog_item:nth-child(even) { background: #1b1d1e; } 874 - .blog_item { 875 - padding: 80px 50px; 876 - position: relative; 877 - transition: all 0.5s; 878 - cursor: pointer; 879 - } 880 - .blog_item h1, .blog_item h5 { 881 - transition: all 0.5s; 882 - } 883 - .blog_item h5 { 884 - font-size: 0.7em; 885 - } 886 - .blog_item .abs_bg { 887 - display: block; 888 - z-index: 1; 889 - position: absolute; 890 - left: 0; 891 - top: 0; 892 - width: 100%; 893 - height: 100%; 894 - background-size: cover; 895 - transition: all 0.5s; 896 - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 897 - filter: alpha(opacity=0); 898 - -moz-opacity: 0; 899 - -khtml-opacity: 0; 900 - opacity: 0; 901 - } 902 - .blog_item .blog_item_inner { 903 - z-index: 2; 904 - position: relative; 905 - } 906 - .blog_item .full_link { 907 - z-index: 3; 908 - position: absolute; 909 - width: 100%; 910 - height: 100%; 911 - top:0; 912 - left:0; 913 - } 914 - .blog_item:hover { 915 - color: #28675d; 916 - } 917 - .blog_item:nth-child(odd):hover { 918 - background-color: #2c2c2c; 919 - } 920 - .blog_item:nth-child(even):hover { 921 - background-color: #000; 922 - } 923 - .blog_item:hover h1, .blog_item:hover h5 { 924 - color: #28675d; 925 - } 926 - .blog_item:hover .abs_bg { 927 - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 928 - filter: alpha(opacity=50); 929 - -moz-opacity: 0.5; 930 - -khtml-opacity: 0.5; 931 - opacity: 0.5; 932 - } 933 - .blog_item h1 { 934 - overflow: hidden; 935 - width: 100%; 936 - font-size: 1.4rem; 937 - } 938 - #blog .blog_item h1 { 939 - overflow: hidden; 940 - } 941 - /*===== Footer =====*/ 942 - .site-footer { padding: 40px 200px;} 943 - 944 - /*=================================*/ 945 - /* Structure 946 - /*=================================*/ 947 - 948 - .site-container { 949 - margin: 0 auto; 950 - } 951 - .site-header, 952 - .page-desc { 953 - padding: 40px 20px; 954 - width: 100%; 955 - } 956 - 957 - .page-desc img { 958 - margin:40px 0; 959 - } 960 - .page-desc ul { 961 - margin: 60px 0; 962 - } 963 - .page-desc li { 964 - list-style-type: disc; 965 - margin-left: 60px; 966 - } 967 - .row { 968 - margin-top: 40px; 969 - } 970 - .site-content { 971 - clear: both; 972 - } 973 - .site-content figure{ 974 - margin:0; 975 - padding: 0; 976 - } 977 - .site-footer { padding: 40px 20px; } 978 - .right { 979 - float: right; 980 - margin: 0px 0px 40px 40px ; 981 - } 982 - .left { 983 - float: left; 984 - margin: 0px 40px 40px 0px ; 985 - } 986 - 987 - /*=================================*/ 988 - /* Grid System 989 - /*=================================*/ 990 - 991 - .row { 992 - overflow: hidden; 993 - } 994 - .large-1, .large-2, .large-3, .large-4 { 995 - width: 100%; 996 - margin-bottom: 40px; 997 - } 998 - .large-1:nth-child(1n), .large-2:nth-child(1n), .large-3:nth-child(1n), .large-4:nth-child(1n) { 999 - float: left; 1000 - } 1001 - .large-1:last-child, .large-2:last-child, .large-3:last-child, .large-4:last-child{ 1002 - float: right; 1003 - } 1004 - 1005 - 1006 - 1007 - /*=================================*/ 1008 - /* Footer Styles 1009 - /*=================================*/ 1010 - .site-footer { 1011 - color: #e1e1e1; 1012 - font-family: 'quicksand', Arial, sans-serif; 1013 - } 1014 - .site-footer p { margin: 0; font-size: 16px;display: inline; color: #e1e1e1;} 1015 - .site-footer a, 1016 - .site-footer a:visited { color: #e1e1e1; } 1017 - .site-footer a:hover { color: #28675d; } 1018 - 1019 - /*=================================*/ 1020 - /* Media Queries 1021 - /*=================================*/ 1022 - 1023 - 1024 - 1025 - @media only screen and (min-width: 401px) { 1026 - 1027 - /*===== Titles =====*/ 1028 - .site-tagline p { 1029 - font-size: 28px; 1030 - } 1031 - /*===== Navigations =====*/ 1032 - .cd-nav-trigger { 1033 - top: 34px; 1034 - right: 40px; 1035 - } 1036 - .cd-nav .cd-navigation-wrapper { 1037 - padding: 40px; 1038 - } 1039 - /*===== Projects =====*/ 1040 - .projects-feed .thumb, 1041 - .projects-feed .project-content-container { 1042 - float: left; 1043 - width: 50%; 1044 - } 1045 - .projects-feed .project-content-container { padding-bottom: 50%; } 1046 - .projects-feed .project:nth-child(2n) .thumb { float: right; } 1047 - /* Thumb on the left */ 1048 - .projects-feed .project:nth-child(2n+1) .project-content-container::before { 1049 - border-top: 22px solid transparent; 1050 - border-left: none; 1051 - border-bottom: 22px solid transparent; 1052 - border-right: 22px solid #181a1b; 1053 - left: -22px; top: 0; bottom: 0; right: initial; 1054 - } 1055 - /* Thumb on the right */ 1056 - .projects-feed .project:nth-child(2n) .project-content-container::before { 1057 - border-top: 22px solid transparent; 1058 - border-right: none; 1059 - border-bottom: 22px solid transparent; 1060 - border-left: 22px solid #181a1b; 1061 - left: initial; top: 0; bottom: 0; right: -22px; 1062 - } 1063 - /*===== Footer =====*/ 1064 - .site-footer { padding: 40px } 1065 - 1066 - } 1067 - 1068 - @media only screen and (min-width: 600px) { 1069 - 1070 - /*===== Structure s =====*/ 1071 - .site-header, 1072 - .page-desc { 1073 - padding: 60px; 1074 - } 1075 - .page-desc h1, 1076 - .page-desc h2, 1077 - .page-desc h3{ 1078 - font-size: 2.8rem; 1079 - } 1080 - /*===== Titles =====*/ 1081 - .site-title { 1082 - margin-bottom: 120px; 1083 - } 1084 - .site-tagline { 1085 - margin-bottom: 60px; 1086 - } 1087 - .site-tagline p { 1088 - font-size: 36px; 1089 - } 1090 - /*===== Navigations =====*/ 1091 - .cd-nav-trigger { 1092 - top: 52px; 1093 - right: 60px; 1094 - } 1095 - .cd-nav .cd-navigation-wrapper { 1096 - padding: 60px 59px 60px calc(1px + 59px); 1097 - } 1098 - .cd-nav .cd-navigation-wrapper::after { 1099 - clear: both; 1100 - content: ""; 1101 - display: table; 1102 - } 1103 - .cd-nav .cd-half-block { 1104 - width: 50%; 1105 - float: left; 1106 - } 1107 - .cd-nav .cd-primary-nav { 1108 - margin-top: 160px; 1109 - } 1110 - .cd-nav .cd-primary-nav a { 1111 - font-size: 36px; 1112 - } 1113 - .cd-nav .cd-contact-info { 1114 - margin-top: 160px; 1115 - margin-bottom: 80px; 1116 - text-align: right; 1117 - } 1118 - .cd-nav .cd-contact-info li { 1119 - margin-bottom: 2em; 1120 - } 1121 - .cd-nav .cd-contact-socials { 1122 - text-align: right; 1123 - } 1124 - /*===== Blog =====*/ 1125 - .blog_item h1 { 1126 - font-size: 2rem; 1127 - width: 75%; 1128 - } 1129 - .blog_item h5 { 1130 - font-size: 0.8rem; 1131 - } 1132 - .blog_item { 1133 - padding: 100px 50px; 1134 - } 1135 - /*===== Footer =====*/ 1136 - .site-footer { padding: 40px 60px; } 1137 - 1138 - 1139 - } 1140 - 1141 - @media only screen and (min-width: 801px) { 1142 - 1143 - /*===== Structures =====*/ 1144 - .site-header, 1145 - .page-desc { 1146 - padding: 80px; 1147 - } 1148 - .row { 1149 - margin-top: 80px; 1150 - } 1151 - /*===== Titles =====*/ 1152 - .site-title { 1153 - margin-bottom: 160px; 1154 - } 1155 - .site-tagline { 1156 - margin-bottom: 80px; 1157 - } 1158 - .site-tagline p { 1159 - font-size: 42px; 1160 - } 1161 - /*===== Navigations =====*/ 1162 - .cd-nav-trigger { 1163 - top: 74px; 1164 - right: 80px; 1165 - } 1166 - .cd-nav .cd-navigation-wrapper { 1167 - padding: 60px 79px 60px calc(1px + 79px); 1168 - } 1169 - .cd-nav .cd-primary-nav a { 1170 - font-size: 42px; 1171 - } 1172 - .cd-nav .cd-contact-info li, 1173 - .cd-nav .cd-contact-info a, 1174 - .cd-nav .cd-contact-info span { 1175 - font-size: 21px; 1176 - } 1177 - /*===== Footer =====*/ 1178 - .site-footer { padding: 40px 80px; } 1179 - .footer-text { float: left; } 1180 - .footer-misc { float: right; } 1181 - /*===== Projects =====*/ 1182 - .thumbnail-title { 1183 - font-size: 28px; 1184 - } 1185 - .is_page .projects-feed { margin-top: 150px; } 1186 - .projects-feed .project { float: left; } 1187 - .projects-feed .project:nth-child(3n+1), 1188 - .projects-feed .project:nth-child(3n+3) { 1189 - /*max-width: 800px;*/ 1190 - width: 66.6667%; 1191 - } 1192 - .projects-feed .project:nth-child(3n+2) { 1193 - float: right; 1194 - /*max-width: 400px;*/ 1195 - width: 33.3333%; 1196 - } 1197 - .projects-feed .project:nth-child(3n+1) .thumb { float: left; } 1198 - .projects-feed .project:nth-child(3n+3) .thumb { float: right; } 1199 - .projects-feed .project:nth-child(3n+2) .thumb, 1200 - .projects-feed .project:nth-child(3n+2) .project-content-container { 1201 - float: none; 1202 - width: 100%; 1203 - } 1204 - .projects-feed .project:nth-child(3n+2) .project-content-container { padding-bottom: 100%; } 1205 - /* Thumb on the left */ 1206 - .projects-feed .project:nth-child(3n+1) .project-content-container::before { 1207 - border-top: 22px solid transparent; 1208 - border-left: none; 1209 - border-bottom: 22px solid transparent; 1210 - border-right: 22px solid #181a1b; 1211 - left: -22px; top: 0; bottom: 0; right: initial; 1212 - } 1213 - /* Thumb on the top */ 1214 - .projects-feed .project:nth-child(3n+2) .project-content-container::before { 1215 - border-left: 22px solid transparent; 1216 - border-top: none; 1217 - border-right: 22px solid transparent; 1218 - border-bottom: 22px solid #181a1b; 1219 - left: 0; top: -22px; bottom: initial; right: 0; 1220 - } 1221 - /* Thumb on the right */ 1222 - .projects-feed .project:nth-child(3n+3) .project-content-container::before { 1223 - border-top: 22px solid transparent; 1224 - border-right: none; 1225 - border-bottom: 22px solid transparent; 1226 - border-left: 22px solid #181a1b; 1227 - left: initial; top: 0; bottom: 0; right: -22px; 1228 - } 1229 - /*===== Paginations =====*/ 1230 - 1231 - /*===== Grid =====*/ 1232 - .large-1 { 1233 - width: 100%; 1234 - } 1235 - 1236 - .large-1:nth-child(1n) { 1237 - float: left; 1238 - } 1239 - 1240 - .large-1:last-child { 1241 - float: right; 1242 - } 1243 - 1244 - .large-2 { 1245 - width: 40%; 1246 - } 1247 - 1248 - .large-2:nth-child(1n) { 1249 - float: left; 1250 - } 1251 - 1252 - .large-2:last-child { 1253 - float: right; 1254 - } 1255 - 1256 - .large-3 { 1257 - width: 30%; 1258 - } 1259 - 1260 - .large-3:nth-child(1n) { 1261 - float: left; 1262 - } 1263 - 1264 - .large-3:last-child { 1265 - float: right; 1266 - } 1267 - 1268 - .large-4 { 1269 - width: 20%; 1270 - } 1271 - 1272 - .large-4:nth-child(1n) { 1273 - float: left; 1274 - } 1275 - 1276 - .large-4:last-child { 1277 - float: right; 1278 - } 1279 - 1280 - 1281 - } 1282 - 1283 - @media only screen and (min-width: 1200px) { 1284 - 1285 - /*===== Structures =====*/ 1286 - .site-header, 1287 - .page-desc { 1288 - padding: 100px 200px; 1289 - } 1290 - .row { 1291 - margin-top: 120px; 1292 - } 1293 - /*===== Titles =====*/ 1294 - .site-title { 1295 - margin-bottom: 200px; 1296 - } 1297 - .site-tagline { 1298 - margin-bottom: 100px; 1299 - width: 75%; 1300 - } 1301 - .site-tagline p { 1302 - font-size: 48px; 1303 - } 1304 - .site-tagline h1 { 1305 - font-size: 3.2rem; 1306 - } 1307 - .site-tagline h5 { 1308 - font-size: 1.4rem; 1309 - } 1310 - /*===== Navigations =====*/ 1311 - .cd-nav-trigger { 1312 - top: 94px; 1313 - right: 140px; 1314 - } 1315 - .cd-nav .cd-navigation-wrapper { 1316 - padding: 60px 140px 60px calc(58px + 140px); 1317 - } 1318 - .cd-nav .cd-primary-nav a { 1319 - font-size: 54px; 1320 - } 1321 - .cd-nav .cd-contact-info li, 1322 - .cd-nav .cd-contact-info a, 1323 - .cd-nav .cd-contact-info span { 1324 - font-size: 24px; 1325 - } 1326 - /*===== Projects =====*/ 1327 - .thumbnail-title { 1328 - font-size: 36px; 1329 - } 1330 - /*===== Paginations =====*/ 1331 - 1332 - /*===== Blog =====*/ 1333 - .blog_item h1 { 1334 - width: 75%; 1335 - font-size: 3.2rem; 1336 - } 1337 - .blog_item{ 1338 - padding: 200px; 1339 - } 1340 - .blog_item h5 { 1341 - font-size: 1rem; 1342 - } 1343 - /*===== Main Styles =====*/ 1344 - h1 { 1345 - font-size: 3.2rem; 1346 - } 1347 - 1348 - h2 { 1349 - font-size: 2.6rem; 1350 - } 1351 - 1352 - h3 { 1353 - font-size: 2.3rem; 1354 - } 1355 - 1356 - h4 { 1357 - font-size: 1.8rem; 1358 - } 1359 - 1360 - h5 { 1361 - font-size: 1.4rem; 1362 - } 1363 - 1364 - h6 { 1365 - font-size: 1rem; 1366 - } 1367 - 1368 - } 1369 - 1370 - @keyframes fadein { 1371 - from { 1372 - opacity: 0; 1373 - } 1374 - to { 1375 - opacity: 1; 1376 - } 1377 - } 1378 - 1379 - @-moz-keyframes fadein { 1380 - from { 1381 - opacity: 0; 1382 - } 1383 - to { 1384 - opacity: 1; 1385 - } 1386 - } 1387 - 1388 - @-webkit-keyframes fadein { 1389 - from { 1390 - opacity: 0; 1391 - } 1392 - to { 1393 - opacity: 1; 1394 - } 1395 - } 1396 - 1397 - @-ms-keyframes fadein { 1398 - from { 1399 - opacity: 0; 1400 - } 1401 - to { 1402 - opacity: 1; 1403 - } 1404 - } 1405 - 1406 - .project.project-page div.thumb,div.project-content-container { 1407 - width: 50%; 1408 - float: left; 1409 - padding: 10px; 1410 - -webkit-animation: fadein 2s; 1411 - -moz-animation: fadein 2s; 1412 - -ms-animation: fadein 2s; 1413 - -o-animation: fadein 2s; 1414 - animation: fadein 2s; 1415 - } 1416 - 1417 - .project.project-page:not(.active-project) { 1418 - display: none; 1419 - } 1420 - 1421 - .embed { 1422 - position: relative; 1423 - display: block; 1424 - width: 100%; 1425 - padding: 0; 1426 - overflow: hidden; 1427 - } 1428 - 1429 - .embed::before { 1430 - display: block; 1431 - content: ""; 1432 - } 1433 - 1434 - .embed .embed-item, 1435 - .embed iframe, 1436 - .embed embed, 1437 - .embed object, 1438 - .embed video { 1439 - position: absolute; 1440 - top: 0; 1441 - bottom: 0; 1442 - left: 0; 1443 - width: 100%; 1444 - height: 100%; 1445 - border: 0; 1446 - } 1447 - 1448 - .embed-16by9::before { 1449 - padding-top: 56.25%; 1450 - } 1451 - 1452 - .news:not(.active-news-page) { 1453 - display: none; 1454 - } 1455 - 1456 - textarea { 1457 - resize: none; 1458 - } 1459 - 1460 - .input { 1461 - width: 100%; 1462 - padding: 10px; 1463 - } 1464 - 1465 - .input input, 1466 - .input textarea { 1467 - margin: auto; 1468 - width: 50%; 1469 - display: block; 1470 - border-radius: 7px; 1471 - padding: 10px; 1472 - font-family: 'quicksand', Arial, sans-serif; 1473 - } 1474 - 1475 - li.button-submit { 1476 - display: inline-block; 1477 - } 1478 - 1479 - p[data-i18n="[html]about.bio"] div::after, p[data-i18n="[html]about.bio"] p::after { 1480 - content: "\a\a"; 1481 - white-space: pre; 1482 - }