{"version":3,"sources":["aPolyfill_promise.min.js","apolyfill_Function.name.js","behaviors.js","modernizr-custom.js","slick.js","velocity.min.js","wow.js","wow_init.js","Animations/Animations.js","CollapseContent/collapse_content.js","ContactForm/ContactForm.js","ContactMap/ContactMap.js","AffixColumn/AffixColumn.js","HeroHeader/HeroHeader.js","ImageSlider/ImageSlider.js","Offcanvas/betteroffcanvas.js","PageTransition/page_transition.js","PostSlider/PostSlider.js","SiteHeader/SiteHeader.js","TabbedContent/tabbed_content.js","TestimonialSlider/TestimonialSlider.js","VideoPlayer/VideoPlayer.js","ScrollEffects/ScrollEffects.js","BlogInner/BlogInner.js","Careers/Careers.js","PortfolioInner/PortfolioInner.js","PortfolioOverview/PortfolioOverview.js"],"names":[],"mappings":"AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/VA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC50FA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACl8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5iCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;AACA;AACA","file":"../script.js","sourcesContent":["!function(e){function n(){}function t(e,n){return function(){e.apply(n,arguments)}}function o(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],s(e,this)}function i(e,n){for(;3===e._state;)e=e._value;return 0===e._state?void e._deferreds.push(n):(e._handled=!0,void o._immediateFn(function(){var t=1===e._state?n.onFulfilled:n.onRejected;if(null===t)return void(1===e._state?r:u)(n.promise,e._value);var o;try{o=t(e._value)}catch(i){return void u(n.promise,i)}r(n.promise,o)}))}function r(e,n){try{if(n===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var i=n.then;if(n instanceof o)return e._state=3,e._value=n,void f(e);if(\"function\"==typeof i)return void s(t(i,n),e)}e._state=1,e._value=n,f(e)}catch(r){u(e,r)}}function u(e,n){e._state=2,e._value=n,f(e)}function f(e){2===e._state&&0===e._deferreds.length&&o._immediateFn(function(){e._handled||o._unhandledRejectionFn(e._value)});for(var n=0,t=e._deferreds.length;n=9 <12\n// * Chrome <33\nif (needsPolyfill) {\n // For:\n // * IE >=9 <12\n // * Chrome >=5 <33\n if (canDefineProp) {\n Object.defineProperty(Function.prototype, \"name\", {\n get: function() {\n var name = _name.call(this);\n\n // Since named function definitions have immutable names, also memoize the\n // output by defining the `name` property directly on this Function\n // instance so that this polyfill will not need to be invoked again\n if (this !== Function.prototype) {\n Object.defineProperty(this, \"name\", {\n value: name,\n configurable: true\n });\n }\n\n return name;\n },\n configurable: true\n });\n }\n // For:\n // * Chrome <5\n else if (canDefineGetter) {\n // NOTE:\n // The snippet:\n //\n // x.__defineGetter__('y', z);\n //\n // ...is essentially equivalent to:\n //\n // Object.defineProperty(x, 'y', {\n // get: z,\n // configurable: true, // <-- key difference #1\n // enumerable: true // <-- key difference #2\n // });\n //\n Function.prototype.__defineGetter__(\"name\", function() {\n var name = _name.call(this);\n\n // Since named function definitions have immutable names, also memoize the\n // output by defining the `name` property directly on this Function\n // instance so that this polyfill will not need to be invoked again\n if (this !== Function.prototype) {\n this.__defineGetter__(\"name\", function() { return name; });\n }\n\n return name;\n });\n }\n}\n\n})();","/*global define, window, document*/\n\n//Polyfill for Object.create.\nif (typeof Object.create !== 'function') {\n Object.create = (function () {\n \"use strict\";\n var Temp = function () {};\n return function (prototype) {\n if (arguments.length > 1) {\n throw new Error('Second argument not supported');\n }\n if (typeof prototype !== 'object') {\n throw new TypeError('Argument must be an object');\n }\n Temp.prototype = prototype;\n var result = new Temp();\n Temp.prototype = null;\n return result;\n };\n }());\n}\n\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"Behaviors\", [\"jquery\"], factory);\n } else {\n root.Behaviors = factory(root.jQuery);\n }\n}(this, function ($) {\n \"use strict\";\n\n var module = {},\n behavior_registry = {},\n content_ready_listeners = [],\n ElementMissingError = error(\"ElementMissingError\");\n \n /* Throttle an event handler.\n *\n * Returns a function which, no matter how frequently it's called, will\n * only trigger a maximum of once per timeout period. More specifically,\n * the first event will always be processed, then, no events will process\n * until the end of the timeout period. If one or more events occurred\n * during this period, the last event recieved will trigger immediately\n * after the end of the timeout period, as well as restart the throttling\n * period. Any preceding events will be discarded.\n *\n * Not to be confused with a debounce, which only fires the event handler\n * at the end of a string of events spaced closer than the timeout period.\n *\n * The nature of this function means that any passed in function's return\n * value will be discarded.\n */\n function throttle_single(func, timeout) {\n var lastTimeout, afterLastArgs, afterLastThis;\n\n function unthrottle() {\n if (afterLastArgs !== undefined) {\n func.apply(afterLastThis, afterLastArgs);\n afterLastArgs = undefined;\n lastTimeout = window.setTimeout(unthrottle, timeout);\n } else {\n lastTimeout = undefined;\n }\n }\n\n return function () {\n var myThis = this, myArgs = [], i;\n\n for (i = 0; i < arguments.length; i += 1) {\n myArgs.push(arguments[i]);\n }\n\n if (lastTimeout === undefined) {\n func.apply(myThis, myArgs);\n lastTimeout = window.setTimeout(unthrottle, timeout);\n } else {\n afterLastArgs = myArgs;\n afterLastThis = myThis;\n }\n };\n }\n\n function Behavior(elem) {\n //Do something to elem\n this.$elem = $(elem);\n }\n\n /* Find a behavior's markup.\n *\n * The $context argument passed to this function is the jQuery element that\n * will be searched for behaviors. Any additional arguments will be passed\n * to Behavior.locate and ultimately to the behavior's constructor.\n */\n Behavior.find_markup = function ($context) {\n var results = [], i, splitArgs = [], Class = this;\n\n for (i = 1; i < arguments.length; i += 1) {\n splitArgs.push(arguments[i]);\n }\n \n function processElem(index, elem) {\n var locateArgs = [elem].concat(splitArgs);\n\n results.push(Class.locate.apply(Class, locateArgs));\n }\n \n $context.filter(Class.QUERY).each(processElem);\n $context.find(Class.QUERY).each(processElem);\n\n return results;\n };\n\n /* Locate a behavior onto an element, returning an instance of that\n * behavior that you can work with.\n *\n * A behavior locates onto an element by instantiating an instance of\n * itself and installing it onto the markup's jQuery data. Therefore, we\n * will only instantiate that behavior once; and further calls to .locate\n * instead return the same object. Thus, it is safe to use .locate as a\n * general accessor - it is idempotent.\n *\n * The elem argument indicates the element that the behavior should locate\n * onto. Further arguments are passed onto the constructor.\n *\n * TODO: Is there a non-jQuery way of handling this?\n */\n Behavior.locate = function (elem) {\n var $elem = $(elem), new_object, i, objectArgs = [elem], Class = this,\n rc = $elem.data(\"behaviors-registered-classes\");\n \n if ($elem.length === 0) {\n throw new ElementMissingError(\"Attempted to locate a Behavior onto an empty element query.\");\n }\n\n if (rc === undefined) {\n rc = {};\n }\n\n if (rc[Class.name] === undefined) {\n //Grab the other arguments\n for (i = 1; i < arguments.length; i += 1) {\n objectArgs.push(arguments[i]);\n }\n\n new_object = Object.create(Class.prototype);\n Class.apply(new_object, objectArgs);\n rc[Class.name] = new_object;\n } else {\n new_object = rc[Class.name];\n }\n\n $elem.data(\"behaviors-registered-classes\", rc);\n\n return new_object;\n };\n\n /* Respond to the presence of new content on the page.\n *\n * By default, we attempt to find markup on all children of the context.\n * Subclasses may do something crazier, like say delay behavior processing\n * until some third-party API is loaded.\n *\n * Consider this roughly equivalent to $(document).ready() callbacks.\n */\n Behavior.content_ready = function ($context) {\n var Class = this;\n\n Class.find_markup($context);\n };\n \n /* Respond to the impending removal of content from the page.\n * \n * Most behaviors that only attach event handlers to their own content are\n * safe and do not need to implement content removal support: they will\n * inherently \"fall away\".\n * \n * However, behaviors that run a constant animation kernel or attach event\n * handlers to elements outside of their own ownership must provide a\n * mechanism to detach those event handlers and stop those kernels.\n */\n Behavior.content_removal = function ($context) {\n var Class = this,\n $attached_elems = $context.find(Class.QUERY);\n \n //Iterate through each element and see if our behavior has located upon\n //them. We don't just call .find_markup/.locate since we don't want to\n //risk initializing something just to tear it down one cycle later.\n $attached_elems.each(function (index, attach_elem) {\n var $elem = $(attach_elem),\n rc = $elem.data(\"behaviors-registered-classes\");\n \n if (rc === undefined) {\n return;\n }\n \n if (rc[Class.name] === undefined) {\n return;\n }\n \n if (rc[Class.name].deinitialize === undefined) {\n return;\n }\n \n rc[Class.name].deinitialize();\n });\n };\n\n /* Register a behavior so that it can respond to global events such as new\n * content becoming ready.\n *\n * It is not always appropriate to register your behavior to recieve load\n * events. Generally, if this is a behavior you would initialize yourself,\n * perhaps with special arguments, then you should not register that here.\n */\n function register_behavior(Class, name) {\n if (name === undefined) {\n name = Class.name;\n }\n\n behavior_registry[name] = Class;\n }\n \n /* Register a function that is called when content is ready.\n * \n * This function should only be used for things that are not a Behavior.\n * Proper behaviors should be registered using register_behavior for future\n * uses. Non-behavior listeners get registered here so that future uses of\n * behavior registration do not conflict with non-Behavior listeners.\n */\n function register_content_listener(func) {\n content_ready_listeners.push(func);\n }\n\n /* Indicate that some new content is ready.\n *\n * The given content will be passed onto all registered behaviors.\n *\n * CMS/frameworks with their own ready mechanism will need to ship their\n * own replacement/wrapper for this function that pushes calls to this\n * function over to that mechanism; and calls from that mechanism need to\n * come back here.\n */\n function content_ready($context) {\n var k, i;\n \n function do_later(obj, func) {\n window.setTimeout(func.bind(obj, $context), 0);\n }\n \n for (i = 0; i < content_ready_listeners.length; i += 1) {\n do_later(undefined, content_ready_listeners[i]);\n }\n\n for (k in behavior_registry) {\n if (behavior_registry.hasOwnProperty(k)) {\n do_later(behavior_registry[k], behavior_registry[k].content_ready);\n }\n }\n }\n \n /* Indicate that content is about to be removed.\n * \n * Registered behaviors with destructors will be called upon to remove any\n * external event handlers or animation kernels preventing them from being\n * terminated by the JS runtime.\n * \n * TODO: Add content_removal listener functions.\n */\n function content_removal($context) {\n var k, i;\n \n function do_later(obj, func) {\n window.setTimeout(func.bind(obj, $context), 0);\n }\n \n for (k in behavior_registry) {\n if (behavior_registry.hasOwnProperty(k)) {\n do_later(behavior_registry[k], behavior_registry[k].content_removal);\n }\n }\n }\n \n function error(error_class_name, ParentClass) {\n if (error_class_name === undefined) {\n throw new Error(\"Please name your error subclass.\");\n }\n\n if (!(ParentClass instanceof Function)) {\n ParentClass = Error;\n }\n\n var SubError = function (message) {\n var err = new Error(message);\n err.name = error_class_name;\n\n this.name = error_class_name;\n this.message = err.message;\n if (err.stack) {\n this.stack = err.stack;\n }\n };\n\n SubError.prototype = new ParentClass(\"u dont c me\");\n SubError.prototype.constructor = SubError;\n SubError.prototype.name = error_class_name;\n\n delete SubError.prototype.stack;\n\n return SubError;\n }\n \n function inherit(ChildClass, ParentClass) {\n var k;\n\n //Use the prototyping system to copy methods from parent to child.\n ChildClass.prototype = Object.create(ParentClass.prototype);\n ChildClass.prototype.constructor = ChildClass;\n ChildClass.prototype.parent = ParentClass.prototype;\n\n //Manually copy class-level methods from parent to child.\n for (k in ParentClass) {\n if (ParentClass.hasOwnProperty(k)) {\n ChildClass[k] = ParentClass[k];\n }\n }\n }\n\n function init(ChildClass, object, args) {\n ChildClass.prototype.parent.constructor.apply(object, args);\n }\n \n /* By default, report the initial page load to registered behaviors.\n */\n $(document).ready(function () {\n content_ready($(document));\n });\n \n module.ElementMissingError = ElementMissingError;\n module.throttle_single = throttle_single;\n module.Behavior = Behavior;\n module.error = error;\n module.inherit = inherit;\n module.init = init;\n module.register_behavior = register_behavior;\n module.content_ready = content_ready;\n module.content_removal = content_removal;\n module.register_content_listener = register_content_listener;\n\n return module;\n}));\n","/*! modernizr 3.5.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-touchevents-setclasses !*/\n!function(e,n,t){function o(e,n){return typeof e===n}function s(){var e,n,t,s,a,i,r;for(var l in c)if(c.hasOwnProperty(l)){if(e=[],n=c[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;tPrevious',\n nextArrow: '',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('',\n nextArrow: '',\n });\n\n var backButton = $(\"[data-back]\");\n\n backButton.click(function(){\n window.history.back();\n });\n})(jQuery);\n\n// home button overlap \n\n\n\n\n\n\n\n// // home heroheader smoothscroll\n\n(function ($) {\n $('a[href^=\\\\#]').click(function() {\n if (!this.hash) return;\n if (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\n var $target = $(this.hash);\n $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');\n \n if ($($(this).attr(\"href\")).data(\"tabbedcontent-region\") !== undefined) return;\n\n if ($target.length) {\n var height = $('.SiteHeader').outerHeight(true);\n if($('body').hasClass('admin-bar')) {\n if($(window).width() >= 768) {\n var targetOffset = $target.offset().top - $('.SiteHeader').outerHeight(true) - 32;\n }\n else {\n var targetOffset = $target.offset().top - $('.SiteHeader').outerHeight(true);\n }\n }\n else {\n var targetOffset = $target.offset().top - $('.SiteHeader').outerHeight(true);\n }\n $('html,body').animate({scrollTop: targetOffset}, 500);\n return false;\n }\n }\n });\n}(jQuery));","(function($){\n\t$(\".ImageSlider-wrapper\").slick({\n\t\tdots: true,\n\t\tdotsClass: \"ImageSlider-dots\",\n prevArrow: $(\".ImageSlider-prev\"),\n nextArrow: $(\".ImageSlider-next\"),\n\t\t//prevArrow: '',\n\t\t//nextArrow: '',\n\t\t/*responsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 992,\n\t\t\t\tsettings: {\n\t\t\t\t\tprevArrow: '',\n\t\t\t\t\tnextArrow: ''\n\t\t\t\t}\n\t\t\t}\n\t\t]*/\n\t});\n\n\tvar slidedots = $('.ImageSlider-dots button');\n\tfor(var i = 0; i < slidedots.length; i++){\n\t\tslidedots[i].innerHTML = \"\";\n\t}\n\n})(jQuery);\n","/*global define, console*/\n/*jslint bitwise: true */\n/* updated 9/14/2016 */\n\nif (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function (elt) { /*, from*/\n \"use strict\";\n var len = this.length >>> 0, from = Number(arguments[1]) || 0, derparam;\n from = (from < 0) ? Math.ceil(from) : Math.floor(from);\n if (from < 0) {\n from += len;\n }\n\n for (derparam; from < len; from += 1) {\n if (from in this && this[from] === elt) {\n return from;\n }\n }\n return -1;\n };\n}\n\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"betteroffcanvas\", [\"jquery\"], factory);\n } else {\n // Browser globals\n root.betteroffcanvas = factory(root.jQuery);\n }\n}(this, function ($) {\n //BetterOffcanvas\n //Works like this:\n /*\n * ',\n\t\tnextArrow: '',\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 1600,\n\t\t\t\tsettings: {\n\t\t\t\t\tcenterPadding: '150px'\n\t\t\t\t} \n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 1200,\n\t\t\t\tsettings: {\n\t\t\t\t\tcenterPadding: '100px',\n\t\t\t\t\tdots: true,\n\t\t\t\t\tdotsClass: \"ImageSlider-dots\",\n arrows: false,\n\t\t\t\t} \n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 992,\n\t\t\t\tsettings : {\n\t\t\t\t\tcenterMode: false,\n\t\t\t\t\tcenterPadding: '0px',\n\t\t\t\t\tdots: true,\n\t\t\t\t\tdotsClass: \"ImageSlider-dots\",\n arrows: false,\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 768,\n\t\t\t\tsettings : {\n\t\t\t\t\tcenterMode: false,\n\t\t\t\t\tcenterPadding: '0px',\n\t\t\t\t\tdots: true,\n\t\t\t\t\tdotsClass: \"ImageSlider-dots\",\n arrows: false,\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\n\t});\n\n\t$(window).resize(function(){\n\t\tvar slideSliderdots = $('.ImageSlider-dots button');\n\t\tfor(var i = 0; i < slideSliderdots.length; i++){\n\t\t\tslideSliderdots[i].innerHTML = \"\";\n\t\t}\n\t})\n\n\tvar slideSliderdots = $('.ImageSlider-dots button');\n\tfor(var i = 0; i < slideSliderdots.length; i++){\n\t\tslideSliderdots[i].innerHTML = \"\";\n\t}\n\n})(jQuery);\n","(function(root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"siteheader\", [\"jquery\", \"betteroffcanvas\"], factory);\n } else {\n // Browser globals\n root.siteheader = factory(root.jQuery, root.betteroffcanvas);\n }\n}(this, function($, betteroffcanvas, ajaxCart, Handlebars) {\n \"use strict\";\n \"feel good\";\n\n function update_scroll() {\n var scrollTop = $(window).scrollTop(),\n $SiteHeader = $(\"[data-siteheader='siteheader']\");\n\n if (scrollTop === 0) {\n $SiteHeader.addClass(\"is-SiteHeader--at_top\");\n $SiteHeader.removeClass(\"is-SiteHeader--scrolled\");\n } else {\n $SiteHeader.removeClass(\"is-SiteHeader--at_top\");\n $SiteHeader.addClass(\"is-SiteHeader--scrolled\");\n }\n };\n\n $(window).on(\"scroll\", update_scroll);\n\n update_scroll();\n\n\n $(document).ready(function() {\n var $nav = $('[data-offcanvas]');\n var $SiteHeader = $(\"[data-siteheader='siteheader']\");\n\n $SiteHeader.css(\"display\", \"none\");\n\n if ($nav.hasClass(\"is-Offcanvas--closed\")) {\n $SiteHeader.css({\n \"display\": \"block\"\n });\n } else {\n $(this).css(\"display\", \"block\");\n }\n\n });\n\n}));","/*global define, console, document, window*/\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"TabbedContent\", [\"jquery\", \"Behaviors\"], factory);\n } else {\n root.TabbedContent = factory(root.jQuery, root.Behaviors);\n }\n}(this, function ($, Behaviors) {\n \"use strict\";\n\n var module = {};\n\n function $do(that, target) {\n return function () {\n target.apply(that, arguments);\n };\n }\n\n function TabbedContentRegion(elem) {\n Behaviors.init(TabbedContentRegion, this, arguments);\n\n this.$elem = $(elem);\n this.id = this.$elem.attr(\"id\");\n this.active = this.$elem.data(\"tabbedcontent-region-active\") !== undefined;\n\n this.links = [];\n\n this.reflect_status();\n }\n\n Behaviors.inherit(TabbedContentRegion, Behaviors.Behavior);\n\n TabbedContentRegion.QUERY = \"[data-tabbedcontent-region]\";\n\n TabbedContentRegion.prototype.reflect_status = function (status) {\n var i;\n\n if (status === undefined) {\n status = this.active;\n }\n\n if (status) {\n this.$elem.addClass(\"is-TabbedContent--active\");\n this.$elem.removeClass(\"is-TabbedContent--inactive\");\n } else {\n this.$elem.removeClass(\"is-TabbedContent--active\");\n this.$elem.addClass(\"is-TabbedContent--inactive\");\n }\n\n for (i = 0; i < this.links.length; i += 1) {\n if (status) {\n this.links[i].addClass(\"is-TabbedContent--target_active\");\n this.links[i].removeClass(\"is-TabbedContent--target_inactive\");\n } else {\n this.links[i].removeClass(\"is-TabbedContent--target_active\");\n this.links[i].addClass(\"is-TabbedContent--target_inactive\");\n }\n }\n };\n\n TabbedContentRegion.prototype.add_incoming_link = function ($li) {\n this.links.push($li);\n };\n\n function TabbedContentSet(elem) {\n Behaviors.init(TabbedContentSet, this, arguments);\n\n this.$elem = $(elem);\n\n this.tabset_name = this.$elem.attr(\"data-tabbedcontent-set\");\n if (this.tabset_name === undefined) {\n this.tabset_name = this.$elem.attr(\"id\");\n }\n\n this.tab_members = {};\n this.list = [];\n\n this.find_links();\n }\n\n Behaviors.inherit(TabbedContentSet, Behaviors.Behavior);\n\n TabbedContentSet.QUERY = \"[data-tabbedcontent-set]\";\n\n TabbedContentSet.prototype.new_tab = function (id) {\n var $elem = $(\"#\" + id);\n\n if ($elem.length === 0) {\n return false;\n }\n\n if (this.tab_members[id] === undefined) {\n this.tab_members[id] = {\n \"toggles\": [],\n \"content\": TabbedContentRegion.locate($elem)\n };\n }\n\n return true;\n };\n\n TabbedContentSet.prototype.set_active_tab = function (id) {\n var k;\n\n for (k in this.tab_members) {\n if (this.tab_members.hasOwnProperty(k)) {\n this.tab_members[k].content.active = k === id;\n this.tab_members[k].content.reflect_status();\n }\n }\n };\n\n TabbedContentSet.prototype.navigate_tab_intent = function (id, evt) {\n this.set_active_tab(id);\n\n if (evt) {\n evt.preventDefault();\n }\n };\n\n TabbedContentSet.prototype.import_list_item = function (li) {\n var $li = $(li),\n $link = $li.find(\"a\"),\n href = $link.attr(\"href\"),\n id;\n\n if ($link.length === 0) {\n return;\n }\n\n if (href.indexOf(\"#\") !== -1) {\n id = href.slice(1);\n }\n\n if (id === undefined) {\n return;\n }\n\n if (this.tab_members[id] === undefined && !this.new_tab(id)) {\n return;\n }\n\n this.list.push({\n \"li\": $li,\n \"id\": id\n });\n this.tab_members[id].content.add_incoming_link($li);\n this.tab_members[id].content.reflect_status();\n $link.on(\"touchend click\", this.navigate_tab_intent.bind(this, id));\n };\n\n TabbedContentSet.prototype.find_links = function () {\n var that = this;\n\n this.$elem.find(\"li\").each(function (index, elem) {\n return that.import_list_item(elem);\n });\n };\n\n Behaviors.register_behavior(TabbedContentSet);\n\n module.TabbedContentSet = TabbedContentSet;\n\n return module;\n}));\n","(function($){\n\n\t$(\".TestimonialSlider-slides\").slick({\n autoplay: true,\n\t\tarrows: true,\n\t\tslidesToShow: 1,\n\t\tcenterMode: true,\n\t\tcenterPadding: '60px',\n\t\tprevArrow: '',\n\t\tnextArrow: '',\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 1600,\n\t\t\t\tsettings: {\n\t\t\t\t\tcenterPadding: '150px'\n\t\t\t\t} \n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 1200,\n\t\t\t\tsettings: {\n\t\t\t\t\tcenterPadding: '100px'\n\t\t\t\t} \n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 992,\n\t\t\t\tsettings : {\n\t\t\t\t\tcenterMode: false,\n\t\t\t\t\tcenterPadding: '0px'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 768,\n\t\t\t\tsettings : {\n\t\t\t\t\tcenterMode: false,\n\t\t\t\t\tcenterPadding: '0px'\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t});\n})(jQuery);\n","/*global define, window, document, Promise*/\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"VideoPlayer\", [\"jquery\", \"Behaviors\"], factory);\n } else {\n root.VideoPlayer = factory(root.jQuery, root.Behaviors);\n }\n}(this, function ($, Behaviors) {\n \"use strict\";\n\n var module = {};\n\n function VideoPlayer(elem) {\n Behaviors.init(VideoPlayer, this, arguments);\n\n this.$elem = $(elem);\n \n if (this.ready) {\n this.ready().then(this.locate_children.bind(this));\n } else {\n this.locate_children();\n }\n }\n\n Behaviors.inherit(VideoPlayer, Behaviors.Behavior);\n\n /* Returns a promise which resolves when the player is ready to accept\n * other API calls.\n *\n * Calling those other API calls outside of a then() block from the promise\n * returned by this function is a good way to have a bad time.\n *\n * By default, the video player is always ready.\n */\n VideoPlayer.prototype.ready = function () {\n return new Promise(function (resolve, reject) {\n resolve();\n });\n };\n\n //No QUERY is defined for the base VideoPlayer class as it is not intended\n //to be locatable. Derived classes should locate their VideoPlayer subclass\n //once it's attendant APIs have been loaded.\n //VideoPlayer.QUERY = \"\";\n\n VideoPlayer.prototype.locate_children = function () {\n var $parent_modal;\n \n this.playpause = VideoPlayer_playpause.find_markup(this.$elem, this);\n this.scrubbers = VideoPlayer_scrubber.find_markup(this.$elem, this);\n this.mute_btns = VideoPlayer_mute.find_markup(this.$elem, this);\n \n //This is an example of how to locate upwards\n $parent_modal = this.$elem.parents().filter(VideoPlayer_offcanvas.QUERY);\n \n if ($parent_modal.length > 0) {\n this.modal = VideoPlayer_offcanvas.locate($parent_modal[0], this);\n }\n \n //Now see if we're supposed to autoplay...\n if (this.$elem.data(\"videoplayer-autoplay\") !== undefined) {\n this.play();\n \n if (this.$elem.data(\"videoplayer-loop\") !== undefined) {\n this.add_statechange_listener(this.loopcheck.bind(this));\n }\n }\n };\n \n VideoPlayer.prototype.loopcheck = function () {\n Promise.all([this.is_paused(), this.get_current_time(), this.get_duration()]).then(function (values) {\n var is_paused = values[0];\n var current_time = values[1];\n var duration = values[2];\n \n if (is_paused && current_time === duration) {\n this.seek(0);\n this.play();\n }\n }.bind(this));\n };\n\n /* Determine if the video player is active.\n *\n * Most keyboard events only process on the active video's controls, not\n * other videos. This ensures that you can have multiple VideoPlayers\n * running without them all being controlled by the same limited set of\n * keyboard shortcuts.\n *\n * A video player is active if any of the following apply:\n *\n * - The video is marked primary with [data-videoplayer-primary].\n * - The video is currently playing.\n * - The VideoPlayer element or one of it's children has keyboard focus.\n * \n * This function returns a promise which resolves to the return value.\n */\n VideoPlayer.prototype.is_active = function () {\n return this.is_paused(function (is_paused) {\n if (this.$elem.data(\"videoplayer-primary\") !== undefined) {\n return true;\n }\n\n if (!is_paused) {\n return true;\n }\n\n if (this.$elem.find(\":focus\").length > 0) {\n return true;\n }\n\n return false;\n }.bind(this));\n };\n\n /* Serves as a play/pause button for a connected VideoPlayer.\n */\n function VideoPlayer_playpause(elem, parent) {\n var that = this;\n\n Behaviors.init(VideoPlayer_playpause, that, arguments);\n\n that.parent = parent;\n\n that.parent.ready().then(function () {\n that.parent.add_statechange_listener(that.on_statechange.bind(that));\n that.$elem.on(\"click touchend\", that.on_play_intent.bind(that));\n\n that.update_css_classes();\n });\n }\n\n Behaviors.inherit(VideoPlayer_playpause, Behaviors.Behavior);\n\n VideoPlayer_playpause.QUERY = \"[data-videoplayer-playpause]\";\n\n VideoPlayer_playpause.prototype.update_css_classes = function () {\n this.parent.is_paused().then(function (is_paused) {\n if (is_paused) {\n this.$elem.addClass(\"is-VideoPlayer--paused\");\n this.$elem.removeClass(\"is-VideoPlayer--playing\");\n } else {\n this.$elem.removeClass(\"is-VideoPlayer--paused\");\n this.$elem.addClass(\"is-VideoPlayer--playing\");\n }\n }.bind(this));\n };\n\n VideoPlayer_playpause.prototype.toggle_playback = function () {\n this.parent.is_paused().then(function (is_paused) {\n if (is_paused) {\n this.parent.play();\n } else {\n this.parent.pause();\n }\n }.bind(this));\n };\n\n VideoPlayer_playpause.prototype.on_statechange = function () {\n this.update_css_classes();\n };\n\n VideoPlayer_playpause.prototype.on_play_intent = function () {\n this.toggle_playback();\n };\n\n /* Allows a video modal to be started and stopped as the modal is opened\n * and closed.\n * \n * Place this on the Offcanvas element that gets dismissed and/or opened.\n */\n function VideoPlayer_offcanvas(elem, parent) {\n var that = this;\n\n Behaviors.init(VideoPlayer_offcanvas, that, arguments);\n\n that.parent = parent;\n\n that.$elem.on(\"offcanvas-open\", that.on_open_intent.bind(that));\n that.$elem.on(\"offcanvas-dismiss\", that.on_dismiss_intent.bind(that));\n }\n\n Behaviors.inherit(VideoPlayer_offcanvas, Behaviors.Behavior);\n\n VideoPlayer_offcanvas.QUERY = \"[data-videoplayer-offcanvas]\";\n\n VideoPlayer_offcanvas.prototype.on_open_intent = function () {\n var that = this;\n\n that.parent.is_paused().then(function (is_paused) {\n if (is_paused) {\n that.parent.play();\n }\n });\n };\n\n VideoPlayer_offcanvas.prototype.on_dismiss_intent = function () {\n var that = this;\n\n that.parent.is_paused().then(function (is_paused) {\n if (!is_paused) {\n that.parent.pause();\n }\n });\n };\n\n /* Serves as a scrub bar for a connected VideoPlayer.\n *\n * A Scrubber contains additional elements inside of it that do not have an\n * associated behavior:\n *\n * - [data-videoplayer-scrubberfill]: The filled range of the scrubber.\n * - [data-videoplayer-scrubberknob]: A knob which indicates the current\n * scrubber point.\n */\n function VideoPlayer_scrubber(elem, parent) {\n var err, that = this;\n\n Behaviors.init(VideoPlayer_scrubber, that, arguments);\n\n that.parent = parent;\n\n //EVENT STATE VARIABLES\n that.is_dragging = false;\n that.in_debounce = false;\n\n //OPTIONAL COMPONENTS\n that.$scrubfill = that.$elem.find(\"[data-videoplayer-scrubberfill]\");\n that.$scrubknob = that.$elem.find(\"[data-videoplayer-scrubberknob]\");\n\n that.parent.ready().then(function () {\n //EVENT HANDLERS\n that.$elem.on(\"mousedown touchstart\", that.on_dragstart_intent.bind(that));\n that.$elem.on(\"mousemove touchmove\", that.on_drag_intent.bind(that));\n $(document).on(\"mouseup touchend touchcancel\", that.on_dragend_intent.bind(that));\n $(document).on(\"keydown\", that.on_keyboard_nav.bind(that));\n\n err = that.parent.add_timeupdate_listener(that.on_timeupdate.bind(that));\n if (err === false) {\n window.setInterval(that.on_timeupdate.bind(that), 1000);\n }\n });\n\n that.update_scrubber();\n }\n\n Behaviors.inherit(VideoPlayer_scrubber, Behaviors.Behavior);\n\n VideoPlayer_scrubber.QUERY = \"[data-videoplayer-scrubber]\";\n\n VideoPlayer_scrubber.prototype.css_percent = function (value) {\n return (value * 100) + \"%\";\n };\n\n /* This defines the dynamic CSS properties that are applied to scrubber\n * elements.\n *\n * Specifically, fills get a width equal to the current play percentage;\n * knobs get a left position equal to the current play percentage.\n *\n * This assumes knobs and fills get positioned relative to the scrubber.\n */\n VideoPlayer_scrubber.prototype.update_scrubber = function () {\n var that = this, currentTime, ratio;\n \n that.parent.ready().then(function () {\n return that.parent.get_current_time();\n }.bind(this)).then(function (newCurrentTime) {\n currentTime = newCurrentTime;\n return that.parent.get_duration();\n }.bind(this)).then(function (duration) {\n ratio = 0;\n\n if (!isFinite(duration)) {\n //Livestreams always show as complete.\n ratio = 1;\n } else if (!isNaN(duration)) {\n ratio = currentTime / duration;\n }\n\n that.$scrubfill.css(\"width\", that.css_percent(ratio));\n that.$scrubknob.css(\"left\", that.css_percent(ratio));\n });\n };\n\n /* Given an X coordinate, calculate the corresponding video seek time and\n * return it.\n *\n * Input is in page co-ordinates. Input is scaled to output based on the\n * CSS width and position of the scrubber. Output is bounded within the\n * closed range [0, 1].\n * \n * Returns a promise with the correct seek time.\n */\n VideoPlayer_scrubber.prototype.mouse_to_ctime = function (page_x) {\n return this.parent.get_duration().then(function (duration) {\n return (page_x - this.$elem.offset().left) / this.$elem.width() * duration;\n }.bind(this));\n };\n\n /* Seek the parent player, but only if the proposed new time is valid.\n */\n VideoPlayer_scrubber.prototype.seek_if_valid = function (newTime, isFinal) {\n if (isNaN(newTime) || !isFinite(newTime)) {\n return;\n }\n\n this.parent.seek(newTime, isFinal);\n };\n\n // Drag event filtering\n\n /* Start a drag operation; configuring the event filtering machinery to\n * only recognize the click or touch that started the event chain.\n */\n VideoPlayer_scrubber.prototype.start_drag = function (evt) {\n this.is_dragging = true;\n\n if (evt.changedTouches !== undefined && evt.changedTouches.length > 0) {\n this.drag_touch_id = evt.changedTouches[0].identifier;\n return evt.changedTouches[0].pageX;\n } else {\n this.drag_touch_id = undefined;\n return evt.pageX;\n }\n };\n\n /* Retrieves the Page X coordinate from an event, ensuring that the correct\n * finger is tracked across the entire event chain.\n *\n * Events will be ignored, and FALSE returned, if the event type that\n * started the drag does not match the given event; or, if it's a touch\n * event type, it will be ignored if there is no touch matching the current\n * one.\n */\n VideoPlayer_scrubber.prototype.validate_drag = function (evt) {\n var i;\n\n if (this.is_dragging) {\n if (this.drag_touch_id !== undefined) {\n if (evt.changedTouches !== undefined) {\n for (i = 0; i < evt.changedTouches.length; i += 1) {\n if (evt.changedTouches[i].identifier === this.drag_touch_id) {\n return evt.changedTouches[i].pageX;\n }\n }\n }\n } else {\n if (evt.changedTouches === undefined) {\n return evt.pageX;\n }\n }\n }\n\n return false;\n };\n\n /* Retrieves the Page X coordinate from an event and turns off further drag\n * processing.\n *\n * For the same reasons as validate_drag, non-matching events will not\n * cancel drag processing. This function returns FALSE if this event was\n * ignored.\n */\n VideoPlayer_scrubber.prototype.end_drag = function (evt) {\n var px = this.validate_drag(evt);\n if (px === false) {\n return px;\n }\n\n this.is_dragging = false;\n this.drag_touch_id = undefined;\n\n return px;\n };\n\n /* Process a drag event given the incoming Page X.\n *\n * If FALSE is given, indicating an event filtered by validate_drag, this\n * does nothing.\n */\n VideoPlayer_scrubber.prototype.handle_drag = function (pageX, final) {\n var newtime;\n\n if (pageX === false) {\n return;\n }\n\n return this.mouse_to_ctime(pageX).then(function (newtime) {\n this.seek_if_valid(newtime, final);\n this.update_scrubber();\n }.bind(this));\n };\n\n // Event handlers\n\n VideoPlayer_scrubber.prototype.on_timeupdate = function () {\n this.update_scrubber();\n };\n\n VideoPlayer_scrubber.prototype.on_dragstart_intent = function (evt) {\n this.handle_drag(this.start_drag(evt), false);\n };\n\n VideoPlayer_scrubber.prototype.on_drag_intent = function (evt) {\n this.handle_drag(this.validate_drag(evt), false);\n };\n\n VideoPlayer_scrubber.prototype.on_dragend_intent = function (evt) {\n this.handle_drag(this.end_drag(evt), true);\n };\n\n VideoPlayer_scrubber.prototype.on_keyboard_nav = function (evt) {\n var currentTime;\n \n this.parent.ready().then(function () {\n return this.parent.get_current_time();\n }.bind(this)).then(function (newCurrentTime) {\n currentTime = newCurrentTime;\n return this.parent.is_active();\n }.bind(this)).then(function (is_active) {\n if (!is_active) {\n return;\n }\n \n if (evt.keyCode === 37) { //LEFT\n evt.preventDefault();\n this.parent.seek(currentTime - 1.0);\n this.update_scrubber();\n } else if (evt.keyCode === 39) { // RIGHT\n evt.preventDefault();\n this.parent.seek(currentTime + 1.0);\n this.update_scrubber();\n }\n });\n };\n\n /* Serves as a play/pause button for a connected VideoPlayer.\n */\n function VideoPlayer_mute(elem, parent) {\n var that = this;\n \n Behaviors.init(VideoPlayer_mute, that, arguments);\n\n that.parent = parent;\n\n that.parent.ready().then(function () {\n that.$elem.on(\"click touchend\", that.on_mute_intent.bind(that));\n\n that.update_css_classes();\n });\n }\n\n Behaviors.inherit(VideoPlayer_mute, Behaviors.Behavior);\n\n VideoPlayer_mute.QUERY = \"[data-videoplayer-mute]\";\n\n VideoPlayer_mute.prototype.update_css_classes = function () {\n this.parent.is_muted().then(function (is_muted) {\n if (is_muted) {\n this.$elem.addClass(\"is-VideoPlayer--muted\");\n this.$elem.removeClass(\"is-VideoPlayer--audible\");\n } else {\n this.$elem.removeClass(\"is-VideoPlayer--muted\");\n this.$elem.addClass(\"is-VideoPlayer--audible\");\n }\n }.bind(this));\n };\n\n VideoPlayer_mute.prototype.toggle_mute = function () {\n this.parent.is_muted().then(function (is_muted) {\n if (is_muted) {\n this.parent.unmute();\n } else {\n this.parent.mute();\n }\n }.bind(this));\n };\n\n VideoPlayer_mute.prototype.on_mute_intent = function () {\n this.toggle_mute();\n this.update_css_classes();\n };\n\n // Player API adaptations\n\n\n /* Thin implementation for a VideoPlayer that consumes an HTML5 video\n * directly. Also provides a good demonstration that the VideoPlayer APIs\n * are a very thin wrapper over HTMLMediaElement.\n */\n function VideoPlayer__html5(elem) {\n this.$video = $(elem).find(\"video\");\n\n Behaviors.init(VideoPlayer__html5, this, arguments);\n }\n\n Behaviors.inherit(VideoPlayer__html5, VideoPlayer);\n\n VideoPlayer__html5.QUERY = \"[data-videoplayer='html5']\";\n\n /* Plays the video, if loaded.\n */\n VideoPlayer__html5.prototype.play = function () {\n this.$video[0].play();\n };\n\n /* Pauses the video.\n */\n VideoPlayer__html5.prototype.pause = function () {\n this.$video[0].pause();\n };\n\n /* Mute the video\n */\n VideoPlayer__html5.prototype.mute = function () {\n this.$video[0].muted = true;\n };\n\n /* Unmute the video\n */\n VideoPlayer__html5.prototype.unmute = function () {\n this.$video[0].muted = false;\n };\n\n /* Returns the current player position.\n * \n * This function returns a promise which resolves to the current time.\n */\n VideoPlayer__html5.prototype.get_current_time = function () {\n return Promise.resolve(this.$video[0].currentTime);\n };\n\n /* Seek the video to the number of seconds indicated in time.\n */\n VideoPlayer__html5.prototype.seek = function (time) {\n this.$video[0].currentTime = time;\n };\n\n /* Check the video's duration.\n *\n * Returns the media's length in seconds.\n *\n * NaN is returned if the duration is unknown (check with isNaN).\n * Infinity is returned if this is a streaming video.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__html5.prototype.get_duration = function () {\n return Promise.resolve(this.$video[0].duration);\n };\n\n /* Check if the video is paused.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__html5.prototype.is_paused = function () {\n return Promise.resolve(this.$video[0].paused);\n };\n\n /* Check if the video is muted.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__html5.prototype.is_muted = function () {\n return Promise.resolve(this.$video[0].muted);\n };\n\n /* Check the volume of the video.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__html5.prototype.get_volume = function () {\n return Promise.resolve(this.$video[0].volume);\n };\n\n /* Register an event handler for changes to the video's playback state.\n *\n * This corresponds exactly to matching the playing, play, and pause events\n * and other video service APIs should ensure their event handler triggers\n * on similar conditions.\n */\n VideoPlayer__html5.prototype.add_statechange_listener = function (listen) {\n this.$video.on(\"playing play pause\", listen);\n };\n\n /* Register an event handler for changes to the video's playback time.\n *\n * This corresponds to the timeupdate event on HTMLMediaElement. This event\n * is permitted not to register an event if it returns FALSE, indicating\n * that timeupdates are not provided by this player type.\n */\n VideoPlayer__html5.prototype.add_timeupdate_listener = function (listen) {\n this.$video.on(\"timeupdate\", listen);\n };\n\n /* This VideoPlayer consumes a YouTube iframe using the YouTube API.\n * See https://developers.google.com/youtube/iframe_api_reference\n */\n function VideoPlayer__youtube(elem) {\n var that = this;\n\n Behaviors.init(VideoPlayer__youtube, that, arguments);\n\n this.$iframe = $(elem).find(\"iframe\");\n this.id = this.$iframe.attr(\"id\");\n if (this.id === undefined) {\n //Randomly generate an ID if one was not provided.\n this.id = \"VideoPlayer-random_id--\" + Math.random() * 1024 * 1024;\n this.$iframe.attr(\"id\", this.id);\n }\n\n this.player_fully_loaded = false;\n }\n\n Behaviors.inherit(VideoPlayer__youtube, VideoPlayer);\n\n VideoPlayer__youtube.QUERY = \"[data-videoplayer='youtube']\";\n\n /* Install the YouTube API, if not already installed.\n *\n * This is an asynchronous operation, so we return a Promise that resolves\n * when YouTube's API is available. Invocation works like so:\n *\n * VideoPlayer__youtube.api().then(function () {\n * //do stuff...\n * })\n */\n VideoPlayer__youtube.api = function () {\n if (VideoPlayer__youtube.install_promise === undefined) {\n VideoPlayer__youtube.install_promise = new Promise(function (resolve, reject) {\n var tag, firstScriptTag;\n\n tag = document.createElement(\"script\");\n tag.src = \"https://www.youtube.com/iframe_api\";\n firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n window.onYouTubeIframeAPIReady = VideoPlayer__youtube.api_ready_handler(resolve, reject);\n });\n }\n\n return VideoPlayer__youtube.install_promise;\n };\n\n /* Creates the function that gets called when the YouTube API is ready.\n */\n VideoPlayer__youtube.api_ready_handler = function (resolve, reject) {\n return function () {\n resolve();\n };\n };\n\n /* Returns a promise which resolves when the player is ready to accept\n * other API calls.\n *\n * Calling those other API calls outside of a then() block from the promise\n * returned by this function is a good way to have a bad time.\n */\n VideoPlayer__youtube.prototype.ready = function () {\n var that = this;\n \n if (that.ready_promise === undefined) {\n that.ready_promise = VideoPlayer__youtube.api().then(function () {\n that.player = new window.YT.Player(that.id, {\n \"playerVars\": {\n \"enablejsapi\": true\n }\n });\n\n return new Promise(function (resolve, reject) {\n if (that.player_fully_loaded) {\n resolve();\n } else {\n that.player.addEventListener(\"onReady\", function () {\n that.player_fully_loaded = true;\n resolve();\n });\n }\n });\n });\n }\n \n return that.ready_promise;\n };\n\n /* Plays the video, if loaded.\n */\n VideoPlayer__youtube.prototype.play = function () {\n this.ready().then(function () {\n this.player.playVideo();\n }.bind(this));\n };\n\n /* Pauses the video.\n */\n VideoPlayer__youtube.prototype.pause = function () {\n this.ready().then(function () {\n this.player.pauseVideo();\n }.bind(this));\n };\n\n /* Mute the video\n */\n VideoPlayer__youtube.prototype.mute = function () {\n this.ready().then(function () {\n this.player.mute();\n }.bind(this));\n };\n\n /* Unmute the video\n */\n VideoPlayer__youtube.prototype.unmute = function () {\n this.ready().then(function () {\n this.player.unMute();\n }.bind(this));\n };\n\n /* Returns the current player position.\n * \n * This function returns a promise which resolves to the current time.\n */\n VideoPlayer__youtube.prototype.get_current_time = function () {\n return this.ready().then(function () {\n return this.player.getCurrentTime();\n }.bind(this));\n };\n\n /* Seek the video to the number of seconds indicated in time.\n *\n * The seek_commit parameter should be FALSE if and only if the seek\n * resulted from a mousedrag and you expect to get more seek operations.\n */\n VideoPlayer__youtube.prototype.seek = function (time, seek_commit) {\n return this.ready().then(function () {\n return this.player.seekTo(time, seek_commit);\n }.bind(this));\n };\n\n /* Check the video's duration.\n *\n * Returns the media's length in seconds.\n *\n * NaN is returned if the duration is unknown (check with isNaN).\n * Infinity is returned if this is a streaming video.\n *\n * SPEC VIOLATION: YouTube does not indicate if the player is playing a\n * live event, so live-streaming players will have incorrect duration info.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__youtube.prototype.get_duration = function () {\n return this.ready().then(function () {\n var duration = this.player.getDuration();\n\n if (duration === 0) {\n return NaN;\n }\n\n return duration;\n }.bind(this));\n };\n\n /* Check if the video is paused.\n *\n * TODO: We naively interpret YouTube's player state, does player state 2\n * correspond to HTMLMediaElement/VideoPlayer__html5's .paused attribute?\n * Or are there other player states that count as paused by HTML5?\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__youtube.prototype.is_paused = function () {\n return this.ready().then(function () {\n var ps = this.player.getPlayerState();\n return ps === 2 || ps === -1 || ps === 5;\n }.bind(this));\n };\n\n /* Check if the video is muted.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__youtube.prototype.is_muted = function () {\n return this.ready().then(function () {\n return this.player.isMuted();\n }.bind(this));\n };\n\n /* Check the volume of the video.\n *\n * YouTube works in percentage units for some reason.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__youtube.prototype.get_volume = function () {\n return this.ready().then(function () {\n return this.player.getVolume() / 100;\n }.bind(this));\n };\n\n /* Register an event handler for changes to the video's playback state.\n *\n * This corresponds exactly to matching the playing, play, and pause events\n * and other video service APIs should ensure their event handler triggers\n * on similar conditions.\n */\n VideoPlayer__youtube.prototype.add_statechange_listener = function (listen) {\n this.ready().then(function () {\n this.player.addEventListener(\"onStateChange\", listen);\n }.bind(this));\n };\n\n /* Register an event handler for changes to the video's playback time.\n *\n * YouTube doesn't have this event type for some reason.\n */\n VideoPlayer__youtube.prototype.add_timeupdate_listener = function (listen) {\n return false;\n };\n\n VideoPlayer__youtube.content_ready = function ($context) {\n var Class = this;\n\n if ($context.find(Class.QUERY).length > 0) {\n Class.api().then(function () {\n Class.find_markup($context);\n });\n }\n };\n \n /* This VideoPlayer consumes a Vimeo iframe using their player controller.\n * See https://github.com/vimeo/player.js\n */\n function VideoPlayer__vimeo(elem) {\n var that = this;\n\n Behaviors.init(VideoPlayer__vimeo, that, arguments);\n \n this.ready();\n }\n\n VideoPlayer__vimeo.QUERY = \"[data-videoplayer='vimeo']\";\n \n Behaviors.inherit(VideoPlayer__vimeo, VideoPlayer);\n \n /* Install the Vimeo API, if not already installed.\n *\n * This is an asynchronous operation, so we return a Promise that resolves\n * when Vimeo's API is available. Invocation works like so:\n *\n * VideoPlayer__vimeo.api().then(function () {\n * //do stuff...\n * })\n */\n VideoPlayer__vimeo.api = function () {\n if (VideoPlayer__vimeo.install_promise === undefined) {\n VideoPlayer__vimeo.install_promise = new Promise(function (resolve, reject) {\n var tag, firstScriptTag;\n\n tag = document.createElement(\"script\");\n tag.src = \"https://player.vimeo.com/api/player.js\";\n tag.onload = VideoPlayer__vimeo.api_ready_handler(resolve, reject);\n tag.async = true;\n firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n });\n }\n\n return VideoPlayer__vimeo.install_promise;\n };\n\n /* Creates the function that gets called when the Vimeo API is ready.\n */\n VideoPlayer__vimeo.api_ready_handler = function (resolve, reject) {\n function wait_for_vimeo() {\n if (window.Vimeo !== undefined) {\n resolve();\n } else {\n window.setTimeout(wait_for_vimeo, 10);\n }\n }\n \n return wait_for_vimeo;\n };\n \n /* Returns a promise which resolves when the player is ready to accept\n * other API calls.\n *\n * Calling those other API calls outside of a then() block from the promise\n * returned by this function is a good way to have a bad time.\n */\n VideoPlayer__vimeo.prototype.ready = function () {\n var that = this;\n \n if (this.ready_promise === undefined) {\n this.ready_promise = VideoPlayer__vimeo.api().then(function () {\n this.player = new window.Vimeo.Player(this.$elem);\n }.bind(this));\n }\n \n return this.ready_promise;\n };\n\n /* Plays the video, if loaded.\n */\n VideoPlayer__vimeo.prototype.play = function () {\n return this.ready().then(function () {\n this.player.play();\n }.bind(this));\n };\n\n /* Pauses the video.\n */\n VideoPlayer__vimeo.prototype.pause = function () {\n return this.ready().then(function () {\n this.player.pause();\n }.bind(this));\n };\n\n /* Mute the video\n */\n VideoPlayer__vimeo.prototype.mute = function () {\n return this.ready().then(function () {\n return this.player.getVolume();\n }.bind(this)).then(function (volume) {\n this.preMuteVolume = volume;\n this.player.setVolume(0);\n }.bind(this));\n };\n\n /* Unmute the video\n */\n VideoPlayer__vimeo.prototype.unmute = function () {\n return this.ready().then(function () {\n return this.player.setVolume(this.preMuteVolume || 1.0);\n }.bind(this));\n };\n\n /* Returns the current player position.\n * \n * This function returns a promise which resolves to the current time.\n */\n VideoPlayer__vimeo.prototype.get_current_time = function () {\n return this.ready().then(function () {\n return this.player.getCurrentTime();\n }.bind(this));\n };\n\n /* Seek the video to the number of seconds indicated in time.\n *\n * The seek_commit parameter should be FALSE if and only if the seek\n * resulted from a mousedrag and you expect to get more seek operations.\n * \n * As a unique quirk of the Vimeo API, the returned promise will resolve\n * to the actual seek time adopted by the player.\n */\n VideoPlayer__vimeo.prototype.seek = function (time, seek_commit) {\n return this.ready().then(function () {\n return this.player.setCurrentTime(time);\n }.bind(this));\n };\n\n /* Check the video's duration.\n *\n * Returns the media's length in seconds.\n *\n * NaN is returned if the duration is unknown (check with isNaN).\n * Infinity is returned if this is a streaming video.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__vimeo.prototype.get_duration = function () {\n return this.ready().then(function () {\n return this.player.getDuration();\n }.bind(this));\n };\n\n /* Check if the video is paused.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__vimeo.prototype.is_paused = function () {\n return this.ready().then(function () {\n return this.player.getPaused();\n }.bind(this));\n };\n\n /* Check if the video is muted.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__vimeo.prototype.is_muted = function () {\n return this.ready().then(function () {\n return this.get_volume();\n }.bind(this)).then(function (volume) {\n return volume === 0.0;\n }.bind(this));\n };\n\n /* Check the volume of the video.\n * \n * This function returns a promise which resolves to the aformentioned\n * return value.\n */\n VideoPlayer__vimeo.prototype.get_volume = function () {\n return this.ready().then(function () {\n return this.player.getVolume();\n }.bind(this));\n };\n\n /* Register an event handler for changes to the video's playback state.\n *\n * This corresponds exactly to matching the playing, play, and pause events\n * and other video service APIs should ensure their event handler triggers\n * on similar conditions.\n */\n VideoPlayer__vimeo.prototype.add_statechange_listener = function (listen) {\n return this.ready().then(function () {\n return this.player.on(\"play\", listen);\n return this.player.on(\"pause\", listen);\n return this.player.on(\"ended\", listen);\n }.bind(this));\n };\n\n /* Register an event handler for changes to the video's playback time.\n */\n VideoPlayer__vimeo.prototype.add_timeupdate_listener = function (listen) {\n return this.ready().then(function () {\n return this.player.on(\"timeupdate\", listen);\n }.bind(this));\n };\n \n VideoPlayer__vimeo.content_ready = function ($context) {\n var Class = this;\n\n if ($context.find(Class.QUERY).length > 0) {\n Class.api().then(function () {\n Class.find_markup($context);\n });\n }\n };\n\n Behaviors.register_behavior(VideoPlayer__html5);\n Behaviors.register_behavior(VideoPlayer__youtube);\n Behaviors.register_behavior(VideoPlayer__vimeo);\n \n module.VideoPlayer = VideoPlayer;\n module.VideoPlayer_playpause = VideoPlayer_playpause;\n module.VideoPlayer_scrubber = VideoPlayer_scrubber;\n module.VideoPlayer_mute = VideoPlayer_mute;\n module.VideoPlayer_offcanvas = VideoPlayer_offcanvas;\n module.VideoPlayer__html5 = VideoPlayer__html5;\n module.VideoPlayer__youtube = VideoPlayer__youtube;\n module.VideoPlayer__vimeo = VideoPlayer__vimeo;\n return module;\n}));\n","/*global define, console*/\n\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(\"ScrollEffects\", [\"jquery\", \"Behaviors\"], factory);\n } else {\n root.ScrollEffects = factory(root.jQuery, root.Behaviors);\n }\n}(this, function ($, Behaviors) {\n \"use strict\";\n\n var module = {};\n\n function ScrollEffects(elem) {\n Behaviors.init(ScrollEffects, this, arguments);\n\n this.$elem = $(elem);\n this.$scrollCtxt = $(window);\n\n this.$scrollCtxt.on(\"scroll\", Behaviors.throttle_single(this.on_scroll_intent.bind(this), 200));\n }\n\n Behaviors.inherit(ScrollEffects, Behaviors.Behavior);\n\n ScrollEffects.QUERY = \"[data-scrolleffects]\";\n ScrollEffects.THROTTLE_TIMEOUT = 200;\n\n /* Return a list of all available scroll effect modes on this bit.\n */\n ScrollEffects.prototype.activation_modes = function () {\n return this.$elem.data(\"scrolleffects\").split(\" \");\n };\n\n ScrollEffects.prototype.update_css_classes = function () {\n var activation_modes = this.activation_modes(),\n active = false;\n\n if (this.isTopVisible && activation_modes.indexOf(\"top_visible\") !== -1) {\n active = true;\n }\n\n if (this.isBottomVisible && activation_modes.indexOf(\"bottom_visible\") !== -1) {\n active = true;\n }\n\n if (this.isVisible && activation_modes.indexOf(\"visible\") !== -1) {\n active = true;\n }\n\n if (this.onceTopVisible && activation_modes.indexOf(\"top_visible_once\") !== -1) {\n active = true;\n }\n\n if (this.onceBottomVisible && activation_modes.indexOf(\"bottom_visible_once\") !== -1) {\n active = true;\n }\n\n if (this.onceVisible && activation_modes.indexOf(\"visible_once\") !== -1) {\n active = true;\n }\n\n if (active) {\n this.$elem.addClass(\"is-ScrollEffects--active\");\n this.$elem.removeClass(\"is-ScrollEffects--inactive\");\n } else {\n this.$elem.removeClass(\"is-ScrollEffects--active\");\n this.$elem.addClass(\"is-ScrollEffects--inactive\");\n }\n };\n\n ScrollEffects.prototype.on_scroll_intent = function () {\n var top = this.$elem.offset().top,\n height = this.$elem.height(),\n bottom = top + height,\n contextOffset = this.$scrollCtxt.offset(),\n contextScrollTop = contextOffset !== undefined\n ? contextOffset.top + this.$scrollCtxt.scrollTop()\n : this.$scrollCtxt.scrollTop(),\n contextHeight = this.$scrollCtxt.height(),\n contextScrollBottom = contextScrollTop + contextHeight;\n\n this.isTopVisible = contextScrollTop <= top && top <= contextScrollBottom;\n this.isBottomVisible = contextScrollTop <= bottom && bottom <= contextScrollBottom;\n this.isVisible = this.isTopVisible || this.isBottomVisible\n || (top <= contextScrollTop && contextScrollTop <= bottom)\n || (top <= contextScrollBottom && contextScrollBottom <= bottom);\n\n this.onceTopVisible = this.onceTopVisible || this.isTopVisible;\n this.onceBottomVisible = this.onceBottomVisible || this.isBottomVisible;\n this.onceVisible = this.onceVisible || this.isVisible;\n\n this.update_css_classes();\n };\n\n Behaviors.register_behavior(ScrollEffects);\n\n module.ScrollEffects = ScrollEffects;\n\n return module;\n}));\n","(function($){\n\t\"use strict \"\n\n \tvar $blogContent = $(\".Post--inner-content_wrapper p\");\n \t$blogContent.addClass(\"wow animated fadeInUp\");\n\n}(jQuery));\n","(function ($) {\n\n $(document).ready(function() {\n $(\".ApplicationForm--resume label\").addClass(\"Basic-link\");\n\n\n var resume = $(\".ApplicationForm--resume input\");\n var form = $(\".ApplicationForm--resume\");\n var p = $(\"

\");\n\n resume.change(function(e) {\n p.html(\"\");\n var fileName = e.target.files[0].name;\n p.html(String(fileName));\n form.append(p);\n });\n\n\n });\n $(document).ajaxStop(function() {\n $(\".ApplicationForm--resume label\").addClass(\"Basic-link\");\n\n\n var resume = $(\".ApplicationForm--resume input\");\n var form = $(\".ApplicationForm--resume\");\n var p = $(\"

\");\n\n resume.change(function(e) {\n p.html(\"\");\n var fileName = e.target.files[0].name;\n p.html(String(fileName));\n form.append(p);\n });\n\n });\n\n /*$(document).ready(function() {\n resume.change(function(e) {\n p.html(\"\");\n var fileName = e.target.files[0].name;\n p.html(String(fileName));\n form.append(p);\n });\n });*/\n\n}(jQuery));\n","(function($){\n $(\"[data-imageslideshow]\").slick({\n autoplay: true,\n infinite: true,\n speed: 1000,\n autoplaySpeed: 6000,\n fade: true,\n arrows: true,\n slidesToShow: 1,\n pauseOnFocus: false,\n pauseOnHover: false,\n prevArrow: '',\n nextArrow: '',\n dots: true\n });\n})(jQuery);","(function($) {\n\n\n\n\n})(jQuery);"]}