{"version":3,"sources":["node_modules/browser-pack/_prelude.js","Static/src/js/components/accordions.js","Static/src/js/components/billing.js","Static/src/js/components/certifications-slider.js","Static/src/js/components/content-slider.js","Static/src/js/components/datepicker.js","Static/src/js/components/events-filters.js","Static/src/js/components/file-upload.js","Static/src/js/components/form-validation.js","Static/src/js/components/header-slider.js","Static/src/js/components/home-hero-slider.js","Static/src/js/components/loading-spinner.js","Static/src/js/components/main-search.js","Static/src/js/components/mobile-nav.js","Static/src/js/components/modals.js","Static/src/js/components/photo-cropper.js","Static/src/js/components/search.js","Static/src/js/components/tab-content.js","Static/src/js/components/tooltips.js","Static/src/js/main.js","node_modules/@fengyuanchen/datepicker/dist/datepicker.js","node_modules/croppie/croppie.js","node_modules/enquire.js/src/MediaQuery.js","node_modules/enquire.js/src/MediaQueryDispatch.js","node_modules/enquire.js/src/QueryHandler.js","node_modules/enquire.js/src/Util.js","node_modules/enquire.js/src/index.js","node_modules/hyperform/dist/hyperform.cjs.js","node_modules/is-mobile-nav/lib/push-menu.js","node_modules/is-search/index.js","node_modules/is-search/lib/Config.js","node_modules/is-search/lib/Facets.js","node_modules/is-search/lib/Pagination.js","node_modules/is-search/lib/Search.js","node_modules/jquery/dist/jquery.js","node_modules/magnific-popup/dist/jquery.magnific-popup.js","node_modules/objectFitPolyfill/dist/objectFitPolyfill.min.js","node_modules/promise-polyfill/promise.js","node_modules/slick-carousel/slick/slick.js","node_modules/tippy.js/dist/tippy.all.js","node_modules/whatwg-fetch/fetch.js"],"names":[],"mappings":"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,MAAM,MAAR,EAAgB,MAAhB,GAAyB,CAA7B,EAAgC;AAC9B;AACD;;AAED;AACA,UAAM,IAAI,SAAS,aAAT,CAAuB,QAAvB,CAAV;;AAEA,QAAE,EAAF,GAAO,MAAP;AACA,QAAE,IAAF,GAAS,iBAAT;AACA,QAAE,GAAF,GAAQ,iBAAiB,KAAjB,GAAyB,aAAjC;;AAEA;AACA,UAAM,WAAW,SAAS,IAAT,CAAc,SAA/B;;AAEA,eAAS,IAAT,CAAc,YAAd,CAA2B,CAA3B,EAA8B,SAAS,WAAvC;AACD,KAnBD;;AAqBA,WAAO,UAAP;AACD,GA7BiB,EAAlB;;AAiCA,SAAO,KAAP;AACD,CAtNa,CAsNX,MAtNW,CAAd;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACl/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClmFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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jB;;;;AChdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACjoUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACn0DA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACn8FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7jIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o {\r\n\r\n if ($('.accordion').length) {\r\n\r\n $('.accordion-trigger').on('click', (e) => {\r\n e.preventDefault();\r\n $(e.currentTarget).toggleClass('-active')\r\n .parents('li')\r\n .toggleClass('-active')\r\n .find($('.accordion-content'))\r\n .slideToggle(250);\r\n });\r\n }\r\n\r\n};\r\n","export default () => {\r\n $('#billing-address').on('change', function () {\r\n const result = { };\r\n\r\n $.each($('.tab-0 .address-block :input').serializeArray(), function () {\r\n result[this.name] = this.value;\r\n });\r\n\r\n const $this = $(this);\r\n\r\n if ($this.is(':checked')) {\r\n const tab1 = $('.tab-1 .address-block :input');\r\n\r\n let indexer = 0;\r\n\r\n $.each(result, function (i, n) {\r\n tab1[indexer].value = n;\r\n indexer += 1;\r\n });\r\n }\r\n });\r\n};\r\n","\r\nimport slick from 'slick-carousel';\r\n\r\nexport default () => {\r\n\r\n $('.certifications-slider').slick({\r\n speed: 500,\r\n dots: true,\r\n arrows: true,\r\n accessibility: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n responsive: [\r\n {\r\n breakpoint: 1300,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 1000,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 700,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n });\r\n\r\n};\r\n","\r\nimport slick from 'slick-carousel';\r\n\r\nexport default () => {\r\n if($('.content-slider-inner').length) {\r\n const autoplay = $('.content-slider-inner').data('autoplay');\r\n const autoplaySpeed = $('.content-slider-inner').data('autoplay-speed');\r\n $('.content-slider-inner').slick({\r\n speed: 500,\r\n dots: false,\r\n arrows: true,\r\n accessibility: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay,\r\n autoplaySpeed,\r\n fade: true,\r\n cssEase: 'linear'\r\n });\r\n }\r\n\r\n};\r\n","import datepicker from '@fengyuanchen/datepicker';\r\n\r\nexport default () => {\r\n\t\r\n\tvar lang = document.documentElement.lang;\r\n\tif (lang === \"en\"){\r\n\t\tlang = \"en-US\";\r\n\t}\r\n\tif (lang === \"nl-BE\"){\r\n\t\tlang = \"nl-NL\";\r\n\t}\r\n\r\n\tvar shortDatePattern = document.documentElement.dataset.shortDatePattern;\r\n\r\n // datepicker.en-GB.js\r\n $.fn.datepicker.languages['en-GB'] = {\r\n format: 'dd/mm/yyyy'\r\n };\r\n\r\n // datepicker.es-ES.js\r\n $.fn.datepicker.languages['es-ES'] = {\r\n format: 'dd/mm/yyyy',\r\n days: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'],\r\n daysShort: ['Dom','Lun','Mar','Mie','Jue','Vie','Sab'],\r\n daysMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'],\r\n weekStart: 1,\r\n months: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],\r\n monthsShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic']\r\n };\r\n\r\n // datepicker.fr-FR.js\r\n $.fn.datepicker.languages['fr-FR'] = {\r\n format: 'dd/mm/yyyy',\r\n days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\r\n daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\r\n daysMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],\r\n weekStart: 1,\r\n months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\r\n monthsShort: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Dec']\r\n };\r\n\r\n // datepicker.fr-FR.js\r\n $.fn.datepicker.languages['fr-BE'] = {\r\n format: 'dd/mm/yyyy',\r\n days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\r\n daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\r\n daysMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],\r\n weekStart: 1,\r\n months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\r\n monthsShort: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Dec']\r\n };\r\n // datepicker.nl-NL.js\r\n $.fn.datepicker.languages['nl-NL'] = {\r\n format: 'dd-mm-yyyy',\r\n days: ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'],\r\n daysShort: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],\r\n daysMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],\r\n weekStart: 1,\r\n months: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],\r\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']\r\n };\r\n \r\n $.fn.datepicker.languages['nl-BE'] = {\r\n format: 'dd-mm-yyyy',\r\n days: ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'],\r\n daysShort: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],\r\n daysMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],\r\n weekStart: 1,\r\n months: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],\r\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']\r\n };\r\n\r\n\r\n $('[data-toggle=\"datepicker\"]').datepicker({\r\n autoHide: true,\r\n zIndex: 2048,\r\n\tlanguage: lang\r\n });\r\n\r\n $('[data-toggle=\"datepickerfuture\"]').datepicker({\r\n autoHide: true,\r\n startDate: new Date(),\r\n zIndex: 2048,\r\n\tlanguage: lang\r\n });\r\n\r\n $('#datepicker-start-month').datepicker({\r\n inline: true,\r\n container: '#datepicker-start-month-container',\r\n autoShow: true,\r\n autoHide: false,\r\n zIndex: 2048,\r\n format: shortDatePattern,\r\n startView: 1,\r\n startDate: new Date(),\r\n\tlanguage: lang\r\n });\r\n\r\n $('#datepicker-end-month').datepicker({\r\n inline: true,\r\n container: '#datepicker-end-month-container',\r\n autoShow: true,\r\n autoHide: false,\r\n zIndex: 2048,\r\n format: shortDatePattern,\r\n startView: 1,\r\n startDate: new Date(),\r\n\tlanguage: lang\r\n });\r\n\r\n};\r\n","export default () => {\r\n\r\n $('.js-event-filters-trigger').on('click', (e) => {\r\n e.preventDefault();\r\n $('.event-filters').toggleClass('-active');\r\n $('.event-filters-inner').slideToggle(250);\r\n });\r\n\r\n};\r\n","export default () => {\r\n\r\n $('.file-uploader .input-file').on('change', (e) => {\r\n $(e.target).parent().find('.file-upload-filename').text(e.target.files[0].name);\r\n });\r\n\r\n};\r\n","// -----------------------------------------------------------------------------\r\n// Hyperform\r\n//\r\n// Hyperform is a pure JS implementation of the HTML 5 form validation API.\r\n//\r\n// Docs: https://hyperform.js.org/docs\r\n// -----------------------------------------------------------------------------\r\nimport hyperform from 'hyperform';\r\n\r\nexport default () => {\r\n\r\n if ($('form').length) {\r\n\r\n // Add required for radios that have [data-required] set to true on the
\r\n $('form .radios[data-required=\"true\"]').map((index, el) => {\r\n $(el).find('input').first().prop('required', true);\r\n });\r\n\r\n // Add required for checkboxes that have [data-required] set to true on the
\r\n $('form .checks[data-required=\"true\"]').map((index, el) => {\r\n $(el).find('input').prop('required', true);\r\n });\r\n\r\n // Override email validation message for invalid email address\r\n $('form input[type=\"email\"]').map((index, el) => {\r\n // setMessage takes three parameters (element, validator, message)\r\n hyperform.setMessage(el, 'typeMismatch', 'Please enter a valid email address.');\r\n });\r\n\r\n // Override validation message for checkboxes\r\n $('input[type=\"checkbox\"]').map((index, el) => {\r\n // setMessage takes three parameters (element, validator, message)\r\n hyperform.setMessage(el, 'valueMissing', 'Please select at least one of these options.');\r\n });\r\n\r\n // Override validation message for checkboxes\r\n $('.checks.-single input[type=\"checkbox\"]').map((index, el) => {\r\n // setMessage takes three parameters (element, validator, message)\r\n hyperform.setMessage(el, 'valueMissing', 'Please select to proceed.');\r\n });\r\n\r\n // Override validation message for checkboxes\r\n // $('input[type=\"tel\"]').map((index, el) => {\r\n // // setMessage takes three parameters (element, validator, message)\r\n // hyperform.setMessage(el, 'valueMissing', 'Please fill out phone number.');\r\n // });\r\n\r\n // Call hyperform\r\n hyperform(window, {\r\n classes: {\r\n warning: 'error-message',\r\n validated: '-validated',\r\n valid: '-valid',\r\n invalid: '-invalid'\r\n }\r\n });\r\n\r\n $('form')\r\n // Move error messages for checks and radios after the label instead of after the input\r\n .on('validate', () => {\r\n setTimeout(() => {\r\n\r\n $('.radios[data-required=\"true\"]').each(function() {\r\n\r\n $(this).find('.error-message').map((index, el) => {\r\n if (index === 0) {\r\n $(el).insertAfter($(el).parents('fieldset').find('legend'));\r\n } else {\r\n $(el).remove();\r\n }\r\n });\r\n });\r\n\r\n $('.checks[data-required=\"true\"]').each(function() {\r\n\r\n $(this).find('.error-message').map((index, el) => {\r\n if (index === 0) {\r\n $(el).insertAfter($(el).parents('fieldset').find('legend'));\r\n } else {\r\n $(el).remove();\r\n }\r\n });\r\n });\r\n\r\n $('.checks.-single[data-required=\"true\"]').each(function() {\r\n\r\n $(this).find('.error-message').map((index, el) => {\r\n $(el).insertAfter($(el).parents('fieldset').find('label'));\r\n });\r\n });\r\n\r\n $('.tel-input[data-required=\"true\"]').each(function() {\r\n\r\n $(this).find('.error-message').map((index, el) => {\r\n if (index === 0) {\r\n $(el).insertAfter($(el).parents('fieldset').find('label'));\r\n } else {\r\n $(el).remove();\r\n }\r\n });\r\n });\r\n\r\n $('.expiration-date[data-required=\"true\"]').each(function() {\r\n\r\n $(this).find('.error-message').map((index, el) => {\r\n if (index === 0) {\r\n $(el).insertAfter($(el).parents('fieldset'));\r\n } else {\r\n $(el).remove();\r\n }\r\n });\r\n });\r\n\r\n }, 50);\r\n })\r\n // JS to enable required checkbox groups\r\n .on('change', '.checks[data-required=\"true\"] input', (e) => {\r\n setTimeout(() => {\r\n $(e.currentTarget).parents('fieldset').find('.check .error-message').remove();\r\n if ($(e.currentTarget).parents('fieldset').find('input:checked').length) {\r\n $(e.currentTarget).parents('fieldset').find('.error-message').hide();\r\n $(e.currentTarget).parents('fieldset').find('input').prop('required', false);\r\n } else {\r\n $(e.currentTarget).parents('fieldset').find('.error-message').show();\r\n $(e.currentTarget).parents('fieldset').find('input').prop('required', true);\r\n }\r\n }, 50);\r\n })\r\n // Remove error-messages for radios after one is selected\r\n .on('change', '.radios[data-required=\"true\"] input', (e) => {\r\n setTimeout(() => {\r\n $(e.currentTarget).parents('fieldset').find('.radio .error-message').remove();\r\n }, 50);\r\n })\r\n ;\r\n\r\n // email confirm\r\n\r\n if ($('#email-confirm').length) {\r\n\r\n hyperform.addValidator(\r\n document.getElementById('email-confirm'),\r\n function(element) {\r\n const valid = element.value === document.getElementById('emailfield').value;\r\n element.setCustomValidity(\r\n valid ? '' : 'The email addresses do not match.'\r\n );\r\n return valid;\r\n }\r\n );\r\n\r\n /* whenever the email field changes, revalidate the confirmation field */\r\n document.getElementById('emailfield').addEventListener('input', function() {\r\n document.getElementById('email-confirm').reportValidity();\r\n });\r\n\r\n }\r\n\r\n }\r\n};\r\n","\r\nimport slick from 'slick-carousel';\r\n\r\nexport default () => {\r\n if($('.header-section-slider').length) {\r\n const autoplay = $('.header-section-slider').data('autoplay');\r\n const autoplaySpeed = $('.header-section-slider').data('autoplay-speed');\r\n $('.header-section-slider').slick({\r\n speed: 500,\r\n dots: false,\r\n arrows: true,\r\n accessibility: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n cssEase: 'linear',\r\n autoplay,\r\n autoplaySpeed\r\n });\r\n }\r\n\r\n};\r\n","\r\nimport slick from 'slick-carousel';\r\n\r\nexport default () => {\r\n if($('.home-hero-slider').length) {\r\n const autoplay = $('.home-hero-slider').data('autoplay');\r\n const autoplaySpeed = $('.home-hero-slider').data('autoplay-speed');\r\n $('.home-hero-slider').slick({\r\n speed: 500,\r\n dots: false,\r\n arrows: true,\r\n accessibility: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n cssEase: 'linear',\r\n autoplay,\r\n autoplaySpeed\r\n });\r\n }\r\n\r\n};\r\n","export default () => {\r\n\r\n if ($(\"input[type='submit']\").length) {\r\n\r\n $(\"input[type='submit']\").on('click', function() {\r\n $(this).attr('disabled', true).val('Processing').wrap('
');\r\n });\r\n\r\n }\r\n\r\n};\r\n","export default () => {\r\n\r\n const $searchTrigger = $('.js-main-search'),\r\n $searchDropdown = $('.main-search-dropdown');\r\n\r\n $searchTrigger.on('toggleSearch', toggleSearch);\r\n\r\n function toggleSearch() {\r\n\r\n // open/close search dropdown\r\n $searchTrigger.add($searchDropdown).toggleClass('-active');\r\n\r\n // add/remove class to main nav items to control dropdown disabling\r\n $('.clia-main-nav > ul > li').toggleClass('js-dropdown-disabled');\r\n $('.search-field').focus();\r\n\r\n }\r\n\r\n $searchTrigger.add($('.js-main-search-close')).on('click', (e) => {\r\n e.preventDefault();\r\n toggleSearch();\r\n });\r\n\r\n // if clicked outside search dropdown, hide the dropdown\r\n $(document).click((e) => {\r\n if (!$($searchTrigger.add($searchDropdown)).is(e.target) && $($searchTrigger.add($searchDropdown)).has(e.target).length === 0) {\r\n if ($searchDropdown.hasClass('-active')) {\r\n toggleSearch();\r\n $('.search-field').blur();\r\n }\r\n }\r\n });\r\n\r\n};\r\n","import pushMenu from 'is-mobile-nav';\r\n\r\nexport default () => {\r\n\r\n $('.js-mobile-menu__inner').pushMenu({\r\n menu: '.js-mobile-menu__inner',\r\n mobileNav: '.js-mobile-menu',\r\n navButton: '.js-nav-button',\r\n pageContainer: '.page',\r\n scrollBlocker: '.blocker',\r\n nextHTML: '',\r\n prevHTML: '
  • Back
  • '\r\n });\r\n\r\n};\r\n","import magnificPopup from 'magnific-popup';\r\n\r\nexport default () => {\r\n\r\n // MagnificPopup plugin\r\n $('.modal-trigger').magnificPopup({\r\n type: 'inline',\r\n closeOnBgClick: true,\r\n tLoading: ''\r\n });\r\n\r\n $('.mfp-cancel').click(function(){\r\n $('.mfp-close').trigger('click');\r\n });\r\n\r\n // login/join/forgot password modals swap:\r\n function swapModals(newModal) {\r\n\r\n $.magnificPopup.close();\r\n\r\n $.magnificPopup.open({\r\n items: {\r\n src: newModal\r\n },\r\n type: 'inline',\r\n tLoading: ''\r\n });\r\n\r\n }\r\n\r\n $('body').on('click', '.forgot-password', () => {\r\n swapModals('#modal-forgot-password');\r\n });\r\n\r\n $('body').on('click', '.back-to-login', () => {\r\n swapModals('#modal-login');\r\n });\r\n\r\n $('body').on('click', '.join-clia', () => {\r\n swapModals('#modal-create-account');\r\n });\r\n\r\n};\r\n","// Photo Cropper - Croppie: https://foliotek.github.io/Croppie/\r\n\r\nimport croppie from 'croppie';\r\n\r\nexport default () => {\r\n\r\n // upload image\r\n function readFile(input) {\r\n if (input.files && input.files[0]) {\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n $('.croppie-photo-uploader').addClass('ready');\r\n $uploadCrop.croppie('bind', {\r\n url: e.target.result\r\n }).then(function () {\r\n // console.log('jQuery bind complete');\r\n $('.photo-cropper-outer').removeClass('-inactive');\r\n $('.photo-upload-text').removeClass('-active');\r\n $('#myclia-profile-photo-uploaded').val(e.target.result);\r\n $('.croppie-photo-uploader').addClass('user-has-uploaded-or-edited-without-confirm');\r\n });\r\n\r\n };\r\n\r\n reader.readAsDataURL(input.files[0]);\r\n } else {\r\n swal(\"Sorry - you're browser doesn't support the FileReader API\"); /* TODO: hardcoded text */\r\n }\r\n }\r\n\r\n // popup result of crop\r\n function popupResult(result) {\r\n var html;\r\n if (result.html) {\r\n html = result.html;\r\n }\r\n\r\n if (result.src) {\r\n html = '';\r\n }\r\n\r\n $('#photo-cropped-preview').html(html);\r\n $('#myclia-profile-photo-result').val(html);\r\n\r\n $.magnificPopup.open({\r\n items: {\r\n src: '#modal-myclia-profile-preview-photo',\r\n },\r\n type: 'inline'\r\n });\r\n\r\n }\r\n\r\n if ($('.croppie-photo-uploader').length) {\r\n\r\n // if no photo is uploaded show text and hide tools\r\n if ($('#myclia-profile-photo').val().length == 0) {\r\n $('.photo-cropper-outer').addClass('-inactive');\r\n $('.photo-upload-text').addClass('-active');\r\n }\r\n\r\n // set up croppie\r\n var $uploadCrop;\r\n var cropDimsWidth = $('.croppie-photo-uploader').data('photo-width');\r\n\tvar cropDimsHeight = $('.croppie-photo-uploader').data('photo-height');\r\n var bound = cropDimsWidth < 400 ? cropDimsWidth + 120 : cropDimsWidth + 100;\r\n\r\n $uploadCrop = $('#photo-cropper').croppie({\r\n enableExif: true,\r\n url: $('#myclia-profile-photo').attr('value'),\r\n viewport: {\r\n width: cropDimsWidth,\r\n height: cropDimsHeight,\r\n type: 'square'\r\n },\r\n boundary: {\r\n width: bound,\r\n height: bound\r\n },\r\n enableOrientation: true\r\n });\r\n\r\n // creates preview of the cropped image\r\n $('.photo-upload-preview').on('click', function (ev) {\r\n\r\n ev.preventDefault();\r\n\r\n $uploadCrop.croppie('result', {\r\n type: 'canvas',\r\n format: 'jpeg',\r\n size: {\r\n width: cropDimsWidth,\r\n height: cropDimsHeight\r\n }\r\n }).then(function (resp) {\r\n\r\n popupResult({\r\n src: resp\r\n });\r\n });\r\n });\r\n\r\n // upload button\r\n $('#profile-upload').on('change', function () {\r\n readFile(this);\r\n });\r\n\r\n // rotate buttons\r\n $('.croppie-rotate').on('click', function(ev) {\r\n ev.preventDefault();\r\n $uploadCrop.croppie('rotate', parseInt($(this).data('deg')));\r\n $('.croppie-photo-uploader').addClass('user-has-uploaded-or-edited-without-confirm');\r\n\t\t});\r\n\r\n // preview popup confirm button\r\n $('.croppie-preview-confirm').on('click', function (e) {\r\n e.preventDefault();\r\n $.magnificPopup.close();\r\n $('.croppie-photo-uploader').removeClass('user-has-uploaded-or-edited-without-confirm');\r\n });\r\n\r\n }\r\n\r\n};\r\n","/* eslint-disable */\r\n\r\nimport { Config, Pagination } from 'is-search';\r\n\r\nexport default () => {\r\n\r\n /**\r\n * All available query parameters\r\n */\r\n const options = new Config();\r\n options.endpoint = process.env.SEARCH_ENDPOINT;\r\n options.searchURL = process.env.SEARCH_URL;\r\n options.defaultQueryParams = { _limit: 20, _page: 1, q: '' };\r\n options.pagerParam = '_page';\r\n \r\n options.defaultQueryParams.lang = document.documentElement.lang;\r\n \r\n /**\r\n * Instantiate the primary Search and Pagination classes\r\n */\r\n const search = new Pagination(options);\r\n\r\n search.init();\r\n\r\n /**\r\n * Search templates being used to output HTML. Optional not Required\r\n */\r\n search.templates = {\r\n result: '

    %title

    %body

    ',\r\n count: '

    Showing %start-%end of %totalResults

    ',\r\n keywords: 'results for “%keywords”'\r\n };\r\n\r\n /**\r\n * Event callback for AJAX requests which build the results and pager\r\n */\r\n $(search)\r\n .on('isLoading', _isLoading)\r\n .on('HandleResponse', _HandleResponse)\r\n .on('HandleResponse', _buildPagination)\r\n ;\r\n\r\n /**\r\n * Pagination arrows and numbers click events\r\n */\r\n $('.search-pagination-group')\r\n .on('click', '.prev', search.previousPage.bind(search))\r\n .on('click', '.next', search.nextPage.bind(search))\r\n .on('click', '.search-pagination a', _paginationTrigger)\r\n ;\r\n\r\n /**\r\n * Hide pagination next/prev until there are results\r\n */\r\n $('.search-pagination-group-actions a').hide();\r\n\r\n /**\r\n * Disable/enable submit button if no keywords are present\r\n */\r\n if (!$('.js-search input').val()) {\r\n $('.js-search input').next().attr('disabled', true);\r\n }\r\n\r\n $('.js-search input').on('input propertychange', (e) => {\r\n if ($(e.currentTarget).val()) {\r\n $(e.currentTarget).next().attr('disabled', false);\r\n } else {\r\n $(e.currentTarget).next().attr('disabled', true);\r\n }\r\n });\r\n\r\n /**\r\n * Keyword search for search results page\r\n */\r\n $('.js-search input')\r\n .on('input propertychange', search.debounce(_keywordSearch.bind(search), 1000))\r\n .end()\r\n .on('click', 'a.submit', _keywordSearch);\r\n\r\n /**\r\n * Keyword search for header search\r\n */\r\n $('.search-form button').on('click', _keywordSearch);\r\n\r\n /**\r\n * Prevent Enter key from submitting the search form\r\n */\r\n $('.js-search input').on('keydown', _preventEnterSubmission);\r\n\r\n /**\r\n * Callback for build the pagination based off the returned results.\r\n *\r\n * @private\r\n * @method _buildPagination\r\n * @return undefined\r\n */\r\n function _buildPagination() {\r\n $('ul.search-pagination').empty();\r\n if (search.keywords) {\r\n search.buildPager().map(_buildPaginationItem);\r\n }\r\n }\r\n\r\n /**\r\n * Callback for building an individual pager item.\r\n *\r\n * @private\r\n * @method _buildPaginationItem\r\n * @param { Object } page\r\n * @return undefined\r\n */\r\n function _buildPaginationItem(page) {\r\n const { current, link, text, value } = page,\r\n currentHTML = `
  • ${text}
  • `;\r\n\r\n let defaultHTML = `
  • ${text}
  • `;\r\n\r\n if (link === null) {\r\n defaultHTML = `
  • ${text}
  • `;\r\n }\r\n\r\n $('ul.search-pagination').append(current ? currentHTML : defaultHTML);\r\n }\r\n\r\n /**\r\n * Callback for processing the keywords entered into the search.\r\n *\r\n * @private\r\n * @method _keywordSearch\r\n * @param { Object } event\r\n * @return undefined\r\n */\r\n function _keywordSearch(event) {\r\n event.preventDefault();\r\n\r\n const parent = $(event.target).parent(),\r\n keywords = parent.find('input').val();\r\n\r\n // Prevent the Header popup form from auto sumitting on text input.\r\n // This will require the user to click the search button or hit Enter.\r\n if (parent.hasClass('search-form') && event.type === 'keyup' && event.keyCode !== 13) {\r\n return false;\r\n }\r\n\r\n if (!keywords || keywords.length < 2){\r\n return false;\r\n }\r\n\r\n // Close the header search if open.\r\n if ($('.clia-main-nav li.search').hasClass('js-dropdown-disabled')) {\r\n $('.js-main-search').trigger('toggleSearch');\r\n }\r\n\r\n // Redirect the user to the search page if they are using the header search.\r\n if (window.location.pathname !== options.searchURL) {\r\n search.query['q'] = keywords;\r\n return window.location = search._buildURL();\r\n }\r\n\r\n search._helperUpdateKeywords(keywords);\r\n }\r\n\r\n /**\r\n * Callback being used to as the click event for the pagintation.\r\n *\r\n * @private\r\n * @method _paginationTrigger\r\n * @param { Object } event\r\n * @return undefined\r\n */\r\n function _paginationTrigger(event) {\r\n event.preventDefault();\r\n\r\n const page = $(event.target).data('value');\r\n search._helperUpdatePage(page);\r\n }\r\n\r\n /**\r\n * Callback for preventing Enter key globally.\r\n *\r\n * @private\r\n * @method _preventEnterSubmission\r\n * @param { Object } event\r\n * @return { Boolean } true|false\r\n */\r\n function _preventEnterSubmission(event) {\r\n if (event.keyCode == 13) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Callback that allows for a progress loaded to be initialized and de-initialized.\r\n *\r\n * @private\r\n * @method _isLoading\r\n * @param { Object } event\r\n * @param { Boolean } state true|false\r\n * @return undefined\r\n */\r\n function _isLoading(event, state) {\r\n switch (state) {\r\n case true:\r\n $('.-search-results').attr('data-loading', true);\r\n break;\r\n default:\r\n $('.-search-results').attr('data-loading', false);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Callback for the primary AJAX responses.\r\n *\r\n * @private\r\n * @method _HandleResponse\r\n * @param { Object } event\r\n * @param { JSON } response\r\n * @return undefined\r\n */\r\n function _HandleResponse(event, response) {\r\n var results = response.results,\r\n\tfirstResult = search.firstResult,\r\n\tkeywords = search.keywords.replace('%20', ' '),\r\n\tlastResult = search.lastResult,\r\n\ttotalResults = search.totalResults,\r\n\ttotalPages = search.totalPages;\r\n\t\r\n // Disable/enable pagination arrows if first or last page is the current page\r\n setTimeout(() => {\r\n\r\n if (parseInt($('.search-pagination li.current').text()) === totalPages) {\r\n $('.search-pagination-group-actions .next').attr('disabled', true);\r\n } else {\r\n $('.search-pagination-group-actions .next').attr('disabled', false);\r\n }\r\n\r\n if (parseInt($('.search-pagination li.current').text()) === 1) {\r\n $('.search-pagination-group-actions .prev').attr('disabled', true);\r\n } else {\r\n $('.search-pagination-group-actions .prev').attr('disabled', false);\r\n }\r\n\r\n }, 100);\r\n\t\r\n\tvar readableKeywords = keywords.replace('%20', ' ');\r\n\r\n // Empty out the current search results.\r\n $('.result-count, .js-search-container').empty();\r\n\r\n // Make sure the search form matches the parameter in the URL if set.\r\n // Mostly done for when a user enters a page directly from a query link.\r\n if (keywords !== '' && $('.js-search input').val() !== keywords) {\r\n $('.js-search input').val(readableKeywords);\r\n }\r\n\r\n // Make sure keywords are given\r\n if (!keywords) {\r\n $('.search-no-keywords').show();\r\n $('.search-no-results').hide();\r\n $('.search-pagination-group').hide();\r\n //$('.search-pagination-group-actions a').hide();\r\n return false;\r\n }\r\n\r\n // Handle no results\r\n if (totalResults === 0) {\r\n $('.search-no-results').show();\r\n $('.search-term').text('\"' + readableKeywords.replace('%20', ' ') + '\"');\r\n $('.search-no-keywords').hide();\r\n $('.search-pagination-group').hide(); \r\n $('.search-pagination-group-actions a').hide();\r\n return false;\r\n }\r\n\r\n // Hide pagination if only a single page\r\n if (totalResults <= options.defaultQueryParams._limit) {\r\n $('.search-pagination-group').hide();\r\n $('.search-pagination-group-actions a').hide();\r\n }\r\n else {\r\n $('.search-pagination-group').show();\r\n $('.search-pagination-group-actions a').show();\r\n }\r\n\r\n // Hide no results and no keywords if results\r\n // Show pagination arrows if results\r\n if (keywords && totalResults > 0) {\r\n $('.search-no-results').hide();\r\n $('.search-no-keywords').hide();\r\n // $('.search-pagination-group-actions a').show();\r\n }\r\n\r\n // Build the Showing and Results template for the top.\r\n let count = search.template('count', [\r\n { variable: '%start', value: firstResult },\r\n { variable: '%end', value: lastResult },\r\n { variable: '%totalResults', value: totalResults }\r\n ]);\r\n\r\n // Attach keywords results for \"amet\" if keywords are available.\r\n if (keywords) {\r\n const words = search.template('keywords', [\r\n { variable: '%keywords', value: readableKeywords }\r\n ]);\r\n\t \r\n count = count.replace('

    ', ' ' + words);\r\n }\r\n\r\n // Insert the count template into the .result-count placeholder.\r\n $('.result-count').append(count);\r\n\r\n // Build and output each individual search result.\r\n results.map(({ url, title, description }) => {\r\n const template = search.template('result', [\r\n { variable: '%link', value: url },\r\n { variable: '%title', value: title },\r\n { variable: '%body', value: description }\r\n ]);\r\n\r\n $('.js-search-container').append(template);\r\n });\r\n\r\n // Smooth scroll to top of the page for new search or pagination clicks\r\n $('html, body').animate({\r\n scrollTop: $('.page').offset().top\r\n }, 400);\r\n }\r\n};\r\n","export default () => {\r\n\r\n // desktop tabs come first\r\n if ($('ul.tabs').length) {\r\n\r\n $('ul.tabs li:first-of-type').addClass('current');\r\n\r\n $('#tab-0').addClass('current');\r\n\r\n $('ul.tabs li').on('click', (e) => {\r\n $('ul.tabs li').removeClass('current');\r\n $('.tab').removeClass('current');\r\n $(e.currentTarget).addClass('current');\r\n $('#' + $(e.currentTarget).attr('data-tab')).addClass('current');\r\n });\r\n\r\n }\r\n\r\n // mobile tabs come next\r\n if ($('.tab-list-mobile').length) {\r\n\r\n $('.tab-list-mobile').on('change', (e) => {\r\n $('.tab').removeClass('current');\r\n $('#' + e.currentTarget.value).addClass('current');\r\n });\r\n\r\n }\r\n\r\n};\r\n","import tippy from 'tippy.js';\r\n\r\nexport default () => {\r\n\r\n tippy('.tooltip', {\r\n arrow: true,\r\n trigger: 'click focus',\r\n duration: [200, 100],\r\n theme: 'clia'\r\n });\r\n\r\n};\r\n","// Global imports\r\nimport $ from 'jquery';\r\n\r\n// Plugins\r\nimport enquire from 'enquire.js';\r\n\r\n// Components\r\nimport objectFitPolyfill from 'objectFitPolyfill';\r\nimport mobileNav from './components/mobile-nav';\r\nimport mainSearch from './components/main-search';\r\nimport formValidation from './components/form-validation';\r\nimport tabContent from './components/tab-content';\r\nimport accordions from './components/accordions';\r\nimport modals from './components/modals';\r\nimport eventsFilters from './components/events-filters';\r\nimport photoCropper from './components/photo-cropper';\r\nimport search from './components/search';\r\nimport billing from './components/billing';\r\n// import loadContentOnScroll from './components/load-content-on-scroll';\r\nimport certificationsSlider from './components/certifications-slider';\r\nimport headerSlider from './components/header-slider';\r\nimport contentSlider from './components/content-slider';\r\nimport homeHeroSlider from './components/home-hero-slider';\r\nimport datepicker from './components/datepicker';\r\nimport tippy from './components/tooltips';\r\nimport fileUpload from './components/file-upload';\r\nimport loadingSpinner from './components/loading-spinner';\r\n\r\n(($) => {\r\n\r\n $(() => {\r\n\r\n // custom easing\r\n $.easing.easeOutExpo = (x, t, b, c, d) => {\r\n return (t === d) ? (b + c) : (c * (-Math.pow(2, -10 * t / d) + 1)) + b;\r\n };\r\n\r\n // scroll to element\r\n function scrollTo(e, ScrollSpeed) {\r\n $('html, body').animate({\r\n scrollTop: e.offset().top\r\n }, 600, 'easeOutExpo');\r\n }\r\n\r\n // Search Results Page\r\n search();\r\n\r\n // Mobile Navigation\r\n mobileNav();\r\n\r\n // Hyperform form validation\r\n formValidation();\r\n\r\n // Main Search Dropdown\r\n mainSearch();\r\n\r\n // Tab Content\r\n tabContent();\r\n\r\n // Accordions\r\n if (!$('body').hasClass('scee')) {\r\n accordions();\r\n }\r\n\r\n // Modals\r\n modals();\r\n\r\n // Events Filters\r\n eventsFilters();\r\n\r\n billing();\r\n\r\n // Load Content on Scroll\r\n\t// Commenting because causes page to load at bottom.\r\n // loadContentOnScroll();\r\n\r\n // Slider on Professional Development Certifications\r\n if (!$('body').hasClass('scee')) {\r\n certificationsSlider();\r\n }\r\n\r\n // Home Hero Slider\r\n homeHeroSlider();\r\n\r\n // Header Slider\r\n headerSlider();\r\n\r\n // Content Slider\r\n contentSlider();\r\n\r\n datepicker();\r\n\r\n // tooltips\r\n tippy();\r\n\r\n fileUpload();\r\n\r\n // will need to replace this with 2 functions that wrap/unwrap\r\n // loadingSpinner();\r\n\r\n // Forms\r\n\r\n // reset event filters\r\n $('.event-filters .reset').on('click', (e) => {\r\n e.preventDefault();\r\n $('#js-event-filters').find('select').prop('selectedIndex', 0);\r\n });\r\n\r\n // Photo Cropper\r\n photoCropper();\r\n\r\n // Miscellaneous Components\r\n\r\n // CONNECTING CRUISE INDUSTRY (on homepage)\r\n // remove vr from prev sibling on hover\r\n $('.connecting-cruise-industry .item').hover((e) => {\r\n $(e.target).prev().toggleClass('js-next-active');\r\n });\r\n\r\n // view legend button scroll\r\n $('.view-legend').on('click', (e) => {\r\n e.preventDefault();\r\n scrollTo($('.agent-finder-legend'));\r\n });\r\n\r\n // back to search results button scroll\r\n $('.jump-to-search-results').on('click', (e) => {\r\n e.preventDefault();\r\n scrollTo($('.agent-finder-results'));\r\n });\r\n\r\n // Enquire js stuff\r\n enquire.register('screen and (min-width:800px)', {\r\n\r\n match: () => {\r\n\r\n if ($('.event-filters').length) {\r\n $('.event-filters-inner').css('display', 'block');\r\n }\r\n\r\n },\r\n unmatch: () => {\r\n\r\n if ($('.event-filters').length) {\r\n if (!$('.event-filters').hasClass('-active')) {\r\n $('.event-filters-inner').css('display', 'none');\r\n }\r\n }\r\n\r\n }\r\n\r\n }, true);\r\n\r\n });\r\n\r\n})(jQuery);\r\n\r\n\r\nwindow.CLIA = (($) => {\r\n\r\n const _clia = {};\r\n\r\n // private util helper class\r\n const util = (() => {\r\n const _util = {};\r\n\r\n _util.handleAjaxForm = ($obj, func) => {\r\n $obj.submit(function (e) {\r\n e.preventDefault();\r\n\r\n const $formContainer = $(e.target);\r\n const $form = $(e.target);\r\n\r\n const action = $form.attr('action');\r\n const data = $form.serializeArray();\r\n\r\n const $formSubmitbtn = $(document.activeElement);\r\n const hasFormSubmit = $formSubmitbtn && $formSubmitbtn.is(\":submit\");\r\n const $formSubmitIsLoading = hasFormSubmit ? $formSubmitbtn.prev() : null;\r\n const hasFormSubmitIsLoading = $formSubmitIsLoading && $formSubmitIsLoading.is(\".-is-loading\");\r\n\r\n if (hasFormSubmitIsLoading){\r\n $formSubmitbtn.hide();\r\n $formSubmitIsLoading.show();\r\n }\r\n\r\n util.clearResultDiv($formContainer);\r\n\r\n $.post(action, data, (result) => {\r\n if (hasFormSubmitIsLoading){\r\n $formSubmitbtn.show();\r\n $formSubmitIsLoading.hide();\r\n }\r\n if (result.Reload){\r\n let returnUrl = _util.getParameterByName('returnUrl');\r\n if(result.ReturnUrl.length){\r\n returnUrl = result.ReturnUrl;\r\n }\r\n\r\n if (returnUrl && returnUrl.length > 0){\r\n location.href = returnUrl;\r\n }\r\n else{\r\n location.reload();\r\n }\r\n }\r\n\r\n if (result.Modal){\r\n util.updateResultDiv($(\"#\" + result.Modal), result.Success, result.Messages);\r\n util.swapModals(\"#\" + result.Modal);\r\n }\r\n else {\r\n util.updateResultDiv($formContainer, result.Success, result.Messages);\r\n }\r\n\r\n if (func && func !== null) {\r\n func(result);\r\n }\r\n\r\n });\r\n });\r\n };\r\n\r\n _util.getParameterByName = (name, url) => {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n };\r\n\r\n _util.swapModals = (newModal) => {\r\n\r\n $.magnificPopup.close();\r\n\r\n $.magnificPopup.open({\r\n items: {\r\n src: newModal\r\n },\r\n type: 'inline',\r\n tLoading: ''\r\n });\r\n };\r\n\r\n _util.updateResultDiv = ($formContainer, isSuccess, msgs) => {\r\n let result = '';\r\n\r\n let $resultDiv = $formContainer.find('.resultDiv');\r\n\r\n\t if (msgs && msgs.length > 0) {\r\n\t\t for (let index = 0; index < msgs.length; index++) {\r\n\t\t\tresult += '

    ' + msgs[index] + '

    ';\r\n\t\t }\r\n\t }\r\n\r\n if (isSuccess === false) {\r\n // update the css class for errors\r\n $resultDiv.addClass('error');\r\n } else {\r\n $resultDiv.removeClass('error');\r\n }\r\n\r\n $resultDiv.html(result);\r\n };\r\n\r\n _util.clearResultDiv = ($formContainer) => {\r\n let result = '';\r\n let $resultDiv = $formContainer.find('.resultDiv');\r\n $resultDiv.removeClass('error');\r\n\r\n $resultDiv.html(result);\r\n };\r\n\r\n if (location.search.indexOf('showmodal=')>=0){\r\n var modalName = _util.getParameterByName(\"showmodal\");\r\n if (modalName && modalName.length > 0 && $('#' + modalName).length === 1){\r\n _util.swapModals(\"#\" + modalName);\r\n if (location.search.indexOf('resetCode=')>=0){\r\n var resetCode = _util.getParameterByName(\"resetCode\");\r\n var resetCodeItem = $('#' + modalName).find(\"input[name=resetCode]\");\r\n if (resetCodeItem){\r\n resetCodeItem.val(resetCode)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return _util;\r\n })();\r\n\r\n // Forms\r\n // purpose: handles generic forms and their ajax request to the server\r\n _clia.forms = (() => {\r\n const _forms = {};\r\n\r\n _forms.bindForm = ($obj, func) => {\r\n util.handleAjaxForm($obj, func);\r\n };\r\n\r\n return _forms;\r\n })();\r\n\r\n // AddThis\r\n // purpose: integrates with addthis to add social buttons\r\n _clia.addThis = (() => {\r\n const _addThis = {};\r\n\r\n // s7.addthis.com/js/300/addthis_widget.js#pubid=ra-58c02d44a6c6b75c\r\n const scripturl = '//s7.addthis.com/js/300/addthis_widget.js#pubid=';\r\n\r\n _addThis.init = (pubid) => {\r\n const elemId = 'addthis-' + pubid;\r\n\r\n // if it already exists we dont need to do anything\r\n if ($('#' + elemId).length > 0) {\r\n return;\r\n }\r\n\r\n // create element\r\n const e = document.createElement('script');\r\n\r\n e.id = elemId;\r\n e.type = 'text/javascript';\r\n e.src = scripturl + pubid;\r\n\r\n // find body tag\r\n const lastItem = document.body.lastChild;\r\n\r\n document.body.insertBefore(e, lastItem.nextSibling);\r\n };\r\n\r\n return _addThis;\r\n })();\r\n\r\n // ShareThis\r\n // purpose: integrates with sharethis to add social buttons\r\n _clia.shareThis = (() => {\r\n const _shareThis = {};\r\n\r\n // platform-api.sharethis.com/js/sharethis.js#property=58c02a9a40bc28001149e667&product=inline-share-buttons\r\n const scripturlFirst = '//platform-api.sharethis.com/js/sharethis.js#property=';\r\n const scripturlLast = '&product=inline-share-buttons';\r\n\r\n _shareThis.init = (pubid) => {\r\n const elemId = 'sharethis-' + pubid;\r\n\r\n // if it already exists we dont need to do anything\r\n if ($('#' + elemId).length > 0) {\r\n return;\r\n }\r\n\r\n // create element\r\n const e = document.createElement('script');\r\n\r\n e.id = elemId;\r\n e.type = 'text/javascript';\r\n e.src = scripturlFirst + pubid + scripturlLast;\r\n\r\n // find body tag\r\n const lastItem = document.body.lastChild;\r\n\r\n document.body.insertBefore(e, lastItem.nextSibling);\r\n };\r\n\r\n return _shareThis;\r\n })();\r\n\r\n\r\n\r\n return _clia;\r\n})(jQuery);\r\n","/*!\n * Datepicker v0.6.4\n * https://github.com/fengyuanchen/datepicker\n *\n * Copyright (c) 2014-2017 Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2017-11-24T14:38:23.820Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :\n\ttypeof define === 'function' && define.amd ? define(['jquery'], factory) :\n\t(factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n$ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n\nvar DEFAULTS = {\n // Show the datepicker automatically when initialized\n autoShow: false,\n\n // Hide the datepicker automatically when picked\n autoHide: false,\n\n // Pick the initial date automatically when initialized\n autoPick: false,\n\n // Enable inline mode\n inline: false,\n\n // A element (or selector) for putting the datepicker\n container: null,\n\n // A element (or selector) for triggering the datepicker\n trigger: null,\n\n // The ISO language code (built-in: en-US)\n language: '',\n\n // The date string format\n format: 'mm/dd/yyyy',\n\n // The initial date\n date: null,\n\n // The start view date\n startDate: null,\n\n // The end view date\n endDate: null,\n\n // The start view when initialized\n startView: 0, // 0 for days, 1 for months, 2 for years\n\n // The start day of the week\n // 0 for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday,\n // 4 for Thursday, 5 for Friday, 6 for Saturday\n weekStart: 0,\n\n // Show year before month on the datepicker header\n yearFirst: false,\n\n // A string suffix to the year number.\n yearSuffix: '',\n\n // Days' name of the week.\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n\n // Shorter days' name\n daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\n // Shortest days' name\n daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n\n // Months' name\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n\n // Shorter months' name\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n\n // A element tag for each item of years, months and days\n itemTag: 'li',\n\n // A class (CSS) for muted date item\n mutedClass: 'muted',\n\n // A class (CSS) for picked date item\n pickedClass: 'picked',\n\n // A class (CSS) for disabled date item\n disabledClass: 'disabled',\n\n // A class (CSS) for highlight date item\n highlightedClass: 'highlighted',\n\n // The template of the datepicker\n template: '
    ' + '
    ' + '
      ' + '
    • ' + '
    • ' + '
    • ' + '
    ' + '
      ' + '
      ' + '
      ' + '
        ' + '
      • ' + '
      • ' + '
      • ' + '
      ' + '
        ' + '
        ' + '
        ' + '
          ' + '
        • ' + '
        • ' + '
        • ' + '
        ' + '
          ' + '
            ' + '
            ' + '
            ',\n\n // The offset top or bottom of the datepicker from the element\n offset: 10,\n\n // The `z-index` of the datepicker\n zIndex: 1000,\n\n // Filter each date item (return `false` to disable a date item)\n filter: null,\n\n // Event shortcuts\n show: null,\n hide: null,\n pick: null\n};\n\nvar WINDOW = typeof window !== 'undefined' ? window : {};\nvar NAMESPACE = 'datepicker';\nvar EVENT_CLICK = 'click.' + NAMESPACE;\nvar EVENT_FOCUS = 'focus.' + NAMESPACE;\nvar EVENT_HIDE = 'hide.' + NAMESPACE;\nvar EVENT_KEYUP = 'keyup.' + NAMESPACE;\nvar EVENT_PICK = 'pick.' + NAMESPACE;\nvar EVENT_RESIZE = 'resize.' + NAMESPACE;\nvar EVENT_SHOW = 'show.' + NAMESPACE;\nvar CLASS_HIDE = NAMESPACE + '-hide';\nvar LANGUAGES = {};\nvar VIEWS = {\n DAYS: 0,\n MONTHS: 1,\n YEARS: 2\n};\n\nvar toString = Object.prototype.toString;\n\n\nfunction typeOf(obj) {\n return toString.call(obj).slice(8, -1).toLowerCase();\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n\nvar isNaN = Number.isNaN || WINDOW.isNaN;\n\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n\nfunction isDate(value) {\n return typeOf(value) === 'date';\n}\n\nfunction proxy(fn, context) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, args2 = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args2[_key2] = arguments[_key2];\n }\n\n return fn.apply(context, args.concat(args2));\n };\n}\n\nfunction selectorOf(view) {\n return '[data-view=\"' + view + '\"]';\n}\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n\nfunction getDaysInMonth(year, month) {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n}\n\nfunction getMinDay(year, month, day) {\n return Math.min(day, getDaysInMonth(year, month));\n}\n\nvar formatParts = /(y|m|d)+/g;\n\nfunction parseFormat(format) {\n var source = String(format).toLowerCase();\n var parts = source.match(formatParts);\n\n if (!parts || parts.length === 0) {\n throw new Error('Invalid date format.');\n }\n\n format = {\n source: source,\n parts: parts\n };\n\n $.each(parts, function (i, part) {\n switch (part) {\n case 'dd':\n case 'd':\n format.hasDay = true;\n break;\n\n case 'mm':\n case 'm':\n format.hasMonth = true;\n break;\n\n case 'yyyy':\n case 'yy':\n format.hasYear = true;\n break;\n\n default:\n }\n });\n\n return format;\n}\n\nvar REGEXP_DIGITS = /\\d+/g;\n\nvar methods = {\n // Show the datepicker\n show: function show() {\n if (!this.built) {\n this.build();\n }\n\n if (this.shown) {\n return;\n }\n\n if (this.trigger(EVENT_SHOW).isDefaultPrevented()) {\n return;\n }\n\n this.shown = true;\n this.$picker.removeClass(CLASS_HIDE).on(EVENT_CLICK, $.proxy(this.click, this));\n this.showView(this.options.startView);\n\n if (!this.inline) {\n $(window).on(EVENT_RESIZE, this.onResize = proxy(this.place, this));\n $(document).on(EVENT_CLICK, this.onGlobalClick = proxy(this.globalClick, this));\n $(document).on(EVENT_KEYUP, this.onGlobalKeyup = proxy(this.globalKeyup, this));\n this.place();\n }\n },\n\n\n // Hide the datepicker\n hide: function hide() {\n if (!this.shown) {\n return;\n }\n\n if (this.trigger(EVENT_HIDE).isDefaultPrevented()) {\n return;\n }\n\n this.shown = false;\n this.$picker.addClass(CLASS_HIDE).off(EVENT_CLICK, this.click);\n\n if (!this.inline) {\n $(window).off(EVENT_RESIZE, this.onResize);\n $(document).off(EVENT_CLICK, this.onGlobalClick);\n $(document).off(EVENT_KEYUP, this.onGlobalKeyup);\n }\n },\n toggle: function toggle() {\n if (this.shown) {\n this.hide();\n } else {\n this.show();\n }\n },\n\n\n // Update the datepicker with the current input value\n update: function update() {\n var value = this.getValue();\n\n if (value === this.oldValue) {\n return;\n }\n\n this.setDate(value, true);\n this.oldValue = value;\n },\n\n\n /**\n * Pick the current date to the element\n *\n * @param {String} _view (private)\n */\n pick: function pick(_view) {\n var $this = this.$element;\n var date = this.date;\n\n\n if (this.trigger(EVENT_PICK, {\n view: _view || '',\n date: date\n }).isDefaultPrevented()) {\n return;\n }\n\n date = this.formatDate(this.date);\n this.setValue(date);\n\n if (this.isInput) {\n $this.trigger('input');\n $this.trigger('change');\n }\n },\n\n\n // Reset the datepicker\n reset: function reset() {\n this.setDate(this.initialDate, true);\n this.setValue(this.initialValue);\n\n if (this.shown) {\n this.showView(this.options.startView);\n }\n },\n\n\n /**\n * Get the month name with given argument or the current date\n *\n * @param {Number} month (optional)\n * @param {Boolean} short (optional)\n * @return {String} (month name)\n */\n getMonthName: function getMonthName(month, short) {\n var options = this.options;\n var monthsShort = options.monthsShort;\n var months = options.months;\n\n\n if ($.isNumeric(month)) {\n month = Number(month);\n } else if (isUndefined(short)) {\n short = month;\n }\n\n if (short === true) {\n months = monthsShort;\n }\n\n return months[isNumber(month) ? month : this.date.getMonth()];\n },\n\n\n /**\n * Get the day name with given argument or the current date\n *\n * @param {Number} day (optional)\n * @param {Boolean} short (optional)\n * @param {Boolean} min (optional)\n * @return {String} (day name)\n */\n getDayName: function getDayName(day, short, min) {\n var options = this.options;\n var days = options.days;\n\n\n if ($.isNumeric(day)) {\n day = Number(day);\n } else {\n if (isUndefined(min)) {\n min = short;\n }\n\n if (isUndefined(short)) {\n short = day;\n }\n }\n\n if (min) {\n days = options.daysMin;\n } else if (short) {\n days = options.daysShort;\n }\n\n return days[isNumber(day) ? day : this.date.getDay()];\n },\n\n\n /**\n * Get the current date\n *\n * @param {Boolean} formatted (optional)\n * @return {Date|String} (date)\n */\n getDate: function getDate(formatted) {\n var date = this.date;\n\n\n return formatted ? this.formatDate(date) : new Date(date);\n },\n\n\n /**\n * Set the current date with a new date\n *\n * @param {Date} date\n * @param {Boolean} _updated (private)\n */\n setDate: function setDate(date, _updated) {\n var filter = this.options.filter;\n\n\n if (isDate(date) || isString(date)) {\n date = this.parseDate(date);\n\n if ($.isFunction(filter) && filter.call(this.$element, date) === false) {\n return;\n }\n\n this.date = date;\n this.viewDate = new Date(date);\n\n if (!_updated) {\n this.pick();\n }\n\n if (this.built) {\n this.render();\n }\n }\n },\n\n\n /**\n * Set the start view date with a new date\n *\n * @param {Date} date\n */\n setStartDate: function setStartDate(date) {\n if (isDate(date) || isString(date)) {\n this.startDate = this.parseDate(date);\n\n if (this.built) {\n this.render();\n }\n }\n },\n\n\n /**\n * Set the end view date with a new date\n *\n * @param {Date} date\n */\n setEndDate: function setEndDate(date) {\n if (isDate(date) || isString(date)) {\n this.endDate = this.parseDate(date);\n\n if (this.built) {\n this.render();\n }\n }\n },\n\n\n /**\n * Parse a date string with the set date format\n *\n * @param {String} date\n * @return {Date} (parsed date)\n */\n parseDate: function parseDate(date) {\n var format = this.format;\n\n var parts = [];\n\n if (isDate(date)) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n } else if (isString(date)) {\n parts = date.match(REGEXP_DIGITS) || [];\n }\n\n date = new Date();\n\n var length = format.parts.length;\n\n var year = date.getFullYear();\n var day = date.getDate();\n var month = date.getMonth();\n\n if (parts.length === length) {\n $.each(parts, function (i, part) {\n var value = parseInt(part, 10) || 1;\n\n switch (format.parts[i]) {\n case 'dd':\n case 'd':\n day = value;\n break;\n\n case 'mm':\n case 'm':\n month = value - 1;\n break;\n\n case 'yy':\n year = 2000 + value;\n break;\n\n case 'yyyy':\n year = value;\n break;\n\n default:\n }\n });\n }\n\n return new Date(year, month, day);\n },\n\n\n /**\n * Format a date object to a string with the set date format\n *\n * @param {Date} date\n * @return {String} (formatted date)\n */\n formatDate: function formatDate(date) {\n var format = this.format;\n\n var formatted = '';\n\n if (isDate(date)) {\n var year = date.getFullYear();\n var values = {\n d: date.getDate(),\n m: date.getMonth() + 1,\n yy: year.toString().substring(2),\n yyyy: year\n };\n\n values.dd = (values.d < 10 ? '0' : '') + values.d;\n values.mm = (values.m < 10 ? '0' : '') + values.m;\n formatted = format.source;\n $.each(format.parts, function (i, part) {\n formatted = formatted.replace(part, values[part]);\n });\n }\n\n return formatted;\n },\n\n\n // Destroy the datepicker and remove the instance from the target element\n destroy: function destroy() {\n this.unbind();\n this.unbuild();\n this.$element.removeData(NAMESPACE);\n }\n};\n\nvar handlers = {\n click: function click(e) {\n var $target = $(e.target);\n var options = this.options,\n viewDate = this.viewDate,\n format = this.format;\n\n\n e.stopPropagation();\n e.preventDefault();\n\n if ($target.hasClass('disabled')) {\n return;\n }\n\n var view = $target.data('view');\n var viewYear = viewDate.getFullYear();\n var viewMonth = viewDate.getMonth();\n var viewDay = viewDate.getDate();\n\n switch (view) {\n case 'years prev':\n case 'years next':\n {\n viewYear = view === 'years prev' ? viewYear - 10 : viewYear + 10;\n this.viewDate = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n this.renderYears();\n break;\n }\n\n case 'year prev':\n case 'year next':\n viewYear = view === 'year prev' ? viewYear - 1 : viewYear + 1;\n this.viewDate = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n this.renderMonths();\n break;\n\n case 'year current':\n if (format.hasYear) {\n this.showView(VIEWS.YEARS);\n }\n\n break;\n\n case 'year picked':\n if (format.hasMonth) {\n this.showView(VIEWS.MONTHS);\n } else {\n $target.addClass(options.pickedClass).siblings().removeClass(options.pickedClass);\n this.hideView();\n }\n\n this.pick('year');\n break;\n\n case 'year':\n viewYear = parseInt($target.text(), 10);\n this.date = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n\n if (format.hasMonth) {\n this.viewDate = new Date(this.date);\n this.showView(VIEWS.MONTHS);\n } else {\n $target.addClass(options.pickedClass).siblings().removeClass(options.pickedClass);\n this.hideView();\n }\n\n this.pick('year');\n break;\n\n case 'month prev':\n case 'month next':\n viewMonth = view === 'month prev' ? viewMonth - 1 : viewMonth + 1;\n\n if (viewMonth < 0) {\n viewYear -= 1;\n viewMonth += 12;\n } else if (viewMonth > 11) {\n viewYear += 1;\n viewMonth -= 12;\n }\n\n this.viewDate = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n this.renderDays();\n break;\n\n case 'month current':\n if (format.hasMonth) {\n this.showView(VIEWS.MONTHS);\n }\n\n break;\n\n case 'month picked':\n if (format.hasDay) {\n this.showView(VIEWS.DAYS);\n } else {\n $target.addClass(options.pickedClass).siblings().removeClass(options.pickedClass);\n this.hideView();\n }\n\n this.pick('month');\n break;\n\n case 'month':\n viewMonth = $.inArray($target.text(), options.monthsShort);\n this.date = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n\n if (format.hasDay) {\n this.viewDate = new Date(viewYear, viewMonth, getMinDay(viewYear, viewMonth, viewDay));\n this.showView(VIEWS.DAYS);\n } else {\n $target.addClass(options.pickedClass).siblings().removeClass(options.pickedClass);\n this.hideView();\n }\n\n this.pick('month');\n break;\n\n case 'day prev':\n case 'day next':\n case 'day':\n if (view === 'day prev') {\n viewMonth -= 1;\n } else if (view === 'day next') {\n viewMonth += 1;\n }\n\n viewDay = parseInt($target.text(), 10);\n this.date = new Date(viewYear, viewMonth, viewDay);\n this.viewDate = new Date(viewYear, viewMonth, viewDay);\n this.renderDays();\n\n if (view === 'day') {\n this.hideView();\n }\n\n this.pick('day');\n break;\n\n case 'day picked':\n this.hideView();\n this.pick('day');\n break;\n\n default:\n }\n },\n globalClick: function globalClick(_ref) {\n var target = _ref.target;\n var element = this.element,\n $trigger = this.$trigger;\n\n var trigger = $trigger[0];\n var hidden = true;\n\n while (target !== document) {\n if (target === trigger || target === element) {\n hidden = false;\n break;\n }\n\n target = target.parentNode;\n }\n\n if (hidden) {\n this.hide();\n }\n },\n keyup: function keyup() {\n this.update();\n },\n globalKeyup: function globalKeyup(_ref2) {\n var target = _ref2.target,\n key = _ref2.key,\n keyCode = _ref2.keyCode;\n\n if (this.isInput && target !== this.element && this.shown && (key === 'Tab' || keyCode === 9)) {\n this.hide();\n }\n }\n};\n\nvar render = {\n render: function render() {\n this.renderYears();\n this.renderMonths();\n this.renderDays();\n },\n renderWeek: function renderWeek() {\n var _this = this;\n\n var items = [];\n var _options = this.options,\n weekStart = _options.weekStart,\n daysMin = _options.daysMin;\n\n\n weekStart = parseInt(weekStart, 10) % 7;\n daysMin = daysMin.slice(weekStart).concat(daysMin.slice(0, weekStart));\n $.each(daysMin, function (i, day) {\n items.push(_this.createItem({\n text: day\n }));\n });\n\n this.$week.html(items.join(''));\n },\n renderYears: function renderYears() {\n var options = this.options,\n startDate = this.startDate,\n endDate = this.endDate;\n var disabledClass = options.disabledClass,\n filter = options.filter,\n yearSuffix = options.yearSuffix;\n\n var viewYear = this.viewDate.getFullYear();\n var now = new Date();\n var thisYear = now.getFullYear();\n var year = this.date.getFullYear();\n var start = -5;\n var end = 6;\n var items = [];\n var prevDisabled = false;\n var nextDisabled = false;\n var i = void 0;\n\n for (i = start; i <= end; i += 1) {\n var date = new Date(viewYear + i, 1, 1);\n var disabled = false;\n\n if (startDate) {\n disabled = date.getFullYear() < startDate.getFullYear();\n\n if (i === start) {\n prevDisabled = disabled;\n }\n }\n\n if (!disabled && endDate) {\n disabled = date.getFullYear() > endDate.getFullYear();\n\n if (i === end) {\n nextDisabled = disabled;\n }\n }\n\n if (!disabled && filter) {\n disabled = filter.call(this.$element, date) === false;\n }\n\n var picked = viewYear + i === year;\n var view = picked ? 'year picked' : 'year';\n\n items.push(this.createItem({\n picked: picked,\n disabled: disabled,\n muted: i === start || i === end,\n text: viewYear + i,\n view: disabled ? 'year disabled' : view,\n highlighted: date.getFullYear() === thisYear\n }));\n }\n\n this.$yearsPrev.toggleClass(disabledClass, prevDisabled);\n this.$yearsNext.toggleClass(disabledClass, nextDisabled);\n this.$yearsCurrent.toggleClass(disabledClass, true).html(viewYear + start + yearSuffix + ' - ' + (viewYear + end) + yearSuffix);\n this.$years.html(items.join(''));\n },\n renderMonths: function renderMonths() {\n var options = this.options,\n startDate = this.startDate,\n endDate = this.endDate,\n viewDate = this.viewDate;\n\n var disabledClass = options.disabledClass || '';\n var months = options.monthsShort;\n var filter = $.isFunction(options.filter) && options.filter;\n var viewYear = viewDate.getFullYear();\n var now = new Date();\n var thisYear = now.getFullYear();\n var thisMonth = now.getMonth();\n var year = this.date.getFullYear();\n var month = this.date.getMonth();\n var items = [];\n var prevDisabled = false;\n var nextDisabled = false;\n var i = void 0;\n\n for (i = 0; i <= 11; i += 1) {\n var date = new Date(viewYear, i, 1);\n var disabled = false;\n\n if (startDate) {\n prevDisabled = date.getFullYear() === startDate.getFullYear();\n disabled = prevDisabled && date.getMonth() < startDate.getMonth();\n }\n\n if (!disabled && endDate) {\n nextDisabled = date.getFullYear() === endDate.getFullYear();\n disabled = nextDisabled && date.getMonth() > endDate.getMonth();\n }\n\n if (!disabled && filter) {\n disabled = filter.call(this.$element, date) === false;\n }\n\n var picked = viewYear === year && i === month;\n var view = picked ? 'month picked' : 'month';\n\n items.push(this.createItem({\n disabled: disabled,\n picked: picked,\n highlighted: viewYear === thisYear && date.getMonth() === thisMonth,\n index: i,\n text: months[i],\n view: disabled ? 'month disabled' : view\n }));\n }\n\n this.$yearPrev.toggleClass(disabledClass, prevDisabled);\n this.$yearNext.toggleClass(disabledClass, nextDisabled);\n this.$yearCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(viewYear + options.yearSuffix || '');\n this.$months.html(items.join(''));\n },\n renderDays: function renderDays() {\n var $element = this.$element,\n options = this.options,\n startDate = this.startDate,\n endDate = this.endDate,\n viewDate = this.viewDate,\n currentDate = this.date;\n var disabledClass = options.disabledClass,\n filter = options.filter,\n monthsShort = options.monthsShort,\n weekStart = options.weekStart,\n yearSuffix = options.yearSuffix;\n\n var viewYear = viewDate.getFullYear();\n var viewMonth = viewDate.getMonth();\n var now = new Date();\n var thisYear = now.getFullYear();\n var thisMonth = now.getMonth();\n var thisDay = now.getDate();\n var year = currentDate.getFullYear();\n var month = currentDate.getMonth();\n var day = currentDate.getDate();\n var length = void 0;\n var i = void 0;\n var n = void 0;\n\n // Days of prev month\n // -----------------------------------------------------------------------\n\n var prevItems = [];\n var prevViewYear = viewYear;\n var prevViewMonth = viewMonth;\n var prevDisabled = false;\n\n if (viewMonth === 0) {\n prevViewYear -= 1;\n prevViewMonth = 11;\n } else {\n prevViewMonth -= 1;\n }\n\n // The length of the days of prev month\n length = getDaysInMonth(prevViewYear, prevViewMonth);\n\n // The first day of current month\n var firstDay = new Date(viewYear, viewMonth, 1);\n\n // The visible length of the days of prev month\n // [0,1,2,3,4,5,6] - [0,1,2,3,4,5,6] => [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]\n n = firstDay.getDay() - parseInt(weekStart, 10) % 7;\n\n // [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6] => [1,2,3,4,5,6,7]\n if (n <= 0) {\n n += 7;\n }\n\n if (startDate) {\n prevDisabled = firstDay.getTime() <= startDate.getTime();\n }\n\n for (i = length - (n - 1); i <= length; i += 1) {\n var prevViewDate = new Date(prevViewYear, prevViewMonth, i);\n var disabled = false;\n\n if (startDate) {\n disabled = prevViewDate.getTime() < startDate.getTime();\n }\n\n if (!disabled && filter) {\n disabled = filter.call($element, prevViewDate) === false;\n }\n\n prevItems.push(this.createItem({\n disabled: disabled,\n highlighted: prevViewYear === thisYear && prevViewMonth === thisMonth && prevViewDate.getDate() === thisDay,\n muted: true,\n picked: prevViewYear === year && prevViewMonth === month && i === day,\n text: i,\n view: 'day prev'\n }));\n }\n\n // Days of next month\n // -----------------------------------------------------------------------\n\n var nextItems = [];\n var nextViewYear = viewYear;\n var nextViewMonth = viewMonth;\n var nextDisabled = false;\n\n if (viewMonth === 11) {\n nextViewYear += 1;\n nextViewMonth = 0;\n } else {\n nextViewMonth += 1;\n }\n\n // The length of the days of current month\n length = getDaysInMonth(viewYear, viewMonth);\n\n // The visible length of next month (42 means 6 rows and 7 columns)\n n = 42 - (prevItems.length + length);\n\n // The last day of current month\n var lastDate = new Date(viewYear, viewMonth, length);\n\n if (endDate) {\n nextDisabled = lastDate.getTime() >= endDate.getTime();\n }\n\n for (i = 1; i <= n; i += 1) {\n var date = new Date(nextViewYear, nextViewMonth, i);\n var picked = nextViewYear === year && nextViewMonth === month && i === day;\n var _disabled = false;\n\n if (endDate) {\n _disabled = date.getTime() > endDate.getTime();\n }\n\n if (!_disabled && filter) {\n _disabled = filter.call($element, date) === false;\n }\n\n nextItems.push(this.createItem({\n disabled: _disabled,\n picked: picked,\n highlighted: nextViewYear === thisYear && nextViewMonth === thisMonth && date.getDate() === thisDay,\n muted: true,\n text: i,\n view: 'day next'\n }));\n }\n\n // Days of current month\n // -----------------------------------------------------------------------\n\n var items = [];\n\n for (i = 1; i <= length; i += 1) {\n var _date = new Date(viewYear, viewMonth, i);\n var _disabled2 = false;\n\n if (startDate) {\n _disabled2 = _date.getTime() < startDate.getTime();\n }\n\n if (!_disabled2 && endDate) {\n _disabled2 = _date.getTime() > endDate.getTime();\n }\n\n if (!_disabled2 && filter) {\n _disabled2 = filter.call($element, _date) === false;\n }\n\n var _picked = viewYear === year && viewMonth === month && i === day;\n var view = _picked ? 'day picked' : 'day';\n\n items.push(this.createItem({\n disabled: _disabled2,\n picked: _picked,\n highlighted: viewYear === thisYear && viewMonth === thisMonth && _date.getDate() === thisDay,\n text: i,\n view: _disabled2 ? 'day disabled' : view\n }));\n }\n\n // Render days picker\n // -----------------------------------------------------------------------\n\n this.$monthPrev.toggleClass(disabledClass, prevDisabled);\n this.$monthNext.toggleClass(disabledClass, nextDisabled);\n this.$monthCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(options.yearFirst ? viewYear + yearSuffix + ' ' + monthsShort[viewMonth] : monthsShort[viewMonth] + ' ' + viewYear + yearSuffix);\n this.$days.html(prevItems.join('') + items.join('') + nextItems.join(''));\n }\n};\n\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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Classes\nvar CLASS_TOP_LEFT = NAMESPACE + '-top-left';\nvar CLASS_TOP_RIGHT = NAMESPACE + '-top-right';\nvar CLASS_BOTTOM_LEFT = NAMESPACE + '-bottom-left';\nvar CLASS_BOTTOM_RIGHT = NAMESPACE + '-bottom-right';\nvar CLASS_PLACEMENTS = [CLASS_TOP_LEFT, CLASS_TOP_RIGHT, CLASS_BOTTOM_LEFT, CLASS_BOTTOM_RIGHT].join(' ');\n\nvar Datepicker = function () {\n function Datepicker(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Datepicker);\n\n this.$element = $(element);\n this.element = element;\n this.options = $.extend({}, DEFAULTS, LANGUAGES[options.language], options);\n this.built = false;\n this.shown = false;\n this.isInput = false;\n this.inline = false;\n this.initialValue = '';\n this.initialDate = null;\n this.startDate = null;\n this.endDate = null;\n this.init();\n }\n\n _createClass(Datepicker, [{\n key: 'init',\n value: function init() {\n var $this = this.$element,\n options = this.options;\n var startDate = options.startDate,\n endDate = options.endDate,\n date = options.date;\n\n\n this.$trigger = $(options.trigger);\n this.isInput = $this.is('input') || $this.is('textarea');\n this.inline = options.inline && (options.container || !this.isInput);\n this.format = parseFormat(options.format);\n\n var initialValue = this.getValue();\n\n this.initialValue = initialValue;\n this.oldValue = initialValue;\n date = this.parseDate(date || initialValue);\n\n if (startDate) {\n startDate = this.parseDate(startDate);\n\n if (date.getTime() < startDate.getTime()) {\n date = new Date(startDate);\n }\n\n this.startDate = startDate;\n }\n\n if (endDate) {\n endDate = this.parseDate(endDate);\n\n if (startDate && endDate.getTime() < startDate.getTime()) {\n endDate = new Date(startDate);\n }\n\n if (date.getTime() > endDate.getTime()) {\n date = new Date(endDate);\n }\n\n this.endDate = endDate;\n }\n\n this.date = date;\n this.viewDate = new Date(date);\n this.initialDate = new Date(this.date);\n this.bind();\n\n if (options.autoShow || this.inline) {\n this.show();\n }\n\n if (options.autoPick) {\n this.pick();\n }\n }\n }, {\n key: 'build',\n value: function build() {\n if (this.built) {\n return;\n }\n\n this.built = true;\n\n var $this = this.$element,\n options = this.options;\n\n var $picker = $(options.template);\n\n this.$picker = $picker;\n this.$week = $picker.find(selectorOf('week'));\n\n // Years view\n this.$yearsPicker = $picker.find(selectorOf('years picker'));\n this.$yearsPrev = $picker.find(selectorOf('years prev'));\n this.$yearsNext = $picker.find(selectorOf('years next'));\n this.$yearsCurrent = $picker.find(selectorOf('years current'));\n this.$years = $picker.find(selectorOf('years'));\n\n // Months view\n this.$monthsPicker = $picker.find(selectorOf('months picker'));\n this.$yearPrev = $picker.find(selectorOf('year prev'));\n this.$yearNext = $picker.find(selectorOf('year next'));\n this.$yearCurrent = $picker.find(selectorOf('year current'));\n this.$months = $picker.find(selectorOf('months'));\n\n // Days view\n this.$daysPicker = $picker.find(selectorOf('days picker'));\n this.$monthPrev = $picker.find(selectorOf('month prev'));\n this.$monthNext = $picker.find(selectorOf('month next'));\n this.$monthCurrent = $picker.find(selectorOf('month current'));\n this.$days = $picker.find(selectorOf('days'));\n\n if (this.inline) {\n $(options.container || $this).append($picker.addClass(NAMESPACE + '-inline'));\n } else {\n $(document.body).append($picker.addClass(NAMESPACE + '-dropdown'));\n $picker.addClass(CLASS_HIDE);\n }\n\n this.renderWeek();\n }\n }, {\n key: 'unbuild',\n value: function unbuild() {\n if (!this.built) {\n return;\n }\n\n this.built = false;\n this.$picker.remove();\n }\n }, {\n key: 'bind',\n value: function bind() {\n var options = this.options,\n $this = this.$element;\n\n\n if ($.isFunction(options.show)) {\n $this.on(EVENT_SHOW, options.show);\n }\n\n if ($.isFunction(options.hide)) {\n $this.on(EVENT_HIDE, options.hide);\n }\n\n if ($.isFunction(options.pick)) {\n $this.on(EVENT_PICK, options.pick);\n }\n\n if (this.isInput) {\n $this.on(EVENT_KEYUP, $.proxy(this.keyup, this));\n }\n\n if (!this.inline) {\n if (options.trigger) {\n this.$trigger.on(EVENT_CLICK, $.proxy(this.toggle, this));\n } else if (this.isInput) {\n $this.on(EVENT_FOCUS, $.proxy(this.show, this));\n } else {\n $this.on(EVENT_CLICK, $.proxy(this.show, this));\n }\n }\n }\n }, {\n key: 'unbind',\n value: function unbind() {\n var $this = this.$element,\n options = this.options;\n\n\n if ($.isFunction(options.show)) {\n $this.off(EVENT_SHOW, options.show);\n }\n\n if ($.isFunction(options.hide)) {\n $this.off(EVENT_HIDE, options.hide);\n }\n\n if ($.isFunction(options.pick)) {\n $this.off(EVENT_PICK, options.pick);\n }\n\n if (this.isInput) {\n $this.off(EVENT_KEYUP, this.keyup);\n }\n\n if (!this.inline) {\n if (options.trigger) {\n this.$trigger.off(EVENT_CLICK, this.toggle);\n } else if (this.isInput) {\n $this.off(EVENT_FOCUS, this.show);\n } else {\n $this.off(EVENT_CLICK, this.show);\n }\n }\n }\n }, {\n key: 'showView',\n value: function showView(view) {\n var $yearsPicker = this.$yearsPicker,\n $monthsPicker = this.$monthsPicker,\n $daysPicker = this.$daysPicker,\n format = this.format;\n\n\n if (format.hasYear || format.hasMonth || format.hasDay) {\n switch (Number(view)) {\n case VIEWS.YEARS:\n $monthsPicker.addClass(CLASS_HIDE);\n $daysPicker.addClass(CLASS_HIDE);\n\n if (format.hasYear) {\n this.renderYears();\n $yearsPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.DAYS);\n }\n\n break;\n\n case VIEWS.MONTHS:\n $yearsPicker.addClass(CLASS_HIDE);\n $daysPicker.addClass(CLASS_HIDE);\n\n if (format.hasMonth) {\n this.renderMonths();\n $monthsPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.YEARS);\n }\n\n break;\n\n // case VIEWS.DAYS:\n default:\n $yearsPicker.addClass(CLASS_HIDE);\n $monthsPicker.addClass(CLASS_HIDE);\n\n if (format.hasDay) {\n this.renderDays();\n $daysPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.MONTHS);\n }\n }\n }\n }\n }, {\n key: 'hideView',\n value: function hideView() {\n if (!this.inline && this.options.autoHide) {\n this.hide();\n }\n }\n }, {\n key: 'place',\n value: function place() {\n if (this.inline) {\n return;\n }\n\n var $this = this.$element,\n options = this.options,\n $picker = this.$picker;\n\n var containerWidth = $(document).outerWidth();\n var containerHeight = $(document).outerHeight();\n var elementWidth = $this.outerWidth();\n var elementHeight = $this.outerHeight();\n var width = $picker.width();\n var height = $picker.height();\n\n var _$this$offset = $this.offset(),\n left = _$this$offset.left,\n top = _$this$offset.top;\n\n var offset = parseFloat(options.offset);\n var placement = CLASS_TOP_LEFT;\n\n if (isNaN(offset)) {\n offset = 10;\n }\n\n if (top > height && top + elementHeight + height > containerHeight) {\n top -= height + offset;\n placement = CLASS_BOTTOM_LEFT;\n } else {\n top += elementHeight + offset;\n }\n\n if (left + width > containerWidth) {\n left += elementWidth - width;\n placement = placement.replace('left', 'right');\n }\n\n $picker.removeClass(CLASS_PLACEMENTS).addClass(placement).css({\n top: top,\n left: left,\n zIndex: parseInt(options.zIndex, 10)\n });\n }\n\n // A shortcut for triggering custom events\n\n }, {\n key: 'trigger',\n value: function trigger(type, data) {\n var e = $.Event(type, data);\n\n this.$element.trigger(e);\n\n return e;\n }\n }, {\n key: 'createItem',\n value: function createItem(data) {\n var options = this.options;\n var itemTag = options.itemTag;\n\n var item = {\n text: '',\n view: '',\n muted: false,\n picked: false,\n disabled: false,\n highlighted: false\n };\n var classes = [];\n\n $.extend(item, data);\n\n if (item.muted) {\n classes.push(options.mutedClass);\n }\n\n if (item.highlighted) {\n classes.push(options.highlightedClass);\n }\n\n if (item.picked) {\n classes.push(options.pickedClass);\n }\n\n if (item.disabled) {\n classes.push(options.disabledClass);\n }\n\n return '<' + itemTag + ' class=\"' + classes.join(' ') + '\" data-view=\"' + item.view + '\">' + item.text + '';\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n var $this = this.$element;\n\n return this.isInput ? $this.val() : $this.text();\n }\n }, {\n key: 'setValue',\n value: function setValue() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var $this = this.$element;\n\n if (this.isInput) {\n $this.val(value);\n } else {\n $this.text(value);\n }\n }\n }], [{\n key: 'setDefaults',\n value: function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n $.extend(DEFAULTS, LANGUAGES[options.language], options);\n }\n }]);\n\n return Datepicker;\n}();\n\nif ($.extend) {\n $.extend(Datepicker.prototype, render, handlers, methods);\n}\n\nif ($.fn) {\n var AnotherDatepicker = $.fn.datepicker;\n\n $.fn.datepicker = function jQueryDatepicker(option) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var result = void 0;\n\n this.each(function (i, element) {\n var $element = $(element);\n var data = $element.data(NAMESPACE);\n\n if (!data) {\n if (/destroy/.test(option)) {\n return;\n }\n\n var options = $.extend({}, $element.data(), $.isPlainObject(option) && option);\n\n data = new Datepicker(element, options);\n $element.data(NAMESPACE, data);\n }\n\n if (isString(option)) {\n var fn = data[option];\n\n if ($.isFunction(fn)) {\n result = fn.apply(data, args);\n }\n }\n });\n\n return isUndefined(result) ? this : result;\n };\n\n $.fn.datepicker.Constructor = Datepicker;\n $.fn.datepicker.languages = LANGUAGES;\n $.fn.datepicker.setDefaults = Datepicker.setDefaults;\n $.fn.datepicker.noConflict = function noConflict() {\n $.fn.datepicker = AnotherDatepicker;\n return this;\n };\n}\n\n})));\n","/*************************\r\n * Croppie\r\n * Copyright 2017\r\n * Foliotek\r\n * Version: 2.5.1\r\n *************************/\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['exports'], factory);\r\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\r\n // CommonJS\r\n factory(exports);\r\n } else {\r\n // Browser globals\r\n factory((root.commonJsStrict = {}));\r\n }\r\n}(this, function (exports) {\r\n\r\n /* Polyfills */\r\n if (typeof Promise !== 'function') {\r\n /*! promise-polyfill 3.1.0 */\r\n !function(a){function b(a,b){return function(){a.apply(b,arguments)}}function c(a){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof a)throw new TypeError(\"not a function\");this._state=null,this._value=null,this._deferreds=[],i(a,b(e,this),b(f,this))}function d(a){var b=this;return null===this._state?void this._deferreds.push(a):void k(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function e(a){try{if(a===this)throw new TypeError(\"A promise cannot be resolved with itself.\");if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var c=a.then;if(\"function\"==typeof c)return void i(b(c,a),b(e,this),b(f,this))}this._state=!0,this._value=a,g.call(this)}catch(d){f.call(this,d)}}function f(a){this._state=!1,this._value=a,g.call(this)}function g(){for(var a=0,b=this._deferreds.length;b>a;a++)d.call(this,this._deferreds[a]);this._deferreds=null}function h(a,b,c,d){this.onFulfilled=\"function\"==typeof a?a:null,this.onRejected=\"function\"==typeof b?b:null,this.resolve=c,this.reject=d}function i(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var j=setTimeout,k=\"function\"==typeof setImmediate&&setImmediate||function(a){j(a,1)},l=Array.isArray||function(a){return\"[object Array]\"===Object.prototype.toString.call(a)};c.prototype[\"catch\"]=function(a){return this.then(null,a)},c.prototype.then=function(a,b){var e=this;return new c(function(c,f){d.call(e,new h(a,b,c,f))})},c.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&l(arguments[0])?arguments[0]:arguments);return new c(function(b,c){function d(f,g){try{if(g&&(\"object\"==typeof g||\"function\"==typeof g)){var h=g.then;if(\"function\"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;fd;d++)a[d].then(b,c)})},c._setImmediateFn=function(a){k=a},\"undefined\"!=typeof module&&module.exports?module.exports=c:a.Promise||(a.Promise=c)}(this);\r\n }\r\n\r\n if ( typeof window.CustomEvent !== \"function\" ) {\r\n (function(){\r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent( 'CustomEvent' );\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n return evt;\r\n }\r\n CustomEvent.prototype = window.Event.prototype;\r\n window.CustomEvent = CustomEvent;\r\n }());\r\n }\r\n\r\n if (!HTMLCanvasElement.prototype.toBlob) {\r\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\r\n value: function (callback, type, quality) {\r\n var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),\r\n len = binStr.length,\r\n arr = new Uint8Array(len);\r\n\r\n for (var i=0; i= 5) {\r\n var x= w;\r\n w = h;\r\n h = x;\r\n }\r\n return { width: w, height: h };\r\n }\r\n\r\n /* CSS Transform Prototype */\r\n var TRANSLATE_OPTS = {\r\n 'translate3d': {\r\n suffix: ', 0px'\r\n },\r\n 'translate': {\r\n suffix: ''\r\n }\r\n };\r\n var Transform = function (x, y, scale) {\r\n this.x = parseFloat(x);\r\n this.y = parseFloat(y);\r\n this.scale = parseFloat(scale);\r\n };\r\n\r\n Transform.parse = function (v) {\r\n if (v.style) {\r\n return Transform.parse(v.style[CSS_TRANSFORM]);\r\n }\r\n else if (v.indexOf('matrix') > -1 || v.indexOf('none') > -1) {\r\n return Transform.fromMatrix(v);\r\n }\r\n else {\r\n return Transform.fromString(v);\r\n }\r\n };\r\n\r\n Transform.fromMatrix = function (v) {\r\n var vals = v.substring(7).split(',');\r\n if (!vals.length || v === 'none') {\r\n vals = [1, 0, 0, 1, 0, 0];\r\n }\r\n\r\n return new Transform(num(vals[4]), num(vals[5]), parseFloat(vals[0]));\r\n };\r\n\r\n Transform.fromString = function (v) {\r\n var values = v.split(') '),\r\n translate = values[0].substring(Croppie.globals.translate.length + 1).split(','),\r\n scale = values.length > 1 ? values[1].substring(6) : 1,\r\n x = translate.length > 1 ? translate[0] : 0,\r\n y = translate.length > 1 ? translate[1] : 0;\r\n\r\n return new Transform(x, y, scale);\r\n };\r\n\r\n Transform.prototype.toString = function () {\r\n var suffix = TRANSLATE_OPTS[Croppie.globals.translate].suffix || '';\r\n return Croppie.globals.translate + '(' + this.x + 'px, ' + this.y + 'px' + suffix + ') scale(' + this.scale + ')';\r\n };\r\n\r\n var TransformOrigin = function (el) {\r\n if (!el || !el.style[CSS_TRANS_ORG]) {\r\n this.x = 0;\r\n this.y = 0;\r\n return;\r\n }\r\n var css = el.style[CSS_TRANS_ORG].split(' ');\r\n this.x = parseFloat(css[0]);\r\n this.y = parseFloat(css[1]);\r\n };\r\n\r\n TransformOrigin.prototype.toString = function () {\r\n return this.x + 'px ' + this.y + 'px';\r\n };\r\n\r\n function getExifOrientation (img) {\r\n return img.exifdata.Orientation;\r\n }\r\n\r\n function drawCanvas(canvas, img, orientation) {\r\n var width = img.width,\r\n height = img.height,\r\n ctx = canvas.getContext('2d');\r\n\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n ctx.save();\r\n switch (orientation) {\r\n case 2:\r\n ctx.translate(width, 0);\r\n ctx.scale(-1, 1);\r\n break;\r\n\r\n case 3:\r\n ctx.translate(width, height);\r\n ctx.rotate(180*Math.PI/180);\r\n break;\r\n\r\n case 4:\r\n ctx.translate(0, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 5:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90*Math.PI/180);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 6:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90*Math.PI/180);\r\n ctx.translate(0, -height);\r\n break;\r\n\r\n case 7:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(-90*Math.PI/180);\r\n ctx.translate(-width, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 8:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.translate(0, width);\r\n ctx.rotate(-90*Math.PI/180);\r\n break;\r\n }\r\n ctx.drawImage(img, 0,0, width, height);\r\n ctx.restore();\r\n }\r\n\r\n /* Private Methods */\r\n function _create() {\r\n var self = this,\r\n contClass = 'croppie-container',\r\n customViewportClass = self.options.viewport.type ? 'cr-vp-' + self.options.viewport.type : null,\r\n boundary, img, viewport, overlay, bw, bh;\r\n\r\n self.options.useCanvas = self.options.enableOrientation || _hasExif.call(self);\r\n // Properties on class\r\n self.data = {};\r\n self.elements = {};\r\n\r\n boundary = self.elements.boundary = document.createElement('div');\r\n viewport = self.elements.viewport = document.createElement('div');\r\n img = self.elements.img = document.createElement('img');\r\n overlay = self.elements.overlay = document.createElement('div');\r\n\r\n if (self.options.useCanvas) {\r\n self.elements.canvas = document.createElement('canvas');\r\n self.elements.preview = self.elements.canvas;\r\n }\r\n else {\r\n self.elements.preview = self.elements.img;\r\n }\r\n\r\n addClass(boundary, 'cr-boundary');\r\n boundary.setAttribute('aria-dropeffect', 'none');\r\n bw = self.options.boundary.width;\r\n bh = self.options.boundary.height;\r\n css(boundary, {\r\n width: (bw + (isNaN(bw) ? '' : 'px')),\r\n height: (bh + (isNaN(bh) ? '' : 'px'))\r\n });\r\n\r\n addClass(viewport, 'cr-viewport');\r\n if (customViewportClass) {\r\n addClass(viewport, customViewportClass);\r\n }\r\n css(viewport, {\r\n width: self.options.viewport.width + 'px',\r\n height: self.options.viewport.height + 'px'\r\n });\r\n viewport.setAttribute('tabindex', 0);\r\n\r\n addClass(self.elements.preview, 'cr-image');\r\n setAttributes(self.elements.preview, { 'alt': 'preview', 'aria-grabbed': 'false' });\r\n addClass(overlay, 'cr-overlay');\r\n\r\n self.element.appendChild(boundary);\r\n boundary.appendChild(self.elements.preview);\r\n boundary.appendChild(viewport);\r\n boundary.appendChild(overlay);\r\n\r\n addClass(self.element, contClass);\r\n if (self.options.customClass) {\r\n addClass(self.element, self.options.customClass);\r\n }\r\n\r\n _initDraggable.call(this);\r\n\r\n if (self.options.enableZoom) {\r\n _initializeZoom.call(self);\r\n }\r\n\r\n // if (self.options.enableOrientation) {\r\n // _initRotationControls.call(self);\r\n // }\r\n\r\n if (self.options.enableResize) {\r\n _initializeResize.call(self);\r\n }\r\n }\r\n\r\n // function _initRotationControls () {\r\n // var self = this,\r\n // wrap, btnLeft, btnRight, iLeft, iRight;\r\n\r\n // wrap = document.createElement('div');\r\n // self.elements.orientationBtnLeft = btnLeft = document.createElement('button');\r\n // self.elements.orientationBtnRight = btnRight = document.createElement('button');\r\n\r\n // wrap.appendChild(btnLeft);\r\n // wrap.appendChild(btnRight);\r\n\r\n // iLeft = document.createElement('i');\r\n // iRight = document.createElement('i');\r\n // btnLeft.appendChild(iLeft);\r\n // btnRight.appendChild(iRight);\r\n\r\n // addClass(wrap, 'cr-rotate-controls');\r\n // addClass(btnLeft, 'cr-rotate-l');\r\n // addClass(btnRight, 'cr-rotate-r');\r\n\r\n // self.elements.boundary.appendChild(wrap);\r\n\r\n // btnLeft.addEventListener('click', function () {\r\n // self.rotate(-90);\r\n // });\r\n // btnRight.addEventListener('click', function () {\r\n // self.rotate(90);\r\n // });\r\n // }\r\n\r\n function _hasExif() {\r\n return this.options.enableExif && window.EXIF;\r\n }\r\n\r\n function _initializeResize () {\r\n var self = this;\r\n var wrap = document.createElement('div');\r\n var isDragging = false;\r\n var direction;\r\n var originalX;\r\n var originalY;\r\n var minSize = 50;\r\n var maxWidth;\r\n var maxHeight;\r\n var vr;\r\n var hr;\r\n\r\n addClass(wrap, 'cr-resizer');\r\n css(wrap, {\r\n width: this.options.viewport.width + 'px',\r\n height: this.options.viewport.height + 'px'\r\n });\r\n\r\n if (this.options.resizeControls.height) {\r\n vr = document.createElement('div');\r\n addClass(vr, 'cr-resizer-vertical');\r\n wrap.appendChild(vr);\r\n }\r\n\r\n if (this.options.resizeControls.width) {\r\n hr = document.createElement('div');\r\n addClass(hr, 'cr-resizer-horisontal');\r\n wrap.appendChild(hr);\r\n }\r\n\r\n function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\r\n ev.preventDefault();\r\n if (isDragging) {\r\n return;\r\n }\r\n\r\n var overlayRect = self.elements.overlay.getBoundingClientRect();\r\n\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n direction = ev.currentTarget.className.indexOf('vertical') !== -1 ? 'v' : 'h';\r\n maxWidth = overlayRect.width;\r\n maxHeight = overlayRect.height;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n originalX = touches.pageX;\r\n originalY = touches.pageY;\r\n }\r\n\r\n window.addEventListener('mousemove', mouseMove);\r\n window.addEventListener('touchmove', mouseMove);\r\n window.addEventListener('mouseup', mouseUp);\r\n window.addEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n }\r\n\r\n function mouseMove(ev) {\r\n var pageX = ev.pageX;\r\n var pageY = ev.pageY;\r\n\r\n ev.preventDefault();\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n pageX = touches.pageX;\r\n pageY = touches.pageY;\r\n }\r\n\r\n var deltaX = pageX - originalX;\r\n var deltaY = pageY - originalY;\r\n var newHeight = self.options.viewport.height + deltaY;\r\n var newWidth = self.options.viewport.width + deltaX;\r\n\r\n if (direction === 'v' && newHeight >= minSize && newHeight <= maxHeight) {\r\n css(wrap, {\r\n height: newHeight + 'px'\r\n });\r\n\r\n self.options.boundary.height += deltaY;\r\n css(self.elements.boundary, {\r\n height: self.options.boundary.height + 'px'\r\n });\r\n\r\n self.options.viewport.height += deltaY;\r\n css(self.elements.viewport, {\r\n height: self.options.viewport.height + 'px'\r\n });\r\n }\r\n else if (direction === 'h' && newWidth >= minSize && newWidth <= maxWidth) {\r\n css(wrap, {\r\n width: newWidth + 'px'\r\n });\r\n\r\n self.options.boundary.width += deltaX;\r\n css(self.elements.boundary, {\r\n width: self.options.boundary.width + 'px'\r\n });\r\n\r\n self.options.viewport.width += deltaX;\r\n css(self.elements.viewport, {\r\n width: self.options.viewport.width + 'px'\r\n });\r\n }\r\n\r\n _updateOverlay.call(self);\r\n _updateZoomLimits.call(self);\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalY = pageY;\r\n originalX = pageX;\r\n }\r\n\r\n function mouseUp() {\r\n isDragging = false;\r\n window.removeEventListener('mousemove', mouseMove);\r\n window.removeEventListener('touchmove', mouseMove);\r\n window.removeEventListener('mouseup', mouseUp);\r\n window.removeEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = '';\r\n }\r\n\r\n if (vr) {\r\n vr.addEventListener('mousedown', mouseDown);\r\n }\r\n\r\n if (hr) {\r\n hr.addEventListener('mousedown', mouseDown);\r\n }\r\n\r\n this.elements.boundary.appendChild(wrap);\r\n }\r\n\r\n function _setZoomerVal(v) {\r\n if (this.options.enableZoom) {\r\n var z = this.elements.zoomer,\r\n val = fix(v, 4);\r\n\r\n z.value = Math.max(z.min, Math.min(z.max, val));\r\n }\r\n }\r\n\r\n function _initializeZoom() {\r\n var self = this,\r\n wrap = self.elements.zoomerWrap = document.createElement('div'),\r\n zoomer = self.elements.zoomer = document.createElement('input');\r\n\r\n addClass(wrap, 'cr-slider-wrap');\r\n addClass(zoomer, 'cr-slider');\r\n zoomer.type = 'range';\r\n zoomer.step = '0.0001';\r\n zoomer.value = 1;\r\n zoomer.style.display = self.options.showZoomer ? '' : 'none';\r\n zoomer.setAttribute('aria-label', 'zoom');\r\n\r\n self.element.appendChild(wrap);\r\n wrap.appendChild(zoomer);\r\n\r\n self._currentZoom = 1;\r\n\r\n function change() {\r\n _onZoom.call(self, {\r\n value: parseFloat(zoomer.value),\r\n origin: new TransformOrigin(self.elements.preview),\r\n viewportRect: self.elements.viewport.getBoundingClientRect(),\r\n transform: Transform.parse(self.elements.preview)\r\n });\r\n }\r\n\r\n function scroll(ev) {\r\n var delta, targetZoom;\r\n\r\n if (ev.wheelDelta) {\r\n delta = ev.wheelDelta / 1200; //wheelDelta min: -120 max: 120 // max x 10 x 2\r\n } else if (ev.deltaY) {\r\n delta = ev.deltaY / 1060; //deltaY min: -53 max: 53 // max x 10 x 2\r\n } else if (ev.detail) {\r\n delta = ev.detail / -60; //delta min: -3 max: 3 // max x 10 x 2\r\n } else {\r\n delta = 0;\r\n }\r\n\r\n targetZoom = self._currentZoom + (delta * self._currentZoom);\r\n\r\n ev.preventDefault();\r\n _setZoomerVal.call(self, targetZoom);\r\n change.call(self);\r\n }\r\n\r\n self.elements.zoomer.addEventListener('input', change);// this is being fired twice on keypress\r\n self.elements.zoomer.addEventListener('change', change);\r\n\r\n if (self.options.mouseWheelZoom) {\r\n self.elements.boundary.addEventListener('mousewheel', scroll);\r\n self.elements.boundary.addEventListener('DOMMouseScroll', scroll);\r\n }\r\n }\r\n\r\n function _onZoom(ui) {\r\n var self = this,\r\n transform = ui ? ui.transform : Transform.parse(self.elements.preview),\r\n vpRect = ui ? ui.viewportRect : self.elements.viewport.getBoundingClientRect(),\r\n origin = ui ? ui.origin : new TransformOrigin(self.elements.preview);\r\n\r\n function applyCss() {\r\n var transCss = {};\r\n transCss[CSS_TRANSFORM] = transform.toString();\r\n transCss[CSS_TRANS_ORG] = origin.toString();\r\n css(self.elements.preview, transCss);\r\n }\r\n\r\n self._currentZoom = ui ? ui.value : self._currentZoom;\r\n transform.scale = self._currentZoom;\r\n self.elements.zoomer.setAttribute('aria-valuenow', self._currentZoom);\r\n applyCss();\r\n\r\n if (self.options.enforceBoundary) {\r\n var boundaries = _getVirtualBoundaries.call(self, vpRect),\r\n transBoundaries = boundaries.translate,\r\n oBoundaries = boundaries.origin;\r\n\r\n if (transform.x >= transBoundaries.maxX) {\r\n origin.x = oBoundaries.minX;\r\n transform.x = transBoundaries.maxX;\r\n }\r\n\r\n if (transform.x <= transBoundaries.minX) {\r\n origin.x = oBoundaries.maxX;\r\n transform.x = transBoundaries.minX;\r\n }\r\n\r\n if (transform.y >= transBoundaries.maxY) {\r\n origin.y = oBoundaries.minY;\r\n transform.y = transBoundaries.maxY;\r\n }\r\n\r\n if (transform.y <= transBoundaries.minY) {\r\n origin.y = oBoundaries.maxY;\r\n transform.y = transBoundaries.minY;\r\n }\r\n }\r\n applyCss();\r\n _debouncedOverlay.call(self);\r\n _triggerUpdate.call(self);\r\n }\r\n\r\n function _getVirtualBoundaries(viewport) {\r\n var self = this,\r\n scale = self._currentZoom,\r\n vpWidth = viewport.width,\r\n vpHeight = viewport.height,\r\n centerFromBoundaryX = self.elements.boundary.clientWidth / 2,\r\n centerFromBoundaryY = self.elements.boundary.clientHeight / 2,\r\n imgRect = self.elements.preview.getBoundingClientRect(),\r\n curImgWidth = imgRect.width,\r\n curImgHeight = imgRect.height,\r\n halfWidth = vpWidth / 2,\r\n halfHeight = vpHeight / 2;\r\n\r\n var maxX = ((halfWidth / scale) - centerFromBoundaryX) * -1;\r\n var minX = maxX - ((curImgWidth * (1 / scale)) - (vpWidth * (1 / scale)));\r\n\r\n var maxY = ((halfHeight / scale) - centerFromBoundaryY) * -1;\r\n var minY = maxY - ((curImgHeight * (1 / scale)) - (vpHeight * (1 / scale)));\r\n\r\n var originMinX = (1 / scale) * halfWidth;\r\n var originMaxX = (curImgWidth * (1 / scale)) - originMinX;\r\n\r\n var originMinY = (1 / scale) * halfHeight;\r\n var originMaxY = (curImgHeight * (1 / scale)) - originMinY;\r\n\r\n return {\r\n translate: {\r\n maxX: maxX,\r\n minX: minX,\r\n maxY: maxY,\r\n minY: minY\r\n },\r\n origin: {\r\n maxX: originMaxX,\r\n minX: originMinX,\r\n maxY: originMaxY,\r\n minY: originMinY\r\n }\r\n };\r\n }\r\n\r\n function _updateCenterPoint() {\r\n var self = this,\r\n scale = self._currentZoom,\r\n data = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n transform = Transform.parse(self.elements.preview.style[CSS_TRANSFORM]),\r\n pc = new TransformOrigin(self.elements.preview),\r\n top = (vpData.top - data.top) + (vpData.height / 2),\r\n left = (vpData.left - data.left) + (vpData.width / 2),\r\n center = {},\r\n adj = {};\r\n\r\n center.y = top / scale;\r\n center.x = left / scale;\r\n\r\n adj.y = (center.y - pc.y) * (1 - scale);\r\n adj.x = (center.x - pc.x) * (1 - scale);\r\n\r\n transform.x -= adj.x;\r\n transform.y -= adj.y;\r\n\r\n var newCss = {};\r\n newCss[CSS_TRANS_ORG] = center.x + 'px ' + center.y + 'px';\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n }\r\n\r\n function _initDraggable() {\r\n var self = this,\r\n isDragging = false,\r\n originalX,\r\n originalY,\r\n originalDistance,\r\n vpRect,\r\n transform;\r\n\r\n function assignTransformCoordinates(deltaX, deltaY) {\r\n var imgRect = self.elements.preview.getBoundingClientRect(),\r\n top = transform.y + deltaY,\r\n left = transform.x + deltaX;\r\n\r\n if (self.options.enforceBoundary) {\r\n if (vpRect.top > imgRect.top + deltaY && vpRect.bottom < imgRect.bottom + deltaY) {\r\n transform.y = top;\r\n }\r\n\r\n if (vpRect.left > imgRect.left + deltaX && vpRect.right < imgRect.right + deltaX) {\r\n transform.x = left;\r\n }\r\n }\r\n else {\r\n transform.y = top;\r\n transform.x = left;\r\n }\r\n }\r\n\r\n function toggleGrabState(isDragging) {\r\n self.elements.preview.setAttribute('aria-grabbed', isDragging);\r\n self.elements.boundary.setAttribute('aria-dropeffect', isDragging? 'move': 'none');\r\n }\r\n\r\n function keyDown(ev) {\r\n var LEFT_ARROW = 37,\r\n UP_ARROW = 38,\r\n RIGHT_ARROW = 39,\r\n DOWN_ARROW = 40;\r\n\r\n if (ev.shiftKey && (ev.keyCode == UP_ARROW || ev.keyCode == DOWN_ARROW)) {\r\n var zoom = 0.0;\r\n if (ev.keyCode == UP_ARROW) {\r\n zoom = parseFloat(self.elements.zoomer.value, 10) + parseFloat(self.elements.zoomer.step, 10)\r\n }\r\n else {\r\n zoom = parseFloat(self.elements.zoomer.value, 10) - parseFloat(self.elements.zoomer.step, 10)\r\n }\r\n self.setZoom(zoom);\r\n }\r\n else if (self.options.enableKeyMovement && (ev.keyCode >= 37 && ev.keyCode <= 40)) {\r\n ev.preventDefault();\r\n var movement = parseKeyDown(ev.keyCode);\r\n\r\n transform = Transform.parse(self.elements.preview);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n keyMove(movement);\r\n };\r\n\r\n function parseKeyDown(key) {\r\n switch (key) {\r\n case LEFT_ARROW:\r\n return [1, 0];\r\n case UP_ARROW:\r\n return [0, 1];\r\n case RIGHT_ARROW:\r\n return [-1, 0];\r\n case DOWN_ARROW:\r\n return [0, -1];\r\n };\r\n };\r\n }\r\n\r\n function keyMove(movement) {\r\n var deltaX = movement[0],\r\n deltaY = movement[1],\r\n newCss = {};\r\n\r\n assignTransformCoordinates(deltaX, deltaY);\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\r\n document.body.style[CSS_USERSELECT] = '';\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalDistance = 0;\r\n }\r\n\r\n function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\r\n ev.preventDefault();\r\n if (isDragging) return;\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n originalX = touches.pageX;\r\n originalY = touches.pageY;\r\n }\r\n toggleGrabState(isDragging);\r\n transform = Transform.parse(self.elements.preview);\r\n window.addEventListener('mousemove', mouseMove);\r\n window.addEventListener('touchmove', mouseMove);\r\n window.addEventListener('mouseup', mouseUp);\r\n window.addEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n }\r\n\r\n function mouseMove(ev) {\r\n ev.preventDefault();\r\n var pageX = ev.pageX,\r\n pageY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n pageX = touches.pageX;\r\n pageY = touches.pageY;\r\n }\r\n\r\n var deltaX = pageX - originalX,\r\n deltaY = pageY - originalY,\r\n newCss = {};\r\n\r\n if (ev.type == 'touchmove') {\r\n if (ev.touches.length > 1) {\r\n var touch1 = ev.touches[0];\r\n var touch2 = ev.touches[1];\r\n var dist = Math.sqrt((touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY));\r\n\r\n if (!originalDistance) {\r\n originalDistance = dist / self._currentZoom;\r\n }\r\n\r\n var scale = dist / originalDistance;\r\n\r\n _setZoomerVal.call(self, scale);\r\n dispatchChange(self.elements.zoomer);\r\n return;\r\n }\r\n }\r\n\r\n assignTransformCoordinates(deltaX, deltaY);\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\r\n originalY = pageY;\r\n originalX = pageX;\r\n }\r\n\r\n function mouseUp() {\r\n isDragging = false;\r\n toggleGrabState(isDragging);\r\n window.removeEventListener('mousemove', mouseMove);\r\n window.removeEventListener('touchmove', mouseMove);\r\n window.removeEventListener('mouseup', mouseUp);\r\n window.removeEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = '';\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalDistance = 0;\r\n }\r\n\r\n self.elements.overlay.addEventListener('mousedown', mouseDown);\r\n self.elements.viewport.addEventListener('keydown', keyDown);\r\n self.elements.overlay.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n function _updateOverlay() {\r\n var self = this,\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n imgData = self.elements.preview.getBoundingClientRect();\r\n\r\n css(self.elements.overlay, {\r\n width: imgData.width + 'px',\r\n height: imgData.height + 'px',\r\n top: (imgData.top - boundRect.top) + 'px',\r\n left: (imgData.left - boundRect.left) + 'px'\r\n });\r\n }\r\n var _debouncedOverlay = debounce(_updateOverlay, 500);\r\n\r\n function _triggerUpdate() {\r\n var self = this,\r\n data = self.get(),\r\n ev;\r\n\r\n if (!_isVisible.call(self)) {\r\n return;\r\n }\r\n\r\n self.options.update.call(self, data);\r\n if (self.$ && typeof Prototype == 'undefined') {\r\n self.$(self.element).trigger('update', data);\r\n }\r\n else {\r\n var ev;\r\n if (window.CustomEvent) {\r\n ev = new CustomEvent('update', { detail: data });\r\n } else {\r\n ev = document.createEvent('CustomEvent');\r\n ev.initCustomEvent('update', true, true, data);\r\n }\r\n\r\n self.element.dispatchEvent(ev);\r\n }\r\n }\r\n\r\n function _isVisible() {\r\n return this.elements.preview.offsetHeight > 0 && this.elements.preview.offsetWidth > 0;\r\n }\r\n\r\n function _updatePropertiesFromImage() {\r\n var self = this,\r\n initialZoom = 1,\r\n cssReset = {},\r\n img = self.elements.preview,\r\n imgData = self.elements.preview.getBoundingClientRect(),\r\n transformReset = new Transform(0, 0, initialZoom),\r\n originReset = new TransformOrigin(),\r\n isVisible = _isVisible.call(self);\r\n\r\n if (!isVisible || self.data.bound) {\r\n // if the croppie isn't visible or it doesn't need binding\r\n return;\r\n }\r\n\r\n self.data.bound = true;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n cssReset[CSS_TRANS_ORG] = originReset.toString();\r\n cssReset['opacity'] = 1;\r\n css(img, cssReset);\r\n\r\n self._originalImageWidth = imgData.width;\r\n self._originalImageHeight = imgData.height;\r\n\r\n if (self.options.enableZoom) {\r\n _updateZoomLimits.call(self, true);\r\n }\r\n else {\r\n self._currentZoom = initialZoom;\r\n }\r\n\r\n transformReset.scale = self._currentZoom;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n css(img, cssReset);\r\n\r\n if (self.data.points.length) {\r\n _bindPoints.call(self, self.data.points);\r\n }\r\n else {\r\n _centerImage.call(self);\r\n }\r\n\r\n _updateCenterPoint.call(self);\r\n _updateOverlay.call(self);\r\n }\r\n\r\n function _updateZoomLimits (initial) {\r\n var self = this,\r\n minZoom = 0,\r\n maxZoom = 1.5,\r\n initialZoom,\r\n defaultInitialZoom,\r\n zoomer = self.elements.zoomer,\r\n scale = parseFloat(zoomer.value),\r\n boundaryData = self.elements.boundary.getBoundingClientRect(),\r\n imgData = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n minW,\r\n minH;\r\n\r\n if (self.options.enforceBoundary) {\r\n minW = vpData.width / (initial ? imgData.width : imgData.width / scale);\r\n minH = vpData.height / (initial ? imgData.height : imgData.height / scale);\r\n minZoom = Math.max(minW, minH);\r\n }\r\n\r\n if (minZoom >= maxZoom) {\r\n maxZoom = minZoom + 1;\r\n }\r\n\r\n zoomer.min = fix(minZoom, 4);\r\n zoomer.max = fix(maxZoom, 4);\r\n\r\n if (initial) {\r\n defaultInitialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));\r\n initialZoom = self.data.boundZoom !== null ? self.data.boundZoom : defaultInitialZoom;\r\n _setZoomerVal.call(self, initialZoom);\r\n }\r\n\r\n dispatchChange(zoomer);\r\n }\r\n\r\n function _bindPoints(points) {\r\n if (points.length != 4) {\r\n throw \"Croppie - Invalid number of points supplied: \" + points;\r\n }\r\n var self = this,\r\n pointsWidth = points[2] - points[0],\r\n // pointsHeight = points[3] - points[1],\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n vpOffset = {\r\n left: vpData.left - boundRect.left,\r\n top: vpData.top - boundRect.top\r\n },\r\n scale = vpData.width / pointsWidth,\r\n originTop = points[1],\r\n originLeft = points[0],\r\n transformTop = (-1 * points[1]) + vpOffset.top,\r\n transformLeft = (-1 * points[0]) + vpOffset.left,\r\n newCss = {};\r\n\r\n newCss[CSS_TRANS_ORG] = originLeft + 'px ' + originTop + 'px';\r\n newCss[CSS_TRANSFORM] = new Transform(transformLeft, transformTop, scale).toString();\r\n css(self.elements.preview, newCss);\r\n\r\n _setZoomerVal.call(self, scale);\r\n self._currentZoom = scale;\r\n }\r\n\r\n function _centerImage() {\r\n var self = this,\r\n imgDim = self.elements.preview.getBoundingClientRect(),\r\n vpDim = self.elements.viewport.getBoundingClientRect(),\r\n boundDim = self.elements.boundary.getBoundingClientRect(),\r\n vpLeft = vpDim.left - boundDim.left,\r\n vpTop = vpDim.top - boundDim.top,\r\n w = vpLeft - ((imgDim.width - vpDim.width) / 2),\r\n h = vpTop - ((imgDim.height - vpDim.height) / 2),\r\n transform = new Transform(w, h, self._currentZoom);\r\n\r\n css(self.elements.preview, CSS_TRANSFORM, transform.toString());\r\n }\r\n\r\n function _transferImageToCanvas(customOrientation) {\r\n var self = this,\r\n canvas = self.elements.canvas,\r\n img = self.elements.img,\r\n ctx = canvas.getContext('2d'),\r\n exif = _hasExif.call(self),\r\n customOrientation = self.options.enableOrientation && customOrientation;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n if (exif && !customOrientation) {\r\n var orientation = getExifOrientation(img);\r\n drawCanvas(canvas, img, num(orientation || 0, 10));\r\n }\r\n else if (customOrientation) {\r\n drawCanvas(canvas, img, customOrientation);\r\n }\r\n }\r\n\r\n function _getCanvas(data) {\r\n var self = this,\r\n points = data.points,\r\n left = num(points[0]),\r\n top = num(points[1]),\r\n right = num(points[2]),\r\n bottom = num(points[3]),\r\n width = right-left,\r\n height = bottom-top,\r\n circle = data.circle,\r\n canvas = document.createElement('canvas'),\r\n ctx = canvas.getContext('2d'),\r\n outWidth = width,\r\n outHeight = height,\r\n startX = 0,\r\n startY = 0,\r\n canvasWidth = outWidth,\r\n canvasHeight = outHeight,\r\n customDimensions = (data.outputWidth && data.outputHeight),\r\n outputRatio = 1;\r\n\r\n if (customDimensions) {\r\n canvasWidth = data.outputWidth;\r\n canvasHeight = data.outputHeight;\r\n outputRatio = canvasWidth / outWidth;\r\n }\r\n\r\n canvas.width = canvasWidth;\r\n canvas.height = canvasHeight;\r\n\r\n if (data.backgroundColor) {\r\n ctx.fillStyle = data.backgroundColor;\r\n ctx.fillRect(0, 0, outWidth, outHeight);\r\n }\r\n\r\n // start fixing data to send to draw image for enforceBoundary: false\r\n if (!self.options.enforceBoundary) {\r\n if (left < 0) {\r\n startX = Math.abs(left);\r\n left = 0;\r\n }\r\n if (top < 0) {\r\n startY = Math.abs(top);\r\n top = 0;\r\n }\r\n if (right > self._originalImageWidth) {\r\n width = self._originalImageWidth - left;\r\n outWidth = width;\r\n }\r\n if (bottom > self._originalImageHeight) {\r\n height = self._originalImageHeight - top;\r\n outHeight = height;\r\n }\r\n }\r\n\r\n if (outputRatio !== 1) {\r\n startX *= outputRatio;\r\n startY *= outputRatio;\r\n outWidth *= outputRatio;\r\n outHeight *= outputRatio;\r\n }\r\n\r\n ctx.drawImage(this.elements.preview, left, top, Math.min(width, self._originalImageWidth), Math.min(height, self._originalImageHeight), startX, startY, outWidth, outHeight);\r\n if (circle) {\r\n ctx.fillStyle = '#fff';\r\n ctx.globalCompositeOperation = 'destination-in';\r\n ctx.beginPath();\r\n ctx.arc(outWidth / 2, outHeight / 2, outWidth / 2, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n return canvas;\r\n }\r\n\r\n function _getHtmlResult(data) {\r\n var points = data.points,\r\n div = document.createElement('div'),\r\n img = document.createElement('img'),\r\n width = points[2] - points[0],\r\n height = points[3] - points[1];\r\n\r\n addClass(div, 'croppie-result');\r\n div.appendChild(img);\r\n css(img, {\r\n left: (-1 * points[0]) + 'px',\r\n top: (-1 * points[1]) + 'px'\r\n });\r\n img.src = data.url;\r\n css(div, {\r\n width: width + 'px',\r\n height: height + 'px'\r\n });\r\n\r\n return div;\r\n }\r\n\r\n function _getBase64Result(data) {\r\n return _getCanvas.call(this, data).toDataURL(data.format, data.quality);\r\n }\r\n\r\n function _getBlobResult(data) {\r\n var self = this;\r\n return new Promise(function (resolve, reject) {\r\n _getCanvas.call(self, data).toBlob(function (blob) {\r\n resolve(blob);\r\n }, data.format, data.quality);\r\n });\r\n }\r\n\r\n function _bind(options, cb) {\r\n var self = this,\r\n url,\r\n points = [],\r\n zoom = null,\r\n hasExif = _hasExif.call(self);;\r\n\r\n if (typeof (options) === 'string') {\r\n url = options;\r\n options = {};\r\n }\r\n else if (Array.isArray(options)) {\r\n points = options.slice();\r\n }\r\n else if (typeof (options) == 'undefined' && self.data.url) { //refreshing\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n return null;\r\n }\r\n else {\r\n url = options.url;\r\n points = options.points || [];\r\n zoom = typeof(options.zoom) === 'undefined' ? null : options.zoom;\r\n }\r\n\r\n self.data.bound = false;\r\n self.data.url = url || self.data.url;\r\n self.data.boundZoom = zoom;\r\n\r\n return loadImage(url, self.elements.img, hasExif).then(function (img) {\r\n if (!points.length) {\r\n var natDim = naturalImageDimensions(img);\r\n var rect = self.elements.viewport.getBoundingClientRect();\r\n var aspectRatio = rect.width / rect.height;\r\n var imgAspectRatio = natDim.width / natDim.height;\r\n var width, height;\r\n\r\n if (imgAspectRatio > aspectRatio) {\r\n height = natDim.height;\r\n width = height * aspectRatio;\r\n }\r\n else {\r\n width = natDim.width;\r\n height = width / aspectRatio;\r\n }\r\n\r\n var x0 = (natDim.width - width) / 2;\r\n var y0 = (natDim.height - height) / 2;\r\n var x1 = x0 + width;\r\n var y1 = y0 + height;\r\n\r\n self.data.points = [x0, y0, x1, y1];\r\n }\r\n else if (self.options.relative) {\r\n points = [\r\n points[0] * img.naturalWidth / 100,\r\n points[1] * img.naturalHeight / 100,\r\n points[2] * img.naturalWidth / 100,\r\n points[3] * img.naturalHeight / 100\r\n ];\r\n }\r\n\r\n self.data.points = points.map(function (p) {\r\n return parseFloat(p);\r\n });\r\n if (self.options.useCanvas) {\r\n _transferImageToCanvas.call(self, options.orientation || 1);\r\n }\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n cb && cb();\r\n });\r\n }\r\n\r\n function fix(v, decimalPoints) {\r\n return parseFloat(v).toFixed(decimalPoints || 0);\r\n }\r\n\r\n function _get() {\r\n var self = this,\r\n imgData = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n x1 = vpData.left - imgData.left,\r\n y1 = vpData.top - imgData.top,\r\n widthDiff = (vpData.width - self.elements.viewport.offsetWidth) / 2, //border\r\n heightDiff = (vpData.height - self.elements.viewport.offsetHeight) / 2,\r\n x2 = x1 + self.elements.viewport.offsetWidth + widthDiff,\r\n y2 = y1 + self.elements.viewport.offsetHeight + heightDiff,\r\n scale = self._currentZoom;\r\n\r\n if (scale === Infinity || isNaN(scale)) {\r\n scale = 1;\r\n }\r\n\r\n var max = self.options.enforceBoundary ? 0 : Number.NEGATIVE_INFINITY;\r\n x1 = Math.max(max, x1 / scale);\r\n y1 = Math.max(max, y1 / scale);\r\n x2 = Math.max(max, x2 / scale);\r\n y2 = Math.max(max, y2 / scale);\r\n\r\n return {\r\n points: [fix(x1), fix(y1), fix(x2), fix(y2)],\r\n zoom: scale\r\n };\r\n }\r\n\r\n var RESULT_DEFAULTS = {\r\n type: 'canvas',\r\n format: 'png',\r\n quality: 1\r\n },\r\n RESULT_FORMATS = ['jpeg', 'webp', 'png'];\r\n\r\n function _result(options) {\r\n var self = this,\r\n data = _get.call(self),\r\n opts = deepExtend(RESULT_DEFAULTS, deepExtend({}, options)),\r\n resultType = (typeof (options) === 'string' ? options : (opts.type || 'base64')),\r\n size = opts.size || 'viewport',\r\n format = opts.format,\r\n quality = opts.quality,\r\n backgroundColor = opts.backgroundColor,\r\n circle = typeof opts.circle === 'boolean' ? opts.circle : (self.options.viewport.type === 'circle'),\r\n vpRect = self.elements.viewport.getBoundingClientRect(),\r\n ratio = vpRect.width / vpRect.height,\r\n prom;\r\n\r\n if (size === 'viewport') {\r\n data.outputWidth = vpRect.width;\r\n data.outputHeight = vpRect.height;\r\n } else if (typeof size === 'object') {\r\n if (size.width && size.height) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.height;\r\n } else if (size.width) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.width / ratio;\r\n } else if (size.height) {\r\n data.outputWidth = size.height * ratio;\r\n data.outputHeight = size.height;\r\n }\r\n }\r\n\r\n if (RESULT_FORMATS.indexOf(format) > -1) {\r\n data.format = 'image/' + format;\r\n data.quality = quality;\r\n }\r\n\r\n data.circle = circle;\r\n data.url = self.data.url;\r\n data.backgroundColor = backgroundColor;\r\n\r\n prom = new Promise(function (resolve, reject) {\r\n switch(resultType.toLowerCase())\r\n {\r\n case 'rawcanvas':\r\n resolve(_getCanvas.call(self, data));\r\n break;\r\n case 'canvas':\r\n case 'base64':\r\n resolve(_getBase64Result.call(self, data));\r\n break;\r\n case 'blob':\r\n _getBlobResult.call(self, data).then(resolve);\r\n break;\r\n default:\r\n resolve(_getHtmlResult.call(self, data));\r\n break;\r\n }\r\n });\r\n return prom;\r\n }\r\n\r\n function _refresh() {\r\n _updatePropertiesFromImage.call(this);\r\n }\r\n\r\n function _rotate(deg) {\r\n if (!this.options.useCanvas) {\r\n throw 'Croppie: Cannot rotate without enableOrientation';\r\n }\r\n\r\n var self = this,\r\n canvas = self.elements.canvas,\r\n copy = document.createElement('canvas'),\r\n ornt = 1;\r\n\r\n copy.width = canvas.width;\r\n copy.height = canvas.height;\r\n var ctx = copy.getContext('2d');\r\n ctx.drawImage(canvas, 0, 0);\r\n\r\n if (deg === 90 || deg === -270) ornt = 6;\r\n if (deg === -90 || deg === 270) ornt = 8;\r\n if (deg === 180 || deg === -180) ornt = 3;\r\n\r\n drawCanvas(canvas, copy, ornt);\r\n _onZoom.call(self);\r\n copy = null;\r\n }\r\n\r\n function _destroy() {\r\n var self = this;\r\n self.element.removeChild(self.elements.boundary);\r\n removeClass(self.element, 'croppie-container');\r\n if (self.options.enableZoom) {\r\n self.element.removeChild(self.elements.zoomerWrap);\r\n }\r\n delete self.elements;\r\n }\r\n\r\n if (window.jQuery) {\r\n var $ = window.jQuery;\r\n $.fn.croppie = function (opts) {\r\n var ot = typeof opts;\r\n\r\n if (ot === 'string') {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n var singleInst = $(this).data('croppie');\r\n\r\n if (opts === 'get') {\r\n return singleInst.get();\r\n }\r\n else if (opts === 'result') {\r\n return singleInst.result.apply(singleInst, args);\r\n }\r\n else if (opts === 'bind') {\r\n return singleInst.bind.apply(singleInst, args);\r\n }\r\n\r\n return this.each(function () {\r\n var i = $(this).data('croppie');\r\n if (!i) return;\r\n\r\n var method = i[opts];\r\n if ($.isFunction(method)) {\r\n method.apply(i, args);\r\n if (opts === 'destroy') {\r\n $(this).removeData('croppie');\r\n }\r\n }\r\n else {\r\n throw 'Croppie ' + opts + ' method not found';\r\n }\r\n });\r\n }\r\n else {\r\n return this.each(function () {\r\n var i = new Croppie(this, opts);\r\n i.$ = $;\r\n $(this).data('croppie', i);\r\n });\r\n }\r\n };\r\n }\r\n\r\n function Croppie(element, opts) {\r\n this.element = element;\r\n this.options = deepExtend(deepExtend({}, Croppie.defaults), opts);\r\n\r\n if (this.element.tagName.toLowerCase() === 'img') {\r\n var origImage = this.element;\r\n addClass(origImage, 'cr-original-image');\r\n setAttributes(origImage, {'aria-hidden' : 'true', 'alt' : '' });\r\n var replacementDiv = document.createElement('div');\r\n this.element.parentNode.appendChild(replacementDiv);\r\n replacementDiv.appendChild(origImage);\r\n this.element = replacementDiv;\r\n this.options.url = this.options.url || origImage.src;\r\n }\r\n\r\n _create.call(this);\r\n if (this.options.url) {\r\n var bindOpts = {\r\n url: this.options.url,\r\n points: this.options.points\r\n };\r\n delete this.options['url'];\r\n delete this.options['points'];\r\n _bind.call(this, bindOpts);\r\n }\r\n }\r\n\r\n Croppie.defaults = {\r\n viewport: {\r\n width: 100,\r\n height: 100,\r\n type: 'square'\r\n },\r\n boundary: { },\r\n orientationControls: {\r\n enabled: true,\r\n leftClass: '',\r\n rightClass: ''\r\n },\r\n resizeControls: {\r\n width: true,\r\n height: true\r\n },\r\n customClass: '',\r\n showZoomer: true,\r\n enableZoom: true,\r\n enableResize: false,\r\n mouseWheelZoom: true,\r\n enableExif: false,\r\n enforceBoundary: true,\r\n enableOrientation: false,\r\n enableKeyMovement: true,\r\n update: function () { }\r\n };\r\n\r\n Croppie.globals = {\r\n translate: 'translate3d'\r\n };\r\n\r\n deepExtend(Croppie.prototype, {\r\n bind: function (options, cb) {\r\n return _bind.call(this, options, cb);\r\n },\r\n get: function () {\r\n var data = _get.call(this);\r\n var points = data.points;\r\n if (this.options.relative) {\r\n points[0] /= this.elements.img.naturalWidth / 100;\r\n points[1] /= this.elements.img.naturalHeight / 100;\r\n points[2] /= this.elements.img.naturalWidth / 100;\r\n points[3] /= this.elements.img.naturalHeight / 100;\r\n }\r\n return data;\r\n },\r\n result: function (type) {\r\n return _result.call(this, type);\r\n },\r\n refresh: function () {\r\n return _refresh.call(this);\r\n },\r\n setZoom: function (v) {\r\n _setZoomerVal.call(this, v);\r\n dispatchChange(this.elements.zoomer);\r\n },\r\n rotate: function (deg) {\r\n _rotate.call(this, deg);\r\n },\r\n destroy: function () {\r\n return _destroy.call(this);\r\n }\r\n });\r\n\r\n exports.Croppie = window.Croppie = Croppie;\r\n\r\n if (typeof module === 'object' && !!module.exports) {\r\n module.exports = Croppie;\r\n }\r\n}));\r\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","/*! hyperform.js.org */\n'use strict';\n\nvar registry = Object.create(null);\n\n/**\n * run all actions registered for a hook\n *\n * Every action gets called with a state object as `this` argument and with the\n * hook's call arguments as call arguments.\n *\n * @return mixed the returned value of the action calls or undefined\n */\nfunction call_hook(hook) {\n var result;\n var call_args = Array.prototype.slice.call(arguments, 1);\n\n if (hook in registry) {\n result = registry[hook].reduce(function (args) {\n\n return function (previousResult, currentAction) {\n var interimResult = currentAction.apply({\n state: previousResult,\n hook: hook\n }, args);\n return interimResult !== undefined ? interimResult : previousResult;\n };\n }(call_args), result);\n }\n\n return result;\n}\n\n/**\n * Filter a value through hooked functions\n *\n * Allows for additional parameters:\n * js> do_filter('foo', null, current_element)\n */\nfunction do_filter(hook, initial_value) {\n var result = initial_value;\n var call_args = Array.prototype.slice.call(arguments, 1);\n\n if (hook in registry) {\n result = registry[hook].reduce(function (previousResult, currentAction) {\n call_args[0] = previousResult;\n var interimResult = currentAction.apply({\n state: previousResult,\n hook: hook\n }, call_args);\n return interimResult !== undefined ? interimResult : previousResult;\n }, result);\n }\n\n return result;\n}\n\n/**\n * remove an action again\n */\nfunction remove_hook(hook, action) {\n if (hook in registry) {\n for (var i = 0; i < registry[hook].length; i++) {\n if (registry[hook][i] === action) {\n registry[hook].splice(i, 1);\n break;\n }\n }\n }\n}\n/**\n * add an action to a hook\n */\nfunction add_hook(hook, action, position) {\n if (!(hook in registry)) {\n registry[hook] = [];\n }\n if (position === undefined) {\n position = registry[hook].length;\n }\n registry[hook].splice(position, 0, action);\n}\n\n/**\n * return either the data of a hook call or the result of action, if the\n * former is undefined\n *\n * @return function a function wrapper around action\n */\nfunction return_hook_or (hook, action) {\n return function () {\n var data = call_hook(hook, Array.prototype.slice.call(arguments));\n\n if (data !== undefined) {\n return data;\n }\n\n return action.apply(this, arguments);\n };\n}\n\n/* the following code is borrowed from the WebComponents project, licensed\n * under the BSD license. Source:\n * \n */\n// defaultPrevented is broken in IE.\n// https://connect.microsoft.com/IE/feedback/details/790389/event-defaultprevented-returns-false-after-preventdefault-was-called\n\nvar workingDefaultPrevented = function () {\n var e = document.createEvent('Event');\n e.initEvent('foo', true, true);\n e.preventDefault();\n return e.defaultPrevented;\n}();\n\nif (!workingDefaultPrevented) {\n (function () {\n var origPreventDefault = window.Event.prototype.preventDefault;\n window.Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return;\n }\n\n origPreventDefault.call(this);\n\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n },\n configurable: true\n });\n };\n })();\n}\n/* end of borrowed code */\n\nfunction create_event(name) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _ref$bubbles = _ref.bubbles;\n var bubbles = _ref$bubbles === undefined ? true : _ref$bubbles;\n var _ref$cancelable = _ref.cancelable;\n var cancelable = _ref$cancelable === undefined ? false : _ref$cancelable;\n\n var event = document.createEvent('Event');\n event.initEvent(name, bubbles, cancelable);\n return event;\n}\n\nfunction trigger_event (element, event) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _ref2$bubbles = _ref2.bubbles;\n var bubbles = _ref2$bubbles === undefined ? true : _ref2$bubbles;\n var _ref2$cancelable = _ref2.cancelable;\n var cancelable = _ref2$cancelable === undefined ? false : _ref2$cancelable;\n var payload = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (!(event instanceof window.Event)) {\n event = create_event(event, { bubbles: bubbles, cancelable: cancelable });\n }\n\n for (var key in payload) {\n if (payload.hasOwnProperty(key)) {\n event[key] = payload[key];\n }\n }\n\n element.dispatchEvent(event);\n\n return event;\n}\n\n/* and datetime-local? Spec says “Nah!” */\n\nvar dates = ['datetime', 'date', 'month', 'week', 'time'];\n\nvar plain_numbers = ['number', 'range'];\n\n/* everything that returns something meaningful for valueAsNumber and\n * can have the step attribute */\nvar numbers = dates.concat(plain_numbers, 'datetime-local');\n\n/* the spec says to only check those for syntax in validity.typeMismatch.\n * ¯\\_(ツ)_/¯ */\nvar type_checked = ['email', 'url'];\n\n/* check these for validity.badInput */\nvar input_checked = ['email', 'date', 'month', 'week', 'time', 'datetime', 'datetime-local', 'number', 'range', 'color'];\n\nvar text_types = ['text', 'search', 'tel', 'password'].concat(type_checked);\n\n/* input element types, that are candidates for the validation API.\n * Missing from this set are: button, hidden, menu (from