{"version":3,"sources":["../../../Base/lib/handlebars.js","../../../Base/lib/TweenLite.js","../../../Base/lib/CSSPlugin.js","../../../Base/lib/AttrPlugin.js","../../../Base/script/plugin/ashFilter.js","../../../Base/script/offCanvasNavInit.js","../../../Base/script/ashRedirect.js","../../../Base/script/ashModal.js","../../../Base/script/plugin/select2.min.js","../../../Base/script/plugin/donutChart/donutChart-compiled.js","../../../Base/lib/raphael-min.js","../../../Base/script/plugin/g.raphael.js","../../../Base/script/plugin/g.pie-mod.js","../../../Base/script/plugin/svg4everybody.js","../../../Base/script/plugin/raphaeljs-infobox-mod.js","../../../Base/lib/jquery.flexslider-min.js","../../../Base/script/plugin/ashValidate.js","../../../Base/script/plugin/ashBulletin.js","../../../Base/script/partial/ash.js","../../../Base/script/partial/handlebarHelper.js","../../../Base/script/partial/ashPlugin.js","../../../Base/script/partial/base.js","../../../../node_modules/ash-header/dist/navigation.iife.js","../../../HYR/script/hyr.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC51DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC51BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjoEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxhCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/qCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"bundle-hyr.js","sourcesContent":["/*!\r\n\r\n handlebars v1.3.0\r\n\r\nCopyright (C) 2011 by Yehuda Katz\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.\r\n\r\n@license\r\n*/\r\nvar Handlebars=function(){var a=function(){\"use strict\";function a(a){this.string=a}var b;return a.prototype.toString=function(){return\"\"+this.string},b=a}(),b=function(a){\"use strict\";function b(a){return h[a]||\"&\"}function c(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])}function d(a){return a instanceof g?a.toString():a||0===a?(a=\"\"+a,j.test(a)?a.replace(i,b):a):\"\"}function e(a){return a||0===a?m(a)&&0===a.length?!0:!1:!0}var f={},g=a,h={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},i=/[&<>\"'`]/g,j=/[&<>\"'`]/;f.extend=c;var k=Object.prototype.toString;f.toString=k;var l=function(a){return\"function\"==typeof a};l(/x/)&&(l=function(a){return\"function\"==typeof a&&\"[object Function]\"===k.call(a)});var l;f.isFunction=l;var m=Array.isArray||function(a){return a&&\"object\"==typeof a?\"[object Array]\"===k.call(a):!1};return f.isArray=m,f.escapeExpression=d,f.isEmpty=e,f}(a),c=function(){\"use strict\";function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=\" - \"+d+\":\"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?a.helpers.each(b,c):d(this):e(b)}),a.registerHelper(\"each\",function(a,b){var c,d=b.fn,e=b.inverse,f=0,g=\"\";if(m(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&\"object\"==typeof a)if(l(a))for(var h=a.length;h>f;f++)c&&(c.index=f,c.first=0===f,c.last=f===a.length-1),g+=d(a[f],{data:c});else for(var i in a)a.hasOwnProperty(i)&&(c&&(c.key=i,c.index=f,c.first=0===f),g+=d(a[i],{data:c}),f++);return 0===f&&(g=e(this)),g}),a.registerHelper(\"if\",function(a,b){return m(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||g.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper(\"unless\",function(b,c){return a.helpers[\"if\"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper(\"with\",function(a,b){return m(a)&&(a=a.call(this)),g.isEmpty(a)?void 0:b.fn(a)}),a.registerHelper(\"log\",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)})}function e(a,b){p.log(a,b)}var f={},g=a,h=b,i=\"1.3.0\";f.VERSION=i;var j=4;f.COMPILER_REVISION=j;var k={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\">= 1.0.0\"};f.REVISION_CHANGES=k;var l=g.isArray,m=g.isFunction,n=g.toString,o=\"[object Object]\";f.HandlebarsEnvironment=c,c.prototype={constructor:c,logger:p,log:e,registerHelper:function(a,b,c){if(n.call(a)===o){if(c||b)throw new h(\"Arg not supported with multiple helpers\");g.extend(this.helpers,a)}else c&&(b.not=c),this.helpers[a]=b},registerPartial:function(a,b){n.call(a)===o?g.extend(this.partials,a):this.partials[a]=b}};var p={methodMap:{0:\"debug\",1:\"info\",2:\"warn\",3:\"error\"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(p.level<=a){var c=p.methodMap[a];\"undefined\"!=typeof console&&console[c]&&console[c].call(console,b)}}};f.logger=p,f.log=e;var q=function(a){var b={};return g.extend(b,a),b};return f.createFrame=q,f}(b,c),e=function(a,b,c){\"use strict\";function d(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l(\"Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (\"+d+\") or downgrade your runtime to an older version (\"+e+\").\")}throw new l(\"Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (\"+a[1]+\").\")}}function e(a,b){if(!b)throw new l(\"No environment passed to template\");var c=function(a,c,d,e,f,g){var h=b.VM.invokePartial.apply(this,arguments);if(null!=h)return h;if(b.compile){var i={helpers:e,partials:f,data:g};return f[c]=b.compile(a,{data:void 0!==g},b),f[c](d,i)}throw new l(\"The partial \"+c+\" could not be compiled when running in runtime-only mode\")},d={escapeExpression:k.escapeExpression,invokePartial:c,programs:[],program:function(a,b,c){var d=this.programs[a];return c?d=g(a,b,c):d||(d=this.programs[a]=g(a,b)),d},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c={},k.extend(c,b),k.extend(c,a)),c},programWithDepth:b.VM.programWithDepth,noop:b.VM.noop,compilerInfo:null};return function(c,e){e=e||{};var f,g,h=e.partial?e:b;e.partial||(f=e.helpers,g=e.partials);var i=a.call(d,h,c,f,g,e.data);return e.partial||b.VM.checkRevision(d.compilerInfo),i}}function f(a,b,c){var d=Array.prototype.slice.call(arguments,3),e=function(a,e){return e=e||{},b.apply(this,[a,e.data||c].concat(d))};return e.program=a,e.depth=d.length,e}function g(a,b,c){var d=function(a,d){return d=d||{},b(a,d.data||c)};return d.program=a,d.depth=0,d}function h(a,b,c,d,e,f){var g={partial:!0,helpers:d,partials:e,data:f};if(void 0===a)throw new l(\"The partial \"+b+\" could not be found\");return a instanceof Function?a(c,g):void 0}function i(){return\"\"}var j={},k=a,l=b,m=c.COMPILER_REVISION,n=c.REVISION_CHANGES;return j.checkRevision=d,j.template=e,j.programWithDepth=f,j.program=g,j.invokePartial=h,j.noop=i,j}(b,c,d),f=function(a,b,c,d,e){\"use strict\";var f,g=a,h=b,i=c,j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();return m.create=l,f=m}(d,a,c,b,e),g=function(a){\"use strict\";function b(a){a=a||{},this.firstLine=a.first_line,this.firstColumn=a.first_column,this.lastColumn=a.last_column,this.lastLine=a.last_line}var c,d=a,e={ProgramNode:function(a,c,d,f){var g,h;3===arguments.length?(f=d,d=null):2===arguments.length&&(f=c,c=null),b.call(this,f),this.type=\"program\",this.statements=a,this.strip={},d?(h=d[0],h?(g={first_line:h.firstLine,last_line:h.lastLine,last_column:h.lastColumn,first_column:h.firstColumn},this.inverse=new e.ProgramNode(d,c,g)):this.inverse=new e.ProgramNode(d,c),this.strip.right=c.left):c&&(this.strip.left=c.right)},MustacheNode:function(a,c,d,f,g){if(b.call(this,g),this.type=\"mustache\",this.strip=f,null!=d&&d.charAt){var h=d.charAt(3)||d.charAt(2);this.escaped=\"{\"!==h&&\"&\"!==h}else this.escaped=!!d;this.sexpr=a instanceof e.SexprNode?a:new e.SexprNode(a,c),this.sexpr.isRoot=!0,this.id=this.sexpr.id,this.params=this.sexpr.params,this.hash=this.sexpr.hash,this.eligibleHelper=this.sexpr.eligibleHelper,this.isHelper=this.sexpr.isHelper},SexprNode:function(a,c,d){b.call(this,d),this.type=\"sexpr\",this.hash=c;var e=this.id=a[0],f=this.params=a.slice(1),g=this.eligibleHelper=e.isSimple;this.isHelper=g&&(f.length||c)},PartialNode:function(a,c,d,e){b.call(this,e),this.type=\"partial\",this.partialName=a,this.context=c,this.strip=d},BlockNode:function(a,c,e,f,g){if(b.call(this,g),a.sexpr.id.original!==f.path.original)throw new d(a.sexpr.id.original+\" doesn't match \"+f.path.original,this);this.type=\"block\",this.mustache=a,this.program=c,this.inverse=e,this.strip={left:a.strip.left,right:f.strip.right},(c||e).strip.left=a.strip.right,(e||c).strip.right=f.strip.left,e&&!c&&(this.isInverse=!0)},ContentNode:function(a,c){b.call(this,c),this.type=\"content\",this.string=a},HashNode:function(a,c){b.call(this,c),this.type=\"hash\",this.pairs=a},IdNode:function(a,c){b.call(this,c),this.type=\"ID\";for(var e=\"\",f=[],g=0,h=0,i=a.length;i>h;h++){var j=a[h].part;if(e+=(a[h].separator||\"\")+j,\"..\"===j||\".\"===j||\"this\"===j){if(f.length>0)throw new d(\"Invalid path: \"+e,this);\"..\"===j?g++:this.isScoped=!0}else f.push(j)}this.original=e,this.parts=f,this.string=f.join(\".\"),this.depth=g,this.isSimple=1===a.length&&!this.isScoped&&0===g,this.stringModeValue=this.string},PartialNameNode:function(a,c){b.call(this,c),this.type=\"PARTIAL_NAME\",this.name=a.original},DataNode:function(a,c){b.call(this,c),this.type=\"DATA\",this.id=a},StringNode:function(a,c){b.call(this,c),this.type=\"STRING\",this.original=this.string=this.stringModeValue=a},IntegerNode:function(a,c){b.call(this,c),this.type=\"INTEGER\",this.original=this.integer=a,this.stringModeValue=Number(a)},BooleanNode:function(a,c){b.call(this,c),this.type=\"BOOLEAN\",this.bool=a,this.stringModeValue=\"true\"===a},CommentNode:function(a,c){b.call(this,c),this.type=\"comment\",this.comment=a}};return c=e}(c),h=function(){\"use strict\";var a,b=function(){function a(a,b){return{left:\"~\"===a.charAt(2),right:\"~\"===b.charAt(0)||\"~\"===b.charAt(1)}}function b(){this.yy={}}var c={trace:function(){},yy:{},symbols_:{error:2,root:3,statements:4,EOF:5,program:6,simpleInverse:7,statement:8,openInverse:9,closeBlock:10,openBlock:11,mustache:12,partial:13,CONTENT:14,COMMENT:15,OPEN_BLOCK:16,sexpr:17,CLOSE:18,OPEN_INVERSE:19,OPEN_ENDBLOCK:20,path:21,OPEN:22,OPEN_UNESCAPED:23,CLOSE_UNESCAPED:24,OPEN_PARTIAL:25,partialName:26,partial_option0:27,sexpr_repetition0:28,sexpr_option0:29,dataName:30,param:31,STRING:32,INTEGER:33,BOOLEAN:34,OPEN_SEXPR:35,CLOSE_SEXPR:36,hash:37,hash_repetition_plus0:38,hashSegment:39,ID:40,EQUALS:41,DATA:42,pathSegments:43,SEP:44,$accept:0,$end:1},terminals_:{2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"CLOSE_UNESCAPED\",25:\"OPEN_PARTIAL\",32:\"STRING\",33:\"INTEGER\",34:\"BOOLEAN\",35:\"OPEN_SEXPR\",36:\"CLOSE_SEXPR\",40:\"ID\",41:\"EQUALS\",42:\"DATA\",44:\"SEP\"},productions_:[0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[31,3],[37,1],[39,3],[26,1],[26,1],[26,1],[30,2],[21,1],[43,3],[43,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[38,1],[38,2]],performAction:function(b,c,d,e,f,g){var h=g.length-1;switch(f){case 1:return new e.ProgramNode(g[h-1],this._$);case 2:return new e.ProgramNode([],this._$);case 3:this.$=new e.ProgramNode([],g[h-1],g[h],this._$);break;case 4:this.$=new e.ProgramNode(g[h-2],g[h-1],g[h],this._$);break;case 5:this.$=new e.ProgramNode(g[h-1],g[h],[],this._$);break;case 6:this.$=new e.ProgramNode(g[h],this._$);break;case 7:this.$=new e.ProgramNode([],this._$);break;case 8:this.$=new e.ProgramNode([],this._$);break;case 9:this.$=[g[h]];break;case 10:g[h-1].push(g[h]),this.$=g[h-1];break;case 11:this.$=new e.BlockNode(g[h-2],g[h-1].inverse,g[h-1],g[h],this._$);break;case 12:this.$=new e.BlockNode(g[h-2],g[h-1],g[h-1].inverse,g[h],this._$);break;case 13:this.$=g[h];break;case 14:this.$=g[h];break;case 15:this.$=new e.ContentNode(g[h],this._$);break;case 16:this.$=new e.CommentNode(g[h],this._$);break;case 17:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 18:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 19:this.$={path:g[h-1],strip:a(g[h-2],g[h])};break;case 20:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 21:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 22:this.$=new e.PartialNode(g[h-2],g[h-1],a(g[h-3],g[h]),this._$);break;case 23:this.$=a(g[h-1],g[h]);break;case 24:this.$=new e.SexprNode([g[h-2]].concat(g[h-1]),g[h],this._$);break;case 25:this.$=new e.SexprNode([g[h]],null,this._$);break;case 26:this.$=g[h];break;case 27:this.$=new e.StringNode(g[h],this._$);break;case 28:this.$=new e.IntegerNode(g[h],this._$);break;case 29:this.$=new e.BooleanNode(g[h],this._$);break;case 30:this.$=g[h];break;case 31:g[h-1].isHelper=!0,this.$=g[h-1];break;case 32:this.$=new e.HashNode(g[h],this._$);break;case 33:this.$=[g[h-2],g[h]];break;case 34:this.$=new e.PartialNameNode(g[h],this._$);break;case 35:this.$=new e.PartialNameNode(new e.StringNode(g[h],this._$),this._$);break;case 36:this.$=new e.PartialNameNode(new e.IntegerNode(g[h],this._$));break;case 37:this.$=new e.DataNode(g[h],this._$);break;case 38:this.$=new e.IdNode(g[h],this._$);break;case 39:g[h-2].push({part:g[h],separator:g[h-1]}),this.$=g[h-2];break;case 40:this.$=[{part:g[h]}];break;case 43:this.$=[];break;case 44:g[h-1].push(g[h]);break;case 47:this.$=[g[h]];break;case 48:g[h-1].push(g[h])}},table:[{3:1,4:2,5:[1,3],8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[3]},{5:[1,16],8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[2,2]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{4:20,6:18,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{4:20,6:22,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{17:23,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:29,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:30,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:31,21:24,30:25,40:[1,28],42:[1,27],43:26},{21:33,26:32,32:[1,34],33:[1,35],40:[1,28],43:26},{1:[2,1]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{10:36,20:[1,37]},{4:38,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,7],22:[1,13],23:[1,14],25:[1,15]},{7:39,8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,6],22:[1,13],23:[1,14],25:[1,15]},{17:23,18:[1,40],21:24,30:25,40:[1,28],42:[1,27],43:26},{10:41,20:[1,37]},{18:[1,42]},{18:[2,43],24:[2,43],28:43,32:[2,43],33:[2,43],34:[2,43],35:[2,43],36:[2,43],40:[2,43],42:[2,43]},{18:[2,25],24:[2,25],36:[2,25]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],35:[2,38],36:[2,38],40:[2,38],42:[2,38],44:[1,44]},{21:45,40:[1,28],43:26},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],42:[2,40],44:[2,40]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,41],21:50,27:49,40:[1,28],43:26},{18:[2,34],40:[2,34]},{18:[2,35],40:[2,35]},{18:[2,36],40:[2,36]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{21:51,40:[1,28],43:26},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,3],22:[1,13],23:[1,14],25:[1,15]},{4:52,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,5],22:[1,13],23:[1,14],25:[1,15]},{14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,45],21:56,24:[2,45],29:53,30:60,31:54,32:[1,57],33:[1,58],34:[1,59],35:[1,61],36:[2,45],37:55,38:62,39:63,40:[1,64],42:[1,27],43:26},{40:[1,65]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],35:[2,37],36:[2,37],40:[2,37],42:[2,37]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,66]},{18:[2,42]},{18:[1,67]},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],25:[1,15]},{18:[2,24],24:[2,24],36:[2,24]},{18:[2,44],24:[2,44],32:[2,44],33:[2,44],34:[2,44],35:[2,44],36:[2,44],40:[2,44],42:[2,44]},{18:[2,46],24:[2,46],36:[2,46]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],35:[2,26],36:[2,26],40:[2,26],42:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],35:[2,27],36:[2,27],40:[2,27],42:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],35:[2,28],36:[2,28],40:[2,28],42:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],35:[2,29],36:[2,29],40:[2,29],42:[2,29]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],35:[2,30],36:[2,30],40:[2,30],42:[2,30]},{17:68,21:24,30:25,40:[1,28],42:[1,27],43:26},{18:[2,32],24:[2,32],36:[2,32],39:69,40:[1,70]},{18:[2,47],24:[2,47],36:[2,47],40:[2,47]},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],41:[1,71],42:[2,40],44:[2,40]},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],35:[2,39],36:[2,39],40:[2,39],42:[2,39],44:[2,39]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{36:[1,72]},{18:[2,48],24:[2,48],36:[2,48],40:[2,48]},{41:[1,71]},{21:56,30:60,31:73,32:[1,57],33:[1,58],34:[1,59],35:[1,61],40:[1,28],42:[1,27],43:26},{18:[2,31],24:[2,31],32:[2,31],33:[2,31],34:[2,31],35:[2,31],36:[2,31],40:[2,31],42:[2,31]},{18:[2,33],24:[2,33],36:[2,33],40:[2,33]}],defaultActions:{3:[2,2],16:[2,1],50:[2,42]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,\"number\"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h=\"\",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,\"undefined\"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;\"function\"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||\"undefined\"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),\"undefined\"==typeof q||!q.length||!q[0]){var x=\"\";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push(\"'\"+this.terminals_[s]+\"'\");x=this.lexer.showPosition?\"Parse error on line \"+(i+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+v.join(\", \")+\", got '\"+(this.terminals_[n]||n)+\"'\":\"Parse error on line \"+(i+1)+\": Unexpected \"+(1==n?\"end of input\":\"'\"+(this.terminals_[n]||n)+\"'\"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+p+\", token: \"+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),\"undefined\"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},d=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\\r\\n?|\\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\\r\\n?|\\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?\"...\":\"\")+a.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join(\"-\");return a+this.upcomingInput()+\"\\n\"+b+\"^\"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext=\"\",this.match=\"\");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\\r\\n?|\\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var a=this.next();return\"undefined\"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if(\"\\\\\\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin(\"mu\")):\"\\\\\"===b.yytext.slice(-1)?(e(0,1),this.begin(\"emu\")):this.begin(\"mu\"),b.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return e(0,4),this.popState(),15;case 4:return 35;case 5:return 36;case 6:return 25;case 7:return 16;case 8:return 20;case 9:return 19;case 10:return 19;case 11:return 23;case 12:return 22;case 13:this.popState(),this.begin(\"com\");break;case 14:return e(3,5),this.popState(),15;case 15:return 22;case 16:return 41;case 17:return 40;case 18:return 40;case 19:return 44;case 20:break;case 21:return this.popState(),24;case 22:return this.popState(),18;case 23:return b.yytext=e(1,2).replace(/\\\\\"/g,'\"'),32;case 24:return b.yytext=e(1,2).replace(/\\\\'/g,\"'\"),32;case 25:return 42;case 26:return 34;case 27:return 34;case 28:return 33;case 29:return 40;case 30:return b.yytext=e(1,2),40;case 31:return\"INVALID\";case 32:return 5}},a.rules=[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:[\\s\\S]*?--\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{!--)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:-?[0-9]+(?=([~}\\s)])))/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)]))))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[3],inclusive:!1},INITIAL:{rules:[0,1,32],inclusive:!0}},a}();return c.lexer=d,b.prototype=c,c.Parser=b,new b}();return a=b}(),i=function(a,b){\"use strict\";function c(a){return a.constructor===f.ProgramNode?a:(e.yy=f,e.parse(a))}var d={},e=a,f=b;return d.parser=e,d.parse=c,d}(h,g),j=function(a){\"use strict\";function b(){}function c(a,b,c){if(null==a||\"string\"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new f(\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0);var d=c.parse(a),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function d(a,b,c){function d(){var d=c.parse(a),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}if(null==a||\"string\"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new f(\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0);var e;return function(a,b){return e||(e=d()),e.call(this,a,b)}}var e={},f=a;return e.Compiler=b,b.prototype={compiler:b,disassemble:function(){for(var a,b,c,d=this.opcodes,e=[],f=0,g=d.length;g>f;f++)if(a=d[f],\"DECLARE\"===a.opcode)e.push(\"DECLARE \"+a.name+\"=\"+a.value);else{b=[];for(var h=0;hc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||d.args.length!==e.args.length)return!1;for(var f=0;fc;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.opcodes=[],this.children=[],this.depths={list:[]},this.options=b;var c=this.options.knownHelpers;if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,\"if\":!0,unless:!0,\"with\":!0,log:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.accept(a)},accept:function(a){var b,c=a.strip||{};return c.left&&this.opcode(\"strip\"),b=this[a.type](a),c.right&&this.opcode(\"strip\"),b},program:function(a){for(var b=a.statements,c=0,d=b.length;d>c;c++)this.accept(b[c]);return this.isSimple=1===d,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++;this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=b.sexpr,f=this.classifySexpr(e);\"helper\"===f?this.helperSexpr(e,c,d):\"simple\"===f?(this.simpleSexpr(e),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"blockValue\")):(this.ambiguousSexpr(e,c,d),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"ambiguousBlockValue\")),this.opcode(\"append\")},hash:function(a){var b,c,d=a.pairs;this.opcode(\"pushHash\");for(var e=0,f=d.length;f>e;e++)b=d[e],c=b[1],this.options.stringParams?(c.depth&&this.addDepth(c.depth),this.opcode(\"getContext\",c.depth||0),this.opcode(\"pushStringParam\",c.stringModeValue,c.type),\"sexpr\"===c.type&&this.sexpr(c)):this.accept(c),this.opcode(\"assignToHash\",b[0]);this.opcode(\"popHash\")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.context?this.ID(a.context):this.opcode(\"push\",\"depth0\"),this.opcode(\"invokePartial\",b.name),this.opcode(\"append\")},content:function(a){this.opcode(\"appendContent\",a.string)},mustache:function(a){this.sexpr(a.sexpr),a.escaped&&!this.options.noEscape?this.opcode(\"appendEscaped\"):this.opcode(\"append\")},ambiguousSexpr:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode(\"getContext\",d.depth),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),this.opcode(\"invokeAmbiguous\",e,f)},simpleSexpr:function(a){var b=a.id;\"DATA\"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode(\"getContext\",b.depth),this.opcode(\"pushContext\")),this.opcode(\"resolvePossibleLambda\")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id.parts[0];if(this.options.knownHelpers[e])this.opcode(\"invokeKnownHelper\",d.length,e);else{if(this.options.knownHelpersOnly)throw new f(\"You specified knownHelpersOnly, but used the unknown helper \"+e,a);this.opcode(\"invokeHelper\",d.length,e,a.isRoot)}},sexpr:function(a){var b=this.classifySexpr(a);\"simple\"===b?this.simpleSexpr(a):\"helper\"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ID:function(a){this.addDepth(a.depth),this.opcode(\"getContext\",a.depth);var b=a.parts[0];b?this.opcode(\"lookupOnContext\",a.parts[0]):this.opcode(\"pushContext\");for(var c=1,d=a.parts.length;d>c;c++)this.opcode(\"lookup\",a.parts[c])},DATA:function(a){if(this.options.data=!0,a.id.isScoped||a.id.depth)throw new f(\"Scoped data references are not supported: \"+a.original,a);this.opcode(\"lookupData\");for(var b=a.id.parts,c=0,d=b.length;d>c;c++)this.opcode(\"lookup\",b[c])},STRING:function(a){this.opcode(\"pushString\",a.string)},INTEGER:function(a){this.opcode(\"pushLiteral\",a.integer)},BOOLEAN:function(a){this.opcode(\"pushLiteral\",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:[].slice.call(arguments,1)})},declare:function(a,b){this.opcodes.push({opcode:\"DECLARE\",name:a,value:b})},addDepth:function(a){0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifySexpr:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?\"helper\":c?\"ambiguous\":\"simple\"},pushParams:function(a){for(var b,c=a.length;c--;)b=a[c],this.options.stringParams?(b.depth&&this.addDepth(b.depth),this.opcode(\"getContext\",b.depth||0),this.opcode(\"pushStringParam\",b.stringModeValue,b.type),\"sexpr\"===b.type&&this.sexpr(b)):this[b.type](b)},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),a.hash?this.hash(a.hash):this.opcode(\"emptyHash\"),d}},e.precompile=c,e.compile=d,e}(c),k=function(a,b){\"use strict\";function c(a){this.value=a}function d(){}var e,f=a.COMPILER_REVISION,g=a.REVISION_CHANGES,h=a.log,i=b;d.prototype={nameLookup:function(a,b){var c,e;return 0===a.indexOf(\"depth\")&&(c=!0),e=/^[0-9]+$/.test(b)?a+\"[\"+b+\"]\":d.isValidJavaScriptVariableName(b)?a+\".\"+b:a+\"['\"+b+\"']\",c?\"(\"+a+\" && \"+e+\")\":e},compilerInfo:function(){var a=f,b=g[a];return\"this.compilerInfo = [\"+a+\",'\"+b+\"'];\\n\"},appendToBuffer:function(a){return this.environment.isSimple?\"return \"+a+\";\":{appendToBuffer:!0,content:a,toString:function(){return\"buffer += \"+a+\";\"}}},initializeBuffer:function(){return this.quotedString(\"\")},namespace:\"Handlebars\",compile:function(a,b,c,d){this.environment=a,this.options=b||{},h(\"debug\",this.environment.disassemble()+\"\\n\\n\"),this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[],aliases:{}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b);\r\nvar e,f=a.opcodes;this.i=0;for(var g=f.length;this.i0&&(this.source[1]=this.source[1]+\", \"+b.join(\", \")),!this.isChild)for(var c in this.context.aliases)this.context.aliases.hasOwnProperty(c)&&(this.source[1]=this.source[1]+\", \"+c+\"=\"+this.context.aliases[c]);this.source[1]&&(this.source[1]=\"var \"+this.source[1].substring(2)+\";\"),this.isChild||(this.source[1]+=\"\\n\"+this.context.programs.join(\"\\n\")+\"\\n\"),this.environment.isSimple||this.pushSource(\"return buffer;\");for(var d=this.isChild?[\"depth0\",\"data\"]:[\"Handlebars\",\"depth0\",\"helpers\",\"partials\",\"data\"],e=0,f=this.environment.depths.list.length;f>e;e++)d.push(\"depth\"+this.environment.depths.list[e]);var g=this.mergeSource();if(this.isChild||(g=this.compilerInfo()+g),a)return d.push(g),Function.apply(this,d);var i=\"function \"+(this.name||\"\")+\"(\"+d.join(\",\")+\") {\\n \"+g+\"}\";return h(\"debug\",i+\"\\n\\n\"),i},mergeSource:function(){for(var a,b=\"\",c=0,d=this.source.length;d>c;c++){var e=this.source[c];e.appendToBuffer?a=a?a+\"\\n + \"+e.content:e.content:(a&&(b+=\"buffer += \"+a+\";\\n \",a=void 0),b+=e+\"\\n \")}return b},blockValue:function(){this.context.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var a=[\"depth0\"];this.setupParams(0,a),this.replaceStack(function(b){return a.splice(1,0,b),\"blockHelperMissing.call(\"+a.join(\", \")+\")\"})},ambiguousBlockValue:function(){this.context.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var a=[\"depth0\"];this.setupParams(0,a);var b=this.topStack();a.splice(1,0,b),this.pushSource(\"if (!\"+this.lastHelper+\") { \"+b+\" = blockHelperMissing.call(\"+a.join(\", \")+\"); }\")},appendContent:function(a){this.pendingContent&&(a=this.pendingContent+a),this.stripNext&&(a=a.replace(/^\\s+/,\"\")),this.pendingContent=a},strip:function(){this.pendingContent&&(this.pendingContent=this.pendingContent.replace(/\\s+$/,\"\")),this.stripNext=\"strip\"},append:function(){this.flushInline();var a=this.popStack();this.pushSource(\"if(\"+a+\" || \"+a+\" === 0) { \"+this.appendToBuffer(a)+\" }\"),this.environment.isSimple&&this.pushSource(\"else { \"+this.appendToBuffer(\"''\")+\" }\")},appendEscaped:function(){this.context.aliases.escapeExpression=\"this.escapeExpression\",this.pushSource(this.appendToBuffer(\"escapeExpression(\"+this.popStack()+\")\"))},getContext:function(a){this.lastContext!==a&&(this.lastContext=a)},lookupOnContext:function(a){this.push(this.nameLookup(\"depth\"+this.lastContext,a,\"context\"))},pushContext:function(){this.pushStackLiteral(\"depth\"+this.lastContext)},resolvePossibleLambda:function(){this.context.aliases.functionType='\"function\"',this.replaceStack(function(a){return\"typeof \"+a+\" === functionType ? \"+a+\".apply(depth0) : \"+a})},lookup:function(a){this.replaceStack(function(b){return b+\" == null || \"+b+\" === false ? \"+b+\" : \"+this.nameLookup(b,a,\"context\")})},lookupData:function(){this.pushStackLiteral(\"data\")},pushStringParam:function(a,b){this.pushStackLiteral(\"depth\"+this.lastContext),this.pushString(b),\"sexpr\"!==b&&(\"string\"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(){this.pushStackLiteral(\"{}\"),this.options.stringParams&&(this.push(\"{}\"),this.push(\"{}\"))},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.options.stringParams&&(this.push(\"{\"+a.contexts.join(\",\")+\"}\"),this.push(\"{\"+a.types.join(\",\")+\"}\")),this.push(\"{\\n \"+a.values.join(\",\\n \")+\"\\n }\")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},invokeHelper:function(a,b,c){this.context.aliases.helperMissing=\"helpers.helperMissing\",this.useRegister(\"helper\");var d=this.lastHelper=this.setupHelper(a,b,!0),e=this.nameLookup(\"depth\"+this.lastContext,b,\"context\"),f=\"helper = \"+d.name+\" || \"+e;d.paramsInit&&(f+=\",\"+d.paramsInit),this.push(\"(\"+f+\",helper ? helper.call(\"+d.callParams+\") : helperMissing.call(\"+d.helperMissingParams+\"))\"),c||this.flushInline()},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+\".call(\"+c.callParams+\")\")},invokeAmbiguous:function(a,b){this.context.aliases.functionType='\"function\"',this.useRegister(\"helper\"),this.emptyHash();var c=this.setupHelper(0,a,b),d=this.lastHelper=this.nameLookup(\"helpers\",a,\"helper\"),e=this.nameLookup(\"depth\"+this.lastContext,a,\"context\"),f=this.nextStack();c.paramsInit&&this.pushSource(c.paramsInit),this.pushSource(\"if (helper = \"+d+\") { \"+f+\" = helper.call(\"+c.callParams+\"); }\"),this.pushSource(\"else { helper = \"+e+\"; \"+f+\" = typeof helper === functionType ? helper.call(\"+c.callParams+\") : helper; }\")},invokePartial:function(a){var b=[this.nameLookup(\"partials\",a,\"partial\"),\"'\"+a+\"'\",this.popStack(),\"helpers\",\"partials\"];this.options.data&&b.push(\"data\"),this.context.aliases.self=\"this\",this.push(\"self.invokePartial(\"+b.join(\", \")+\")\")},assignToHash:function(a){var b,c,d=this.popStack();this.options.stringParams&&(c=this.popStack(),b=this.popStack());var e=this.hash;b&&e.contexts.push(\"'\"+a+\"': \"+b),c&&e.types.push(\"'\"+a+\"': \"+c),e.values.push(\"'\"+a+\"': (\"+d+\")\")},compiler:d,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(\"\"),h=this.context.programs.length,c.index=h,c.name=\"program\"+h,this.context.programs[h]=d.compile(c,b,this.context),this.context.environments[h]=c):(c.index=h,c.name=\"program\"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){if(this.context.aliases.self=\"this\",null==a)return\"self.noop\";for(var b,c=this.environment.children[a],d=c.depths.list,e=[c.index,c.name,\"data\"],f=0,g=d.length;g>f;f++)b=d[f],1===b?e.push(\"depth0\"):e.push(\"depth\"+(b-1));return(0===d.length?\"self.program(\":\"self.programWithDepth(\")+e.join(\", \")+\")\"},register:function(a,b){this.useRegister(a),this.pushSource(a+\" = \"+b+\";\")},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new c(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))),this.pendingContent=void 0),a&&this.source.push(a)},pushStack:function(a){this.flushInline();var b=this.incrStack();return a&&this.pushSource(b+\" = \"+a+\";\"),this.compileStack.push(b),b},replaceStack:function(a){var b,d,e,f=\"\",g=this.isInline();if(g){var h=this.popStack(!0);if(h instanceof c)b=h.value,e=!0;else{d=!this.stackSlot;var i=d?this.incrStack():this.topStackName();f=\"(\"+this.push(i)+\" = \"+h+\"),\",b=this.topStack()}}else b=this.topStack();var j=a.call(this,b);return g?(e||this.popStack(),d&&this.stackSlot--,this.push(\"(\"+f+j+\")\")):(/^stack/.test(b)||(b=this.nextStack()),this.pushSource(b+\" = (\"+f+j+\");\")),b},nextStack:function(){return this.pushStack()},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push(\"stack\"+this.stackSlot),this.topStackName()},topStackName:function(){return\"stack\"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,d=a.length;d>b;b++){var e=a[b];e instanceof c?this.compileStack.push(e):this.pushStack(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),d=(b?this.inlineStack:this.compileStack).pop();if(!a&&d instanceof c)return d.value;if(!b){if(!this.stackSlot)throw new i(\"Invalid stack pop\");this.stackSlot--}return d},topStack:function(a){var b=this.isInline()?this.inlineStack:this.compileStack,d=b[b.length-1];return!a&&d instanceof c?d.value:d},quotedString:function(a){return'\"'+a.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")+'\"'},setupHelper:function(a,b,c){var d=[],e=this.setupParams(a,d,c),f=this.nameLookup(\"helpers\",b,\"helper\");return{params:d,paramsInit:e,name:f,callParams:[\"depth0\"].concat(d).join(\", \"),helperMissingParams:c&&[\"depth0\",this.quotedString(b)].concat(d).join(\", \")}},setupOptions:function(a,b){var c,d,e,f=[],g=[],h=[];f.push(\"hash:\"+this.popStack()),this.options.stringParams&&(f.push(\"hashTypes:\"+this.popStack()),f.push(\"hashContexts:\"+this.popStack())),d=this.popStack(),e=this.popStack(),(e||d)&&(e||(this.context.aliases.self=\"this\",e=\"self.noop\"),d||(this.context.aliases.self=\"this\",d=\"self.noop\"),f.push(\"inverse:\"+d),f.push(\"fn:\"+e));for(var i=0;a>i;i++)c=this.popStack(),b.push(c),this.options.stringParams&&(h.push(this.popStack()),g.push(this.popStack()));return this.options.stringParams&&(f.push(\"contexts:[\"+g.join(\",\")+\"]\"),f.push(\"types:[\"+h.join(\",\")+\"]\")),this.options.data&&f.push(\"data:data\"),f},setupParams:function(a,b,c){var d=\"{\"+this.setupOptions(a,b).join(\",\")+\"}\";return c?(this.useRegister(\"options\"),b.push(\"options\"),\"options=\"+d):(b.push(d),\"\")}};for(var j=\"break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield\".split(\" \"),k=d.RESERVED_WORDS={},l=0,m=j.length;m>l;l++)k[j[l]]=!0;return d.isValidJavaScriptVariableName=function(a){return!d.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)?!0:!1},e=d}(d,c),l=function(a,b,c,d,e){\"use strict\";var f,g=a,h=b,i=c.parser,j=c.parse,k=d.Compiler,l=d.compile,m=d.precompile,n=e,o=g.create,p=function(){var a=o();return a.compile=function(b,c){return l(b,c,a)},a.precompile=function(b,c){return m(b,c,a)},a.AST=h,a.Compiler=k,a.JavaScriptCompiler=n,a.Parser=i,a.parse=j,a};return g=p(),g.create=p,f=g}(f,g,i,j,k);return l}();","/*!\r\n * VERSION: 1.18.0\r\n * DATE: 2015-09-03\r\n * UPDATES AND DOCS AT: http://greensock.com\r\n *\r\n * @license Copyright (c) 2008-2015, GreenSock. All rights reserved.\r\n * This work is subject to the terms at http://greensock.com/standard-license or for\r\n * Club GreenSock members, the software agreement that was issued with your membership.\r\n * \r\n * @author: Jack Doyle, jack@greensock.com\r\n */\r\n(function(window, moduleName) {\r\n\r\n\t\t\"use strict\";\r\n\t\tvar _globals = window.GreenSockGlobals = window.GreenSockGlobals || window;\r\n\t\tif (_globals.TweenLite) {\r\n\t\t\treturn; //in case the core set of classes is already loaded, don't instantiate twice.\r\n\t\t}\r\n\t\tvar _namespace = function(ns) {\r\n\t\t\t\tvar a = ns.split(\".\"),\r\n\t\t\t\t\tp = _globals, i;\r\n\t\t\t\tfor (i = 0; i < a.length; i++) {\r\n\t\t\t\t\tp[a[i]] = p = p[a[i]] || {};\r\n\t\t\t\t}\r\n\t\t\t\treturn p;\r\n\t\t\t},\r\n\t\t\tgs = _namespace(\"com.greensock\"),\r\n\t\t\t_tinyNum = 0.0000000001,\r\n\t\t\t_slice = function(a) { //don't use Array.prototype.slice.call(target, 0) because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()\r\n\t\t\t\tvar b = [],\r\n\t\t\t\t\tl = a.length,\r\n\t\t\t\t\ti;\r\n\t\t\t\tfor (i = 0; i !== l; b.push(a[i++])) {}\r\n\t\t\t\treturn b;\r\n\t\t\t},\r\n\t\t\t_emptyFunc = function() {},\r\n\t\t\t_isArray = (function() { //works around issues in iframe environments where the Array global isn't shared, thus if the object originates in a different window/iframe, \"(obj instanceof Array)\" will evaluate false. We added some speed optimizations to avoid Object.prototype.toString.call() unless it's absolutely necessary because it's VERY slow (like 20x slower)\r\n\t\t\t\tvar toString = Object.prototype.toString,\r\n\t\t\t\t\tarray = toString.call([]);\r\n\t\t\t\treturn function(obj) {\r\n\t\t\t\t\treturn obj != null && (obj instanceof Array || (typeof(obj) === \"object\" && !!obj.push && toString.call(obj) === array));\r\n\t\t\t\t};\r\n\t\t\t}()),\r\n\t\t\ta, i, p, _ticker, _tickerActive,\r\n\t\t\t_defLookup = {},\r\n\r\n\t\t\t/**\r\n\t\t\t * @constructor\r\n\t\t\t * Defines a GreenSock class, optionally with an array of dependencies that must be instantiated first and passed into the definition.\r\n\t\t\t * This allows users to load GreenSock JS files in any order even if they have interdependencies (like CSSPlugin extends TweenPlugin which is\r\n\t\t\t * inside TweenLite.js, but if CSSPlugin is loaded first, it should wait to run its code until TweenLite.js loads and instantiates TweenPlugin\r\n\t\t\t * and then pass TweenPlugin to CSSPlugin's definition). This is all done automatically and internally.\r\n\t\t\t *\r\n\t\t\t * Every definition will be added to a \"com.greensock\" global object (typically window, but if a window.GreenSockGlobals object is found,\r\n\t\t\t * it will go there as of v1.7). For example, TweenLite will be found at window.com.greensock.TweenLite and since it's a global class that should be available anywhere,\r\n\t\t\t * it is ALSO referenced at window.TweenLite. However some classes aren't considered global, like the base com.greensock.core.Animation class, so\r\n\t\t\t * those will only be at the package like window.com.greensock.core.Animation. Again, if you define a GreenSockGlobals object on the window, everything\r\n\t\t\t * gets tucked neatly inside there instead of on the window directly. This allows you to do advanced things like load multiple versions of GreenSock\r\n\t\t\t * files and put them into distinct objects (imagine a banner ad uses a newer version but the main site uses an older one). In that case, you could\r\n\t\t\t * sandbox the banner one like:\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t *\r\n\t\t\t * @param {!string} ns The namespace of the class definition, leaving off \"com.greensock.\" as that's assumed. For example, \"TweenLite\" or \"plugins.CSSPlugin\" or \"easing.Back\".\r\n\t\t\t * @param {!Array.} dependencies An array of dependencies (described as their namespaces minus \"com.greensock.\" prefix). For example [\"TweenLite\",\"plugins.TweenPlugin\",\"core.Animation\"]\r\n\t\t\t * @param {!function():Object} func The function that should be called and passed the resolved dependencies which will return the actual class for this definition.\r\n\t\t\t * @param {boolean=} global If true, the class will be added to the global scope (typically window unless you define a window.GreenSockGlobals object)\r\n\t\t\t */\r\n\t\t\tDefinition = function(ns, dependencies, func, global) {\r\n\t\t\t\tthis.sc = (_defLookup[ns]) ? _defLookup[ns].sc : []; //subclasses\r\n\t\t\t\t_defLookup[ns] = this;\r\n\t\t\t\tthis.gsClass = null;\r\n\t\t\t\tthis.func = func;\r\n\t\t\t\tvar _classes = [];\r\n\t\t\t\tthis.check = function(init) {\r\n\t\t\t\t\tvar i = dependencies.length,\r\n\t\t\t\t\t\tmissing = i,\r\n\t\t\t\t\t\tcur, a, n, cl, hasModule;\r\n\t\t\t\t\twhile (--i > -1) {\r\n\t\t\t\t\t\tif ((cur = _defLookup[dependencies[i]] || new Definition(dependencies[i], [])).gsClass) {\r\n\t\t\t\t\t\t\t_classes[i] = cur.gsClass;\r\n\t\t\t\t\t\t\tmissing--;\r\n\t\t\t\t\t\t} else if (init) {\r\n\t\t\t\t\t\t\tcur.sc.push(this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (missing === 0 && func) {\r\n\t\t\t\t\t\ta = (\"com.greensock.\" + ns).split(\".\");\r\n\t\t\t\t\t\tn = a.pop();\r\n\t\t\t\t\t\tcl = _namespace(a.join(\".\"))[n] = this.gsClass = func.apply(func, _classes);\r\n\r\n\t\t\t\t\t\t//exports to multiple environments\r\n\t\t\t\t\t\tif (global) {\r\n\t\t\t\t\t\t\t_globals[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)\r\n\t\t\t\t\t\t\thasModule = (typeof(module) !== \"undefined\" && module.exports);\r\n\t\t\t\t\t\t\tif (!hasModule && typeof(define) === \"function\" && define.amd){ //AMD\r\n\t\t\t\t\t\t\t\tdefine((window.GreenSockAMDPath ? window.GreenSockAMDPath + \"/\" : \"\") + ns.split(\".\").pop(), [], function() { return cl; });\r\n\t\t\t\t\t\t\t} else if (ns === moduleName && hasModule){ //node\r\n\t\t\t\t\t\t\t\tmodule.exports = cl;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (i = 0; i < this.sc.length; i++) {\r\n\t\t\t\t\t\t\tthis.sc[i].check();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tthis.check(true);\r\n\t\t\t},\r\n\r\n\t\t\t//used to create Definition instances (which basically registers a class that has dependencies).\r\n\t\t\t_gsDefine = window._gsDefine = function(ns, dependencies, func, global) {\r\n\t\t\t\treturn new Definition(ns, dependencies, func, global);\r\n\t\t\t},\r\n\r\n\t\t\t//a quick way to create a class that doesn't have any dependencies. Returns the class, but first registers it in the GreenSock namespace so that other classes can grab it (other classes might be dependent on the class).\r\n\t\t\t_class = gs._class = function(ns, func, global) {\r\n\t\t\t\tfunc = func || function() {};\r\n\t\t\t\t_gsDefine(ns, [], function(){ return func; }, global);\r\n\t\t\t\treturn func;\r\n\t\t\t};\r\n\r\n\t\t_gsDefine.globals = _globals;\r\n\r\n\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * Ease\r\n * ----------------------------------------------------------------\r\n */\r\n\t\tvar _baseParams = [0, 0, 1, 1],\r\n\t\t\t_blankArray = [],\r\n\t\t\tEase = _class(\"easing.Ease\", function(func, extraParams, type, power) {\r\n\t\t\t\tthis._func = func;\r\n\t\t\t\tthis._type = type || 0;\r\n\t\t\t\tthis._power = power || 0;\r\n\t\t\t\tthis._params = extraParams ? _baseParams.concat(extraParams) : _baseParams;\r\n\t\t\t}, true),\r\n\t\t\t_easeMap = Ease.map = {},\r\n\t\t\t_easeReg = Ease.register = function(ease, names, types, create) {\r\n\t\t\t\tvar na = names.split(\",\"),\r\n\t\t\t\t\ti = na.length,\r\n\t\t\t\t\tta = (types || \"easeIn,easeOut,easeInOut\").split(\",\"),\r\n\t\t\t\t\te, name, j, type;\r\n\t\t\t\twhile (--i > -1) {\r\n\t\t\t\t\tname = na[i];\r\n\t\t\t\t\te = create ? _class(\"easing.\"+name, null, true) : gs.easing[name] || {};\r\n\t\t\t\t\tj = ta.length;\r\n\t\t\t\t\twhile (--j > -1) {\r\n\t\t\t\t\t\ttype = ta[j];\r\n\t\t\t\t\t\t_easeMap[name + \".\" + type] = _easeMap[type + name] = e[type] = ease.getRatio ? ease : ease[type] || new ease();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tp = Ease.prototype;\r\n\t\tp._calcEnd = false;\r\n\t\tp.getRatio = function(p) {\r\n\t\t\tif (this._func) {\r\n\t\t\t\tthis._params[0] = p;\r\n\t\t\t\treturn this._func.apply(null, this._params);\r\n\t\t\t}\r\n\t\t\tvar t = this._type,\r\n\t\t\t\tpw = this._power,\r\n\t\t\t\tr = (t === 1) ? 1 - p : (t === 2) ? p : (p < 0.5) ? p * 2 : (1 - p) * 2;\r\n\t\t\tif (pw === 1) {\r\n\t\t\t\tr *= r;\r\n\t\t\t} else if (pw === 2) {\r\n\t\t\t\tr *= r * r;\r\n\t\t\t} else if (pw === 3) {\r\n\t\t\t\tr *= r * r * r;\r\n\t\t\t} else if (pw === 4) {\r\n\t\t\t\tr *= r * r * r * r;\r\n\t\t\t}\r\n\t\t\treturn (t === 1) ? 1 - r : (t === 2) ? r : (p < 0.5) ? r / 2 : 1 - (r / 2);\r\n\t\t};\r\n\r\n\t\t//create all the standard eases like Linear, Quad, Cubic, Quart, Quint, Strong, Power0, Power1, Power2, Power3, and Power4 (each with easeIn, easeOut, and easeInOut)\r\n\t\ta = [\"Linear\",\"Quad\",\"Cubic\",\"Quart\",\"Quint,Strong\"];\r\n\t\ti = a.length;\r\n\t\twhile (--i > -1) {\r\n\t\t\tp = a[i]+\",Power\"+i;\r\n\t\t\t_easeReg(new Ease(null,null,1,i), p, \"easeOut\", true);\r\n\t\t\t_easeReg(new Ease(null,null,2,i), p, \"easeIn\" + ((i === 0) ? \",easeNone\" : \"\"));\r\n\t\t\t_easeReg(new Ease(null,null,3,i), p, \"easeInOut\");\r\n\t\t}\r\n\t\t_easeMap.linear = gs.easing.Linear.easeIn;\r\n\t\t_easeMap.swing = gs.easing.Quad.easeInOut; //for jQuery folks\r\n\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * EventDispatcher\r\n * ----------------------------------------------------------------\r\n */\r\n\t\tvar EventDispatcher = _class(\"events.EventDispatcher\", function(target) {\r\n\t\t\tthis._listeners = {};\r\n\t\t\tthis._eventTarget = target || this;\r\n\t\t});\r\n\t\tp = EventDispatcher.prototype;\r\n\r\n\t\tp.addEventListener = function(type, callback, scope, useParam, priority) {\r\n\t\t\tpriority = priority || 0;\r\n\t\t\tvar list = this._listeners[type],\r\n\t\t\t\tindex = 0,\r\n\t\t\t\tlistener, i;\r\n\t\t\tif (list == null) {\r\n\t\t\t\tthis._listeners[type] = list = [];\r\n\t\t\t}\r\n\t\t\ti = list.length;\r\n\t\t\twhile (--i > -1) {\r\n\t\t\t\tlistener = list[i];\r\n\t\t\t\tif (listener.c === callback && listener.s === scope) {\r\n\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t} else if (index === 0 && listener.pr < priority) {\r\n\t\t\t\t\tindex = i + 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlist.splice(index, 0, {c:callback, s:scope, up:useParam, pr:priority});\r\n\t\t\tif (this === _ticker && !_tickerActive) {\r\n\t\t\t\t_ticker.wake();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tp.removeEventListener = function(type, callback) {\r\n\t\t\tvar list = this._listeners[type], i;\r\n\t\t\tif (list) {\r\n\t\t\t\ti = list.length;\r\n\t\t\t\twhile (--i > -1) {\r\n\t\t\t\t\tif (list[i].c === callback) {\r\n\t\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tp.dispatchEvent = function(type) {\r\n\t\t\tvar list = this._listeners[type],\r\n\t\t\t\ti, t, listener;\r\n\t\t\tif (list) {\r\n\t\t\t\ti = list.length;\r\n\t\t\t\tt = this._eventTarget;\r\n\t\t\t\twhile (--i > -1) {\r\n\t\t\t\t\tlistener = list[i];\r\n\t\t\t\t\tif (listener) {\r\n\t\t\t\t\t\tif (listener.up) {\r\n\t\t\t\t\t\t\tlistener.c.call(listener.s || t, {type:type, target:t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlistener.c.call(listener.s || t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * Ticker\r\n * ----------------------------------------------------------------\r\n */\r\n \t\tvar _reqAnimFrame = window.requestAnimationFrame,\r\n\t\t\t_cancelAnimFrame = window.cancelAnimationFrame,\r\n\t\t\t_getTime = Date.now || function() {return new Date().getTime();},\r\n\t\t\t_lastUpdate = _getTime();\r\n\r\n\t\t//now try to determine the requestAnimationFrame and cancelAnimationFrame functions and if none are found, we'll use a setTimeout()/clearTimeout() polyfill.\r\n\t\ta = [\"ms\",\"moz\",\"webkit\",\"o\"];\r\n\t\ti = a.length;\r\n\t\twhile (--i > -1 && !_reqAnimFrame) {\r\n\t\t\t_reqAnimFrame = window[a[i] + \"RequestAnimationFrame\"];\r\n\t\t\t_cancelAnimFrame = window[a[i] + \"CancelAnimationFrame\"] || window[a[i] + \"CancelRequestAnimationFrame\"];\r\n\t\t}\r\n\r\n\t\t_class(\"Ticker\", function(fps, useRAF) {\r\n\t\t\tvar _self = this,\r\n\t\t\t\t_startTime = _getTime(),\r\n\t\t\t\t_useRAF = (useRAF !== false && _reqAnimFrame),\r\n\t\t\t\t_lagThreshold = 500,\r\n\t\t\t\t_adjustedLag = 33,\r\n\t\t\t\t_tickWord = \"tick\", //helps reduce gc burden\r\n\t\t\t\t_fps, _req, _id, _gap, _nextTime,\r\n\t\t\t\t_tick = function(manual) {\r\n\t\t\t\t\tvar elapsed = _getTime() - _lastUpdate,\r\n\t\t\t\t\t\toverlap, dispatch;\r\n\t\t\t\t\tif (elapsed > _lagThreshold) {\r\n\t\t\t\t\t\t_startTime += elapsed - _adjustedLag;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_lastUpdate += elapsed;\r\n\t\t\t\t\t_self.time = (_lastUpdate - _startTime) / 1000;\r\n\t\t\t\t\toverlap = _self.time - _nextTime;\r\n\t\t\t\t\tif (!_fps || overlap > 0 || manual === true) {\r\n\t\t\t\t\t\t_self.frame++;\r\n\t\t\t\t\t\t_nextTime += overlap + (overlap >= _gap ? 0.004 : _gap - overlap);\r\n\t\t\t\t\t\tdispatch = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (manual !== true) { //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\r\n\t\t\t\t\t\t_id = _req(_tick);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (dispatch) {\r\n\t\t\t\t\t\t_self.dispatchEvent(_tickWord);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\tEventDispatcher.call(_self);\r\n\t\t\t_self.time = _self.frame = 0;\r\n\t\t\t_self.tick = function() {\r\n\t\t\t\t_tick(true);\r\n\t\t\t};\r\n\r\n\t\t\t_self.lagSmoothing = function(threshold, adjustedLag) {\r\n\t\t\t\t_lagThreshold = threshold || (1 / _tinyNum); //zero should be interpreted as basically unlimited\r\n\t\t\t\t_adjustedLag = Math.min(adjustedLag, _lagThreshold, 0);\r\n\t\t\t};\r\n\r\n\t\t\t_self.sleep = function() {\r\n\t\t\t\tif (_id == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!_useRAF || !_cancelAnimFrame) {\r\n\t\t\t\t\tclearTimeout(_id);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_cancelAnimFrame(_id);\r\n\t\t\t\t}\r\n\t\t\t\t_req = _emptyFunc;\r\n\t\t\t\t_id = null;\r\n\t\t\t\tif (_self === _ticker) {\r\n\t\t\t\t\t_tickerActive = false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t_self.wake = function() {\r\n\t\t\t\tif (_id !== null) {\r\n\t\t\t\t\t_self.sleep();\r\n\t\t\t\t} else if (_self.frame > 10) { //don't trigger lagSmoothing if we're just waking up, and make sure that at least 10 frames have elapsed because of the iOS bug that we work around below with the 1.5-second setTimout().\r\n\t\t\t\t\t_lastUpdate = _getTime() - _lagThreshold + 5;\r\n\t\t\t\t}\r\n\t\t\t\t_req = (_fps === 0) ? _emptyFunc : (!_useRAF || !_reqAnimFrame) ? function(f) { return setTimeout(f, ((_nextTime - _self.time) * 1000 + 1) | 0); } : _reqAnimFrame;\r\n\t\t\t\tif (_self === _ticker) {\r\n\t\t\t\t\t_tickerActive = true;\r\n\t\t\t\t}\r\n\t\t\t\t_tick(2);\r\n\t\t\t};\r\n\r\n\t\t\t_self.fps = function(value) {\r\n\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\treturn _fps;\r\n\t\t\t\t}\r\n\t\t\t\t_fps = value;\r\n\t\t\t\t_gap = 1 / (_fps || 60);\r\n\t\t\t\t_nextTime = this.time + _gap;\r\n\t\t\t\t_self.wake();\r\n\t\t\t};\r\n\r\n\t\t\t_self.useRAF = function(value) {\r\n\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\treturn _useRAF;\r\n\t\t\t\t}\r\n\t\t\t\t_self.sleep();\r\n\t\t\t\t_useRAF = value;\r\n\t\t\t\t_self.fps(_fps);\r\n\t\t\t};\r\n\t\t\t_self.fps(fps);\r\n\r\n\t\t\t//a bug in iOS 6 Safari occasionally prevents the requestAnimationFrame from working initially, so we use a 1.5-second timeout that automatically falls back to setTimeout() if it senses this condition.\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tif (_useRAF && _self.frame < 5) {\r\n\t\t\t\t\t_self.useRAF(false);\r\n\t\t\t\t}\r\n\t\t\t}, 1500);\r\n\t\t});\r\n\r\n\t\tp = gs.Ticker.prototype = new gs.events.EventDispatcher();\r\n\t\tp.constructor = gs.Ticker;\r\n\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * Animation\r\n * ----------------------------------------------------------------\r\n */\r\n\t\tvar Animation = _class(\"core.Animation\", function(duration, vars) {\r\n\t\t\t\tthis.vars = vars = vars || {};\r\n\t\t\t\tthis._duration = this._totalDuration = duration || 0;\r\n\t\t\t\tthis._delay = Number(vars.delay) || 0;\r\n\t\t\t\tthis._timeScale = 1;\r\n\t\t\t\tthis._active = (vars.immediateRender === true);\r\n\t\t\t\tthis.data = vars.data;\r\n\t\t\t\tthis._reversed = (vars.reversed === true);\r\n\r\n\t\t\t\tif (!_rootTimeline) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!_tickerActive) { //some browsers (like iOS 6 Safari) shut down JavaScript execution when the tab is disabled and they [occasionally] neglect to start up requestAnimationFrame again when returning - this code ensures that the engine starts up again properly.\r\n\t\t\t\t\t_ticker.wake();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar tl = this.vars.useFrames ? _rootFramesTimeline : _rootTimeline;\r\n\t\t\t\ttl.add(this, tl._time);\r\n\r\n\t\t\t\tif (this.vars.paused) {\r\n\t\t\t\t\tthis.paused(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t_ticker = Animation.ticker = new gs.Ticker();\r\n\t\tp = Animation.prototype;\r\n\t\tp._dirty = p._gc = p._initted = p._paused = false;\r\n\t\tp._totalTime = p._time = 0;\r\n\t\tp._rawPrevTime = -1;\r\n\t\tp._next = p._last = p._onUpdate = p._timeline = p.timeline = null;\r\n\t\tp._paused = false;\r\n\r\n\r\n\t\t//some browsers (like iOS) occasionally drop the requestAnimationFrame event when the user switches to a different tab and then comes back again, so we use a 2-second setTimeout() to sense if/when that condition occurs and then wake() the ticker.\r\n\t\tvar _checkTimeout = function() {\r\n\t\t\t\tif (_tickerActive && _getTime() - _lastUpdate > 2000) {\r\n\t\t\t\t\t_ticker.wake();\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(_checkTimeout, 2000);\r\n\t\t\t};\r\n\t\t_checkTimeout();\r\n\r\n\r\n\t\tp.play = function(from, suppressEvents) {\r\n\t\t\tif (from != null) {\r\n\t\t\t\tthis.seek(from, suppressEvents);\r\n\t\t\t}\r\n\t\t\treturn this.reversed(false).paused(false);\r\n\t\t};\r\n\r\n\t\tp.pause = function(atTime, suppressEvents) {\r\n\t\t\tif (atTime != null) {\r\n\t\t\t\tthis.seek(atTime, suppressEvents);\r\n\t\t\t}\r\n\t\t\treturn this.paused(true);\r\n\t\t};\r\n\r\n\t\tp.resume = function(from, suppressEvents) {\r\n\t\t\tif (from != null) {\r\n\t\t\t\tthis.seek(from, suppressEvents);\r\n\t\t\t}\r\n\t\t\treturn this.paused(false);\r\n\t\t};\r\n\r\n\t\tp.seek = function(time, suppressEvents) {\r\n\t\t\treturn this.totalTime(Number(time), suppressEvents !== false);\r\n\t\t};\r\n\r\n\t\tp.restart = function(includeDelay, suppressEvents) {\r\n\t\t\treturn this.reversed(false).paused(false).totalTime(includeDelay ? -this._delay : 0, (suppressEvents !== false), true);\r\n\t\t};\r\n\r\n\t\tp.reverse = function(from, suppressEvents) {\r\n\t\t\tif (from != null) {\r\n\t\t\t\tthis.seek((from || this.totalDuration()), suppressEvents);\r\n\t\t\t}\r\n\t\t\treturn this.reversed(true).paused(false);\r\n\t\t};\r\n\r\n\t\tp.render = function(time, suppressEvents, force) {\r\n\t\t\t//stub - we override this method in subclasses.\r\n\t\t};\r\n\r\n\t\tp.invalidate = function() {\r\n\t\t\tthis._time = this._totalTime = 0;\r\n\t\t\tthis._initted = this._gc = false;\r\n\t\t\tthis._rawPrevTime = -1;\r\n\t\t\tif (this._gc || !this.timeline) {\r\n\t\t\t\tthis._enabled(true);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.isActive = function() {\r\n\t\t\tvar tl = this._timeline, //the 2 root timelines won't have a _timeline; they're always active.\r\n\t\t\t\tstartTime = this._startTime,\r\n\t\t\t\trawTime;\r\n\t\t\treturn (!tl || (!this._gc && !this._paused && tl.isActive() && (rawTime = tl.rawTime()) >= startTime && rawTime < startTime + this.totalDuration() / this._timeScale));\r\n\t\t};\r\n\r\n\t\tp._enabled = function (enabled, ignoreTimeline) {\r\n\t\t\tif (!_tickerActive) {\r\n\t\t\t\t_ticker.wake();\r\n\t\t\t}\r\n\t\t\tthis._gc = !enabled;\r\n\t\t\tthis._active = this.isActive();\r\n\t\t\tif (ignoreTimeline !== true) {\r\n\t\t\t\tif (enabled && !this.timeline) {\r\n\t\t\t\t\tthis._timeline.add(this, this._startTime - this._delay);\r\n\t\t\t\t} else if (!enabled && this.timeline) {\r\n\t\t\t\t\tthis._timeline._remove(this, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tp._kill = function(vars, target) {\r\n\t\t\treturn this._enabled(false, false);\r\n\t\t};\r\n\r\n\t\tp.kill = function(vars, target) {\r\n\t\t\tthis._kill(vars, target);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp._uncache = function(includeSelf) {\r\n\t\t\tvar tween = includeSelf ? this : this.timeline;\r\n\t\t\twhile (tween) {\r\n\t\t\t\ttween._dirty = true;\r\n\t\t\t\ttween = tween.timeline;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp._swapSelfInParams = function(params) {\r\n\t\t\tvar i = params.length,\r\n\t\t\t\tcopy = params.concat();\r\n\t\t\twhile (--i > -1) {\r\n\t\t\t\tif (params[i] === \"{self}\") {\r\n\t\t\t\t\tcopy[i] = this;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn copy;\r\n\t\t};\r\n\r\n\t\tp._callback = function(type) {\r\n\t\t\tvar v = this.vars;\r\n\t\t\tv[type].apply(v[type + \"Scope\"] || v.callbackScope || this, v[type + \"Params\"] || _blankArray);\r\n\t\t};\r\n\r\n//----Animation getters/setters --------------------------------------------------------\r\n\r\n\t\tp.eventCallback = function(type, callback, params, scope) {\r\n\t\t\tif ((type || \"\").substr(0,2) === \"on\") {\r\n\t\t\t\tvar v = this.vars;\r\n\t\t\t\tif (arguments.length === 1) {\r\n\t\t\t\t\treturn v[type];\r\n\t\t\t\t}\r\n\t\t\t\tif (callback == null) {\r\n\t\t\t\t\tdelete v[type];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tv[type] = callback;\r\n\t\t\t\t\tv[type + \"Params\"] = (_isArray(params) && params.join(\"\").indexOf(\"{self}\") !== -1) ? this._swapSelfInParams(params) : params;\r\n\t\t\t\t\tv[type + \"Scope\"] = scope;\r\n\t\t\t\t}\r\n\t\t\t\tif (type === \"onUpdate\") {\r\n\t\t\t\t\tthis._onUpdate = callback;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.delay = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._delay;\r\n\t\t\t}\r\n\t\t\tif (this._timeline.smoothChildTiming) {\r\n\t\t\t\tthis.startTime( this._startTime + value - this._delay );\r\n\t\t\t}\r\n\t\t\tthis._delay = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.duration = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\tthis._dirty = false;\r\n\t\t\t\treturn this._duration;\r\n\t\t\t}\r\n\t\t\tthis._duration = this._totalDuration = value;\r\n\t\t\tthis._uncache(true); //true in case it's a TweenMax or TimelineMax that has a repeat - we'll need to refresh the totalDuration.\r\n\t\t\tif (this._timeline.smoothChildTiming) if (this._time > 0) if (this._time < this._duration) if (value !== 0) {\r\n\t\t\t\tthis.totalTime(this._totalTime * (value / this._duration), true);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.totalDuration = function(value) {\r\n\t\t\tthis._dirty = false;\r\n\t\t\treturn (!arguments.length) ? this._totalDuration : this.duration(value);\r\n\t\t};\r\n\r\n\t\tp.time = function(value, suppressEvents) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._time;\r\n\t\t\t}\r\n\t\t\tif (this._dirty) {\r\n\t\t\t\tthis.totalDuration();\r\n\t\t\t}\r\n\t\t\treturn this.totalTime((value > this._duration) ? this._duration : value, suppressEvents);\r\n\t\t};\r\n\r\n\t\tp.totalTime = function(time, suppressEvents, uncapped) {\r\n\t\t\tif (!_tickerActive) {\r\n\t\t\t\t_ticker.wake();\r\n\t\t\t}\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._totalTime;\r\n\t\t\t}\r\n\t\t\tif (this._timeline) {\r\n\t\t\t\tif (time < 0 && !uncapped) {\r\n\t\t\t\t\ttime += this.totalDuration();\r\n\t\t\t\t}\r\n\t\t\t\tif (this._timeline.smoothChildTiming) {\r\n\t\t\t\t\tif (this._dirty) {\r\n\t\t\t\t\t\tthis.totalDuration();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar totalDuration = this._totalDuration,\r\n\t\t\t\t\t\ttl = this._timeline;\r\n\t\t\t\t\tif (time > totalDuration && !uncapped) {\r\n\t\t\t\t\t\ttime = totalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._startTime = (this._paused ? this._pauseTime : tl._time) - ((!this._reversed ? time : totalDuration - time) / this._timeScale);\r\n\t\t\t\t\tif (!tl._dirty) { //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\r\n\t\t\t\t\t\tthis._uncache(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The startTime of that child would get pushed out, but one of the ancestors may have completed.\r\n\t\t\t\t\tif (tl._timeline) {\r\n\t\t\t\t\t\twhile (tl._timeline) {\r\n\t\t\t\t\t\t\tif (tl._timeline._time !== (tl._startTime + tl._totalTime) / tl._timeScale) {\r\n\t\t\t\t\t\t\t\ttl.totalTime(tl._totalTime, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttl = tl._timeline;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this._gc) {\r\n\t\t\t\t\tthis._enabled(true, false);\r\n\t\t\t\t}\r\n\t\t\t\tif (this._totalTime !== time || this._duration === 0) {\r\n\t\t\t\t\tif (_lazyTweens.length) {\r\n\t\t\t\t\t\t_lazyRender();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.render(time, suppressEvents, false);\r\n\t\t\t\t\tif (_lazyTweens.length) { //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\r\n\t\t\t\t\t\t_lazyRender();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.progress = p.totalProgress = function(value, suppressEvents) {\r\n\t\t\tvar duration = this.duration();\r\n\t\t\treturn (!arguments.length) ? (duration ? this._time / duration : this.ratio) : this.totalTime(duration * value, suppressEvents);\r\n\t\t};\r\n\r\n\t\tp.startTime = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._startTime;\r\n\t\t\t}\r\n\t\t\tif (value !== this._startTime) {\r\n\t\t\t\tthis._startTime = value;\r\n\t\t\t\tif (this.timeline) if (this.timeline._sortChildren) {\r\n\t\t\t\t\tthis.timeline.add(this, value - this._delay); //ensures that any necessary re-sequencing of Animations in the timeline occurs to make sure the rendering order is correct.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.endTime = function(includeRepeats) {\r\n\t\t\treturn this._startTime + ((includeRepeats != false) ? this.totalDuration() : this.duration()) / this._timeScale;\r\n\t\t};\r\n\r\n\t\tp.timeScale = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._timeScale;\r\n\t\t\t}\r\n\t\t\tvalue = value || _tinyNum; //can't allow zero because it'll throw the math off\r\n\t\t\tif (this._timeline && this._timeline.smoothChildTiming) {\r\n\t\t\t\tvar pauseTime = this._pauseTime,\r\n\t\t\t\t\tt = (pauseTime || pauseTime === 0) ? pauseTime : this._timeline.totalTime();\r\n\t\t\t\tthis._startTime = t - ((t - this._startTime) * this._timeScale / value);\r\n\t\t\t}\r\n\t\t\tthis._timeScale = value;\r\n\t\t\treturn this._uncache(false);\r\n\t\t};\r\n\r\n\t\tp.reversed = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._reversed;\r\n\t\t\t}\r\n\t\t\tif (value != this._reversed) {\r\n\t\t\t\tthis._reversed = value;\r\n\t\t\t\tthis.totalTime(((this._timeline && !this._timeline.smoothChildTiming) ? this.totalDuration() - this._totalTime : this._totalTime), true);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.paused = function(value) {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\treturn this._paused;\r\n\t\t\t}\r\n\t\t\tvar tl = this._timeline,\r\n\t\t\t\traw, elapsed;\r\n\t\t\tif (value != this._paused) if (tl) {\r\n\t\t\t\tif (!_tickerActive && !value) {\r\n\t\t\t\t\t_ticker.wake();\r\n\t\t\t\t}\r\n\t\t\t\traw = tl.rawTime();\r\n\t\t\t\telapsed = raw - this._pauseTime;\r\n\t\t\t\tif (!value && tl.smoothChildTiming) {\r\n\t\t\t\t\tthis._startTime += elapsed;\r\n\t\t\t\t\tthis._uncache(false);\r\n\t\t\t\t}\r\n\t\t\t\tthis._pauseTime = value ? raw : null;\r\n\t\t\t\tthis._paused = value;\r\n\t\t\t\tthis._active = this.isActive();\r\n\t\t\t\tif (!value && elapsed !== 0 && this._initted && this.duration()) {\r\n\t\t\t\t\traw = tl.smoothChildTiming ? this._totalTime : (raw - this._startTime) / this._timeScale;\r\n\t\t\t\t\tthis.render(raw, (raw === this._totalTime), true); //in case the target's properties changed via some other tween or manual update by the user, we should force a render.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this._gc && !value) {\r\n\t\t\t\tthis._enabled(true, false);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * SimpleTimeline\r\n * ----------------------------------------------------------------\r\n */\r\n\t\tvar SimpleTimeline = _class(\"core.SimpleTimeline\", function(vars) {\r\n\t\t\tAnimation.call(this, 0, vars);\r\n\t\t\tthis.autoRemoveChildren = this.smoothChildTiming = true;\r\n\t\t});\r\n\r\n\t\tp = SimpleTimeline.prototype = new Animation();\r\n\t\tp.constructor = SimpleTimeline;\r\n\t\tp.kill()._gc = false;\r\n\t\tp._first = p._last = p._recent = null;\r\n\t\tp._sortChildren = false;\r\n\r\n\t\tp.add = p.insert = function(child, position, align, stagger) {\r\n\t\t\tvar prevTween, st;\r\n\t\t\tchild._startTime = Number(position || 0) + child._delay;\r\n\t\t\tif (child._paused) if (this !== child._timeline) { //we only adjust the _pauseTime if it wasn't in this timeline already. Remember, sometimes a tween will be inserted again into the same timeline when its startTime is changed so that the tweens in the TimelineLite/Max are re-ordered properly in the linked list (so everything renders in the proper order).\r\n\t\t\t\tchild._pauseTime = child._startTime + ((this.rawTime() - child._startTime) / child._timeScale);\r\n\t\t\t}\r\n\t\t\tif (child.timeline) {\r\n\t\t\t\tchild.timeline._remove(child, true); //removes from existing timeline so that it can be properly added to this one.\r\n\t\t\t}\r\n\t\t\tchild.timeline = child._timeline = this;\r\n\t\t\tif (child._gc) {\r\n\t\t\t\tchild._enabled(true, true);\r\n\t\t\t}\r\n\t\t\tprevTween = this._last;\r\n\t\t\tif (this._sortChildren) {\r\n\t\t\t\tst = child._startTime;\r\n\t\t\t\twhile (prevTween && prevTween._startTime > st) {\r\n\t\t\t\t\tprevTween = prevTween._prev;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (prevTween) {\r\n\t\t\t\tchild._next = prevTween._next;\r\n\t\t\t\tprevTween._next = child;\r\n\t\t\t} else {\r\n\t\t\t\tchild._next = this._first;\r\n\t\t\t\tthis._first = child;\r\n\t\t\t}\r\n\t\t\tif (child._next) {\r\n\t\t\t\tchild._next._prev = child;\r\n\t\t\t} else {\r\n\t\t\t\tthis._last = child;\r\n\t\t\t}\r\n\t\t\tchild._prev = prevTween;\r\n\t\t\tthis._recent = child;\r\n\t\t\tif (this._timeline) {\r\n\t\t\t\tthis._uncache(true);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp._remove = function(tween, skipDisable) {\r\n\t\t\tif (tween.timeline === this) {\r\n\t\t\t\tif (!skipDisable) {\r\n\t\t\t\t\ttween._enabled(false, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (tween._prev) {\r\n\t\t\t\t\ttween._prev._next = tween._next;\r\n\t\t\t\t} else if (this._first === tween) {\r\n\t\t\t\t\tthis._first = tween._next;\r\n\t\t\t\t}\r\n\t\t\t\tif (tween._next) {\r\n\t\t\t\t\ttween._next._prev = tween._prev;\r\n\t\t\t\t} else if (this._last === tween) {\r\n\t\t\t\t\tthis._last = tween._prev;\r\n\t\t\t\t}\r\n\t\t\t\ttween._next = tween._prev = tween.timeline = null;\r\n\t\t\t\tif (tween === this._recent) {\r\n\t\t\t\t\tthis._recent = this._last;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._timeline) {\r\n\t\t\t\t\tthis._uncache(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tp.render = function(time, suppressEvents, force) {\r\n\t\t\tvar tween = this._first,\r\n\t\t\t\tnext;\r\n\t\t\tthis._totalTime = this._time = this._rawPrevTime = time;\r\n\t\t\twhile (tween) {\r\n\t\t\t\tnext = tween._next; //record it here because the value could change after rendering...\r\n\t\t\t\tif (tween._active || (time >= tween._startTime && !tween._paused)) {\r\n\t\t\t\t\tif (!tween._reversed) {\r\n\t\t\t\t\t\ttween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttween = next;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tp.rawTime = function() {\r\n\t\t\tif (!_tickerActive) {\r\n\t\t\t\t_ticker.wake();\r\n\t\t\t}\r\n\t\t\treturn this._totalTime;\r\n\t\t};\r\n\r\n/*\r\n * ----------------------------------------------------------------\r\n * TweenLite\r\n * ----------------------------------------------------------------\r\n */\r\n\t\tvar TweenLite = _class(\"TweenLite\", function(target, duration, vars) {\r\n\t\t\t\tAnimation.call(this, duration, vars);\r\n\t\t\t\tthis.render = TweenLite.prototype.render; //speed optimization (avoid prototype lookup on this \"hot\" method)\r\n\r\n\t\t\t\tif (target == null) {\r\n\t\t\t\t\tthrow \"Cannot tween a null target.\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.target = target = (typeof(target) !== \"string\") ? target : TweenLite.selector(target) || target;\r\n\r\n\t\t\t\tvar isSelector = (target.jquery || (target.length && target !== window && target[0] && (target[0] === window || (target[0].nodeType && target[0].style && !target.nodeType)))),\r\n\t\t\t\t\toverwrite = this.vars.overwrite,\r\n\t\t\t\t\ti, targ, targets;\r\n\r\n\t\t\t\tthis._overwrite = overwrite = (overwrite == null) ? _overwriteLookup[TweenLite.defaultOverwrite] : (typeof(overwrite) === \"number\") ? overwrite >> 0 : _overwriteLookup[overwrite];\r\n\r\n\t\t\t\tif ((isSelector || target instanceof Array || (target.push && _isArray(target))) && typeof(target[0]) !== \"number\") {\r\n\t\t\t\t\tthis._targets = targets = _slice(target); //don't use Array.prototype.slice.call(target, 0) because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()\r\n\t\t\t\t\tthis._propLookup = [];\r\n\t\t\t\t\tthis._siblings = [];\r\n\t\t\t\t\tfor (i = 0; i < targets.length; i++) {\r\n\t\t\t\t\t\ttarg = targets[i];\r\n\t\t\t\t\t\tif (!targ) {\r\n\t\t\t\t\t\t\ttargets.splice(i--, 1);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t} else if (typeof(targ) === \"string\") {\r\n\t\t\t\t\t\t\ttarg = targets[i--] = TweenLite.selector(targ); //in case it's an array of strings\r\n\t\t\t\t\t\t\tif (typeof(targ) === \"string\") {\r\n\t\t\t\t\t\t\t\ttargets.splice(i+1, 1); //to avoid an endless loop (can't imagine why the selector would return a string, but just in case)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t} else if (targ.length && targ !== window && targ[0] && (targ[0] === window || (targ[0].nodeType && targ[0].style && !targ.nodeType))) { //in case the user is passing in an array of selector objects (like jQuery objects), we need to check one more level and pull things out if necessary. Also note that element.\")}),c=a.extend({},{populateResults:function(d,e,g){var h,j=this.opts.id,k=this.liveRegion;h=function(d,e,l){var m,n,o,p,q,r,s,t,u,v;d=c.sortResults(d,e,g);var w=[];for(m=0,n=d.length;n>m;m+=1)o=d[m],q=o.disabled===!0,p=!q&&j(o)!==b,r=o.children&&o.children.length>0,s=a(\"
  • \"),s.addClass(\"select2-results-dept-\"+l),s.addClass(\"select2-result\"),s.addClass(p?\"select2-result-selectable\":\"select2-result-unselectable\"),q&&s.addClass(\"select2-disabled\"),r&&s.addClass(\"select2-result-with-children\"),s.addClass(i.opts.formatResultCssClass(o)),s.attr(\"role\",\"presentation\"),t=a(document.createElement(\"div\")),t.addClass(\"select2-result-label\"),t.attr(\"id\",\"select2-result-label-\"+f()),t.attr(\"role\",\"option\"),v=c.formatResult(o,t,g,i.opts.escapeMarkup),v!==b&&(t.html(v),s.append(t)),r&&(u=a(\"
      \"),u.addClass(\"select2-result-sub\"),h(o.children,u,l+1),s.append(u)),s.data(\"select2-data\",o),w.push(s[0]);e.append(w),k.text(c.formatMatches(d.length))},h(e,d,0)}},a.fn.select2.defaults,c),\"function\"!=typeof c.id&&(g=c.id,c.id=function(a){return a[g]}),a.isArray(c.element.data(\"select2Tags\"))){if(\"tags\"in c)throw\"tags specified as both an attribute 'data-select2-tags' and in options of Select2 \"+c.element.attr(\"id\");c.tags=c.element.data(\"select2Tags\")}if(e?(c.query=this.bind(function(a){var f,g,h,c={results:[],more:!1},e=a.term;h=function(b,c){var d;b.is(\"option\")?a.matcher(e,b.text(),b)&&c.push(i.optionToData(b)):b.is(\"optgroup\")&&(d=i.optionToData(b),b.children().each2(function(a,b){h(b,d.children)}),d.children.length>0&&c.push(d))},f=d.children(),this.getPlaceholder()!==b&&f.length>0&&(g=this.getPlaceholderOption(),g&&(f=f.not(g))),f.each2(function(a,b){h(b,c.results)}),a.callback(c)}),c.id=function(a){return a.id}):\"query\"in c||(\"ajax\"in c?(h=c.element.data(\"ajax-url\"),h&&h.length>0&&(c.ajax.url=h),c.query=G.call(c.element,c.ajax)):\"data\"in c?c.query=H(c.data):\"tags\"in c&&(c.query=I(c.tags),c.createSearchChoice===b&&(c.createSearchChoice=function(b){return{id:a.trim(b),text:a.trim(b)}}),c.initSelection===b&&(c.initSelection=function(b,d){var e=[];a(s(b.val(),c.separator,c.transformVal)).each(function(){var b={id:this,text:this},d=c.tags;a.isFunction(d)&&(d=d()),a(d).each(function(){return r(this.id,b.id)?(b=this,!1):void 0}),e.push(b)}),d(e)}))),\"function\"!=typeof c.query)throw\"query function not defined for Select2 \"+c.element.attr(\"id\");if(\"top\"===c.createSearchChoicePosition)c.createSearchChoicePosition=function(a,b){a.unshift(b)};else if(\"bottom\"===c.createSearchChoicePosition)c.createSearchChoicePosition=function(a,b){a.push(b)};else if(\"function\"!=typeof c.createSearchChoicePosition)throw\"invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function\";return c},monitorSource:function(){var d,c=this.opts.element,e=this;c.on(\"change.select2\",this.bind(function(){this.opts.element.data(\"select2-change-triggered\")!==!0&&this.initSelection()})),this._sync=this.bind(function(){var a=c.prop(\"disabled\");a===b&&(a=!1),this.enable(!a);var d=c.prop(\"readonly\");d===b&&(d=!1),this.readonly(d),this.container&&(D(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.addClass(K(this.opts.containerCssClass,this.opts.element))),this.dropdown&&(D(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(K(this.opts.dropdownCssClass,this.opts.element)))}),c.length&&c[0].attachEvent&&c.each(function(){this.attachEvent(\"onpropertychange\",e._sync)}),d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,d!==b&&(this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),this.propertyObserver=new d(function(b){a.each(b,e._sync)}),this.propertyObserver.observe(c.get(0),{attributes:!0,subtree:!1}))},triggerSelect:function(b){var c=a.Event(\"select2-selecting\",{val:this.id(b),object:b,choice:b});return this.opts.element.trigger(c),!c.isDefaultPrevented()},triggerChange:function(b){b=b||{},b=a.extend({},b,{type:\"change\",val:this.val()}),this.opts.element.data(\"select2-change-triggered\",!0),this.opts.element.trigger(b),this.opts.element.data(\"select2-change-triggered\",!1),this.opts.element.click(),this.opts.blurOnChange&&this.opts.element.blur()},isInterfaceEnabled:function(){return this.enabledInterface===!0},enableInterface:function(){var a=this._enabled&&!this._readonly,b=!a;return a===this.enabledInterface?!1:(this.container.toggleClass(\"select2-container-disabled\",b),this.close(),this.enabledInterface=a,!0)},enable:function(a){a===b&&(a=!0),this._enabled!==a&&(this._enabled=a,this.opts.element.prop(\"disabled\",!a),this.enableInterface())},disable:function(){this.enable(!1)},readonly:function(a){a===b&&(a=!1),this._readonly!==a&&(this._readonly=a,this.opts.element.prop(\"readonly\",a),this.enableInterface())},opened:function(){return this.container?this.container.hasClass(\"select2-dropdown-open\"):!1},positionDropdown:function(){var v,w,x,y,z,b=this.dropdown,c=this.container,d=c.offset(),e=c.outerHeight(!1),f=c.outerWidth(!1),g=b.outerHeight(!1),h=a(window),i=h.width(),k=h.height(),l=h.scrollLeft()+i,m=h.scrollTop()+k,n=d.top+e,o=d.left,p=m>=n+g,q=d.top-g>=h.scrollTop(),r=b.outerWidth(!1),s=function(){return l>=o+r},t=function(){return d.left+l+c.outerWidth(!1)>r},u=b.hasClass(\"select2-drop-above\");u?(w=!0,!q&&p&&(x=!0,w=!1)):(w=!1,!p&&q&&(x=!0,w=!0)),x&&(b.hide(),d=this.container.offset(),e=this.container.outerHeight(!1),f=this.container.outerWidth(!1),g=b.outerHeight(!1),l=h.scrollLeft()+i,m=h.scrollTop()+k,n=d.top+e,o=d.left,r=b.outerWidth(!1),b.show(),this.focusSearch()),this.opts.dropdownAutoWidth?(z=a(\".select2-results\",b)[0],b.addClass(\"select2-drop-auto-width\"),b.css(\"width\",\"\"),r=b.outerWidth(!1)+(z.scrollHeight===z.clientHeight?0:j.width),r>f?f=r:r=f,g=b.outerHeight(!1)):this.container.removeClass(\"select2-drop-auto-width\"),\"static\"!==this.body.css(\"position\")&&(v=this.body.offset(),n-=v.top,o-=v.left),!s()&&t()&&(o=d.left+this.container.outerWidth(!1)-r),y={left:o,width:f},w?(y.top=d.top-g,y.bottom=\"auto\",this.container.addClass(\"select2-drop-above\"),b.addClass(\"select2-drop-above\")):(y.top=n,y.bottom=\"auto\",this.container.removeClass(\"select2-drop-above\"),b.removeClass(\"select2-drop-above\")),y=a.extend(y,K(this.opts.dropdownCss,this.opts.element)),b.css(y)},shouldOpen:function(){var b;return this.opened()?!1:this._enabled===!1||this._readonly===!0?!1:(b=a.Event(\"select2-opening\"),this.opts.element.trigger(b),!b.isDefaultPrevented())},clearDropdownAlignmentPreference:function(){this.container.removeClass(\"select2-drop-above\"),this.dropdown.removeClass(\"select2-drop-above\")},open:function(){return this.shouldOpen()?(this.opening(),i.on(\"mousemove.select2Event\",function(a){h.x=a.pageX,h.y=a.pageY}),!0):!1},opening:function(){var f,b=this.containerEventName,c=\"scroll.\"+b,d=\"resize.\"+b,e=\"orientationchange.\"+b;this.container.addClass(\"select2-dropdown-open\").addClass(\"select2-container-active\"),this.clearDropdownAlignmentPreference(),this.dropdown[0]!==this.body.children().last()[0]&&this.dropdown.detach().appendTo(this.body),f=a(\"#select2-drop-mask\"),0===f.length&&(f=a(document.createElement(\"div\")),f.attr(\"id\",\"select2-drop-mask\").attr(\"class\",\"select2-drop-mask\"),f.hide(),f.appendTo(this.body),f.on(\"mousedown touchstart click\",function(b){n(f);var d,c=a(\"#select2-drop\");c.length>0&&(d=c.data(\"select2\"),d.opts.selectOnBlur&&d.selectHighlighted({noFocus:!0}),d.close(),b.preventDefault(),b.stopPropagation())})),this.dropdown.prev()[0]!==f[0]&&this.dropdown.before(f),a(\"#select2-drop\").removeAttr(\"id\"),this.dropdown.attr(\"id\",\"select2-drop\"),f.show(),this.positionDropdown(),this.dropdown.show(),this.positionDropdown(),this.dropdown.addClass(\"select2-drop-active\");var g=this;this.container.parents().add(window).each(function(){a(this).on(d+\" \"+c+\" \"+e,function(){g.opened()&&g.positionDropdown()})})},close:function(){if(this.opened()){var b=this.containerEventName,c=\"scroll.\"+b,d=\"resize.\"+b,e=\"orientationchange.\"+b;this.container.parents().add(window).each(function(){a(this).off(c).off(d).off(e)}),this.clearDropdownAlignmentPreference(),a(\"#select2-drop-mask\").hide(),this.dropdown.removeAttr(\"id\"),this.dropdown.hide(),this.container.removeClass(\"select2-dropdown-open\").removeClass(\"select2-container-active\"),this.results.empty(),i.off(\"mousemove.select2Event\"),this.clearSearch(),this.search.removeClass(\"select2-active\"),this.opts.element.trigger(a.Event(\"select2-close\"))}},externalSearch:function(a){this.open(),this.search.val(a),this.updateResults(!1)},clearSearch:function(){},getMaximumSelectionSize:function(){return K(this.opts.maximumSelectionSize,this.opts.element)},ensureHighlightVisible:function(){var c,d,e,f,g,h,i,j,b=this.results;if(d=this.highlight(),!(0>d)){if(0==d)return b.scrollTop(0),void 0;c=this.findHighlightableChoices().find(\".select2-result-label\"),e=a(c[d]),j=(e.offset()||{}).top||0,f=j+e.outerHeight(!0),d===c.length-1&&(i=b.find(\"li.select2-more-results\"),i.length>0&&(f=i.offset().top+i.outerHeight(!0))),g=b.offset().top+b.outerHeight(!1),f>g&&b.scrollTop(b.scrollTop()+(f-g)),h=j-b.offset().top,0>h&&\"none\"!=e.css(\"display\")&&b.scrollTop(b.scrollTop()+h)}},findHighlightableChoices:function(){return this.results.find(\".select2-result-selectable:not(.select2-disabled):not(.select2-selected)\")},moveHighlight:function(b){for(var c=this.findHighlightableChoices(),d=this.highlight();d>-1&&d=c.length&&(b=c.length-1),0>b&&(b=0),this.removeHighlight(),d=a(c[b]),d.addClass(\"select2-highlighted\"),this.search.attr(\"aria-activedescendant\",d.find(\".select2-result-label\").attr(\"id\")),this.ensureHighlightVisible(),this.liveRegion.text(d.text()),e=d.data(\"select2-data\"),e&&this.opts.element.trigger({type:\"select2-highlight\",val:this.id(e),choice:e}),void 0)},removeHighlight:function(){this.results.find(\".select2-highlighted\").removeClass(\"select2-highlighted\")},touchMoved:function(){this._touchMoved=!0},clearTouchMoved:function(){this._touchMoved=!1},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(b){var c=a(b.target).closest(\".select2-result-selectable\");if(c.length>0&&!c.is(\".select2-highlighted\")){var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.removeHighlight()},loadMoreIfNeeded:function(){var c,a=this.results,b=a.find(\"li.select2-more-results\"),d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-a.height(),c<=this.opts.loadMorePadding&&(b.addClass(\"select2-active\"),this.opts.query({element:this.opts.element,term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(c){e.opened()&&(e.opts.populateResults.call(this,a,c.results,{term:f,page:d,context:g}),e.postprocessResults(c,!1,!1),c.more===!0?(b.detach().appendTo(a).html(e.opts.escapeMarkup(K(e.opts.formatLoadMore,e.opts.element,d+1))),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):b.remove(),e.positionDropdown(),e.resultsPage=d,e.context=c.context,this.opts.element.trigger({type:\"select2-loaded\",items:c}))})})))},tokenize:function(){},updateResults:function(c){function m(){d.removeClass(\"select2-active\"),h.positionDropdown(),e.find(\".select2-no-results,.select2-selection-limit,.select2-searching\").length?h.liveRegion.text(e.text()):h.liveRegion.text(h.opts.formatMatches(e.find('.select2-result-selectable:not(\".select2-selected\")').length))}function n(a){e.html(a),m()}var g,i,l,d=this.search,e=this.results,f=this.opts,h=this,j=d.val(),k=a.data(this.container,\"select2-last-term\");if((c===!0||!k||!r(j,k))&&(a.data(this.container,\"select2-last-term\",j),c===!0||this.showSearchInput!==!1&&this.opened())){l=++this.queryCount;var o=this.getMaximumSelectionSize();if(o>=1&&(g=this.data(),a.isArray(g)&&g.length>=o&&J(f.formatSelectionTooBig,\"formatSelectionTooBig\")))return n(\"
    • \"+K(f.formatSelectionTooBig,f.element,o)+\"
    • \"),void 0;if(d.val().length\"+K(f.formatInputTooShort,f.element,d.val(),f.minimumInputLength)+\"\"):n(\"\"),c&&this.showSearch&&this.showSearch(!0),void 0;if(f.maximumInputLength&&d.val().length>f.maximumInputLength)return J(f.formatInputTooLong,\"formatInputTooLong\")?n(\"
    • \"+K(f.formatInputTooLong,f.element,d.val(),f.maximumInputLength)+\"
    • \"):n(\"\"),void 0;f.formatSearching&&0===this.findHighlightableChoices().length&&n(\"
    • \"+K(f.formatSearching,f.element)+\"
    • \"),d.addClass(\"select2-active\"),this.removeHighlight(),i=this.tokenize(),i!=b&&null!=i&&d.val(i),this.resultsPage=1,f.query({element:f.element,term:d.val(),page:this.resultsPage,context:null,matcher:f.matcher,callback:this.bind(function(g){var i;if(l==this.queryCount){if(!this.opened())return this.search.removeClass(\"select2-active\"),void 0;if(g.hasError!==b&&J(f.formatAjaxError,\"formatAjaxError\"))return n(\"
    • \"+K(f.formatAjaxError,f.element,g.jqXHR,g.textStatus,g.errorThrown)+\"
    • \"),void 0;if(this.context=g.context===b?null:g.context,this.opts.createSearchChoice&&\"\"!==d.val()&&(i=this.opts.createSearchChoice.call(h,d.val(),g.results),i!==b&&null!==i&&h.id(i)!==b&&null!==h.id(i)&&0===a(g.results).filter(function(){return r(h.id(this),h.id(i))}).length&&this.opts.createSearchChoicePosition(g.results,i)),0===g.results.length&&J(f.formatNoMatches,\"formatNoMatches\"))return n(\"
    • \"+K(f.formatNoMatches,f.element,d.val())+\"
    • \"),void 0;e.empty(),h.opts.populateResults.call(this,e,g.results,{term:d.val(),page:this.resultsPage,context:null}),g.more===!0&&J(f.formatLoadMore,\"formatLoadMore\")&&(e.append(\"
    • \"+f.escapeMarkup(K(f.formatLoadMore,f.element,this.resultsPage))+\"
    • \"),window.setTimeout(function(){h.loadMoreIfNeeded()},10)),this.postprocessResults(g,c),m(),this.opts.element.trigger({type:\"select2-loaded\",items:g})}})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass(\"select2-container-active\"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\")},focusSearch:function(){y(this.search)},selectHighlighted:function(a){if(this._touchMoved)return this.clearTouchMoved(),void 0;var b=this.highlight(),c=this.results.find(\".select2-highlighted\"),d=c.closest(\".select2-result\").data(\"select2-data\");d?(this.highlight(b),this.onSelect(d,a)):a&&a.noFocus&&this.close()},getPlaceholder:function(){var a;return this.opts.element.attr(\"placeholder\")||this.opts.element.attr(\"data-placeholder\")||this.opts.element.data(\"placeholder\")||this.opts.placeholder||((a=this.getPlaceholderOption())!==b?a.text():b)},getPlaceholderOption:function(){if(this.select){var c=this.select.children(\"option\").first();if(this.opts.placeholderOption!==b)return\"first\"===this.opts.placeholderOption&&c||\"function\"==typeof this.opts.placeholderOption&&this.opts.placeholderOption(this.select);if(\"\"===a.trim(c.text())&&\"\"===c.val())return c}},initContainerWidth:function(){function c(){var c,d,e,f,g,h;if(\"off\"===this.opts.width)return null;if(\"element\"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?\"auto\":this.opts.element.outerWidth(!1)+\"px\";if(\"copy\"===this.opts.width||\"resolve\"===this.opts.width){if(c=this.opts.element.attr(\"style\"),c!==b)for(d=c.split(\";\"),f=0,g=d.length;g>f;f+=1)if(h=d[f].replace(/\\s/g,\"\"),e=h.match(/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==e&&e.length>=1)return e[1];return\"resolve\"===this.opts.width?(c=this.opts.element.css(\"width\"),c.indexOf(\"%\")>0?c:0===this.opts.element.outerWidth(!1)?\"auto\":this.opts.element.outerWidth(!1)+\"px\"):null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var d=c.call(this);null!==d&&this.container.css(\"width\",d)}}),d=O(c,{createContainer:function(){var b=a(document.createElement(\"div\")).attr({\"class\":\"select2-container\"}).html([\"\",\"  \",\" \",\"\",\"\",\"\",\"
      \",\" \",\"
        \",\"
      \",\"
      \"].join(\"\"));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop(\"disabled\",!this.isInterfaceEnabled())},opening:function(){var c,d,e;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),c=this.search.get(0),c.createTextRange?(d=c.createTextRange(),d.collapse(!1),d.select()):c.setSelectionRange&&(e=this.search.val().length,c.setSelectionRange(e,e))),\"\"===this.search.val()&&this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.search.select()),this.focusser.prop(\"disabled\",!0).val(\"\"),this.updateResults(!0),this.opts.element.trigger(a.Event(\"select2-open\"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass(\"select2-container-active\")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){a(\"label[for='\"+this.focusser.attr(\"id\")+\"']\").attr(\"for\",this.opts.element.attr(\"id\")),this.parent.destroy.apply(this,arguments),N.call(this,\"selection\",\"focusser\")},initContainer:function(){var b,g,c=this.container,d=this.dropdown,e=f();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=c.find(\".select2-choice\"),this.focusser=c.find(\".select2-focusser\"),b.find(\".select2-chosen\").attr(\"id\",\"select2-chosen-\"+e),this.focusser.attr(\"aria-labelledby\",\"select2-chosen-\"+e),this.results.attr(\"id\",\"select2-results-\"+e),this.search.attr(\"aria-owns\",\"select2-results-\"+e),this.focusser.attr(\"id\",\"s2id_autogen\"+e),g=a(\"label[for='\"+this.opts.element.attr(\"id\")+\"']\"),this.opts.element.focus(this.bind(function(){this.focus()})),this.focusser.prev().text(g.text()).attr(\"for\",this.focusser.attr(\"id\"));var h=this.opts.element.attr(\"title\");this.opts.element.attr(\"title\",h||g.text()),this.focusser.attr(\"tabindex\",this.elementTabIndex),this.search.attr(\"id\",this.focusser.attr(\"id\")+\"_search\"),this.search.prev().text(a(\"label[for='\"+this.focusser.attr(\"id\")+\"']\").text()).attr(\"for\",this.search.attr(\"id\")),this.search.on(\"keydown\",this.bind(function(a){if(this.isInterfaceEnabled()&&229!=a.keyCode){if(a.which===k.PAGE_UP||a.which===k.PAGE_DOWN)return A(a),void 0;switch(a.which){case k.UP:case k.DOWN:return this.moveHighlight(a.which===k.UP?-1:1),A(a),void 0;case k.ENTER:return this.selectHighlighted(),A(a),void 0;case k.TAB:return this.selectHighlighted({noFocus:!0}),void 0;case k.ESC:return this.cancel(a),A(a),void 0}}})),this.search.on(\"blur\",this.bind(function(){document.activeElement===this.body.get(0)&&window.setTimeout(this.bind(function(){this.opened()&&this.search.focus()}),0)})),this.focusser.on(\"keydown\",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==k.TAB&&!k.isControl(a)&&!k.isFunctionKey(a)&&a.which!==k.ESC){if(this.opts.openOnEnter===!1&&a.which===k.ENTER)return A(a),void 0;if(a.which==k.DOWN||a.which==k.UP||a.which==k.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),A(a),void 0}return a.which==k.DELETE||a.which==k.BACKSPACE?(this.opts.allowClear&&this.clear(),A(a),void 0):void 0}})),u(this.focusser),this.focusser.on(\"keyup-change input\",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),b.on(\"mousedown touchstart\",\"abbr\",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),B(a),this.close(),this.selection&&this.selection.focus())})),b.on(\"mousedown touchstart\",this.bind(function(c){n(b),this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),A(c)})),d.on(\"mousedown touchstart\",this.bind(function(){this.opts.shouldFocusInput(this)&&this.search.focus()})),b.on(\"focus\",this.bind(function(a){A(a)})),this.focusser.on(\"focus\",this.bind(function(){this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\")})).on(\"blur\",this.bind(function(){this.opened()||(this.container.removeClass(\"select2-container-active\"),this.opts.element.trigger(a.Event(\"select2-blur\")))})),this.search.on(\"focus\",this.bind(function(){this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\")})),this.initContainerWidth(),this.opts.element.hide(),this.setPlaceholder()},clear:function(b){var c=this.selection.data(\"select2-data\");if(c){var d=a.Event(\"select2-clearing\");if(this.opts.element.trigger(d),d.isDefaultPrevented())return;var e=this.getPlaceholderOption();this.opts.element.val(e?e.val():\"\"),this.selection.find(\".select2-chosen\").empty(),this.selection.removeData(\"select2-data\"),this.setPlaceholder(),b!==!1&&(this.opts.element.trigger({type:\"select2-removed\",val:this.id(c),choice:c}),this.triggerChange({removed:c}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection(null),this.close(),this.setPlaceholder();else{var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.setPlaceholder(),c.nextSearchTerm=c.opts.nextSearchTerm(a,c.search.val()))})}},isPlaceholderOptionSelected:function(){var a;return this.getPlaceholder()===b?!1:(a=this.getPlaceholderOption())!==b&&a.prop(\"selected\")||\"\"===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return\"select\"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find(\"option\").filter(function(){return this.selected&&!this.disabled});b(c.optionToData(d))}:\"data\"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var g=r(e,b.id(d));return g&&(f=d),g},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(\".select2-chosen\").html(this.opts.escapeMarkup(a)),this.selection.addClass(\"select2-default\"),this.container.removeClass(\"select2-allowclear\")}},postprocessResults:function(a,b,c){var d=0,e=this;if(this.findHighlightableChoices().each2(function(a,b){return r(e.id(b.data(\"select2-data\")),e.opts.element.val())?(d=a,!1):void 0}),c!==!1&&(b===!0&&d>=0?this.highlight(d):this.highlight(0)),b===!0){var g=this.opts.minimumResultsForSearch;g>=0&&this.showSearch(L(a.results)>=g)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(\".select2-search\").toggleClass(\"select2-search-hidden\",!b),this.dropdown.find(\".select2-search\").toggleClass(\"select2-offscreen\",!b),a(this.dropdown,this.container).toggleClass(\"select2-with-searchbox\",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:\"select2-selected\",val:this.id(a),choice:a}),this.nextSearchTerm=this.opts.nextSearchTerm(a,this.search.val()),this.close(),b&&b.noFocus||!this.opts.shouldFocusInput(this)||this.focusser.focus(),r(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var d,e,c=this.selection.find(\".select2-chosen\");this.selection.data(\"select2-data\",a),c.empty(),null!==a&&(d=this.opts.formatSelection(a,c,this.opts.escapeMarkup)),d!==b&&c.append(d),e=this.opts.formatSelectionCssClass(a,c),e!==b&&c.addClass(e),this.selection.removeClass(\"select2-default\"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass(\"select2-allowclear\")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1]),this.select)this.select.val(a).find(\"option\").filter(function(){return this.selected}).each2(function(a,b){return d=e.optionToData(b),!1}),this.updateSelection(d),this.setPlaceholder(),c&&this.triggerChange({added:d,removed:f});else{if(!a&&0!==a)return this.clear(c),void 0;if(this.opts.initSelection===b)throw new Error(\"cannot call val() if initSelection() is not defined\");this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){e.opts.element.val(a?e.id(a):\"\"),e.updateSelection(a),e.setPlaceholder(),c&&e.triggerChange({added:a,removed:f})})}},clearSearch:function(){this.search.val(\"\"),this.focusser.val(\"\")},data:function(a){var c,d=!1;return 0===arguments.length?(c=this.selection.data(\"select2-data\"),c==b&&(c=null),c):(arguments.length>1&&(d=arguments[1]),a?(c=this.data(),this.opts.element.val(a?this.id(a):\"\"),this.updateSelection(a),d&&this.triggerChange({added:a,removed:c})):this.clear(d),void 0)}}),e=O(c,{createContainer:function(){var b=a(document.createElement(\"div\")).attr({\"class\":\"select2-container select2-container-multi\"}).html([\"
        \",\"
      • \",\" \",\" \",\"
      • \",\"
      \",\"
      \",\"
        \",\"
      \",\"
      \"].join(\"\"));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return\"select\"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find(\"option\").filter(function(){return this.selected&&!this.disabled}).each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:\"data\"in b&&(b.initSelection=b.initSelection||function(c,d){var e=s(c.val(),b.separator,b.transformVal),f=[];b.query({matcher:function(c,d,g){var h=a.grep(e,function(a){return r(a,b.id(g))}).length;return h&&f.push(g),h},callback:a.isFunction(d)?function(){for(var a=[],c=0;c0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on(\"focus\",b,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\"),this.dropdown.addClass(\"select2-drop-active\"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.hide(),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop(\"disabled\",!this.isInterfaceEnabled())},initSelection:function(){if(\"\"===this.opts.element.val()&&\"\"===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||\"\"!==this.opts.element.val()){var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass(\"select2-focused\")===!1?(this.search.val(a).addClass(\"select2-default\"),this.search.width(c>0?c:this.container.css(\"width\"))):this.search.val(\"\").width(10)},clearPlaceholder:function(){this.search.hasClass(\"select2-default\")&&this.search.val(\"\").removeClass(\"select2-default\")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),\"\"===this.search.val()&&this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.search.select()),this.updateResults(!0),this.opts.shouldFocusInput(this)&&this.search.focus(),this.opts.element.trigger(a.Event(\"select2-open\"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass(\"select2-focused\")},updateSelection:function(b){var c=[],d=[],e=this;a(b).each(function(){p(e.id(this),c)<0&&(c.push(e.id(this)),d.push(this))}),b=d,this.selection.find(\".select2-search-choice\").remove(),a(b).each(function(){e.addSelectedChoice(this)}),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,c){this.triggerSelect(a)&&\"\"!==a.text&&(this.addSelectedChoice(a),this.opts.element.trigger({type:\"selected\",val:this.id(a),choice:a}),this.nextSearchTerm=this.opts.nextSearchTerm(a,this.search.val()),this.clearSearch(),this.updateResults(),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(a,!1,this.opts.closeOnSelect===!0),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()?this.updateResults(!0):this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.updateResults(),this.search.select()),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),c&&c.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(c){var j,k,d=!c.locked,e=a(\"
    • \"),f=a(\"
    • \"),g=d?e:f,h=this.id(c),i=this.getVal();j=this.opts.formatSelection(c,g.find(\"div\"),this.opts.escapeMarkup),j!=b&&g.find(\"div\").replaceWith(a(\"
      \").html(j)),k=this.opts.formatSelectionCssClass(c,g.find(\"div\")),k!=b&&g.addClass(k),d&&g.find(\".select2-search-choice-close\").on(\"mousedown\",A).on(\"click dblclick\",this.bind(function(b){this.isInterfaceEnabled()&&(this.unselect(a(b.target)),this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\"),A(b),this.close(),this.focusSearch())})).on(\"focus\",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass(\"select2-container-active\"),this.dropdown.addClass(\"select2-drop-active\"))})),g.data(\"select2-data\",c),g.insertBefore(this.searchContainer),i.push(h),this.setVal(i)},unselect:function(b){var d,e,c=this.getVal();if(b=b.closest(\".select2-search-choice\"),0===b.length)throw\"Invalid argument: \"+b+\". Must be .select2-search-choice\";if(d=b.data(\"select2-data\")){var f=a.Event(\"select2-removing\");if(f.val=this.id(d),f.choice=d,this.opts.element.trigger(f),f.isDefaultPrevented())return!1;for(;(e=p(this.id(d),c))>=0;)c.splice(e,1),this.setVal(c),this.select&&this.postprocessResults();return b.remove(),this.opts.element.trigger({type:\"select2-removed\",val:this.id(d),choice:d}),this.triggerChange({removed:d}),!0}},postprocessResults:function(a,b,c){var d=this.getVal(),e=this.results.find(\".select2-result\"),f=this.results.find(\".select2-result-with-children\"),g=this;e.each2(function(a,b){var c=g.id(b.data(\"select2-data\"));p(c,d)>=0&&(b.addClass(\"select2-selected\"),b.find(\".select2-result-selectable\").addClass(\"select2-selected\"))}),f.each2(function(a,b){b.is(\".select2-result-selectable\")||0!==b.find(\".select2-result-selectable:not(.select2-selected)\").length||b.addClass(\"select2-selected\")}),-1==this.highlight()&&c!==!1&&this.opts.closeOnSelect===!0&&g.highlight(0),!this.opts.createSearchChoice&&!e.filter(\".select2-result:not(.select2-selected)\").length>0&&(!a||a&&!a.more&&0===this.results.find(\".select2-no-results\").length)&&J(g.opts.formatNoMatches,\"formatNoMatches\")&&this.results.append(\"
    • \"+K(g.opts.formatNoMatches,g.opts.element,g.search.val())+\"
    • \")},getMaxSearchWidth:function(){return this.selection.width()-t(this.search)},resizeSearch:function(){var a,b,c,d,e,f=t(this.search);a=C(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(Math.floor(e))},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),s(a,this.opts.separator,this.opts.transformVal))},setVal:function(b){var c;this.select?this.select.val(b):(c=[],a(b).each(function(){p(this,c)<0&&c.push(this)}),this.opts.element.val(0===c.length?\"\":c.join(this.opts.separator)))},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;c0&&c--,a.splice(d,1),d--);return{added:b,removed:a}},val:function(c,d){var e,f=this;if(0===arguments.length)return this.getVal();if(e=this.data(),e.length||(e=[]),!c&&0!==c)return this.opts.element.val(\"\"),this.updateSelection([]),this.clearSearch(),d&&this.triggerChange({added:this.data(),removed:e}),void 0;if(this.setVal(c),this.select)this.opts.initSelection(this.select,this.bind(this.updateSelection)),d&&this.triggerChange(this.buildChangeDetails(e,this.data()));else{if(this.opts.initSelection===b)throw new Error(\"val() cannot be called if initSelection() is not defined\");this.opts.initSelection(this.opts.element,function(b){var c=a.map(b,f.id);f.setVal(c),f.updateSelection(b),f.clearSearch(),d&&f.triggerChange(f.buildChangeDetails(e,f.data()))})}this.clearSearch()},onSortStart:function(){if(this.select)throw new Error(\"Sorting of elements is not supported when attached to instead.\");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(\".select2-search-choice\").each(function(){b.push(c.opts.id(a(this).data(\"select2-data\")))}),this.setVal(b),this.triggerChange()},data:function(b,c){var e,f,d=this;return 0===arguments.length?this.selection.children(\".select2-search-choice\").map(function(){return a(this).data(\"select2-data\")}).get():(f=this.data(),b||(b=[]),e=a.map(b,function(a){return d.opts.id(a)}),this.setVal(e),this.updateSelection(b),this.clearSearch(),c&&this.triggerChange(this.buildChangeDetails(f,this.data())),void 0)}}),a.fn.select2=function(){var d,e,f,g,h,c=Array.prototype.slice.call(arguments,0),i=[\"val\",\"destroy\",\"opened\",\"open\",\"close\",\"focus\",\"isFocused\",\"container\",\"dropdown\",\"onSortStart\",\"onSortEnd\",\"enable\",\"disable\",\"readonly\",\"positionDropdown\",\"data\",\"search\"],j=[\"opened\",\"isFocused\",\"container\",\"dropdown\"],k=[\"val\",\"data\"],l={search:\"externalSearch\"};return this.each(function(){if(0===c.length||\"object\"==typeof c[0])d=0===c.length?{}:a.extend({},c[0]),d.element=a(this),\"select\"===d.element.get(0).tagName.toLowerCase()?h=d.element.prop(\"multiple\"):(h=d.multiple||!1,\"tags\"in d&&(d.multiple=h=!0)),e=h?new window.Select2[\"class\"].multi:new window.Select2[\"class\"].single,e.init(d);else{if(\"string\"!=typeof c[0])throw\"Invalid arguments to select2 plugin: \"+c;if(p(c[0],i)<0)throw\"Unknown method: \"+c[0];if(g=b,e=a(this).data(\"select2\"),e===b)return;if(f=c[0],\"container\"===f?g=e.container:\"dropdown\"===f?g=e.dropdown:(l[f]&&(f=l[f]),g=e[f].apply(e,c.slice(1))),p(c[0],j)>=0||p(c[0],k)>=0&&1==c.length)return!1}}),g===b?this:g},a.fn.select2.defaults={width:\"copy\",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:\"\",dropdownCssClass:\"\",formatResult:function(a,b,c,d){var e=[];return E(this.text(a),c.term,e,d),e.join(\"\")},transformVal:function(b){return a.trim(b)},formatSelection:function(a,c,d){return a?d(this.text(a)):b},sortResults:function(a){return a},formatResultCssClass:function(a){return a.css},formatSelectionCssClass:function(){return b},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a==b?null:a.id},text:function(b){return b&&this.data&&this.data.text?a.isFunction(this.data.text)?this.data.text(b):b[this.data.text]:b.text\r\n},matcher:function(a,b){return o(\"\"+b).toUpperCase().indexOf(o(\"\"+a).toUpperCase())>=0},separator:\",\",tokenSeparators:[],tokenizer:M,escapeMarkup:F,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(){return null},nextSearchTerm:function(){return b},searchInputPlaceholder:\"\",createSearchChoicePosition:\"top\",shouldFocusInput:function(a){var b=\"ontouchstart\"in window||navigator.msMaxTouchPoints>0;return b?a.opts.minimumResultsForSearch<0?!1:!0:!0}},a.fn.select2.locales=[],a.fn.select2.locales.en={formatMatches:function(a){return 1===a?\"One result is available, press enter to select it.\":a+\" results are available, use up and down arrow keys to navigate.\"},formatNoMatches:function(){return\"No matches found\"},formatAjaxError:function(){return\"Loading failed\"},formatInputTooShort:function(a,b){var c=b-a.length;return\"Please enter \"+c+\" or more character\"+(1==c?\"\":\"s\")},formatInputTooLong:function(a,b){var c=a.length-b;return\"Please delete \"+c+\" character\"+(1==c?\"\":\"s\")},formatSelectionTooBig:function(a){return\"You can only select \"+a+\" item\"+(1==a?\"\":\"s\")},formatLoadMore:function(){return\"Loading more results\\u2026\"},formatSearching:function(){return\"Searching\\u2026\"}},a.extend(a.fn.select2.defaults,a.fn.select2.locales.en),a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:\"GET\",cache:!1,dataType:\"json\"}},window.Select2={query:{ajax:G,local:H,tags:I},util:{debounce:w,markMatch:E,escapeMarkup:F,stripDiacritics:o},\"class\":{\"abstract\":c,single:d,multi:e}}}}(jQuery);","'use strict';\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar DonutChart = function () {\r\n\r\n // Sets up the options to be used througout the chart\r\n function DonutChart(options) {\r\n _classCallCheck(this, DonutChart);\r\n\r\n this.selector = options.selector;\r\n this.setWidths(options.selector.offsetWidth);\r\n this.data = options.data;\r\n //this.data is a POJO with the following properties:\r\n //goalMet; met; total; alwaysShowProgress; unit; action;\r\n this.angle = 360 * (1 / options.data.total);\r\n }\r\n\r\n // Establishes the widths used throughout the chart\r\n\r\n\r\n _createClass(DonutChart, [{\r\n key: 'setWidths',\r\n value: function setWidths(containerWidth) {\r\n // Give chart padding by making the diameter only 90% of the parent container\r\n this.diameter = containerWidth * 0.8;\r\n this.radius = this.diameter / 2;\r\n this.innerCircleRadius = this.radius * 0.65;\r\n this.innerCircleDiameter = this.innerCircleRadius * 2;\r\n this.mainTextSize = this.radius * 0.25;\r\n this.subTextSize = this.radius * 0.15;\r\n }\r\n\r\n // Initialize the chart\r\n\r\n }, {\r\n key: 'initialize',\r\n value: function initialize() {\r\n this.generate();\r\n this.resizeChart();\r\n }\r\n\r\n // Generate the chart\r\n\r\n }, {\r\n key: 'generate',\r\n value: function generate() {\r\n // Serialize XML SVG code into a string the browser can render\r\n var s = new XMLSerializer();\r\n this.selector.innerHTML = s.serializeToString(this.compileContent());\r\n\r\n // Determine if text needs to be wrapped or not - needed because SVG does not wrap itself\r\n if (!this.data.goalMet) {\r\n this.formatText(this.selector.querySelector('.donutMainText'));\r\n this.formatText(this.selector.querySelector('.donutSubText'));\r\n }\r\n }\r\n\r\n // Re-sizes the chart when screen size is modified\r\n\r\n }, {\r\n key: 'resizeChart',\r\n value: function resizeChart() {\r\n var _this = this;\r\n\r\n window.addEventListener('resize', function () {\r\n // Set new values for widths based on new screen size\r\n _this.setWidths(_this.selector.offsetWidth);\r\n\r\n // Re-draw chart\r\n _this.generate();\r\n });\r\n }\r\n\r\n // Put the drawn vectors and inner content together\r\n\r\n }, {\r\n key: 'compileContent',\r\n value: function compileContent() {\r\n var outterSvg = this.drawVectors();\r\n var textFields = this.populateText();\r\n var completed = this.goalCompleted();\r\n\r\n if (this.data.goalMet) {\r\n outterSvg.appendChild(completed);\r\n } else {\r\n this.appendArrayItems(textFields, outterSvg);\r\n }\r\n\r\n return outterSvg;\r\n }\r\n\r\n // Prepare donut SVG with all circle and path elements\r\n\r\n }, {\r\n key: 'drawVectors',\r\n value: function drawVectors() {\r\n // The SVG that holds everything\r\n var svg = this.generateElement('svg', {\r\n 'xmlns': 'http://www.w3.org/2000/svg',\r\n 'width': '' + this.diameter,\r\n 'height': '' + this.diameter\r\n });\r\n\r\n // The \"empty\" region of the chart\r\n var underCircle = this.generateElement('circle', {\r\n 'r': '' + this.radius,\r\n 'cx': '' + this.radius,\r\n 'cy': '' + this.radius,\r\n 'class': 'underCircle'\r\n });\r\n svg.appendChild(underCircle);\r\n\r\n // The \"completed\" region of the chart\r\n // If the total is over 100 or equal to 1, use a single path element to prevent slow loading\r\n if (this.data.total > 100 || this.data.total === 1 || (typeof $$ashChartOpts === 'undefined' ? 'undefined' : _typeof($$ashChartOpts)) === 'object' && _typeof($$ashChartOpts.donut) === 'object' && !$$ashChartOpts.donut.gap) {\r\n var completedSlice = this.filledPath();\r\n svg.appendChild(completedSlice);\r\n } else {\r\n var numberOfSlices = this.data.total >= this.data.met ? this.data.met : this.data.total;\r\n var slices = this.createSlices(numberOfSlices);\r\n this.appendArrayItems(slices, svg);\r\n }\r\n\r\n // The circle that allows the pie chart to appear as a donut\r\n var overCircle = this.generateElement('circle', {\r\n 'r': '' + this.innerCircleRadius,\r\n 'cx': '' + this.radius,\r\n 'cy': '' + this.radius,\r\n 'class': 'overCircle',\r\n 'fill': '#fff'\r\n });\r\n svg.appendChild(overCircle);\r\n\r\n return svg;\r\n }\r\n\r\n // If slices are not used, this function draws the path that will fill the \"completed\" area of the chart\r\n\r\n }, {\r\n key: 'filledPath',\r\n value: function filledPath() {\r\n var radian = Math.PI / 180;\r\n var x1 = this.radius + this.radius * Math.cos(this.angle * this.data.met * radian);\r\n var x2 = this.radius + this.radius * Math.cos(this.angle * 0 * radian);\r\n var y1 = this.radius + this.radius * Math.sin(this.angle * this.data.met * radian);\r\n var y2 = this.radius + this.radius * Math.sin(this.angle * 0 * radian);\r\n var curve = this.data.met > this.data.total / 2 ? 1 : 0;\r\n var d = 'M' + this.radius + ' ' + this.radius + ' L' + x1 + ' ' + y1 + ' A' + this.radius + ' ' + this.radius + ' 0 ' + curve + ',0 ' + x2 + ' ' + y2 + ' z';\r\n\r\n var path = this.generateElement('path', {\r\n 'd': '' + d,\r\n 'transform': 'rotate(-90 ' + this.radius + ' ' + this.radius + ')',\r\n 'class': 'completedSlice'\r\n });\r\n\r\n var completedCircle = this.generateElement('circle', {\r\n 'r': '' + this.radius,\r\n 'cx': '' + this.radius,\r\n 'cy': '' + this.radius,\r\n 'class': 'completedSlice'\r\n });\r\n\r\n if (this.data.goalMet && this.data.met / this.data.total === 1 || this.data.met >= this.data.total) {\r\n return completedCircle;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n // Function that creates a filled \"slice\" for each \"met\" unit\r\n\r\n }, {\r\n key: 'createSlices',\r\n value: function createSlices(numberOfSlices) {\r\n var array = [];\r\n\r\n for (var i = 1; i <= numberOfSlices; i++) {\r\n var radian = Math.PI / 180;\r\n\r\n var x1 = this.radius + this.radius * Math.cos(this.angle * i * radian);\r\n var x2 = this.radius + this.radius * Math.cos(this.angle * (i - 1) * radian);\r\n var y1 = this.radius + this.radius * Math.sin(this.angle * i * radian);\r\n var y2 = this.radius + this.radius * Math.sin(this.angle * (i - 1) * radian);\r\n var d = 'M' + this.radius + ' ' + this.radius + ' L' + x1 + ' ' + y1 + ' A' + this.radius + ' ' + this.radius + ' 0 0,0 ' + x2 + ' ' + y2 + ' z';\r\n\r\n var path = this.generateElement('path', {\r\n 'd': '' + d,\r\n 'transform': 'rotate(-90 ' + this.radius + ' ' + this.radius + ')',\r\n 'class': 'completedSlice'\r\n });\r\n\r\n array.push(path);\r\n }\r\n\r\n return array;\r\n }\r\n }, {\r\n key: 'getMainText',\r\n value: function getMainText(data) {\r\n // Adds commas to larger numbers\r\n var addCommas = function addCommas(number) {\r\n // Needed because IE10 does not fully support \".toLocaleString()\" (method that can also insert commas)\r\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n };\r\n var met = addCommas(this.data.met);\r\n var total = addCommas(this.data.total);\r\n\r\n if (data.unit === '%') {\r\n return this.containWordsInTspan([met + '%']);\r\n } else if (data.unit === '$') {\r\n return this.containWordsInTspan(['$' + met]);\r\n } else {\r\n if (!data.showMax) {\r\n return this.containWordsInTspan(['' + met]);\r\n }\r\n return this.containWordsInTspan(['' + met, 'of', '' + total]);\r\n }\r\n }\r\n }, {\r\n key: 'getSubText',\r\n value: function getSubText(data) {\r\n if (!data.action) {\r\n return this.containWordsInTspan(['' + data.unit]);\r\n } else if (data.unit === '%' || data.unit === '$') {\r\n return this.containWordsInTspan(['' + data.action]);\r\n }\r\n\r\n return this.containWordsInTspan(['' + data.unit, '' + data.action]);\r\n }\r\n\r\n // Prepares the text that is contained within the center of the donut when not complete\r\n\r\n }, {\r\n key: 'populateText',\r\n value: function populateText() {\r\n // Gather content for the main text inside the chart\r\n var mainTextContent = this.getMainText(this.data);\r\n\r\n // Gather content for the sub text inside the chart\r\n var subTextContent = this.getSubText(this.data);\r\n\r\n var mainText = this.generateElement('text', {\r\n 'x': '' + this.radius,\r\n 'y': '' + this.radius * 0.9,\r\n 'text-anchor': 'middle',\r\n 'font-size': '' + this.mainTextSize,\r\n 'class': 'donutMainText'\r\n });\r\n\r\n var subText = this.generateElement('text', {\r\n 'x': '' + this.radius,\r\n 'y': '' + this.radius * 1.2,\r\n 'text-anchor': 'middle',\r\n 'font-size': '' + this.subTextSize,\r\n 'class': 'donutSubText',\r\n 'style': 'visibility: hidden;'\r\n });\r\n\r\n mainTextContent.forEach(function (tspan) {\r\n mainText.appendChild(tspan);\r\n });\r\n subTextContent.forEach(function (tspan) {\r\n subText.appendChild(tspan);\r\n });\r\n\r\n return [mainText, subText];\r\n }\r\n\r\n // Split text into 2 separate elements; this allows text wrapping if needed\r\n\r\n }, {\r\n key: 'containWordsInTspan',\r\n value: function containWordsInTspan(array) {\r\n var _this2 = this;\r\n\r\n var numberOfWords = array.length;\r\n\r\n if (numberOfWords > 1) {\r\n var _ret = function () {\r\n var topRow = Math.ceil(numberOfWords / 2);\r\n var bottomRow = Math.floor(numberOfWords / 2);\r\n\r\n // The first \r\n var firstTspanText = array.filter(function (word, index) {\r\n if (index < topRow) {\r\n return word;\r\n }\r\n });\r\n var firstTspan = _this2.generateElement('tspan', {\r\n 'text': '' + firstTspanText.join(' ')\r\n });\r\n\r\n // The second \r\n var secondTspanText = array.filter(function (word, index) {\r\n if (index >= topRow) {\r\n return word;\r\n }\r\n });\r\n var secondTspan = _this2.generateElement('tspan', {\r\n 'text': ' ' + secondTspanText.join(' ')\r\n });\r\n // TODO: ^^^ Make one function that generates these s?\r\n\r\n return {\r\n v: [firstTspan, secondTspan]\r\n };\r\n }();\r\n\r\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\r\n } else {\r\n var tspan = this.generateElement('tspan', {\r\n 'text': '' + array.join()\r\n });\r\n\r\n return [tspan];\r\n }\r\n }\r\n\r\n // Wrap and reposition text if it's extra long\r\n\r\n }, {\r\n key: 'formatText',\r\n value: function formatText(textElement) {\r\n var maxWidth = this.innerCircleDiameter * 1.1;\r\n var elementWidth = textElement.getComputedTextLength();\r\n var fontSize = textElement.getAttribute('font-size');\r\n var tspanLength = textElement.getElementsByTagName('tspan').length;\r\n\r\n if (elementWidth > maxWidth && tspanLength > 1) {\r\n\r\n // Position main text upward a bit if it wraps to prevent overlapping of text below\r\n if (textElement.getAttribute('class') === 'donutMainText') {\r\n textElement.setAttribute('y', '' + this.radius * 0.75);\r\n }\r\n\r\n // Adjust vertical and horizontal positioning of wrapped tags\r\n var firstTspan = textElement.getElementsByTagName('tspan')[0];\r\n firstTspan.setAttribute('x', '' + this.radius);\r\n firstTspan.setAttribute('dy', '' + this.radius * 0.01);\r\n\r\n var secondTspan = textElement.getElementsByTagName('tspan')[1];\r\n secondTspan.setAttribute('x', '' + this.radius);\r\n secondTspan.setAttribute('dy', '' + fontSize);\r\n\r\n // Remove hidden style attribute\r\n textElement.removeAttribute('style');\r\n } else {\r\n // If text is not to be wrapped, just remove hidden style attribute\r\n textElement.removeAttribute('style');\r\n }\r\n }\r\n\r\n // Prepares content in the middle of the donut when complete\r\n\r\n }, {\r\n key: 'goalCompleted',\r\n value: function goalCompleted() {\r\n var mainGoalMetContent = this.getMainText(this.data);\r\n var subGoalMetContent = this.getSubText(this.data);\r\n var goalMetContainer = this.generateElement('g');\r\n var iconName = this.data.goalMetSvgName || 'goalMet';\r\n\r\n // Generate SVG element that holds the use element containing the call to get the goal met vector\r\n var goalMetVector = this.generateElement('svg', {\r\n 'y': '' + this.radius * 0.4,\r\n 'xmlns': 'http://www.w3.org/2000/svg'\r\n });\r\n\r\n // Generate the use tag with the goal met vector (can't use generateElement function with this)\r\n var goalMetIconUseTag = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n goalMetIconUseTag.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#' + iconName + '-icon');\r\n goalMetVector.appendChild(goalMetIconUseTag);\r\n\r\n // Generate the text that appears below the goal met vector\r\n var goalMetTextTag = this.generateElement('text', {\r\n 'x': '' + this.radius,\r\n 'font-size': '' + this.subTextSize,\r\n 'class': 'goalMetText',\r\n 'text-anchor': 'middle'\r\n });\r\n var subTextTag = this.generateElement('text', {\r\n 'x': '' + this.radius,\r\n 'font-size': '' + this.subTextSize,\r\n 'class': 'goalMetText',\r\n 'text-anchor': 'middle'\r\n });\r\n\r\n // If more text other than 'Goal Met' is to be shown with trophy vector\r\n if (this.data.alwaysShowProgress) {\r\n mainGoalMetContent.forEach(function (text) {\r\n goalMetTextTag.appendChild(text);\r\n });\r\n\r\n subGoalMetContent.forEach(function (text) {\r\n subTextTag.appendChild(text);\r\n });\r\n\r\n goalMetTextTag.setAttribute('y', '' + this.radius * 1.3);\r\n subTextTag.setAttribute('y', '' + this.radius * 1.45);\r\n\r\n goalMetVector.setAttribute('height', '40%');\r\n goalMetVector.setAttribute('width', '40%');\r\n goalMetVector.setAttribute('x', '' + this.radius / 1.65);\r\n\r\n goalMetContainer.appendChild(goalMetVector);\r\n goalMetContainer.appendChild(goalMetTextTag);\r\n goalMetContainer.appendChild(subTextTag);\r\n } else {\r\n // Else, add 'Goal Met' text\r\n goalMetTextTag.setAttribute('y', '' + this.radius * 1.5);\r\n goalMetTextTag.textContent = 'Goal Met';\r\n\r\n goalMetVector.setAttribute('height', '50%');\r\n goalMetVector.setAttribute('width', '50%');\r\n goalMetVector.setAttribute('x', '' + this.radius / 2);\r\n\r\n goalMetContainer.appendChild(goalMetVector);\r\n goalMetContainer.appendChild(goalMetTextTag);\r\n }\r\n\r\n return goalMetContainer;\r\n }\r\n\r\n // Utility function that appends each item in an array to an element\r\n\r\n }, {\r\n key: 'appendArrayItems',\r\n value: function appendArrayItems(array, element) {\r\n array.forEach(function (item) {\r\n element.appendChild(item);\r\n });\r\n }\r\n\r\n // Utility function to generate SVG elements\r\n\r\n }, {\r\n key: 'generateElement',\r\n value: function generateElement(type, properties) {\r\n var element = document.createElementNS('http://www.w3.org/2000/svg', '' + type);\r\n\r\n for (var i in properties) {\r\n // Text props need to be assigned differently\r\n if (i === 'text') {\r\n element.textContent = '' + properties[i];\r\n } else {\r\n element.setAttribute('' + i, '' + properties[i]);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n }]);\r\n\r\n return DonutChart;\r\n}();\r\n","// ┌────────────────────────────────────────────────────────────────────┐ \\\\\r\n// │ Raphaël 2.1.2 - JavaScript Vector Library │ \\\\\r\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\r\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\r\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\\\\r\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\r\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\r\n// └────────────────────────────────────────────────────────────────────┘ \\\\\r\n!function(a){var b,c,d=\"0.4.2\",e=\"hasOwnProperty\",f=/[\\.\\/]/,g=\"*\",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)\"zIndex\"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],\"zIndex\"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),\"function\"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp(\"(?:\\\\.|\\\\/|^)\"+a+\"(?:\\\\.|\\\\/|$)\").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;mi;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return\"You are running Eve \"+d},\"undefined\"!=typeof module&&module.exports?module.exports=k:\"undefined\"!=typeof define?define(\"eve\",[],function(){return k}):a.eve=k}(window||this),function(a,b){\"function\"==typeof define&&define.amd?define([\"eve\"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){function c(a){if(c.is(a,\"function\"))return u?a():b.on(\"raphael.DOMload\",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],\"function\")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on(\"raphael.DOMload\",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if(\"function\"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join(\"␀\"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)O(e,g)||O(b,d)O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?\"y\":\"x\",y=Q(w.x-v.x)<.001?\"y\":\"x\",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if(\"M\"==s[0])e=i=s[1],f=j=s[2];else{\"C\"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if(\"M\"==v[0])g=k=v[1],h=l=v[2];else{\"C\"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+\" × \"+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case\"colour\":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case\"path\":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case\"transform\":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case\"csv\":var M=I(i[y])[J](w),N=I(r[y])[J](w);if(\"clip-rect\"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b(\"raphael.anim.start.\"+d.id,d,a)}}function t(a){for(var b=0;be;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\",\"1.1\")?\"SVG\":\"VML\",\"VML\"==c.type){var sb,tb=A.doc.createElement(\"div\");if(tb.innerHTML='',sb=tb.firstChild,sb.style.behavior=\"url(#default#VML)\",!sb||\"object\"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml=\"VML\"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),\"finite\"==b?!Y[z](+a):\"array\"==b?a instanceof Array:\"null\"==b&&null===a||b==typeof a&&null!==a||\"object\"==b&&a===Object(a)||\"array\"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return 180*a/S%360},c.snapTo=function(a,b,d){if(d=c.is(d,\"finite\")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c=\"x\"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b(\"raphael.setWindow\",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\\s+|\\s+$/g;try{var e=new ActiveXObject(\"htmlfile\");e.write(\"\"),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue(\"ForeColor\");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,\"#\"+(\"000000\"+c.toString(16)).slice(-6)}catch(e){return\"none\"}})}else{var i=A.doc.createElement(\"i\");i.title=\"Raphaël Colour Picker\",i.style.display=\"none\",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue(\"color\")})}return ub(a)},vb=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},wb=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,\"finite\")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,\"string\")&&(a=c.getRGB(a)),c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:\"none\"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(\",\").replace(gb,\"$1\")};c._preload=function(a,b){var c=A.doc.createElement(\"img\");c.style.cssText=\"position:absolute;left:-9999em;top:-9999em\",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g};if(\"none\"==a)return{r:-1,g:-1,b:-1,hex:\"none\",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||\"#\"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),\"rgba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsla\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex=\"#\"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,\"finite\")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return\"#\"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),\"m\"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g=\"l\",b=\"m\"==b?\"l\":\"L\"),\"r\"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,\"array\")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[[\"M\",b,d],[\"H\",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b(\"raphael.log\",null,\"Raphaël: you are calling to method “\"+a+\"” of removed object\",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],\"M\"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;\"M\"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push([\"M\",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case\"a\":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case\"v\":l[1]=+(m[1]-f).toFixed(3);break;case\"m\":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],\"m\"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case\"z\":e=g,f=h;break;case\"h\":e+=+d[j][r-1];break;case\"v\":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[[\"M\",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;\"M\"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=[\"M\",e,f]);for(var k,l,m=3==a.length&&\"M\"==a[0][0]&&\"R\"==a[1][0].toUpperCase()&&\"Z\"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case\"A\":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case\"V\":k[1]=+l[1]+f;break;case\"H\":k[1]=+l[1]+e;break;case\"R\":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case\"M\":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if(\"R\"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=[\"R\"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case\"Z\":e=g,f=i;break;case\"H\":e=k[1];break;case\"V\":f=k[1];break;case\"M\":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](\",\");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case\"M\":b.X=a[1],b.Y=a[2];break;case\"A\":a=[\"C\"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case\"S\":\"C\"==c||\"S\"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=[\"C\",d,e][E](a.slice(1));break;case\"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=[\"C\"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case\"Q\":b.qx=a[1],b.qy=a[2],a=[\"C\"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case\"L\":a=[\"C\"][E](Fb(b.x,b.y,a[1],a[2]));break;case\"H\":a=[\"C\"][E](Fb(b.x,b.y,a[1],b.y));break;case\"V\":a=[\"C\"][E](Fb(b.x,b.y,b.x,a[1]));break;case\"Z\":a=[\"C\"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)a.splice(b++,0,[\"C\"][E](c.splice(0,6)));a.splice(b,1),l=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&\"M\"==a[g][0]&&\"M\"!=b[g][0]&&(b.splice(g,0,[\"M\",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=O(d.length,e&&e.length||0))},k=0,l=O(d.length,e&&e.length||0);l>k;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var m=d[k],n=e&&e[k],o=m.length,p=e&&n.length;f.x=m[o-2],f.y=m[o-1],f.bx=_(m[o-4])||f.x,f.by=_(m[o-3])||f.y,g.bx=e&&(_(n[p-4])||g.x),g.by=e&&(_(n[p-3])||g.y),g.x=e&&n[p-2],g.y=e&&n[p-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\\d\\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+\"%\"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+\"%\"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\\.{3}|\\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;\"t\"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):\"r\"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):\"s\"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):\"m\"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case\"t\":return[b,0,0];case\"m\":return[b,1,0,0,1,0,0];case\"r\":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case\"s\":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\\.{3}|\\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[];for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||\"r\"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||\"s\"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])\r\n}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,\"object\")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return\"progid:DXImageTransform.Microsoft.Matrix(M11=\"+this.get(0)+\", M12=\"+this.get(2)+\", M21=\"+this.get(1)+\", M22=\"+this.get(3)+\", Dx=\"+this.get(4)+\", Dy=\"+this.get(5)+\", sizingmethod='auto expand')\"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?\"t\"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?\"s\"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?\"r\"+[b.rotate,0,0]:G)):\"m\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\\/(.*?)\\s/)||navigator.userAgent.match(/Chrome\\/(\\d+)/);v.safari=\"Apple Computer, Inc.\"==navigator.vendor&&(Qb&&Qb[1]<4||\"iP\"==navigator.platform.slice(0,2))||\"Google Inc.\"==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:\"none\"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],e,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent(\"on\"+b,e);var f=function(){return a.detachEvent(\"on\"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display=\"none\",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b(\"raphael.drag.over.\"+c.el.id,c.el,k),d+=g,e+=f,b(\"raphael.drag.move.\"+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b(\"raphael.drag.end.\"+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,\"function\")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c[\"un\"+a]=$b[\"un\"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,\"undefined\")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,\"object\")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b(\"raphael.data.get.\"+this.id,this,e[a],a),e[a]}return e[a]=d,b(\"raphael.data.set.\"+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on(\"raphael.drag.start.\"+this.id,d),a&&b.on(\"raphael.drag.move.\"+this.id,a),e&&b.on(\"raphael.drag.end.\"+this.id,e),b(\"raphael.drag.start.\"+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on(\"raphael.drag.over.\"+this.id,a):b.unbind(\"raphael.drag.over.\"+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind(\"raphael.drag.*.\"+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||\"about:blank\",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,\"array\")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type=\"set\",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&\"svg\"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr(\"transform\")&&this.attr(\"transform\").length&&(d=c.transformPath(d,this.attr(\"transform\"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if(\"text\"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr(\"stroke-width\")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||\"#000\"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:\"none\",\"stroke-linejoin\":\"round\",\"stroke-linecap\":\"round\",\"stroke-width\":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l=\"\",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],\"M\"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=[\"C\"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=[\"M\"+k.x,k.y+\"C\"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if(\"text\"!=this.type&&\"set\"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},\"<\":function(a){return R(a,1.7)},\">\":function(a){return R(a,.48)},\"<>\":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc[\"ease-in\"]=hc[\"<\"],hc.easeOut=hc[\"ease-out\"]=hc[\">\"],hc.easeInOut=hc[\"ease-in-out\"]=hc[\"<>\"],hc[\"back-in\"]=hc.backIn,hc[\"back-out\"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;dh))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case\"colour\":f=\"rgb(\"+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(\",\")+\")\";break;case\"path\":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case\"transform\":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[[\"m\",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case\"csv\":if(\"clip-rect\"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b(\"raphael.anim.frame.\"+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b(\"raphael.anim.frame.\"+d.id,d,e),b(\"raphael.anim.finish.\"+d.id,d,e),c.is(a,\"function\")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on(\"raphael.anim.frame.\"+this.id,a):b.unbind(\"raphael.anim.frame.\"+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,\"function\")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+\"%\"!=g&&(f=!0,h[g]=a[g]);return f?(d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b)):new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;cb;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],\"object\"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;cc;c++)e.push(this[a+c]);for(;cc?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,\"function\")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return\"Raphaël‘s set\"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face[\"font-family\"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face[\"units-per-em\"]=ab(a.face[\"units-per-em\"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&\"M\"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:\"L\",c:\"C\",x:\"z\",t:\"m\",r:\"l\",v:\"c\"}[a]||\"M\"})+\"z\"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||\"normal\",d=d||\"normal\",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp(\"(^|\\\\s)\"+a.replace(/[^\\w\\d\\s+!~.:_-]/g,G)+\"(\\\\s|$)\",\"i\");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face[\"font-weight\"]!=b||i.face[\"font-style\"]!=d&&i.face[\"font-style\"]||i.face[\"font-stretch\"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||\"middle\",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,\"string\")&&(e=this.getFont(e)),e){j=(f||16)/e.face[\"units-per-em\"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+(\"baseline\"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if(\"\\n\"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,[\"t\",l*j,r*j,\"s\",j,j,p,s,\"t\",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:\"#000\",stroke:\"none\"})},v.add=function(a){if(c.is(a,\"array\"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\\{([^\\}]+)\\}/g,b=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),\"function\"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+\"\"};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve(\"raphael.DOMload\")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState=\"complete\"},!1),a.readyState=\"loading\"),e()}(document,\"DOMContentLoaded\"),b.on(\"raphael.DOMload\",function(){u=!0}),function(){if(c.svg){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l=\"\",m=\" \",n=\"http://www.w3.org/1999/xlink\",o={block:\"M5,0 0,2.5 5,5z\",classic:\"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",diamond:\"M2.5,0 5,2.5 2.5,5 0,2.5z\",open:\"M6,1 1,3.5 6,6\",oval:\"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"},p={};c.toString=function(){return\"Your browser supports SVG.\\nYou are running Raphaël \"+this.version};var q=function(d,e){if(e){\"string\"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&(\"xlink:\"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS(\"http://www.w3.org/2000/svg\",d),d.style&&(d.style.webkitTapHighlightColor=\"rgba(0,0,0,0)\");return d},r=function(a,e){var j=\"linear\",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j=\"radial\",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\\s*\\-\\s*/),\"linear\"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\\(\\)\\s,\\xb0#]/g,\"_\"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+\"Gradient\",{id:k}),a.gradient=s,q(s,\"radial\"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q(\"stop\",{offset:w[x].offset?w[x].offset:x?\"100%\":\"0%\",\"stop-color\":w[x].color||\"#fff\"}))}}return q(o,{fill:\"url(#\"+k+\")\",opacity:1,\"fill-opacity\":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+\" translate(\"+b.x+\",\"+b.y+\")\"})},t=function(d,e,f){if(\"path\"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split(\"-\"),n=d.paper,r=f?\"end\":\"start\",s=d.node,t=d.attrs,u=t[\"stroke-width\"],v=m.length,w=\"classic\",x=3,y=3,z=5;v--;)switch(m[v]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":w=m[v];break;case\"wide\":y=5;break;case\"narrow\":y=2;break;case\"long\":x=5;break;case\"short\":x=2}if(\"open\"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:\"none\",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:\"none\"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},\"none\"!=w){var A=\"raphael-marker-\"+w,B=\"raphael-marker-\"+r+w+x+y;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q(\"path\"),{\"stroke-linecap\":\"round\",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName(\"use\")[0]):(D=q(q(\"marker\"),{id:B,markerHeight:y,markerWidth:x,orient:\"auto\",refX:j,refY:y/2}),C=q(q(\"use\"),{\"xlink:href\":\"#\"+A,transform:(f?\"rotate(180 \"+x/2+\" \"+y/2+\") \":l)+\"scale(\"+x/z+\",\"+y/z+\")\",\"stroke-width\":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*(\"diamond\"!=w&&\"oval\"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k[\"marker-\"+r]=\"url(#\"+B+\")\",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+\"Path\"]=A,d._.arrows[r+\"Marker\"]=B,d._.arrows[r+\"dx\"]=E,d._.arrows[r+\"Type\"]=w,d._.arrows[r+\"String\"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+\"Path\"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+\"Path\"],delete d._.arrows[r+\"Marker\"],delete d._.arrows[r+\"dx\"],delete d._.arrows[r+\"Type\"],delete d._.arrows[r+\"String\"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={\"\":[0],none:[0],\"-\":[3,1],\".\":[1,1],\"-.\":[3,1,1,1],\"-..\":[3,1,1,1,1,1],\". \":[1,3],\"- \":[4,3],\"--\":[8,3],\"- .\":[4,3,1,3],\"--.\":[8,3,1,3],\"--..\":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs[\"stroke-width\"]||\"1\",f={round:e,square:e,butt:0}[a.attrs[\"stroke-linecap\"]||d[\"stroke-linecap\"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{\"stroke-dasharray\":g.join(\",\")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility=\"hidden\";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case\"blur\":d.blur(p);break;case\"title\":var u=i.getElementsByTagName(\"title\");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q(\"title\");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case\"href\":case\"target\":var x=i.parentNode;if(\"a\"!=x.tagName.toLowerCase()){var z=q(\"a\");x.insertBefore(z,i),z.appendChild(i),x=z}\"target\"==o?x.setAttributeNS(n,\"show\",\"blank\"==p?\"new\":p):x.setAttributeNS(n,o,p);break;case\"cursor\":i.style.cursor=p;break;case\"transform\":d.transform(p);break;case\"arrow-start\":t(d,p);break;case\"arrow-end\":t(d,p,1);break;case\"clip-rect\":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q(\"clipPath\"),C=q(\"rect\");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{\"clip-path\":\"url(#\"+B.id+\")\"}),d.clip=C}if(!p){var D=i.getAttribute(\"clip-path\");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\\(#|\\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{\"clip-path\":l}),delete d.clip}}break;case\"path\":\"path\"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):\"M0,0\"}),d._.dirty=1,d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case\"width\":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o=\"x\",p=k.x;case\"x\":k.fx&&(p=-k.x-(k.width||0));case\"rx\":if(\"rx\"==o&&\"rect\"==d.type)break;case\"cx\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"height\":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o=\"y\",p=k.y;case\"y\":k.fy&&(p=-k.y-(k.height||0));case\"ry\":if(\"ry\"==o&&\"rect\"==d.type)break;case\"cy\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"r\":\"rect\"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case\"src\":\"image\"==d.type&&i.setAttributeNS(n,\"href\",p);break;case\"stroke-width\":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k[\"stroke-dasharray\"]&&v(d,k[\"stroke-dasharray\"],f),d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"stroke-dasharray\":v(d,p,f);break;case\"fill\":var F=b(p).match(c._ISURL);if(F){B=q(\"pattern\");var G=q(\"image\");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:\"userSpaceOnUse\",height:1,width:1}),q(G,{x:0,y:0,\"xlink:href\":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:\"url(#\"+B.id+\")\"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if((\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p)){if(\"opacity\"in k||\"fill-opacity\"in k){var I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l));if(I){var J=I.getElementsByTagName(\"stop\");q(J[J.length-1],{\"stop-opacity\":(\"opacity\"in k?k.opacity:1)*(\"fill-opacity\"in k?k[\"fill-opacity\"]:1)})}}k.gradient=p,k.fill=\"none\";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,\"undefined\")&&c.is(f.opacity,\"undefined\")&&q(i,{opacity:k.opacity}),!c.is(k[\"fill-opacity\"],\"undefined\")&&c.is(f[\"fill-opacity\"],\"undefined\")&&q(i,{\"fill-opacity\":k[\"fill-opacity\"]});H[a](\"opacity\")&&q(i,{\"fill-opacity\":H.opacity>1?H.opacity/100:H.opacity});case\"stroke\":H=c.getRGB(p),i.setAttribute(o,H.hex),\"stroke\"==o&&H[a](\"opacity\")&&q(i,{\"stroke-opacity\":H.opacity>1?H.opacity/100:H.opacity}),\"stroke\"==o&&d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"gradient\":(\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p);break;case\"opacity\":k.gradient&&!k[a](\"stroke-opacity\")&&q(i,{\"stroke-opacity\":p>1?p/100:p});case\"fill-opacity\":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l)),I&&(J=I.getElementsByTagName(\"stop\"),q(J[J.length-1],{\"stop-opacity\":p}));break}default:\"font-size\"==o&&(p=e(p,10)+\"px\");var K=o.replace(/(\\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(\"text\"==d.type&&(f[a](\"text\")||f[a](\"font\")||f[a](\"font-size\")||f[a](\"x\")||f[a](\"y\"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue(\"font-size\"),10):10;\r\nif(f[a](\"text\")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split(\"\\n\"),m=[],n=0,o=k.length;o>n;n++)j=q(\"tspan\"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName(\"tspan\"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,\"finite\")&&q(m[0],{dy:r})}},z=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},A=c.el;z.prototype=A,A.constructor=z,c._engine.path=function(a,b){var c=q(\"path\");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);return d.type=\"path\",w(d,{fill:\"none\",stroke:\"#000\",path:a}),d},A.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([[\"r\",a,c,e]])),this},A.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this},A.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([[\"t\",a,c]])),this)},A.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a](\"stroke-width\")?this.attrs[\"stroke-width\"]:1;this.attr({\"stroke-width\":e})}return this},A.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"none\"),this},A.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"\"),this},A.remove=function(){if(!this.removed&&this.node.parentNode){var a=this.paper;a.__set__&&a.__set__.exclude(this),k.unbind(\"raphael.*.*.\"+this.id),this.gradient&&a.defs.removeChild(this.gradient),c._tear(this,a),\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var b in this)this[b]=\"function\"==typeof this[b]?c._removedFactory(b):null;this.removed=!0}},A._getBBox=function(){if(\"none\"==this.node.style.display){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}return a&&this.hide(),b},A.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(\"fill\"==b&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if(\"transform\"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,\"array\")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,\"object\")&&(m=b);for(var n in m)k(\"raphael.attr.\"+n+\".\"+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],\"function\")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},A.toFront=function(){if(this.removed)return this;\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var a=this.paper;return a.top!=this&&c._tofront(this,a),this},A.toBack=function(){if(this.removed)return this;var a=this.node.parentNode;\"a\"==a.tagName.toLowerCase()?a.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):a.firstChild!=this.node&&a.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper);this.paper;return this},A.insertAfter=function(a){if(this.removed)return this;var b=a.node||a[a.length-1].node;return b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this},A.insertBefore=function(a){if(this.removed)return this;var b=a.node||a[0].node;return b.parentNode.insertBefore(this.node,b),c._insertbefore(this,a,this.paper),this},A.blur=function(a){var b=this;if(0!==+a){var d=q(\"filter\"),e=q(\"feGaussianBlur\");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:\"url(#\"+d.id+\")\"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute(\"filter\");return b},c._engine.circle=function(a,b,c,d){var e=q(\"circle\");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);return f.attrs={cx:b,cy:c,r:d,fill:\"none\",stroke:\"#000\"},f.type=\"circle\",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q(\"rect\");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:\"none\",stroke:\"#000\"},h.type=\"rect\",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q(\"ellipse\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:\"none\",stroke:\"#000\"},g.type=\"ellipse\",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q(\"image\");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:\"none\"}),g.setAttributeNS(n,\"href\",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type=\"image\",h},c._engine.text=function(a,b,d,e){var f=q(\"text\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={x:b,y:d,\"text-anchor\":\"middle\",text:e,font:c._availableAttrs.font,stroke:\"none\",fill:\"#000\"},g.type=\"text\",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute(\"width\",this.width),this.canvas.setAttribute(\"height\",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error(\"SVG container not found.\");var h,i=q(\"svg\"),j=\"overflow:hidden;\";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:\"http://www.w3.org/2000/svg\"}),1==b?(i.style.cssText=j+\"position:absolute;left:\"+d+\"px;top:\"+e+\"px\",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+\"position:relative\",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k(\"raphael.setViewBox\",this,this._viewBox,[a,b,c,d,e]);var f,h,i=g(c/this.width,d/this.height),j=this.top,l=e?\"xMidYMid meet\":\"xMinYMin\";for(null==a?(this._vbSize&&(i=1),delete this._vbSize,f=\"0 0 \"+this.width+m+this.height):(this._vbSize=i,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:l});i&&j;)h=\"stroke-width\"in j.attrs?j.attrs[\"stroke-width\"]:1,j.attr({\"stroke-width\":h}),j._.dirty=1,j._.dirtyT=1,j=j.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+\"px\"),f&&(this._top=(this._top+f)%1,c.top=this._top+\"px\"))},c.prototype.clear=function(){c.eve(\"raphael.clear\",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q(\"desc\")).appendChild(c._g.doc.createTextNode(\"Created with Raphaël \"+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q(\"defs\"))},c.prototype.remove=function(){k(\"raphael.remove\",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null};var B=c.st;for(var C in A)A[a](C)&&!B[a](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}}(),function(){if(c.vml){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j=\"fill\",k=/[, ]+/,l=c.eve,m=\" progid:DXImageTransform.Microsoft\",n=\" \",o=\"\",p={M:\"m\",L:\"l\",C:\"c\",Z:\"x\",m:\"t\",l:\"r\",c:\"v\",z:\"x\"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\\S+Blur\\([^\\)]+\\)/g,s=/-?[^,\\s-]+/g,t=\"position:absolute;left:0;top:0;width:1px;height:1px\",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e=\"m\"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p[\"m\"==b?\"l\":\"L\"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),\"z\"==i&&(i=\"x\");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?\",\":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p=\"\",q=u/b,r=u/c;if(m.visibility=\"hidden\",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+=\"x\"),0>c&&(p+=\" y\")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility=\"visible\"}};c.toString=function(){return\"Your browser doesn’t support SVG. Falling down to VML.\\nYou are running Raphaël \"+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split(\"-\"),f=d?\"end\":\"start\",g=e.length,h=\"classic\",i=\"medium\",j=\"medium\";g--;)switch(e[g]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":h=e[g];break;case\"wide\":case\"narrow\":j=e[g];break;case\"long\":case\"short\":i=e[g]}var k=a.node.getElementsByTagName(\"stroke\")[0];k[f+\"arrow\"]=h,k[f+\"arrowlength\"]=i,k[f+\"arrowwidth\"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),\"blur\"in i&&e.blur(i.blur),(i.path&&\"path\"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf(\"r\")?c._pathToAbsolute(m.path):m.path),\"image\"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),\"transform\"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if(\"clip-rect\"in i){var G=b(i[\"clip-rect\"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement(\"div\"),I=H.style;I.clip=c.format(\"rect({1}px {2}px {3}px {0}px)\",G),l.clipRect||(I.position=\"absolute\",I.top=0,I.left=0,I.width=e.paper.width+\"px\",I.height=e.paper.height+\"px\",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i[\"clip-rect\"]||l.clipRect&&(l.clipRect.style.clip=\"auto\")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i[\"font-family\"]&&(J.fontFamily='\"'+i[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g,o)+'\"'),i[\"font-size\"]&&(J.fontSize=i[\"font-size\"]),i[\"font-weight\"]&&(J.fontWeight=i[\"font-weight\"]),i[\"font-style\"]&&(J.fontStyle=i[\"font-style\"])}if(\"arrow-start\"in i&&A(s,i[\"arrow-start\"]),\"arrow-end\"in i&&A(s,i[\"arrow-end\"],1),null!=i.opacity||null!=i[\"stroke-width\"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||null!=i[\"fill-opacity\"]||null!=i[\"stroke-dasharray\"]||null!=i[\"stroke-miterlimit\"]||null!=i[\"stroke-linejoin\"]||null!=i[\"stroke-linecap\"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),\"image\"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||\"none\"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type=\"tile\";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type=\"solid\",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||\"r\"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill=\"none\",m.gradient=i.fill,K.rotate=!1)}if(\"fill-opacity\"in i||\"opacity\"in i){var O=((+m[\"fill-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color=\"none\")}l.appendChild(K);var P=l.getElementsByTagName(\"stroke\")&&l.getElementsByTagName(\"stroke\")[0],Q=!1;!P&&(Q=P=F(\"stroke\")),(i.stroke&&\"none\"!=i.stroke||i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||i[\"stroke-dasharray\"]||i[\"stroke-miterlimit\"]||i[\"stroke-linejoin\"]||i[\"stroke-linecap\"])&&(P.on=!0),(\"none\"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i[\"stroke-width\"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m[\"stroke-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i[\"stroke-width\"])||1);if(O=h(g(O,0),1),null==i[\"stroke-width\"]&&(S=m[\"stroke-width\"]),i[\"stroke-width\"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i[\"stroke-linejoin\"]&&(P.joinstyle=i[\"stroke-linejoin\"]||\"miter\"),P.miterlimit=i[\"stroke-miterlimit\"]||8,i[\"stroke-linecap\"]&&(P.endcap=\"butt\"==i[\"stroke-linecap\"]?\"flat\":\"square\"==i[\"stroke-linecap\"]?\"square\":\"round\"),\"stroke-dasharray\"in i){var T={\"-\":\"shortdash\",\".\":\"shortdot\",\"-.\":\"shortdashdot\",\"-..\":\"shortdashdotdot\",\". \":\"dot\",\"- \":\"dash\",\"--\":\"longdash\",\"- .\":\"dashdot\",\"--.\":\"longdashdot\",\"--..\":\"longdashdotdot\"};P.dashstyle=T[a](i[\"stroke-dasharray\"])?T[i[\"stroke-dasharray\"]]:o}Q&&l.appendChild(P)}if(\"text\"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\\d+(?:\\.\\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m[\"font-family\"]&&(p.fontFamily=m[\"font-family\"]),m[\"font-weight\"]&&(p.fontWeight=m[\"font-weight\"]),m[\"font-style\"]&&(p.fontStyle=m[\"font-style\"]),W=d(m[\"font-size\"]||W&&W[0])||10,p.fontSize=W*V+\"px\",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/\"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,(\"x\"in i||\"y\"in i)&&(s.path.v=c.format(\"m{0},{1}l{2},{1}\",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=[\"x\",\"y\",\"text\",\"font\",\"font-family\",\"font-weight\",\"font-style\",\"font-size\"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m[\"text-anchor\"]){case\"start\":s.textpath.style[\"v-text-align\"]=\"left\",s.bbx=s.W/2;break;case\"end\":s.textpath.style[\"v-text-align\"]=\"right\",s.bbx=-s.W/2;break;default:s.textpath.style[\"v-text-align\"]=\"center\",s.bbx=0}s.textpath.style[\"v-text-kern\"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i=\"linear\",j=\".5 .5\";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i=\"radial\",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\\s*\\-\\s*/),\"linear\"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method=\"none\",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():\"0% \"+g.color,\"radial\"==i?(g.type=\"gradientTitle\",g.focus=\"100%\",g.focussize=\"0 0\",g.focusposition=j,g.angle=0):(g.type=\"gradient\",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?\"s\"+[e.scale,e.scale]+\"-1-1t\"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\\.{3}|\\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf(\"-\"),l=!b(this.attrs.fill).indexOf(\"url(\");if(h.translate(1,1),l||k||\"image\"==this.type)if(i.matrix=\"1 0 0 1\",i.offset=\"0 0\",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return d&&(this._.transform=d),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([[\"r\",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([[\"t\",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display=\"none\"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind(\"raphael.*.*.\"+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(b==j&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,\"array\")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,\"object\")&&(n=b);for(var o in n)l(\"raphael.attr.\"+o+\".\"+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],\"function\")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&\"text\"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+\".Blur(pixelradius=\"+(+a||1.5)+\")\",b.margin=c.format(\"-{0}px 0 0 -{0}px\",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F(\"shape\");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:\"none\",stroke:\"#000\"};a&&(e.path=a),d.type=\"path\",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F(\"skew\");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type=\"rect\",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type=\"ellipse\",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type=\"circle\",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:\"none\"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type=\"image\",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type=\"tile\",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F(\"shape\"),i=F(\"path\"),j=F(\"textpath\");d=d||0,e=e||0,g=g||\"\",i.v=c.format(\"m{0},{1}l{2},{1}\",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin=\"0 0\";var k=new D(h,a),l={fill:\"#000\",stroke:\"none\",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type=\"text\",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F(\"skew\");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+=\"px\"),b==+b&&(b+=\"px\"),d.width=a,d.height=b,d.clip=\"rect(0 \"+a+\" \"+b+\" 0)\",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve(\"raphael.setViewBox\",this,this._viewBox,[a,b,d,e,f]);var h,i,j=this.width,k=this.height,l=1/g(d/j,e/k);return f&&(h=k/e,i=j/d,j>d*h&&(a-=(j-d*h)/2/h),k>e*i&&(b-=(k-e*i)/2/i)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:l},this.forEach(function(a){a.transform(\"...\")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(\".rvml\",\"behavior:url(#default#VML)\");try{!b.namespaces.rvml&&b.namespaces.add(\"rvml\",\"urn:schemas-microsoft-com:vml\"),F=function(a){return b.createElement(\"')}}catch(c){F=function(a){return b.createElement(\"<\"+a+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error(\"VML container not found.\");var h=new c._Paper,i=h.canvas=c._g.doc.createElement(\"div\"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+=\"px\"),d==+d&&(d+=\"px\"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin=\"0 0\",h.span=c._g.doc.createElement(\"span\"),h.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\",i.appendChild(h.span),j.cssText=c.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+\"px\",j.top=g+\"px\",j.position=\"absolute\"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve(\"raphael.clear\",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement(\"span\"),this.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve(\"raphael.remove\",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,c});","/*!\r\n * g.Raphael 0.51 - Charting library, based on Raphaël\r\n *\r\n * Copyright (c) 2009-2012 Dmitry Baranovskiy (http://g.raphaeljs.com)\r\n * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.\r\n */\r\n\r\n/*\r\n * Tooltips on Element prototype\r\n */\r\n/*\\\r\n * Element.popup\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'popup' tooltip. Can also be used on sets.\r\n **\r\n > Parameters\r\n **\r\n - dir (string) location of Element relative to the tail: `'down'`, `'left'`, `'up'` [default], or `'right'`.\r\n - size (number) amount of bevel/padding around the Element, as well as half the width and height of the tail [default: `5`]\r\n - x (number) x coordinate of the popup's tail [default: Element's `x` or `cx`]\r\n - y (number) y coordinate of the popup's tail [default: Element's `y` or `cy`]\r\n **\r\n = (object) path element of the popup\r\n \\*/\r\nRaphael.el.popup = function (dir, size, x, y) {\r\n var paper = this.paper || this[0].paper,\r\n bb, xy, center, cw, ch;\r\n\r\n if (!paper) return;\r\n\r\n switch (this.type) {\r\n case 'text':\r\n case 'circle':\r\n case 'ellipse': center = true; break;\r\n default: center = false;\r\n }\r\n\r\n dir = dir == null ? 'up' : dir;\r\n size = size || 5;\r\n bb = this.getBBox();\r\n\r\n x = typeof x == 'number' ? x : (center ? bb.x + bb.width / 2 : bb.x);\r\n y = typeof y == 'number' ? y : (center ? bb.y + bb.height / 2 : bb.y);\r\n cw = Math.max(bb.width / 2 - size, 0);\r\n ch = Math.max(bb.height / 2 - size, 0);\r\n\r\n this.translate(x - bb.x - (center ? bb.width / 2 : 0), y - bb.y - (center ? bb.height / 2 : 0));\r\n bb = this.getBBox();\r\n\r\n var paths = {\r\n up: [\r\n 'M', x, y,\r\n 'l', -size, -size, -cw, 0,\r\n 'a', size, size, 0, 0, 1, -size, -size,\r\n 'l', 0, -bb.height,\r\n 'a', size, size, 0, 0, 1, size, -size,\r\n 'l', size * 2 + cw * 2, 0,\r\n 'a', size, size, 0, 0, 1, size, size,\r\n 'l', 0, bb.height,\r\n 'a', size, size, 0, 0, 1, -size, size,\r\n 'l', -cw, 0,\r\n 'z'\r\n ].join(','),\r\n down: [\r\n 'M', x, y,\r\n 'l', size, size, cw, 0,\r\n 'a', size, size, 0, 0, 1, size, size,\r\n 'l', 0, bb.height,\r\n 'a', size, size, 0, 0, 1, -size, size,\r\n 'l', -(size * 2 + cw * 2), 0,\r\n 'a', size, size, 0, 0, 1, -size, -size,\r\n 'l', 0, -bb.height,\r\n 'a', size, size, 0, 0, 1, size, -size,\r\n 'l', cw, 0,\r\n 'z'\r\n ].join(','),\r\n left: [\r\n 'M', x, y,\r\n 'l', -size, size, 0, ch,\r\n 'a', size, size, 0, 0, 1, -size, size,\r\n 'l', -bb.width, 0,\r\n 'a', size, size, 0, 0, 1, -size, -size,\r\n 'l', 0, -(size * 2 + ch * 2),\r\n 'a', size, size, 0, 0, 1, size, -size,\r\n 'l', bb.width, 0,\r\n 'a', size, size, 0, 0, 1, size, size,\r\n 'l', 0, ch,\r\n 'z'\r\n ].join(','),\r\n right: [\r\n 'M', x, y,\r\n 'l', size, -size, 0, -ch,\r\n 'a', size, size, 0, 0, 1, size, -size,\r\n 'l', bb.width, 0,\r\n 'a', size, size, 0, 0, 1, size, size,\r\n 'l', 0, size * 2 + ch * 2,\r\n 'a', size, size, 0, 0, 1, -size, size,\r\n 'l', -bb.width, 0,\r\n 'a', size, size, 0, 0, 1, -size, -size,\r\n 'l', 0, -ch,\r\n 'z'\r\n ].join(',')\r\n };\r\n\r\n xy = {\r\n up: { x: -!center * (bb.width / 2), y: -size * 2 - (center ? bb.height / 2 : bb.height) },\r\n down: { x: -!center * (bb.width / 2), y: size * 2 + (center ? bb.height / 2 : bb.height) },\r\n left: { x: -size * 2 - (center ? bb.width / 2 : bb.width), y: -!center * (bb.height / 2) },\r\n right: { x: size * 2 + (center ? bb.width / 2 : bb.width), y: -!center * (bb.height / 2) }\r\n }[dir];\r\n\r\n this.translate(xy.x, xy.y);\r\n return paper.path(paths[dir]).attr({ fill: \"#000\", stroke: \"none\" }).insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\\\r\n * Element.tag\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'tag' tooltip. Can also be used on sets.\r\n **\r\n > Parameters\r\n **\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n - r (number) radius of the loop [default: `5`]\r\n - x (number) x coordinate of the center of the tag loop [default: Element's `x` or `cx`]\r\n - y (number) y coordinate of the center of the tag loop [default: Element's `x` or `cx`]\r\n **\r\n = (object) path element of the tag\r\n \\*/\r\nRaphael.el.tag = function (angle, r, x, y) {\r\n var d = 3,\r\n paper = this.paper || this[0].paper;\r\n\r\n if (!paper) return;\r\n\r\n var p = paper.path().attr({ fill: '#000', stroke: '#000' }),\r\n bb = this.getBBox(),\r\n dx, R, center, tmp;\r\n\r\n switch (this.type) {\r\n case 'text':\r\n case 'circle':\r\n case 'ellipse': center = true; break;\r\n default: center = false;\r\n }\r\n\r\n angle = angle || 0;\r\n x = typeof x == 'number' ? x : (center ? bb.x + bb.width / 2 : bb.x);\r\n y = typeof y == 'number' ? y : (center ? bb.y + bb.height / 2 : bb.y);\r\n r = r == null ? 5 : r;\r\n R = .5522 * r;\r\n\r\n if (bb.height >= r * 2) {\r\n p.attr({\r\n path: [\r\n \"M\", x, y + r,\r\n \"a\", r, r, 0, 1, 1, 0, -r * 2, r, r, 0, 1, 1, 0, r * 2,\r\n \"m\", 0, -r * 2 - d,\r\n \"a\", r + d, r + d, 0, 1, 0, 0, (r + d) * 2,\r\n \"L\", x + r + d, y + bb.height / 2 + d,\r\n \"l\", bb.width + 2 * d, 0, 0, -bb.height - 2 * d, -bb.width - 2 * d, 0,\r\n \"L\", x, y - r - d\r\n ].join(\",\")\r\n });\r\n } else {\r\n dx = Math.sqrt(Math.pow(r + d, 2) - Math.pow(bb.height / 2 + d, 2));\r\n p.attr({\r\n path: [\r\n \"M\", x, y + r,\r\n \"c\", -R, 0, -r, R - r, -r, -r, 0, -R, r - R, -r, r, -r, R, 0, r, r - R, r, r, 0, R, R - r, r, -r, r,\r\n \"M\", x + dx, y - bb.height / 2 - d,\r\n \"a\", r + d, r + d, 0, 1, 0, 0, bb.height + 2 * d,\r\n \"l\", r + d - dx + bb.width + 2 * d, 0, 0, -bb.height - 2 * d,\r\n \"L\", x + dx, y - bb.height / 2 - d\r\n ].join(\",\")\r\n });\r\n }\r\n\r\n angle = 360 - angle;\r\n p.rotate(angle, x, y);\r\n\r\n if (this.attrs) {\r\n //elements\r\n this.attr(this.attrs.x ? 'x' : 'cx', x + r + d + (!center ? this.type == 'text' ? bb.width : 0 : bb.width / 2)).attr('y', center ? y : y - bb.height / 2);\r\n this.rotate(angle, x, y);\r\n angle > 90 && angle < 270 && this.attr(this.attrs.x ? 'x' : 'cx', x - r - d - (!center ? bb.width : bb.width / 2)).rotate(180, x, y);\r\n } else {\r\n //sets\r\n if (angle > 90 && angle < 270) {\r\n this.translate(x - bb.x - bb.width - r - d, y - bb.y - bb.height / 2);\r\n this.rotate(angle - 180, bb.x + bb.width + r + d, bb.y + bb.height / 2);\r\n } else {\r\n this.translate(x - bb.x + r + d, y - bb.y - bb.height / 2);\r\n this.rotate(angle, bb.x - r - d, bb.y + bb.height / 2);\r\n }\r\n }\r\n\r\n return p.insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\\\r\n * Element.drop\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'drop' tooltip. Can also be used on sets.\r\n **\r\n > Parameters\r\n **\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n - x (number) x coordinate of the drop's point [default: Element's `x` or `cx`]\r\n - y (number) y coordinate of the drop's point [default: Element's `x` or `cx`]\r\n **\r\n = (object) path element of the drop\r\n \\*/\r\nRaphael.el.drop = function (angle, x, y) {\r\n var bb = this.getBBox(),\r\n paper = this.paper || this[0].paper,\r\n center, size, p, dx, dy;\r\n\r\n if (!paper) return;\r\n\r\n switch (this.type) {\r\n case 'text':\r\n case 'circle':\r\n case 'ellipse': center = true; break;\r\n default: center = false;\r\n }\r\n\r\n angle = angle || 0;\r\n\r\n x = typeof x == 'number' ? x : (center ? bb.x + bb.width / 2 : bb.x);\r\n y = typeof y == 'number' ? y : (center ? bb.y + bb.height / 2 : bb.y);\r\n size = Math.max(bb.width, bb.height) + Math.min(bb.width, bb.height);\r\n p = paper.path([\r\n \"M\", x, y,\r\n \"l\", size, 0,\r\n \"A\", size * .4, size * .4, 0, 1, 0, x + size * .7, y - size * .7,\r\n \"z\"\r\n ]).attr({ fill: \"#000\", stroke: \"none\" }).rotate(22.5 - angle, x, y);\r\n\r\n angle = (angle + 90) * Math.PI / 180;\r\n dx = (x + size * Math.sin(angle)) - (center ? 0 : bb.width / 2);\r\n dy = (y + size * Math.cos(angle)) - (center ? 0 : bb.height / 2);\r\n\r\n this.attrs ?\r\n this.attr(this.attrs.x ? 'x' : 'cx', dx).attr(this.attrs.y ? 'y' : 'cy', dy) :\r\n this.translate(dx - bb.x, dy - bb.y);\r\n\r\n return p.insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\\\r\n * Element.flag\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'flag' tooltip. Can also be used on sets.\r\n **\r\n > Parameters\r\n **\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n - x (number) x coordinate of the flag's point [default: Element's `x` or `cx`]\r\n - y (number) y coordinate of the flag's point [default: Element's `x` or `cx`]\r\n **\r\n = (object) path element of the flag\r\n \\*/\r\nRaphael.el.flag = function (angle, x, y) {\r\n var d = 3,\r\n paper = this.paper || this[0].paper;\r\n\r\n if (!paper) return;\r\n\r\n var p = paper.path().attr({ fill: '#000', stroke: '#000' }),\r\n bb = this.getBBox(),\r\n h = bb.height / 2,\r\n center;\r\n\r\n switch (this.type) {\r\n case 'text':\r\n case 'circle':\r\n case 'ellipse': center = true; break;\r\n default: center = false;\r\n }\r\n\r\n angle = angle || 0;\r\n x = typeof x == 'number' ? x : (center ? bb.x + bb.width / 2 : bb.x);\r\n y = typeof y == 'number' ? y : (center ? bb.y + bb.height / 2 : bb.y);\r\n\r\n p.attr({\r\n path: [\r\n \"M\", x, y,\r\n \"l\", h + d, -h - d, bb.width + 2 * d, 0, 0, bb.height + 2 * d, -bb.width - 2 * d, 0,\r\n \"z\"\r\n ].join(\",\")\r\n });\r\n\r\n angle = 360 - angle;\r\n p.rotate(angle, x, y);\r\n\r\n if (this.attrs) {\r\n //elements\r\n this.attr(this.attrs.x ? 'x' : 'cx', x + h + d + (!center ? this.type == 'text' ? bb.width : 0 : bb.width / 2)).attr('y', center ? y : y - bb.height / 2);\r\n this.rotate(angle, x, y);\r\n angle > 90 && angle < 270 && this.attr(this.attrs.x ? 'x' : 'cx', x - h - d - (!center ? bb.width : bb.width / 2)).rotate(180, x, y);\r\n } else {\r\n //sets\r\n if (angle > 90 && angle < 270) {\r\n this.translate(x - bb.x - bb.width - h - d, y - bb.y - bb.height / 2);\r\n this.rotate(angle - 180, bb.x + bb.width + h + d, bb.y + bb.height / 2);\r\n } else {\r\n this.translate(x - bb.x + h + d, y - bb.y - bb.height / 2);\r\n this.rotate(angle, bb.x - h - d, bb.y + bb.height / 2);\r\n }\r\n }\r\n\r\n return p.insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\\\r\n * Element.label\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'label' tooltip. Can also be used on sets.\r\n **\r\n = (object) path element of the label.\r\n \\*/\r\nRaphael.el.label = function () {\r\n var bb = this.getBBox(),\r\n paper = this.paper || this[0].paper,\r\n r = Math.min(20, bb.width + 10, bb.height + 10) / 2;\r\n\r\n if (!paper) return;\r\n\r\n return paper.rect(bb.x - r / 2, bb.y - r / 2, bb.width + r, bb.height + r, r).attr({ stroke: 'none', fill: '#000' }).insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\\\r\n * Element.blob\r\n [ method ]\r\n **\r\n * Puts the context Element in a 'blob' tooltip. Can also be used on sets.\r\n **\r\n > Parameters\r\n **\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n - x (number) x coordinate of the blob's tail [default: Element's `x` or `cx`]\r\n - y (number) y coordinate of the blob's tail [default: Element's `x` or `cx`]\r\n **\r\n = (object) path element of the blob\r\n \\*/\r\nRaphael.el.blob = function (angle, x, y) {\r\n var bb = this.getBBox(),\r\n rad = Math.PI / 180,\r\n paper = this.paper || this[0].paper,\r\n p, center, size;\r\n\r\n if (!paper) return;\r\n\r\n switch (this.type) {\r\n case 'text':\r\n case 'circle':\r\n case 'ellipse': center = true; break;\r\n default: center = false;\r\n }\r\n\r\n p = paper.path().attr({ fill: \"#000\", stroke: \"none\" });\r\n angle = (+angle + 1 ? angle : 45) + 90;\r\n size = Math.min(bb.height, bb.width);\r\n x = typeof x == 'number' ? x : (center ? bb.x + bb.width / 2 : bb.x);\r\n y = typeof y == 'number' ? y : (center ? bb.y + bb.height / 2 : bb.y);\r\n\r\n var w = Math.max(bb.width + size, size * 25 / 12),\r\n h = Math.max(bb.height + size, size * 25 / 12),\r\n x2 = x + size * Math.sin((angle - 22.5) * rad),\r\n y2 = y + size * Math.cos((angle - 22.5) * rad),\r\n x1 = x + size * Math.sin((angle + 22.5) * rad),\r\n y1 = y + size * Math.cos((angle + 22.5) * rad),\r\n dx = (x1 - x2) / 2,\r\n dy = (y1 - y2) / 2,\r\n rx = w / 2,\r\n ry = h / 2,\r\n k = -Math.sqrt(Math.abs(rx * rx * ry * ry - rx * rx * dy * dy - ry * ry * dx * dx) / (rx * rx * dy * dy + ry * ry * dx * dx)),\r\n cx = k * rx * dy / ry + (x1 + x2) / 2,\r\n cy = k * -ry * dx / rx + (y1 + y2) / 2;\r\n\r\n p.attr({\r\n x: cx,\r\n y: cy,\r\n path: [\r\n \"M\", x, y,\r\n \"L\", x1, y1,\r\n \"A\", rx, ry, 0, 1, 1, x2, y2,\r\n \"z\"\r\n ].join(\",\")\r\n });\r\n\r\n this.translate(cx - bb.x - bb.width / 2, cy - bb.y - bb.height / 2);\r\n\r\n return p.insertBefore(this.node ? this : this[0]);\r\n};\r\n\r\n/*\r\n * Tooltips on Paper prototype\r\n */\r\n/*\\\r\n * Paper.label\r\n [ method ]\r\n **\r\n * Puts the given `text` into a 'label' tooltip. The text is given a default style according to @g.txtattr. See @Element.label\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the center of the label\r\n - y (number) y coordinate of the center of the label\r\n - text (string) text to place inside the label\r\n **\r\n = (object) set containing the label path and the text element\r\n > Usage\r\n | paper.label(50, 50, \"$9.99\");\r\n \\*/\r\nRaphael.fn.label = function (x, y, text) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.label(), text);\r\n};\r\n\r\n/*\\\r\n * Paper.popup\r\n [ method ]\r\n **\r\n * Puts the given `text` into a 'popup' tooltip. The text is given a default style according to @g.txtattr. See @Element.popup\r\n *\r\n * Note: The `dir` parameter has changed from g.Raphael 0.4.1 to 0.5. The options `0`, `1`, `2`, and `3` has been changed to `'down'`, `'left'`, `'up'`, and `'right'` respectively.\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the popup's tail\r\n - y (number) y coordinate of the popup's tail\r\n - text (string) text to place inside the popup\r\n - dir (string) location of the text relative to the tail: `'down'`, `'left'`, `'up'` [default], or `'right'`.\r\n - size (number) amount of padding around the Element [default: `5`]\r\n **\r\n = (object) set containing the popup path and the text element\r\n > Usage\r\n | paper.popup(50, 50, \"$9.99\", 'down');\r\n \\*/\r\nRaphael.fn.popup = function (x, y, text, dir, size) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.popup(dir, size), text);\r\n};\r\n\r\n/*\\\r\n * Paper.tag\r\n [ method ]\r\n **\r\n * Puts the given text into a 'tag' tooltip. The text is given a default style according to @g.txtattr. See @Element.tag\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the center of the tag loop\r\n - y (number) y coordinate of the center of the tag loop\r\n - text (string) text to place inside the tag\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n - r (number) radius of the loop [default: `5`]\r\n **\r\n = (object) set containing the tag path and the text element\r\n > Usage\r\n | paper.tag(50, 50, \"$9.99\", 60);\r\n \\*/\r\nRaphael.fn.tag = function (x, y, text, angle, r) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.tag(angle, r), text);\r\n};\r\n\r\n/*\\\r\n * Paper.flag\r\n [ method ]\r\n **\r\n * Puts the given `text` into a 'flag' tooltip. The text is given a default style according to @g.txtattr. See @Element.flag\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the flag's point\r\n - y (number) y coordinate of the flag's point\r\n - text (string) text to place inside the flag\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n **\r\n = (object) set containing the flag path and the text element\r\n > Usage\r\n | paper.flag(50, 50, \"$9.99\", 60);\r\n \\*/\r\nRaphael.fn.flag = function (x, y, text, angle) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.flag(angle), text);\r\n};\r\n\r\n/*\\\r\n * Paper.drop\r\n [ method ]\r\n **\r\n * Puts the given text into a 'drop' tooltip. The text is given a default style according to @g.txtattr. See @Element.drop\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the drop's point\r\n - y (number) y coordinate of the drop's point\r\n - text (string) text to place inside the drop\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n **\r\n = (object) set containing the drop path and the text element\r\n > Usage\r\n | paper.drop(50, 50, \"$9.99\", 60);\r\n \\*/\r\nRaphael.fn.drop = function (x, y, text, angle) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.drop(angle), text);\r\n};\r\n\r\n/*\\\r\n * Paper.blob\r\n [ method ]\r\n **\r\n * Puts the given text into a 'blob' tooltip. The text is given a default style according to @g.txtattr. See @Element.blob\r\n **\r\n > Parameters\r\n **\r\n - x (number) x coordinate of the blob's tail\r\n - y (number) y coordinate of the blob's tail\r\n - text (string) text to place inside the blob\r\n - angle (number) angle of orientation in degrees [default: `0`]\r\n **\r\n = (object) set containing the blob path and the text element\r\n > Usage\r\n | paper.blob(50, 50, \"$9.99\", 60);\r\n \\*/\r\nRaphael.fn.blob = function (x, y, text, angle) {\r\n var set = this.set();\r\n\r\n text = this.text(x, y, text).attr(Raphael.g.txtattr);\r\n return set.push(text.blob(angle), text);\r\n};\r\n\r\n/**\r\n * Brightness functions on the Element prototype\r\n */\r\n/*\\\r\n * Element.lighter\r\n [ method ]\r\n **\r\n * Makes the context element lighter by increasing the brightness and reducing the saturation by a given factor. Can be called on Sets.\r\n **\r\n > Parameters\r\n **\r\n - times (number) adjustment factor [default: `2`]\r\n **\r\n = (object) Element\r\n > Usage\r\n | paper.circle(50, 50, 20).attr({\r\n | fill: \"#ff0000\",\r\n | stroke: \"#fff\",\r\n | \"stroke-width\": 2\r\n | }).lighter(6);\r\n \\*/\r\nRaphael.el.lighter = function (times) {\r\n times = times || 2;\r\n\r\n var fs = [this.attrs.fill, this.attrs.stroke];\r\n\r\n this.fs = this.fs || [fs[0], fs[1]];\r\n\r\n fs[0] = Raphael.rgb2hsb(Raphael.getRGB(fs[0]).hex);\r\n fs[1] = Raphael.rgb2hsb(Raphael.getRGB(fs[1]).hex);\r\n fs[0].b = Math.min(fs[0].b * times, 1);\r\n fs[0].s = fs[0].s / times;\r\n fs[1].b = Math.min(fs[1].b * times, 1);\r\n fs[1].s = fs[1].s / times;\r\n\r\n this.attr({ fill: \"hsb(\" + [fs[0].h, fs[0].s, fs[0].b] + \")\", stroke: \"hsb(\" + [fs[1].h, fs[1].s, fs[1].b] + \")\" });\r\n return this;\r\n};\r\n\r\n/*\\\r\n * Element.darker\r\n [ method ]\r\n **\r\n * Makes the context element darker by decreasing the brightness and increasing the saturation by a given factor. Can be called on Sets.\r\n **\r\n > Parameters\r\n **\r\n - times (number) adjustment factor [default: `2`]\r\n **\r\n = (object) Element\r\n > Usage\r\n | paper.circle(50, 50, 20).attr({\r\n | fill: \"#ff0000\",\r\n | stroke: \"#fff\",\r\n | \"stroke-width\": 2\r\n | }).darker(6);\r\n \\*/\r\nRaphael.el.darker = function (times) {\r\n times = times || 2;\r\n\r\n var fs = [this.attrs.fill, this.attrs.stroke];\r\n\r\n this.fs = this.fs || [fs[0], fs[1]];\r\n\r\n fs[0] = Raphael.rgb2hsb(Raphael.getRGB(fs[0]).hex);\r\n fs[1] = Raphael.rgb2hsb(Raphael.getRGB(fs[1]).hex);\r\n fs[0].s = Math.min(fs[0].s * times, 1);\r\n fs[0].b = fs[0].b / times;\r\n fs[1].s = Math.min(fs[1].s * times, 1);\r\n fs[1].b = fs[1].b / times;\r\n\r\n this.attr({ fill: \"hsb(\" + [fs[0].h, fs[0].s, fs[0].b] + \")\", stroke: \"hsb(\" + [fs[1].h, fs[1].s, fs[1].b] + \")\" });\r\n return this;\r\n};\r\n\r\n/*\\\r\n * Element.resetBrightness\r\n [ method ]\r\n **\r\n * Resets brightness and saturation levels to their original values. See @Element.lighter and @Element.darker. Can be called on Sets.\r\n **\r\n = (object) Element\r\n > Usage\r\n | paper.circle(50, 50, 20).attr({\r\n | fill: \"#ff0000\",\r\n | stroke: \"#fff\",\r\n | \"stroke-width\": 2\r\n | }).lighter(6).resetBrightness();\r\n \\*/\r\nRaphael.el.resetBrightness = function () {\r\n if (this.fs) {\r\n this.attr({ fill: this.fs[0], stroke: this.fs[1] });\r\n delete this.fs;\r\n }\r\n return this;\r\n};\r\n\r\n//alias to set prototype\r\n(function () {\r\n var brightness = ['lighter', 'darker', 'resetBrightness'],\r\n tooltips = ['popup', 'tag', 'flag', 'label', 'drop', 'blob'];\r\n\r\n for (var f in tooltips) (function (name) {\r\n Raphael.st[name] = function () {\r\n return Raphael.el[name].apply(this, arguments);\r\n };\r\n })(tooltips[f]);\r\n\r\n for (var f in brightness) (function (name) {\r\n Raphael.st[name] = function () {\r\n for (var i = 0; i < this.length; i++) {\r\n this[i][name].apply(this[i], arguments);\r\n }\r\n\r\n return this;\r\n };\r\n })(brightness[f]);\r\n})();\r\n\r\n//chart prototype for storing common functions\r\nRaphael.g = {\r\n /*\\\r\n * g.shim\r\n [ object ]\r\n **\r\n * An attribute object that charts will set on all generated shims (shims being the invisible objects that mouse events are bound to)\r\n **\r\n > Default value\r\n | { stroke: 'none', fill: '#000', 'fill-opacity': 0 }\r\n \\*/\r\n shim: { stroke: 'none', fill: '#000', 'fill-opacity': 0 },\r\n\r\n /*\\\r\n * g.txtattr\r\n [ object ]\r\n **\r\n * An attribute object that charts and tooltips will set on any generated text\r\n **\r\n > Default value\r\n | { font: '12px Arial, sans-serif', fill: '#fff' }\r\n \\*/\r\n txtattr: { font: '12px Arial, sans-serif', fill: '#fff' },\r\n\r\n /*\\\r\n * g.colors\r\n [ array ]\r\n **\r\n * An array of color values that charts will iterate through when drawing chart data values.\r\n **\r\n \\*/\r\n colors: (function () {\r\n var hues = [.6, .2, .05, .1333, .75, 0],\r\n colors = [];\r\n\r\n for (var i = 0; i < 10; i++) {\r\n if (i < hues.length) {\r\n colors.push('hsb(' + hues[i] + ',.75, .75)');\r\n } else {\r\n colors.push('hsb(' + hues[i - hues.length] + ', 1, .5)');\r\n }\r\n }\r\n\r\n return colors;\r\n })(),\r\n\r\n snapEnds: function (from, to, steps) {\r\n var f = from,\r\n t = to;\r\n\r\n if (f == t) {\r\n return { from: f, to: t, power: 0 };\r\n }\r\n\r\n function round(a) {\r\n return Math.abs(a - .5) < .25 ? ~~(a) + .5 : Math.round(a);\r\n }\r\n\r\n var d = (t - f) / steps,\r\n r = ~~(d),\r\n R = r,\r\n i = 0;\r\n\r\n if (r) {\r\n while (R) {\r\n i--;\r\n R = ~~(d * Math.pow(10, i)) / Math.pow(10, i);\r\n }\r\n\r\n i++;\r\n } else {\r\n if (d == 0 || !isFinite(d)) {\r\n i = 1;\r\n } else {\r\n while (!r) {\r\n i = i || 1;\r\n r = ~~(d * Math.pow(10, i)) / Math.pow(10, i);\r\n i++;\r\n }\r\n }\r\n\r\n i && i--;\r\n }\r\n\r\n t = round(to * Math.pow(10, i)) / Math.pow(10, i);\r\n\r\n if (t < to) {\r\n t = round((to + .5) * Math.pow(10, i)) / Math.pow(10, i);\r\n }\r\n\r\n f = round((from - (i > 0 ? 0 : .5)) * Math.pow(10, i)) / Math.pow(10, i);\r\n return { from: f, to: t, power: i };\r\n },\r\n\r\n axis: function (x, y, length, from, to, steps, orientation, labels, type, dashsize, paper) {\r\n dashsize = dashsize == null ? 2 : dashsize;\r\n type = type || \"t\";\r\n steps = steps || 10;\r\n paper = arguments[arguments.length - 1] //paper is always last argument\r\n\r\n var path = type == \"|\" || type == \" \" ? [\"M\", x + .5, y, \"l\", 0, .001] : orientation == 1 || orientation == 3 ? [\"M\", x + .5, y, \"l\", 0, -length] : [\"M\", x, y + .5, \"l\", length, 0],\r\n ends = this.snapEnds(from, to, steps),\r\n f = ends.from,\r\n t = ends.to,\r\n i = ends.power,\r\n j = 0,\r\n txtattr = { font: \"11px 'Fontin Sans', Fontin-Sans, sans-serif\" },\r\n text = paper.set(),\r\n d;\r\n\r\n d = (t - f) / steps;\r\n\r\n var label = f,\r\n rnd = i > 0 ? i : 0;\r\n dx = length / steps;\r\n\r\n if (+orientation == 1 || +orientation == 3) {\r\n var Y = y,\r\n addon = (orientation - 1 ? 1 : -1) * (dashsize + 3 + !!(orientation - 1));\r\n\r\n while (Y >= y - length) {\r\n type != \"-\" && type != \" \" && (path = path.concat([\"M\", x - (type == \"+\" || type == \"|\" ? dashsize : !(orientation - 1) * dashsize * 2), Y + .5, \"l\", dashsize * 2 + 1, 0]));\r\n text.push(paper.text(x + addon, Y, (labels && labels[j++]) || (Math.round(label) == label ? label : +label.toFixed(rnd))).attr(txtattr).attr({ \"text-anchor\": orientation - 1 ? \"start\" : \"end\" }));\r\n label += d;\r\n Y -= dx;\r\n }\r\n\r\n if (Math.round(Y + dx - (y - length))) {\r\n type != \"-\" && type != \" \" && (path = path.concat([\"M\", x - (type == \"+\" || type == \"|\" ? dashsize : !(orientation - 1) * dashsize * 2), y - length + .5, \"l\", dashsize * 2 + 1, 0]));\r\n text.push(paper.text(x + addon, y - length, (labels && labels[j]) || (Math.round(label) == label ? label : +label.toFixed(rnd))).attr(txtattr).attr({ \"text-anchor\": orientation - 1 ? \"start\" : \"end\" }));\r\n }\r\n } else {\r\n label = f;\r\n rnd = (i > 0) * i;\r\n addon = (orientation ? -1 : 1) * (dashsize + 9 + !orientation);\r\n\r\n var X = x,\r\n dx = length / steps,\r\n txt = 0,\r\n prev = 0;\r\n\r\n while (X <= x + length) {\r\n type != \"-\" && type != \" \" && (path = path.concat([\"M\", X + .5, y - (type == \"+\" ? dashsize : !!orientation * dashsize * 2), \"l\", 0, dashsize * 2 + 1]));\r\n text.push(txt = paper.text(X, y + addon, (labels && labels[j++]) || (Math.round(label) == label ? label : +label.toFixed(rnd))).attr(txtattr));\r\n\r\n var bb = txt.getBBox();\r\n\r\n if (prev >= bb.x - 5) {\r\n text.pop(text.length - 1).remove();\r\n } else {\r\n prev = bb.x + bb.width;\r\n }\r\n\r\n label += d;\r\n X += dx;\r\n }\r\n\r\n if (Math.round(X - dx - x - length)) {\r\n type != \"-\" && type != \" \" && (path = path.concat([\"M\", x + length + .5, y - (type == \"+\" ? dashsize : !!orientation * dashsize * 2), \"l\", 0, dashsize * 2 + 1]));\r\n text.push(paper.text(x + length, y + addon, (labels && labels[j]) || (Math.round(label) == label ? label : +label.toFixed(rnd))).attr(txtattr));\r\n }\r\n }\r\n\r\n var res = paper.path(path);\r\n\r\n res.text = text;\r\n res.all = paper.set([res, text]);\r\n res.remove = function () {\r\n this.text.remove();\r\n this.constructor.prototype.remove.call(this);\r\n };\r\n\r\n return res;\r\n },\r\n\r\n labelise: function (label, val, total) {\r\n if (label) {\r\n return (label + \"\").replace(/(##+(?:\\.#+)?)|(%%+(?:\\.%+)?)/g, function (all, value, percent) {\r\n if (value) {\r\n return (+val).toFixed(value.replace(/^#+\\.?/g, \"\").length);\r\n }\r\n if (percent) {\r\n return (val * 100 / total).toFixed(percent.replace(/^%+\\.?/g, \"\").length) + \"%\";\r\n }\r\n });\r\n } else {\r\n return (+val).toFixed(0);\r\n }\r\n }\r\n}","/*!\r\n * g.Raphael 0.51 - Charting library, based on Raphaël\r\n *\r\n * Copyright (c) 2009-2012 Dmitry Baranovskiy (http://g.raphaeljs.com)\r\n * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.\r\n */\r\n\r\n/*\r\n* piechart method on paper\r\n*/\r\n/*\\\r\n * Paper.piechart\r\n [ method ]\r\n **\r\n * Creates a pie chart\r\n **\r\n > Parameters\r\n **\r\n - cx (number) x coordinate of the chart\r\n - cy (number) y coordinate of the chart\r\n - r (integer) radius of the chart\r\n - values (array) values used to plot\r\n - opts (object) options for the chart\r\n o {\r\n o minPercent (number) minimal percent threshold which will have a slice rendered. Sliced corresponding to data points below this threshold will be collapsed into 1 additional slice. [default `1`]\r\n o maxSlices (number) a threshold for how many slices should be rendered before collapsing all remaining slices into 1 additional slice (to focus on most important data points). [default `100`]\r\n o stroke (string) color of the circle stroke in HTML color format [default `\"#FFF\"`]\r\n o strokewidth (integer) width of the chart stroke [default `1`]\r\n o init (boolean) whether or not to show animation when the chart is ready [default `false`]\r\n o colors (array) colors be used to plot the chart\r\n o href (array) urls to to set up clicks on chart slices\r\n o legend (array) array containing strings that will be used in a legend. Other label options work if legend is defined.\r\n o legendcolor (string) color of text in legend [default `\"#000\"`]\r\n o legendothers (string) text that will be used in legend to describe options that are collapsed into 1 slice, because they are too small to render [default `\"Others\"`]\r\n o legendmark (string) symbol used as a bullet point in legend that has the same colour as the chart slice [default `\"circle\"`]\r\n o legendpos (string) position of the legend on the chart [default `\"east\"`]. Other options are `\"north\"`, `\"south\"`, `\"west\"`\r\n o }\r\n **\r\n = (object) path element of the popup\r\n > Usage\r\n | r.piechart(cx, cy, r, values, opts)\r\n \\*/\r\n; (function () { // <--- ASH added defensive semicolon\r\n\r\n function Piechart(paper, cx, cy, r, values, opts) {\r\n opts = opts || {};\r\n var chartinst = this,\r\n sectors = [],\r\n covers = paper.set(),\r\n chart = paper.set(),\r\n series = paper.set(),\r\n order = [],\r\n angle = 0,\r\n total = 0,\r\n others = 0,\r\n cut = opts.maxSlices || 100,\r\n minPercent = parseFloat(opts.minPercent) || 1,\r\n defcut = Boolean(minPercent),\r\n //ASH added donut options below\r\n donut = opts.donut || false, // default to false\r\n donutDiameter = opts.donutDiameter || 0.6666, // percentage of the pie charts width\r\n donutFill = opts.donutFill || \"#FFFFFF\",// the color of the donut 'hole'\r\n donutMet = opts.donutMet,\r\n donutMetPercent = (opts.donutMetPercent == null) ? null : ((opts.donutMetPercent < 0.1) ? donutMetPercent = 0.1 : opts.donutMetPercent), //DOUBLE IF! 1.check for undefined or null so a percent of 0 can be passed 2. if percent is 0, chart will not draw. use == null || undefined other null === null and evaluates to < 0.1 \r\n donutMetNumber,\r\n donutXStart,\r\n contHeight,\r\n contWidth,\r\n len = (donutMetPercent && values.length > 10) ? 10 : values.length, //if percentage is used and the chart value is greater than 10 : set length to 10 , else set length to the chart value\r\n goalMet = opts.goalMet || false,\r\n showMax = typeof opts.showMax === 'undefined' ? true : opts.showMax,\r\n donutMetColor = opts.donutMetColor || $$ashChartOpts.donut.fillColor || '#cccccc',\r\n fontColor = opts.fontColor || $$ashChartOpts.donut.fontColor || donutMetColor,\r\n donutUnit = opts.donutUnit || null,\r\n donutAction = opts.donutAction || '',\r\n donutTotal = opts.donutTotal,\r\n donutEmptyColor = opts.donutEmptyColor || $$ashChartOpts.donut.bgColor || '#f1f1f1',\r\n metStroke = $$ashChartOpts.donut.gap === false ? donutMetColor : null,\r\n emptyStroke = $$ashChartOpts.donut.gap === false ? donutEmptyColor : null,\r\n strokewidth = $$ashChartOpts.donut.gap === false ? 1.15 : null,\r\n capitalize = $$ashChartOpts.donut.capitalize === true ? true : false,\r\n secondaryTextSize = $$ashChartOpts.donut.secondaryTextSize || 0.6,\r\n metSvg = opts.metSvg,\r\n metHtml = opts.metHtml,\r\n zeroOfOne = false, //0 of 1 donut displays a full donut. this is part of the workaround\r\n reverseColors = opts.reverseColors,\r\n primaryText, //larger first line in middle of donut\r\n secondaryText, //smaller second line\r\n fontFam = opts.fontFam || $$ashChartOpts.donut.fontFam || 'sans-serif',\r\n fontWeight, //IE8 renders bold font much too bold\r\n p, //raphael paper, \r\n temp,\r\n ipath;\r\n\r\n //if data isn't using percent when count is > 100, force it to. otherwise the page may freeze and have a hard time rendering 100k elements\r\n if (len >= 100) {\r\n donutMetPercent = donutMet / len * 100;\r\n len = 10;\r\n }\r\n\r\n if (Modernizr.svg) {\r\n fontWeight = $$ashChartOpts.donut.fontWeight || 'bold';\r\n } else {\r\n fontWeight = 'normal';\r\n }\r\n\r\n if (donut) {\r\n cut = len;\r\n donutXStart = paper.width / 2;\r\n }\r\n\r\n if (reverseColors) {\r\n temp = donutFill;\r\n\r\n donutFill = donutEmptyColor;\r\n donutEmptyColor = temp;\r\n }\r\n\r\n //r is set to the donutChart width. create a new var to save the contWidth and contHeight;\r\n contWidth = contHeight = r * 0.35;\r\n r = r * 0.4;\r\n\r\n function sector(cx, cy, r, startAngle, endAngle) { //\"fill\" was a 6th parameter that was not being used\r\n var rad = Math.PI / 180,\r\n x1 = cx + r * Math.cos(-startAngle * rad),\r\n x2 = cx + r * Math.cos(-endAngle * rad),\r\n xm = cx + r / 2 * Math.cos(-(startAngle + (endAngle - startAngle) / 2) * rad),\r\n y1 = cy + r * Math.sin(-startAngle * rad),\r\n y2 = cy + r * Math.sin(-endAngle * rad),\r\n ym = cy + r / 2 * Math.sin(-(startAngle + (endAngle - startAngle) / 2) * rad),\r\n res = [\r\n \"M\", cx, cy,\r\n \"L\", x1, y1,\r\n \"A\", r, r, 0, +(Math.abs(endAngle - startAngle) > 180), 1, x2, y2,\r\n \"z\"\r\n ];\r\n\r\n res.middle = { x: xm, y: ym };\r\n return res;\r\n }\r\n\r\n chart.covers = covers;\r\n if (len === 0) {\r\n //if len ===0, donut will not draw\r\n len = 1;\r\n //cut will be at 0 and donut will not draw\r\n cut = 1;\r\n //if value arr is empty, total will return nan and chart will not draw\r\n values[0] = 1;\r\n }\r\n if (len == 1 && donutMet === 0) { //if 0 or 1, add to the array length and the array to process through the logic\r\n len = 2;\r\n values.push(1);\r\n zeroOfOne = true; //set 0 of 1 flax\r\n }\r\n if (len == 1) {\r\n series.push(paper.circle(cx, cy, r).attr({ fill: donutMetColor && donutMetColor || chartinst.colors[0], stroke: opts.stroke || \"#fff\", \"stroke-width\": opts.strokewidth == null ? 1 : opts.strokewidth }));\r\n covers.push(paper.circle(cx, cy, r).attr(chartinst.shim));\r\n total = values[0];\r\n values[0] = { value: values[0], order: 0, valueOf: function () { return this.value; } };\r\n opts.href && opts.href[0] && covers[0].attr({ href: opts.href[0] });\r\n series[0].middle = { x: cx, y: cy };\r\n series[0].mangle = 180;\r\n } else {\r\n for (var i = 0; i < len; i++) {\r\n total += values[i];\r\n values[i] = { value: values[i], order: i, valueOf: function () { return this.value; } };\r\n }\r\n\r\n //values are sorted numerically\r\n values.sort(function (a, b) {\r\n return b.value - a.value;\r\n });\r\n \r\n for (i = 0; i < len; i++) {\r\n if (!donut && defcut && values[i] * 100 / total < minPercent) {\r\n cut = i;\r\n defcut = false;\r\n }\r\n\r\n if (i > cut) {\r\n defcut = false;\r\n values[cut].value += values[i];\r\n values[cut].others = true;\r\n others = values[cut].value;\r\n }\r\n }\r\n len = Math.min(cut + 1, values.length);\r\n\r\n others && values.splice(len) && (values[cut].others = true);\r\n\r\n if (donutMetPercent) {\r\n donutMetNumber = Math.floor((donutMetPercent) / 10);\r\n len = 10;\r\n } else {\r\n donutMetNumber = donutMet;\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n //ASH CHANGE DONUT START ANGLE SO PROGRESS STARTS AT 12 O'CLOCK\r\n var mangle = 0;\r\n if (!donut) {\r\n mangle = angle - 360 * values[i] / total / 2;\r\n }\r\n\r\n if (!i) {\r\n angle = 90 - mangle;\r\n mangle = angle - 360 * values[i] / total / 2;\r\n }\r\n\r\n if (opts.init) {\r\n ipath = sector(cx, cy, 1, angle, angle - 360 * values[i] / total).join(\",\");\r\n }\r\n var path = sector(donutXStart, cy, r, angle, angle -= 360 * values[i] / total);\r\n var j = (opts.matchColors && opts.matchColors == true) ? values[i].order : i;\r\n //ASH put in donut conditionals\r\n\r\n if (donut && (i <= donutMetNumber - 1)) {\r\n p = paper.path(opts.init ? ipath : path).attr({ fill: donutMetColor, stroke: metStroke || \"#fff\", \"stroke-width\": (strokewidth === null ? 0.15 : strokewidth), \"stroke-linejoin\": \"round\" });\r\n } else if (donut && (i > donutMetNumber - 1)) {\r\n p = paper.path(opts.init ? ipath : path).attr({ fill: donutEmptyColor, stroke: emptyStroke || donutEmptyColor, \"stroke-width\": (strokewidth === null ? 0.15 : strokewidth), \"stroke-linejoin\": \"round\" });\r\n }\r\n else {\r\n p = paper.path(opts.init ? ipath : path).attr({ fill: opts.colors && opts.colors[j] || chartinst.colors[j] || \"#666\", stroke: metStroke || \"#fff\", \"stroke-width\": (strokewidth === null ? 1 : opts.strokewidth), \"stroke-linejoin\": \"round\" });\r\n }\r\n\r\n p.value = values[i];\r\n p.middle = path.middle;\r\n p.mangle = mangle;\r\n sectors.push(p);\r\n series.push(p);\r\n opts.init && p.animate({ path: path.join(\",\") }, (+opts.init - 1) || 1000, \">\");\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n p = paper.path(sectors[i].attr(\"path\")).attr(chartinst.shim);\r\n opts.href && opts.href[i] && p.attr({ href: opts.href[i] });\r\n p.attr = function () { };\r\n covers.push(p);\r\n series.push(p);\r\n }\r\n }\r\n\r\n chart.hover = function (fin, fout) {\r\n fout = fout || function () { };\r\n\r\n var that = this;\r\n\r\n for (var i = 0; i < len; i++) {\r\n (function (sector, cover, j) {\r\n var o = {\r\n sector: sector,\r\n cover: cover,\r\n cx: cx,\r\n cy: cy,\r\n mx: sector.middle.x,\r\n my: sector.middle.y,\r\n mangle: sector.mangle,\r\n r: r,\r\n value: values[j],\r\n total: total,\r\n label: that.labels && that.labels[j]\r\n };\r\n cover.mouseover(function () {\r\n fin.call(o);\r\n }).mouseout(function () {\r\n fout.call(o);\r\n });\r\n })(series[i], covers[i], i);\r\n }\r\n return this;\r\n };\r\n\r\n // x: where label could be put\r\n // y: where label could be put\r\n // value: value to show\r\n // total: total number to count %\r\n chart.each = function (f) {\r\n var that = this;\r\n\r\n for (var i = 0; i < len; i++) {\r\n (function (sector, cover, j) {\r\n var o = {\r\n sector: sector,\r\n cover: cover,\r\n cx: cx,\r\n cy: cy,\r\n x: sector.middle.x,\r\n y: sector.middle.y,\r\n mangle: sector.mangle,\r\n r: r,\r\n value: values[j],\r\n total: total,\r\n label: that.labels && that.labels[j]\r\n };\r\n f.call(o);\r\n })(series[i], covers[i], i);\r\n }\r\n return this;\r\n };\r\n\r\n chart.click = function (f) {\r\n var that = this;\r\n\r\n for (var i = 0; i < len; i++) {\r\n (function (sector, cover, j) {\r\n var o = {\r\n sector: sector,\r\n cover: cover,\r\n cx: cx,\r\n cy: cy,\r\n mx: sector.middle.x,\r\n my: sector.middle.y,\r\n mangle: sector.mangle,\r\n r: r,\r\n value: values[j],\r\n total: total,\r\n label: that.labels && that.labels[j]\r\n };\r\n cover.click(function () { f.call(o); });\r\n })(series[i], covers[i], i);\r\n }\r\n return this;\r\n };\r\n\r\n chart.inject = function (element) {\r\n element.insertBefore(covers[0]);\r\n };\r\n\r\n var legend = function (labels, otherslabel, mark, dir) {\r\n var x = cx + r + r / 5,\r\n y = cy,\r\n h = y + 10;\r\n\r\n labels = labels || [];\r\n dir = (dir && dir.toLowerCase && dir.toLowerCase()) || \"east\";\r\n mark = paper[mark && mark.toLowerCase()] || \"circle\";\r\n chart.labels = paper.set();\r\n\r\n for (var i = 0; i < len; i++) {\r\n var clr = series[i].attr(\"fill\"),\r\n j = values[i].order,\r\n txt;\r\n\r\n values[i].others && (labels[j] = otherslabel || \"Others\");\r\n labels[j] = chartinst.labelise(labels[j], values[i], total);\r\n chart.labels.push(paper.set());\r\n chart.labels[i].push(paper[mark](x + 5, h, 5).attr({ fill: clr, stroke: \"none\" }));\r\n chart.labels[i].push(txt = paper.text(x + 20, h, labels[j] || values[j]).attr(chartinst.txtattr).attr({ fill: opts.legendcolor || \"#000\", \"text-anchor\": \"start\" }));\r\n covers[i].label = chart.labels[i];\r\n h += txt.getBBox().height * 1.2;\r\n }\r\n\r\n var bb = chart.labels.getBBox(),\r\n tr = {\r\n east: [0, -bb.height / 2],\r\n west: [-bb.width - 2 * r - 20, -bb.height / 2],\r\n north: [-r - bb.width / 2, -r - bb.height - 10],\r\n south: [-r - bb.width / 2, r + 10]\r\n }[dir];\r\n\r\n chart.labels.translate.apply(chart.labels, tr);\r\n chart.push(chart.labels);\r\n };\r\n\r\n if (opts.legend) {\r\n legend(opts.legend, opts.legendothers, opts.legendmark, opts.legendpos);\r\n }\r\n\r\n chart.push(series, covers);\r\n chart.series = series;\r\n chart.covers = covers;\r\n\r\n // donut chart code\r\n if (donut) {\r\n var fontSize = r * 0.25;\r\n var donutFillCirc = paper.circle(donutXStart, cy, r * donutDiameter).attr({ fill: donutFill, stroke: opts.stroke || donutFill });\r\n series.push(donutFillCirc);\r\n if (goalMet === true) {\r\n paper.text(donutXStart, donutFillCirc.attrs.cy * 1.3, ('GOAL MET')).attr({ 'font-size': (fontSize * 0.6), 'font-family': fontFam, 'font-weight': fontWeight, fill: fontColor });\r\n //add html for icon when goal is met\r\n $('body').prepend(metSvg);\r\n //important: make sure the width of infoBox is the width of the container, not paper for cases where the paper width is greater than paper height\r\n var mark = new Infobox(paper, { x: (donutXStart - ((r * donutDiameter) * donutDiameter)), y: donutFillCirc.attrs.cy * 0.6, width: contWidth, height: contHeight }); //these values are calculated in infobox to give inline styles\r\n mark.div.html(metHtml);\r\n mark.update();//Infobox method neeeded to show mark on page load\r\n } else {\r\n if (zeroOfOne) { //if 0 of 1 set length back to 1 for display\r\n len = 1;\r\n }\r\n donutMet = donutMet.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\r\n switch (donutUnit) {\r\n case '%':\r\n primaryText = donutMet + '%';\r\n secondaryText = donutAction;\r\n break;\r\n case '$':\r\n primaryText = '$' + donutMet;\r\n secondaryText = donutAction;\r\n break;\r\n default:\r\n primaryText = showMax ? (donutMet + ' of ' + donutTotal) : donutMet;\r\n secondaryText = donutUnit + ' ' + donutAction;\r\n }\r\n\r\n if (capitalize === true) {\r\n primaryText = primaryText.toUpperCase();\r\n secondaryText = secondaryText.toUpperCase();\r\n }\r\n \r\n paper.text(donutFillCirc.attrs.cx, cy - (fontSize / 2), primaryText).attr({ 'font-size': fontSize, 'font-family': fontFam, 'font-weight': fontWeight, 'fill': fontColor });\r\n paper.text(donutFillCirc.attrs.cx, cy + (fontSize / 2), secondaryText).attr({ 'font-size': (fontSize * secondaryTextSize), 'font-family': fontFam, 'font-weight': 'bold', 'text-transform': 'uppercase', 'fill': fontColor });\r\n }\r\n }\r\n\r\n return chart;\r\n }\r\n\r\n //inheritance\r\n var F = function () { };\r\n F.prototype = Raphael.g;\r\n Piechart.prototype = new F();\r\n\r\n //public\r\n Raphael.fn.piechart = function (cx, cy, r, values, opts) {\r\n return new Piechart(this, cx, cy, r, values, opts);\r\n };\r\n\r\n})();","(function (document, uses, requestAnimationFrame, CACHE, IE9TO11) {\r\n\tfunction embed(svg, g) {\r\n\t\tif (g) {\r\n\t\t\tvar\r\n\t\t\tviewBox = g.getAttribute('viewBox'),\r\n\t\t\tfragment = document.createDocumentFragment(),\r\n\t\t\tclone = g.cloneNode(true);\r\n\r\n\t\t\tif (viewBox) {\r\n\t\t\t\tsvg.setAttribute('viewBox', viewBox);\r\n\t\t\t}\r\n\r\n\t\t\twhile (clone.childNodes.length) {\r\n\t\t\t\tfragment.appendChild(clone.childNodes[0]);\r\n\t\t\t}\r\n\r\n\t\t\tsvg.appendChild(fragment);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onload() {\r\n\t\tvar xhr = this, x = document.createElement('x'), s = xhr.s;\r\n\r\n\t\tx.innerHTML = xhr.responseText;\r\n\r\n\t\txhr.onload = function () {\r\n\t\t\ts.splice(0).map(function (array) {\r\n\t\t\t\tembed(array[0], x.querySelector('#' + array[1].replace(/(\\W)/g, '\\\\$1')));\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\txhr.onload();\r\n\t}\r\n\r\n\tfunction onframe() {\r\n\t\tvar use;\r\n\r\n\t\twhile ((use = uses[0])) {\r\n\t\t\tvar\r\n\t\t\tsvg = use.parentNode,\r\n\t\t\turl = use.getAttribute('xlink:href').split('#'),\r\n\t\t\turl_root = url[0],\r\n\t\t\turl_hash = url[1];\r\n\r\n\t\t\tsvg.removeChild(use);\r\n\r\n\t\t\tif (url_root.length) {\r\n\t\t\t\tvar xhr = CACHE[url_root] = CACHE[url_root] || new XMLHttpRequest();\r\n\r\n\t\t\t\tif (!xhr.s) {\r\n\t\t\t\t\txhr.s = [];\r\n\r\n\t\t\t\t\txhr.open('GET', url_root);\r\n\r\n\t\t\t\t\txhr.onload = onload;\r\n\r\n\t\t\t\t\txhr.send();\r\n\t\t\t\t}\r\n\r\n\t\t\t\txhr.s.push([svg, url_hash]);\r\n\r\n\t\t\t\tif (xhr.readyState === 4) {\r\n\t\t\t\t\txhr.onload();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tembed(svg, document.getElementById(url_hash));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trequestAnimationFrame(onframe);\r\n\t}\r\n\r\n\tif (IE9TO11) {\r\n\t\tonframe();\r\n\t}\r\n})(\r\n\tdocument,\r\n\tdocument.getElementsByTagName('use'),\r\n\twindow.requestAnimationFrame || window.setTimeout,\r\n\t{},\r\n\t/Trident\\/[567]\\b/.test(navigator.userAgent) || (navigator.userAgent.match(/AppleWebKit\\/(\\d+)/) || [])[1] < 537\r\n);\r\n","// Copyright 2012: Kelley Reynolds, RubyScale\r\n// http://rubyscale.com/blog/2010/11/22/embedding-arbitrary-html-into-raphaeljs/\r\n\r\n// Takes a raphaeljs object, some options, and some container attributes\r\nfunction Infobox(r, options, attrs) {\r\n options = options || {};\r\n attrs = attrs || {};\r\n this.paper = r;\r\n this.x = options.x || 0;\r\n this.y = options.y || 0;\r\n this.width = options.width || this.paper.width;\r\n this.height = options.height || this.paper.height;\r\n this.rounding = options.rounding || 0;\r\n this.show_border = options.with_border || false;\r\n this.container = this.paper.rect(this.x, this.y, this.width, this.height, this.rounding).attr(attrs);\r\n var container_id = this.container.node.parentNode.parentNode.id;\r\n container_id = container_id || this.container.node.parentNode.parentNode.parentNode.id;\r\n this.raph_container = jQuery('#' + container_id);\r\n\r\n if (!this.show_border) { this.container.hide(); }\r\n\r\n this.div = jQuery('
      ').appendTo(this.raph_container);//ASH change overflow from auto to hidden\r\n}\r\n\r\nInfobox.prototype.update = function () {\r\n var offset = this.raph_container.offset();\r\n this.div.css({\r\n 'top': (this.y + (this.rounding)) + 'px',\r\n 'left': (this.x + (this.rounding)) + 'px',\r\n 'height': (this.height - (this.rounding * 2) + 'px'),\r\n 'width': (this.width - (this.rounding * 2) + 'px')\r\n});\r\n}\r\n\r\n// Note that the fadein/outs for the content div are at double speed. With frequent animations, it gives the best behavior\r\nInfobox.prototype.show = function () {\r\n this.container.animate({ opacity: 1 }, 400, \">\");\r\n this.div.fadeIn(200);\r\n}\r\n\r\nInfobox.prototype.hide = function () {\r\n this.container.animate({ opacity: 0 }, 400, \">\");\r\n this.div.fadeOut(200);\r\n}","/*\r\n * jQuery FlexSlider v2.2.2\r\n * Copyright 2012 WooThemes\r\n * Contributing Author: Tyler Smith\r\n */\r\n!function(a){a.flexslider=function(b,c){var d=a(b);d.vars=a.extend({},a.flexslider.defaults,c);var j,e=d.vars.namespace,f=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,g=(\"ontouchstart\"in window||f||window.DocumentTouch&&document instanceof DocumentTouch)&&d.vars.touch,h=\"click touchend MSPointerUp\",i=\"\",k=\"vertical\"===d.vars.direction,l=d.vars.reverse,m=d.vars.itemWidth>0,n=\"fade\"===d.vars.animation,o=\"\"!==d.vars.asNavFor,p={},q=!0;a.data(b,\"flexslider\",d),p={init:function(){d.animating=!1,d.currentSlide=parseInt(d.vars.startAt?d.vars.startAt:0,10),isNaN(d.currentSlide)&&(d.currentSlide=0),d.animatingTo=d.currentSlide,d.atEnd=0===d.currentSlide||d.currentSlide===d.last,d.containerSelector=d.vars.selector.substr(0,d.vars.selector.search(\" \")),d.slides=a(d.vars.selector,d),d.container=a(d.containerSelector,d),d.count=d.slides.length,d.syncExists=a(d.vars.sync).length>0,\"slide\"===d.vars.animation&&(d.vars.animation=\"swing\"),d.prop=k?\"top\":\"marginLeft\",d.args={},d.manualPause=!1,d.stopped=!1,d.started=!1,d.startTimeout=null,d.transitions=!d.vars.video&&!n&&d.vars.useCSS&&function(){var a=document.createElement(\"div\"),b=[\"perspectiveProperty\",\"WebkitPerspective\",\"MozPerspective\",\"OPerspective\",\"msPerspective\"];for(var c in b)if(void 0!==a.style[b[c]])return d.pfx=b[c].replace(\"Perspective\",\"\").toLowerCase(),d.prop=\"-\"+d.pfx+\"-transform\",!0;return!1}(),d.ensureAnimationEnd=\"\",\"\"!==d.vars.controlsContainer&&(d.controlsContainer=a(d.vars.controlsContainer).length>0&&a(d.vars.controlsContainer)),\"\"!==d.vars.manualControls&&(d.manualControls=a(d.vars.manualControls).length>0&&a(d.vars.manualControls)),d.vars.randomize&&(d.slides.sort(function(){return Math.round(Math.random())-.5}),d.container.empty().append(d.slides)),d.doMath(),d.setup(\"init\"),d.vars.controlNav&&p.controlNav.setup(),d.vars.directionNav&&p.directionNav.setup(),d.vars.keyboard&&(1===a(d.containerSelector).length||d.vars.multipleKeyboard)&&a(document).bind(\"keyup\",function(a){var b=a.keyCode;if(!d.animating&&(39===b||37===b)){var c=39===b?d.getTarget(\"next\"):37===b?d.getTarget(\"prev\"):!1;d.flexAnimate(c,d.vars.pauseOnAction)}}),d.vars.mousewheel&&d.bind(\"mousewheel\",function(a,b){a.preventDefault();var f=0>b?d.getTarget(\"next\"):d.getTarget(\"prev\");d.flexAnimate(f,d.vars.pauseOnAction)}),d.vars.pausePlay&&p.pausePlay.setup(),d.vars.slideshow&&d.vars.pauseInvisible&&p.pauseInvisible.init(),d.vars.slideshow&&(d.vars.pauseOnHover&&d.hover(function(){d.manualPlay||d.manualPause||d.pause()},function(){d.manualPause||d.manualPlay||d.stopped||d.play()}),d.vars.pauseInvisible&&p.pauseInvisible.isHidden()||(d.vars.initDelay>0?d.startTimeout=setTimeout(d.play,d.vars.initDelay):d.play())),o&&p.asNav.setup(),g&&d.vars.touch&&p.touch(),(!n||n&&d.vars.smoothHeight)&&a(window).bind(\"resize orientationchange focus\",p.resize),d.find(\"img\").attr(\"draggable\",\"false\"),setTimeout(function(){d.vars.start(d)},200)},asNav:{setup:function(){d.asNav=!0,d.animatingTo=Math.floor(d.currentSlide/d.move),d.currentItem=d.currentSlide,d.slides.removeClass(e+\"active-slide\").eq(d.currentItem).addClass(e+\"active-slide\"),f?(b._slider=d,d.slides.each(function(){var b=this;b._gesture=new MSGesture,b._gesture.target=b,b.addEventListener(\"MSPointerDown\",function(a){a.preventDefault(),a.currentTarget._gesture&&a.currentTarget._gesture.addPointer(a.pointerId)},!1),b.addEventListener(\"MSGestureTap\",function(b){b.preventDefault();var c=a(this),e=c.index();a(d.vars.asNavFor).data(\"flexslider\").animating||c.hasClass(\"active\")||(d.direction=d.currentItem=g&&c.hasClass(e+\"active-slide\")?d.flexAnimate(d.getTarget(\"prev\"),!0):a(d.vars.asNavFor).data(\"flexslider\").animating||c.hasClass(e+\"active-slide\")||(d.direction=d.currentItem'),d.pagingCount>1)for(var j=0;j':\"\"+c+\"\",\"thumbnails\"===d.vars.controlNav&&!0===d.vars.thumbCaptions){var k=g.attr(\"data-thumbcaption\");\"\"!=k&&void 0!=k&&(f+=''+k+\"\")}d.controlNavScaffold.append(\"
    • \"+f+\"
    • \"),c++}d.controlsContainer?a(d.controlsContainer).append(d.controlNavScaffold):d.append(d.controlNavScaffold),p.controlNav.set(),p.controlNav.active(),d.controlNavScaffold.delegate(\"a, img\",h,function(b){if(b.preventDefault(),\"\"===i||i===b.type){var c=a(this),f=d.controlNav.index(c);c.hasClass(e+\"active\")||(d.direction=f>d.currentSlide?\"next\":\"prev\",d.flexAnimate(f,d.vars.pauseOnAction))}\"\"===i&&(i=b.type),p.setToClearWatchedEvent()})},setupManual:function(){d.controlNav=d.manualControls,p.controlNav.active(),d.controlNav.bind(h,function(b){if(b.preventDefault(),\"\"===i||i===b.type){var c=a(this),f=d.controlNav.index(c);c.hasClass(e+\"active\")||(d.direction=f>d.currentSlide?\"next\":\"prev\",d.flexAnimate(f,d.vars.pauseOnAction))}\"\"===i&&(i=b.type),p.setToClearWatchedEvent()})},set:function(){var b=\"thumbnails\"===d.vars.controlNav?\"img\":\"a\";d.controlNav=a(\".\"+e+\"control-nav li \"+b,d.controlsContainer?d.controlsContainer:d)},active:function(){d.controlNav.removeClass(e+\"active\").eq(d.animatingTo).addClass(e+\"active\")},update:function(b,c){d.pagingCount>1&&\"add\"===b?d.controlNavScaffold.append(a(\"
    • \"+d.count+\"
    • \")):1===d.pagingCount?d.controlNavScaffold.find(\"li\").remove():d.controlNav.eq(c).closest(\"li\").remove(),p.controlNav.set(),d.pagingCount>1&&d.pagingCount!==d.controlNav.length?d.update(c,b):p.controlNav.active()}},directionNav:{setup:function(){var b=a('\");d.controlsContainer?(a(d.controlsContainer).append(b),d.directionNav=a(\".\"+e+\"direction-nav li a\",d.controlsContainer)):(d.append(b),d.directionNav=a(\".\"+e+\"direction-nav li a\",d)),p.directionNav.update(),d.directionNav.bind(h,function(b){b.preventDefault();var c;(\"\"===i||i===b.type)&&(c=a(this).hasClass(e+\"next\")?d.getTarget(\"next\"):d.getTarget(\"prev\"),d.flexAnimate(c,d.vars.pauseOnAction)),\"\"===i&&(i=b.type),p.setToClearWatchedEvent()})},update:function(){var a=e+\"disabled\";1===d.pagingCount?d.directionNav.addClass(a).attr(\"tabindex\",\"-1\"):d.vars.animationLoop?d.directionNav.removeClass(a).removeAttr(\"tabindex\"):0===d.animatingTo?d.directionNav.removeClass(a).filter(\".\"+e+\"prev\").addClass(a).attr(\"tabindex\",\"-1\"):d.animatingTo===d.last?d.directionNav.removeClass(a).filter(\".\"+e+\"next\").addClass(a).attr(\"tabindex\",\"-1\"):d.directionNav.removeClass(a).removeAttr(\"tabindex\")}},pausePlay:{setup:function(){var b=a('
      ');d.controlsContainer?(d.controlsContainer.append(b),d.pausePlay=a(\".\"+e+\"pauseplay a\",d.controlsContainer)):(d.append(b),d.pausePlay=a(\".\"+e+\"pauseplay a\",d)),p.pausePlay.update(d.vars.slideshow?e+\"pause\":e+\"play\"),d.pausePlay.bind(h,function(b){b.preventDefault(),(\"\"===i||i===b.type)&&(a(this).hasClass(e+\"pause\")?(d.manualPause=!0,d.manualPlay=!1,d.pause()):(d.manualPause=!1,d.manualPlay=!0,d.play())),\"\"===i&&(i=b.type),p.setToClearWatchedEvent()})},update:function(a){\"play\"===a?d.pausePlay.removeClass(e+\"pause\").addClass(e+\"play\").html(d.vars.playText):d.pausePlay.removeClass(e+\"play\").addClass(e+\"pause\").html(d.vars.pauseText)}},touch:function(){function r(f){d.animating?f.preventDefault():(window.navigator.msPointerEnabled||1===f.touches.length)&&(d.pause(),g=k?d.h:d.w,i=Number(new Date),o=f.touches[0].pageX,p=f.touches[0].pageY,e=m&&l&&d.animatingTo===d.last?0:m&&l?d.limit-(d.itemW+d.vars.itemMargin)*d.move*d.animatingTo:m&&d.currentSlide===d.last?d.limit:m?(d.itemW+d.vars.itemMargin)*d.move*d.currentSlide:l?(d.last-d.currentSlide+d.cloneOffset)*g:(d.currentSlide+d.cloneOffset)*g,a=k?p:o,c=k?o:p,b.addEventListener(\"touchmove\",s,!1),b.addEventListener(\"touchend\",t,!1))}function s(b){o=b.touches[0].pageX,p=b.touches[0].pageY,h=k?a-p:a-o,j=k?Math.abs(h)f)&&(b.preventDefault(),!n&&d.transitions&&(d.vars.animationLoop||(h/=0===d.currentSlide&&0>h||d.currentSlide===d.last&&h>0?Math.abs(h)/g+2:1),d.setProps(e+h,\"setTouch\")))}function t(){if(b.removeEventListener(\"touchmove\",s,!1),d.animatingTo===d.currentSlide&&!j&&null!==h){var k=l?-h:h,m=k>0?d.getTarget(\"next\"):d.getTarget(\"prev\");d.canAdvance(m)&&(Number(new Date)-i<550&&Math.abs(k)>50||Math.abs(k)>g/2)?d.flexAnimate(m,d.vars.pauseOnAction):n||d.flexAnimate(d.currentSlide,d.vars.pauseOnAction,!0)}b.removeEventListener(\"touchend\",t,!1),a=null,c=null,h=null,e=null}function u(a){a.stopPropagation(),d.animating?a.preventDefault():(d.pause(),b._gesture.addPointer(a.pointerId),q=0,g=k?d.h:d.w,i=Number(new Date),e=m&&l&&d.animatingTo===d.last?0:m&&l?d.limit-(d.itemW+d.vars.itemMargin)*d.move*d.animatingTo:m&&d.currentSlide===d.last?d.limit:m?(d.itemW+d.vars.itemMargin)*d.move*d.currentSlide:l?(d.last-d.currentSlide+d.cloneOffset)*g:(d.currentSlide+d.cloneOffset)*g)}function v(a){a.stopPropagation();var c=a.target._slider;if(c){var d=-a.translationX,f=-a.translationY;return q+=k?f:d,h=q,j=k?Math.abs(q)500)&&(a.preventDefault(),!n&&c.transitions&&(c.vars.animationLoop||(h=q/(0===c.currentSlide&&0>q||c.currentSlide===c.last&&q>0?Math.abs(q)/g+2:1)),c.setProps(e+h,\"setTouch\"))),void 0)}}function w(b){b.stopPropagation();var d=b.target._slider;if(d){if(d.animatingTo===d.currentSlide&&!j&&null!==h){var f=l?-h:h,k=f>0?d.getTarget(\"next\"):d.getTarget(\"prev\");d.canAdvance(k)&&(Number(new Date)-i<550&&Math.abs(f)>50||Math.abs(f)>g/2)?d.flexAnimate(k,d.vars.pauseOnAction):n||d.flexAnimate(d.currentSlide,d.vars.pauseOnAction,!0)}a=null,c=null,h=null,e=null,q=0}}var a,c,e,g,h,i,j=!1,o=0,p=0,q=0;f?(b.style.msTouchAction=\"none\",b._gesture=new MSGesture,b._gesture.target=b,b.addEventListener(\"MSPointerDown\",u,!1),b._slider=d,b.addEventListener(\"MSGestureChange\",v,!1),b.addEventListener(\"MSGestureEnd\",w,!1)):b.addEventListener(\"touchstart\",r,!1)},resize:function(){!d.animating&&d.is(\":visible\")&&(m||d.doMath(),n?p.smoothHeight():m?(d.slides.width(d.computedW),d.update(d.pagingCount),d.setProps()):k?(d.viewport.height(d.h),d.setProps(d.h,\"setTotal\")):(d.vars.smoothHeight&&p.smoothHeight(),d.newSlides.width(d.computedW),d.setProps(d.computedW,\"setTotal\")))},smoothHeight:function(a){if(!k||n){var b=n?d:d.viewport;a?b.animate({height:d.slides.eq(d.animatingTo).height()},a):b.height(d.slides.eq(d.animatingTo).height())}},sync:function(b){var c=a(d.vars.sync).data(\"flexslider\"),e=d.animatingTo;switch(b){case\"animate\":c.flexAnimate(e,d.vars.pauseOnAction,!1,!0);break;case\"play\":c.playing||c.asNav||c.play();break;case\"pause\":c.pause()}},uniqueID:function(b){return b.find(\"[id]\").each(function(){var b=a(this);b.attr(\"id\",b.attr(\"id\")+\"_clone\")}),b},pauseInvisible:{visProp:null,init:function(){var a=[\"webkit\",\"moz\",\"ms\",\"o\"];if(\"hidden\"in document)return\"hidden\";for(var b=0;b0?setTimeout(d.play,d.vars.initDelay):d.play()})}},isHidden:function(){return document[p.pauseInvisible.visProp]||!1}},setToClearWatchedEvent:function(){clearTimeout(j),j=setTimeout(function(){i=\"\"},3e3)}},d.flexAnimate=function(b,c,f,h,i){if(d.vars.animationLoop||b===d.currentSlide||(d.direction=b>d.currentSlide?\"next\":\"prev\"),o&&1===d.pagingCount&&(d.direction=d.currentItemd.limit&&1!==d.visible?d.limit:t):s=0===d.currentSlide&&b===d.count-1&&d.vars.animationLoop&&\"next\"!==d.direction?l?(d.count+d.cloneOffset)*q:0:d.currentSlide===d.last&&0===b&&d.vars.animationLoop&&\"prev\"!==d.direction?l?0:(d.count+1)*q:l?(d.count-1-b+d.cloneOffset)*q:(b+d.cloneOffset)*q,d.setProps(s,\"\",d.vars.animationSpeed),d.transitions?(d.vars.animationLoop&&d.atEnd||(d.animating=!1,d.currentSlide=d.animatingTo),d.container.unbind(\"webkitTransitionEnd transitionend\"),d.container.bind(\"webkitTransitionEnd transitionend\",function(){clearTimeout(d.ensureAnimationEnd),d.wrapup(q)}),clearTimeout(d.ensureAnimationEnd),d.ensureAnimationEnd=setTimeout(function(){d.wrapup(q)},d.vars.animationSpeed+100)):d.container.animate(d.args,d.vars.animationSpeed,d.vars.easing,function(){d.wrapup(q)})}d.vars.smoothHeight&&p.smoothHeight(d.vars.animationSpeed)}},d.wrapup=function(a){n||m||(0===d.currentSlide&&d.animatingTo===d.last&&d.vars.animationLoop?d.setProps(a,\"jumpEnd\"):d.currentSlide===d.last&&0===d.animatingTo&&d.vars.animationLoop&&d.setProps(a,\"jumpStart\")),d.animating=!1,d.currentSlide=d.animatingTo,d.vars.after(d)},d.animateSlides=function(){!d.animating&&q&&d.flexAnimate(d.getTarget(\"next\"))},d.pause=function(){clearInterval(d.animatedSlides),d.animatedSlides=null,d.playing=!1,d.vars.pausePlay&&p.pausePlay.update(\"play\"),d.syncExists&&p.sync(\"pause\")},d.play=function(){d.playing&&clearInterval(d.animatedSlides),d.animatedSlides=d.animatedSlides||setInterval(d.animateSlides,d.vars.slideshowSpeed),d.started=d.playing=!0,d.vars.pausePlay&&p.pausePlay.update(\"pause\"),d.syncExists&&p.sync(\"play\")},d.stop=function(){d.pause(),d.stopped=!0},d.canAdvance=function(a,b){var c=o?d.pagingCount-1:d.last;return b?!0:o&&d.currentItem===d.count-1&&0===a&&\"prev\"===d.direction?!0:o&&0===d.currentItem&&a===d.pagingCount-1&&\"next\"!==d.direction?!1:a!==d.currentSlide||o?d.vars.animationLoop?!0:d.atEnd&&0===d.currentSlide&&a===c&&\"next\"!==d.direction?!1:d.atEnd&&d.currentSlide===c&&0===a&&\"next\"===d.direction?!1:!0:!1},d.getTarget=function(a){return d.direction=a,\"next\"===a?d.currentSlide===d.last?0:d.currentSlide+1:0===d.currentSlide?d.last:d.currentSlide-1},d.setProps=function(a,b,c){var e=function(){var c=a?a:(d.itemW+d.vars.itemMargin)*d.move*d.animatingTo,e=function(){if(m)return\"setTouch\"===b?a:l&&d.animatingTo===d.last?0:l?d.limit-(d.itemW+d.vars.itemMargin)*d.move*d.animatingTo:d.animatingTo===d.last?d.limit:c;switch(b){case\"setTotal\":return l?(d.count-1-d.currentSlide+d.cloneOffset)*a:(d.currentSlide+d.cloneOffset)*a;case\"setTouch\":return l?a:a;case\"jumpEnd\":return l?a:d.count*a;case\"jumpStart\":return l?d.count*a:a;default:return a}}();return-1*e+\"px\"}();d.transitions&&(e=k?\"translate3d(0,\"+e+\",0)\":\"translate3d(\"+e+\",0,0)\",c=void 0!==c?c/1e3+\"s\":\"0s\",d.container.css(\"-\"+d.pfx+\"-transition-duration\",c),d.container.css(\"transition-duration\",c)),d.args[d.prop]=e,(d.transitions||void 0===c)&&d.container.css(d.args),d.container.css(\"transform\",e)},d.setup=function(b){if(n)d.slides.css({width:\"100%\",\"float\":\"left\",marginRight:\"-100%\",position:\"relative\"}),\"init\"===b&&(g?d.slides.css({opacity:0,display:\"block\",webkitTransition:\"opacity \"+d.vars.animationSpeed/1e3+\"s ease\",zIndex:1}).eq(d.currentSlide).css({opacity:1,zIndex:2}):d.slides.css({opacity:0,display:\"block\",zIndex:1}).eq(d.currentSlide).css({zIndex:2}).animate({opacity:1},d.vars.animationSpeed,d.vars.easing)),d.vars.smoothHeight&&p.smoothHeight();else{var c,f;\"init\"===b&&(d.viewport=a('
      ').css({overflow:\"hidden\",position:\"relative\"}).appendTo(d).append(d.container),d.cloneCount=0,d.cloneOffset=0,l&&(f=a.makeArray(d.slides).reverse(),d.slides=a(f),d.container.empty().append(d.slides))),d.vars.animationLoop&&!m&&(d.cloneCount=2,d.cloneOffset=1,\"init\"!==b&&d.container.find(\".clone\").remove(),p.uniqueID(d.slides.first().clone().addClass(\"clone\").attr(\"aria-hidden\",\"true\")).appendTo(d.container),p.uniqueID(d.slides.last().clone().addClass(\"clone\").attr(\"aria-hidden\",\"true\")).prependTo(d.container)),d.newSlides=a(d.vars.selector,d),c=l?d.count-1-d.currentSlide+d.cloneOffset:d.currentSlide+d.cloneOffset,k&&!m?(d.container.height(200*(d.count+d.cloneCount)+\"%\").css(\"position\",\"absolute\").width(\"100%\"),setTimeout(function(){d.newSlides.css({display:\"block\"}),d.doMath(),d.viewport.height(d.h),d.setProps(c*d.h,\"init\")},\"init\"===b?100:0)):(d.container.width(200*(d.count+d.cloneCount)+\"%\"),d.setProps(c*d.computedW,\"init\"),setTimeout(function(){d.doMath(),d.newSlides.css({width:d.computedW,\"float\":\"left\",display:\"block\"}),d.vars.smoothHeight&&p.smoothHeight()},\"init\"===b?100:0))}m||d.slides.removeClass(e+\"active-slide\").eq(d.currentSlide).addClass(e+\"active-slide\"),d.vars.init(d)},d.doMath=function(){var a=d.slides.first(),b=d.vars.itemMargin,c=d.vars.minItems,e=d.vars.maxItems;d.w=void 0===d.viewport?d.width():d.viewport.width(),d.h=a.height(),d.boxPadding=a.outerWidth()-a.width(),m?(d.itemT=d.vars.itemWidth+b,d.minW=c?c*d.itemT:d.w,d.maxW=e?e*d.itemT-b:d.w,d.itemW=d.minW>d.w?(d.w-b*(c-1))/c:d.maxWd.w?d.w:d.vars.itemWidth,d.visible=Math.floor(d.w/d.itemW),d.move=d.vars.move>0&&d.vars.moved.w?d.itemW*(d.count-1)+b*(d.count-1):(d.itemW+b)*d.count-d.w-b):(d.itemW=d.w,d.pagingCount=d.count,d.last=d.count-1),d.computedW=d.itemW-d.boxPadding},d.update=function(a,b){d.doMath(),m||(ad.controlNav.length?p.controlNav.update(\"add\"):(\"remove\"===b&&!m||d.pagingCountd.last&&(d.currentSlide-=1,d.animatingTo-=1),p.controlNav.update(\"remove\",d.last))),d.vars.directionNav&&p.directionNav.update()},d.addSlide=function(b,c){var e=a(b);d.count+=1,d.last=d.count-1,k&&l?void 0!==c?d.slides.eq(d.count-c).after(e):d.container.prepend(e):void 0!==c?d.slides.eq(c).before(e):d.container.append(e),d.update(c,\"add\"),d.slides=a(d.vars.selector+\":not(.clone)\",d),d.setup(),d.vars.added(d)},d.removeSlide=function(b){var c=isNaN(b)?d.slides.index(a(b)):b;d.count-=1,d.last=d.count-1,isNaN(b)?a(b,d.slides).remove():k&&l?d.slides.eq(d.last).remove():d.slides.eq(b).remove(),d.doMath(),d.update(c,\"remove\"),d.slides=a(d.vars.selector+\":not(.clone)\",d),d.setup(),d.vars.removed(d)},p.init()},a(window).blur(function(){focused=!1}).focus(function(){focused=!0}),a.flexslider.defaults={namespace:\"flex-\",selector:\".slides > li\",animation:\"fade\",easing:\"swing\",direction:\"horizontal\",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:\"Previous\",nextText:\"Next\",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:\"Pause\",playText:\"Play\",controlsContainer:\"\",manualControls:\"\",sync:\"\",asNavFor:\"\",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}},a.fn.flexslider=function(b){if(void 0===b&&(b={}),\"object\"==typeof b)return this.each(function(){var c=a(this),d=b.selector?b.selector:\".slides > li\",e=c.find(d);1===e.length&&b.allowOneSlide===!0||0===e.length?(e.fadeIn(400),b.start&&b.start(c)):void 0===c.data(\"flexslider\")&&new a.flexslider(this,b)});var c=a(this).data(\"flexslider\");switch(b){case\"play\":c.play();break;case\"pause\":c.pause();break;case\"stop\":c.stop();break;case\"next\":c.flexAnimate(c.getTarget(\"next\"),!0);break;case\"prev\":case\"previous\":c.flexAnimate(c.getTarget(\"prev\"),!0);break;default:\"number\"==typeof b&&c.flexAnimate(b,!0)}}}(jQuery);","//CLIENT-SIDE VALIDATION\r\n;(function ($$ashVal, $, undefined) {\r\n\tvar hasError = false; //flag indicating that there is/isn't a validation error\r\n\tvar exclusiveCheckedClass = 'exclusiveChecked'; //class added to exclusive inputs when their associated checkbox is checked\r\n\tvar parentInvalidClass = 'isInvalid'; //class added to input parent to indicate a validation error\r\n\tvar errorMsgContClass = '.validation_message';\r\n\tvar activeValClass = 'js-watching'; //class added to inputs to indicate they will be validated\r\n\tvar valRulePrefix = 'data-val-'; //prefix of data attributes containing validation rules\r\n\tvar wrapper = '
      ';\r\n\tvar valMessageCont = '
      ';\r\n\tvar exclude = Modernizr.touchevents === true ? 'form' : 'form, input[type=date], div.select2-container';\r\n\tvar valForm; //the form to validate\r\n\r\n\t//make this class global so other JS (ie: ashModal) can access it\r\n\t$$ashVal.valClass = 'validate', //class name of inputs to validate\r\n\t$$ashVal.failClass = 'invalidInput';\r\n\t//Custom callbacks for AJAX calls can be registered here. The relevant parameters will be passed\r\n\t// to the function.\r\n\t$$ashVal.ajaxCallbacks = {\r\n\t\terror: null,\r\n\t\tbeforeSend: null\r\n\t};\r\n\t//Array of HTTP error codes for which the default server error UI should not be displayed. This will be passed to $$ash.ajax() and used to determine if $$ash.ajaxFail() will be called in the case of an error.\r\n\t$$ashVal.ajaxIgnoreErrorDisplayCodes = [];\r\n\r\n\t$$ashVal.init = function () {\r\n\t\tvalForm = $('form.validate');\r\n\r\n\t\tvalForm.each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tvalInputs;\r\n\r\n\t\t\t// delete this after scoping data validation and testing\r\n\t\t\tif (obj.hasClass('validateDate')) {\r\n\t\t\t exclude = Modernizr.touchevents === true ? 'form' : 'form, div.select2-container';\r\n\t\t\t}\r\n\t\t //end delete this\r\n\r\n // all inputs within the form that have 'validate' class\r\n\t\t\tvalInputs = obj.find('.' + $$ashVal.valClass).not(exclude);\r\n\r\n\t\t\tvalInputs.each(function () {\r\n\t\t\t var obj = $(this);\r\n if (!obj.hasClass(activeValClass)) { //if input doesn't already have validation bound to it\r\n $$ashVal.setUpMarkup(obj);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$$ashVal.bindValidationToSubmit(obj, valInputs);\r\n\t\t});\r\n\r\n\t\t$$ashVal.bindConditionalValidation();\r\n\t};\r\n\r\n\t$$ashVal.setUpMarkup = function (obj) { //adds container wrapper and class names for ashVal\r\n\t\tvar siblings = obj.siblings('div.select2-container').add(obj.nextAll('.tooltip-obj')).add(obj.nextAll('span')).not('.ash-countdown-counter, .checkbox-container, .radio-container');\r\n\t\t\r\n\t\tobj.addClass(activeValClass).add(siblings).wrapAll(wrapper);\r\n\r\n\t\tif (obj[0].hasAttribute('data-val-exclusive-name')) {\r\n\t\t\tobj.addClass('exclusiveVal');\r\n\t\t}\r\n\r\n\t\t$$ashVal.bindValidationToField(obj);\r\n\t};\r\n\r\n\t$$ashVal.bindValidationToField = function (obj) {\r\n\t\tvar valEvent = obj.attr('data-val-event') || 'blur change',\r\n\t\t\tcxt = $$ashVal.preValidate(obj);\r\n\t\tif (obj.is('input, select, textarea')) {\r\n\t\t\tobj.on(valEvent, function () { //binds validation function to the event decided above\r\n\t\t\t\t$$ashVal.validate(obj, cxt.rules, cxt.errorText, cxt.parent);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (obj.hasClass('validate-error')) {\r\n\t\t\t$$ashVal.markInvalid(obj, obj.attr('data-val-msg'), cxt.errorText, cxt.parent);\r\n\t\t}\r\n\t};\r\n\r\n\t$$ashVal.unbindValidationFromField = function (obj) { //FIX THIS\r\n\t\tobj.removeClass('validate js-watching')\r\n\t\t\t.siblings(errorMsgContClass).remove().addBack().unwrap(wrapper);\r\n\t};\r\n\r\n\t$$ashVal.bindConditionalValidation = function () {\r\n\t\tvar leaders = $('[data-val-conditional-target]');\r\n\r\n\t\tleaders.each(function () {\r\n\t\t\tvar obj = $(this);\r\n\t\t\tvar\tfollower = $('#' + obj.attr('data-val-conditional-target'));\r\n\r\n\t\t\tif (obj.is('input, select, textarea')) {\r\n\t\t\t\tobj.off('blur.ashVal').on('blur.ashVal', function () {\r\n\t\t\t\t\tif (obj.val().replace(/ /g, '').length !== 0) {\r\n\t\t\t\t\t\tif (!follower.hasClass(activeValClass)) { //if input doesn't already have validation bound to it\r\n\t\t\t\t\t\t\tfollower.addClass($$ashVal.valClass);\r\n\t\t\t\t\t\t\t$$ashVal.setUpMarkup(follower);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (follower.hasClass(activeValClass)) { //no value and follower has validation bound to it\r\n\t\t\t\t\t\t$$ashVal.unbindValidationFromField(follower);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$$ashVal.bindValidationToSubmit(follower.closest('form'));\r\n\t\t\t\t});\r\n\t\t\t} else if (obj.find('input[type=\"checkbox\"], input[type=\"radio\"]').length) {\r\n\t\t\t\tobj.off('change.ashVal').on('change.ashVal', function () {\r\n\t\t\t\t\tif (obj.find('input:checked').length >= 1) {\r\n\t\t\t\t\t\tif (!follower.hasClass(activeValClass)) { //if input doesn't already have validation bound to it\r\n\t\t\t\t\t\t\tfollower.addClass($$ashVal.valClass);\r\n\t\t\t\t\t\t\t$$ashVal.setUpMarkup(follower);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (follower.hasClass(activeValClass)) { //none checked and follower has validation bound to it\r\n\t\t\t\t\t\t$$ashVal.unbindValidationFromField(follower);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$$ashVal.bindValidationToSubmit(follower.closest('form'));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t$$ashVal.bindValidationToSubmit = function (valForm, valInputs) {\r\n\t\tvalInputs = valInputs || valForm.find('.' + $$ashVal.valClass).not(exclude);\r\n\r\n\t\tvalForm.off('submit.ashVal').on('submit.ashVal', function (e) {\r\n\t\t\tvar validationError;\r\n\t\t\tvar\tspForm = (valForm.hasClass('spForm')) ? true : false;\r\n\t\t\tvar\tspLastPg = $('.spFinal').is(':visible');\r\n\r\n\t\t\tif (!valForm.hasClass('ajaxPost')) {\r\n\t\t\t\tif (!spForm || spForm && spLastPg) {\r\n\t\t\t\tvalidationError = $$ashVal.validateAll(valForm, valInputs);\r\n\r\n\t\t\t\t\tif (validationError === false) {\r\n\t\t\t\t\t\tvalForm.off('submit.ashVal').submit();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (valForm.hasClass('ajaxPost') && valForm.hasClass('serverVal')) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t$$ashVal.serverVal(valForm);\r\n\t\t\t}\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\t\tif (Modernizr.input.autofocus) { //if browser supports autofocus\r\n\t\t\t$('[autofocus]:not(:focus)').eq(0).focus(); //set autofocus based on property set\r\n\t\t}\r\n\t};\r\n\r\n\t$$ashVal.validateAll = function (valForm, valInputs, opts) { //opts = options to POST with.\r\n\t\t//pass in \"undefined\" for valInputs to validate all inputs with validate class\r\n\t\tvar obj = valForm;\r\n\t\tvar\tvalidationError = false; //flag for outside function to indicate a validation error\r\n\r\n\t\t$$ash.removeButtonOnSubmit(obj);\r\n\r\n\t\tvalInputs = valInputs || obj.find('.' + $$ashVal.valClass).not(exclude);\r\n\r\n\t\tvalInputs.each(function () {\r\n\t\t\tvar obj = $(this);\r\n\t\t\tif (obj.is(':hidden')) return; //Don't validate fields that are currently hidden\r\n\t\t\tvar\tcxt = $$ashVal.preValidate(obj);\r\n\r\n\t\t\tif (obj.is('input:not(.' + exclusiveCheckedClass + '), select, textarea')) {\r\n\t\t\t\t$$ashVal.validate(obj, cxt.rules, cxt.errorText, cxt.parent); //normal validation like text fields, etc.\r\n\t\t\t} else if (obj.find('input[type=\"checkbox\"], input[type=\"radio\"]').length) {\r\n\t\t\t\t$$ashVal.validateOnSubmit(obj, cxt.parent, cxt.errorText, cxt.rules); //checkbox/radio containers\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (obj.find('.' + $$ashVal.failClass + ':visible').length) { //if there's an error in the fields, prevent submission of form\r\n\t\t\tvalidationError = true;\r\n\r\n\t\t\tobj.trigger('validationFail');\r\n\r\n\t\t\tif (!obj.parents('.ashModal').length) {\r\n\t\t\t\t$$ashVal.scrollForm(obj.find(errorMsgContClass + ':visible').first()); //scroll to first error field\r\n\t\t\t}\r\n\t\t} else { //if no validation errors\r\n\t\t\tvalidationError = false;\r\n\t\t}\r\n\r\n\t\treturn validationError;\r\n\t};\r\n\r\n\t$$ashVal.scrollForm = function (obj) { //scroll a spot, the obj selector, in the form\r\n\t\tvar topOffset;\r\n\t\tvar header = $('header');\r\n\t\tvar mobileHeader = $('.mobile-header');\r\n\r\n\t\t//if to change offset height if it is a mobile view\r\n\t\tif ($(window).width() < 768) {\r\n\t\t\ttopOffset = obj.offset().top - mobileHeader.outerHeight() - 50\r\n\t\t} else {\r\n\t\t\ttopOffset = obj.offset().top - header.outerHeight() - 50\r\n\t\t}\r\n\r\n\t if (!obj.isOnScreen() || obj.offset().top > topOffset) {\r\n\t\t\t$('html, body').stop().animate({\r\n\t\t\t\tscrollTop: topOffset\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t};\r\n\r\n\t$$ashVal.preValidate = function (obj) { //Grabbing parent, errorText, and rules for performance\r\n\t\tvar objParent = obj.parent();\r\n\t\tvar\terrorMsgCont = objParent.find(errorMsgContClass).last();\r\n\t\tvar\trules = {};\r\n\r\n\t\t$.each(obj[0].attributes, function () { //grab all attributes of obj. [0] is to grab DOM element, not jQuery element\r\n\t\t\tif (this.specified && this.name.indexOf(valRulePrefix) !== -1) { //IE8 bug fix and narrow down attributes to validation rules\r\n\t\t\t\trules[this.name.replace(valRulePrefix, '').replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); })] = this.value;\r\n\t\t\t\t//strip out the data-attribute prefix and camelCase the rule name eg: data-val-length-min to lengthMin\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//if there aren't any rules yet, add required as the default. this allows you to only add class validate to inputs without custom data attributes or messages\r\n\t\tif (jQuery.isEmptyObject(rules)) {\r\n\t\t\trules.required = 'This is required.';\r\n\t\t}\r\n\t\tif (obj.attr('data-val-exclusive-name')) { //if exclusive, setup reciprocal clearing functions\r\n\t\t\t$$ashVal.exclusiveRecipricalClearing(obj);\r\n\t\t}\r\n\t\treturn { //returns obj's context\r\n\t\t\tparent: objParent, //object parent\r\n\t\t\terrorText: errorMsgCont, //container that holds the error message\r\n\t\t\trules: rules //validation rules for this particular input\r\n\t\t};\r\n\t};\r\n\r\n\t$$ashVal.exclusiveRecipricalClearing = function (obj) {\r\n\t\tvar excObj = obj.find('[data-val-exclusive-item]'); //exclusive input item\r\n\t\tvar\tvalObj = obj.find('.' + $$ashVal.valClass).not(exclude);\r\n\t\tvar\tpopData = obj.hasClass('popData');\r\n\t\tvar\tallObj = obj.find('input, select, textarea').not('[data-val-exclusive-item], .select2-offscreen, .select2-input');\r\n\t\tvar\tothObj = obj.find('input[type=checkbox], input[type=radio]').not('[data-val-exclusive-item]'); //other checkbox and radio fields\r\n\t\tvar\ttxtObj = valObj.filter('input').not('[data-val-exclusive-item], [type=checkbox], [type=radio]'); //text fields opposite exclusive\r\n\t\tvar\tslcObj = valObj.filter('select');\r\n\t\tfunction stopWatching(obj) {\r\n\t\t\t//remove validating classes\r\n\t\t\tif (obj.is('[type=checkbox]') || obj.is('[type=radio]')) {\r\n\t\t\t\tobj.removeClass('validate js-watching').addClass(exclusiveCheckedClass);\r\n\t\t\t} else {\r\n\t\t\t\tobj.val('').removeClass('validate js-watching').addClass(exclusiveCheckedClass);\r\n\t\t\t}\r\n\r\n\t\t\t$$ashVal.clearValidation(obj);\r\n\t\t}\r\n\r\n\t\tfunction startWatching(obj) {\r\n\t\t\tobj.addClass('validate js-watching').removeClass(exclusiveCheckedClass);\r\n\t\t}\r\n\t // when page loads check for exclusive element (checkbox) value\r\n\t\tif (excObj.is(':checked')) {\r\n\t\t // clear text, select, and checkboxes, and stop watching them\r\n\t\t txtObj.each(function () {\r\n\t\t stopWatching($(this));\r\n $(this).val('');\r\n });\r\n\t\t othObj.each(function () {\r\n\t\t stopWatching($(this));\r\n $(this).prop('checked', false).trigger('change');\r\n });\r\n\t\t slcObj.each(function () {\r\n\t\t stopWatching($(this));\r\n $(this).val('');\r\n });\r\n\t\t}\r\n\r\n\t\t// when exclusive item clicked\r\n\t\texcObj.on('click', function () {\r\n\t\t\t// if checked after click\r\n\t\t // clear text, select, and checkboxes, and stop watching them\r\n\t\t\tif (excObj.is(':checked')) {\r\n\t\t\t txtObj.each(function () { stopWatching( $(this) ); $(this).val(''); });\r\n\t\t\t\tothObj.each(function () { stopWatching( $(this) ); $(this).prop('checked', false).trigger('change'); });\r\n\t\t\t\tslcObj.each(function () { stopWatching( $(this) ); $(this).val(''); });\r\n\t\t\t// if NOT checked after click\r\n\t\t\t// start watching all inputs again\r\n\t\t\t} else {\r\n\t\t\t\ttxtObj.each(function () { startWatching( $(this) ); });\r\n\t\t\t\tothObj.each(function () { startWatching( $(this) ); });\r\n\t\t\t\tslcObj.each(function () { startWatching( $(this) ); });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// when any radio button or checkbox is clicked\r\n\t\tothObj.on('click', function () {\r\n\t\t\t// clear exclusive item\r\n\t\t\texcObj.prop('checked', false);\r\n\t\t});\r\n\r\n\t\t// when blur event fires on any text input\r\n\t\ttxtObj.on('blur', function() {\r\n\t\t\t// start watching text, select, and checkboxes again\r\n\t\t\ttxtObj.each(function () { startWatching( $(this) ); });\r\n\t\t\tothObj.each(function () { startWatching( $(this) ); });\r\n\t\t\t//slcObj.each(function () { startWatching( $(this) ); });\r\n\r\n\t\t\t// clear exclusive item\r\n\t\t\texcObj.prop('checked', false);\r\n\t\t});\r\n\t};\r\n\r\n\t$$ashVal.equalToFields = function (equalToFld) {\r\n\t\tif (equalToFld && $('[data-val-equalto-other=\"' + equalToFld + '\"]').length > 1) { //if field matching is active and there are two fields\r\n\t\t\t//check first and last matching values are equal\r\n\t\t\tif ($('[data-val-equalto-other=\"' + equalToFld + '\"]').first().val() === $('[data-val-equalto-other=\"' + equalToFld + '\"]').last().val()) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\t$$ashVal.exclusive = function (exclusiveName) {\r\n\t\tvar eParent = $('[data-val-exclusive-name=\"' + exclusiveName + '\"]'); //exclusive items container\r\n\t\tvar\teItem = eParent.find('[data-val-exclusive-item]'); //exclusive checkbox\r\n\t\tvar\tchkbxs = eParent.find('input[type=\"checkbox\"]').not('[data-val-exclusive-item], :disabled'); //other checkboxes in the question\r\n\t\tvar\ttxtflds = eParent.find('input').not('[type=checkbox], [type=radio], :hidden, :disabled'); //other text fields in question\r\n\t\tvar\tslcts = eParent.find('select').not(':disabled');\r\n\t\tvar\tisExChkd = false; //is exclusive checkbox checked\r\n\t\tvar\tisOtherInptUsed = false; //is other textbox or checkboxes used\r\n\r\n\t\tif (eItem && eItem.is(':checked')) { //if exclusive is checked\r\n\t\t\tisExChkd = true;\r\n\t\t}\r\n\t\tchkbxs.each(function () {\r\n\t\t\tif ($(this).prop('checked')) { //if other checkboxes are checked, exclusive is false\r\n\t\t\t\tisOtherInptUsed = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\ttxtflds.each(function () { //if other text fields have value, exclusive is false\r\n\t\t\tif ($(this).val().length > 0) {\r\n\t\t\t\tisOtherInptUsed = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\tslcts.each(function () { //if other select boxes have value, exclusive is false\r\n\t\t\tif ($(this).val().length > 0) {\r\n\t\t\t\tisOtherInptUsed = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\t//if exclusive checked and other inputs used, it is not exclusive\r\n\t\treturn isExChkd === isOtherInptUsed ? false : true; //return result\r\n\t};\r\n\r\n\t$$ashVal.validate = function (obj, rules, errorMsgCont, objParent) {\r\n\t\t//caching these variables for performance\r\n\t var value = $.trim(obj.val()); //user input\r\n\t\tvar valueAsInt = parseInt(value, 10); //user input as an integer\r\n\t\tvar valueLength = value.length; //user input length\r\n\t\tvar required = rules.required;\r\n\t\tvar length = rules.length;\r\n\t\tvar range = rules.range;\r\n\t\tvar equalto = rules.equalto;\r\n\t\tvar equaltoOther = rules.equaltoOther;\r\n\t\tvar dataTypeFormat = rules.dataTypeFormat;\r\n\t\tvar dataTypeFormatMsg = rules.dataType || rules.dataTypeFormatMsg; //AO: rules.dataTypeFormatMsg makes more sense but too late to change markup\r\n\t\tvar regex = rules.regex;\r\n\t\tvar regexPattern = rules.regexPattern;\r\n\t\tvar regexExp;\r\n\r\n\t\thasError = false; //reset hasError flag\r\n\r\n\t\tif (obj.hasClass($$ashVal.failClass)) { //reset validation message\r\n\t\t\t$$ashVal.clearValidation(obj, objParent);\r\n\t\t}\r\n\t\tif (required) { //if input is required\r\n\t\t\t//strip whitespace so that spaces don't cause this validation to pass\r\n\t\t\tif (value.length === 0) {\r\n\t\t\t\t$$ashVal.markInvalid(obj, required, errorMsgCont, objParent);\r\n\t\t\t}\r\n\t\t} if (!hasError && length) {\r\n\t\t\tif (valueLength < rules.lengthMin || valueLength > rules.lengthMax) {\r\n\t\t\t\t$$ashVal.markInvalid(obj, length, errorMsgCont, objParent);\r\n\t\t\t}\r\n\t\t} if (!hasError && range) {\r\n\t\t if (valueAsInt < rules.rangeMin || valueAsInt > rules.rangeMax) {\r\n\t\t\t\t$$ashVal.markInvalid(obj, range, errorMsgCont, objParent);\r\n\t\t\t}\r\n\t\t} if (!hasError && equalto) {\r\n\t\t\t//if validating last matching element, check if fields are matching\r\n\t\t\tif (obj.index() === $('[data-val-equalto-other=\"' + equaltoOther + '\"]').last().index() && !$$ashVal.equalToFields(equaltoOther)) {\r\n\t\t\t\t$$ashVal.markInvalid(obj, equalto, errorMsgCont, objParent);\r\n\t\t\t}\r\n\t\t} if (!hasError && dataTypeFormat) {\r\n\t\t\tswitch (dataTypeFormat) {\r\n\t\t\t\tcase 'string':\r\n\t\t\t\t\tif (typeof value !== 'string') {\r\n\t\t\t\t\t\t$$ashVal.markInvalid(obj, dataTypeFormatMsg, errorMsgCont, objParent);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'number':\r\n\t\t\t\t\tif (isNaN(value) === true) {\r\n\t\t\t\t\t\t$$ashVal.markInvalid(obj, dataTypeFormatMsg, errorMsgCont, objParent);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'date':\r\n\t\t\t\t\tif (isNaN(Date.parse(value))) {\r\n\t\t\t\t\t\t$$ashVal.markInvalid(obj, regex, errorMsgCont, objParent);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} if (!hasError && regex) {\r\n\t\t\ttry {\r\n\t\t\t\tregexExp = new RegExp(regexPattern);\r\n\t\t\t\tif (obj.val() && !regexExp.test(obj.val())) {\r\n\t\t\t\t\t$$ashVal.markInvalid(obj, regex, errorMsgCont, objParent);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\tconsole.log('Invalid RegEx pattern. Please contact support.');\r\n\t\t\t\t$$ashVal.markInvalid(obj, 'Invalid RegEx pattern. Please contact support.', errorMsgCont, objParent);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (hasError === false) {\r\n\t\t\t$$ashVal.clearValidation(obj, objParent);\r\n\t\t}\r\n\t};\r\n\r\n\t$$ashVal.validateOnSubmit = function (obj, objParent, errorMsgCont, rules) { //for inputs that can only be validated on submit (checkboxes, etc)\r\n\t\t//caching these variables for performance\r\n\t\tvar required = rules.required;\r\n\t\tvar\texclusiveName = rules.exclusiveName;\r\n\t\tvar\tequalto = rules.equalto;\r\n \r\n\t\thasError = false; //reset hasError flag\r\n\r\n\t\tif (objParent.hasClass(parentInvalidClass)) { //reset validation message\r\n\t\t $$ashVal.clearValidation(obj, objParent);\r\n\t\t}\r\n\r\n\t\tif (obj.find('input:checked').length === 0 && !obj.is('[data-val-exclusive-name]')) {\r\n\t\t $$ashVal.markInvalid(obj, required, errorMsgCont, objParent);\r\n\t\t}\r\n\r\n\t\tif (rules.equaltoOther && !$$ashVal.equalToFields(rules.equaltoOther)) { //if field matching is in use and fields not matching\r\n\t\t $$ashVal.markInvalid(obj, equalto, errorMsgCont, objParent);\r\n\t\t}\r\n\r\n\t\tif (exclusiveName && !$$ashVal.exclusive(exclusiveName)) {\r\n\t\t\t$$ashVal.markInvalid(obj, obj.find('[data-val-exclusive]').attr('data-val-exclusive'), errorMsgCont, objParent);\r\n\t\t}\r\n\r\n\t\tif (hasError === false) {\r\n\t\t $$ashVal.clearValidation(obj, objParent);\r\n\t\t}\r\n\t};\r\n\r\n\t//function that AJAX POSTs it to the form action\r\n\t$$ashVal.serverVal = function (obj) {\r\n\t var dataToSend = $$ash.serializeDataToObject(obj);\r\n\t\tvar actionUrl = obj.attr('action');\r\n\t\tvar errorMsgCont = $('.serverError');\r\n\r\n\t\t$$ash.ajax({\r\n\t\t\t\tobj: obj,\r\n\t\t\t\turl: actionUrl,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: JSON.stringify(dataToSend),\r\n\t\t\t\tcontentType:\"application/json; charset=utf-8\",\r\n\t\t\t\tdataType:\"json\",\r\n\t\t\t\tfailMessageLocation: errorMsgCont,\r\n\t\t\t\tfailMessagePos: 'prepend',\r\n\t\t\t\tfailTypeNew: true,\r\n\t\t\t\tajaxIgnoreErrorDisplayCodes: $$ashVal.ajaxIgnoreErrorDisplayCodes,\r\n\t\t\t\terror: function (XhrResponse) {\r\n\t\t\t\t\tif (typeof $$ashVal.ajaxCallbacks.error === 'function') $$ashVal.ajaxCallbacks.error(XhrResponse);\r\n\t\t\t\t\tif ($$ashVal.ajaxIgnoreErrorDisplayCodes.indexOf(XhrResponse.status) === -1) {\r\n\t\t\t\t\t\t$$ash.scroller({\r\n\t\t\t\t\t\t\tduration: 1000\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tbeforeSend: function () {\r\n\t\t\t\t\tif (typeof $$ashVal.ajaxCallbacks.beforeSend === 'function') $$ashVal.ajaxCallbacks.beforeSend();\r\n\t\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t$$ashVal.bindValidationClear = function (obj) {\r\n\t\tif (obj.is('input') || obj.is('select') || obj.hasClass('select2-container') || obj.is('textarea')) {\r\n\r\n\t\t} else {\r\n\t\t\tobj.on('change', function () {\r\n\t\t\t\t$$ashVal.clearValidation(obj);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t//function that makes hasError true and shows the invalid message\r\n\t$$ashVal.markInvalid = function (obj, msg, errorMsgCont, objParent) {\r\n\t\tmsg = msg || 'Validation error'; //validation message\r\n\t\terrorMsgCont = errorMsgCont || null; //container that holds the error message\r\n\t\tobjParent = objParent || obj.parent(); //object parent\r\n\r\n\t\tobj.addClass($$ashVal.failClass);\r\n\t\tobjParent.addClass(parentInvalidClass);\r\n\r\n\t\tif(objParent.find(errorMsgContClass).length == 0) {\r\n\t\t\tobjParent.append(valMessageCont);\r\n\t\t\tobjParent.find(errorMsgContClass).text(msg);\r\n\t\t}\r\n\t\t\r\n \r\n\t\tif (!errorMsgCont) {\r\n\t\t\tobj.after(valMessageCont);\r\n\t\t\terrorMsgCont = objParent.find(errorMsgContClass);\r\n\t\t}\r\n\r\n\t\terrorMsgCont.text(msg);\r\n\r\n\t\tif (typeof hasError !== 'undefined') {\r\n\t\t\thasError = true;\r\n\t\t}\r\n\r\n\t\t$$ashVal.bindValidationClear(obj);\r\n\t};\r\n\r\n\t//function that makes hasError false and hides the invalid message\r\n\t$$ashVal.clearValidation = function (obj, objParent) {\r\n\t\tvar parentInvalidClass = parentInvalidClass || 'isInvalid';\r\n\t\tvar validationText;\r\n\r\n\t\tobjParent = objParent || obj.parent();\r\n\r\n\t\tobj.removeClass($$ashVal.failClass);\r\n\t\tobjParent.removeClass(parentInvalidClass);\r\n\t\t\r\n\t\tif(objParent.find(errorMsgContClass.length !== 0 )) {\r\n\t\t\tobjParent.find(errorMsgContClass).remove();\r\n\t\t}\r\n\t\t\r\n\t\tif (obj.hasClass('validate-error')) {\r\n\t\t\tobj.removeClass('validate-error');\r\n\t\t}\r\n\r\n\t\tif (typeof hasError !== 'undefined') {\r\n\t\t\thasError = false;\r\n\t\t}\r\n\t};\r\n\r\n}(window.$$ashVal = window.$$ashVal || {}, jQuery));\r\n","var bulletinInit = function () {\r\n\tvar obj = document.querySelector('.bulletin');\r\n\tvar loadedClass = 'loaded';\r\n\tvar movedClass = 'moved';\r\n\tvar scrolledClass = 'bulletinScrolled';\r\n\tvar closer = document.querySelector('.close-bulletin');\r\n\tvar mainContainer = document.querySelector('.main-container');\r\n\tvar bodyInner = document.querySelector('.body-inner');\r\n\tvar header = document.querySelector('header.mainHeader') || document.querySelectorAll('header')[0];\r\n\r\n\t//checking to make sure all vars exist so whole bundle will not throw an error\r\n\tif (!obj || !closer || !mainContainer || !bodyInner || !header) { return };\r\n\r\n\tfunction moveBulletin() {\r\n\t\tif (!obj.classList.contains(movedClass) && Modernizr.mq(\"(max-width: 767px)\")) {\r\n\t\t\t//move bulletin to main container if on small screensizes\r\n\t\t\tmainContainer.insertBefore(obj, mainContainer.childNodes[0]);\r\n\t\t\tobj.classList.add(movedClass);\r\n\r\n\t\t} else if (obj.classList.contains(movedClass) && !Modernizr.mq(\"(max-width: 767px)\")) {\r\n\t\t\t//move bulletin back bodyInner if the screen size goes above sm mq and if it has moved class\r\n\t\t\tbodyInner.insertBefore(obj, bodyInner.childNodes[0])\r\n\t\t\tobj.classList.remove(movedClass);\r\n\t\t}\r\n\t};\r\n\r\n\t//if bulletin exists wraps all functions\r\n\tif (obj && !obj.classList.contains(loadedClass)) {\r\n\r\n\t\tmoveBulletin();\r\n\t\tobj.classList.add(loadedClass);\r\n\r\n\r\n\t\tif (obj.classList.contains(loadedClass)) {\r\n\t\t\tbodyInner.classList.add('hasBulletin');\r\n\t\t\tmainContainer.style.paddingTop = '0px';\r\n\t\t\theader.style.position = 'relative';\r\n\t\t}\r\n\t\t//makes the header stick to the top after scrolling when bulletin is open\r\n\t\tfunction bulletinScroll() {\r\n\t\t\tvar objHeight = obj.offsetHeight;\r\n\t\t\tvar headerHeight = header.offsetHeight;\r\n\t\t\t//pageYOffest is part of the window api and has better cross broswer support than scrollY\r\n\t\t\t//see mdn link: https://developer.mozilla.org/en-US/docs/Web/API/Window/pageYOffset\r\n\t\t\tvar currentPosition = window.pageYOffset;\r\n\r\n\t\t\t//added or check for moved class since the header needs to always be position fixed on mobile\r\n\t\t\tif ((objHeight <= currentPosition) || obj.classList.contains(movedClass)) {\r\n\t\t\t\t//resticks header on scroll down\r\n\t\t\t\theader.style.position = 'fixed';\r\n\t\t\t\tmainContainer.style.paddingTop = headerHeight + 'px';\r\n\t\t\t\theader.classList.add(scrolledClass);\r\n\r\n\t\t\t} else {\r\n\t\t\t\theader.style.position = 'relative';\r\n\t\t\t\theader.classList.remove(scrolledClass);\r\n\t\t\t\tmainContainer.style.paddingTop = '0px';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('scroll', function () {\r\n\t\t\tbulletinScroll();\r\n\t\t});\r\n\t\t//had to remove setTimeout because it was causing bulletin to occasionally not show up\r\n\t\t['orientation', 'resize'].forEach(function (event) {\r\n\t\t\twindow.addEventListener(event, function () {\r\n\t\t\t\tmoveBulletin();\r\n\t\t\t\tbulletinScroll();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// closes bulletin by removing loaded class on click\r\n\t\tcloser.addEventListener('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tobj.classList.remove(loadedClass);\r\n\t\t});\r\n\t}//if bulletin exists wraps all functions\r\n};","//ash functions partial\r\nvar $$ash = {\r\n\t//descriptions of custom global objects\r\n\t//ajaxFail = display failure message to the user when there is a server error with the ajax request\r\n\t//mq = global variables for media queries\r\n\t//formSuccess = display success message to the user when a form is submitted successfully\r\n\t//browserHist = a collection of browser history API functions\r\n\t//userList = a collection of functions that can be applied to the user-list, such as removeUser, removeItem, and tempErr (tempErr is currently not being used)\r\n\t//initSelect2 = if not on a touch device and the select2 prototype constructor exists, then run select2 on all select elements on the page\r\n\t//templateInitHelper = binds the template rendering to an event (click, dropdown change, etc) and sets the triggers\r\n\t//handlebarsInit = initialize handlebars by running $$ash.getHandlebarsTemplateAndJson with a $$ash.renderTemplate callback\r\n\t//getTemplateJson = make an ajax call to retrieve the json data only\r\n\t//getHandlebarsTemplate = make an ajax call to retrieve the handlebars template only\r\n\t//getTemplateData = use json object if it is provided, or make an ajax call to retrieve json data, then make an ajax call to retrieve the template and render it on the page\r\n\t//getHandlebarsTemplateAndJson = make ajax calls to retrieve the handlebars template and json data when both are missing\r\n\t//renderTemplate = insert already compiled handlebars template into target container\r\n\t//insertTemplateViaDropdown = insert portion of already compiled handlebars template into target container on dropdown change\r\n\t//insertTemplateViaButton = insert portion of already compiled handlebars template into target container on button click\r\n\t//validate = add validation classes and markup to object\r\n\t//clearValidation = remove validation classes and markup from object\r\n\t//openModal = set up modal windows using the ashModal plugin that will be triggered by a click on a .createModal link\r\n\t//renderModal = pass object to $$ash.runModal function\r\n\t//runModal = triggers the event handler to open the modal\r\n\t//getCallback = convert a dot notated function string into an object to be returned and called\r\n\t//formatNum = format number with comma and decimal if one exists\r\n\t//updateProgress = updates .user-progress progress bars\r\n\t//unstringJSON = parses 'data' into JSON if 'data' is a string\r\n\t//getTypeKit = create typekit script link, configure it, and add it to the head tag before any other script tags\r\n\t//cardsEqualHeight = when flexbox is not supported, run equalheights plugin on cards (only used in challenges as of 3/31/2015)\r\n\t//setDefaultOption = set the default option of the select element with the placeholder text\r\n\t//flexheightFallback = when flexbox is not supported, run equalheights plugin on all .flex-content items under a .flexheight parent\r\n\t//removeButtonOnSubmit = remove form submit button on form submit to prevent multiple clicks\r\n\t//serializeDataToObject = serialize form data and store in an object to be passed along in a form submit\r\n\t//reloadOnTimeout = if ajax request times out and returns a 401 status code, reload the page\r\n\t//ajax = submit ajax request with the default method GET\r\n\t//connectedWidgetInit = initialize the Connected! activity widget on the HYR dashboard\r\n\t//ashModalPrinter = opens a new browser window and formats the content to be printed\r\n\t//addLoader = add animated loader graphic while content is updated\r\n\t//removeLoader = remove the animated loader graphic\r\n\t//preventDefaultFormSubmit = prevent default form submit action from .ajaxPost forms\r\n\t//metaNavInit = initialize click functionality to show/hide user info in the off-canvas navigation on mobile screen sizes\r\n\t//viewMore = function run on click of 'view more' buttons to display addition list content\r\n\t//chatterPost = post new challenge chatter message to chatter feed on success of json retrieval, or display error message\r\n\t//prepopulateDate = set end date of a matched date input\r\n\t//convertDate = convert any date to ISO format. Also accepts parameters to change the month, day, and year of returned date\r\n\t//setHiddenInput = set the hidden input via target id attribute\r\n\t//formatter = general formatter that can accept different types (e.g., phone, date, etc) and spit out formatted version of the string\r\n\t//scroller =\r\n\t//storage.local.set = set a localStorage key/value pair\r\n\t//storage.local.get = get a localStorage value from a key\r\n\t//storage.session.set = set a sessionStorage key/value pair\r\n\t//storage.session.get = get a sessionStorage value from a key\r\n\t//storeValues = collect name/value pairs to store from specific data attributes and store them in specified storage\r\n\t//displayValues = get stored values from local or session storage and write them to elements on page\r\n\t//populateFields = populate a set of fields from json object, also has ability to disable the fields that are populated\r\n\t//scrollThrottle = throttles firing of scroll events\r\n\t//removeSelectEmptyOption = remove empty option tags on selects if the select's placeholder exists and is not only whitespace\r\n\t//initializeDonutChart = set up the donut chart by running ajax call to get the data for the chart\r\n\t//openModalFromTemplate = opens a modal from within a Handlebars template; modal content also comes from a separate handlebars template - allows for dynamic modal containers that update depending on what data is passed in\r\n\t//enableOnCheck = enables form submit button only when set conditions are met\r\n\r\n\t// if old version, arg1 = target, arg2 = errorMessage(s), arg3 = xhr object, arg4 = errorMessage position\r\n\tajaxFail: function (arg1, arg2, arg3, arg4) {\r\n\t\t// to maintain backwards compatability, ajaxFail will use duck-typing to determine whether to use the old version of\r\n\t\t// ash.ajax or the new one.\r\n\t\tvar useOldVersion = (function useOldVersionTest() {\r\n\t\t\tif (arg1 == null || arguments.length > 1 || arg1 instanceof jQuery || arg1 instanceof HTMLElement || typeof arg1 === 'string') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}());\r\n\r\n\t\tvar target;\r\n\t\tvar errorMessage;\r\n\t\tvar xhr;\r\n\t\tvar position;\r\n\r\n\t\tfunction removeErrorsOnPage() {\r\n\t\t\tvar errors = $u('.error'); // errors already on the page\r\n\r\n\t\t\terrors.forEach(function (obj) {\r\n\t\t\t\tobj.parentNode.removeChild(obj);\r\n\r\n\t\t\t\tTweenLite.killTweensOf(obj);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction determineTarget(obj) {\r\n\t\t\tvar target;\r\n\r\n\t\t\tfunction useDefaultTarget() {\r\n\t\t\t\tif ($u('.main-content').length) {\r\n\t\t\t\t\treturn $u('.main-content')[0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//else\r\n\t\t\t\treturn document.body;\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tif (obj) {\r\n\t\t\t\t\tif (jQuery && obj instanceof jQuery && obj.length) {\r\n\t\t\t\t\t\ttarget = obj[0];\r\n\t\t\t\t\t} else if (typeof obj === 'string') {\r\n\t\t\t\t\t\ttarget = document.querySelector(obj) || useDefaultTarget();\r\n\t\t\t\t\t} else if (obj instanceof HTMLElement && document.body.contains(obj)) {\r\n\t\t\t\t\t\ttarget = obj;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttarget = useDefaultTarget();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget = useDefaultTarget();\r\n\r\n\t\t\t\t\tposition = 'prepend'; //don't like this here but it works.\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\ttarget = useDefaultTarget();\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\tfunction createErrorMessage(message) {\r\n\t\t\tvar output = document.createElement('div');\r\n\t\t\tvar errorMessage;\r\n\r\n\t\t\tif (!message) {\r\n\t\t\t\terrorMessage = document.createElement('span');\r\n\t\t\t\terrorMessage.textContent = 'This request could not be completed. Please try again or contact us.';\r\n\t\t\t} else {\r\n\t\t\t\tif (message instanceof Array) {\r\n\t\t\t\t\tif (useOldVersion) {\r\n\t\t\t\t\t\terrorMessage = document.createElement('span');\r\n\t\t\t\t\t\terrorMessage.textContent = message[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terrorMessage = document.createElement('ul');\r\n\r\n\t\t\t\t\t\tmessage.forEach(function (obj) {\r\n\t\t\t\t\t\t\tvar listItem = document.createElement('li');\r\n\r\n\t\t\t\t\t\t\tlistItem.textContent = obj.message;\r\n\t\t\t\t\t\t\terrorMessage.appendChild(listItem);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\terrorMessage = document.createElement('span');\r\n\t\t\t\t\terrorMessage.innerHTML = message;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\toutput.classList.add('error');\r\n\t\t\toutput.appendChild(errorMessage);\r\n\r\n\t\t\treturn output;\r\n\t\t}\r\n\r\n\t\tfunction insertErrorMessage(target, messageMarkup, position) {\r\n\t\t\tposition = position || 'before';\r\n\r\n\t\t\tswitch (position) { //position loader in relation to select obj\r\n\t\t\t\tcase 'replace':\r\n\t\t\t\t\ttarget.innerHTML = '';\r\n\t\t\t\t\ttarget.appendChild(messageMarkup);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'prepend':\r\n\t\t\t\t\ttarget.insertBefore(messageMarkup, target.firstChild);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'append':\r\n\t\t\t\t\ttarget.appendChild(messageMarkup);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'before':\r\n\t\t\t\t\ttarget.parentNode.insertBefore(messageMarkup, target);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'after':\r\n\t\t\t\t\ttarget.parentNode.insertBefore(messageMarkup, target.nextSibling);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\ttarget.parentNode.insertBefore(messageMarkup, target);\r\n\t\t\t}\r\n\r\n\t\t\tTweenLite\r\n\t\t\t\t.fromTo(messageMarkup, 0.75, {\r\n\t\t\t\t\tcss: { height: '0', padding: '0', opacity: '0' }\r\n\t\t\t\t}, {\r\n\t\t\t\t\tcss: { height: 'auto', padding: '10px 32px', opacity: '1' }\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction reloadIfExpired(xhr) {\r\n\t\t\tvar status;\r\n\r\n\t\t\tif (xhr) {\r\n\t\t\t\tstatus = xhr.status;\r\n\r\n\t\t\t\tif (status === 302 || status === 401) {\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t(function init() {\r\n\t\t\tvar errorObj;\r\n\t\t\tvar errorTarget;\r\n\t\t\tvar errorMessageDomElement;\r\n\r\n\t\t\tremoveErrorsOnPage();\r\n\r\n\t\t\tif (useOldVersion) {\r\n\t\t\t\ttarget = arg1;\r\n\t\t\t\terrorMessage = arg2;\r\n\t\t\t\txhr = arg3;\r\n\t\t\t\tposition = arg4;\r\n\t\t\t} else {\r\n\t\t\t\ttarget = arg1.target;\r\n\t\t\t\txhr = arg1.response;\r\n\t\t\t\tposition = arg1.position;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\terrorObj = arg1.response.responseJSON.responseStatus;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\terrorObj = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\terrorMessage = (function determineErrorMessage() {\r\n\t\t\t\t\tvar customMessage = arg1.customMessage;\r\n\t\t\t\t\tvar errorsArray = errorObj.errors;\r\n\r\n\t\t\t\t\tif (customMessage) {\r\n\t\t\t\t\t\treturn customMessage\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (errorsArray instanceof Array && errorsArray.length) {\r\n\t\t\t\t\t\treturn errorsArray;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn errorObj.message;\r\n\t\t\t\t}());\r\n\t\t\t}\r\n\r\n\t\t\treloadIfExpired(xhr);\r\n\r\n\t\t\terrorTarget = determineTarget(target);\r\n\t\t\terrorMessageDomElement = createErrorMessage(errorMessage);\r\n\r\n\t\t\tinsertErrorMessage(errorTarget, errorMessageDomElement, position);\r\n\t\t}());\r\n\t},\r\n\t//Usage example: $$ash.mq('sm', 'min')\r\n\tmq: function (num, exp) {\r\n\t\tvar size,\r\n\t\t\tdef = false;\r\n\t\tswitch (num) {\r\n\t\t\tcase 'xxs':\r\n\t\t\t\tnum = 320;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'xs':\r\n\t\t\t\tnum = 500;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sm':\r\n\t\t\t\tnum = 767;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'md':\r\n\t\t\t\tnum = 992;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'lg':\r\n\t\t\t\tnum = 1200;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tnum = num; //allows usage of manually entered pixel width in the call, for 'abnormal' widths\r\n\t\t\t\tdef = true;\r\n\t\t}\r\n\t\tswitch (exp) {\r\n\t\t\tcase 'min':\r\n\t\t\t\texp = 'min-width';\r\n\t\t\t\tnum = def ? num : num + 1; //adds 1 pixel if the expression is min-width and size is not entered manually\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\texp = 'max-width';\r\n\t\t}\r\n\t\tsize = '(' + exp + ': ' + num + 'px' + ')';\r\n\t\treturn size;\r\n\t},\r\n\r\n\tformSuccess: function (obj, response) {\r\n\t\tresponse = $$ash.unstringJSON(response);\r\n\t\t//use \"resetForm\" class to trigger this function\r\n\t\tif (response.error === true) {\r\n\t\t\t$$ash.ajaxFail(obj, response.errorMessage);\r\n\t\t} else {\r\n\t\t\tvar cont = obj.parent(),\r\n\t\t\t\tmessageMarkup = $('
      ', { //create a div with class message to put the message into\r\n\t\t\t\t\t'class': 'status-message success',\r\n\t\t\t\t\t'style': 'display: none'\r\n\t\t\t\t});\r\n\t\t\tmessageMarkup.html('

      ' + response.message + '

      ');\r\n\t\t\tobj.siblings('.status-message.success').remove().end().before(messageMarkup);\r\n\r\n\t\t\tobj[0].reset();\r\n\t\t\tobj.find('select').select2('data', null); //reset select2\r\n\r\n\t\t\tmessageMarkup.slideDown();\r\n\t\t}\r\n\t},\r\n\thistory: {\r\n\t\treplaceState: function (data, title, url) { //save page state\r\n\t\t\tif (Modernizr.history) { //if html5 history api supported\r\n\t\t\t\thistory.replaceState(data, title, url);\r\n\t\t\t}\r\n\t\t},\r\n\t\tpushState: function (data, title, url) { //save page state into queue\r\n\t\t\tif (Modernizr.history) { //if html5 history api supported\r\n\t\t\t\thistory.pushState(data, title, url);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tbrowserHist: {\r\n\t\tsave: function (histArr, title, url) { //save page state into queue\r\n\t\t\tif (Modernizr.history) { //if html5 history api supported\r\n\t\t\t\thistory.pushState(histArr, title, url);\r\n\t\t\t}\r\n\t\t},\r\n\t\tpop: function (ele) { //listener to return page stat from queue\r\n\t\t\tif (Modernizr.history) { //if html5 history api supported\r\n\t\t\t\twindow.addEventListener('popstate', function (e) {\r\n\t\t\t\t\tele.trigger('rtnData', { data: e });\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tuserList: {\r\n\t\tremoveUser: function (target, contClass) {\r\n\t\t\tvar ele = target.closest('li'),\r\n\t\t\t\tcont = ele.closest(contClass),\r\n\t\t\t\tuserId = target.attr('data-user-id');\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: { user: userId },\r\n\t\t\t\turl: $(cont).data('ash-url'),\r\n\t\t\t\tsuccess: function (response, textStatus, xhr) {\r\n\t\t\t\t\t$$ash.reloadOnTimeout(xhr);\r\n\r\n\t\t\t\t\tif (response.error) {\r\n\t\t\t\t\t\t$$ash.ajaxFail(ele.parent(), response.errorMessage);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$$ash.userList.removeItem(ele, response);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: function (xhr) {\r\n\t\t\t\t\t$$ash.ajaxFail(ele.parent(), undefined, xhr);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tremoveItem: function (ele, r) {\r\n\t\t\tvar thisHeight = ele.outerHeight();\r\n\t\t\tele.addClass('ajax-success').css('height', thisHeight + 'px');\r\n\t\t\tele.find('div').fadeOut({\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tcomplete: function () {\r\n\t\t\t\t\tele.html('
      ' + r + '
      ');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\ttempErr: function (ele) {\r\n\t\t\tele.text('error');\r\n\t\t\tele.addClass('error');\r\n\t\t}\r\n\t},\r\n\t//init select 2 when not init with document ready\r\n\tinitSelect2: function () {\r\n\t\t//if not a touch device, run select2\r\n\t\tif (!Modernizr.touchevents && $.fn.select2) {\r\n\t\t\t$('select').select2({\r\n\t\t\t\tminimumResultsForSearch: -1,\r\n\t\t\t\tformatNoMatches: function (term) {\r\n\t\t\t\t\treturn 'Loading...';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t//TEMPLATE RENDERING ***this function is outdated if possible avoid using in future***\r\n\t//To initiate, add the 'template-render-init' class to the 1) {\r\n\t\t\t//loop through each attribute to transfer them to the new datepicker input\r\n\t\t\t$(target.attributes).each(function () {\r\n\t\t\t\t//exclude the type attribute (we don't want to carry that over to the new input)\r\n\t\t\t\tif (this.nodeName !== 'type') {\r\n\t\t\t\t\tif (this.nodeName === 'class') {\r\n\t\t\t\t\t\tclassAttr = true;\r\n\t\t\t\t\t\t//transfer any existing classes and add the 'date-picker' class to the forward-facing input\r\n\t\t\t\t\t\tdispInput += 'class=\"' + this.value + ' date-picker\" ';\r\n\t\t\t\t\t} else if (this.nodeName === 'name' && validateDate) {\r\n\t\t\t\t\t\t//add an identifiable id to the hidden input using the name attribute value\r\n\t\t\t\t\t\t//transfer the original name attribute value to the hidden input\r\n\t\t\t\t\t\tparseInput += 'id=\"' + this.value + 'Parse\" name=\"' + this.value + '\" ';\r\n\t\t\t\t\t\t//do not display a name value on the forward-facing input to prevent display input from submitting data\r\n\t\t\t\t\t\t//add a target-id attribute to relate the forward-facing input to its corresponding hidden input\r\n\t\t\t\t\t\tdispInput += 'data-ash-target-id=\"' + this.value + 'Parse\" ';\r\n\t\t\t\t\t} else if (this.nodeName === 'value' && this.value !== '') {\r\n\t\t\t\t\t\tif (validateDate) {\r\n\t\t\t\t\t\t\t//set the hidden input value to the iso format\r\n\t\t\t\t\t\t\tparseInput += 'value=\"' + this.value + '\" ';\r\n\t\t\t\t\t\t\t//set the forward-facing value to the standard format\r\n\t\t\t\t\t\t\tdispInput += 'value=\"' + $$ash.convertDate({ str: this.value, iso: false }) + '\" ';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//set the hidden input value to the iso format\r\n\t\t\t\t\t\t\tparseInput += 'value=\"' + this.value + '\" ';\r\n\t\t\t\t\t\t\t//set the forward-facing value to the iso format\r\n\t\t\t\t\t\t\tdispInput += 'value=\"' + this.value + '\" ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//transfer any remaining attributes and their values\r\n\t\t\t\t\t\tdispInput += this.nodeName + '=\"' + this.value + '\" ';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t//if date input only has type attribute, be sure to add the 'date-picker' class to initialize jQuery UI Datepicker\r\n\t\t} else {\r\n\t\t\tdispInput += 'class=\"date-picker\" ';\r\n\t\t}\r\n\t\t//if date input had additional attributes besides type=\"date\", but no class attribute, add the 'date-picker' class to initialize jQuery UI Datepicker\r\n\t\tif (!classAttr) {\r\n\t\t\tdispInput += 'class=\"date-picker\" ';\r\n\t\t}\r\n\t\tdispInput += '/>';\r\n\t\tif (validateDate) {\r\n\t\t\tparseInput += '/>';\r\n\t\t\t$(this).after(parseInput);\r\n\t\t}\r\n\t\t// 1. add 'date-cont' class to parent\r\n\t\t// 2. add svg span after the existing date input to hold the calendar icon\r\n\t\t// 3. add hidden input after the svg icon\r\n\t\t// 4. replace the existing date input with the new text input\r\n\t\t$(this).parent().addClass('date-cont').end().after('').replaceWith(dispInput);\r\n\t});\r\n\tpickerInput = $('.date-picker');\r\n\r\n\tif ($.datepicker) { //check to see if datepicker is available TODO: find a way for datepicker to work in HMS\r\n\t\tif (validateDate) {\r\n\t\t\tpickerInput.datepicker({\r\n\t\t\t\taltField: '#' + $(this).attr('data-ash-target-id'),\r\n\t\t\t\taltFormat: 'yy-mm-dd',\r\n\t\t\t\tchangeMonth: true,\r\n\t\t\t\tchangeYear: true,\r\n\t\t\t\tyearRange: 'c-100:c+20',\r\n\t\t\t\tminDate: new Date(1899, 1 - 1, 1),\r\n\t\t\t\tonClose: function (date) {\r\n\t\t\t\t\tvar obj = this;\r\n\t\t\t\t\tif (obj.hasAttribute('data-ash-match')) {\r\n\t\t\t\t\t\t$$ash.prepopulateDate(obj, date);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if validate class, set hidden input\r\n\t\t\t\t\tif ($(obj).hasClass('validate')) {\r\n\t\t\t\t\t\t$$ash.setHiddenInput(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tpickerInput.datepicker({\r\n\t\t\t\tdateFormat: opts.format || 'yy-mm-dd',\r\n\t\t\t\tchangeMonth: true,\r\n\t\t\t\tchangeYear: true,\r\n\t\t\t\tyearRange: 'c-100:c+20',\r\n\t\t\t\tminDate: new Date(1899, 1 - 1, 1),\r\n\t\t\t\tonClose: function (date) {\r\n\t\t\t\t\tvar obj = this;\r\n\t\t\t\t\tif (obj.hasAttribute('data-ash-match')) {\r\n\t\t\t\t\t\t$$ash.prepopulateDate(obj, date);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if validate class, set hidden input\r\n\t\t\t\t\tif ($(obj).hasClass('validate')) {\r\n\t\t\t\t\t\t$$ash.setHiddenInput(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (typeof ko !== 'undefined') { //if ko is used, move value from data tag to val\r\n\t\t\tpickerInput.each(function () {\r\n\t\t\t\tvar obj = $(this),\r\n\t\t\t\t\tdate = obj.attr('data-ash-populate');\r\n\t\t\t\tif (date) {\r\n\t\t\t\t\tobj.val(date);\r\n\t\t\t\t\tobj.removeAttr('data-ash-populate');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t$('.svg-date-picker').click(function () {\r\n\t\t$(this).prev().datepicker('show');\r\n\t});\r\n\r\n\t$(document).trigger('datePickerInitialized');\r\n\r\n\t$$ashVal.init();\r\n}\r\n\r\n$(document).ready(function () {\r\n\t//devices with touch and larger than 767 - ipad\r\n\tif (Modernizr.mq($$ash.mq('sm', 'min')) && Modernizr.touchevents) {\r\n\t\t$('.dropdown-toggle > a').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\t}\r\n\t//accordion using gsap\r\n\tif ($('.accordion-header').length) {\r\n\t\t$('.accordion-header').each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\ttargetContent = $(this).next();\r\n\r\n\t\t\tobj.on('click', function (e) {\r\n\t\t\t\tif (targetContent.hasClass('expanded')) {\r\n\t\t\t\t\tTweenLite.to(targetContent, 0.3, { height: 0 });\r\n\t\t\t\t\ttargetContent.removeClass('expanded');\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttargetContent.addClass('expanded');\r\n\t\t\t\t\ttargetContent.css({ 'height': 'auto' });\r\n\t\t\t\t\tTweenLite.from(targetContent, 0.3, { height: 0 });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\t$(this).trigger('$$ash:ready'); //custom event initially created for landing page connected widget. Fires custom event \"$$ash:ready\" on the document and guarantees that $$ash is defined.\r\n\r\n\t//if loader needs to run on document ready as the page is first loading\r\n\tif ($('.loaderInit').length) {\r\n\t\tvar obj = $('.loaderInit');\r\n\r\n\t\t$$ash.addLoader(obj, 'append', 'center');\r\n\t}\r\n\r\n\t$(' .radio-img-cont').each(function () {\r\n\t\tvar inp = $(this).find('input'),\r\n\t\t\tinpName = inp.attr('name'),\r\n\t\t\totherInp = $('input[name=\"' + inpName + '\"]').closest('.radio-img-cont').find('.radio-img-cont-img'), //need to turn off checked state on other radio options for this question\r\n\t\t\timg = $(this).find('.radio-img-cont-img'),\r\n\t\t\tisChecked;\r\n\r\n\t\tinp.on('change', function () {\r\n\t\t\tisChecked = inp.prop('checked');\r\n\t\t\tif (isChecked) {\r\n\t\t\t\totherInp.removeClass('checked');\r\n\t\t\t\timg.addClass('checked');\r\n\t\t\t} else {\r\n\t\t\t\timg.removeClass('checked');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$('.radio-trigger').each(function () {\r\n\t\tvar cont = $(this),\r\n\t\t\tcontInputs = cont.find('input'),\r\n\t\t\trecCont = $('#' + cont.attr('data-radio-trigger-match')), //matching element that will receive selections base on conts radios\r\n\t\t\trecInputs = recCont.find('input');\r\n\r\n\t\tcontInputs.each(function () {\r\n\t\t\t$(this).on('change', function () {\r\n\t\t\t\t//on input change, see if this input triggers a match input\r\n\t\t\t\tif ($(this).attr('data-radio-trigger')) {\r\n\t\t\t\t\t//check the matched input\r\n\t\t\t\t\tvar match = recCont.find('#' + $(this).attr('data-radio-trigger')).prop('checked', true);\r\n\t\t\t\t\t//disable the non-matched inputs\r\n\t\t\t\t\trecInputs.not(match).attr('disabled', true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//if the input doesn't have a match, turn off disabled inputs\r\n\t\t\t\t\trecInputs.attr('disabled', false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\r\n\t//COMPONENT NAV\r\n\tvar compNavHolder = $('.component-nav-holder'), //holder for the mobile toggle nav\r\n\t\tcompNav = $('ul.component-nav'); //main component-nav\r\n\r\n\tif (compNav) {\r\n\t\t$(window).on('resize.compNav orientationchange.compNav', function () {\r\n\t\t\tcompNav.css('display', '');\r\n\t\t});\r\n\t}\r\n\t//open and close nav on mobile\r\n\tcompNavHolder.on('click', function () {\r\n\t\tcompNav.slideToggle();\r\n\t});\r\n\t//toggle selected (open) class on navHolder\r\n\t$('div.component-nav-holder').on('click', function () {\r\n\t\t$(this).toggleClass('selected');\r\n\t});\r\n\t//accordion holder\r\n\tvar accordionHolder = $('.accordion-nav-holder'), //holder for the mobile toggle accordion\r\n\t\taccordion = $('ul.accordion'); //main accordion\r\n\r\n\t//open and close accordion on mobile\r\n\taccordionHolder.on('click', function () {\r\n\t\taccordion.slideToggle();\r\n\t});\r\n\t//main list items in component nav\r\n\tfunction accordionComponent() {\r\n\t\t$('ul.component-nav > li, ul.accordion > li').each(function () {\r\n\t\t\tvar cont = $(this), //category item\r\n\t\t\t\tobj = $(this).children(':first-child').nextUntil('ul').addBack(), //set of selectors user can click\r\n\t\t\t\tlist = cont.find('ul'), //sub nav\r\n\t\t\t\tsubnavSelected = cont.find('.selected'), //current selected subnav item\r\n\t\t\t\tindicator = cont.find('.indicator'); //arrow indicator used to display when the menu is open\r\n\r\n\t\t\tobj.on('click', function () {\r\n\t\t\t\t//toggle subnav visibility\r\n\t\t\t\tif (list.length > 1) {\r\n\t\t\t\t\tlist.slideToggle();\r\n\t\t\t\t}\r\n\t\t\t\t//toggle selected state\r\n\t\t\t\tfunction toggleSel() {\r\n\t\t\t\t\tcont.toggleClass('selected');\r\n\t\t\t\t}\r\n\t\t\t\ttoggleSel();\r\n\t\t\t});\r\n\t\t\t//change ui for subnav items when clicked\r\n\t\t\t(list.children()).on('click', function () {\r\n\t\t\t\tsubnavSelected.removeClass('selected');\r\n\t\t\t\t$(this).addClass('selected');\r\n\t\t\t\tsubnavSelected = $(this);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\taccordionComponent();//call this for ASHCO accordion\r\n\t//set print functionality to any a tag with \"print\" in the class\r\n\t$('.trigger-print').on('click', function (event) {\r\n\t\tevent.preventDefault();\r\n\t\twindow.print();\r\n\t});\r\n\r\n\tif ($('.placeholder-watch').length) {\r\n\t\t$('.placeholder-watch').each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tobjNext = obj.next(),\r\n\t\t\t\ttext = obj.text();\r\n\t\t\tif (objNext.attr('placeholder')) {\r\n\t\t\t\tobjNext.removeAttr('placeholder');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t$('.readTranscript').on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar transcript = $('#transcript'),\r\n\t\t\theaderOffset = (Modernizr.mq('screen and (max-width: 767px)')) ? 0 : $('header').height();\r\n\t\ttranscript.trigger('click');\r\n\t\t$('html, body').animate({\r\n\t\t\tscrollTop: (transcript.offset().top - headerOffset)\r\n\t\t}, 2000);\r\n\t});\r\n\r\n\t$('ul.exp-data-gallery').each(function () {\r\n\t\t$(this).ashExpDataGallery();\r\n\t});\r\n\r\n\t//USER LISTS\r\n\t$('.user-list').on('click', '.remove', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$$ash.userList.removeUser($(this), '.user-list');\r\n\t});\r\n\t$.datePickerSetup = function (opts) {\r\n\t\t//Find out where to retrieve the asset\r\n\t\tvar assetPrefixBase = (typeof window.$$assetPrefix === 'string') ? window.$$assetPrefix + '/Base/assets' : '/App_Themes/Base';\r\n\t\t//IF input type date not supported\r\n\t\tif ((!Modernizr.inputtypes.date)) {\r\n\t\t\t//JQUERY UI DATE PICKER\r\n\t\t\tif ($('input[type=date]').length) {\r\n\t\t\t\tif (typeof $.datepicker === 'undefined') {\r\n\t\t\t\t\t$$ash.ajax({\r\n\t\t\t\t\t\turl: assetPrefixBase + '/lib/jquery-ui-datepicker-1.11.1.min.js',\r\n\t\t\t\t\t\tasync: false,\r\n\t\t\t\t\t\tdataType: \"script\"\r\n\t\t\t\t\t}).done(function () {\r\n\t\t\t\t\t\tsetupJqueryDatepicker(opts);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetupJqueryDatepicker(opts);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//IF TOUCH IS SUPPORTED\r\n\t\t} else {\r\n\t\t\tif ($u('input[type=date]')) {\r\n\t\t\t\tfor (var i = 0; i < $u('input[type=date]').length; i++) {\r\n\t\t\t\t\tvar obj = $u('input[type=date]')[i];\r\n\r\n\t\t\t\t\tif (obj.className.indexOf('startDate') !== -1) {\r\n\t\t\t\t\t\tobj.addEventListener('blur', function () {\r\n\t\t\t\t\t\t\t$$ash.prepopulateDate(obj, null);\r\n\t\t\t\t\t\t}, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t$.datePickerSetup({\r\n\t\tinitialLoad: true\r\n\t});\r\n\t//EClasses, tab-template is the quiz container where the quiz will be displayed\r\n\t//trigger-quiz is the initial quiz button to \"take the quiz\"\r\n\t$('#tab-template').on('click', 'a.trigger-quiz', function (e) {\r\n\t\t//data attrs are on tab-template container, make obj = tab-template //trigr, jsonUrl, templateUrl, targetId, callback\r\n\t\te.preventDefault();\r\n\t\te.currentTarget.disabled = true;\r\n\t\tvar obj = $(e.target).closest('#tab-template');\r\n\t\tif (!obj.hasClass('content-container')) {\r\n\t\t\tobj.addClass('content-container');\r\n\t\t}\r\n\t\t$$ash.getTemplateData(obj, obj.attr('data-json-url'), obj.attr('data-ash-template-url'), obj.attr('data-ash-target-id'), quizSubmit);\r\n\t});\r\n\tvar quizSubmit = function () {\r\n\t\t$('#tab-template').one('submit', 'form.quiz', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tajaxData = obj.returnCheckedInputsAsObject();\r\n\r\n\t\t\t$$ash.ajaxFormSubmit($(this), {\r\n\t\t\t\tdata: ajaxData,\r\n\t\t\t\tcbOpts: { ele: obj },\r\n\t\t\t\tcallback: quizFeedback\r\n\t\t\t}); //be sure to pass the form element along with a callback function\r\n\t\t});\r\n\t};\r\n\tfunction quizFeedback(response, textStatus, xhr, cbOpts) { //ele = form.quiz //response = json data\r\n\t\tvar ele = cbOpts.ele,\r\n\t\t\tobj = ele.closest('#tab-template'), //getting tab template\r\n\t\t\ttemplateCont = $('#tab-template');\r\n\r\n\t\tresponse = $$ash.unstringJSON(response);\r\n\r\n\t\tif (response.quizPass === true) { //if quiz passes\r\n\t\t\t$$ash.removeLoader();\r\n\t\t\tele.parent().html(response.eClassContent); //load the congratulations page\r\n\t\t\ttemplateCont.removeClass('content-container');\r\n\t\t} else { //if quiz fails or there is error\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: obj.attr('data-ash-template-url'),\r\n\t\t\t\ttype: 'GET',\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tvar template = Handlebars.compile(data),\r\n\t\t\t\t\t\thtml = template(response);\r\n\r\n\t\t\t\t\t$$ash.removeLoader();\r\n\t\t\t\t\ttemplateCont.html(html);\r\n\t\t\t\t\t$$ashVal.scrollForm($('#tab-template form.quiz'));\r\n\t\t\t\t\tquizSubmit();\r\n\t\t\t\t},\r\n\t\t\t\terror: function (xhr) {\r\n\t\t\t\t\t$$ash.ajaxFail(obj, undefined, xhr);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t//STYLED FILE UPLOAD\r\n\tif ($('.file-upload').length) {\r\n\t\t$('.file-upload').each(function () {\r\n\t\t\tvar fileUploadObj = $(this),\r\n\t\t\t\ttest = fileUploadObj.find('input[type=\"file\"]');\r\n\r\n\t\t\t(function fileUpload() {\r\n\t\t\t\tvar obj = test,\r\n\t\t\t\t\tajaxUrl = obj.attr('data-ajax-url'),\r\n\t\t\t\t\tajaxImg = obj.attr('data-ajax-image'),\r\n\t\t\t\t\ttargetImage = $('#' + ajaxImg),\r\n\t\t\t\t\tfileNameText = fileUploadObj.find('.upload-status-filename');\r\n\r\n\t\t\t\tobj.ashFileUpload({\r\n\t\t\t\t\t\"action\": ajaxUrl,\r\n\t\t\t\t\t\"targetImage\": targetImage\r\n\t\t\t\t});\r\n\r\n\t\t\t\tobj.on('change', function () {\r\n\t\t\t\t\tvar fileName = obj.val().split('/').pop().split('\\\\').pop();\r\n\r\n\t\t\t\t\tfileNameText.text(fileName);\r\n\r\n\t\t\t\t\t$(this).ashFileUpload({\r\n\t\t\t\t\t\t\"action\": ajaxUrl,\r\n\t\t\t\t\t\t\"targetImage\": targetImage\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t})();\r\n\t\t});\r\n\t}\r\n\r\n\tif ($('.tabs').length) {\r\n\t\tvar trigr = $('.tabs .tab.selected a'),\r\n\t\t\tjsonUrl = trigr.attr('data-json-url'),\r\n\t\t\ttemplateUrl = trigr.attr('data-ash-template-url'),\r\n\t\t\ttargetId = trigr.attr('data-ash-target-id'),\r\n\t\t\tnotTabsFilter = !$('.tabs').is('.tabsFilter'),\r\n\t\t\ttempID = $('#tab-template'),\r\n\t\t\thasCont,\r\n\t\t\tcallback;\r\n\r\n\t\tif (notTabsFilter) { //if not using tabs via filter, generate template\r\n\t\t\t$$ash.getTemplateData(trigr, jsonUrl, templateUrl, targetId, callback);\r\n\t\t}\r\n\r\n\t\t$('.tabs .tab a').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\ttrigr = $(this);\r\n\t\t\tjsonUrl = trigr.attr('data-json-url');\r\n\t\t\ttemplateUrl = trigr.attr('data-ash-template-url');\r\n\t\t\ttargetId = trigr.attr('data-ash-target-id');\r\n\t\t\thasCont = trigr.attr('data-ash-hascont');\r\n\t\t\t$('.error').remove();\r\n\t\t\tvar trigrLi = trigr.parent(),\r\n\t\t\t\tallTabs = trigrLi.siblings(),\r\n\t\t\t\ttabCont = $('#' + targetId);\r\n\t\t\ttabCont.html('');\r\n\t\t\tallTabs.removeClass('selected'); //remove selected class\r\n\t\t\tif (hasCont === 'true') { //if tab has its own container\r\n\t\t\t\ttabCont.removeClass('content-container');\r\n\t\t\t} else {\r\n\t\t\t\ttabCont.addClass('content-container');\r\n\t\t\t}\r\n\t\t\ttrigrLi.addClass('selected'); //add selected class on newly selected button\r\n\r\n\r\n\t\t\tif (notTabsFilter) { //if not using tabs via filter, generate template\r\n\t\t\t\t$$ash.getTemplateData(trigr, jsonUrl, templateUrl, targetId, callback);\r\n\t\t\t}\r\n\t\t});\r\n\t\t//equal width tabs for no flexbox browsers\r\n\t\tvar noFlexTab = $('.no-flexbox .tab');\r\n\t\tif (noFlexTab.length) {\r\n\t\t\t$(window).on('orientationchange resize', function () {\r\n\t\t\t\tif ($(window).width() < 768) {\r\n\t\t\t\t\tnoFlexTab.css({ 'width': '50%' });\r\n\t\t\t\t} else {\r\n\t\t\t\t\trunEqualCols();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t//jump to content based on the css id added to an html element\r\n\t$.jumpToContent = function () {\r\n\t\tvar toId = $.urlParam('jump'), //id where the url should take you\r\n\t\t\ttarget = $('#' + toId), //object in html to position browser\r\n\t\t\tstickyNav = $('.ash-sticky-nav'), //sticky nav object\r\n\t\t\tstickyNavHt = 0, //height of sticky navs\r\n\t\t\toffSet = 50;\r\n\r\n\t\tstickyNav.each(function () { //add up sticky nav heights\r\n\t\t\tif (($(this).is('nav') && $(this).css('display') !== 'none') || ($(this).is('header') && $(this).css('opacity') !== 0)) {\r\n\t\t\t\tstickyNavHt += $(this).outerHeight();\r\n\t\t\t\toffSet = 10;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//animate / scroll to place in the browser\r\n\t\t$('html, body').animate({\r\n\t\t\tscrollTop: target.offset().top - stickyNavHt - offSet\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\t//DONUT INIT\r\n\tvar donutChartHolder = $('.donut-chart');\r\n\tif (donutChartHolder.length) {\r\n\t\tif (!$$donutCallback) {\r\n\t\t\tvar $$donutCallback = null;\r\n\t\t}\r\n\t\tdonutChartHolder.each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tdonutWidth = $(this).width();\r\n\r\n\t\t\tobj.height(donutWidth).progressGraphInit(donutWidth, $$donutCallback);\r\n\t\t});\r\n\t}\r\n\t// NOTE: Remove ^^^ once the integration for vvv is complete as a part of #87579 - JW\r\n\t// Initialize donut chart\r\n\tvar donutChart = $u('.donutChart');\r\n\tif (donutChart) {\r\n\t\tdonutChart.forEach(function (element) {\r\n\t\t\t$$ash.initializeDonutChart(element);\r\n\t\t});\r\n\t}\r\n\r\n\t//CENTER ELEMENT\r\n\t$.fn.center = function () {\r\n\t\tthis.css(\"position\", \"fixed\");\r\n\t\tthis.css(\"top\", ($(window).height() / 2) - (this.outerHeight() / 2));\r\n\t\tthis.css(\"left\", ($(window).width() / 2) - (this.outerWidth() / 2));\r\n\t\treturn this;\r\n\t};\r\n\r\n\t//SEND PROGRESS INDICATOR MESSAGE\r\n\t$.fn.progressIndicator = function (options) {\r\n\t\tvar defaults = {\r\n\t\t\t'msg': 'message', //message to show\r\n\t\t\t'attachMsg': 'body', //location to attach message\r\n\t\t\t'triggerType': 'checkbox', //type of trigger sending message\r\n\t\t\t'buttonTrigger': false, //is trigger a button\r\n\t\t\t'buttonClass1': null, //triggers class name before click\r\n\t\t\t'buttonText1': null, //triggers button name before click\r\n\t\t\t'buttonClass2': null, //triggers class name after click\r\n\t\t\t'buttonText2': null, //triggers button name after click\r\n\t\t\t'limitSelection': false, //remove other select options\r\n\t\t\t'chgTxt': null, //element of text\r\n\t\t\t'authorize': false,\r\n\t\t\t'authorizeClass': 'authorized',\r\n\t\t\t'authorizeTrigger': null,\r\n\t\t\t'fadeInTime': 300,\r\n\t\t\t'fadeOutTime': 300,\r\n\t\t\t'DelayTime': 300,\r\n\t\t\t'allBtnClass': 'button',\r\n\t\t\t'callback': null\r\n\t\t};\r\n\r\n\t\tvar settings = $.extend({}, defaults, options);\r\n\r\n\t\treturn this.each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\to = settings,\r\n\t\t\t\tmsg = o.msg,\r\n\t\t\t\tattachMsg = o.attachMsg,\r\n\t\t\t\ttriggerType = o.triggerType,\r\n\t\t\t\tbuttonTrigger = o.buttonTrigger,\r\n\t\t\t\tbuttonClass1 = o.buttonClass1 !== null ? ' ' + o.buttonClass1 : '',\r\n\t\t\t\tbuttonText1 = o.buttonText1 !== null ? ' ' + o.buttonText1 : '',\r\n\t\t\t\tbuttonClass2 = o.buttonClass2 !== null ? ' ' + o.buttonClass2 : '',\r\n\t\t\t\tbuttonText2 = o.buttonText2 !== null ? ' ' + o.buttonText2 : '',\r\n\t\t\t\tlimitSelection = o.limitSelection,\r\n\t\t\t\tchgTxt = o.chgTxt,\r\n\t\t\t\tauthorize = o.authorize,\r\n\t\t\t\tauthorizeClass = o.authorizeClass,\r\n\t\t\t\tauthorizeTrigger = o.authorizeTrigger,\r\n\t\t\t\tfadeInTime = o.fadeInTime,\r\n\t\t\t\tfadeOutTime = o.fadeOutTime,\r\n\t\t\t\tDelayTime = o.DelayTime,\r\n\t\t\t\tallBtnClass = o.allBtnClass,\r\n\t\t\t\tcallback = o.callback,\r\n\t\t\t\tmodalLink = obj.find('a');\r\n\r\n\t\t\tif (authorize) {\r\n\t\t\t\tsetupAshModal(modalLink);\r\n\t\t\t}\r\n\r\n\t\t\tvar msgFrame = '' + msg + ''; //status message frame\r\n\r\n\t\t\tfunction showMessage() {\r\n\t\t\t\t$(msgFrame).hide().appendTo(attachMsg).center().fadeIn(fadeInTime).delay(DelayTime).fadeOut(fadeOutTime, function () {\r\n\t\t\t\t\t$(this).remove();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction handleAuthorization(trigger) {\r\n\t\t\t\t//trigger authorize modal\r\n\t\t\t\ttrigger.find('.modalOpen').trigger('click.ashModal');\r\n\t\t\t\t//clear checkboxes of any selected facilities\r\n\t\t\t\t$('.' + allBtnClass).find('input[type=checkbox]').prop('checked', false);\r\n\r\n\t\t\t\t//function to handle click of authorization button in modal\r\n\t\t\t\t$('.' + authorizeTrigger).off('click').on('click', function () {\r\n\t\t\t\t\ttrigger.find('input[type=checkbox]').prop('checked', true).trigger('change');\r\n\t\t\t\t\tcallback(trigger);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction invokeChange(trigger) {\r\n\t\t\t\tvar triggerChecked = trigger.find('input[type=checkbox]').prop('checked') || trigger.hasClass('authorized'),\r\n\t\t\t\t\tbuttonClass;\r\n\r\n\t\t\t\t//if trigger is checked attached message in the center of the screen, fade in, delay, fadeout and remove msg\r\n\t\t\t\tif (triggerChecked) {\r\n\t\t\t\t\tshowMessage();\r\n\t\t\t\t\tif (limitSelection) {\r\n\t\t\t\t\t\tbuttonClass = $.trim(buttonClass1);\r\n\t\t\t\t\t\t$('.' + allBtnClass + '.' + buttonClass).not(trigger).hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if trigger is a button change the button class and text triggered settings\r\n\t\t\t\t\tif (buttonTrigger) {\r\n\t\t\t\t\t\ttrigger.removeClass('primary' + buttonClass1).addClass('secondary' + buttonClass2);\r\n\t\t\t\t\t\tif (chgTxt !== null) {\r\n\t\t\t\t\t\t\ttrigger.find(chgTxt).text(buttonText2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcallback(trigger);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (limitSelection) {\r\n\t\t\t\t\t\tbuttonClass = $.trim(buttonClass1);\r\n\t\t\t\t\t\t$('.' + allBtnClass + '.' + buttonClass).show();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if trigger is a button change the button class and text back to the original settings\r\n\t\t\t\t\tif (buttonTrigger) {\r\n\t\t\t\t\t\ttrigger.removeClass('secondary' + buttonClass2).addClass('primary' + buttonClass1);\r\n\t\t\t\t\t\tif (chgTxt !== null) {\r\n\t\t\t\t\t\t\ttrigger.find(chgTxt).text(buttonText1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcallback(trigger);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (triggerType === 'checkbox') {\r\n\t\t\t\tobj.find('input').on('click.select', function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tvar el = $(this).parent();\r\n\t\t\t\t\tif (authorize) {\r\n\t\t\t\t\t\thandleAuthorization(el);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tinvokeChange(el);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tshowMessage();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t//ASHMODAL\r\n\t$$ash.openModal();\r\n\r\n\t$('.radioFilter').each(function () {\r\n\t\tvar ashTrig = $(this),\r\n\t\t\t//use radioFilterCont for normal cases, survey-question for true surveys (ie: PHA)\r\n\t\t\tfilterItem = ashTrig.closest('.radioFilterCont').length ? ashTrig.closest('.radioFilterCont').find('.ashFilter') : ashTrig.closest('.survey-question').find('.ashFilter');\r\n\t\tashTrig.ashFilter({\r\n\t\t\tevent: 'change',\r\n\t\t\ttrigger: ashTrig.find('.radioFilterTrigger'),\r\n\t\t\tfilterItem: filterItem,\r\n\t\t\taddSelected: 'selected',\r\n\t\t\tfadeInDur: 1,\r\n\t\t\tfadeOutDur: 0\r\n\t\t});\r\n\t});\r\n\t//checkboxes with show/hide radio questions\r\n\t$('.checkbox-radio-group').each(function () {\r\n\t\tvar ashTrig = $(this);\r\n\t\tashTrig.ashFilter({\r\n\t\t\tevent: 'change',\r\n\t\t\ttrigger: ashTrig.find('.checkbox-radio-trigger'),\r\n\t\t\tfilterItem: ashTrig.find('.checkbox-radio-filter'),\r\n\t\t\tfadeInDur: 1,\r\n\t\t\tfadeOutDur: 0,\r\n\t\t\toffOption: true\r\n\t\t});\r\n\r\n\t\tashTrig.on('change.filterTriggerValidation', function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tradCont = obj.find('.radio-container'),\r\n\t\t\t\tvalCont = obj.find('.val-cont .radio-container'),\r\n\t\t\t\tradContSib = radCont.siblings('.tooltip-validation');\r\n\r\n\t\t\tif (obj.find('.checkbox-radio-trigger').is(':checked')) {\r\n\t\t\t\tradCont.not('.validate').addClass('validate');\r\n\t\t\t} else {\r\n\t\t\t\tvalCont.removeClass('validate watching').unwrap();\r\n\t\t\t\tradContSib.remove();\r\n\t\t\t\t$$ashVal.clearValidation(radCont);\r\n\t\t\t\tobj.find('input[type=radio]').prop('checked', false);\r\n\t\t\t}\r\n\r\n\t\t\tif ($('form.validate').length) {\r\n\t\t\t\t$$ashVal.init();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t//hide radio buttons inside checkboxes when checkbox is unchecked\r\n\t$('.checkbox-radio-group').each(function () {\r\n\t\tvar radioGroup = $(this),\r\n\t\t\tcheckboxParent = radioGroup.find('input[type=checkbox]');\r\n\t\t$(checkboxParent).on('change', function () {\r\n\t\t\tvar thisCheckbox = $(this);\r\n\t\t\tif (thisCheckbox.prop('checked')) {\r\n\t\t\t\tthisCheckbox.parent().parent().find('.subquestion-cont').find('input[type=radio]').prop('checked', false);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t//TODAYS CHALLENGE LOG\r\n\tif ($('.challenge-log-select').length) {\r\n\t\tvar chlgDC = new DateController(),\r\n\t\t\tchlgDCSel = $('.challenge-log-select'),\r\n\t\t\tcurrUrl = chlgDCSel.attr('data-current-json-url'),\r\n\t\t\tchlgDP = chlgDCSel.find('.date-period');\r\n\r\n\t\tvar buildControl = function () {\r\n\t\t\tchlgDC.initialize('challenge-log');\r\n\t\t\tchlgDC.getData(chlgDCSel, currUrl);\r\n\t\t\tvar start = chlgDP.attr('data-date-start'),\r\n\t\t\t\tend = chlgDP.attr('data-date-end'),\r\n\t\t\t\ttype = chlgDCSel.attr('data-date-type');\r\n\r\n\t\t\t$('button.template-render-init').attr('data-json-url', currUrl);\r\n\t\t\tchlgDCSel.attr('data-current-json-url', currUrl);\r\n\t\t};\r\n\t\tvar VMBtn = function (entries) {\r\n\t\t\tif ($.isArray(entries)) { //if entries are an array, send in length\r\n\t\t\t\tshowHideVMBtn(entries.length);\r\n\t\t\t} else if (!isNaN(entries)) {\r\n\t\t\t\tshowHideVMBtn(entries);\r\n\t\t\t} else { //if neither array or number hide button\r\n\t\t\t\t$('button.template-render-init').hide();\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar showHideVMBtn = function (numRecs) { //show hide 'view more' button\r\n\t\t\tvar btn = $('button.template-render-init'),\r\n\t\t\t\tsel = $('.template-render-init').not('button'),\r\n\t\t\t\trecs = parseInt(numRecs),\r\n\t\t\t\tload = parseInt(chlgDCSel.attr('data-number-to-load'));\r\n\r\n\t\t\tif (isNaN(recs) || isNaN(load)) { //if no number to load or number of records, show button\r\n\t\t\t\tbtn.hide();\r\n\t\t\t} else {\r\n\t\t\t\tif (recs > load) {\r\n\t\t\t\t\t//if more recs than num to load show button\r\n\t\t\t\t\tbtn.show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//if not, hide button\r\n\t\t\t\t\tbtn.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar viewAll = function () {\r\n\t\t\tvar callback = function (trigr, jsonData, target, endSlice) {\r\n\t\t\t\ttarget = $('button.template-render-init') || target;\r\n\r\n\t\t\t\tif (trigr.is('option')) {\r\n\t\t\t\t\ttarget.click(function () {\r\n\t\t\t\t\t\t$$ash.getTemplateData(target, target.attr('data-json-url'), target.attr('data-ash-template-url'), target.attr('data-ash-target-id'), callback);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget.hide(); //remove show all button\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t$$ash.templateInitHelper(callback);\r\n\t\t\t$('button.template-render-init').attr('data-json-url', currUrl);\r\n\t\t};\r\n\r\n\t\tbuildControl();\r\n\t\tviewAll();\r\n\r\n\t\t$('#template-target').on('click', chlgDCSel.find('a[data-json-url]'), function (e) {\r\n\t\t\tvar eTarget = $(e.target);\r\n\r\n\t\t\tif (eTarget.attr('href')) {\r\n\t\t\t\t//let links pass through\r\n\t\t\t} else {\r\n\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar obj = $(this),\r\n\t\t\t\t\ttrigrBtn = eTarget.parent();\r\n\r\n\t\t\t\tif (trigrBtn.attr('data-json-url') !== undefined) {\r\n\t\t\t\t\t//click date control to add custom date\r\n\t\t\t\t\tcurrUrl = trigrBtn.attr('data-json-url');\r\n\r\n\t\t\t\t\t$$ash.getTemplateData(chlgDCSel, currUrl, chlgDCSel.attr('data-ash-template-url'), 'template-target', updateCurrent);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfunction updateCurrent(trigr, jsonData, target, endSlice) {\r\n\t\t\t\tbuildControl();\r\n\t\t\t\tviewAll();\r\n\t\t\t\tVMBtn(jsonData.items);\r\n\t\t\t}\r\n\t\t});\r\n\t\t$('#template-target + .btn-cont button').on('click', function () {\r\n\t\t\t$(this).hide();\r\n\t\t});\r\n\t}\r\n\t//SET UP SHARE FUNCTIONALITY\r\n\t$('a.share-social').on('click.social', function () {\r\n\t\tvar twt = $('.social.twitter'),\r\n\t\t\tfbShare = $('.social.facebook');\r\n\r\n\t\tif (twt.length) {\r\n\t\t\ttwt.attr('href', twt.attr('href') + '?text=' + twt.data('twitter-msg') + '&url=' + $$siteSettings.url);\r\n\t\t}\r\n\t\tif (fbShare.length) {\r\n\t\t\t$.ajaxSetup({ cache: true });\r\n\r\n\t\t\tif (typeof FB === 'undefined') {\r\n\t\t\t\t$.getScript('//connect.facebook.net/en_US/all.js', function () {\r\n\t\t\t\t\tFB.init({\r\n\t\t\t\t\t\tappId: $$siteSettings.fbAppId,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tfbShare.click(function (e) {\r\n\t\t\t\t\t\tvar obj = $(this);\r\n\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tFB.ui({\r\n\t\t\t\t\t\t\tmethod: 'share_open_graph',\r\n\t\t\t\t\t\t\taction_type: $$siteSettings.fbNamespace + ':complete',\r\n\t\t\t\t\t\t\taction_properties: JSON.stringify({\r\n\t\t\t\t\t\t\t\t\"challenge\": obj.attr('href'),\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}, function () {\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t$$ash.updateProgress();\r\n\r\n\tif ($('.removeOnSubmit').length) {\r\n\t\t(function replaceButtonOnSubmit() {\r\n\t\t\tvar btn = $('.removeOnSubmit'),\r\n\t\t\t\tform = btn.closest('form'),\r\n\t\t\t\tloader = btn.siblings('.progress-indicator');\r\n\r\n\t\t\tform.on('submit.removeOnSubmit', function (e) {\r\n\t\t\t\tvar obj = $(this),\r\n\t\t\t\t\tbtnDetached;\r\n\r\n\t\t\t\tif (!form.hasClass('ajaxPost') && !form.find('.validation-fail').length) {\r\n\t\t\t\t\tbtnDetached = btn.detach();\r\n\r\n\t\t\t\t\tif (loader.length) {\r\n\t\t\t\t\t\tloader.css('display', 'inline-block');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tobj.on('submit.preventAnotherSubmit', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})();\r\n\t}\r\n\r\n\t$('.videoLoad').each(function () {\r\n\t\tvar obj = $(this),\r\n\t\t\tvidUrl = obj.attr('data-video-address'),\r\n\t\t\tvidCont = obj.find('.videoCont'),\r\n\t\t\twidth,\r\n\t\t\theight;\r\n\r\n\t\t//utilize vidCont wrapper class to give video and placeholder 16x9 aspect ratio\r\n\t\tif (vidCont.length > 0) {\r\n\t\t\t//maintain 16x9 aspect ratio for placeholder image\r\n\t\t\t$(window).on('load resize', function () {\r\n\r\n\t\t\t\t//delay calculation of width to ensure proper width is captured\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\twidth = vidCont.width();\r\n\t\t\t\t\tvidCont.css('height', width * (9 / 16));\r\n\t\t\t\t}, 20);\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//if no vidCont wrapper, video is the same size of the container that the placeholder was in\r\n\t\telse {\r\n\t\t\theight = obj.height();\r\n\t\t\twidth = obj.width();\r\n\t\t}\r\n\r\n\t\t//replaces placeholder with video\r\n\t\tobj.on('click', function () {\r\n\t\t\t$$ash.ajax({\r\n\t\t\t\tdataType: 'jsonp', //TODO: change to 'json' once IE8/9 support is dropped\r\n\t\t\t\turl: '//noembed.com/embed?url=' + encodeURIComponent(vidUrl) + '&maxwidth=' + width + '&width=' + width + '&height=' + height + '&autoplay=1'\r\n\t\t\t}).done(function (data) {\r\n\t\t\t\tvar vidMarkup = data.html;\r\n\r\n\t\t\t\t//replace placeholder with markup from noembed\r\n\t\t\t\tobj.replaceWith(vidMarkup);\r\n\r\n\t\t\t\t//remove metadata table that is added with video\r\n\t\t\t\t$('.noembed-meta-info').remove();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tfunction initRadioCardSelections() {\r\n\t\tvar radioCards = $('.radio-card');\r\n\r\n\t\tif ($('.radio-card').length) {\r\n\t\t\t(function () {\r\n\t\t\t\tfunction changeState(e, obj) {\r\n\t\t\t\t\tvar objLabel = obj.closest('label'),\r\n\t\t\t\t\t\tobjLabelSib = objLabel.siblings(),\r\n\t\t\t\t\t\tobjInput = obj.find('input');\r\n\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tif (!objInput.prop('checked')) {\r\n\t\t\t\t\t\tobjInput.prop('checked', true);\r\n\t\t\t\t\t\tobjInput.focus();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tobjLabel.removeClass('radio_off').addClass('radio_on').trigger('change');\r\n\t\t\t\t\t\tobjLabelSib.removeClass('radio_on').addClass('radio_off');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tradioCards.each(function () {\r\n\t\t\t\t\tvar obj = $(this),\r\n\t\t\t\t\t\tobjLabel = obj.closest('label'),\r\n\t\t\t\t\t\tobjInput = obj.find('input');\r\n\r\n\t\t\t\t\tif (obj.hasClass('image')) {\r\n\t\t\t\t\t\t//IE8 issue where clicking an image does not trigger a change\r\n\t\t\t\t\t\tobjLabel.on('click', function (e) {\r\n\t\t\t\t\t\t\tchangeState(e, obj);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tobjInput.on('change click', function (e) {\r\n\t\t\t\t\t\t\tchangeState(e, obj);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if radio is already checked on page load\r\n\t\t\t\t\tif (objInput.prop('checked')) {\r\n\t\t\t\t\t\tobjInput.trigger('click');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})();\r\n\t\t}\r\n\t}\r\n\r\n\t//populate fields for enrollment forms\r\n\tif (typeof $$popVals !== 'undefined') {\r\n\t\tvar parent = $('[data-populate-name]'),\r\n\t\t\tpopName = parent.attr('data-populate-name'),\r\n\t\t\tobj = parent.find('[data-populate-item=\"' + popName + '\"]'),\r\n\t\t\tfields = parent.find('input, select, textarea').not('[data-populate-item], .select2-offscreen, .select2-input'),\r\n\t\t\tfieldVals = $$popVals;\r\n\r\n\t\tobj.on('click', function () {\r\n\t\t\tif ($(this).is(':checked')) {\r\n\t\t\t\t$$ash.populateFields(fields, fieldVals, true, false);\r\n\t\t\t} else {\r\n\t\t\t\t$$ash.populateFields(fields, null, false, false);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfields.on('blur', function () {\r\n\t\t\tobj.prop('checked', false);\r\n\t\t});\r\n\t}\r\n\r\n\t$('.viewMore').initViewMoreButton();\r\n\r\n\t$('.ajaxSearch').ajaxSearchInit();\r\n\r\n\t//PLAN SUMMARY INIT\r\n\tif ($('.plan-summary').length && $('.template-render-init').length && $('.template-render-init')[0].hasAttribute('data-ash-target-id')) {\r\n\t\t(function initTableCard() {\r\n\t\t\tvar dropdown = document.querySelector('select.template-render-init');\r\n\t\t\tvar targetId = dropdown.getAttribute('data-ash-target-id');\r\n\t\t\tvar templateUrl = dropdown.getAttribute('data-ash-template-url');\r\n\t\t\tvar jsonUrl = dropdown.options[0].getAttribute('data-json-url');\r\n\r\n\t\t\t//TODO: Remove jQuery wrapper from dropdown variables once handlebarsInit and renderTemplate have been converted to vanilla javascript\r\n\r\n\t\t\t//get first set of data from dropdown and render template on page\r\n\t\t\t$$ash.getTemplateData($(dropdown), jsonUrl, templateUrl, targetId);\r\n\r\n\t\t\t//initialize handlebarsInit method on dropdown change\r\n\t\t\t//dropdown wrapped in jQuery wrapper to talk to select2\r\n\t\t\t$(dropdown).on('change.planSummaryDropdown', function (e) {\r\n\t\t\t\tjsonUrl = dropdown.options[dropdown.selectedIndex].getAttribute('data-json-url');\r\n\r\n\t\t\t\t$$ash.handlebarsInit($(dropdown), {\r\n\t\t\t\t\ttarget: targetId,\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tjsonUrl: jsonUrl\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}());\r\n\t}\r\n\r\n\t//initialize enableOnCheck\r\n\t$$ash.enableOnCheck();\r\n\r\n});//END DOCUMENT READY\r\n\r\n$(window).on('load', function () {\r\n\tif ($('.collapsible-header').length) {\r\n\t\t$('.collapsible-header').each(function () {\r\n\t\t\tvar obj = $(this),\r\n\t\t\t\tcollBdy = obj.next();\r\n\t\t\t//collapsibleAnimation = new TimeLite();\r\n\t\t\tobj.on('click', function () {\r\n\t\t\t\t//Collapsible header for mobile\r\n\t\t\t\tif (Modernizr.mq($$ash.mq('sm')) && (obj.hasClass('mobile-show'))) {\r\n\t\t\t\t\tif (collBdy.hasClass('expanded')) {\r\n\t\t\t\t\t\tTweenLite.to(collBdy, 0.3, { height: 0 });\r\n\t\t\t\t\t\tcollBdy.removeClass('expanded');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcollBdy.addClass('expanded');\r\n\t\t\t\t\t\tcollBdy.css({ 'height': 'auto' });\r\n\t\t\t\t\t\tTweenLite.from(collBdy, 0.3, { height: 0 });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (!obj.hasClass('mobile-show')) {\r\n\t\t\t\t\tif (collBdy.hasClass('expanded')) {\r\n\t\t\t\t\t\tcollBdy.css({ 'height': '0' });\r\n\t\t\t\t\t\tTweenLite.from(collBdy, 0.3, { height: 'auto' });\r\n\t\t\t\t\t\tcollBdy.removeClass('expanded');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcollBdy.addClass('expanded');\r\n\t\t\t\t\t\tcollBdy.css({ 'height': 'auto' });\r\n\t\t\t\t\t\tTweenLite.from(collBdy, 0.3, { height: 0 });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t\tif (obj.hasClass('mobile-show')) {\r\n\t\t\t\t$(window).on('resize.obj orientationchange.obj', function () {\r\n\t\t\t\t\tif (Modernizr.mq($$ash.mq('sm', 'min'))) {\r\n\t\t\t\t\t\tcollBdy.addClass('activated');\r\n\t\t\t\t\t\tif (collBdy.hasClass('activated')) {\r\n\t\t\t\t\t\t\tcollBdy.css('height', 'auto');\r\n\t\t\t\t\t\t\tcollBdy.removeClass('activated');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcollBdy.css('height', '0');\r\n\t\t\t\t\t\tcollBdy.removeClass('expanded');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\t$('.ashModalPrint').on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$$ash.ashModalPrinter($('.logo-cont img'), $(this).closest('.ashModalPanel').html(), $('link'));\r\n\t});\r\n\tfunction triggerPrint(theTrigger, printContent, link) {\r\n\t\ttheTrigger.on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t$$ash.ashModalPrinter(null, $(this).closest(printContent).html() || (printContent).html(), link);\r\n\t\t});\r\n\t}\r\n\t//Call TriggerPrint and pass the print trigger, the container with the content to be printed, and link\r\n\ttriggerPrint($('.tab-template .print-selection'), $('.tab-template'), $('link'));\r\n\r\n\t//Call TriggerPrint for PHA Disclosure\r\n\ttriggerPrint($('.print-selection'), $('#PHADisclosureText'), $('link'));\r\n\r\n\tif ($('form.validate').length) {\r\n\t\t$$ashVal.init();\r\n\t}\r\n\r\n\t//OPEN MODAL ON PAGE RENDER\r\n\t$$ash.renderModal();\r\n\r\n\t//if there is no sticky nav and jump is a param in the url, run jumpToContent\r\n\tif (!$('.ash-sticky-nav').length && $.urlParam('jump') !== null && $(window).scrollTop() === 0) {\r\n\t\t$.jumpToContent();\r\n\t}\r\n\r\n\t//CONTACT US MESSAGE LENGTH COUNTDOWN\r\n\t$('.ash-countdown').each(function () {\r\n\t\t$(this).ashCountdown();\r\n\t});\r\n\r\n\t//CONTACT US MESSAGE LENGTH NON-label wrapped\r\n\t$('.ash-countdown-nonWrap').each(function () {\r\n\t\tvar obj = $(this);\r\n\t\tobj.ashCountdown({\r\n\t\t\t'counter': obj.parent().parent().find('.ash-countdown-counter')//did parent parent because of valcont container\r\n\t\t});\r\n\t});\r\n\r\n\t(function setupShareEmail() {\r\n\t\tvar obj = $('#share-email');\r\n\r\n\t\tif (obj.length) {\r\n\t\t\tvar btn = obj.find('input[type=submit]'),\r\n\t\t\t\tind = obj.find('.progress-indicator');\r\n\r\n\t\t\tfunction shareEmail(response, textStatus, xhr, cbOpts) {\r\n\t\t\t\tvar obj = cbOpts.ele,\r\n\t\t\t\t\tjsonData = $$ash.unstringJSON(response);\r\n\r\n\t\t\t\tobj.find('label input').val('');\r\n\r\n\t\t\t\tif (jsonData.error === true) {\r\n\t\t\t\t\t$$ash.ajaxFail(obj, jsonData.errorMessage);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//add success message to the form\r\n\t\t\t\t\t$$ash.formSuccess(obj, jsonData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tobj.on('submit.email', function (e) {\r\n\t\t\t\tvar ajaxData = $$ash.serializeDataToObject(obj);\r\n\r\n\t\t\t\t$$ash.ajaxFormSubmit(obj, {\r\n\t\t\t\t\tdata: ajaxData,\r\n\t\t\t\t\tcbOpts: { ele: obj },\r\n\t\t\t\t\tcallback: shareEmail\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t})();\r\n\r\n\t$$ash.preventDefaultFormSubmit();\r\n}); // END WINDOW ON LOAD\r\n\r\n$(window).on('load resize', function () {\r\n\t$$ash.flexheightFallback();\r\n\t$$ash.cardsEqualHeight();\r\n});\r\n","var navigation = (function () {\n 'use strict';\n\n function initMainNavigation() {\n var fixedHeader = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n // used for dynamically positioning main container\n var body = document.querySelector('body');\n var header = document.querySelector('header.mainHeader');\n var mainContainer = document.querySelector('.main-container'); // main navigation elements\n\n var mainNavigation = document.querySelector('nav.mainNavigation');\n var mainNavigationItems = document.querySelectorAll('li.navItem');\n var mainNavigationToggle = header.querySelector('button.mainNavigationToggle'); // check what kind of nav bar is being used\n\n var verticalNav = document.querySelector('nav.verticalNav');\n var expandableVerticalNav = document.querySelector('nav.verticalNav.expandable');\n var horizontalNav = document.querySelector('nav.horizontalNav');\n var mobileActive = document.querySelector('nav.mobileMenuActive'); //check for cobrand\n\n var secondaryLogo = header.querySelector('.secondaryLogo'); // dropdown toggles\n\n var showChildrenBtn = document.querySelectorAll('button.toggleNavChildren'); //setting to null incase mainNav doesn't exist so it does not throw undefined error in console\n\n var navContainer = mainNavigation ? mainNavigation.querySelector('ul.container') : null; //console.dir(mainNavigationItems[0]); // eslint-disable-line no-console\n\n var toggleClass = function toggleClass(element, className) {\n if (element.classList) element.classList.toggle(className);\n };\n\n var addClass = function addClass(element, className) {\n element.classList.add(className);\n };\n\n var removeClass = function removeClass(element, className) {\n element.classList.remove(className);\n }; // In IE, querySelectorAll returns a nodelist, not an array so need to assign array foreach to nodelist\n\n\n if (typeof NodeList !== 'undefined' && NodeList.prototype && !NodeList.prototype.forEach) {\n // Yes, there's really no need for `Object.defineProperty` here\n NodeList.prototype.forEach = Array.prototype.forEach;\n } //used for css to determine if glyph or full logo should be used on mobile\n\n\n if (secondaryLogo) {\n addClass(header, 'hasCobranding');\n } // handle opening and closing of hamburgerMenu\n\n\n if (mainNavigationToggle) {\n mainNavigationToggle.addEventListener('click', function (e) {\n e.preventDefault();\n toggleClass(mainNavigation, 'mobileMenuActive');\n toggleClass(mainNavigationToggle, 'mobileMenuActive');\n toggleClass(body, 'mobileMenuActive'); // this one will run regardless since this is for mobile view\n\n navContainer.style.paddingBottom = \"\".concat(header.clientHeight, \"px\");\n });\n } // for a vertical/side nav like on emd add an expanded state\n // for usage you add expandable class in addition to verticalNav to nav element\n\n\n if (mainNavigation && expandableVerticalNav) {\n mainNavigationItems.forEach(function (mainNavigationItem) {\n mainNavigationItem.addEventListener('mouseover', function () {\n addClass(mainNavigation, 'navExpanded');\n });\n mainNavigationItem.addEventListener('mouseout', function () {\n removeClass(mainNavigation, 'navExpanded');\n });\n mainNavigationItem.addEventListener('focusin', function () {\n addClass(mainNavigation, 'navExpanded');\n });\n });\n mainNavigation.addEventListener('blur', function () {\n removeClass(mainNavigation, 'navExpanded');\n });\n } // for horizontal/top nav in order to display dropdown on hover instead of using a button\n // to toggle showing the dropdown\n\n\n if (mainNavigation && horizontalNav) {\n mainNavigationItems.forEach(function (mainNavigationItem) {\n mainNavigationItem.addEventListener('mouseover', function () {\n addClass(mainNavigationItem, 'navExpanded');\n });\n mainNavigationItem.addEventListener('mouseout', function () {\n removeClass(mainNavigationItem, 'navExpanded');\n });\n mainNavigationItem.addEventListener('focusin', function () {\n addClass(mainNavigationItem, 'navExpanded');\n });\n mainNavigationItem.addEventListener('blur', function () {\n removeClass(mainNavigationItem, 'navExpanded');\n }); //tabbing out of navchildren was leaving the drop down menu open \n //even when user tabbed to the next top level menu item\n\n if (mainNavigationItem.querySelector('.navChildren')) {\n mainNavigationItem.querySelector('.navChildren .navChild:last-child').addEventListener('focusout', function () {\n removeClass(mainNavigationItem, 'navExpanded');\n }); //needed for reverse tabbing, menu was staying open\n\n if (mainNavigationItem.previousElementSibling) {\n mainNavigationItem.previousElementSibling.addEventListener('keyup', function (event) {\n if (event.key === \"Tab\" && event.shiftKey) {\n return removeClass(mainNavigationItem, 'navExpanded');\n }\n });\n }\n } else {\n //check to make sure user info is not the nav item before adding event listener since markup is diff\n if (!mainNavigationItem.classList.contains('user-info')) {\n mainNavigationItem.querySelector('.navItem > a').addEventListener('focusout', function () {\n removeClass(mainNavigationItem, 'navExpanded');\n });\n }\n }\n });\n }\n\n showChildrenBtn.forEach(function (showChildBtn) {\n // grab the sibling container for the dropdown\n var dropdownMenu = showChildBtn.nextElementSibling;\n\n var toggleClasses = function toggleClasses() {\n toggleClass(showChildBtn, 'rotate');\n toggleClass(dropdownMenu, 'showDropDown');\n toggleClass(showChildBtn, 'dropDownOpen');\n };\n\n showChildBtn.addEventListener('click', function (e) {\n e.preventDefault();\n toggleClasses();\n });\n\n if (document.querySelector('.mobileMenuActive')) {\n dropdownMenu.querySelector('.navChild:last-child').addEventListener('focusout', function () {\n toggleClasses();\n });\n }\n });\n\n if (verticalNav || mobileActive) {\n var active = document.querySelector('.navItem.active .toggleNavChildren');\n\n if (active) {\n active.click();\n }\n } // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n\n\n function debounce(func, wait, immediate) {\n var timeout; // will run the actual function you pass\n\n return function () {\n var _arguments = arguments,\n _this = this;\n\n // will trigger the actual function passed\n var later = function later() {\n timeout = null; // Call function now if you did not on the leading end\n\n if (!immediate) func.apply(_this, _arguments);\n }; // if no timeout and want now will just call it.\n\n\n var callNow = immediate && !timeout; // reset the timeout each time this function is called\n\n clearTimeout(timeout); // set a timeout for later to be called after the given wait period\n\n timeout = setTimeout(later, wait); // execute now if immediately is true\n\n if (callNow) func.apply(this, arguments);\n };\n } // only run this if the site has a fixed header, true by default\n\n\n if (fixedHeader) {\n // add padding to the main container to compensate for the header height\n if (mainContainer) {\n mainContainer.style.paddingTop = \"\".concat(header.clientHeight, \"px\");\n } // add padding to a vertical nav to compensate for header height\n\n\n if (verticalNav) {\n mainNavigation.style.top = \"\".concat(header.clientHeight, \"px\");\n } else {\n mainContainer.style.paddingLeft = 0;\n }\n\n if (mainContainer && verticalNav && window.innerWidth > 767) {\n mainContainer.style.paddingLeft = \"\".concat(verticalNav.clientWidth - 1, \"px\");\n } else {\n mainContainer.style.paddingLeft = '0';\n } // function will run when user resizes window\n\n\n var returnedFunction = debounce(function () {\n if (mainContainer && verticalNav && window.innerWidth > 767) {\n mainContainer.style.paddingLeft = \"\".concat(verticalNav.clientWidth - 1, \"px\");\n } else {\n mainContainer.style.paddingLeft = '0';\n } //removing mobile menu classes when screen resizes\n //classes caused css to stick around unless browswer was refreshed\n\n\n if (window.innerWidth >= 767 && mainNavigation) {\n removeClass(mainNavigation, 'mobileMenuActive');\n removeClass(mainNavigationToggle, 'mobileMenuActive');\n removeClass(body, 'mobileMenuActive');\n }\n\n if (mainNavigation) {\n if (mobileActive) {\n mainNavigation.style.top = \"\".concat(header.clientHeight, \"px\");\n navContainer.style.paddingBottom = \"\".concat(header.clientHeight, \"px\");\n } else if (horizontalNav) {\n navContainer.style.paddingBottom = '0';\n }\n } //moved to the end so it does not calculate until all the other padding is removed\n\n\n mainContainer.style.paddingTop = \"\".concat(header.clientHeight, \"px\");\n }, 150);\n window.addEventListener('resize', returnedFunction);\n window.addEventListener('orientationchange', returnedFunction);\n }\n }\n\n return initMainNavigation;\n\n}());\n","; if (!$$hyrTypekit) {\r\n var $$hyrTypekit = 'ifb8rzb';\r\n}\r\n\r\nif (!$$ashRedirect) {\r\n var $$ashRedirect = '/Redirect/External/';\r\n}\r\n\r\n$$ash.getTypeKit($$hyrTypekit); //typekit id passed to async call to typekit script\r\n\r\nvar $$siteSettings = {\r\n name: 'Healthyroads',\r\n url: 'https://www.healthyroads.com',\r\n fbAppId: '904388559611726',\r\n fbNamespace: 'healthyroads'\r\n};\r\n\r\n(function ($$ashChartOpts, $, undefined) { //ASHCHART OPTIONS\r\n var donut, chart, arc, tempOpts,\r\n s = { //default values\r\n fontFam: \"'brandon-grotesque', 'sans-serif'\",\r\n fontColor: '#ffffff',\r\n fillColor: '#0376bd',\r\n secondaryFillColor: '#72cdc4', //in this case, self-measured steps\r\n bgColor: '#f1f1f1',\r\n capitalize: true\r\n },\r\n opts = [\r\n $$ashChartOpts.donut = $.extend({}, s),\r\n $$ashChartOpts.chart = $.extend({}, s),\r\n $$ashChartOpts.arc = $.extend({}, s)\r\n ];\r\n\r\n //option to override default settings above\r\n donut = {\r\n gap: true,\r\n fontColor: s.fillColor,\r\n secondaryTextSize: 0.75\r\n };\r\n chart = {\r\n fontColor: '#000'\r\n };\r\n arc = {\r\n bgColor: '#D6D6D6'\r\n };\r\n //end override options\r\n\r\n tempOpts = [donut, chart, arc];\r\n\r\n for (var i in opts) {\r\n if (opts.hasOwnProperty(i)) {\r\n $.extend(opts[i], tempOpts[i]);\r\n }\r\n }\r\n}(window.$$ashChartOpts = window.$$ashChartOpts || {}, jQuery));\r\n\r\nfunction hyrHdrInit() {\r\n var dskHeader = $('.top-header > .row'),\r\n dskLogo = dskHeader.find('.logo-cont'),\r\n mblHeader = $('.mobile-header'),\r\n contClass = '.btn-cont',\r\n dskLogReg = dskHeader.find(contClass),\r\n dskLogRegCont = dskLogReg.closest('[class^=\"col-\"]'),\r\n mblLogReg = mblHeader.find(contClass),\r\n mblLogRegCont = mblLogReg.closest('[class^=\"col-\"]');\r\n \r\n function createWrapper(classes) {\r\n return '
      ';\r\n }\r\n\r\n //functions for when login/register buttons are in desktop header\r\n if (Modernizr.mq('screen and (max-width: 767px)')) {\r\n var tempDskLogReg = $(dskLogReg).detach(),\r\n columnClass = 'col-12',\r\n wrapper = createWrapper(columnClass);\r\n $(tempDskLogReg).appendTo(mblHeader).wrap(wrapper); //put login/register buttons in mobile header\r\n $(dskLogRegCont).remove();\r\n }\r\n //functions for when login/register buttons are in mobile header\r\n if (Modernizr.mq('screen and (min-width: 768px)')) {\r\n var tmpMblLogReg = $(mblLogReg).detach(),\r\n columnClass = 'col-6',\r\n wrapper = createWrapper(columnClass);\r\n $(tmpMblLogReg).insertAfter(dskLogo).wrap(wrapper); //put login/register buttons back in desktop header\r\n $(mblLogRegCont).remove();\r\n }\r\n}\r\n\r\n//placeholder fix for older browsers\r\n$(document).ready(function () {\r\n\r\n // If not a touch device and select2 library exist\r\n // REASON: For hyrLite bundle, select2 isn't included. If select2 library doesn't exist, don't run this selectAnimateInit IIFE that updates select HTML element with select2 function. \r\n if (!Modernizr.touchevents && window.Select2) {\r\n (function selectAnimateInit() {\r\n var selectObj = $('select'),\r\n placeholderData = null,\r\n mainContent = $('.main-content, .main'); //TODO: delete .main when we transition to new template markup\r\n\r\n if (selectObj.length) {\r\n selectObj.each(function () {\r\n placeholderData = $(this).data('select2-placeholder');\r\n $(this).select2({\r\n placeholder: placeholderData,\r\n minimumResultsForSearch: -1,\r\n formatNoMatches: function (term) {\r\n \treturn 'Loading...';\r\n }\r\n });\r\n });\r\n }\r\n\r\n mainContent.on('select2-open', $('select'), function () {\r\n $('.select2-drop').addClass('animate-open'); //can't cache this... select2 creates it on the fly!\r\n });\r\n\r\n mainContent.on('select2-close', $('select'), function () {\r\n $('.select2-drop').removeClass('animate-open'); //can't cache this... select2 creates it on the fly\r\n });\r\n })();\r\n } else {\r\n $$ash.removeSelectEmptyOption();\r\n }\r\n\r\n //init base offcanvas nav\r\n offCanvasNavInit();\r\n\r\n //metaNav for mobile, shows and hides user info on click user-info and info-name\r\n $$ash.metaNavInit('header .user-info .user-info-name, header .user-info .user-info-avatar-cont, header .user-info a.dropdown-menu-trigger', 'header .user-info .dropdown-menu-cont');\r\n\r\n (function metaNavNoMessage() {\r\n var obj = $('.user-info'),\r\n iconemail = obj.find('.icon-email'),\r\n countericon = obj.find('.counterIcon');\r\n if (obj.length) {\r\n if (!countericon.length) {\r\n iconemail.addClass('noMessage');\r\n }\r\n }\r\n })();\r\n\r\n\r\n\r\n function disableDefaultOption(dOpt) { //disable options in select2 dropdowns\r\n dOpt.on('click', function () {\r\n $(dOpt.find('option')).each(function () {\r\n var opt = $(this);\r\n if (opt.val() === '') {\r\n opt.prop('disabled', true);\r\n }\r\n });\r\n dOpt.off('click'); //kill disabling function once the option is used\r\n });\r\n }\r\n $('.ashFilterTrigger').each(function () {\r\n var obj = $(this);\r\n\r\n if (!obj.hasClass('label_group')) { //fixing conflict with challenge ashFilterTrigger\r\n obj.ashFilter({\r\n event: 'change',\r\n trigger: $(this),\r\n filterItem: $('.ashFilter'),\r\n addSelected: 'selected',\r\n fadeInDur: 1,\r\n fadeOutDur: 0\r\n });\r\n\r\n //setup disable option\r\n disableDefaultOption(obj);\r\n }\r\n });\r\n\r\n function selectPopulateDropdown(elemID, select2) { //populate a related dropdown\r\n \tvar trigger = $('.select2.ashFilterTrigger'),\r\n\t\t\telemOpt = $(elemID + ' option'),\r\n\t\t\tinquiryOpt = elemOpt.detach(), //remove and store all options in 2nd select\r\n\t\t\telemEvent = (select2) ? 'select2-close' : 'change',\r\n\t\t\telemVal = '',\r\n\t\t\tnewOpt;\r\n\r\n \tfunction buildOpts(obj, newOpt) {\r\n \t\t//Remove all 2nd selects options\r\n \t\telemOpt.remove();\r\n\r\n \t\t//loop thru each option and append those whose filter = its tag\r\n \t\tobj.each(function () {\r\n \t\t\tvar selObj = $(this);\r\n \t\t\tif (selObj.data('ash-filter') === undefined || selObj.data('ash-filter').indexOf(newOpt) > -1) {\r\n selObj.appendTo(elemID);\r\n }\r\n // unselect option for select2 to prevent inquiry type from selecting the last option appended\r\n selObj.prop('selected', false);\r\n });\r\n \t}\r\n\r\n \tif (trigger.length !== 0) {\r\n \t\t//disable the inquiry type dropdown\r\n \t\t$(elemID).prop('disabled', true);\r\n\r\n \t\ttrigger.on(elemEvent, function () {\r\n \t\t\telemVal = (select2) ? $(this).select2('val') : $(this).val();\r\n newOpt = $('select.ashFilterTrigger option[value=\"' + elemVal + '\"]').data('ash-filter-trigger'); //get filter tag\r\n\r\n \t\t\t//enable the inquiry type dropdown\r\n $(elemID).prop('disabled', false);\r\n \r\n \t\t\t//run build options function\r\n buildOpts(inquiryOpt, newOpt);\r\n \r\n \t\t\t//setup disable option\r\n \t\t\tdisableDefaultOption($(elemID));\r\n \t\t});\r\n \t} else {\r\n \t\tnewOpt = $(elemID).data('ash-filter-default');\r\n \t\t//run build options function\r\n \t\tbuildOpts(inquiryOpt, newOpt);\r\n \t}\r\n }\r\n if (!Modernizr.touchevents) {\r\n \tselectPopulateDropdown('#inquiryType', true); //select2 is supported\r\n } else {\r\n \tselectPopulateDropdown('#inquiryType', false); //select2 is NOT supported\r\n \t$$ash.removeSelectEmptyOption();\r\n }\r\n \r\n // Initialize navigation using ash-header\r\n\tnavigation();\r\n\r\n $('.submitInfoTrigger').each(function () {\r\n var ashTrig = $(this);\r\n\r\n ashTrig.ashFilter({\r\n event: 'click',\r\n trigger: $(this),\r\n filterItem: $('.ashFilter'),\r\n callback: removeTrigger,\r\n fadeInDur: 1,\r\n fadeOutDur: 0\r\n });\r\n function removeTrigger() {\r\n ashTrig.hide();\r\n }\r\n });\r\n $('.readMoreTrigger').each(function () {\r\n var ashTrig = $(this);\r\n ashTrig.on('click', function (e) {\r\n e.preventDefault();\r\n });\r\n ashTrig.ashFilter({\r\n event: 'click',\r\n trigger: ashTrig,\r\n filterItem: $('.ashFilter'),\r\n fadeInDur: 1,\r\n fadeOutDur: 0\r\n });\r\n });\r\n $('.tabsFilter').each(function () {\r\n var ashTrig = $(this);\r\n ashTrig.ashFilter({\r\n event: 'click',\r\n trigger: $(this).find('li > a'),\r\n filterItem: $('.ashFilter'),\r\n fadeInDur: 1,\r\n fadeOutDur: 0\r\n });\r\n });\r\n\r\n (function modalSetup() {\r\n var obj = $('.modalOpen');\r\n\r\n setupAshModal(obj);\r\n\r\n obj.each(function () {\r\n obj = $(this);\r\n\r\n obj.on('click.ashModal', function () {\r\n\r\n if ($('.ashModal video').length) {\r\n $('.ashModal video')[0].play();\r\n }\r\n });\r\n });\r\n })();\r\n\r\n if ($('.flexslider').length) {\r\n //DASHBOARD CAROUSEL/SLIDER\r\n if ($('.slideshow').length) {\r\n (function landingPageSliderInit() {\r\n var slideshow = $('.slideshow'),\r\n newsSlide = $('.news-slide');\r\n\r\n slideshow.flexslider({\r\n selector: '.slides > figure',\r\n animation: 'slide',\r\n controlNav: slideshow.find('figure').length < 2 ? false : true,\r\n directionNav: slideshow.find('figure').length < 2 ? false : true,\r\n touch: slideshow.find('figure').length < 2 ? false : true,\r\n prevText: '',\r\n nextText: '',\r\n start: function (slider) {\r\n function newsSlideEqualHeight() {\r\n var setHeight;\r\n\r\n if (Modernizr.mq($$ash.mq('sm', 'min'))) {\r\n setHeight = slider.height();\r\n } else {\r\n setHeight = 350;\r\n }\r\n newsSlide.find('.content-container').outerHeight(setHeight);\r\n }\r\n\r\n slider.addClass('loaded');\r\n\r\n newsSlideEqualHeight();\r\n\r\n $(window).on('resize', function () {\r\n newsSlideEqualHeight();\r\n });\r\n\r\n newsSlide.flexslider({\r\n animation: 'slide',\r\n direction: 'vertical',\r\n controlNav: false,\r\n prevText: '',\r\n nextText: '',\r\n slideshow: false,\r\n });\r\n }\r\n });\r\n })();\r\n }\r\n\r\n //HOMEPAGE js\r\n if ($('.homepageSlider').length) {\r\n (function HomepPageInit() {\r\n\r\n function slideshowInit() {\r\n var mainSlider = $('.homepageSlider > .flexslider');\r\n\r\n mainSlider.flexslider({\r\n selector: '.slides > figure',\r\n animation: Modernizr.touchevents ? 'slide' : 'fade',\r\n slideshowSpeed: 5000,\r\n directionNav: true,\r\n prevText: '',\r\n nextText: '',\r\n controlsContainer: \".sliderOverlay > .container\",\r\n manualControls: '.sliderControls > ol > li',\r\n start: function (slider) {\r\n }\r\n });\r\n }\r\n\r\n function homepageAshFilter() {\r\n var obj = $('.hyrInfo > nav'),\r\n filterItems = $('.ashFilter');\r\n\r\n obj.ashFilter({\r\n event: 'click',\r\n trigger: obj.find('a'),\r\n filterItem: filterItems,\r\n callback: function () {\r\n\r\n },\r\n addSelected: 'active',\r\n fadeInDur: 300,\r\n fadeOutDur: 0,\r\n preventDefault: true\r\n });\r\n }\r\n\r\n function jumpDownInit() {\r\n var arrow = $('.jumpArrow a'),\r\n beGreat = $('.intro');\r\n\r\n arrow.on('click.jumpDown', function (e) {\r\n\r\n $('html, body').animate({\r\n scrollTop: beGreat.offset().top\r\n }, 750);\r\n\r\n e.preventDefault();\r\n });\r\n }\r\n\r\n slideshowInit();\r\n homepageAshFilter();\r\n jumpDownInit();\r\n })();\r\n }\r\n }\r\n\r\n //SELECT/DESELECT PROGRESS INDICATION\r\n if ($('.fs-facility-detail').length > 0) {\r\n $('.fs-facility-detail label.button').progressIndicator({\r\n 'msg': 'Facility Selected',\r\n 'buttonTrigger': true,\r\n 'buttonClass1': 'select',\r\n 'buttonText1': 'Select',\r\n 'buttonClass2': 'deselect',\r\n 'buttonText2': 'Deselect',\r\n 'limitSelection': false,\r\n 'chgTxt': 'span',\r\n 'fadeInTime': 300,\r\n 'fadeOutTime': 300,\r\n 'DelayTime': 1000\r\n });\r\n }\r\n\r\n if ($('.poll').length) {\r\n var poll = $('.poll'),\r\n pollResults = $('.poll-results'),\r\n pollQues = $('.poll-questions'),\r\n pollBtnCont = poll.find('.btn-cont');\r\n function showQues(){\r\n pollResults.hide();\r\n pollQues.show();\r\n $$ash.flexheightFallback();\r\n }\r\n function showResults(){\r\n pollResults.show();\r\n pollQues.hide();\r\n $$ash.flexheightFallback();\r\n }\r\n function submitPoll(response, textStatus, xhr, cbOpts) {\r\n var ele = cbOpts.ele,\r\n jsonData = $$ash.unstringJSON(response);\r\n $.when(\r\n $.get(ele.attr('data-ash-template'), function (data) {\r\n templateHtml = data;\r\n })\r\n\r\n ).then(\r\n //success\r\n function () {\r\n if (jsonData.error === true) {\r\n $$ash.ajaxFail($('#poll-message'), jsonData.errorMessage);\r\n } else {\r\n $$ash.removeLoader();\r\n $$ash.renderTemplate(ele, templateHtml, jsonData, ele.attr('data-ashcontentfill'));\r\n ele.find('input, textarea').not('input[type=submit]').val('');\r\n \r\n pollQues.find('.poll-cont').html('

      You\\'ve already taken the poll

      ');\r\n pollQues.find('input[type=\"submit\"]').remove();\r\n $('.view-ques').parent('.btn-cont').remove();\r\n showResults();\r\n $$ash.updateProgress();\r\n }\r\n },\r\n //fail\r\n function (xhr) {\r\n $$ash.ajaxFail($('#poll-list'), undefined, xhr);\r\n }\r\n );\r\n }\r\n $('.view-results').on('click', function (e) {\r\n e.preventDefault();\r\n var ele = $(this);\r\n var jsonData,\r\n pollMsg = $('#poll-message');\r\n $.getJSON(ele.attr('data-json-url'), function (data) {\r\n jsonData = data;\r\n }).done(function () {\r\n $.get(ele.attr('data-ash-template-url'), function (data) {\r\n templateHtml = data;\r\n }).done(function () {\r\n if (jsonData.error === true) {\r\n $$ash.ajaxFail(pollMsg, jsonData.errorMessage);\r\n } else {\r\n $$ash.renderTemplate(ele, templateHtml, jsonData, ele.attr('data-ash-target-id'), $$ash.flexheightFallback());\r\n showResults();\r\n $$ash.updateProgress();\r\n }\r\n }).fail(function (xhr) {\r\n $$ash.ajaxFail(pollMsg, jsonData.errorMessage, xhr);\r\n });\r\n }).fail(function (xhr) {\r\n $$ash.ajaxFail(pollMsg, 'JSON data error', xhr);\r\n });\r\n });\r\n $('.view-ques').on('click', function (e) {\r\n e.preventDefault();\r\n showQues();\r\n });\r\n showQues();\r\n poll.find('form').on('submit', function (e) {\r\n var form = $(this),\r\n ajaxData = form.returnCheckedInputsAsObject();\r\n\r\n e.preventDefault();\r\n\r\n $$ash.addLoader(pollBtnCont);\r\n pollBtnCont.remove();\r\n \r\n $$ash.ajaxFormSubmit(form, {\r\n data: ajaxData,\r\n cbOpts: { ele: form },\r\n callback: submitPoll\r\n }); //be sure to pass the form element along with a callback function\r\n });\r\n poll.find('.radio-container input').on('change', function () {\r\n poll.find('input[type=\"submit\"]').prop('disabled', false);\r\n });\r\n }\r\n //hyrHdrInit(); //initialize HYR login/register buttons\r\n //view more content plugin show/hide\r\n $('.view-more-trigger').ashCollapsible({\r\n 'obj': $('.view-more-trigger'),\r\n 'panel': $('.view-more-body')\r\n });\r\n\r\n //PHA Disclosure - remove 'read more' button on click in old IE\r\n if (!(Modernizr.csstransitions)) {\r\n $('#PHADisclosureText').next().on('click', function () {\r\n $(this).siblings().addClass('active');\r\n });\r\n }\r\n \r\n $('#editorialBoard').ashTemplateInit({\r\n callback: function (trigr, jsonData, target) {\r\n var modalLinks = target.find('a');\r\n\r\n modalLinks.each(function(i) {\r\n var obj = $(this),\r\n member = jsonData.EditorialStaffMemberList[i],\r\n headerString = member.Header,\r\n contentString = member.Content,\r\n markup = $('
      ').html('

      ' + headerString + '

      ' + contentString + '
      '); //TODO: Prettify this\r\n\r\n obj.ashModal({\r\n theContent: markup,\r\n closeContent: ''\r\n });\r\n });\r\n }\r\n });\r\n\r\n var links = bodyLinkProcessing();\r\n runRedirect(links);\r\n runScrollTo(links);\r\n\r\n}); //END DOCUMENT READY\r\n$(window).on('load', function () {\r\n scrollIt(location.href); //scroll to a jump link location\r\n});\r\n$(window).on('load', function () {\r\n bulletinInit();\r\n $('.equal-heights > div').equalHeights();\r\n if ($('.invalid').length > 0) {\r\n $('.invalid:not(.select2-container)').each(function () {\r\n var obj = $(this);\r\n if (obj.is('select')) {\r\n obj.prev().nextUntil().andSelf().wrapAll('');\r\n } else {\r\n obj.next('span.tooltip-validation').andSelf().wrapAll('');\r\n }\r\n });\r\n }\r\n \r\n}); //END WINDOW LOAD\r\n"]}