From 5ba57320599477160e29791c2e82478701e41a56 Mon Sep 17 00:00:00 2001 From: bellord13 Date: Fri, 15 Mar 2024 20:37:29 +0300 Subject: [PATCH 1/2] fix --- assets/bxSlider/images/bx_loader.gif | Bin 0 -> 8581 bytes assets/bxSlider/images/controls.png | Bin 0 -> 2806 bytes assets/bxSlider/jquery.bxslider.css | 177 + assets/bxSlider/jquery.bxslider.js | 1607 +++++++++ assets/bxSlider/jquery.bxslider.min.css | 1 + assets/bxSlider/jquery.bxslider.min.js | 7 + assets/bxSlider/vendor/jquery.easing.1.3.js | 205 ++ assets/bxSlider/vendor/jquery.fitvids.js | 80 + assets/core/core.js | 88 +- assets/core/core.register.js | 46 +- assets/intl-tel-input/css/demo.css | 51 + assets/intl-tel-input/css/intlTelInput.css | 1316 ++++++++ .../intl-tel-input/css/intlTelInput.min.css | 1 + assets/intl-tel-input/img/flags.png | Bin 0 -> 70325 bytes assets/intl-tel-input/img/flags@2x.png | Bin 0 -> 183962 bytes assets/intl-tel-input/img/globe.png | Bin 0 -> 646 bytes assets/intl-tel-input/img/globe@2x.png | Bin 0 -> 1667 bytes assets/intl-tel-input/js/data.js | 37 + assets/intl-tel-input/js/data.min.js | 7 + .../intl-tel-input/js/intlTelInput-jquery.js | 1817 ++++++++++ .../js/intlTelInput-jquery.min.js | 8 + assets/intl-tel-input/js/intlTelInput.js | 1788 ++++++++++ assets/intl-tel-input/js/intlTelInput.min.js | 12 + assets/intl-tel-input/js/utils.js | 520 +++ assets/jBox/jBox.all.css | 1251 +++++++ assets/jBox/jBox.all.js | 2953 +++++++++++++++++ assets/jBox/jBox.all.min.css | 1 + assets/jBox/jBox.all.min.js | 1 + assets/jBox/jBox.css | 572 ++++ assets/jBox/jBox.js | 2333 +++++++++++++ assets/jBox/jBox.min.css | 1 + assets/jBox/jBox.min.js | 6 + assets/jBox/plugins/jBox.Confirm.css | 58 + assets/jBox/plugins/jBox.Confirm.js | 97 + assets/jBox/plugins/jBox.Confirm.min.css | 1 + assets/jBox/plugins/jBox.Confirm.min.js | 1 + assets/jBox/plugins/jBox.Image.css | 201 ++ assets/jBox/plugins/jBox.Image.js | 358 ++ assets/jBox/plugins/jBox.Image.min.css | 1 + assets/jBox/plugins/jBox.Image.min.js | 1 + assets/jBox/plugins/jBox.Notice.css | 122 + assets/jBox/plugins/jBox.Notice.js | 173 + assets/jBox/plugins/jBox.Notice.min.css | 1 + assets/jBox/plugins/jBox.Notice.min.js | 1 + assets/jBox/themes/jBox.NoticeFancy.css | 49 + assets/jBox/themes/jBox.NoticeFancy.min.css | 1 + assets/jBox/themes/jBox.TooltipBorder.css | 39 + assets/jBox/themes/jBox.TooltipBorder.min.css | 1 + .../jBox/themes/jBox.TooltipBorderThick.css | 32 + .../themes/jBox.TooltipBorderThick.min.css | 1 + assets/jBox/themes/jBox.TooltipDark.css | 32 + assets/jBox/themes/jBox.TooltipDark.min.css | 1 + assets/jBox/themes/jBox.TooltipError.css | 54 + assets/jBox/themes/jBox.TooltipError.min.css | 1 + assets/jBox/themes/jBox.TooltipSmall.css | 49 + assets/jBox/themes/jBox.TooltipSmall.min.css | 1 + assets/jBox/themes/jBox.TooltipSmallGray.css | 53 + .../jBox/themes/jBox.TooltipSmallGray.min.css | 1 + assets/jquery/jquery.js | 4 +- assets/selectric/jquery.selectric.js | 1127 +++++++ assets/selectric/jquery.selectric.min.js | 7 + assets/selectric/selectric.css | 244 ++ assets/toolkit/toolkit.js | 21 +- 63 files changed, 17584 insertions(+), 35 deletions(-) create mode 100644 assets/bxSlider/images/bx_loader.gif create mode 100644 assets/bxSlider/images/controls.png create mode 100644 assets/bxSlider/jquery.bxslider.css create mode 100644 assets/bxSlider/jquery.bxslider.js create mode 100644 assets/bxSlider/jquery.bxslider.min.css create mode 100644 assets/bxSlider/jquery.bxslider.min.js create mode 100644 assets/bxSlider/vendor/jquery.easing.1.3.js create mode 100644 assets/bxSlider/vendor/jquery.fitvids.js create mode 100644 assets/intl-tel-input/css/demo.css create mode 100644 assets/intl-tel-input/css/intlTelInput.css create mode 100644 assets/intl-tel-input/css/intlTelInput.min.css create mode 100644 assets/intl-tel-input/img/flags.png create mode 100644 assets/intl-tel-input/img/flags@2x.png create mode 100644 assets/intl-tel-input/img/globe.png create mode 100644 assets/intl-tel-input/img/globe@2x.png create mode 100644 assets/intl-tel-input/js/data.js create mode 100644 assets/intl-tel-input/js/data.min.js create mode 100644 assets/intl-tel-input/js/intlTelInput-jquery.js create mode 100644 assets/intl-tel-input/js/intlTelInput-jquery.min.js create mode 100644 assets/intl-tel-input/js/intlTelInput.js create mode 100644 assets/intl-tel-input/js/intlTelInput.min.js create mode 100644 assets/intl-tel-input/js/utils.js create mode 100644 assets/jBox/jBox.all.css create mode 100644 assets/jBox/jBox.all.js create mode 100644 assets/jBox/jBox.all.min.css create mode 100644 assets/jBox/jBox.all.min.js create mode 100644 assets/jBox/jBox.css create mode 100644 assets/jBox/jBox.js create mode 100644 assets/jBox/jBox.min.css create mode 100644 assets/jBox/jBox.min.js create mode 100644 assets/jBox/plugins/jBox.Confirm.css create mode 100644 assets/jBox/plugins/jBox.Confirm.js create mode 100644 assets/jBox/plugins/jBox.Confirm.min.css create mode 100644 assets/jBox/plugins/jBox.Confirm.min.js create mode 100644 assets/jBox/plugins/jBox.Image.css create mode 100644 assets/jBox/plugins/jBox.Image.js create mode 100644 assets/jBox/plugins/jBox.Image.min.css create mode 100644 assets/jBox/plugins/jBox.Image.min.js create mode 100644 assets/jBox/plugins/jBox.Notice.css create mode 100644 assets/jBox/plugins/jBox.Notice.js create mode 100644 assets/jBox/plugins/jBox.Notice.min.css create mode 100644 assets/jBox/plugins/jBox.Notice.min.js create mode 100644 assets/jBox/themes/jBox.NoticeFancy.css create mode 100644 assets/jBox/themes/jBox.NoticeFancy.min.css create mode 100644 assets/jBox/themes/jBox.TooltipBorder.css create mode 100644 assets/jBox/themes/jBox.TooltipBorder.min.css create mode 100644 assets/jBox/themes/jBox.TooltipBorderThick.css create mode 100644 assets/jBox/themes/jBox.TooltipBorderThick.min.css create mode 100644 assets/jBox/themes/jBox.TooltipDark.css create mode 100644 assets/jBox/themes/jBox.TooltipDark.min.css create mode 100644 assets/jBox/themes/jBox.TooltipError.css create mode 100644 assets/jBox/themes/jBox.TooltipError.min.css create mode 100644 assets/jBox/themes/jBox.TooltipSmall.css create mode 100644 assets/jBox/themes/jBox.TooltipSmall.min.css create mode 100644 assets/jBox/themes/jBox.TooltipSmallGray.css create mode 100644 assets/jBox/themes/jBox.TooltipSmallGray.min.css create mode 100644 assets/selectric/jquery.selectric.js create mode 100644 assets/selectric/jquery.selectric.min.js create mode 100644 assets/selectric/selectric.css diff --git a/assets/bxSlider/images/bx_loader.gif b/assets/bxSlider/images/bx_loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4ff40edab88c7df20db106d35c641723d125f56 GIT binary patch literal 8581 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 c>cwS7fM^|1+i$+MM*S!1<>5n 1) { + this.each(function() { + $(this).bxSlider(options); + }); + return this; + } + + // create a namespace to be used throughout the plugin + var slider = {}, + // set a reference to our slider element + el = this, + // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width(), + windowHeight = $(window).height(); + + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + + /** + * =================================================================================== + * = PRIVATE FUNCTIONS + * =================================================================================== + */ + + /** + * Initializes namespace settings to be used throughout plugin + */ + var init = function() { + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + // merge user-supplied options with the defaults + slider.settings = $.extend({}, defaults, options); + // parse slideWidth setting + slider.settings.slideWidth = parseInt(slider.settings.slideWidth); + // store the original children + slider.children = el.children(slider.settings.slideSelector); + // check if actual number of slides is less than minSlides / maxSlides + if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } + if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + // if random start, set the startSlide setting to random number + if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + // store active slide information + slider.active = { index: slider.settings.startSlide }; + // store if the slider is in carousel mode (displaying / moving multiple slides) + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; + // if carousel, force preloadImages = 'all' + if (slider.carousel) { slider.settings.preloadImages = 'all'; } + // calculate the min / max width thresholds based on min / max number of slides + // used to setup and update carousel slides dimensions + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + // store the current state of the slider (if currently animating, working is true) + slider.working = false; + // initialize the controls object + slider.controls = {}; + // initialize an auto interval + slider.interval = null; + // determine which property to use for transitions + slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; + // determine if hardware acceleration can be used + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { + // create our test div element + var div = document.createElement('div'), + // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + // test for each property + for (var i = 0; i < props.length; i++) { + if (div.style[props[i]] !== undefined) { + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); + slider.animProp = '-' + slider.cssPrefix + '-transform'; + return true; + } + } + return false; + }()); + // if vertical mode always make maxSlides and minSlides equal + if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + // save original style data + el.data('origStyle', el.attr('style')); + el.children(slider.settings.slideSelector).each(function() { + $(this).data('origStyle', $(this).attr('style')); + }); + + // perform all DOM / CSS modifications + setup(); + }; + + /** + * Performs all DOM and CSS modifications + */ + var setup = function() { + var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) + + // wrap el in a wrapper + el.wrap('
'); + // store a namespace reference to .bx-viewport + slider.viewport = el.parent(); + + // add aria-live if the setting is enabled and ticker mode is disabled + if (slider.settings.ariaLive && !slider.settings.ticker) { + slider.viewport.attr('aria-live', 'polite'); + } + // add a loading div to display while images are loading + slider.loader = $('
'); + slider.viewport.prepend(slider.loader); + // set el to a massive width, to hold any needed slides + // also strip any margin and padding from el + el.css({ + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', + position: 'relative' + }); + // if using CSS, add the easing property + if (slider.usingCSS && slider.settings.easing) { + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + } else if (!slider.settings.easing) { + slider.settings.easing = 'swing'; + } + // make modifications to the viewport (.bx-viewport) + slider.viewport.css({ + width: '100%', + overflow: 'hidden', + position: 'relative' + }); + slider.viewport.parent().css({ + maxWidth: getViewportMaxWidth() + }); + // apply css to all slider children + slider.children.css({ + float: slider.settings.mode === 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' + }); + // apply the calculated width after the float is applied to prevent scrollbar interference + slider.children.css('width', getSlideWidth()); + // if slideMargin is supplied, add the css + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + // if "fade" mode, add positioning and z-index CSS + if (slider.settings.mode === 'fade') { + slider.children.css({ + position: 'absolute', + zIndex: 0, + display: 'none' + }); + // prepare the z-index on the showing element + slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + } + // create an element to contain all slider controls (pager, start / stop, etc) + slider.controls.el = $('
'); + // if captions are requested, add them + if (slider.settings.captions) { appendCaptions(); } + // check if startSlide is last slide + slider.active.last = slider.settings.startSlide === getPagerQty() - 1; + // if video is true, set up the fitVids plugin + if (slider.settings.video) { el.fitVids(); } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + // only check for control addition if not in "ticker" mode + if (!slider.settings.ticker) { + // if controls are requested, add them + if (slider.settings.controls) { appendControls(); } + // if auto is true, and auto controls are requested, add them + if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + // if pager is requested, add it + if (slider.settings.pager) { appendPager(); } + // if any control option is requested, add the controls wrapper + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } + // if ticker mode, do not allow a pager + } else { + slider.settings.pager = false; + } + loadElements(preloadSelector, start); + }; + + var loadElements = function(selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length, + count = 0; + if (total === 0) { + callback(); + return; + } + selector.find('img:not([src=""]), iframe').each(function() { + $(this).one('load error', function() { + if (++count === total) { callback(); } + }).each(function() { + if (this.complete) { $(this).trigger('load'); } + }); + }); + }; + + /** + * Start the slider + */ + var start = function() { + // if infinite loop, prepare additional slides + if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + if (slider.settings.ariaHidden) { + sliceAppend.attr('aria-hidden', true); + slicePrepend.attr('aria-hidden', true); + } + el.append(sliceAppend).prepend(slicePrepend); + } + // remove the loading DOM element + slider.loader.remove(); + // set the left / top position of "el" + setSlidePosition(); + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior + if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + // set the viewport height + slider.viewport.height(getViewportHeight()); + // make sure everything is positioned just right (same as a window resize) + el.redrawSlider(); + // onSliderLoad callback + slider.settings.onSliderLoad.call(el, slider.active.index); + // slider has been fully initialized + slider.initialized = true; + // bind the resize call to the window + if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + // if auto is true and has more than 1 page, start the show + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + // if ticker is true, start the ticker + if (slider.settings.ticker) { initTicker(); } + // if pager is requested, make the appropriate pager link active + if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + // check for any updates to the controls (like hideControlOnEnd updates) + if (slider.settings.controls) { updateDirectionControls(); } + // if touchEnabled is true, setup the touch events + if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + // if keyboardEnabled is true, setup the keyboard events + if (slider.settings.keyboardEnabled && !slider.settings.ticker) { + $(document).keydown(keyPress); + } + }; + + /** + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value + */ + var getViewportHeight = function() { + var height = 0; + // first determine which children (slides) should be used in our height calculation + var children = $(); + // if mode is not "vertical" and adaptiveHeight is false, include all children + if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { + children = slider.children; + } else { + // if not carousel, return the single active child + if (!slider.carousel) { + children = slider.children.eq(slider.active.index); + // if carousel, return a slice of children + } else { + // get the individual slide index + var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); + // add the current slide to the children + children = slider.children.eq(currentIndex); + // cycle through the remaining "showing" slides + for (i = 1; i <= slider.settings.maxSlides - 1; i++) { + // if looped back to the start + if (currentIndex + i >= slider.children.length) { + children = children.add(slider.children.eq(i - 1)); + } else { + children = children.add(slider.children.eq(currentIndex + i)); + } + } + } + } + // if "vertical" mode, calculate the sum of the heights of the children + if (slider.settings.mode === 'vertical') { + children.each(function(index) { + height += $(this).outerHeight(); + }); + // add user-supplied margins + if (slider.settings.slideMargin > 0) { + height += slider.settings.slideMargin * (slider.settings.minSlides - 1); + } + // if not "vertical" mode, calculate the max height of the children + } else { + height = Math.max.apply(Math, children.map(function() { + return $(this).outerHeight(false); + }).get()); + } + + if (slider.viewport.css('box-sizing') === 'border-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + } else if (slider.viewport.css('box-sizing') === 'padding-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); + } + + return height; + }; + + /** + * Returns the calculated width to be used for the outer wrapper / viewport + */ + var getViewportMaxWidth = function() { + var width = '100%'; + if (slider.settings.slideWidth > 0) { + if (slider.settings.mode === 'horizontal') { + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + } else { + width = slider.settings.slideWidth; + } + } + return width; + }; + + /** + * Returns the calculated width to be applied to each slide + */ + var getSlideWidth = function() { + var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width + wrapWidth = slider.viewport.width(); // get the current viewport width + // if slide width was not supplied, or is larger than the viewport use the viewport width + if (slider.settings.slideWidth === 0 || + (slider.settings.slideWidth > wrapWidth && !slider.carousel) || + slider.settings.mode === 'vertical') { + newElWidth = wrapWidth; + // if carousel, use the thresholds to determine the width + } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + if (wrapWidth > slider.maxThreshold) { + return newElWidth; + } else if (wrapWidth < slider.minThreshold) { + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; + } else if (slider.settings.shrinkItems) { + newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); + } + } + return newElWidth; + }; + + /** + * Returns the number of slides currently visible in the viewport (includes partially visible slides) + */ + var getNumberSlidesShowing = function() { + var slidesShowing = 1, + childWidth = null; + if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { + // if viewport is smaller than minThreshold, return minSlides + if (slider.viewport.width() < slider.minThreshold) { + slidesShowing = slider.settings.minSlides; + // if viewport is larger than maxThreshold, return maxSlides + } else if (slider.viewport.width() > slider.maxThreshold) { + slidesShowing = slider.settings.maxSlides; + // if viewport is between min / max thresholds, divide viewport width by first child width + } else { + childWidth = slider.children.first().width() + slider.settings.slideMargin; + slidesShowing = Math.floor((slider.viewport.width() + + slider.settings.slideMargin) / childWidth); + } + // if "vertical" mode, slides showing will always be minSlides + } else if (slider.settings.mode === 'vertical') { + slidesShowing = slider.settings.minSlides; + } + return slidesShowing; + }; + + /** + * Returns the number of pages (one full viewport of slides is one "page") + */ + var getPagerQty = function() { + var pagerQty = 0, + breakPoint = 0, + counter = 0; + // if moveSlides is specified by the user + if (slider.settings.moveSlides > 0) { + if (slider.settings.infiniteLoop) { + pagerQty = Math.ceil(slider.children.length / getMoveBy()); + } else { + // when breakpoint goes above children length, counter is the number of pages + while (breakPoint < slider.children.length) { + ++pagerQty; + breakPoint = counter + getNumberSlidesShowing(); + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); + } + } + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + } else { + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); + } + return pagerQty; + }; + + /** + * Returns the number of individual slides by which to shift the slider + */ + var getMoveBy = function() { + // if moveSlides was set by the user and moveSlides is less than number of slides showing + if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { + return slider.settings.moveSlides; + } + // if moveSlides is 0 (auto) + return getNumberSlidesShowing(); + }; + + /** + * Sets the slider's (el) left or top position + */ + var setSlidePosition = function() { + var position, lastChild, lastShowingIndex; + // if last slide, not infinite loop, and number of children is larger than specified maxSlides + if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { + if (slider.settings.mode === 'horizontal') { + // get the last child's position + lastChild = slider.children.last(); + position = lastChild.position(); + // set the left position + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + // get the last showing index's position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + // set the top position + setPositionProperty(-position.top, 'reset', 0); + } + // if not last slide + } else { + // get the position of the first showing slide + position = slider.children.eq(slider.active.index * getMoveBy()).position(); + // check for last slide + if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + // set the respective position + if (position !== undefined) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + }; + + /** + * Sets the el's animating property position (which in turn will sometimes animate el). + * If using CSS, sets the transform property. If not using CSS, sets the top / left property. + * + * @param value (int) + * - the animating property's value + * + * @param type (string) 'slide', 'reset', 'ticker' + * - the type of instance for which the function is being + * + * @param duration (int) + * - the amount of time (in ms) the transition should occupy + * + * @param params (array) optional + * - an optional parameter containing any variables that need to be passed in + */ + var setPositionProperty = function(value, type, duration, params) { + var animateObj, propValue; + // use CSS transform + if (slider.usingCSS) { + // determine the translate3d value + propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; + // add the CSS transition-duration + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); + if (type === 'slide') { + // set the property value + el.css(slider.animProp, propValue); + if (duration !== 0) { + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + updateAfterSlideTransition(); + }); + } else { //duration = 0 + updateAfterSlideTransition(); + } + } else if (type === 'reset') { + el.css(slider.animProp, propValue); + } else if (type === 'ticker') { + // make the transition use 'linear' + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); + el.css(slider.animProp, propValue); + if (duration !== 0) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + // reset the position + setPositionProperty(params.resetValue, 'reset', 0); + // start the loop again + tickerLoop(); + }); + } else { //duration = 0 + setPositionProperty(params.resetValue, 'reset', 0); + tickerLoop(); + } + } + // use JS animate + } else { + animateObj = {}; + animateObj[slider.animProp] = value; + if (type === 'slide') { + el.animate(animateObj, duration, slider.settings.easing, function() { + updateAfterSlideTransition(); + }); + } else if (type === 'reset') { + el.css(slider.animProp, value); + } else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function() { + setPositionProperty(params.resetValue, 'reset', 0); + // run the recursive loop after animation + tickerLoop(); + }); + } + } + }; + + /** + * Populates the pager with proper amount of pages + */ + var populatePager = function() { + var pagerHtml = '', + linkContent = '', + pagerQty = getPagerQty(); + // loop through each pager item + for (var i = 0; i < pagerQty; i++) { + linkContent = ''; + // if a buildPager function is supplied, use it to get pager link value, else use index + 1 + if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { + linkContent = slider.settings.buildPager(i); + slider.pagerEl.addClass('bx-custom-pager'); + } else { + linkContent = i + 1; + slider.pagerEl.addClass('bx-default-pager'); + } + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; + // add the markup to the string + pagerHtml += ''; + } + // populate the pager element with pager links + slider.pagerEl.html(pagerHtml); + }; + + /** + * Appends the pager to the controls element + */ + var appendPager = function() { + if (!slider.settings.pagerCustom) { + // create the pager DOM element + slider.pagerEl = $('
'); + // if a pager selector was supplied, populate it with the pager + if (slider.settings.pagerSelector) { + $(slider.settings.pagerSelector).html(slider.pagerEl); + // if no pager selector was supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); + } + // populate the pager + populatePager(); + } else { + slider.pagerEl = $(slider.settings.pagerCustom); + } + // assign the pager click binding + slider.pagerEl.on('click touchend', 'a', clickPagerBind); + }; + + /** + * Appends prev / next controls to the controls element + */ + var appendControls = function() { + slider.controls.next = $('' + slider.settings.nextText + ''); + slider.controls.prev = $('' + slider.settings.prevText + ''); + // bind click actions to the controls + slider.controls.next.bind('click touchend', clickNextBind); + slider.controls.prev.bind('click touchend', clickPrevBind); + // if nextSelector was supplied, populate it + if (slider.settings.nextSelector) { + $(slider.settings.nextSelector).append(slider.controls.next); + } + // if prevSelector was supplied, populate it + if (slider.settings.prevSelector) { + $(slider.settings.prevSelector).append(slider.controls.prev); + } + // if no custom selectors were supplied + if (!slider.settings.nextSelector && !slider.settings.prevSelector) { + // add the controls to the DOM + slider.controls.directionEl = $('
'); + // add the control elements to the directionEl + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); + // slider.viewport.append(slider.controls.directionEl); + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); + } + }; + + /** + * Appends start / stop auto controls to the controls element + */ + var appendControlsAuto = function() { + slider.controls.start = $(''); + slider.controls.stop = $(''); + // add the controls to the DOM + slider.controls.autoEl = $('
'); + // bind click actions to the controls + slider.controls.autoEl.on('click', '.bx-start', clickStartBind); + slider.controls.autoEl.on('click', '.bx-stop', clickStopBind); + // if autoControlsCombine, insert only the "start" control + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.append(slider.controls.start); + // if autoControlsCombine is false, insert both controls + } else { + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); + } + // if auto controls selector was supplied, populate it with the controls + if (slider.settings.autoControlsSelector) { + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); + // if auto controls selector was not supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); + } + // update the auto controls + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); + }; + + /** + * Appends image captions to the DOM + */ + var appendCaptions = function() { + // cycle through each child + slider.children.each(function(index) { + // get the image title attribute + var title = $(this).find('img:first').attr('title'); + // append the caption + if (title !== undefined && ('' + title).length) { + $(this).append('
' + title + '
'); + } + }); + }; + + /** + * Click next binding + * + * @param e (event) + * - DOM event object + */ + var clickNextBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToNextSlide(); + }; + + /** + * Click prev binding + * + * @param e (event) + * - DOM event object + */ + var clickPrevBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToPrevSlide(); + }; + + /** + * Click start binding + * + * @param e (event) + * - DOM event object + */ + var clickStartBind = function(e) { + el.startAuto(); + e.preventDefault(); + }; + + /** + * Click stop binding + * + * @param e (event) + * - DOM event object + */ + var clickStopBind = function(e) { + el.stopAuto(); + e.preventDefault(); + }; + + /** + * Click pager binding + * + * @param e (event) + * - DOM event object + */ + var clickPagerBind = function(e) { + var pagerLink, pagerIndex; + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { + return; + } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + pagerLink = $(e.currentTarget); + if (pagerLink.attr('data-slide-index') !== undefined) { + pagerIndex = parseInt(pagerLink.attr('data-slide-index')); + // if clicked pager link is not active, continue with the goToSlide call + if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + } + }; + + /** + * Updates the pager links with an active class + * + * @param slideIndex (int) + * - index of slide to make active + */ + var updatePagerActive = function(slideIndex) { + // if "short" pager type + var len = slider.children.length; // nb of children + if (slider.settings.pagerType === 'short') { + if (slider.settings.maxSlides > 1) { + len = Math.ceil(slider.children.length / slider.settings.maxSlides); + } + slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len); + return; + } + // remove all pager active classes + slider.pagerEl.find('a').removeClass('active'); + // apply the active class for all pagers + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + }; + + /** + * Performs needed actions after a slide transition + */ + var updateAfterSlideTransition = function() { + // if infinite loop is true + if (slider.settings.infiniteLoop) { + var position = ''; + // first slide + if (slider.active.index === 0) { + // set the new position + position = slider.children.eq(0).position(); + // carousel, last slide + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); + // last slide + } else if (slider.active.index === slider.children.length - 1) { + position = slider.children.eq(slider.children.length - 1).position(); + } + if (position) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + // declare that the transition is complete + slider.working = false; + // onSlideAfter callback + slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + }; + + /** + * Updates the auto controls state (either active, or combined switch) + * + * @param state (string) "start", "stop" + * - the new state of the auto show + */ + var updateAutoControls = function(state) { + // if autoControlsCombine is true, replace the current control with the new state + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.html(slider.controls[state]); + // if autoControlsCombine is false, apply the "active" class to the appropriate control + } else { + slider.controls.autoEl.find('a').removeClass('active'); + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); + } + }; + + /** + * Updates the direction controls (checks if either should be hidden) + */ + var updateDirectionControls = function() { + if (getPagerQty() === 1) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.addClass('disabled'); + } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + // if first slide + if (slider.active.index === 0) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.removeClass('disabled'); + // if last slide + } else if (slider.active.index === getPagerQty() - 1) { + slider.controls.next.addClass('disabled'); + slider.controls.prev.removeClass('disabled'); + // if any slide in the middle + } else { + slider.controls.prev.removeClass('disabled'); + slider.controls.next.removeClass('disabled'); + } + } + }; + + /** + * Initializes the auto process + */ + var initAuto = function() { + // if autoDelay was supplied, launch the auto show using a setTimeout() call + if (slider.settings.autoDelay > 0) { + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); + // if autoDelay was not supplied, start the auto show normally + } else { + el.startAuto(); + + //add focus and blur events to ensure its running if timeout gets paused + $(window).focus(function() { + el.startAuto(); + }).blur(function() { + el.stopAuto(); + }); + } + // if autoHover is requested + if (slider.settings.autoHover) { + // on el hover + el.hover(function() { + // if the auto show is currently playing (has an active interval) + if (slider.interval) { + // stop the auto show and pass true argument which will prevent control update + el.stopAuto(true); + // create a new autoPaused value which will be used by the relative "mouseout" event + slider.autoPaused = true; + } + }, function() { + // if the autoPaused value was created be the prior "mouseover" event + if (slider.autoPaused) { + // start the auto show and pass true argument which will prevent control update + el.startAuto(true); + // reset the autoPaused value + slider.autoPaused = null; + } + }); + } + }; + + /** + * Initializes the ticker process + */ + var initTicker = function() { + var startPosition = 0, + position, transform, value, idx, ratio, property, newSpeed, totalDimens; + // if autoDirection is "next", append a clone of the entire slider + if (slider.settings.autoDirection === 'next') { + el.append(slider.children.clone().addClass('bx-clone')); + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + } else { + el.prepend(slider.children.clone().addClass('bx-clone')); + position = slider.children.first().position(); + startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + } + setPositionProperty(startPosition, 'reset', 0); + // do not allow controls in ticker mode + slider.settings.pager = false; + slider.settings.controls = false; + slider.settings.autoControls = false; + // if autoHover is requested + if (slider.settings.tickerHover) { + if (slider.usingCSS) { + idx = slider.settings.mode === 'horizontal' ? 4 : 5; + slider.viewport.hover(function() { + transform = el.css('-' + slider.cssPrefix + '-transform'); + value = parseFloat(transform.split(',')[idx]); + setPositionProperty(value, 'reset', 0); + }, function() { + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); + tickerLoop(newSpeed); + }); + } else { + // on el hover + slider.viewport.hover(function() { + el.stop(); + }, function() { + // calculate the total width of children (used to calculate the speed ratio) + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); + tickerLoop(newSpeed); + }); + } + } + // start the ticker loop + tickerLoop(); + }; + + /** + * Runs a continuous loop, news ticker-style + */ + var tickerLoop = function(resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, + position = {left: 0, top: 0}, + reset = {left: 0, top: 0}, + animateProperty, resetValue, params; + + // if "next" animate left position to last child, then reset left to 0 + if (slider.settings.autoDirection === 'next') { + position = el.find('.bx-clone').first().position(); + // if "prev" animate left position to 0, then reset left to first non-clone child + } else { + reset = slider.children.first().position(); + } + animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; + params = {resetValue: resetValue}; + setPositionProperty(animateProperty, 'ticker', speed, params); + }; + + /** + * Check if el is on screen + */ + var isOnScreen = function(el) { + var win = $(window), + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); + + viewport.right = viewport.left + win.width(); + viewport.bottom = viewport.top + win.height(); + bounds.right = bounds.left + el.outerWidth(); + bounds.bottom = bounds.top + el.outerHeight(); + + return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); + }; + + /** + * Initializes keyboard events + */ + var keyPress = function(e) { + var activeElementTag = document.activeElement.tagName.toLowerCase(), + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag,['i']), + result = p.exec(tagFilters); + + if (result == null && isOnScreen(el)) { + if (e.keyCode === 39) { + clickNextBind(e); + return false; + } else if (e.keyCode === 37) { + clickPrevBind(e); + return false; + } + } + }; + + /** + * Initializes touch events + */ + var initTouch = function() { + // initialize object to contain all touch values + slider.touch = { + start: {x: 0, y: 0}, + end: {x: 0, y: 0} + }; + slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); + + //for browsers that have implemented pointer events and fire a click after + //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not + slider.viewport.on('click', '.bxslider a', function(e) { + if (slider.viewport.hasClass('click-disabled')) { + e.preventDefault(); + slider.viewport.removeClass('click-disabled'); + } + }); + }; + + /** + * Event handler for "touchstart" + * + * @param e (event) + * - DOM event object + */ + var onTouchStart = function(e) { + //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls + slider.controls.el.addClass('disabled'); + + if (slider.working) { + e.preventDefault(); + slider.controls.el.removeClass('disabled'); + } else { + // record the original position when touch starts + slider.touch.originalPos = el.position(); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + // record the starting touch x, y coordinates + slider.touch.start.x = touchPoints[0].pageX; + slider.touch.start.y = touchPoints[0].pageY; + + if (slider.viewport.get(0).setPointerCapture) { + slider.pointerId = orig.pointerId; + slider.viewport.get(0).setPointerCapture(slider.pointerId); + } + // bind a "touchmove" event to the viewport + slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove); + // bind a "touchend" event to the viewport + slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd); + slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); + } + }; + + /** + * Cancel Pointer for Windows Phone + * + * @param e (event) + * - DOM event object + */ + var onPointerCancel = function(e) { + /* onPointerCancel handler is needed to deal with situations when a touchend + doesn't fire after a touchstart (this happens on windows phones only) */ + setPositionProperty(slider.touch.originalPos.left, 'reset', 0); + + //remove handlers + slider.controls.el.removeClass('disabled'); + slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Event handler for "touchmove" + * + * @param e (event) + * - DOM event object + */ + var onTouchMove = function(e) { + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; + + // x axis swipe + if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { + e.preventDefault(); + // y axis swipe + } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + e.preventDefault(); + } + if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { + // if horizontal, drag along x axis + if (slider.settings.mode === 'horizontal') { + change = touchPoints[0].pageX - slider.touch.start.x; + value = slider.touch.originalPos.left + change; + // if vertical, drag along y axis + } else { + change = touchPoints[0].pageY - slider.touch.start.y; + value = slider.touch.originalPos.top + change; + } + setPositionProperty(value, 'reset', 0); + } + }; + + /** + * Event handler for "touchend" + * + * @param e (event) + * - DOM event object + */ + var onTouchEnd = function(e) { + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + //enable slider controls as soon as user stops interacing with slides + slider.controls.el.removeClass('disabled'); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; + // record end x, y positions + slider.touch.end.x = touchPoints[0].pageX; + slider.touch.end.y = touchPoints[0].pageY; + // if fade mode, check if absolute x distance clears the threshold + if (slider.settings.mode === 'fade') { + distance = Math.abs(slider.touch.start.x - slider.touch.end.x); + if (distance >= slider.settings.swipeThreshold) { + if (slider.touch.start.x > slider.touch.end.x) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } + // not fade mode + } else { + // calculate distance and el's animate property + if (slider.settings.mode === 'horizontal') { + distance = slider.touch.end.x - slider.touch.start.x; + value = slider.touch.originalPos.left; + } else { + distance = slider.touch.end.y - slider.touch.start.y; + value = slider.touch.originalPos.top; + } + // if not infinite loop and first / last slide, do not attempt a slide transition + if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { + setPositionProperty(value, 'reset', 200); + } else { + // check if distance clears threshold + if (Math.abs(distance) >= slider.settings.swipeThreshold) { + if (distance < 0) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } else { + // el.animate(property, 200); + setPositionProperty(value, 'reset', 200); + } + } + } + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Window resize event callback + */ + var resizeWindow = function(e) { + // don't do anything if slider isn't initialized. + if (!slider.initialized) { return; } + // Delay if slider working. + if (slider.working) { + window.setTimeout(resizeWindow, 10); + } else { + // get the new window dimens (again, thank you IE) + var windowWidthNew = $(window).width(), + windowHeightNew = $(window).height(); + // make sure that it is a true window resize + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements + // are resized. Can you just die already?* + if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) { + // set the new window dimens + windowWidth = windowWidthNew; + windowHeight = windowHeightNew; + // update all dynamic elements + el.redrawSlider(); + // Call user resize handler + slider.settings.onSliderResize.call(el, slider.active.index); + } + } + }; + + /** + * Adds an aria-hidden=true attribute to each element + * + * @param startVisibleIndex (int) + * - the first visible element's index + */ + var applyAriaHiddenAttributes = function(startVisibleIndex) { + var numberOfSlidesShowing = getNumberSlidesShowing(); + // only apply attributes if the setting is enabled and not in ticker mode + if (slider.settings.ariaHidden && !slider.settings.ticker) { + // add aria-hidden=true to all elements + slider.children.attr('aria-hidden', 'true'); + // get the visible elements and change to aria-hidden=false + slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); + } + }; + + /** + * Returns index according to present page range + * + * @param slideOndex (int) + * - the desired slide index + */ + var setSlideIndex = function(slideIndex) { + if (slideIndex < 0) { + if (slider.settings.infiniteLoop) { + return getPagerQty() - 1; + }else { + //we don't go to undefined slides + return slider.active.index; + } + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + } else if (slideIndex >= getPagerQty()) { + if (slider.settings.infiniteLoop) { + return 0; + } else { + //we don't move to undefined pages + return slider.active.index; + } + // set active index to requested slide + } else { + return slideIndex; + } + }; + + /** + * =================================================================================== + * = PUBLIC FUNCTIONS + * =================================================================================== + */ + + /** + * Performs slide transition to the specified slide + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + */ + el.goToSlide = function(slideIndex, direction) { + // onSlideBefore, onSlideNext, onSlidePrev callbacks + // Allow transition canceling based on returned value + var performTransition = true, + moveBy = 0, + position = {left: 0, top: 0}, + lastChild = null, + lastShowingIndex, eq, value, requestEl; + // store the old index + slider.oldIndex = slider.active.index; + //set new index + slider.active.index = setSlideIndex(slideIndex); + + // if plugin is currently in motion, ignore request + if (slider.working || slider.active.index === slider.oldIndex) { return; } + // declare that plugin is in motion + slider.working = true; + + performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + + // If transitions canceled, reset and return + if (typeof (performTransition) !== 'undefined' && !performTransition) { + slider.active.index = slider.oldIndex; // restore old index + slider.working = false; // is not in motion + return; + } + + if (direction === 'next') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } else if (direction === 'prev') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } + + // check if last slide + slider.active.last = slider.active.index >= getPagerQty() - 1; + // update the pager with active class + if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + // // check for direction control update + if (slider.settings.controls) { updateDirectionControls(); } + // if slider is set to mode: "fade" + if (slider.settings.mode === 'fade') { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // fade out the visible child and reset its z-index value + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + // fade in the newly requested slide + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { + $(this).css('zIndex', slider.settings.slideZIndex); + updateAfterSlideTransition(); + }); + // slider mode is not "fade" + } else { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // if carousel and not infinite loop + if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { + if (slider.settings.mode === 'horizontal') { + // get the last child position + lastChild = slider.children.eq(slider.children.length - 1); + position = lastChild.position(); + // calculate the position of the last slide + moveBy = slider.viewport.width() - lastChild.outerWidth(); + } else { + // get last showing index position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + } + // horizontal carousel, going previous while on first slide (infiniteLoop mode) + } else if (slider.carousel && slider.active.last && direction === 'prev') { + // get the last child position + eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); + lastChild = el.children('.bx-clone').eq(eq); + position = lastChild.position(); + // if infinite loop and "Next" is clicked on the last slide + } else if (direction === 'next' && slider.active.index === 0) { + // get the last clone position + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); + slider.active.last = false; + // normal non-zero requests + } else if (slideIndex >= 0) { + //parseInt is applied to allow floats for slides/page + requestEl = slideIndex * parseInt(getMoveBy()); + position = slider.children.eq(requestEl).position(); + } + + /* If the position doesn't exist + * (e.g. if you destroy the slider on a next click), + * it doesn't throw an error. + */ + if (typeof (position) !== 'undefined') { + value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; + // plugin values to be animated + setPositionProperty(value, 'slide', slider.settings.speed); + } else { + slider.working = false; + } + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.last) { return; } + var pagerIndex = parseInt(slider.active.index) + 1; + el.goToSlide(pagerIndex, 'next'); + }; + + /** + * Transitions to the prev slide in the show + */ + el.goToPrevSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + var pagerIndex = parseInt(slider.active.index) - 1; + el.goToSlide(pagerIndex, 'prev'); + }; + + /** + * Starts the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.startAuto = function(preventControlUpdate) { + // if an interval already exists, disregard call + if (slider.interval) { return; } + // create an interval + slider.interval = setInterval(function() { + if (slider.settings.autoDirection === 'next') { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + }, slider.settings.pause); + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + }; + + /** + * Stops the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.stopAuto = function(preventControlUpdate) { + // if no interval exists, disregard call + if (!slider.interval) { return; } + // clear the interval + clearInterval(slider.interval); + slider.interval = null; + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + }; + + /** + * Returns current slide index (zero-based) + */ + el.getCurrentSlide = function() { + return slider.active.index; + }; + + /** + * Returns current slide element + */ + el.getCurrentSlideElement = function() { + return slider.children.eq(slider.active.index); + }; + + /** + * Returns a slide element + * @param index (int) + * - The index (zero-based) of the element you want returned. + */ + el.getSlideElement = function(index) { + return slider.children.eq(index); + }; + + /** + * Returns number of slides in show + */ + el.getSlideCount = function() { + return slider.children.length; + }; + + /** + * Return slider.working variable + */ + el.isWorking = function() { + return slider.working; + }; + + /** + * Update all dynamic slider elements + */ + el.redrawSlider = function() { + // resize all children in ratio to new screen size + slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); + // adjust the height + slider.viewport.css('height', getViewportHeight()); + // update the slide position + if (!slider.settings.ticker) { setSlidePosition(); } + // if active.last was true before the screen resize, we want + // to keep it last no matter what screen size we end on + if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + // if the active index (page) no longer exists due to the resize, simply set the index as last + if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + // if a pager is being displayed and a custom pager is not being used, update it + if (slider.settings.pager && !slider.settings.pagerCustom) { + populatePager(); + updatePagerActive(slider.active.index); + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Destroy the current instance of the slider (revert everything back to original state) + */ + el.destroySlider = function() { + // don't do anything if slider has already been destroyed + if (!slider.initialized) { return; } + slider.initialized = false; + $('.bx-clone', this).remove(); + slider.children.each(function() { + if ($(this).data('origStyle') !== undefined) { + $(this).attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + }); + if ($(this).data('origStyle') !== undefined) { + this.attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + $(this).unwrap().unwrap(); + if (slider.controls.el) { slider.controls.el.remove(); } + if (slider.controls.next) { slider.controls.next.remove(); } + if (slider.controls.prev) { slider.controls.prev.remove(); } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + $('.bx-caption', this).remove(); + if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + clearInterval(slider.interval); + if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } + if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + //remove self reference in data + $(this).removeData('bxSlider'); + }; + + /** + * Reload the slider (revert all DOM changes, and re-initialize) + */ + el.reloadSlider = function(settings) { + if (settings !== undefined) { options = settings; } + el.destroySlider(); + init(); + //store reference to self in order to access public functions later + $(el).data('bxSlider', this); + }; + + init(); + + $(el).data('bxSlider', this); + + // returns the current jQuery object + return this; + }; + +})(jQuery); diff --git a/assets/bxSlider/jquery.bxslider.min.css b/assets/bxSlider/jquery.bxslider.min.css new file mode 100644 index 0000000..a91cb96 --- /dev/null +++ b/assets/bxSlider/jquery.bxslider.min.css @@ -0,0 +1 @@ +.bx-wrapper{position:relative;margin-bottom:60px;padding:0;-ms-touch-action:pan-y;touch-action:pan-y;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;vertical-align:bottom}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) 0 -32px no-repeat}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) -43px -32px no-repeat}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} \ No newline at end of file diff --git a/assets/bxSlider/jquery.bxslider.min.js b/assets/bxSlider/jquery.bxslider.min.js new file mode 100644 index 0000000..16e64c0 --- /dev/null +++ b/assets/bxSlider/jquery.bxslider.min.js @@ -0,0 +1,7 @@ +/** + * bxSlider v4.2.12 + * Copyright 2013-2015 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ +!function(t){var e={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};t.fn.bxSlider=function(n){if(0===this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var s={},o=this,r=t(window).width(),a=t(window).height();if(!t(o).data("bxSlider")){var l=function(){t(o).data("bxSlider")||(s.settings=t.extend({},e,n),s.settings.slideWidth=parseInt(s.settings.slideWidth),s.children=o.children(s.settings.slideSelector),s.children.length1||s.settings.maxSlides>1,s.carousel&&(s.settings.preloadImages="all"),s.minThreshold=s.settings.minSlides*s.settings.slideWidth+(s.settings.minSlides-1)*s.settings.slideMargin,s.maxThreshold=s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin,s.working=!1,s.controls={},s.interval=null,s.animProp="vertical"===s.settings.mode?"top":"left",s.usingCSS=s.settings.useCSS&&"fade"!==s.settings.mode&&function(){for(var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],i=0;i
'),s.viewport=o.parent(),s.settings.ariaLive&&!s.settings.ticker&&s.viewport.attr("aria-live","polite"),s.loader=t('
'),s.viewport.prepend(s.loader),o.css({width:"horizontal"===s.settings.mode?1e3*s.children.length+215+"%":"auto",position:"relative"}),s.usingCSS&&s.settings.easing?o.css("-"+s.cssPrefix+"-transition-timing-function",s.settings.easing):s.settings.easing||(s.settings.easing="swing"),s.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),s.viewport.parent().css({maxWidth:u()}),s.children.css({float:"horizontal"===s.settings.mode?"left":"none",listStyle:"none",position:"relative"}),s.children.css("width",h()),"horizontal"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginRight",s.settings.slideMargin),"vertical"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginBottom",s.settings.slideMargin),"fade"===s.settings.mode&&(s.children.css({position:"absolute",zIndex:0,display:"none"}),s.children.eq(s.settings.startSlide).css({zIndex:s.settings.slideZIndex,display:"block"})),s.controls.el=t('
'),s.settings.captions&&P(),s.active.last=s.settings.startSlide===f()-1,s.settings.video&&o.fitVids(),("all"===s.settings.preloadImages||s.settings.ticker)&&(e=s.children),s.settings.ticker?s.settings.pager=!1:(s.settings.controls&&C(),s.settings.auto&&s.settings.autoControls&&T(),s.settings.pager&&w(),(s.settings.controls||s.settings.autoControls||s.settings.pager)&&s.viewport.after(s.controls.el)),c(e,g)},c=function(e,i){var n=e.find('img:not([src=""]), iframe').length,s=0;return 0===n?void i():void e.find('img:not([src=""]), iframe').each(function(){t(this).one("load error",function(){++s===n&&i()}).each(function(){this.complete&&t(this).trigger("load")})})},g=function(){if(s.settings.infiniteLoop&&"fade"!==s.settings.mode&&!s.settings.ticker){var e="vertical"===s.settings.mode?s.settings.minSlides:s.settings.maxSlides,i=s.children.slice(0,e).clone(!0).addClass("bx-clone"),n=s.children.slice(-e).clone(!0).addClass("bx-clone");s.settings.ariaHidden&&(i.attr("aria-hidden",!0),n.attr("aria-hidden",!0)),o.append(i).prepend(n)}s.loader.remove(),m(),"vertical"===s.settings.mode&&(s.settings.adaptiveHeight=!0),s.viewport.height(p()),o.redrawSlider(),s.settings.onSliderLoad.call(o,s.active.index),s.initialized=!0,s.settings.responsive&&t(window).bind("resize",Z),s.settings.auto&&s.settings.autoStart&&(f()>1||s.settings.autoSlideForOnePage)&&H(),s.settings.ticker&&W(),s.settings.pager&&I(s.settings.startSlide),s.settings.controls&&D(),s.settings.touchEnabled&&!s.settings.ticker&&N(),s.settings.keyboardEnabled&&!s.settings.ticker&&t(document).keydown(F)},p=function(){var e=0,n=t();if("vertical"===s.settings.mode||s.settings.adaptiveHeight)if(s.carousel){var o=1===s.settings.moveSlides?s.active.index:s.active.index*x();for(n=s.children.eq(o),i=1;i<=s.settings.maxSlides-1;i++)n=o+i>=s.children.length?n.add(s.children.eq(i-1)):n.add(s.children.eq(o+i))}else n=s.children.eq(s.active.index);else n=s.children;return"vertical"===s.settings.mode?(n.each(function(i){e+=t(this).outerHeight()}),s.settings.slideMargin>0&&(e+=s.settings.slideMargin*(s.settings.minSlides-1))):e=Math.max.apply(Math,n.map(function(){return t(this).outerHeight(!1)}).get()),"border-box"===s.viewport.css("box-sizing")?e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))+parseFloat(s.viewport.css("border-top-width"))+parseFloat(s.viewport.css("border-bottom-width")):"padding-box"===s.viewport.css("box-sizing")&&(e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))),e},u=function(){var t="100%";return s.settings.slideWidth>0&&(t="horizontal"===s.settings.mode?s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin:s.settings.slideWidth),t},h=function(){var t=s.settings.slideWidth,e=s.viewport.width();if(0===s.settings.slideWidth||s.settings.slideWidth>e&&!s.carousel||"vertical"===s.settings.mode)t=e;else if(s.settings.maxSlides>1&&"horizontal"===s.settings.mode){if(e>s.maxThreshold)return t;e0?s.viewport.width()s.maxThreshold?t=s.settings.maxSlides:(e=s.children.first().width()+s.settings.slideMargin,t=Math.floor((s.viewport.width()+s.settings.slideMargin)/e)):"vertical"===s.settings.mode&&(t=s.settings.minSlides),t},f=function(){var t=0,e=0,i=0;if(s.settings.moveSlides>0)if(s.settings.infiniteLoop)t=Math.ceil(s.children.length/x());else for(;e0&&s.settings.moveSlides<=v()?s.settings.moveSlides:v()},m=function(){var t,e,i;s.children.length>s.settings.maxSlides&&s.active.last&&!s.settings.infiniteLoop?"horizontal"===s.settings.mode?(e=s.children.last(),t=e.position(),S(-(t.left-(s.viewport.width()-e.outerWidth())),"reset",0)):"vertical"===s.settings.mode&&(i=s.children.length-s.settings.minSlides,t=s.children.eq(i).position(),S(-t.top,"reset",0)):(t=s.children.eq(s.active.index*x()).position(),s.active.index===f()-1&&(s.active.last=!0),void 0!==t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0)))},S=function(e,i,n,r){var a,l;s.usingCSS?(l="vertical"===s.settings.mode?"translate3d(0, "+e+"px, 0)":"translate3d("+e+"px, 0, 0)",o.css("-"+s.cssPrefix+"-transition-duration",n/1e3+"s"),"slide"===i?(o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),q())}):q()):"reset"===i?o.css(s.animProp,l):"ticker"===i&&(o.css("-"+s.cssPrefix+"-transition-timing-function","linear"),o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),S(r.resetValue,"reset",0),L())}):(S(r.resetValue,"reset",0),L()))):(a={},a[s.animProp]=e,"slide"===i?o.animate(a,n,s.settings.easing,function(){q()}):"reset"===i?o.css(s.animProp,e):"ticker"===i&&o.animate(a,n,"linear",function(){S(r.resetValue,"reset",0),L()}))},b=function(){for(var e="",i="",n=f(),o=0;o'+i+"
";s.pagerEl.html(e)},w=function(){s.settings.pagerCustom?s.pagerEl=t(s.settings.pagerCustom):(s.pagerEl=t('
'),s.settings.pagerSelector?t(s.settings.pagerSelector).html(s.pagerEl):s.controls.el.addClass("bx-has-pager").append(s.pagerEl),b()),s.pagerEl.on("click touchend","a",z)},C=function(){s.controls.next=t(''+s.settings.nextText+""),s.controls.prev=t(''+s.settings.prevText+""),s.controls.next.bind("click touchend",E),s.controls.prev.bind("click touchend",k),s.settings.nextSelector&&t(s.settings.nextSelector).append(s.controls.next),s.settings.prevSelector&&t(s.settings.prevSelector).append(s.controls.prev),s.settings.nextSelector||s.settings.prevSelector||(s.controls.directionEl=t('
'),s.controls.directionEl.append(s.controls.prev).append(s.controls.next),s.controls.el.addClass("bx-has-controls-direction").append(s.controls.directionEl))},T=function(){s.controls.start=t('"),s.controls.stop=t('"),s.controls.autoEl=t('
'),s.controls.autoEl.on("click",".bx-start",M),s.controls.autoEl.on("click",".bx-stop",y),s.settings.autoControlsCombine?s.controls.autoEl.append(s.controls.start):s.controls.autoEl.append(s.controls.start).append(s.controls.stop),s.settings.autoControlsSelector?t(s.settings.autoControlsSelector).html(s.controls.autoEl):s.controls.el.addClass("bx-has-controls-auto").append(s.controls.autoEl),A(s.settings.autoStart?"stop":"start")},P=function(){s.children.each(function(e){var i=t(this).find("img:first").attr("title");void 0!==i&&(""+i).length&&t(this).append('
'+i+"
")})},E=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToNextSlide())},k=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToPrevSlide())},M=function(t){o.startAuto(),t.preventDefault()},y=function(t){o.stopAuto(),t.preventDefault()},z=function(e){var i,n;e.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),i=t(e.currentTarget),void 0!==i.attr("data-slide-index")&&(n=parseInt(i.attr("data-slide-index")),n!==s.active.index&&o.goToSlide(n)))},I=function(e){var i=s.children.length;return"short"===s.settings.pagerType?(s.settings.maxSlides>1&&(i=Math.ceil(s.children.length/s.settings.maxSlides)),void s.pagerEl.html(e+1+s.settings.pagerShortSeparator+i)):(s.pagerEl.find("a").removeClass("active"),void s.pagerEl.each(function(i,n){t(n).find("a").eq(e).addClass("active")}))},q=function(){if(s.settings.infiniteLoop){var t="";0===s.active.index?t=s.children.eq(0).position():s.active.index===f()-1&&s.carousel?t=s.children.eq((f()-1)*x()).position():s.active.index===s.children.length-1&&(t=s.children.eq(s.children.length-1).position()),t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0))}s.working=!1,s.settings.onSlideAfter.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)},A=function(t){s.settings.autoControlsCombine?s.controls.autoEl.html(s.controls[t]):(s.controls.autoEl.find("a").removeClass("active"),s.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},D=function(){1===f()?(s.controls.prev.addClass("disabled"),s.controls.next.addClass("disabled")):!s.settings.infiniteLoop&&s.settings.hideControlOnEnd&&(0===s.active.index?(s.controls.prev.addClass("disabled"),s.controls.next.removeClass("disabled")):s.active.index===f()-1?(s.controls.next.addClass("disabled"),s.controls.prev.removeClass("disabled")):(s.controls.prev.removeClass("disabled"),s.controls.next.removeClass("disabled")))},H=function(){if(s.settings.autoDelay>0){setTimeout(o.startAuto,s.settings.autoDelay)}else o.startAuto(),t(window).focus(function(){o.startAuto()}).blur(function(){o.stopAuto()});s.settings.autoHover&&o.hover(function(){s.interval&&(o.stopAuto(!0),s.autoPaused=!0)},function(){s.autoPaused&&(o.startAuto(!0),s.autoPaused=null)})},W=function(){var e,i,n,r,a,l,d,c,g=0;"next"===s.settings.autoDirection?o.append(s.children.clone().addClass("bx-clone")):(o.prepend(s.children.clone().addClass("bx-clone")),e=s.children.first().position(),g="horizontal"===s.settings.mode?-e.left:-e.top),S(g,"reset",0),s.settings.pager=!1,s.settings.controls=!1,s.settings.autoControls=!1,s.settings.tickerHover&&(s.usingCSS?(r="horizontal"===s.settings.mode?4:5,s.viewport.hover(function(){i=o.css("-"+s.cssPrefix+"-transform"),n=parseFloat(i.split(",")[r]),S(n,"reset",0)},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(n))),L(d)})):s.viewport.hover(function(){o.stop()},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(o.css(l)))),L(d)})),L()},L=function(t){var e,i,n,r=t?t:s.settings.speed,a={left:0,top:0},l={left:0,top:0};"next"===s.settings.autoDirection?a=o.find(".bx-clone").first().position():l=s.children.first().position(),e="horizontal"===s.settings.mode?-a.left:-a.top,i="horizontal"===s.settings.mode?-l.left:-l.top,n={resetValue:i},S(e,"ticker",r,n)},O=function(e){var i=t(window),n={top:i.scrollTop(),left:i.scrollLeft()},s=e.offset();return n.right=n.left+i.width(),n.bottom=n.top+i.height(),s.right=s.left+e.outerWidth(),s.bottom=s.top+e.outerHeight(),!(n.rights.right||n.bottoms.bottom)},F=function(t){var e=document.activeElement.tagName.toLowerCase(),i="input|textarea",n=new RegExp(e,["i"]),s=n.exec(i);if(null==s&&O(o)){if(39===t.keyCode)return E(t),!1;if(37===t.keyCode)return k(t),!1}},N=function(){s.touch={start:{x:0,y:0},end:{x:0,y:0}},s.viewport.bind("touchstart MSPointerDown pointerdown",X),s.viewport.on("click",".bxslider a",function(t){s.viewport.hasClass("click-disabled")&&(t.preventDefault(),s.viewport.removeClass("click-disabled"))})},X=function(t){if(s.controls.el.addClass("disabled"),s.working)t.preventDefault(),s.controls.el.removeClass("disabled");else{s.touch.originalPos=o.position();var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e];s.touch.start.x=i[0].pageX,s.touch.start.y=i[0].pageY,s.viewport.get(0).setPointerCapture&&(s.pointerId=e.pointerId,s.viewport.get(0).setPointerCapture(s.pointerId)),s.viewport.bind("touchmove MSPointerMove pointermove",V),s.viewport.bind("touchend MSPointerUp pointerup",R),s.viewport.bind("MSPointerCancel pointercancel",Y)}},Y=function(t){S(s.touch.originalPos.left,"reset",0),s.controls.el.removeClass("disabled"),s.viewport.unbind("MSPointerCancel pointercancel",Y),s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},V=function(t){var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=Math.abs(i[0].pageX-s.touch.start.x),o=Math.abs(i[0].pageY-s.touch.start.y),r=0,a=0;3*n>o&&s.settings.preventDefaultSwipeX?t.preventDefault():3*o>n&&s.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!==s.settings.mode&&s.settings.oneToOneTouch&&("horizontal"===s.settings.mode?(a=i[0].pageX-s.touch.start.x,r=s.touch.originalPos.left+a):(a=i[0].pageY-s.touch.start.y,r=s.touch.originalPos.top+a),S(r,"reset",0))},R=function(t){s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.controls.el.removeClass("disabled");var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=0,r=0;s.touch.end.x=i[0].pageX,s.touch.end.y=i[0].pageY,"fade"===s.settings.mode?(r=Math.abs(s.touch.start.x-s.touch.end.x),r>=s.settings.swipeThreshold&&(s.touch.start.x>s.touch.end.x?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto())):("horizontal"===s.settings.mode?(r=s.touch.end.x-s.touch.start.x,n=s.touch.originalPos.left):(r=s.touch.end.y-s.touch.start.y,n=s.touch.originalPos.top),!s.settings.infiniteLoop&&(0===s.active.index&&r>0||s.active.last&&r<0)?S(n,"reset",200):Math.abs(r)>=s.settings.swipeThreshold?(r<0?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto()):S(n,"reset",200)),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},Z=function(e){if(s.initialized)if(s.working)window.setTimeout(Z,10);else{var i=t(window).width(),n=t(window).height();r===i&&a===n||(r=i,a=n,o.redrawSlider(),s.settings.onSliderResize.call(o,s.active.index))}},B=function(t){var e=v();s.settings.ariaHidden&&!s.settings.ticker&&(s.children.attr("aria-hidden","true"),s.children.slice(t,t+e).attr("aria-hidden","false"))},U=function(t){return t<0?s.settings.infiniteLoop?f()-1:s.active.index:t>=f()?s.settings.infiniteLoop?0:s.active.index:t};return o.goToSlide=function(e,i){var n,r,a,l,d=!0,c=0,g={left:0,top:0},u=null;if(s.oldIndex=s.active.index,s.active.index=U(e),!s.working&&s.active.index!==s.oldIndex){if(s.working=!0,d=s.settings.onSlideBefore.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index),"undefined"!=typeof d&&!d)return s.active.index=s.oldIndex,void(s.working=!1);"next"===i?s.settings.onSlideNext.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1):"prev"===i&&(s.settings.onSlidePrev.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1)),s.active.last=s.active.index>=f()-1,(s.settings.pager||s.settings.pagerCustom)&&I(s.active.index),s.settings.controls&&D(),"fade"===s.settings.mode?(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),s.children.filter(":visible").fadeOut(s.settings.speed).css({zIndex:0}),s.children.eq(s.active.index).css("zIndex",s.settings.slideZIndex+1).fadeIn(s.settings.speed,function(){t(this).css("zIndex",s.settings.slideZIndex),q()})):(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),!s.settings.infiniteLoop&&s.carousel&&s.active.last?"horizontal"===s.settings.mode?(u=s.children.eq(s.children.length-1),g=u.position(),c=s.viewport.width()-u.outerWidth()):(n=s.children.length-s.settings.minSlides,g=s.children.eq(n).position()):s.carousel&&s.active.last&&"prev"===i?(r=1===s.settings.moveSlides?s.settings.maxSlides-x():(f()-1)*x()-(s.children.length-s.settings.maxSlides),u=o.children(".bx-clone").eq(r),g=u.position()):"next"===i&&0===s.active.index?(g=o.find("> .bx-clone").eq(s.settings.maxSlides).position(),s.active.last=!1):e>=0&&(l=e*parseInt(x()),g=s.children.eq(l).position()),"undefined"!=typeof g?(a="horizontal"===s.settings.mode?-(g.left-c):-g.top,S(a,"slide",s.settings.speed)):s.working=!1),s.settings.ariaHidden&&B(s.active.index*x())}},o.goToNextSlide=function(){if(s.settings.infiniteLoop||!s.active.last){var t=parseInt(s.active.index)+1;o.goToSlide(t,"next")}},o.goToPrevSlide=function(){if(s.settings.infiniteLoop||0!==s.active.index){var t=parseInt(s.active.index)-1;o.goToSlide(t,"prev")}},o.startAuto=function(t){s.interval||(s.interval=setInterval(function(){"next"===s.settings.autoDirection?o.goToNextSlide():o.goToPrevSlide()},s.settings.pause),s.settings.autoControls&&t!==!0&&A("stop"))},o.stopAuto=function(t){s.interval&&(clearInterval(s.interval),s.interval=null,s.settings.autoControls&&t!==!0&&A("start"))},o.getCurrentSlide=function(){return s.active.index},o.getCurrentSlideElement=function(){return s.children.eq(s.active.index)},o.getSlideElement=function(t){return s.children.eq(t)},o.getSlideCount=function(){return s.children.length},o.isWorking=function(){return s.working},o.redrawSlider=function(){s.children.add(o.find(".bx-clone")).outerWidth(h()),s.viewport.css("height",p()),s.settings.ticker||m(),s.active.last&&(s.active.index=f()-1),s.active.index>=f()&&(s.active.last=!0),s.settings.pager&&!s.settings.pagerCustom&&(b(),I(s.active.index)),s.settings.ariaHidden&&B(s.active.index*x())},o.destroySlider=function(){s.initialized&&(s.initialized=!1,t(".bx-clone",this).remove(),s.children.each(function(){void 0!==t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!==t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),s.controls.el&&s.controls.el.remove(),s.controls.next&&s.controls.next.remove(),s.controls.prev&&s.controls.prev.remove(),s.pagerEl&&s.settings.controls&&!s.settings.pagerCustom&&s.pagerEl.remove(),t(".bx-caption",this).remove(),s.controls.autoEl&&s.controls.autoEl.remove(),clearInterval(s.interval),s.settings.responsive&&t(window).unbind("resize",Z),s.settings.keyboardEnabled&&t(document).unbind("keydown",F),t(this).removeData("bxSlider"))},o.reloadSlider=function(e){void 0!==e&&(n=e),o.destroySlider(),l(),t(o).data("bxSlider",this)},l(),t(o).data("bxSlider",this),this}}}(jQuery); \ No newline at end of file diff --git a/assets/bxSlider/vendor/jquery.easing.1.3.js b/assets/bxSlider/vendor/jquery.easing.1.3.js new file mode 100644 index 0000000..ef74321 --- /dev/null +++ b/assets/bxSlider/vendor/jquery.easing.1.3.js @@ -0,0 +1,205 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +jQuery.easing['jswing'] = jQuery.easing['swing']; + +jQuery.extend( jQuery.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert(jQuery.easing.default); + return jQuery.easing[jQuery.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ \ No newline at end of file diff --git a/assets/bxSlider/vendor/jquery.fitvids.js b/assets/bxSlider/vendor/jquery.fitvids.js new file mode 100644 index 0000000..d464f93 --- /dev/null +++ b/assets/bxSlider/vendor/jquery.fitvids.js @@ -0,0 +1,80 @@ +/*global jQuery */ +/*jshint multistr:true browser:true */ +/*! +* FitVids 1.0 +* +* Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com +* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ +* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ +* +* Date: Thu Sept 01 18:00:00 2011 -0500 +*/ + +(function( $ ){ + + "use strict"; + + $.fn.fitVids = function( options ) { + var settings = { + customSelector: null + }; + + var div = document.createElement('div'), + ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0]; + + div.className = 'fit-vids-style'; + div.innerHTML = '­'; + + ref.parentNode.insertBefore(div,ref); + + if ( options ) { + $.extend( settings, options ); + } + + return this.each(function(){ + var selectors = [ + "iframe[src*='player.vimeo.com']", + "iframe[src*='www.youtube.com']", + "iframe[src*='www.kickstarter.com']", + "object", + "embed" + ]; + + if (settings.customSelector) { + selectors.push(settings.customSelector); + } + + var $allVideos = $(this).find(selectors.join(',')); + + $allVideos.each(function(){ + var $this = $(this); + if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } + var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), + width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), + aspectRatio = height / width; + if(!$this.attr('id')){ + var videoID = 'fitvid' + Math.floor(Math.random()*999999); + $this.attr('id', videoID); + } + $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%"); + $this.removeAttr('height').removeAttr('width'); + }); + }); + }; +})( jQuery ); diff --git a/assets/core/core.js b/assets/core/core.js index fa41c59..01b429a 100644 --- a/assets/core/core.js +++ b/assets/core/core.js @@ -80,8 +80,11 @@ kit.config = kit.config || {}; plugin = this.plugins[pluginId] = defaultPlugin; } + /** + * @todo !!! + */ if( - this.__checkState(pluginId, stateList.installed) || + (this.__checkState(pluginId, stateList.installed) && typeof config.loader === 'function') || ( (plugin.stateInit.loading || this.__checkState(pluginId, stateList.loaded)) && typeof config === 'object' ) @@ -96,6 +99,13 @@ kit.config = kit.config || {}; config = plugin.config; config.loader = loader; config.type = 'loader'; + if(this.__checkState(pluginId, stateList.registered)) { + plugin.stateInit.installing = false; + plugin.state = stateList.registered; + if(plugin.config.autoRequire) { + this.require(pluginId); + } + } } if(typeof config === 'object') { @@ -152,6 +162,10 @@ kit.config = kit.config || {}; if(!this.__checkState(pluginId, stateList.registered)) { plugin.state = stateList.registered; plugin.config.onRegister(plugin); + var event = new CustomEvent("onRegister" + plugin.id + "Plugin", { + "detail": {plugin: plugin} + }); + document.dispatchEvent(event); } return true; @@ -227,12 +241,13 @@ kit.config = kit.config || {}; var loadNode = getFileLoadNode(src); if (loadNode) { global.config.debug && console.warn(`Скрипт ${src} уже загружен`); - self.__ready(resolve, [loadNode]); + // self.__ready(resolve, [loadNode]); + resolve(); } else { - script = document.createElement('script'); + var script = document.createElement('script'); script.src = '' + src + '?__pm' + (new Date()).getTime(); - script.onload = () => resolve(script); - script.onerror = () => reject(new Error(`Ошибка загрузки скрипта ${src}`)); + script.onload = function() {resolve(script);}; + script.onerror = function() {reject(new Error(`Ошибка загрузки скрипта ${src}`));}; document.head.append(script); } }).then(resolveCallback, rejectCallback); @@ -260,8 +275,9 @@ kit.config = kit.config || {}; var loadNode = getFileLoadNode(src); if(loadNode){ self.__ready(resolve, [src, true]); + // resolve(src, true); } else { - script = document.createElement('script'); + var script = document.createElement('script'); script.src = '' + src + '?__pm' + (new Date()).getTime(); script.onload = () => checkResolve(src, true); script.onerror = () => checkResolve(src, false); @@ -276,7 +292,8 @@ kit.config = kit.config || {}; var loadNode = getFileLoadNode(src); if(loadNode) { global.config.debug && console.warn(`Стиль ${src} уже загружен`); - self.__ready(resolve, [src]); + // self.__ready(resolve, [src]); + resolve(); } else { var link = document.createElement('link'); link.rel = 'stylesheet'; @@ -322,14 +339,15 @@ kit.config = kit.config || {}; }.bind(this); var setSkipLoadPromise = function (depsPromise) { - var noJsPromise, noImportPromise; + var jsPromiseExists = true, importPromiseExists = true; if(configModule.js.length === 0) { - noJsPromise = true; + jsPromiseExists = false; } if((!configModule.module && configModule.type === 'import') || (configModule.type === 'loader' && typeof configModule.loader === 'function')) { - noImportPromise = true; + importPromiseExists = false; } - plugin.skipLoadPromise = noImportPromise && noJsPromise && !depsPromise; + plugin.skipLoadPromise = !importPromiseExists && !jsPromiseExists && !depsPromise; + return plugin.skipLoadPromise; }.bind(this); @@ -358,6 +376,10 @@ kit.config = kit.config || {}; plugin.state = stateList.loaded; plugin.skipLoadPromise = true; configModule.onLoad.call(plugin.module.exports); + var event = new CustomEvent("onLoad" + plugin.id + "Plugin", { + "detail": {plugin: plugin} + }); + document.dispatchEvent(event); callback(); }.bind(this)); @@ -420,20 +442,37 @@ kit.config = kit.config || {}; }.bind(this)) } }.bind(this); + var installed = false; + /** + * @todo !!! + */ if(plugin.config.type === moduleTypeList.loader && typeof plugin.config.loader === 'function') { - var returnData = plugin.config.loader.bind(module.exports).call(module.exports, module, module.exports, this.require.bind(this), global); + // var returnData = plugin.config.loader.bind(module.exports).call(module.exports, module, module.exports, this.require.bind(this), global); + var returnData = plugin.config.loader.bind(window).call(module.exports, module, module.exports, this.require.bind(this), global); setGlobalExtension(pluginId, plugin.config.alias, returnData); - + installed = true; } else if(plugin.config.type === moduleTypeList.import && typeof plugin.config.module === 'string') { setGlobalExtension(pluginId, plugin.config.alias, (typeof module.exports === 'object' && module.exports.default !== undefined)?module.exports.default:module.exports); + installed = true; } - console.log('%cPluginManager.install: plugin ' + pluginId + ' установлен', "color: green;"); - plugin.state = stateList.installed; + if(installed){ + console.log('%cPluginManager.install: plugin ' + pluginId + ' установлен', "color: green;"); + plugin.state = stateList.installed; + } + + return installed; }.bind(this); this.__exec(pluginId, function(){ - installer(); - plugin.config.onInstall.call(module.exports, plugin); + if(!this.__checkState(pluginId, stateList.installed)) { + if(installer()){ + plugin.config.onInstall.call(module.exports, plugin); + var event = new CustomEvent("onInstall" + plugin.id + "Plugin", { + "detail": {plugin: plugin} + }); + document.dispatchEvent(event); + } + } callback(); }.bind(this)); @@ -445,6 +484,7 @@ kit.config = kit.config || {}; * @param {string} pluginId * @param {callback} callback * @return {boolean} + * @memberOf {kit} */ __proto.require = function (pluginId, callback) { @@ -536,13 +576,13 @@ kit.config = kit.config || {}; __proto.__exec = function (pluginId, callback, argArr = []) { - var module = this.plugins[pluginId]; + var plugin = this.plugins[pluginId]; var exec = function(_callback, argArr){ - if(module.skipLoadPromise) { + if(plugin.skipLoadPromise) { _callback.apply(this, argArr); } else { - module.promise = module.promise.then(function(){ + plugin.promise = plugin.promise.then(function(){ _callback.apply(this, argArr); }.bind(this)); } @@ -575,9 +615,11 @@ kit.config = kit.config || {}; }; /** + * @param {(string|string[])} deps + * @param {function} callback * @memberOf kit */ - __proto.ready = function(deps, callback) { + __proto.ready = function(deps, callback = undefined) { if(typeof deps === 'function') { callback = deps; deps = []; @@ -657,7 +699,9 @@ kit.config = kit.config || {}; global.ready = manager.ready.bind(manager); global.exec = manager.exec.bind(manager); global.require = manager.require.bind(manager); - /** @type {kit} */ + /** + * @var __pmGlobal__ + */ window.__pmGlobal__ = global; })(kit); diff --git a/assets/core/core.register.js b/assets/core/core.register.js index 5d0f7a9..5c91659 100644 --- a/assets/core/core.register.js +++ b/assets/core/core.register.js @@ -28,11 +28,12 @@ __PluginManager__.registerPlugins({ module: '/support.js', type: 'loader', }, - jQuery: { + jquery: { path: __pmConfig__.assetsPath + '/jquery', module: '/jquery.min.js', type: 'loader', - alias: '$', + alias: ['$', 'jQuery'], + autoRequire: true, }, popper: { path: __pmConfig__.assetsPath + '/popper', @@ -132,7 +133,7 @@ __PluginManager__.registerPlugins({ module: '/toolkit.js', type: 'loader', css: ['/toolkit.css'], - deps: ['jQuery', 'mask'], + deps: ['jQuery', 'mask', 'support'], }, Modal: { path: __pmConfig__.assetsPath + '/modal', @@ -317,7 +318,44 @@ __PluginManager__.registerPlugins({ alias: ['mustache.js'], js: '/mustache.js', deps: [], - } + }, + bxSlider: { + path: __pmConfig__.assetsPath + '/bxSlider', + module: '/jquery.bxslider.min.js', + css: [ + '/jquery.bxslider.min.css', + ], + type: 'import', + deps: ['jQuery'], + }, + selectric: { + path: __pmConfig__.assetsPath + '/selectric', + module: '/jquery.selectric.min.js', + css: [ + '/selectric.css', + ], + type: 'import', + alias: ['jquerySelectric'], + deps: ['jQuery'], + }, + jBox: { + path: __pmConfig__.assetsPath + '/jBox', + module: '/jBox.min.js', + css: [ + '/jBox.min.css', + ], + type: 'import', + deps: ['jQuery'], + }, + intlTelInput: { + path: __pmConfig__.assetsPath + '/intl-tel-input', + module: '/js/intlTelInput.min.js', + css: [ + '/css/intlTelInput.min.css', + ], + type: 'import', + alias: ['intl-tel-input'], + }, }); __pmConfig__.debug && (function(){ diff --git a/assets/intl-tel-input/css/demo.css b/assets/intl-tel-input/css/demo.css new file mode 100644 index 0000000..b2d9053 --- /dev/null +++ b/assets/intl-tel-input/css/demo.css @@ -0,0 +1,51 @@ +* { + box-sizing: border-box; +} + +body { + margin: 20px; + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #555; +} + +input, +button { + height: 35px; + margin: 0; + padding: 6px 12px; + border-radius: 2px; + font-family: inherit; + font-size: 100%; + color: inherit; +} +input[disabled], +button[disabled] { + background-color: #eee; +} + +input, +select { + border: 1px solid #ccc; + width: 220px; +} + +input::placeholder { + color: #bbb; +} + +button { + color: #fff; + background-color: #428bca; + border: 1px solid #357ebd; + margin-left: 5px; +} +button:hover { + background-color: #3276b1; + border-color: #285e8e; + cursor: pointer; +} + +.notice { + margin-top: 15px; +} \ No newline at end of file diff --git a/assets/intl-tel-input/css/intlTelInput.css b/assets/intl-tel-input/css/intlTelInput.css new file mode 100644 index 0000000..c933ada --- /dev/null +++ b/assets/intl-tel-input/css/intlTelInput.css @@ -0,0 +1,1316 @@ +.iti { + position: relative; + display: inline-block; +} +.iti * { + box-sizing: border-box; +} +.iti__hide { + display: none; +} +.iti__v-hide { + visibility: hidden; +} +.iti input.iti__tel-input, +.iti input.iti__tel-input[type=text], +.iti input.iti__tel-input[type=tel] { + position: relative; + z-index: 0; + margin-top: 0 !important; + margin-bottom: 0 !important; + padding-right: 36px; + margin-right: 0; +} +.iti__flag-container { + position: absolute; + top: 0; + bottom: 0; + right: 0; + padding: 1px; +} +.iti__selected-flag { + z-index: 1; + position: relative; + display: flex; + align-items: center; + height: 100%; + padding: 0 6px 0 8px; +} +.iti__arrow { + margin-left: 6px; + width: 0; + height: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 4px solid #555; +} +[dir=rtl] .iti__arrow { + margin-right: 6px; + margin-left: 0; +} +.iti__arrow--up { + border-top: none; + border-bottom: 4px solid #555; +} +.iti__dropdown-content { + border-radius: 3px; + background-color: white; +} +.iti--inline-dropdown .iti__dropdown-content { + position: absolute; + z-index: 2; + margin-top: 3px; + margin-left: -1px; + border: 1px solid #ccc; + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); +} +.iti__dropdown-content--dropup { + bottom: 100%; + margin-bottom: 3px; +} +.iti__search-input { + width: 100%; + border-width: 0; + border-radius: 3px; + padding: 9px 12px; +} +.iti__search-input + .iti__country-list { + border-top: 1px solid #ccc; +} +.iti__country-list { + list-style: none; + padding: 0; + margin: 0; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} +.iti--inline-dropdown .iti__country-list { + max-height: 185px; +} +.iti--flexible-dropdown-width .iti__country-list { + white-space: nowrap; +} +@media (max-width: 500px) { + .iti--flexible-dropdown-width .iti__country-list { + white-space: normal; + } +} +.iti__flag-box { + display: inline-block; + width: 20px; +} +.iti__divider { + padding-bottom: 5px; + margin-bottom: 5px; + border-bottom: 1px solid #ccc; +} +.iti__country { + display: flex; + align-items: center; + padding: 8px 8px; + outline: none; +} +.iti__dial-code { + color: #999; +} +.iti__country.iti__highlight { + background-color: rgba(0, 0, 0, 0.05); +} +.iti__flag-box, .iti__country-name { + margin-right: 8px; +} +[dir=rtl] .iti__flag-box, [dir=rtl] .iti__country-name { + margin-right: 0; + margin-left: 8px; +} +.iti--allow-dropdown input.iti__tel-input, +.iti--allow-dropdown input.iti__tel-input[type=text], +.iti--allow-dropdown input.iti__tel-input[type=tel], .iti--show-selected-dial-code input.iti__tel-input, +.iti--show-selected-dial-code input.iti__tel-input[type=text], +.iti--show-selected-dial-code input.iti__tel-input[type=tel] { + padding-right: 6px; + padding-left: 52px; + margin-left: 0; +} +[dir=rtl] .iti--allow-dropdown input.iti__tel-input, +[dir=rtl] .iti--allow-dropdown input.iti__tel-input[type=text], +[dir=rtl] .iti--allow-dropdown input.iti__tel-input[type=tel], [dir=rtl] .iti--show-selected-dial-code input.iti__tel-input, +[dir=rtl] .iti--show-selected-dial-code input.iti__tel-input[type=text], +[dir=rtl] .iti--show-selected-dial-code input.iti__tel-input[type=tel] { + padding-right: 52px; + padding-left: 6px; + margin-right: 0; +} +.iti--allow-dropdown .iti__flag-container, .iti--show-selected-dial-code .iti__flag-container { + right: auto; + left: 0; +} +[dir=rtl] .iti--allow-dropdown .iti__flag-container, [dir=rtl] .iti--show-selected-dial-code .iti__flag-container { + right: 0; + left: auto; +} +.iti--allow-dropdown .iti__flag-container:hover { + cursor: pointer; +} +.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag { + background-color: rgba(0, 0, 0, 0.05); +} +.iti--allow-dropdown .iti__flag-container:has(+ input[disabled]):hover, +.iti--allow-dropdown .iti__flag-container:has(+ input[readonly]):hover { + cursor: default; +} +.iti--allow-dropdown .iti__flag-container:has(+ input[disabled]):hover .iti__selected-flag, +.iti--allow-dropdown .iti__flag-container:has(+ input[readonly]):hover .iti__selected-flag { + background-color: transparent; +} +.iti--show-selected-dial-code .iti__selected-flag { + background-color: rgba(0, 0, 0, 0.05); +} +.iti--show-selected-dial-code.iti--show-flags .iti__selected-dial-code { + margin-left: 6px; +} +[dir=rtl] .iti--show-selected-dial-code.iti--show-flags .iti__selected-dial-code { + margin-left: 0; + margin-right: 6px; +} +.iti--container { + position: fixed; + top: -1000px; + left: -1000px; + z-index: 1060; + padding: 1px; +} +.iti--container:hover { + cursor: pointer; +} + +.iti--fullscreen-popup.iti--container { + background-color: rgba(0, 0, 0, 0.5); + top: 0; + bottom: 0; + left: 0; + right: 0; + position: fixed; + padding: 30px; + display: flex; + flex-direction: column; + justify-content: center; +} +.iti--fullscreen-popup.iti--container.iti--country-search { + justify-content: flex-start; +} +.iti--fullscreen-popup .iti__dropdown-content { + display: flex; + flex-direction: column; + max-height: 100%; + position: relative; +} +.iti--fullscreen-popup .iti__country { + padding: 10px 10px; + line-height: 1.5em; +} + +.iti__flag { + width: 20px; +} +.iti__flag.iti__be { + width: 18px; +} +.iti__flag.iti__ch { + width: 15px; +} +.iti__flag.iti__mc { + width: 19px; +} +.iti__flag.iti__ne { + width: 18px; +} +.iti__flag.iti__np { + width: 13px; +} +.iti__flag.iti__va { + width: 15px; +} +@media (min-resolution: 2x) { + .iti__flag { + background-size: 5762px 15px; + } +} +.iti__flag.iti__ac { + height: 10px; + background-position: 0px 0px; +} +.iti__flag.iti__ad { + height: 14px; + background-position: -22px 0px; +} +.iti__flag.iti__ae { + height: 10px; + background-position: -44px 0px; +} +.iti__flag.iti__af { + height: 14px; + background-position: -66px 0px; +} +.iti__flag.iti__ag { + height: 14px; + background-position: -88px 0px; +} +.iti__flag.iti__ai { + height: 10px; + background-position: -110px 0px; +} +.iti__flag.iti__al { + height: 15px; + background-position: -132px 0px; +} +.iti__flag.iti__am { + height: 10px; + background-position: -154px 0px; +} +.iti__flag.iti__ao { + height: 14px; + background-position: -176px 0px; +} +.iti__flag.iti__aq { + height: 14px; + background-position: -198px 0px; +} +.iti__flag.iti__ar { + height: 13px; + background-position: -220px 0px; +} +.iti__flag.iti__as { + height: 10px; + background-position: -242px 0px; +} +.iti__flag.iti__at { + height: 14px; + background-position: -264px 0px; +} +.iti__flag.iti__au { + height: 10px; + background-position: -286px 0px; +} +.iti__flag.iti__aw { + height: 14px; + background-position: -308px 0px; +} +.iti__flag.iti__ax { + height: 13px; + background-position: -330px 0px; +} +.iti__flag.iti__az { + height: 10px; + background-position: -352px 0px; +} +.iti__flag.iti__ba { + height: 10px; + background-position: -374px 0px; +} +.iti__flag.iti__bb { + height: 14px; + background-position: -396px 0px; +} +.iti__flag.iti__bd { + height: 12px; + background-position: -418px 0px; +} +.iti__flag.iti__be { + height: 15px; + background-position: -440px 0px; +} +.iti__flag.iti__bf { + height: 14px; + background-position: -460px 0px; +} +.iti__flag.iti__bg { + height: 12px; + background-position: -482px 0px; +} +.iti__flag.iti__bh { + height: 12px; + background-position: -504px 0px; +} +.iti__flag.iti__bi { + height: 12px; + background-position: -526px 0px; +} +.iti__flag.iti__bj { + height: 14px; + background-position: -548px 0px; +} +.iti__flag.iti__bl { + height: 14px; + background-position: -570px 0px; +} +.iti__flag.iti__bm { + height: 10px; + background-position: -592px 0px; +} +.iti__flag.iti__bn { + height: 10px; + background-position: -614px 0px; +} +.iti__flag.iti__bo { + height: 14px; + background-position: -636px 0px; +} +.iti__flag.iti__bq { + height: 14px; + background-position: -658px 0px; +} +.iti__flag.iti__br { + height: 14px; + background-position: -680px 0px; +} +.iti__flag.iti__bs { + height: 10px; + background-position: -702px 0px; +} +.iti__flag.iti__bt { + height: 14px; + background-position: -724px 0px; +} +.iti__flag.iti__bv { + height: 15px; + background-position: -746px 0px; +} +.iti__flag.iti__bw { + height: 14px; + background-position: -768px 0px; +} +.iti__flag.iti__by { + height: 10px; + background-position: -790px 0px; +} +.iti__flag.iti__bz { + height: 12px; + background-position: -812px 0px; +} +.iti__flag.iti__ca { + height: 10px; + background-position: -834px 0px; +} +.iti__flag.iti__cc { + height: 10px; + background-position: -856px 0px; +} +.iti__flag.iti__cd { + height: 15px; + background-position: -878px 0px; +} +.iti__flag.iti__cf { + height: 14px; + background-position: -900px 0px; +} +.iti__flag.iti__cg { + height: 14px; + background-position: -922px 0px; +} +.iti__flag.iti__ch { + height: 15px; + background-position: -944px 0px; +} +.iti__flag.iti__ci { + height: 14px; + background-position: -961px 0px; +} +.iti__flag.iti__ck { + height: 10px; + background-position: -983px 0px; +} +.iti__flag.iti__cl { + height: 14px; + background-position: -1005px 0px; +} +.iti__flag.iti__cm { + height: 14px; + background-position: -1027px 0px; +} +.iti__flag.iti__cn { + height: 14px; + background-position: -1049px 0px; +} +.iti__flag.iti__co { + height: 14px; + background-position: -1071px 0px; +} +.iti__flag.iti__cp { + height: 14px; + background-position: -1093px 0px; +} +.iti__flag.iti__cq { + height: 12px; + background-position: -1115px 0px; +} +.iti__flag.iti__cr { + height: 12px; + background-position: -1137px 0px; +} +.iti__flag.iti__cu { + height: 10px; + background-position: -1159px 0px; +} +.iti__flag.iti__cv { + height: 12px; + background-position: -1181px 0px; +} +.iti__flag.iti__cw { + height: 14px; + background-position: -1203px 0px; +} +.iti__flag.iti__cx { + height: 10px; + background-position: -1225px 0px; +} +.iti__flag.iti__cy { + height: 14px; + background-position: -1247px 0px; +} +.iti__flag.iti__cz { + height: 14px; + background-position: -1269px 0px; +} +.iti__flag.iti__de { + height: 12px; + background-position: -1291px 0px; +} +.iti__flag.iti__dg { + height: 10px; + background-position: -1313px 0px; +} +.iti__flag.iti__dj { + height: 14px; + background-position: -1335px 0px; +} +.iti__flag.iti__dk { + height: 15px; + background-position: -1357px 0px; +} +.iti__flag.iti__dm { + height: 10px; + background-position: -1379px 0px; +} +.iti__flag.iti__do { + height: 14px; + background-position: -1401px 0px; +} +.iti__flag.iti__dz { + height: 14px; + background-position: -1423px 0px; +} +.iti__flag.iti__ea { + height: 14px; + background-position: -1445px 0px; +} +.iti__flag.iti__ec { + height: 14px; + background-position: -1467px 0px; +} +.iti__flag.iti__ee { + height: 13px; + background-position: -1489px 0px; +} +.iti__flag.iti__eg { + height: 14px; + background-position: -1511px 0px; +} +.iti__flag.iti__eh { + height: 10px; + background-position: -1533px 0px; +} +.iti__flag.iti__er { + height: 10px; + background-position: -1555px 0px; +} +.iti__flag.iti__es { + height: 14px; + background-position: -1577px 0px; +} +.iti__flag.iti__et { + height: 10px; + background-position: -1599px 0px; +} +.iti__flag.iti__eu { + height: 14px; + background-position: -1621px 0px; +} +.iti__flag.iti__ez { + height: 14px; + background-position: -1643px 0px; +} +.iti__flag.iti__fi { + height: 12px; + background-position: -1665px 0px; +} +.iti__flag.iti__fj { + height: 10px; + background-position: -1687px 0px; +} +.iti__flag.iti__fk { + height: 10px; + background-position: -1709px 0px; +} +.iti__flag.iti__fm { + height: 11px; + background-position: -1731px 0px; +} +.iti__flag.iti__fo { + height: 15px; + background-position: -1753px 0px; +} +.iti__flag.iti__fr { + height: 14px; + background-position: -1775px 0px; +} +.iti__flag.iti__fx { + height: 14px; + background-position: -1797px 0px; +} +.iti__flag.iti__ga { + height: 15px; + background-position: -1819px 0px; +} +.iti__flag.iti__gb { + height: 10px; + background-position: -1841px 0px; +} +.iti__flag.iti__gd { + height: 12px; + background-position: -1863px 0px; +} +.iti__flag.iti__ge { + height: 14px; + background-position: -1885px 0px; +} +.iti__flag.iti__gf { + height: 14px; + background-position: -1907px 0px; +} +.iti__flag.iti__gg { + height: 14px; + background-position: -1929px 0px; +} +.iti__flag.iti__gh { + height: 14px; + background-position: -1951px 0px; +} +.iti__flag.iti__gi { + height: 10px; + background-position: -1973px 0px; +} +.iti__flag.iti__gl { + height: 14px; + background-position: -1995px 0px; +} +.iti__flag.iti__gm { + height: 14px; + background-position: -2017px 0px; +} +.iti__flag.iti__gn { + height: 14px; + background-position: -2039px 0px; +} +.iti__flag.iti__gp { + height: 14px; + background-position: -2061px 0px; +} +.iti__flag.iti__gq { + height: 14px; + background-position: -2083px 0px; +} +.iti__flag.iti__gr { + height: 14px; + background-position: -2105px 0px; +} +.iti__flag.iti__gs { + height: 10px; + background-position: -2127px 0px; +} +.iti__flag.iti__gt { + height: 13px; + background-position: -2149px 0px; +} +.iti__flag.iti__gu { + height: 11px; + background-position: -2171px 0px; +} +.iti__flag.iti__gw { + height: 10px; + background-position: -2193px 0px; +} +.iti__flag.iti__gy { + height: 12px; + background-position: -2215px 0px; +} +.iti__flag.iti__hk { + height: 14px; + background-position: -2237px 0px; +} +.iti__flag.iti__hm { + height: 10px; + background-position: -2259px 0px; +} +.iti__flag.iti__hn { + height: 10px; + background-position: -2281px 0px; +} +.iti__flag.iti__hr { + height: 10px; + background-position: -2303px 0px; +} +.iti__flag.iti__ht { + height: 12px; + background-position: -2325px 0px; +} +.iti__flag.iti__hu { + height: 10px; + background-position: -2347px 0px; +} +.iti__flag.iti__ic { + height: 14px; + background-position: -2369px 0px; +} +.iti__flag.iti__id { + height: 14px; + background-position: -2391px 0px; +} +.iti__flag.iti__ie { + height: 10px; + background-position: -2413px 0px; +} +.iti__flag.iti__il { + height: 15px; + background-position: -2435px 0px; +} +.iti__flag.iti__im { + height: 10px; + background-position: -2457px 0px; +} +.iti__flag.iti__in { + height: 14px; + background-position: -2479px 0px; +} +.iti__flag.iti__io { + height: 10px; + background-position: -2501px 0px; +} +.iti__flag.iti__iq { + height: 14px; + background-position: -2523px 0px; +} +.iti__flag.iti__ir { + height: 12px; + background-position: -2545px 0px; +} +.iti__flag.iti__is { + height: 15px; + background-position: -2567px 0px; +} +.iti__flag.iti__it { + height: 14px; + background-position: -2589px 0px; +} +.iti__flag.iti__je { + height: 12px; + background-position: -2611px 0px; +} +.iti__flag.iti__jm { + height: 10px; + background-position: -2633px 0px; +} +.iti__flag.iti__jo { + height: 10px; + background-position: -2655px 0px; +} +.iti__flag.iti__jp { + height: 14px; + background-position: -2677px 0px; +} +.iti__flag.iti__ke { + height: 14px; + background-position: -2699px 0px; +} +.iti__flag.iti__kg { + height: 12px; + background-position: -2721px 0px; +} +.iti__flag.iti__kh { + height: 13px; + background-position: -2743px 0px; +} +.iti__flag.iti__ki { + height: 10px; + background-position: -2765px 0px; +} +.iti__flag.iti__km { + height: 12px; + background-position: -2787px 0px; +} +.iti__flag.iti__kn { + height: 14px; + background-position: -2809px 0px; +} +.iti__flag.iti__kp { + height: 10px; + background-position: -2831px 0px; +} +.iti__flag.iti__kr { + height: 14px; + background-position: -2853px 0px; +} +.iti__flag.iti__kw { + height: 10px; + background-position: -2875px 0px; +} +.iti__flag.iti__ky { + height: 10px; + background-position: -2897px 0px; +} +.iti__flag.iti__kz { + height: 10px; + background-position: -2919px 0px; +} +.iti__flag.iti__la { + height: 14px; + background-position: -2941px 0px; +} +.iti__flag.iti__lb { + height: 14px; + background-position: -2963px 0px; +} +.iti__flag.iti__lc { + height: 10px; + background-position: -2985px 0px; +} +.iti__flag.iti__li { + height: 12px; + background-position: -3007px 0px; +} +.iti__flag.iti__lk { + height: 10px; + background-position: -3029px 0px; +} +.iti__flag.iti__lr { + height: 11px; + background-position: -3051px 0px; +} +.iti__flag.iti__ls { + height: 14px; + background-position: -3073px 0px; +} +.iti__flag.iti__lt { + height: 12px; + background-position: -3095px 0px; +} +.iti__flag.iti__lu { + height: 12px; + background-position: -3117px 0px; +} +.iti__flag.iti__lv { + height: 10px; + background-position: -3139px 0px; +} +.iti__flag.iti__ly { + height: 10px; + background-position: -3161px 0px; +} +.iti__flag.iti__ma { + height: 14px; + background-position: -3183px 0px; +} +.iti__flag.iti__mc { + height: 15px; + background-position: -3205px 0px; +} +.iti__flag.iti__md { + height: 10px; + background-position: -3226px 0px; +} +.iti__flag.iti__me { + height: 10px; + background-position: -3248px 0px; +} +.iti__flag.iti__mf { + height: 14px; + background-position: -3270px 0px; +} +.iti__flag.iti__mg { + height: 14px; + background-position: -3292px 0px; +} +.iti__flag.iti__mh { + height: 11px; + background-position: -3314px 0px; +} +.iti__flag.iti__mk { + height: 10px; + background-position: -3336px 0px; +} +.iti__flag.iti__ml { + height: 14px; + background-position: -3358px 0px; +} +.iti__flag.iti__mm { + height: 14px; + background-position: -3380px 0px; +} +.iti__flag.iti__mn { + height: 10px; + background-position: -3402px 0px; +} +.iti__flag.iti__mo { + height: 14px; + background-position: -3424px 0px; +} +.iti__flag.iti__mp { + height: 10px; + background-position: -3446px 0px; +} +.iti__flag.iti__mq { + height: 14px; + background-position: -3468px 0px; +} +.iti__flag.iti__mr { + height: 14px; + background-position: -3490px 0px; +} +.iti__flag.iti__ms { + height: 10px; + background-position: -3512px 0px; +} +.iti__flag.iti__mt { + height: 14px; + background-position: -3534px 0px; +} +.iti__flag.iti__mu { + height: 14px; + background-position: -3556px 0px; +} +.iti__flag.iti__mv { + height: 14px; + background-position: -3578px 0px; +} +.iti__flag.iti__mw { + height: 14px; + background-position: -3600px 0px; +} +.iti__flag.iti__mx { + height: 12px; + background-position: -3622px 0px; +} +.iti__flag.iti__my { + height: 10px; + background-position: -3644px 0px; +} +.iti__flag.iti__mz { + height: 14px; + background-position: -3666px 0px; +} +.iti__flag.iti__na { + height: 14px; + background-position: -3688px 0px; +} +.iti__flag.iti__nc { + height: 10px; + background-position: -3710px 0px; +} +.iti__flag.iti__ne { + height: 15px; + background-position: -3732px 0px; +} +.iti__flag.iti__nf { + height: 10px; + background-position: -3752px 0px; +} +.iti__flag.iti__ng { + height: 10px; + background-position: -3774px 0px; +} +.iti__flag.iti__ni { + height: 12px; + background-position: -3796px 0px; +} +.iti__flag.iti__nl { + height: 14px; + background-position: -3818px 0px; +} +.iti__flag.iti__no { + height: 15px; + background-position: -3840px 0px; +} +.iti__flag.iti__np { + height: 15px; + background-position: -3862px 0px; +} +.iti__flag.iti__nr { + height: 10px; + background-position: -3877px 0px; +} +.iti__flag.iti__nu { + height: 10px; + background-position: -3899px 0px; +} +.iti__flag.iti__nz { + height: 10px; + background-position: -3921px 0px; +} +.iti__flag.iti__om { + height: 10px; + background-position: -3943px 0px; +} +.iti__flag.iti__pa { + height: 14px; + background-position: -3965px 0px; +} +.iti__flag.iti__pe { + height: 14px; + background-position: -3987px 0px; +} +.iti__flag.iti__pf { + height: 14px; + background-position: -4009px 0px; +} +.iti__flag.iti__pg { + height: 15px; + background-position: -4031px 0px; +} +.iti__flag.iti__ph { + height: 10px; + background-position: -4053px 0px; +} +.iti__flag.iti__pk { + height: 14px; + background-position: -4075px 0px; +} +.iti__flag.iti__pl { + height: 13px; + background-position: -4097px 0px; +} +.iti__flag.iti__pm { + height: 14px; + background-position: -4119px 0px; +} +.iti__flag.iti__pn { + height: 10px; + background-position: -4141px 0px; +} +.iti__flag.iti__pr { + height: 14px; + background-position: -4163px 0px; +} +.iti__flag.iti__ps { + height: 10px; + background-position: -4185px 0px; +} +.iti__flag.iti__pt { + height: 14px; + background-position: -4207px 0px; +} +.iti__flag.iti__pw { + height: 13px; + background-position: -4229px 0px; +} +.iti__flag.iti__py { + height: 11px; + background-position: -4251px 0px; +} +.iti__flag.iti__qa { + height: 8px; + background-position: -4273px 0px; +} +.iti__flag.iti__re { + height: 14px; + background-position: -4295px 0px; +} +.iti__flag.iti__ro { + height: 14px; + background-position: -4317px 0px; +} +.iti__flag.iti__rs { + height: 14px; + background-position: -4339px 0px; +} +.iti__flag.iti__ru { + height: 14px; + background-position: -4361px 0px; +} +.iti__flag.iti__rw { + height: 14px; + background-position: -4383px 0px; +} +.iti__flag.iti__sa { + height: 14px; + background-position: -4405px 0px; +} +.iti__flag.iti__sb { + height: 10px; + background-position: -4427px 0px; +} +.iti__flag.iti__sc { + height: 10px; + background-position: -4449px 0px; +} +.iti__flag.iti__sd { + height: 10px; + background-position: -4471px 0px; +} +.iti__flag.iti__se { + height: 13px; + background-position: -4493px 0px; +} +.iti__flag.iti__sg { + height: 14px; + background-position: -4515px 0px; +} +.iti__flag.iti__sh { + height: 10px; + background-position: -4537px 0px; +} +.iti__flag.iti__si { + height: 10px; + background-position: -4559px 0px; +} +.iti__flag.iti__sj { + height: 15px; + background-position: -4581px 0px; +} +.iti__flag.iti__sk { + height: 14px; + background-position: -4603px 0px; +} +.iti__flag.iti__sl { + height: 14px; + background-position: -4625px 0px; +} +.iti__flag.iti__sm { + height: 15px; + background-position: -4647px 0px; +} +.iti__flag.iti__sn { + height: 14px; + background-position: -4669px 0px; +} +.iti__flag.iti__so { + height: 14px; + background-position: -4691px 0px; +} +.iti__flag.iti__sr { + height: 14px; + background-position: -4713px 0px; +} +.iti__flag.iti__ss { + height: 10px; + background-position: -4735px 0px; +} +.iti__flag.iti__st { + height: 10px; + background-position: -4757px 0px; +} +.iti__flag.iti__su { + height: 10px; + background-position: -4779px 0px; +} +.iti__flag.iti__sv { + height: 12px; + background-position: -4801px 0px; +} +.iti__flag.iti__sx { + height: 14px; + background-position: -4823px 0px; +} +.iti__flag.iti__sy { + height: 14px; + background-position: -4845px 0px; +} +.iti__flag.iti__sz { + height: 14px; + background-position: -4867px 0px; +} +.iti__flag.iti__ta { + height: 10px; + background-position: -4889px 0px; +} +.iti__flag.iti__tc { + height: 10px; + background-position: -4911px 0px; +} +.iti__flag.iti__td { + height: 14px; + background-position: -4933px 0px; +} +.iti__flag.iti__tf { + height: 14px; + background-position: -4955px 0px; +} +.iti__flag.iti__tg { + height: 13px; + background-position: -4977px 0px; +} +.iti__flag.iti__th { + height: 14px; + background-position: -4999px 0px; +} +.iti__flag.iti__tj { + height: 10px; + background-position: -5021px 0px; +} +.iti__flag.iti__tk { + height: 10px; + background-position: -5043px 0px; +} +.iti__flag.iti__tl { + height: 10px; + background-position: -5065px 0px; +} +.iti__flag.iti__tm { + height: 14px; + background-position: -5087px 0px; +} +.iti__flag.iti__tn { + height: 14px; + background-position: -5109px 0px; +} +.iti__flag.iti__to { + height: 10px; + background-position: -5131px 0px; +} +.iti__flag.iti__tr { + height: 14px; + background-position: -5153px 0px; +} +.iti__flag.iti__tt { + height: 12px; + background-position: -5175px 0px; +} +.iti__flag.iti__tv { + height: 10px; + background-position: -5197px 0px; +} +.iti__flag.iti__tw { + height: 14px; + background-position: -5219px 0px; +} +.iti__flag.iti__tz { + height: 14px; + background-position: -5241px 0px; +} +.iti__flag.iti__ua { + height: 14px; + background-position: -5263px 0px; +} +.iti__flag.iti__ug { + height: 14px; + background-position: -5285px 0px; +} +.iti__flag.iti__uk { + height: 10px; + background-position: -5307px 0px; +} +.iti__flag.iti__um { + height: 11px; + background-position: -5329px 0px; +} +.iti__flag.iti__un { + height: 14px; + background-position: -5351px 0px; +} +.iti__flag.iti__us { + height: 11px; + background-position: -5373px 0px; +} +.iti__flag.iti__uy { + height: 14px; + background-position: -5395px 0px; +} +.iti__flag.iti__uz { + height: 10px; + background-position: -5417px 0px; +} +.iti__flag.iti__va { + height: 15px; + background-position: -5439px 0px; +} +.iti__flag.iti__vc { + height: 14px; + background-position: -5456px 0px; +} +.iti__flag.iti__ve { + height: 14px; + background-position: -5478px 0px; +} +.iti__flag.iti__vg { + height: 10px; + background-position: -5500px 0px; +} +.iti__flag.iti__vi { + height: 14px; + background-position: -5522px 0px; +} +.iti__flag.iti__vn { + height: 14px; + background-position: -5544px 0px; +} +.iti__flag.iti__vu { + height: 12px; + background-position: -5566px 0px; +} +.iti__flag.iti__wf { + height: 14px; + background-position: -5588px 0px; +} +.iti__flag.iti__ws { + height: 10px; + background-position: -5610px 0px; +} +.iti__flag.iti__xk { + height: 15px; + background-position: -5632px 0px; +} +.iti__flag.iti__ye { + height: 14px; + background-position: -5654px 0px; +} +.iti__flag.iti__yt { + height: 14px; + background-position: -5676px 0px; +} +.iti__flag.iti__za { + height: 14px; + background-position: -5698px 0px; +} +.iti__flag.iti__zm { + height: 14px; + background-position: -5720px 0px; +} +.iti__flag.iti__zw { + height: 10px; + background-position: -5742px 0px; +} + +.iti__flag { + height: 15px; + box-shadow: 0px 0px 1px 0px #888; + background-image: url("../img/flags.png?1"); + background-repeat: no-repeat; + background-position: 20px 0; +} +@media (min-resolution: 2x) { + .iti__flag { + background-image: url("../img/flags@2x.png?1"); + } +} + +.iti__globe { + background-image: url("../img/globe.png"); + background-size: contain; + background-position: right; + box-shadow: none; + height: 19px; +} +@media (min-resolution: 2x) { + .iti__globe { + background-image: url("../img/globe@2x.png"); + } +} \ No newline at end of file diff --git a/assets/intl-tel-input/css/intlTelInput.min.css b/assets/intl-tel-input/css/intlTelInput.min.css new file mode 100644 index 0000000..8888ab0 --- /dev/null +++ b/assets/intl-tel-input/css/intlTelInput.min.css @@ -0,0 +1 @@ +.iti{position:relative;display:inline-block}.iti *{box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input.iti__tel-input,.iti input.iti__tel-input[type=tel],.iti input.iti__tel-input[type=text]{position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;padding-right:36px;margin-right:0}.iti__flag-container{position:absolute;top:0;bottom:0;right:0;padding:1px}.iti__selected-flag{z-index:1;position:relative;display:flex;align-items:center;height:100%;padding:0 6px 0 8px}.iti__arrow{margin-left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}[dir=rtl] .iti__arrow{margin-right:6px;margin-left:0}.iti__arrow--up{border-top:none;border-bottom:4px solid #555}.iti__dropdown-content{border-radius:3px;background-color:#fff}.iti--inline-dropdown .iti__dropdown-content{position:absolute;z-index:2;margin-top:3px;margin-left:-1px;border:1px solid #ccc;box-shadow:1px 1px 4px rgba(0,0,0,.2)}.iti__dropdown-content--dropup{bottom:100%;margin-bottom:3px}.iti__search-input{width:100%;border-width:0;border-radius:3px;padding:9px 12px}.iti__search-input+.iti__country-list{border-top:1px solid #ccc}.iti__country-list{list-style:none;padding:0;margin:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti--inline-dropdown .iti__country-list{max-height:185px}.iti--flexible-dropdown-width .iti__country-list{white-space:nowrap}@media (max-width:500px){.iti--flexible-dropdown-width .iti__country-list{white-space:normal}}.iti__flag-box{display:inline-block;width:20px}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #ccc}.iti__country{display:flex;align-items:center;padding:8px 8px;outline:0}.iti__dial-code{color:#999}.iti__country.iti__highlight{background-color:rgba(0,0,0,.05)}.iti__country-name,.iti__flag-box{margin-right:8px}[dir=rtl] .iti__country-name,[dir=rtl] .iti__flag-box{margin-right:0;margin-left:8px}.iti--allow-dropdown input.iti__tel-input,.iti--allow-dropdown input.iti__tel-input[type=tel],.iti--allow-dropdown input.iti__tel-input[type=text],.iti--show-selected-dial-code input.iti__tel-input,.iti--show-selected-dial-code input.iti__tel-input[type=tel],.iti--show-selected-dial-code input.iti__tel-input[type=text]{padding-right:6px;padding-left:52px;margin-left:0}[dir=rtl] .iti--allow-dropdown input.iti__tel-input,[dir=rtl] .iti--allow-dropdown input.iti__tel-input[type=tel],[dir=rtl] .iti--allow-dropdown input.iti__tel-input[type=text],[dir=rtl] .iti--show-selected-dial-code input.iti__tel-input,[dir=rtl] .iti--show-selected-dial-code input.iti__tel-input[type=tel],[dir=rtl] .iti--show-selected-dial-code input.iti__tel-input[type=text]{padding-right:52px;padding-left:6px;margin-right:0}.iti--allow-dropdown .iti__flag-container,.iti--show-selected-dial-code .iti__flag-container{right:auto;left:0}[dir=rtl] .iti--allow-dropdown .iti__flag-container,[dir=rtl] .iti--show-selected-dial-code .iti__flag-container{right:0;left:auto}.iti--allow-dropdown .iti__flag-container:hover{cursor:pointer}.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:rgba(0,0,0,.05)}.iti--allow-dropdown .iti__flag-container:has(+input[disabled]):hover,.iti--allow-dropdown .iti__flag-container:has(+input[readonly]):hover{cursor:default}.iti--allow-dropdown .iti__flag-container:has(+input[disabled]):hover .iti__selected-flag,.iti--allow-dropdown .iti__flag-container:has(+input[readonly]):hover .iti__selected-flag{background-color:transparent}.iti--show-selected-dial-code .iti__selected-flag{background-color:rgba(0,0,0,.05)}.iti--show-selected-dial-code.iti--show-flags .iti__selected-dial-code{margin-left:6px}[dir=rtl] .iti--show-selected-dial-code.iti--show-flags .iti__selected-dial-code{margin-left:0;margin-right:6px}.iti--container{position:fixed;top:-1000px;left:-1000px;z-index:1060;padding:1px}.iti--container:hover{cursor:pointer}.iti--fullscreen-popup.iti--container{background-color:rgba(0,0,0,.5);top:0;bottom:0;left:0;right:0;position:fixed;padding:30px;display:flex;flex-direction:column;justify-content:center}.iti--fullscreen-popup.iti--container.iti--country-search{justify-content:flex-start}.iti--fullscreen-popup .iti__dropdown-content{display:flex;flex-direction:column;max-height:100%;position:relative}.iti--fullscreen-popup .iti__country{padding:10px 10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (min-resolution:2x){.iti__flag{background-size:5762px 15px}}.iti__flag.iti__ac{height:10px;background-position:0 0}.iti__flag.iti__ad{height:14px;background-position:-22px 0}.iti__flag.iti__ae{height:10px;background-position:-44px 0}.iti__flag.iti__af{height:14px;background-position:-66px 0}.iti__flag.iti__ag{height:14px;background-position:-88px 0}.iti__flag.iti__ai{height:10px;background-position:-110px 0}.iti__flag.iti__al{height:15px;background-position:-132px 0}.iti__flag.iti__am{height:10px;background-position:-154px 0}.iti__flag.iti__ao{height:14px;background-position:-176px 0}.iti__flag.iti__aq{height:14px;background-position:-198px 0}.iti__flag.iti__ar{height:13px;background-position:-220px 0}.iti__flag.iti__as{height:10px;background-position:-242px 0}.iti__flag.iti__at{height:14px;background-position:-264px 0}.iti__flag.iti__au{height:10px;background-position:-286px 0}.iti__flag.iti__aw{height:14px;background-position:-308px 0}.iti__flag.iti__ax{height:13px;background-position:-330px 0}.iti__flag.iti__az{height:10px;background-position:-352px 0}.iti__flag.iti__ba{height:10px;background-position:-374px 0}.iti__flag.iti__bb{height:14px;background-position:-396px 0}.iti__flag.iti__bd{height:12px;background-position:-418px 0}.iti__flag.iti__be{height:15px;background-position:-440px 0}.iti__flag.iti__bf{height:14px;background-position:-460px 0}.iti__flag.iti__bg{height:12px;background-position:-482px 0}.iti__flag.iti__bh{height:12px;background-position:-504px 0}.iti__flag.iti__bi{height:12px;background-position:-526px 0}.iti__flag.iti__bj{height:14px;background-position:-548px 0}.iti__flag.iti__bl{height:14px;background-position:-570px 0}.iti__flag.iti__bm{height:10px;background-position:-592px 0}.iti__flag.iti__bn{height:10px;background-position:-614px 0}.iti__flag.iti__bo{height:14px;background-position:-636px 0}.iti__flag.iti__bq{height:14px;background-position:-658px 0}.iti__flag.iti__br{height:14px;background-position:-680px 0}.iti__flag.iti__bs{height:10px;background-position:-702px 0}.iti__flag.iti__bt{height:14px;background-position:-724px 0}.iti__flag.iti__bv{height:15px;background-position:-746px 0}.iti__flag.iti__bw{height:14px;background-position:-768px 0}.iti__flag.iti__by{height:10px;background-position:-790px 0}.iti__flag.iti__bz{height:12px;background-position:-812px 0}.iti__flag.iti__ca{height:10px;background-position:-834px 0}.iti__flag.iti__cc{height:10px;background-position:-856px 0}.iti__flag.iti__cd{height:15px;background-position:-878px 0}.iti__flag.iti__cf{height:14px;background-position:-900px 0}.iti__flag.iti__cg{height:14px;background-position:-922px 0}.iti__flag.iti__ch{height:15px;background-position:-944px 0}.iti__flag.iti__ci{height:14px;background-position:-961px 0}.iti__flag.iti__ck{height:10px;background-position:-983px 0}.iti__flag.iti__cl{height:14px;background-position:-1005px 0}.iti__flag.iti__cm{height:14px;background-position:-1027px 0}.iti__flag.iti__cn{height:14px;background-position:-1049px 0}.iti__flag.iti__co{height:14px;background-position:-1071px 0}.iti__flag.iti__cp{height:14px;background-position:-1093px 0}.iti__flag.iti__cq{height:12px;background-position:-1115px 0}.iti__flag.iti__cr{height:12px;background-position:-1137px 0}.iti__flag.iti__cu{height:10px;background-position:-1159px 0}.iti__flag.iti__cv{height:12px;background-position:-1181px 0}.iti__flag.iti__cw{height:14px;background-position:-1203px 0}.iti__flag.iti__cx{height:10px;background-position:-1225px 0}.iti__flag.iti__cy{height:14px;background-position:-1247px 0}.iti__flag.iti__cz{height:14px;background-position:-1269px 0}.iti__flag.iti__de{height:12px;background-position:-1291px 0}.iti__flag.iti__dg{height:10px;background-position:-1313px 0}.iti__flag.iti__dj{height:14px;background-position:-1335px 0}.iti__flag.iti__dk{height:15px;background-position:-1357px 0}.iti__flag.iti__dm{height:10px;background-position:-1379px 0}.iti__flag.iti__do{height:14px;background-position:-1401px 0}.iti__flag.iti__dz{height:14px;background-position:-1423px 0}.iti__flag.iti__ea{height:14px;background-position:-1445px 0}.iti__flag.iti__ec{height:14px;background-position:-1467px 0}.iti__flag.iti__ee{height:13px;background-position:-1489px 0}.iti__flag.iti__eg{height:14px;background-position:-1511px 0}.iti__flag.iti__eh{height:10px;background-position:-1533px 0}.iti__flag.iti__er{height:10px;background-position:-1555px 0}.iti__flag.iti__es{height:14px;background-position:-1577px 0}.iti__flag.iti__et{height:10px;background-position:-1599px 0}.iti__flag.iti__eu{height:14px;background-position:-1621px 0}.iti__flag.iti__ez{height:14px;background-position:-1643px 0}.iti__flag.iti__fi{height:12px;background-position:-1665px 0}.iti__flag.iti__fj{height:10px;background-position:-1687px 0}.iti__flag.iti__fk{height:10px;background-position:-1709px 0}.iti__flag.iti__fm{height:11px;background-position:-1731px 0}.iti__flag.iti__fo{height:15px;background-position:-1753px 0}.iti__flag.iti__fr{height:14px;background-position:-1775px 0}.iti__flag.iti__fx{height:14px;background-position:-1797px 0}.iti__flag.iti__ga{height:15px;background-position:-1819px 0}.iti__flag.iti__gb{height:10px;background-position:-1841px 0}.iti__flag.iti__gd{height:12px;background-position:-1863px 0}.iti__flag.iti__ge{height:14px;background-position:-1885px 0}.iti__flag.iti__gf{height:14px;background-position:-1907px 0}.iti__flag.iti__gg{height:14px;background-position:-1929px 0}.iti__flag.iti__gh{height:14px;background-position:-1951px 0}.iti__flag.iti__gi{height:10px;background-position:-1973px 0}.iti__flag.iti__gl{height:14px;background-position:-1995px 0}.iti__flag.iti__gm{height:14px;background-position:-2017px 0}.iti__flag.iti__gn{height:14px;background-position:-2039px 0}.iti__flag.iti__gp{height:14px;background-position:-2061px 0}.iti__flag.iti__gq{height:14px;background-position:-2083px 0}.iti__flag.iti__gr{height:14px;background-position:-2105px 0}.iti__flag.iti__gs{height:10px;background-position:-2127px 0}.iti__flag.iti__gt{height:13px;background-position:-2149px 0}.iti__flag.iti__gu{height:11px;background-position:-2171px 0}.iti__flag.iti__gw{height:10px;background-position:-2193px 0}.iti__flag.iti__gy{height:12px;background-position:-2215px 0}.iti__flag.iti__hk{height:14px;background-position:-2237px 0}.iti__flag.iti__hm{height:10px;background-position:-2259px 0}.iti__flag.iti__hn{height:10px;background-position:-2281px 0}.iti__flag.iti__hr{height:10px;background-position:-2303px 0}.iti__flag.iti__ht{height:12px;background-position:-2325px 0}.iti__flag.iti__hu{height:10px;background-position:-2347px 0}.iti__flag.iti__ic{height:14px;background-position:-2369px 0}.iti__flag.iti__id{height:14px;background-position:-2391px 0}.iti__flag.iti__ie{height:10px;background-position:-2413px 0}.iti__flag.iti__il{height:15px;background-position:-2435px 0}.iti__flag.iti__im{height:10px;background-position:-2457px 0}.iti__flag.iti__in{height:14px;background-position:-2479px 0}.iti__flag.iti__io{height:10px;background-position:-2501px 0}.iti__flag.iti__iq{height:14px;background-position:-2523px 0}.iti__flag.iti__ir{height:12px;background-position:-2545px 0}.iti__flag.iti__is{height:15px;background-position:-2567px 0}.iti__flag.iti__it{height:14px;background-position:-2589px 0}.iti__flag.iti__je{height:12px;background-position:-2611px 0}.iti__flag.iti__jm{height:10px;background-position:-2633px 0}.iti__flag.iti__jo{height:10px;background-position:-2655px 0}.iti__flag.iti__jp{height:14px;background-position:-2677px 0}.iti__flag.iti__ke{height:14px;background-position:-2699px 0}.iti__flag.iti__kg{height:12px;background-position:-2721px 0}.iti__flag.iti__kh{height:13px;background-position:-2743px 0}.iti__flag.iti__ki{height:10px;background-position:-2765px 0}.iti__flag.iti__km{height:12px;background-position:-2787px 0}.iti__flag.iti__kn{height:14px;background-position:-2809px 0}.iti__flag.iti__kp{height:10px;background-position:-2831px 0}.iti__flag.iti__kr{height:14px;background-position:-2853px 0}.iti__flag.iti__kw{height:10px;background-position:-2875px 0}.iti__flag.iti__ky{height:10px;background-position:-2897px 0}.iti__flag.iti__kz{height:10px;background-position:-2919px 0}.iti__flag.iti__la{height:14px;background-position:-2941px 0}.iti__flag.iti__lb{height:14px;background-position:-2963px 0}.iti__flag.iti__lc{height:10px;background-position:-2985px 0}.iti__flag.iti__li{height:12px;background-position:-3007px 0}.iti__flag.iti__lk{height:10px;background-position:-3029px 0}.iti__flag.iti__lr{height:11px;background-position:-3051px 0}.iti__flag.iti__ls{height:14px;background-position:-3073px 0}.iti__flag.iti__lt{height:12px;background-position:-3095px 0}.iti__flag.iti__lu{height:12px;background-position:-3117px 0}.iti__flag.iti__lv{height:10px;background-position:-3139px 0}.iti__flag.iti__ly{height:10px;background-position:-3161px 0}.iti__flag.iti__ma{height:14px;background-position:-3183px 0}.iti__flag.iti__mc{height:15px;background-position:-3205px 0}.iti__flag.iti__md{height:10px;background-position:-3226px 0}.iti__flag.iti__me{height:10px;background-position:-3248px 0}.iti__flag.iti__mf{height:14px;background-position:-3270px 0}.iti__flag.iti__mg{height:14px;background-position:-3292px 0}.iti__flag.iti__mh{height:11px;background-position:-3314px 0}.iti__flag.iti__mk{height:10px;background-position:-3336px 0}.iti__flag.iti__ml{height:14px;background-position:-3358px 0}.iti__flag.iti__mm{height:14px;background-position:-3380px 0}.iti__flag.iti__mn{height:10px;background-position:-3402px 0}.iti__flag.iti__mo{height:14px;background-position:-3424px 0}.iti__flag.iti__mp{height:10px;background-position:-3446px 0}.iti__flag.iti__mq{height:14px;background-position:-3468px 0}.iti__flag.iti__mr{height:14px;background-position:-3490px 0}.iti__flag.iti__ms{height:10px;background-position:-3512px 0}.iti__flag.iti__mt{height:14px;background-position:-3534px 0}.iti__flag.iti__mu{height:14px;background-position:-3556px 0}.iti__flag.iti__mv{height:14px;background-position:-3578px 0}.iti__flag.iti__mw{height:14px;background-position:-3600px 0}.iti__flag.iti__mx{height:12px;background-position:-3622px 0}.iti__flag.iti__my{height:10px;background-position:-3644px 0}.iti__flag.iti__mz{height:14px;background-position:-3666px 0}.iti__flag.iti__na{height:14px;background-position:-3688px 0}.iti__flag.iti__nc{height:10px;background-position:-3710px 0}.iti__flag.iti__ne{height:15px;background-position:-3732px 0}.iti__flag.iti__nf{height:10px;background-position:-3752px 0}.iti__flag.iti__ng{height:10px;background-position:-3774px 0}.iti__flag.iti__ni{height:12px;background-position:-3796px 0}.iti__flag.iti__nl{height:14px;background-position:-3818px 0}.iti__flag.iti__no{height:15px;background-position:-3840px 0}.iti__flag.iti__np{height:15px;background-position:-3862px 0}.iti__flag.iti__nr{height:10px;background-position:-3877px 0}.iti__flag.iti__nu{height:10px;background-position:-3899px 0}.iti__flag.iti__nz{height:10px;background-position:-3921px 0}.iti__flag.iti__om{height:10px;background-position:-3943px 0}.iti__flag.iti__pa{height:14px;background-position:-3965px 0}.iti__flag.iti__pe{height:14px;background-position:-3987px 0}.iti__flag.iti__pf{height:14px;background-position:-4009px 0}.iti__flag.iti__pg{height:15px;background-position:-4031px 0}.iti__flag.iti__ph{height:10px;background-position:-4053px 0}.iti__flag.iti__pk{height:14px;background-position:-4075px 0}.iti__flag.iti__pl{height:13px;background-position:-4097px 0}.iti__flag.iti__pm{height:14px;background-position:-4119px 0}.iti__flag.iti__pn{height:10px;background-position:-4141px 0}.iti__flag.iti__pr{height:14px;background-position:-4163px 0}.iti__flag.iti__ps{height:10px;background-position:-4185px 0}.iti__flag.iti__pt{height:14px;background-position:-4207px 0}.iti__flag.iti__pw{height:13px;background-position:-4229px 0}.iti__flag.iti__py{height:11px;background-position:-4251px 0}.iti__flag.iti__qa{height:8px;background-position:-4273px 0}.iti__flag.iti__re{height:14px;background-position:-4295px 0}.iti__flag.iti__ro{height:14px;background-position:-4317px 0}.iti__flag.iti__rs{height:14px;background-position:-4339px 0}.iti__flag.iti__ru{height:14px;background-position:-4361px 0}.iti__flag.iti__rw{height:14px;background-position:-4383px 0}.iti__flag.iti__sa{height:14px;background-position:-4405px 0}.iti__flag.iti__sb{height:10px;background-position:-4427px 0}.iti__flag.iti__sc{height:10px;background-position:-4449px 0}.iti__flag.iti__sd{height:10px;background-position:-4471px 0}.iti__flag.iti__se{height:13px;background-position:-4493px 0}.iti__flag.iti__sg{height:14px;background-position:-4515px 0}.iti__flag.iti__sh{height:10px;background-position:-4537px 0}.iti__flag.iti__si{height:10px;background-position:-4559px 0}.iti__flag.iti__sj{height:15px;background-position:-4581px 0}.iti__flag.iti__sk{height:14px;background-position:-4603px 0}.iti__flag.iti__sl{height:14px;background-position:-4625px 0}.iti__flag.iti__sm{height:15px;background-position:-4647px 0}.iti__flag.iti__sn{height:14px;background-position:-4669px 0}.iti__flag.iti__so{height:14px;background-position:-4691px 0}.iti__flag.iti__sr{height:14px;background-position:-4713px 0}.iti__flag.iti__ss{height:10px;background-position:-4735px 0}.iti__flag.iti__st{height:10px;background-position:-4757px 0}.iti__flag.iti__su{height:10px;background-position:-4779px 0}.iti__flag.iti__sv{height:12px;background-position:-4801px 0}.iti__flag.iti__sx{height:14px;background-position:-4823px 0}.iti__flag.iti__sy{height:14px;background-position:-4845px 0}.iti__flag.iti__sz{height:14px;background-position:-4867px 0}.iti__flag.iti__ta{height:10px;background-position:-4889px 0}.iti__flag.iti__tc{height:10px;background-position:-4911px 0}.iti__flag.iti__td{height:14px;background-position:-4933px 0}.iti__flag.iti__tf{height:14px;background-position:-4955px 0}.iti__flag.iti__tg{height:13px;background-position:-4977px 0}.iti__flag.iti__th{height:14px;background-position:-4999px 0}.iti__flag.iti__tj{height:10px;background-position:-5021px 0}.iti__flag.iti__tk{height:10px;background-position:-5043px 0}.iti__flag.iti__tl{height:10px;background-position:-5065px 0}.iti__flag.iti__tm{height:14px;background-position:-5087px 0}.iti__flag.iti__tn{height:14px;background-position:-5109px 0}.iti__flag.iti__to{height:10px;background-position:-5131px 0}.iti__flag.iti__tr{height:14px;background-position:-5153px 0}.iti__flag.iti__tt{height:12px;background-position:-5175px 0}.iti__flag.iti__tv{height:10px;background-position:-5197px 0}.iti__flag.iti__tw{height:14px;background-position:-5219px 0}.iti__flag.iti__tz{height:14px;background-position:-5241px 0}.iti__flag.iti__ua{height:14px;background-position:-5263px 0}.iti__flag.iti__ug{height:14px;background-position:-5285px 0}.iti__flag.iti__uk{height:10px;background-position:-5307px 0}.iti__flag.iti__um{height:11px;background-position:-5329px 0}.iti__flag.iti__un{height:14px;background-position:-5351px 0}.iti__flag.iti__us{height:11px;background-position:-5373px 0}.iti__flag.iti__uy{height:14px;background-position:-5395px 0}.iti__flag.iti__uz{height:10px;background-position:-5417px 0}.iti__flag.iti__va{height:15px;background-position:-5439px 0}.iti__flag.iti__vc{height:14px;background-position:-5456px 0}.iti__flag.iti__ve{height:14px;background-position:-5478px 0}.iti__flag.iti__vg{height:10px;background-position:-5500px 0}.iti__flag.iti__vi{height:14px;background-position:-5522px 0}.iti__flag.iti__vn{height:14px;background-position:-5544px 0}.iti__flag.iti__vu{height:12px;background-position:-5566px 0}.iti__flag.iti__wf{height:14px;background-position:-5588px 0}.iti__flag.iti__ws{height:10px;background-position:-5610px 0}.iti__flag.iti__xk{height:15px;background-position:-5632px 0}.iti__flag.iti__ye{height:14px;background-position:-5654px 0}.iti__flag.iti__yt{height:14px;background-position:-5676px 0}.iti__flag.iti__za{height:14px;background-position:-5698px 0}.iti__flag.iti__zm{height:14px;background-position:-5720px 0}.iti__flag.iti__zw{height:10px;background-position:-5742px 0}.iti__flag{height:15px;box-shadow:0 0 1px 0 #888;background-image:url(../img/flags.png?1);background-repeat:no-repeat;background-position:20px 0}@media (min-resolution:2x){.iti__flag{background-image:url(../img/flags@2x.png?1)}}.iti__globe{background-image:url(../img/globe.png);background-size:contain;background-position:right;box-shadow:none;height:19px}@media (min-resolution:2x){.iti__globe{background-image:url(../img/globe@2x.png)}} \ No newline at end of file diff --git a/assets/intl-tel-input/img/flags.png b/assets/intl-tel-input/img/flags.png new file mode 100644 index 0000000000000000000000000000000000000000..36f236e5e8070e4326dbd17c6241ffedaf0626e8 GIT binary patch literal 70325 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%0AH63NFh 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%0AxCdz3Qj{z@ z`sB|hxpxM#(o95WI8%9lc*wEw$0cS;?6xXd0X&enUfk#Q)*c7BJXp@xI@nHXj_+b` zRiE|pgpl+6;hci<@X2W+%AuC*$N?oXZtJM`TQ@0bBG0p+ZY53y$+cZjwo`fHc>V_0Z`!2-RWC|M+`5Tb5f>d5Kb+011uE6D7-q0%{7 zp=Ze-Lw19IgXndsknPLPdN|~*g09e6iDTJKdHjw4JFrlo$-HS2?Y9nN(Yhckp52=)*F8Gk!eJMgYZjKOk-e!0O6N-E{K4D)ZN*rsK(Ka`@tAO zDI7y5*X|+ly>5p6H9&SbER&VQmU%d#Xgjgq0KQY*BEB5INn)j>>t&mG9SB`Rs}l$$ zI0_9fu~*+f3;1y&(ILgptcJQHaDrVj^r9PYr0}}y0I2xxcPaYBC)oO>FOl558KLW7 z+Zfr|NToQr?p3B}OSm_1B6kGl;0WXJ5qe5clpW>6Q`Ym;srl=?*1P=wa znJIXZF&lh_n~AR!TEOVP2N|)s@WM*I_r-Bsc+(p+*2mFg53tYL(%UeAfO=&?;2cM>pdr2NQ z*e>mB#3K+QQ@rKaIPoqz7XA}WHxQbE<_&>vBGYkXvIi&8jPB2-=&YX*8Z#G9!Px%z z`=GpsA*$wg8-+q7kz&z1TWM zHHUFmq>aX!Mi+-J&&411Q!=^&r64;mOkjKk9s&2>@f?pow2&{|{9(TKs~>Ro(ziM3 znOE@^AIn3puIJ6y)^YZ^)41>VH;|VTV%e70dG@VxUV5UOjulVSWJWpv>g)LHEnnjK z4gY1%=yQ1BiS^w2*JpX`simL^F1Ywap1k9(y#T!EZ|2%(7KJ<-ace$ga&zqI)-j?-0>Z}`FfOxAA||j5l*?jg{mq=M|%Nz zMYfx|G*n5OOYSC3|tEFC&Bj>|9HYx@CRC)L=*mT!KK=sRl| z{@rh4=H~Pt)A7`^_(xUI`RwzwJ@gnQH(W#Er5B+G0tXyP(6R-30a#l>B_O!~jB@aw z4fa+@z6Ev@m{p)<6H zynN8bUI|}Nu(hoebce^6ok+GnhM_qu-7=bIRvwQdH7=a?Cc2PxM8nKmH63)x*0vH* zU$vBQV)*ua(F_}4*MzrVS3GR?pJE6;Z&xmPRV z(I$;(LkoUWKxrd!0Yx zkj&UU18$1hmE(xiY@sk`40%~^;6>*f$9A*kTWc7xq~y4>&={t5cQdqcd*N z9ajVNG45$*UF^0Xb4@R8!5K*gt&3xRDQXB1mBxj z!==L;(LIW$e*}mua`XGcGc8K4jpL*R|Ea0uhigW$u00oYiSA1wmB5i1a^Zg5Ozro4 zQC0>Y{ixfeV3(Z=-Y4&8cc1GzOq&LiCxgc`B)IGjSJsV9hYiWB!Z>Aqi}BfM?%kTj z>YfadMP_=6qOL4%3uy<;zEsw}H_TO1Wh$xFE^U7t=^kSZT~pq&FAR}^MXgEv56RmvCb7LGtRo zd{YI;REqBB7m_vmI0~+~0HFBMqk02q1@L(fIiJoMMA?4$a6g{udPi+{iKZX2i|z^Bg~ zNlwti_Vzfpy|{($*kBo&6EykSh1Hn)fdw9}zI{*pp`ojT2k`0+v1pXy+%oFBmr+_V zpAIL%i1KT=_`DzR({F8}cjFrLF%xjCOg+(1%RB)}IjpH&fnz(2A324(y0xrpTEhi1 zucoQ3j#x6nxDk^<9KxLHjLuL(pj#F*Cgk8d?NmzjBsoPN!VDJR_l`uJ;Nyg`ue0=> zIF4y%zBjb~Q$0MFj?k)Xew%1xis9$ezI^fxqkqq|TLwL8z&<=cbuoZQ-VlPM zk|ZoRC!E8{;V^$`ZQ-JCw=wsL6t~|TVAOaWCt{;)&~*>O<9B72lSVc_k7$~Q&-8J8 z)WFDhpdL?PrbEkyxj_x1%~}@ar*IWEN@A z=fh8-`P}+J^#N^?adaFVdph#6%pusaidfR&zc0BM)HkmkNzkVs^86CzIugh%FTo|X z1eRO)oNR>Yqa{~o>x%y%y>Zm%uBY>vm&hy0$8Kmrm?rFo2W4-E|5N)DKUN6cz_J|P zUS2~}b2k8`B{@uYM~ z=w(%QWq%{t-CfK3{f3Gski9)v>o)*kj;lt`%7%b{m-n=%zme<9eou_)ec-V@k`sLm zZjO%KF96ZU@uO)d;qpGAX%v0-dU7s0hsGcLn$G(k1tIA8_oMX8n@{LT z>bXJuUiY^OJ@%m0nn)?`eL2owpNg`o*5W|)wil*B$yYvu|JVuCef0;VwrqQsPb-7~ z!$8Ip^gR6{kp*uMnsow2pSzLp$ukZcJ`E)m>DEr_Z+np5CGVgt2eFGR!yS=O9c4N6 zE_sLg+a4q^b~v7rf&op{_I{ir_u(OBg3>}tI$wN|5%u+GfMytdC>$f|>+!$%B4-pA z@8CQ;*m9#!P*wobfZ4#~z!IPo_E+7H|w=nxEjw$DwS8#9hx4a3o;SGkzq#<_O+c zFg20ECv23aq37nIWe0E~y~vIZm;XiAQTC3{--R2eBAhyW7N0%lBgE|#UtaJFY~`Sb zOL<}Y8_a54POlXQp&K@BcpjAYIqF_~MJ%uwetXZPVP`jA0mDbM@7jhJjFu z=<-!G{N~Rjw`_IE=k*=_k5mdLnIgJs4Gq8fGkQ2gXzFB4-C)+NS=@EkU9`5gQe9om zx#ylsb#*m{VW4Rryd;%_5f4Brbe|VHoJV$*7o)?*ACMSMAy$3>z0CtMzQ;VN!~GqM z^tV&)>jI_iQOUoO1{1Ptxw3c(x7D9Quj6BLtc2o%caZ5Yh9}DQSTP+|hz={v&BI<~ zTPlY~nomIJsiDtB+ymUr>oK_GtZCeE$w`bGSweQm#a(-&NzOmz818)J4IX}e8L6~A zWN`qs5B7r?fT0Qjn|d3$d-IFvm^4P)d9Zgro$+pdHSGrSJ>h-x+YW#!5w|4Al<2fA zozKFzmh=<CbH_ei*6}-LtLa=*4S?<+o9`NKN zazhBi$$U*6d3EZ-T^CuSllZbE!6KV@qlcO2I208L(kaLe>X-(6`ll)UzO<_<4L}M+ zQ1Ra%d6CYZZNHOG8n;taVesENim}mljGiX6!@%#o=JJXAwUqky>&jKj*}Qr^024=# zW%99Z^An+I`z0D~x@Pd}?Qzc$wfyw5k|XMRL!~ABuZ?rgIfu1t*Rp8QA^^(E%lX>Z zzD99zF*o0QGi%qbJ;b*A!2h`a#&l@S^e%|$kZrr4DJ6DAvwn2!P8Axky$Y~Xep?sYnjHn+36w)0)rYL3wQe|n&tQjP)}R2ozYWLzO5?s|2)!Rb;s z?TX~vlC0x(gioL{u&?k5{Ksn~-?9mvucH?T^gMx{16r0q3xO682p&zTu^X6CunXQXo=^1p6uR+$MB+*+)2eKq}m(bYwNq; zk|08o5x1=+`bG{N_m&c#+evbL5MOnS@?X@@_Q_83(1gBmx{MAsnR0A0Z_hSyDfl zC!gs=kCpTF@2%ygkEQw6r{;3UU61g}d<(ruQM+<1PcJUu#*^pL(X@fe@-o)7^df?w zq!{`VNZeSw(jb(Q%-Ry8tjA(pbCUay&t-j?580=)4pwu5-Nrond|nN&u+f3I%5WDA z3aSeHnu9F`XJ2<(A8Cd0VbU>oHU4;-RY;;6CO5Im)AxawS0K1h62x=Ny zN=HAvjrcY%tPf#&73q}4ht{`n-Yc6}pVD~C?!_ncL%Uan!m@P|woXUP&!SD0bS7P# zd|h23?J++I+rYAQ&>a^Kb0kEQj2&0T7e0O(A1e0|y#GJ6Kl&W0t<7kLf!5b(zHhy1 z8p?67qcH;G#!&i&8)!MLnxD75##3*-Oigz)O4mU*cDcs&o%uM0LbElT>;$>_3gxDh zkhUPN1Wua+E8l?&&dnGA6W!1mVJF13 zJsZ8pCEKPx9U3xowletp{& z6}0`~$GqN^;vTJ#N84=L>(`L$(V$EbEa;)*k8WOP@blgHM|lW(65RWbfAjPsk8}OU z&*CdzzlPJ6tYF%UPm+awK%eV@@?&%jWHQAY&2j!%QqIQu&WtbV=E;cxeKJ?BcY7EJ zkFiHGq3^r>#|=E+fY1B67^MOZzdjYQc#5*(Tz+)R6$oHUT`RFfih$pH6pYrH?X(X$;oSE8nV2j$B@C=x~pfh8rQM~y-N-><1* zsW;B|{6&O>Mz4~XeQRDQloSXZs(ukA>og0M1{o9BZJ9oOA|p9WfzvAp9&1zdu_R5m z`!RAAY7f&!l(HeR0A;tMk{eKom4Jqj5eUsj^*jNglM!Yq06F4qZaR4lXU({b+a9gs zfd`h6h$asRj?_GKlke66C`nc@i?3hvC8{e&@|8b)hlrI1uOF0jt!>^tp3UUN5cFrV+@>R-c|e ziRob>ZhvbHO~UA3t0*vJk~ul6C@-`SLa?ZL7^}J}xN-DC&N`-@9KRb}OIjK$Hcq56 z)WwVuT@+?39AMq%EZ$5U$3)KxzA^G4io$8ux99Tho{ykB!Go&bv`nnGYwZ}$o*3cg z%T~}R#`6545mfqvY)OqHFXE?Q)B?)N+xXGH#!cBkGncdAtX#3 zu2I{rh$a*w!yVk7P`tRxp|&B(tE(NZKf}X`V{~*wxLh=cK@eK#Im6iwg534} z^nwR{=s3(Mev^x<9wlT(-&f2E0U;m?TKIW9*;oiI<*@% zuyXZEa!bmIClah*v6Pu7%w+V~F^9C@m=GF){2a0>it&U3933CL@k{TR-7Zc6ple)V zbWmL$LfO4|eA)PWe0aAt5*R-d(XkP&r~qB|@K`F$ij)Tr3N>V6c;TQ|H~)6&(TBEM z10R&qh{_P#>|wmYiPYJ{Na10#T}7)?L{fS89iz5kd_^CkCl!%#>CPBI8WGN*be-#_^=PM@?4 zgyi)#`TTKFHm_{)A|-@<(#?ZXF4vO~LuKB(eO#+clYH~MCITLb(-({uuFaHqCral( z8%V5gD?DTQk0*o|T2Cx|+c3Sp;Xz!c$$1777iGy)Fa@oyP8FZhq{itY}=v z&(8fad4cRhvJFC>_#Pi?3J0%d4O(#m@M;zTPaIPXJsuu?k7eL&*o3`eHRkbCF=x*} zZmmPh$;Lc(BF^S5khU-;R%2@#_J+*|FIV9p_!nZ}L}&t)N}-|iPCO6Gmq#z1bas1L z7&;MUKLxa)cz^DQ-I-6qQS?&Cee)xXpWy10`{w5np%7sy>_a5Rk2IY8Q-4@A=(VO4 zj@QE{Xkv=bLn>|KyYV`-VPzOorhq5EG08|h;hwD_jC2k1(aoXbJv&uA7A^&r&wJ-oV;KJTWTN#S-OMLH6E%w zlNZWnadq>He6rzbJkmyr1JKhmx@Rj=2!*mWQcn**9@FpzD zgz(qYz?n1P6BqBGNZHfl_701Hj>j_`rI`_5$6=M9eA4**{WO;)%4s5Hdx$2&n7R+I zN5^X_gqD+OL_PGfrTBulV`5_gdO&LhNNOwwnVk)jlM@@5D!>d(`f+F#%Yje?9j}(||{? zK}nvLl9sY!WL6ffZEcJ_Yc3_Tk9YCcbei(h=g@xshuD1EZA9nK$JBi&G9cR~tO}c7jLOHO$Z)2i=Y%9Mg6A z(J9lbH}ypWM}pB zh)BgimO8^w*u6dq3M2gO^Yi)0nYG9y*gXPWR}4r?$>o_MF`_8K*5)iUkCVCo zJ-?TnoE%O+{dC5UAI~M1T*9VJoA}-DemCft#x|Rqf7`^0jR}7CnPT#?3^b1*G|eP1 z!6320rt7&BiM95@)6WuQP%x_7Lah|Uf(|)ehfs5Ze9NMxNJE<5OnJu+j{0Far5sy4 zij)xi{Ixq-(zqU}8H3}d2V3s-$t|Iwv?QLHGYNn9n~1zTqCfr>sYNeCuZ1~f3bLgQ z+0=q(&J4oe`6jZnlk~zx2Eq-M$W~l*5ZJ*3sRaM%Q&X;MEcP zAsq&YCJl%wfd|E9zFw{`>R}=Y9(z2=KORi-);ku-)cdL^3>_{x!_TL#glWfmc{(|l zJ8G|Bar_t($_v8cNFS|VclKvvLK=jj<2`W>s>s63FGp_fCjQzhARU)teh6#djBZ(9`3BKShN(w6t`Qo9oJjuC55h#kq8MyPp>p<M;HTr(<6$kbTUo?>{|;L@rvf8WqU z%-KJi;>ep{*Fd$>33}U`$g7x4%f>oZFG~;zC}L5NGC*ndsrbYB*p`Kqij8$qet!2l zY)2hbcuoHw;VvG?g{_p^mn|CUprvjlflwaGXW-ZgS{pYI4CfOJ7a)g-Gkwsu%IKa~ z+FVR$Zjm#n&HK*p57n>V@RtksLzKGt36?EMCM~>Pz2AQD`wR?2ce%9oYb`yt2e{bK z)`uHX(GoD&(xWj#>2&CdZEbbTZ{EyVW4tKjUc-^v00YA?edL!OgU98SxUTW8YU(YBDbGY6Aw_T_A@3%n4_-5^vgIu`)7h5f7Z`KzYkNpMe_My zMEUEhjoh7V;nV(7PV?qq?yZc0l_iO1t?-n^OY>>PxUJpV!s z_ut<@UY?g!O3~MD&9=eo)#&U@aoJ_XeDRCr*tWyw&6{x?hd>}eTU#6J*RN;Flqq<< z-a*%}C%QNiS1eearlH+o%{H5B&anAHrOkw3ihnlc@y&YU%^PvaD~Hf7l0wK73hUo*tWyn zzj=lS?p#2)s+4qRArU(QI%p`Q?cun*O?+>B4Q~ZbrBPbUnl%N#(kMFV6cR%4%))mt zJ742xl?(WM{WR7&l?ah`1B659lzF`tB_meQd|M6`x|iVWQaWp1#Xnr3Z|uP^9U6wG z@D{dU`W=pr_b}EpjnSh=vu5pD>RVbF)zOX~3So{v2LI@>Zll1gERYUbAb_&cpb3QE zk9SNpG&B(H>Ef-rHFQTh8J${_q)@auj`pwf|XxIvjqHG-7;jUjj%>Dm-p6seJ zQe7HRTe$@0nIdN)Bv>YEHf-ng*=NDLIgnKXQ@;&4!(hrcS@V~Bz|s+#8q)e?0eFEV zF21E_{{B4>W5-Xu1}t-9Q1~*(CNqB@+bq422!l@m8b>9G4=o*+M2XoF1Ky zC-NEb{q02G3DWUwJ|aUFIpo)(To0}(YVmq=lIzE0adNSbs*u6O!$VXA4NCkvA#5pUm4vVJ+y=8Y%?S*2s~R!k*OFk;Z} z9~o;`3~s$`Z~T&RGe676Zu}fVz=Fpg;9H-*l54;ID<(}l0qHpC`mP)KA&cn;lx9uNq4p*=t9>_Y-s|DFMN9mUrT-lfaJHAxOR^Nx*o>1CHMVl z9uNKfH3H@3*xhr8$zIpl&*+$2Z|y6TGWv}VP1BGv$+g!`1K{qvmtmTIEKBl!#Wn*Q zrAeV-qF9*7CS@y3VP|N&=udPx)MIw#`n}(5JLd`t*N^vUHpi9K91(l!a8?xx1-f9< zwjNflZ$~NETGvIuKZZ}ff9;adSVIdMKBX0&Jxy8s_1p-*wX)wfW1pijfJ~ z4@1g?#7Zmva9+E%4q|ZK_*6R?q6%pfqz}iv!{w0NL zGzuMLT3}9gqtoem0W`l$UWeBA3=~6B?J7Qa&6W^?z|51;v$Bc4IFHzCuVB}2?{6r1 zxDbZ8*P*bbP0(-)Bk$SxS0)uq=iK3!B9UlHpp?L``IvU;O|GUDT85BEAyH^(yxH;! z_iXqp<-uVn<(^aQXOsG)W9Y}inU`XEy{OVs&T44qG965>iIY}Hr3ih0Es=x^hE;z5 zM?4izqa_5oSHtRc==%NwHvKM4_lPo5T|Fqva-03BzCeXUgad5<$0H>Fcn8LJ#}RIL zoy48@ancRfGyJtBtXUPqcjBZy5>|ivMHb6eSu9^|v9ZRXC!$ED2RqTaE-(z2oIPzz z{zIAzw$@{BSi=*V#)E(P9a>h1n?l7LJ8m4w&IV>oJeIPJTe1G|cjSgG4Exs~UDL?$ z;z)^<4njDY27T_HR!T!?*$B^6H19MB1N?5#wS-QMA5rU};=|`1xr#1BuA^%T$I);c zjkAk7`1SZ&CT1saQUcplY~K>(tG9iayh;P%(TK+-iAWkdmT*xMufXx?7(R(Zn$P^^ z98Q^3M_F+MEcoV_1}-S-=B#v}_45cGf z8ZEIHCol)oFwg=cup76cHqIwdzn1iwpGQcEw|WLD6-8S+AKgyun9uhykbULFdvu+i zqCAAI?ONn$8fHN*zKRltylSjw&7hYT99wo+KhNL)kE~lE1dc7q$@VklL_fL=64Jah zw$zd8Y$vC?igTxbhGgO$w%2v@T+f@lx$s4%pM5^{(qzmOo4lMLDLamKFm2c+OJH}& z-|scHZF9d{Q86?=h5${6TbIC}*TJ{~NK07L0+t1uH^ajr_P{k6AU5tV^yq&vvv4sLfkw8+DtGHo8N%Y^ zl11Dy@h{Bcb)pX{wms&@YIPgq2z@7+D8VdJ8%xcpPLN8hO2b}d@>}7srhmNz!gH~#THJ}rZ%=~Q$oNZVA<#1%1u07s ziP^567G&hGpjTMb>XTF+aC`S4fF9}3)6mIB&p4LTj~heC?>T7r_mNf})2R&p zU=^`2Wihp?fH%K*5tWq%I8vf(8ci+T{9xgkw0Fh0%rI$s<7Z@rd`P9xgy6v^-sbX; z|B10vMsv;OSMcu%W!!_naU`ap^Vst%x#K?znLVwV&t36VzI}y{wevN4Vy7|kl$-eD zy$e~r)}ZHN5t+jnAfO%o`~AsBEI$D7+bKogYY)ghrS2;mub}K1-65Wxb2Y=S*f`B_47w-N(X&zW70ZWu?T^H3H4>;?Eid zXahbw#K}0jQ0hibHp+3Z+B?v^Ui84hA*5F}V1S+jz8T;<1yXN7`W;Yl&;p?6yT>Sd zKX1}?7fpFE%1&O97V4tRJBQC#)#yk6Vh%R+#i7knm9b+6B}kK^-iL@-adgj87>oegbV zpo7P2;z*E6@w(r`o8SJ8>zexfeC#J*L=&Lv8kQ}o>x}T@*IFs8nnCJ(m2+EKz!MwSz6eTi6Gin8((x#FG*M&(Fw(nG!{y@tk^0zW5>$YOhUlKGpu z-}gI)CYV|gVpxt3LldlSj*+tW9RaWJeE)(usT3_eX`I~@;Yz7!>rK2V|Z#6bVP8ESTWYnalXq#wz~1waoQvgeoW`P+_zi*yhr$Ye}0-6VBaW(wQdv2dbi=OESuz0FXGf}%jnk~SZjYX zyM4gnb50)`Lt9Fi_ne!TK5nj;0~W^F$F<`X8tuTPB=`a*bI|z;?)6Sa=QSMuh{Z$r zsoXhlXo$%ulu|gc1YOU(g4Nu%_r9$V*j?RpJw2bCvroY+%o{R1dttDeqvHUM=!)HX z+igyU3_QI%d=h*f$j^1jwF~kDy%Eqtiry&nMqR#%-G#qwpe>>e@agvvBohv;ofBBs zRK$l*FT&L6C+FGWqPcnJjuWG+>uu7h3W7!$Lo-M^ag~byeOt(k7a_k^_zr%o$(6m(LqRUg*F!f4+K;{Gp+#gBO}W zr5r|97ZB~;M0f35j5z&jhL2c4g;GSi=kVA=kFsgq3NV96$3`3woWj-lmTj?S^Abjs zjmM7HkgaVdq?*~>upXr3olS2stauawe-?*4awY_ZouXpQXrwnt*_IycbQwA!%-SBT zkwHpERbVWChqT9YKy*Z|rt=AZ9yLyi7Td;y;FG?5CK|rX4t96hPnt@Zzdne5P~zV8 zdnzSdECe?$2+-p==m@@9QqIMxJbv8B;g}yf z8)wrdlhFNnm8FOLJ5hP4uH^6c8o|xAt(Iz0UD!kA^ic4`_nJju=#CTdzPSW zZ6IVC$RQ%Y^vt|q-)1&rZ^e=pPd&X1yC9c>aV}AFO?xlfnhnlBZyG_LxdSK~f*C&2 z@}u%Ta{dsk6M@R)?Fq4?ZGch=sU(JG^jo9*k0Z(5JS5R?d+hRe`eK5PBtHLTFiotw zI@bqHr@*oZoPD;-1dG@uMS{qjTOr6-HS$foaE5 z@$>&9Jm*A|lqlN)T^qzV^gqRwAhb-=B@VBgn|;y3jzjnB%jtaSO;p<6W9hHbHk~iM zN%!l^DZFSdA|v1SWz_uO2m2-m0k06uPbSH4Yh#SpixZ2vF?lJeX=`K2Z-2{aJ|8JH zWGtckX6BRw#{x}2G4K`OOYFcgyMaFgOEU1mk^CQ3d&kNR-~!-=yiGM@Vehf~Tm6q6^O_|B}-XfdZ6@Luxrz+r!u~ z7fUvRQ}7mk1iyDGVrGDmm$lRJ=qt27{v_$vR{SHYD82L}WX+m^3WpHwope0^5-m?; zKCh~x^zuu|nt3AR?36z%9X>kdOaNZ2Tg>{7&6vJytW<*Fd zao>~h)@m0^*%7u>bai#{*kg||fBt-a{_~%+Z0QmnfAT3>S~{6M8Lqnw&YA<>jUl$( zpHI({Ffy(oOtts%IpN|AA{-+0hhJh$nMCZX-$C_8&?_qlKYTC7_-d?IUmt8D9ps_w zI-^F7A}=qG;lqb>_uY4M$t9OiUQvOjX{2Kb8t(oN$xWLPfk40Q?%G3cT-Y#ll+cN7 z+Ct0S_Y)X51`!NWT3X6yKJytCE?mg9*Ir9mSsA&xxgS`ad|-KTMSnhR!eik5!L5u; z_n^9U(7^FKB)!=rzVn}c9^C`6o&*Y|bgKOATwC%c&vlMxeY}`wJC4B+it&MFS`vl) zw{03*68U(v6hEwbg8#SuEczlv2W^>W)~YT9b7zd>t2ds(CJpnue`p2BSZ;P@l?h zNmx>GQUUzur*{Hy%k?1ue)-P`kKTVLAN}oVEN^tZGdWZ#;XC1}3S5%i(qa&03`#mx zw(B44Alo}4p(!B*i70IENum`cC?8=l?R<&d>_O9a7@z`yO1g4DNw;5{Ar!?EY&JZl z_Gtcp^0kk=uZk;h(v;Y#Lo=l_?j4LrnfiXNWsPJiMSb0Nq;&I*>g%>M`PgIedc8xh zw~k`;N5}sVtlr0ns;eC(gGwmcycz`=f3wXi$g?Cuxu~5K;ACoz#L+$TUN9x3VM>)G znBB}f-IcT!Rq$qA4k^dSv(7n8a9*S|D@s)*U>^n$k*y%6kUj@}wwL;)MI7(cGp%Ad z>mvCi$AuA=jf^Yg5_?DLq&m6|4)fIrC>*Kija$?-^zzc%^+*Y0DzoY6NwR2F6RS42 z)7qWDa{4e!x3`0Gbd)j(n{kfM+sMgzE18wGiILt$d_EnSHyOS1IQ*k#{IU2PYuHn+23a|fHYceA}ChMhc0kaMudvx&St))5Jrz;dhs{C{rj zCSc@oQP!yl;o`Y^)~P&`yq~xoM_}}Ol~PGe-Gg8A?}d!mx*J;?w6KF&oF+808@t(q zcT60iD+qw_$|H&-qECK0Qe$jRoHK@X^1J0#bSB}%;l*5k;whXp&gBfK$jRZ(#S2)x zEkTY? z7bDx#{O7nFUK$rB=F|E*&<+W;6*)oI~%kvcRryZwHZKpB!vb)}e&&Z(0&@#cm~6kzC*rJIJcsi6pE zNHn1#6KQl!aPcK4aN|W&nclpO#Lph4^_91A5()G^xi~NvLlZdh1WMN^zWf5RZn%UO zhS~gM^S^m@>k^_?0%3URt2@{q+^mnHAmD>U3c|rYZ1mt_a)sac@4oN4bONWX4!hme z!$v_RdSNBPM>mOC38a$fnofQon|L}wZ!$_=Ap3vT|B?G# zU*amdbfOhR5MB9LuzoE7R~$P5DQwd57CeCxH}`Fb1n!a6zv4*iR{#nv=*Ks<3a7D+ z>`#1z&_#36vqIRd9d!A9q?WHkISzJRGv3Z#rm7CD%8KM3pKSZk)1hHg-u4$g71Mop zCxlqR%)h2s^cgu6>(t297}!$w*Zv%;5pOx3>?=$rmF4oah7Nwx*H=fneRaZtN6`N0 z)&f=pKgRa^(r7}U>l(K0(Ajw>fd(I*nI+^-=tWCe97uxd1Lem!QX#wsZ*A$|%?%RW z)WFpH`(F-J;hNXQN2J_~T%Cc(3Gtrq9jHT< z^A(&Vtosw~8@8aC3N3FuUbUXi`(B{vTO;Y(x&g269m3u}Bc^`KZDetP??WlY@y8#} zcfR{wG~j1H`3Xv%NP1{+&y$0#=BKqgpvDombl@ zlI^r{Vfiw$f=)m6Vl<_*E-{js<*O+OrE%S0jo0hSX-VagCAxU7<9JFso9O6PY|lOc z$M79g{U!v+xW-SvwvY>_ck+YBrt)y?d-x2E-=F?P9^P;*%Qk+4W3!5B-uwdXW;@f) zZ)5F}$s{e|_JH5j-WzBTOZTvc;;+4$4$03Bqu5lQy*~w!f5SZH>cu zvpsxldWvB*pfoRz=0hMkNb3{IrBTwo6a zy-i{Sx8SW$lbmSMa7}{X55b!}$QPQCTV5l@nH4Wk5@^YErQQ>4PEitQ;mnE`SkQDT zaa-TP>$5+4%-FZu1(m5+vmJ+ywhq?EIykS?&v4z(ZSOQv-O<4aITFJ#4p~mObR4?2 z)X}tb4bhg4!5rX6#|L7(q!+w5%qBEGRP3enk~2s?{C8AJQZ)5^(wnwJbuN*67f>{M zCjRMptbTMAFPS-bl{{c}!Tm36JNnRe3y8XNo=|=ooib9&$5wk3HaZfWAsFOIC0D*8oSyUT{@h2I!Rq?Bf|5BFc3WUfBgo&k+l;#&>OG!K# zC!S2Ot+k$_+(M+|;4w^uQhR?%nxMTa%?}@_LDvP1tqIq*8Gs=)wk7!5T^q3-MSFJw zbcLM=fpC~py_D~t{1~TCS_VS$`kH+HxG0-fws?^e!amub58c<}V@O4@68JolZ=Bb} z_|jyCTPnjXl$P{9-$B=X&Dd>eH!XTMKi)5!Gu*OzRu-P>Y67!o5u7y(Pjxj~DD;7^ zwfxy}5A4ORksMc0i!OE;?YeN7Teg}kPmBXm_4md1(zk6Lr0#zNEhih#1?M1JTCv|* zOKRSW$d)!pCP}~a8mhZzXgN;~1N>|dU%jT2>Wy=~zJQwI2|UtTh}YB^rb$jtZ)0IR zhOOy)2m!12@Yxj&jO4~YM>6k*VNiYg!MAsgG@ShY`CA5QAq@pyALowiVLA$xw%o!7 zG)SlVt#PD-N?Yh2ordOa{<~g5D%tO~9jNi)vNJ!Ba<9KnnsWK2(&-d+jrEKgF$!;} zl#W;_rJgK=5Hv(Q82(ZK-d?qYF(by3o1NQ#j>ADkI0{~Ea#zA7BL#*y9Oih3^pMKM z{QE|JNM}rmxBu_%xYK{Eu89oyR$tE1e#}cOu|KZ!0KXMN6Wsk6S>qkt%i?HT*?k@X zKU{tmtlR+29qxODx$b)b|K1U}$0&YxZz?o{p6Jxd)?cYue1JEkRDq6(mHA zw>oT&ADg1Qup0Ej1ERNOBEhPE|A&swmBc!AY-<>%&!(|8hVjOe95eekiq4#i_N}jD z3?D}Co%i7M_M!!Y2q`nY&JO&8$lV)0A_XZYO?9BDv{QIXdaC439-|x6yy)Xyc zcDVbu5A(oX&l9dHC*A2GVka~9Iy;KJRGJlA^Fid0w0rpT_$new=ZWLDU5MViYeI9Hnu`LIILKp_gfFC)wI>U9NP?n7|tP+_N@8+!-kbf>T zZAVSjPARZTs{PJYH%kgonnv62?k2Hf9idZBKrhHe&&k5+=b zxZmLO&%OFTU^QfT*Lq(A&4Ear>iF(7bl0=f<92>!?wqm^*ha zKA$^JIXO9;bka%G*47^O0H;7$zmHjH3eyCqQ$d$aeGqbbY=mE6R%S%x0AoFAr`Xh1 zLsxGzz3Bw?u}+lGc~|oEAsZ4cltu6>H=_-!r1zF@k$m)FjPVl)e*JS8V@A0>ON0PT z!#HL%t8%oOky7uBH+A)S-fHSj{WPLkg8t7irwRfcA=7b0RlmE}1%cKv!_$e%HM?T_R zoe}PTq@Jv*>7-5?Lo}Ao^wh@H(@LOJCO1l?-QGh&B7_4f(>q9dKqx|bgx^*Fh#5J{ zIqmKHc)RC>_we3!=mE=;EM3~bv}xtM@=60fpPN6BOgeORrCGMD0n5?{?R|9^3Aw)Q zqyY{PRT?9;G}mPJaDILiRhQ%^4Y9_ilD(O zjR`jOq?uLZXKJ38H(C-%T@0!<{h-gU5CYQ^B)4n|$w)gTnxwU65s9>iWK2>rehy}+ zilUJxVED37O3>bw8&!U8nu8szJB54w_cAR7yNFRp9ktO;cl=jHC_n$4^NpG0`bn;raKnD>Uo!uztg+q>tBm8=CJ-o1dY;Tc|mN~JRSqYAUA z5WB5o*S?(qv#0=J8pueL@X06P9W?@gRLwTxOID(1htUFl?2gVo&h`99$BXYDYiZ7K zYraSQv;qvJ$d}1OV$JmXk-*l5UbfWt^uMQxfi>bT?liu*opY);v#l!!%hqX%glLI| zGV~EU?z62cNo!{UO%s{5xOZ{w+#%@ea5xOdaagfp1(8SupU;PBnxs-G9LGT^iDBrZ zQj#rOQq7Q4*z^U#-;|FYtOLx&{UgI!8G?a=J04+Hf?F6ul+b6NIMoQ8)|5cbg`ke zjw`30#+V6Xk2v3^uRpG>!`OD6FE8}tWXf**LU2bc#Y6FQ25AG24p*NJCsu-E)87a7 zq+MWJQrcvF>tO1j6jEp)liW0BBLOo)SHn82(uwpW%K2l> zZvlgkkNzYky`)u)vf?OLWi9199i^Gy7#ikVft$>_Wbv6aL`IRH+Cu3y34F8aX!&e0 zp~1bKOR1pI!MtXM^7vWwhnt|1)^VP@yz z^mMt3bz3c(&yRQ17|;z=V*|cpCgVT$IJy=;!P?eZrWcLEYkCoyo{27tecQYPj4lOe zXk2cFSUYAeuZ=hnX(w?^jh<|Q8PZ2O$JTQ4W^v(6)YC z|9*25wlghFl>$$Y=jN~Di=Vs{=i;S^oMF(j87CCMAk1^~*MsTbLHaa=L&r_u?7(fr zD{=c@3>>Wk15rQ{D9Ld_XW08icmcu|sEAHvji1!tbyC|rqqmzf7BmP(FP;xwB5df8vRF#*aq}xO=&uT+eZkeGW{H5b?bC)dx@(qo65x>nm}9qS_&&B^fyM^d1xNb5w+hUS~=JX z(bumy)(E_jDKZClo8C&^4&*vO%bfnRMt$5(kdaiga5JCu4S2y;O6?iT<8)wZrR981hhvZ%NlYabJoVtb`X>5l|FZCyfDPjqmum8U{ z2>MMJb7}MND`SkMvY+HagW6$*4HAlzpWR)JyB5=|i{3p&Lx2ci%>kH_4CqMacc;S16l%IUC>k8QCQ%Mod1B;uGc&eQhHmX1iir)d3G1J0#0{qok7tOJ0ASf4=-Q z#|BNlII)7Y+jPzvSIr9#{fF73$1<|InqVN%Ulh=13rZ=G(m@CZP4xA5+Le8NWUUAN z2=gcUH@9+=Kio#l28F&9Kb^RZn})T30xRV{I|D^J|0cfw>kA3`da)dVPczBYa%gLd z^XwaIS-ZTO+S&-o_6TO7NvtExpB|gWFTT8hbeF(NDJF&z%sYN9chnX0e;bC=mh_^T zHcGh3!9z*lo*mSs~?m!-$Fr=wqj2B@#HJj>o(Bzu@uhh^D^BnDm=(?HTZ%n~jl| zjjQMs;*cOG=qIl#$cR7wiSnwklvNC)siuLh zKr7ifewtdNXy!pI@Hy{1_`@IITi=4MTlefcBSyfjx4PdQDj!#Y6rlT{Hw|xX&wOOM z9Ex%Pd?hoAd2vNul{;0Dy8nz0*Yde>f9IpckKkF{L*u`_ zB-Xh^3_{-t!<3-;6WF5%V^Tw&vpgeq|& zbsSB246q$ud2=Hz?Gd_q;$Z0g4Y7CjA5~xM%+ToWjq`uMe4O>0o8QCNQ-frcWoH^9 zX|9G(rkq{u^&@mkW&Tx}rsBaV?)vL~&g0Ide&BAgkIYln8?H^R0VxexYwoCf6`+ks zqYtyNS9!4)1l(&$X$O0fj*bI4#X?|6n~v-}e4h@I)!YcShA)(&`yXj)*Joh^rIUKd zI>t-WFVi%ywFpepaatV8f2dYgm$VQl zkDf{8IE02=(qZy(`Mhw?9M1p5BA$Mt4lT<>O4l#b(hBL*dG4hqo`1Fh<f^e9(dN{h-MsCQWO7jrX6$nMb5!5CHFV&eu9mq9R zf3cgrza)XmWxq(Zu1ELh65H}BtqGn$bGP3-UyG7a991IkjQ+gs^c z{7>>`e;%QG2CcLM`K&bI>bw-UR=;dp_4+F`HS_s%Y+v@`Il|OlxB&TENSL_b+1noC#ca=}Al+Q_7;{TlnR# zpTw4u=O2EPKYm9s`~2g$`oiO=D9z>e`xf%VUGvckvv~Th1^nqx5AfVGpTS?!O&@$p=QBe5I)LeB(=&GD#h4g#k~5)3VLG^!kVN$6lPTQSSo+>6U6??jPv%L@K0oLjfpLS zlUl&hV0E72@lg=dAUExh+Poc(%_UvmMDLTYQ1Ho*x;~u{dj-qvff{}{79b!QhmIx) z`Ylpu)b;3?DnSP@vD86XHcj4WF++|eI(vI!x6sqF4ceOmtW8AO@b)C~gR==9 zA7rEM@Z>ucyw&s;XN;)DZ1fWj#Zd;x9c&p#9iTlN(uvdE@Cw2FW8K$wf>gATSjQ@I z%1=cz0tXoeQ*N!nJY^xYWYko0t ze+Wm{cUjzWq{)Z9Y3`*Qcd|z0HKPlMlg6y0sVkpVbt7ntWbw@l{!7rC52y_ z%ju*nx087*r!gY0*$s~#sQPR*aJ~gfYOJrTWPM#FnAQMNuU+7>{kd_O6A49c(#Nx_ zj?I8X&R|lop$MrSuGcFLKy%jvDL;o*l9UoX7N?>p$ITm2ZZ?`@sOS|frQ70nU#g=>B3_MsJ!wxT9+>d&jd`r zFGH4daPjJabsthH@S3dJ(84Ej)^g2ANVQoEuN;Bb1Fx-a=F3&{NaRiB->VzJXS(0{ z0FBSzziE%QUU$r*Ga+%r;FdLx(1@ks_b)ec-`nkoqb~9hJw|vFN7VIthn4TA>~(!? ztF;4_iT4S^z%0r~82bL3+pAaaR^;1CP#Q>aLSZ`(R<`n+cdEJNjbqTfw%gEGWXuhz zp&1Usv{|t=kA~;{eE4V0=%>5JNYVHdkN>BHGGh^Vd8s?U7oY7V7<3hlvfUh#q0%GDarW|fiO_YhE$WHU z4s63=hK`$*Dj}^LwmA;%Na~3()wcSvI-#qf_t2Fh-PB5S*=m$jnYj^rxYk9#pBh`e zk<`{Y%>0}o+jl?s&Elg<^I#7@kOTOnYq<9SZG9j$;6Nyo@^b7rK~9!nOqE7{u8VKA zcPUys6l*s~dLmHQlxdJD_tW7Ws8suky50Yga4i0{u#G9@KF*tvjfP?%H0mBM5W<6W z@<_(unXcD}*-?%QO<`w~Z0Qh@2QCKFC+E|d#+=uCb6M}C=-CB;)L|Pmq`mBQQTV}_LU!mYJyWyM zZrPOUUj8*=6bmE0{P>;*{_%7#fBJ%-%g;8EX*D2bE!~DqLZBG|1R4s3Of)06--E{8 z6nJy_P-p_@j+{+;^4V;*uV&%)wLG_Z8T(7YE%Nj5Tyy~{or1K5vw97(qZ1X2V=r8U zy>>mGi!MN~9s{W~a@#h{lV_og7>-ILu%3Sj9A}?v%Z|i4?Y$jqV>Z9p9_0rk!&Lcq zG_bv_=-r)XwkI8auqDD*hJ~0M-hbTParT3ELIXyQMh^rKD^{RNOWhdeiWR8JVK`-F z8I?P9`!Y)=_GJ?y5F{LnfX|?A(`s({;VM3N3yxSg{}N z5cH!_LLrnuX$no)B$S}wXWu~-go)n0iNu0e*)VGxB0nFywE<7fdW6?MWHL?d$9Eh@ zGXLdwNXAo4nKFWS!o?p-inCdX)F;V0cj$ zL>dR{Wldx9$U;7I;UsKF4*CB6;}aijSt|w*P6RT>h=YWGJPOsWhE0FUIQb*-O7gV0HJ<`SN1&KQtR*==;1D zBJ0-elYUdUe1Oja(}kegafoi*=*o1*VVzPe-Li#gfW;v$U(5!IfOfzOybPQHEX=r^ zCju`46+kmk3}hXGHG#m84lTZ1)J5ko?6^rpMvlPTvYz@gPNyh08x+)^aRP-8K1yWd zc!tfIf$a&YdDH~@$<3#f}^>F;@XH)&5bNdPXZ6R2^wt-D=tfaIwpOen|5Y^|N z*Z;XA1aGZsWYea1$ji&(_$en-Sa~{TU$Z75XzQ|g`;9GhcJ?x6OgYo9x|)KIUDeNX z7q=xZEvu!esmA^M>Z{4WYRBi%w8Q*W+unV_rl0Y-BLG<4S(9m=4QM)b(H5TC`Z@_a z>0)IW%uFh`rcd|fkd_udeDycnUh^!!n|(8vXHUbC)*;}bQG-ekT|-@Gq$kcz+5K{U(g5$Kq_+igFyx88fgJEJSs817Iy)f=XL% zV?GXD1CYGDJaTe!`1r>^PGw~!nx>%;Y*}AN+ndYC@_F4jcpnyzz{JLslB6)vmBQ!M zh`jL@u{G-mpKu(yrg6p@XHZ>T&6qJ`+;gfAZqDq1iwEpz#*UQ4Q#wy=Si{RpZ)L`m zAA=Gse&;)!Htn0llP(8wA3x^%?bU6Ge6}PCXh`OQkng+96#_JyH+n{Ld*f_ur4e^L zyxud4x>PPXMuJ}3N4phbdomZlZt+mtR9@*GJD?Wh;L4A@+z{7ZG=oWF%lrMwLAIQ( zF==c$*IYD%w^whYtur#DaezIwdEEJRa{xC)8hE7cO&a1ISWb$LR4)ND!1(M+wnUnF zp?M{jRnEkxoBRBmLvxP`ODamT407A+`NutvF>8v(tzUOJrWP%W@sE2R%<2zK8mj2(gq+hKv!Ufl@kQGr^Q_4Rdl< za&p#2#)ca4hx2iYPDdYh0$Eiv@KsJn&niI(4Jj23Z80|0b+dVUH!C)_v3^rK>+8B{ z>WsTNxtaivjtH3Vnh$HML`K2sQOIt$p}Nzha5^)udlWJPDz1=;OjA2cfem_rz&k-B z@wUV_RYUkPIWtK`;%$kZCx|}f;IzAiJ;D?S4`_Z60f80^!|XZV;?Fo!HNn}i*Ao3kk3t_r>hRP8~pq5Z*D4OGbUTerDmQJG_ zo5D~Q(<-Yd%F1zV|H>+!Ub774B#EaDUTesqDegz(VCi9nk~;W%FvhkL>r`BDat_bE z5MpgzlI!z5TzKYG9BFX;^eGe+H1P2sz6vskPdGFh9!@A9&%~^kS+0^m=z!vD{ozO< zkQ(I19nN0YOJ!G@u`MYcnVLgwp=U?y8g=OMBNYlu>dX$dur(E?!!Zyd({48NczbL= zQO9J0zXyPOyGGJu`v-}4k>L!^)zi!lwy?2t^givi1KLkYDbO?msVFC`o=29`LSENq z*3>5%J1&RjwzW)d{SSeF#zyIUK<&%_EuI1m!PL@fJ~{ovEN|M#)9V+~6lq8G7#nqd3dw(X>Q&?N$EJ3=Y0rv z)K}zAi4cyPNvxqr_UPC>8YU70x!W3jk+CBJQ4j66v=Z}sT;8q&FeC~yWw262_*1fh zq5zzl6QeiZ;-4x>bx)WX1W`eqn6k-lPjZDY@i}oGO1BY19^~h{V?Rg~b=_fX6x~TL zxmhk|(A67aduJ9+z1avejp|KMIlO?6Up0%5Oe~<}<@t2}=SgC#x1bq1y4O2E&$+&U zk`g--#W%cyl8;|W1-nQ_LIb3e+Z|| zC4<%rhY_50DZx2cqUV(!a(yM0q$?3&a_Ly!s$WB0PYc7cizyD}lXB8T(sANeioE|} ze_Y!qyu$5)AOLAc@n?--X?;DZWEvgC@|Fgsl@B8sYub@nH$=F|k=DQBNb6SsAmd5Q z(ZdLxJsbbY$DwD35vGArT14>tQ}B$dBKGV;((AXPG~Hs}*mUF9za%C3Jl zG;HQNZ_fQT=0mBI{=5w|8zErPr+0Y+r~mq#_t?jZ(Zlj6%5ynJT03KG-rl*7Yjv@e8^bx!@qeil zx*>2fe0zg#Ceu522j~0H-lT#ZTrJ}8^O8aVALB z+;;X2&2B7kvyM(sl(#hD4b@Blmg@tzkk|2TN2Xk zLoA)5rKgKXJVs$|!M^*#0uoa3_oud_q(Tpw3`(BT1)T|pzdgRiUDR4OI5u;tm+<|Q zALH~%%Roq8Uz5)t7iIIx7B5ml*yq|zQi0sx9v|;DnF=mDzKhF`@5+>X3xp1KTbi!> zn(2MM1C^EteK&Q2&`(6AXJz53t|l;h7QtDw@Kjf$g+d25-&`qBlJcBVzH{bhxbFCi z@SEO4w%=~5etEB^-w@Jeyy**ppqO4z%jEoR2gGvx;(Pe?N=mG^mw^ED)L9tQCZiH5 z>?O-l(HH>ssx>=$4IBcW>wx9~^ob>1(i#b{s>7jbc#_7ATWE>eWVhGg%N~Ut^TQtY ziO}CCpG2TQ&u}(7mYZL35QlSwZ)k4~Pqjau+oL3*bh06RQto)fMp;4ip=jFd& zg6jP>%VJ^PTsfcXF1U$cRt|=)WgzQ=FI%Kk*veJkF$oIh}h14D9K8?x?F>fh|Sgx3wsFie-R<|e ztHc=vCB;x#3L`7rw}zFv?_m$N(f8=MeK7yu@4Z9n5AA!SJQQHtT|E2FIyTj2AxGDf zWft?=x-gwqBiEf$f*}er`Nv|&cDzD?Zm_j0!plxAJ*Cq)q2d%;Y#)BF7jMm4s#6wd z8lLJg zJH_KQZ*b0-6B(6PwqJZi{k#U5JfyzAl_4M`5tR-i3p5Faf>&A{9yh({RpS}s^-_?X zjb+;u78Ww^x#uV>D&q3XFW=EO6p&som0$cKqC(N~{QYPi(89%d!c_#OpGJCn1HG$O zp>jcM8a@v= z9z{noK#m#T?Q&1%=DR`pmNxXv^*VioHbM}Kr9jW%^Rbkhkfjuk?Q(+Znd|LXzqQ|9 z9~je?67V}b{<@&++GAK9f15W-a%ppXyxm>Ph}wl#k8 znOFJtHOr7T*gXQ>Q2qHWyIY1rxc1F;XRYViem5V;-yQMvUKTEzVVH3aK;&D zaQp4Ila-Z4Zf-7JU2aF_vOkD&lKxdKaXKueFgWmw@J=`8ooW zC1~#vbdMBlOlov{4N9^d#&~S34gq-zj2$%|Qb}6kU9?0x+{rUMJ5A;xiVq;%z8+c< z&(xWCW}ZOu(I-eg_ApvO5#jHD7w>6vNWc0z#^@@vf_!9W7w9_PQ)XjMn@(!M%LwV+ zFS97Qefy9?=Z8#>6c^z??`*WJFtW3Y*uNjddS|W66JrjJpDQVm@dN_U%S-W2pGy3R zXAl8DSQfIgd!PBR_eFLn%SOuzp?YJ~oOKly|M(Rz%%9JV*Imb*ci)X+7&wm8&vheo zof~hsfo-+5{NR^A#5=r#mT%sQ84e)~1LZjTeC?_73Q|fzB#vH~?bZUWflu0LiL@OW>blvmp_QuPE^b!4t%p#+Ln`j}JJJSV zm@lyp zrgAuU%4zr}PscN&3a6u$t~>t)wmq0kWk1G|)=zBCsZ+?y3zJ*ZL}{68OEooiFnV+u zO--Eul$PePd2{2S&qt0fBi>wqciSp((uW-2)Wsq%A zn?k?Nu%N-l9*f4fg`*UkdM!>Z2~ZU_S=^G?uaur6Z+_h$@`rPAibtb+eDpMwfS!Y< zn}qX9k;+GI#WYNRF5X~Prl*tuU7)Ffc{)QcYj)Nc@_!@^dSIS>R`F!soc|xn%ZjKP zdjh>Vex%idFKZ;8U=a;l-h%o+Gv?C2W*PtwosViOc&^3Zl~xzid9KCan&DRe-#fp5 zD0y21pgEGsQz{5}3^q1)bK_-G`O{r*A{E?t*;Hz_cQAcy5lPEo#p))cJ~S4?fvu}> z^_wju!)1yYqXlc+7#mw7 zJg~HpX~hPwY+8(vg42dyLbktWN9?fVZjdDa1 zD3UV<0|tz7U~Mq=Ivddvodd?kfQ`w)X(QIvrF|8&KAteHcBs1K;Vh@YPmr-`a)wnKVV-zSt7bLL8X8Q9? zgbDunDY7kT2%Vq6$WiFNc!PjUy+!nCKX!|8MAxAK%YtMYmanzB_972{ui*QCN>I1m zVg4+W)tepqTJ0DD8e0|De=EjU{x8n|d_KVQx8}2Ywat!Z2g@8blLde)|9vRW))$j) zL+$dkq~iVuXnAqTkeH3#)&WXq<8ba=JK+d+Pk6u2!#8O>!3A>&|MO`&@3@cBFWdw| z(0RwbB)9FP@Pk(oTegbmYby>~hg90J!&f5vi*pEZ%*-0Cb$@#;J&1R?e?GLkh`pvw zo-f7J(sl|03AT3@^5BNav_*r1@GJWJPCJJgbCoApedT`r3CCf>h7C-aG6mbV>Fw=B zN{QF&rMbC{ zmStg@CL1} zl3zzzeivGBLlM(X3#yo2w435^m=0Bl5caSbL_)aaV?DjqNae*hwTxtM z0m2s)2Bs%KPj3xQS|H@n0WCCdO(H$shhQa8vU(3Y8)y zQ@ zFZLWfayf#A)(Y(044Je*EiE9iL?VI?d4@zQ0dawjN{Ys1V5Q795gKllBKkpREd^V9 zGyLq$PR8e$Tres~Ury=JR3LHCJ6dK7U@of(q6PeJbC{;6?cT;g7#W9Sh`4*seNuKJ zOtO17PSW!X3~}& z%(`<0)4l)4#Ic1`&Y42N;(7Sz&&M-mirb(l>kMnRvJKT2h{_ff8-~I7Q!XV~Jcq)f zT$*;S!edENJO2-_C%{=(UPW))YVrf4cqa{^vQ6(9++fyS!=`Cq+Yx5Zax(!}uik@c z=3v_cWOscHXNAbh-@VMVq3T-XFuH4h7J+to}-g@Z+I*!NDb?adkbjoZ_j?koc znsn_jM<`}A)M3|0qA!#~^47oO{g)5m{mhLxYc}9)--%PV1J&9-Aoz}l;Fl1jQZ}ii zO>Z&-V2o z-DiG+;q}n7<7r-NeTmo=bI7}UIn~0GwdeM4o5ea^15ZjQEs<1?@^bdMZt`3@s%dO? z*tE@N^?I8()@0bQ*=Fl*hwiXL11XvdS;Y@85aZSpO!CEiEV^3HmK6%RmuC3`ZW`UnMaA8Geajf`+*9UOXc#JcO-G3F znS!(D2Kn*_i#dC45U(Xriep3Q^R_e;1d~BnZSm6B-n2S#AKu8N;;z4xtPDG{- zJ*M2vE%bV^^Giuw`~_&;j;C!W1cF%UBr@6s!Z>JyxM|X)gG5XOnH??c+}-Yy6lVRp zhNe!|*EQoQD29UK5udkT{p_bF)K*J3HsPN>m9Br>L-EJ1C%SS~7AJiNh!H>vBU@jR zEpqjE$tkTM*DI-yN$kj0YC~-}{&SI*n?aDaQ~0f5wlTp`9;OM`T?aKa@TD)o(xnGJ ze!&9x`OhIsHaM&>ByKLTkS;Mo+ZjC3Qi4jscUHiCm%(4ogG(NVZ5?ichGDwr z8j|QWC@h8vD_i^K;P84>1k40?*1w~+H+dOVs_A9CaO$=eD(~##4bKRH+ z_}qj)F}iUF9Y3*XeaVkXhynbh?-sN7?4RaP`r#Dm`FZ@M^(ub*(kG~kjCDU8aYI=k z#s2Ya_p@WDN3uf0FX8G6gD;FRm>81#t>GFfV>HPP8Nz>$lXxSIo9{GCY_Atx1Yi5w zTQhA81Ex=Z>+#d4!$S|j-u9mm@Z%rDV~@S#Os?UKqv^iFJ=5gLXV=mjNpj^yv$*r& z6+_Rt*WW@2v=Cfz;VhP}-ofk3wt;EvM+Td3kt6Iww)8DDEey0_p0Lly2x$Bh9n2z4 z{<+!4ph{qO3KClloVXYXaWfz<#h^3=;SwMWC|Qj$A&qrT9A}S-+TrP!her+beCP6? z948CVaQCYc2qiHqEPRtJx}SvD;~Hm;B!!Lo?<&kGnugED$*hp*IAm5hbdyW`eIY!- zDA2>nW}5qfZ!#G?m6bGp|NC@3`Y7J&YC?18Vg!Q-!@!9~QHcck7hJ%o?|hf?X{T~c zI!!>>*du6w6y<+r$m^H>aP<9Pri)04Jak%LEv$*Z&-y<*N1O`&z#LrOW8)P4JsLUgW30d4g9SSPHg-zq*)zJoGiLyL2uq z*R`mPxQxifO^gj3y{>Dbk(o%FPg=c&%!s{Kf^gwuLXZDflajj_VXy@)FYtZpH zXU5xD74T5@kxwxC(({K9`5aY1Ec=_LfY}`o%D8g=wF>C+Ye;Ie$0V_46CF>iAlcA} z-QGpf$FD&MYsjfaO5SM!k)&i(i;vlbDa@qC?r;d!o`$!!h`fot#MMeR?a5G5oWMK^ zlV}F?Ay2jj^1SU71|7oTLUy+-V#Ya_GNnwgrN^P8OH;SO!<33%&Mj;uH?JEh^>Lqb zc{~m$6Qg6tqx9@~5r6)8K$Ga%ft~Ipr}Q+W88~WNOlXZn5L`5$G2i|MxeMlHWx~+s zntS>pkOrCVZgNIdV&nwha?D8Kh$^W`z9h)|EO_TZ^zR^ZKo&si4e%`nqXc62x&$-( zl2q=yeS}I12{;(U{XyD_%Got)9CbC5*i}_aTTvNte+b7g5E_Kek~=%jp_4luhw{P5 zJA}Zn0(|hEGgtD%XRl@H*2#253b^o!yRi(LJ)OlMU`$C1#YsPptX#ydoNl}!oA;c# z5&~dKg(1}luM#ND3*$9yc8Bu@FrPtB|A307?>tt9>iiy3wn;;eG)o5Gy;oE z!|vVgf5&i$Y=jVUxUgGqA3Q27SzYWHwzgR3h)zAQ%6BiK}Kv9j7CX%1g^Qr#PQ zTSr3#9IW#bIQ0gk#9MAcNQoS6BfQz%m-%UAg+iGwRDq$p2dS%Mi8Ov;Ppuwf3uG!N+-`*Ne#-hCf=RTH=? z=qJ+HL`G@8I?f^@HFlkkg;H?gs7ivd1Z(fUkJD$(bcqgy7=FA&Y0`}?r1vzV)9J&O z(V5nEk~?=3oIP#Wu)sIhw479$M|&8+XrLH3#99Sx08*}g2s#kZaM~QnsWT*VXG&^D z3j#inh9DBr>~7MmT&H;Pbq9|HI~w!|G(F3b<7$C6U{55)kDqO!w%E&*QZI@=;-LW~ zO-c_w?|5G6S;8$F|Awv7G*`v>dd*i5(lhKed~#4Do<2-xu#bUokC9@4&_!#(uJ$;; zczhdvOCHtO;mG+zuHWo8(`}Rsiu!+l_9L0{gg83lc^aaFjP+% z42di)MKv~Jo^uw-n{UN_=@sl%Z-U2z+O!#BF^owQ5MHnAkM#B;D=We4fq3EweCZNmV4|d@4k;c)M1+PaD*8MiO!@EzyB?2eTm#}KSaJE2tWQZXvp>WG5uZ~L-doO z9-C`+bIroxINP>1a^Z!i(AFAe^_x2Zn0?AvPMtfJr=Nb4g$pK9SP;s_=8yb(Px$<( zL$KG=j?Icao9IqPsV%4=kx8+-aWiA`%kcYM->os+&brp^bj5o)uXZkF!Te#dLl5c{ zddNThoPDye5Y^SykBR753|Uyn-U*S1lCH78L%(`v)xr6tLXc-x>r9>qx1#{c@HC?15f7{|wDNI0d|;--s(T(#IwX`wNwkruS2O&(~^<1ftxXyD@& z-CR`?rqpADg3Tr5v7(xHx`xl49 zyOx!INuWLp3pz@X*y-vwM=2VBdLc*wK8}DSbvU1y1pWzB0#V>2E}X>1?B{EN_j2qg zKn#g+BJ^DTUc?!5@r2_vfAc0`33vL6bJ#Th6jXi=xoI2cj8h3;eilXd zJ_1G#N3zk*z3jV`mF98!X%ncfDx#w^!s{#R*uJYh+Z|FRXp%{!@%cx zd45hiWek&Q-B{$7?TxH>vz~A`(chG>c62cdPn|$m)%KFy4W4i^$MTI!qcM|>kmx)KpNJ;JHk{uPmN)Ks> zA;9IgMRQ4BCm$Qr%2}Q;Pd%%+<3V_CIrR12)caKcOu8CQX{;Vlzr(E5+;UTd9bp$n(lQ=KY>^yjmzJ zO=-$gnij8Mdc@s->vIGZNkNNO(CQT|?m9{ScPPNCwxK*^vu9<3kAI|{$9JC!8m^xE zG7l}uLyjvrwlto7K9vOG8r|ujzMLd^jh8E~smI^!A(k;%RGmgXnV|D2N%I-yjM>tL zx7S7);$*7CK}>O$s&V*nqQmgZ5-FR8)(Gw0aZ+iAhSmrjJqgko+tt0=1Z|RIC7B-F z!J@o%oKvuoX?e}~3u;jn@53|h3<6^p;;ozshL^OhXlRPCqcP0ZUEQqP(!siI?QCiY z(-lrY#sN!$Wg=NzX{)ozaHPdk)_W1 zyAC1K&-=$*MWMG4r3W5@S9-~{a{F z{QEanGGkmm=bbqdaQOIFpW*ozlgKhZAA4UldsaV$GwTv28?&i1bBLsezfaJ9my8f- z0fy4d+LNHX*QT~T&AoH;Sy~$;?v=+b-%o(lnv~-uARRtbxSc<=O(P@h{<=ZX^x9sw zr*e2K?BdkhQ#pifFUSmikrohG+T=rpTL?&pl;cGT8+C~O(Mb1`LJE>yDZc#5t)yG` zpvp~N-(&N__$n56ZsNaQf0?$4Gx&V;Qr9lg2kB?-BZo~KDp-6JMk;Oat{7Q+!!k@R z8b63RI0#Fg9QaU^^pE5}Am4fE&M z+X&50aQ)&^Zh0_@N-E~OU$Y<;r7~ob*zP61E`%_>Ov6vP3Q=i#`FpCBJt{q7ZrVQc zI{W5A3$!OgTf#^4j$HC{;-H}?7Qpn`XdOqU;DYm}^Rf5MG?NhZ-i@r7rRf5X)*pOw#Td!FRcEicfM2qP?CHn#Nk0k^`Ge#?_JO@~R{ zezw07fScl|82E#*rwQt|Lu)&1+5)8eQi%kyl*apF9^-_-PC5uRGICqUL(5avfQt1H zdFB?PPyGoe+}cl!?DV$dbnHPTW8_}`MPxAlnEJzsOp4}62QAS~y5eC%9zWfQ2$i`d zbi{k;NkrJvv5Ts_(vyz)VK^UJYy7!m>FjRj_4WUcs!=^e(^&^{&s; zKGFIW0O)jv#PiGX&zgvlpW{Aj+XkiajHx8?!V1zGw?jJJU(@cwW}50uR9x4)-8U!M zG5zt-=x;0ujXJm43f}4`adIz~!s-zMma5$Z4)L0d*8+Z zb%9<)P9>%LMDUGa`2q2bU8#{pdYt$pldw{0~M9v z^WYmjn&9OZk#228^yX}As zn(xJ1S#2lycA$)qko0PWYRnSwYS&+GzuQY_u1(&V8JAk$(nOYr_fNA845U z*Wor>+;F;sH<-(;3DYsM{d%*&;a;|`Ad-mj#`X=|{LkBYee;`S(kU`o?6(hVJQ&%Q zc|n~2DVV0ouKIdvYHIM67G&j_M5hzb+eOC8 z=cIrRYAQSNd-V``W-Eym@1(@+Mkq~h0=lA-4pGLa#2Uu?yD)@-t?EV>nc&X+O6w{Xs+7kK2p8TcmTaP_54 zJp1f4VqHGW+%%4}A3U`$cTQ^xa|9n)Y*C&o$j_Bj6-z#Rw#DcIfi?w?tjzGnHn%=o zYgbSRL(ma%cxbJ~y4Y-%wX|?;(?iUNtwW$j%8b}Ia*^e?l(VK2_~K_VPMtHHm?jxpWp&okw|<7E$X)Or%o)>2C>tX`57FL@up~zscHQqa$rCHHMA>=A4);TlK<@<}50Bm` z%E@Q?=+UCUbZyV(;Ds~-ybBc;`n@iMwL|H z*f#NGjLv8e(Rd6k4}&X02y9y+eFhS+Z8cC_A~c3nIF3e%JdlbrYFF^>vmWBS8LL1j zUfoc{uV2gKg&kg$f*hafD+59eTaS*rSRZxc z_k%f?`ebkx8#8iq@l2XT;Pk}=7ca&$X%aFNIxL*wkmP%xPbdY8M$hF(mwk!T$Ii`O z+Odna`3(DzZK%C(+ms6PC{;o9VH^FgQ)$xAzkMr^zn~!}* z_Y(~#mqY4x+`2<;2-mJiXE4T(!~2ozP&@096DGJm^?Tog99x6a9Y!yG9f|A52`RGJ z$;s@|!;#4vjTDl<-v3KF+dHYQsikGhUFd0FAYNQUhc(O9-4(O3Tk2W!!mZ>l{&${! zaVd2>H}k*WyakMGefH6|^#vqt&CAWOwo?;H!;4MsM?ZU0k>i1xMS?Rbz;B3S{ZI&a zC1*|yQd{Cd2*~vtF1I0Y@r)c6jSrwTY;RBV)cVLV%MA7dft({Kwf=g&$@*2j5 zjRez490iWlgZOp#Xa6#+_Af%ylkyOE45Ga;d>O^oHiJo%bJ=W5W{l3II|a*|y-X;u z*t%0Qxk8hO#E4})pgbVfyn%X=$ah! z9H^N&NFZKhV}N#h7n$aEa2$kTV7GS>eP!iao|Dpolp{&m#!)rTrIaU@e$t1DeW(oh zYf-(gqdM+~Oe=V*-3QwFFj&RN!b_2%SvXE6n`@{?L_hScKb_8iWn}wCYAjQc>Ge}s z6ycKf!;p}5-7SZ z?O}955v`5wtgqDgwz#DmSt{Y|oJlY|ZoL@{_-4n092Ejgjpy_Q2*V(G|3j!u0{{6J z;yvedK$HCEnl*?nM6sBqN-S2&m`knRMdi!m7YeupA#{Y+5I|#qeJ>TK1@l2+_ zzRTH1zcvH|{n`fq-DmG)Uki`huT2k0NCY7q9-R5F0L)wQP&t4QgyV@eARKKxz}A9^2* z8du3JotJV~>*c(ent(zfM5@2bX11v7t(Rt7CzKq>JrX&XpHJ=$ABBQ^RzLALIVF{h znlKG%n8>nH@^8EW_0WUR(J^e6!->{U?316o6x&hwyjFidM~`KaOr^21eZVuB3_h=C zug^1hOi8}HvOgbkL@=qlZ#nb_uQf`8X$bPY2CYelxUKOTf}kZ?P~zp2lXAIhM-)p6 zK3to_GmUY6yD3SY*C63&T9Y<;UISr>Y+2CZ*%&9<{0>fcw0r?dYG#p+M;LqBRFct7 zDksjNb>}8Z#>~o+6S(-mn2Hep{kd7$o)L^#FzzcK8T#5tzdK?hdXPA8Y>Cm8EW&8( z#uI2FlwXab#$b6vv^TA%bL(w5y&LIj{xpRZGeJ4Sb{*TJk~+} zBf?{$4wRFu!ITE4jVsf!fw>c(dBrOlMll?bIV zq(GV$-L`>gSi|Pmskp%Dk_6AS@y$*lvb`>aHL$Nd<7}*Iw*W_HAi3I0@(nL4e&p9+ zxTPCxt#kP54L-j0n*`;>k`G_vAul9|#t%Yn3UH1R{4=M%?kx+%*|v$!!MGec>yJzN zs(bqIYn|DD-icY5PtkSnLzoub_dn`lg94(jzd^y(mr;1lWu&(4I5hb<0{;K8)GYhn zr>$|dhz*u_iCc)i|Xsco|zShFKTbGO6RJvJXX&*s{R8OHfj+}V=Pv)ws#+QuLrY=dMb&5DLi zgZ#h~b2tJLCa8XOtjU-|MWn`UX`2?15PSK|d)ov+V(VHa-uM#&AH5JMHPQSP^zK+k zF$;NZ!#ZyN@P~Qtx(&?pn4}#0s3nz|3^wnD*e41w1kBjqF?!&&K%upu%u0|`Rn09s zCbKK2hwX`nS+i#q|2yvyJYIwEt-28>ISIou`OD7Hyx+H*QM!i?N)Tj*1w>KGK=@$n zm{(c5=_06z&|J3%C+)>4(Ktob2puPomm=fICEb-`!lak+1T~H$kIFjk?C9XXzxYMk zL!tg4;PE~Zi3CCjrc4-5NytK!RghV~7HJyTElsFs1gpFPr#nJw%O?Djry?v5c1Ig> z)?7-a&t-DKD1?;6GpS+JoUXAd(WHf7=AJctWaZubeBr+klSaQoBg{ilPFY|rTO=Jw zMfu3eyP3IX4QbPZJS67(f&I3xLfpMgfc+gabiWO;NRZOT5e0nj`_J;9-}Mog=6bI! zEB?-Z|L}PnQH&HeS`Ck&)5ZYU zSE$J0EpsWb5u9>%gn$;j^v@imqcEZ%WD>2xYiJ4sX||Mivs3txS+d5FlrUOB$^mZ{ zY!rRZHM?#PcDadc!CqgZ<>~nzYC;yzHpOY_&7e$ibQ7<|pvJQ!s1&qoI@8B?DX{yS zqbekg6w@fnS%N^OlT>W(X42*z%(`<0)4l)4#Ic1`&Y42N;(7Sz&&M-m3Nqk#9r!+n z#c@!|!RHH5UJQ@?`V6L@`ANpi|1kOfPv9$>L7-qfXyq2tY7pYYN&q;}{O;S;QWO`5 zxccguELczpz|y5n+<*TzT3ULuQf=Tn18Q2ljbt25u3+^8F^9T{27@?#&A&&Q$l~2F zZoVLXga&2|Hva-yR0w$jHMR$;GQ*b`@W!xup{{x4XkJ{_$aVkLO?NoO!nvg=UC!rj zmHhU`+c|q`-C#WPs1GSXW;C@m9;S@*@aozGi_XhIWkG)1*1Wnl!IW_xYHK{mOy;Q8 zBSs8Chb0()82zpV&|wK8#=B$RzFd8{tjt+3y-*UIA7k36IHr+({#Pbg(-R5U_r{TiarK1uB57qIs5bZerCEth`+x}td3J<7PU>FnyQqa)eIsNiU{);QWZ`uCZV z*c&X;mV-D+oAmZR&5<0lj|Od8Id}s>I+iZuia(vl)eq<4Z{NYTAGF~27P9_FKZm9~ zetF~H`Q#%Wrg#hK%{GqO-!P1U%$RgqlS&OF-53Upt}+-~YjVkDZk|yhtk~J;V6GL6 zs+X*KNDwdtOE0gYezhC(yLwUui7-SP1v|_nT}okk44jNZOG^taEiF9v+;iFAFsQDs zX2y&e%$+-zQ%^mW>C>lERaG^p`OYCu?8$M2W|amd86QmW+iBampg0T)GHI94UkbO7 z-H^}|@$ks=y+nFOVNQdF?5Q!e;P#BqsT!h8(~_Aww?H2{yUlZSL0oJFW&l< zP%;LYNn-5T=x*$N$d`SMum0$+L%>Qjt({>~X*Xz@u@(0}v7BYA>yBDd^q$716Kbz@ zKlm`QH&&6}-AKnD{>*F9dj4^4=%_XYJ>aWu6^d8Nwhx}yPgj+yi>}3Wiuu3(BSEdPF zE_ju*_}R+O@KWm{Y;7HqU9h5Q#Svg53Zr{F=01vXlvZr--j37yhFf@b^npMCyb>-i zGx)c$22*n+`{PvCd;OK#k|BI&g7~tu8y6D881ybLhcnJN_~Y~PVDaL8e|Fn#?^usv zSmS7bGz2QG_}1qyp{A;cCzq_Jt1XNSc#($e$Da(tE%Z~dB!wlpeCzY?Vb`8cE_v<$ zkREfNbu@GBLjxLo8H3z9lT=|7wmdP7c(XuJaDIm1EIa!&1l>M{5f%lIB{`BPJBlKSKpsR3@OM70C@qUjOAD!8yYN<2pki@) zmOPKJEK)5k1g1`->c9SzqHC@}03kFYVBtpoj}~1iRGSCNF_EZrE6QGrVV;dJJRC4e zuHx9vIwbi>b37x`*61w;tnQ!lMA||4J!lPyL?&ApJjnPx7DEaWahvC!ZUVpA4^U_X zSc2Oh*hOP&5Vsim>sJg z`zG6Vw(-!@Ygl}0EwA49|7dFMVd?6fl$YkQXwEoRtf{9f9OwP-nZxz(o6p8=&8*wf z$lMt9+hp*-7f166O zw*{>f(e!f4WyMz?gh5&+lsGg~p9;(Z(>&@8pMWKE$mj+`N@R z@@3RlKSkx2ZW@^dkoS)vFTZ`y&ks*zD22}T(>XiH*lihV5<%AMAXbaw)Nq9Dz7+pA zJD(q>UP0XQ%;Ax(?$gyiT*0qVTBA|C(Y}V1(MeI-B5j*&&+K7C#~MZzo{K~rn;f7% ze_TUl%>CPuurt@i)cf)|z2j@>{o}8RuHTHOs)F{P|ApMk&%-}`LO*@5LP}i zZzdfZS5Uvhk4~nk$U7ZRXc95I2T!I08OjCyI)j)lM{K;jZQ>zMvj9?#q}<<0C|XEq z7ewRR@U-UQQyG#X!;G+pP`HHH*lu3hR*Tm-Typ=dCpP+UxWv9$5_zp`>|_`5t_>Jg z0F9!ztLU`)S8qbcxGw=+b$V}x9M5*y-)2Ia}iRy&9@#~dDKY2 z`>fy8N=U5+?|hK?5W5$25`2rmngpq3?lFVEBl@Wc6cTVSi2H-I6_vAV)Hv#DCb6rk zmbRiY;{FhhVYsQDS)Rr_*p4ZL2 z%NNtun~&0h(M9cCIcF)=1pj%ElYQ-jqglH$==YB} zcO)Bs5rh8L+QIY%d2mgb(&TQcCn!>eheU5Xjce0b>eFm$jNuIyp|v^)xiErtA40p~ zPmhP0<|{PrD&anRKA*4t78%E8y)l=Re;$i6PjS1~m&LM%M+f#1Aw^RT8(Lzd9fcJ8 zAj;osBr=L!-AS5z(7w|4Fj>^esaax9xy_LTG2 zvKn@k1-SXyYRJ`)8Nm3Y&S=%^s`bTEs5A0pxOVcv5eSKXQ| z8J>70OU{Cm@8t*|I(RJ4eo()BD<63s72In#Y7 z7&lr_J4TQjgeRX@q%*L)S&u**tgp#DU`bZh$N2NB?fmeHD!hi+Cqy8GgOX{^56vUb z$fGpBmcB0BgYDemz;~Rt;J;a1x6l688l~L#26tR)=#2B1=XV|htvW*fP?oSGp7v9> zaSf%pHU)$!NdA+R-V30tk_UcvDfLTNv2)XEf(u{MFn@}iZdC)$gd zPLQ-qNZA=$Iyx!zM6vA*mgPCNwoQM6jK(%CUf-=-TFcE$~#`tk$majy&cY$gBKSnB)4qN~_hH?qA>hwV2Y;*@Ce`+dPdt5?VnSnUNr{T`U$vVFKKmH@ zk8W(&c=j=3&pgfd{?I_X2w@7B2WU7(p-LRC_(jPyc5jkN6WaLkzx|F>oevw$kIvh` zq}tioy(T3xiB!W!j`5Sf{o}AfRT%KOmfzt4iiz+#P zUJ(Ejt2?=8NehXj!-eyUsVMdy`~C@9qy1h&n|BfWug4klga4w(8c*VzKf#w(4+@Q7~9)>2?Tuj{a#kB-oeV1+q0a=nk%oIPaxo1wy z^pV<4Cv<+)+srF~tsD#~=}AV}(7KbAjhmTOK7nPsH;}Y5MAGrBEvMMlxrbFvTd3=7 z#ABGQPj$r0P#-qxq5LU&+?cM@)lK-%|G>=8A#jqv=J3}`w)?QQ9gqTH8bn@RM&mbrKy>LUWYCX_#K<}C zbO0jHy@JdMQh(!@X#eBisQS@2$vI;_S}FG&hRnu3hu6?u3GG;v@lB? zn#C;I(k2hI=ke#}0#---I9Z!~?4(alvQVM;wNF=lCj!KdCE;;O}d9(Xmu zpP!7edV2;(4TDVX=ez`=HHL<`C0I7f!)x;^kqe74W3Qthdliny{C}-+VsSEEy@!{U zt{~IZixZ0<5dqNQHdz!v0tf?PDRB&g+_`Q;^YD@-^e9DGDH4F6ebjm$&Cv_A0^@PZ zWhMgMz?HbMuT?-fuoD;!Y|nn@sNxXrKGT@wY;B-Bp2RQ>yc5PEy%u>20s%Mg#Ov{p zt{sa?XE3CJj3)_gZ9rpY&vE!j&(bHp%`-1;;GRcT@WQff6yycC^upP^?~*xGRTR?I z6XnV0*K_~lD|umA-N5G;&!MWKfZk}5mzQtlfydwAzQ^3y!o+dqeD^C?bH==hc7duApjR{2Pb5HKB@a20u8~R{Saep4cc)C z{@~lBpL>DurB|a`+YrIvF{%9@ocjW9gG8m=h6_52`K|1PF;*E9RXtHGx1L`+M1_Z2 zbLQ}be-iD|i-l%|)5FITX)bSUc6k?ZxoVYCZ)vPE9J<*9%#Wmr{Kt>j6$%{(O>svi z9v}oLt*H)J{Od=mxx}-A*Sa_H%^SYY<4=7YAvE9k*q_<;kN@Oz?`@|laVmelvw__y z8z~OV+EnZBV2rn$(Y`LovIZScN(znE5{wkDbWdPbP6OR`09zZ3^LG%mQnaRXX-VZ` zN{8_>!vk$|LD<;_2S>MFM+&Ga&!-^Qf54v=KtZmbs`7kR2vGWH>Nh>)N_x^!UTNP% zMmcn*B1G&I#oioDA*t)#L$N1^t#*<(yX#q8GKCUvF2^FPLFt~;1<(92 zMAy~~joT&D&rNggRf-3G>Z5sS2(Of+lw!wO4h5Aqt6zt?r|W*64Iu!jUHP0jDh``)%~8{4*RJHGZ= z_Ftc)ncl0(2x#^RqK2S4p*gF=%|8p922n%cRWQF>F{4-Ea|X_FB)d)@FZ@~~XMU2( zNIr1!F0P!bS+c%>XiF|i!HWfjTyj-6zT#do8L*C}_|h6-33Qu6%r-F2^P+1F`s(o=ITbV$8fMVkt#^V}yp5 zRyObGWXZmH{3E;WPVvDcx_(@4KVC)1evK9!T`_q7AVV6d3t} zz*z=4R~g6OKIx!Sn%;YC(siz%n_Q(pLf3C>LKhq4U2l-{UW3R34)K>9obLTJ zj?c!x$heL4h`vJv(}DCtcCDmUnwMK&0R&gpypK7BbCCO~*A_xh>Mt8u^IEa0YZVXe zdXSe}Um>m1Zeu;oTl>o#qT&*kCbP$jur$7DF`{jr6WitmCX|%1VC;D2jhR4Ow3oKt zFiCqLpE+q~m{eN98MTus&B&4*LZBp+ zMQpBlvxnNwG=DrLm#3?IWQI}yCJ*V#T(rRkUW%3S(@}5GoDT9}cr-R{zON9VrA@2t zkz7ZhbfO@q{r#Ab|2T*_wX>&_j*i=sU>6S zNk-Vw)r1;hU;W*H1ZeHX1^j_Ry5n)|+zMXo&PRkI_)eVzaYZVSN64Q+Sp^tEptKs6 zxvAc?b6D?X^hnsdL)4bU2{?>j6z8I=C(zcE&(3Y57&oq(bKhG*ZT>^VH*^x;F)C~C zDPkyckbKB0p%RN9C3e%K(?`+O8B~z31-6pl$yT1n_yhfo?fd3MYmF0+VU?9q`hm;ITzfWu4>j|*HGgH|?FVmrrh$F7Z(l?h@|O=$^y@)OY90iU=DVlhApf(4q#p7ZeIf-zKI zWRZ4;kt^!eBR@rI+X@n^p2F^KMi_&f5h1a=n@OyC3h$J~_)odu*kVncyQ%MPVs}pq z9q}+BkDquZ$?k9~V+$*>mBY4<1{RH;iQn?RJN@w^@xirg-$Y`qOf3Br9@`?MEeZ=D z9BreppwNxS34I*IKab5g(fSp*(pHdZXrb#Tw~}173E%vg82LG*n>&cTu!7{$H8@?p zAdR;g7}|}jPf3U6sGiNabCMnB{xhd$#!`RT<0->)D~Q!ux4?N@Lq%((AsJhh&quGA z#pJQY0OSU}tlHSb_B~xFM;#O1$07BIM~E^AaWo9Jk@I8rK2~dukOGm(K4QzQ{Tqq6 zl+OCH0bBFiQ$oC2=^>cWsF7Y0e;aD|y|R4MFx`*F>gb?!`ZNONWy43|`^3ZV9--S` zldB+H2kCY!tAKF25-DoYmybg=HPh_mkW@A~q8X8DfoOfU=F%9E=8S`LnmRi>dHnIm zhwLAf{oBx*N7B7)u#@~GRKaZ1PnYG;PbVutr3Cfg2ojj);GbYq_02dHpH5QuNt4cp zy;Oc7fmNh&Vgg|t$|5ol1y_R%KzudG5O`}5rJn&jBsOfJ{g1cP{m>IQJ-uMaVdDrm zTAqYf8h;=}Nq!Mh8k824V0nEcQpqeNJJA0X!$6rKo`3Uo5}DLMqp3sW>g@cVn@^}M z6pzQLtgIwIKc7S*K_C#Iy1E+Mws9PX%F0Ue^73epM$wLg5%0q3?LvEV(Aptp6*DL2 zB?`O=QmuZxj?Z0(5*!=i35dsR%vd`The!-oZ4tC3e8^ZA^Ylv27VA;AVuhSe+*`bF ze|ALmo2#3Z(o858eCuMHKl@WOWe3{ zruq!7-*yYv?70uA?GeX+Tz*SPNqBIQ;Pv+ekg=!G&p$qJz#zT0KYcgkgzWd_Ti(%! zbHUk3k-(@NH?{TgH(`Dal$SZYyrhwcA4j0SltDz}Rxs(*%#pVH$_e zRoqu=H*>~Ry4#zu(`m-nR3S`*{GxIfEiuF~%VUzJLFtT%#5;S4wRMv0?tRz#ukTnB zac~{d{`83T{?kD_byRCkwUP&c{iK)Y-i%Aaje<3 zg?K8(#LCfVrRnJHCYg+5S{@A3qOrZ1cq%clW)8*Y$R4Zo;B}`lvVBRNWDtbnjEO7x z_L&cH-po~i;?)gB{Q9*#UfAJ9Dai4;aS)|lZaX1H7*5dwpGWbvOPiTekwhWT8Ab2Y zopj&Xg592Wb591>e`IsxjJ!NNlO_^ayqMtP#ds!7LWV*IttYhBq#c{yRFu|eHw`_l z)OGD)M_1z^%{jKh+#1KTxt%|)_!WOp&PjoKsP@BxQ};c;w&UjDg#wr}r;actc7U<{ zjiZL2^?g-okUn@}eJ;1YlFui;FprFaJ8yrPHESaXugosNx1W%^x%Rkz{vX)u^@)a) z5An#d^>|u?qg}2}r?Z>%(&gy3R%F#E_d3_DL$tQxbavq}43}$2XTQ&&)<-ADLCbVU zIT+Gl<@)8cb@bp7g#SW3zgdX@Q!;YjU$P(D+GqfVRlUpkM=eb z%1k1fGD!zEGN)!dhRAg}yoa;;T`25i10vatl@U}FT*ze=`Q)d&nB{SZ_i8$#Nkpm_ zJG~0SGZVA{UN6B*FTpA;Vbf24&yH8$#4wE!NcC?!bor$f+dB5}(59DJ*07Pf&OQ9( zr8`+LdKw>?aSkQH{I}SeT0>_%%suO$XKBL*RyS=Ul1i|ybq7~WJ%h^J;w+ot;ad>e z1kcnA%_$EFVNo_JO`ho>5o~DG+_}SMcUY67;;dP_w!h{t7K`EY`G`a!M59r(*36zg zn@lFtUo)8F4^U82!{mSY7LkTs_+$gB^?5vr7ujRPNRIX~x-^a0CeWR7NU!q|wSTk6 zXOu+Q8Ip-453ZCvxFL^Ue!$0%E);z41)Dq%Jaj4Cd9R;uEXyO7?BU|MNt7eV954nm zsJ47>-Pw072kJYt4|{#@&y@o*M{wJt9VGQRJa*$Uq=0Y!aXxoH)`rY+kKr9ykC{mB zgE3nQ*gF>JHc@@cv+3`tItcU7nGDzp=_oEbe;(5(j>fhff&nkFc#3c&PB7@>$A5Sb zv3vvCG~Dw@Nk1pYe&$*$hOAMQ>f?#dawQ1^ol*U3Rnu3W!^xVigRx=dVa9;9TL)(3 zE(E$DRS#CSb|zB@-Z7B7(0v%v9I?IBhc}s~WXANdY~R&EG!{c(km(L`#{8Y!@&BHs zW^|NHx4<-Xe<|79U6SbY?KI%P_itFr(<^I;XC%_lr~}0b_c300;RS4ap#I(G5q$JL z`F!ifQmQH}R9q9=Xw&;*iugtwmCV+28OOA+l58hmY+;bm%Izt9pu5(3zzQC5VDb>x zi?j^p+M%Fm{xEP;YPF=;4iXm8`Cto?T*{oy}N-2pL&wAVF;6$i3PMSmYnw|lrG&y4U|cn$!0W`u+jM60X=r#x&;jAL`}IJU%UNoR_& ztZuYOlTls}Zv_EPXUl=*B?1xy0ei6ze>j_=K`CLp*u&6O}G(OY!iM6g|CqNZr@orl!uO6)iZ$%SYcQxbgxIn|!nQk6l;sP|vw^ zJB0|Dq>uT2;2G}wL7p*Y^>MxR_hxTic9`nEn3ei|tR=|Q~|(^?~i#L3Rb{yw+Sv?7mRHKHM8 zi7bD!rZ(5&>~cSGTl2{781=CXvkJVVm1ajYLp0;&pCoNpri3ifkHH@{MstGAuNd?{ zuRjOS6jjf_@&!mny71>#P%$AF%j+8=V@8$w`QisAj<}rt%14I2{`LP}|86pjTwHW) z747Y{6c-oM)bKh5mD8yy_wnXaUmzgFVa}k zBiR;}{eKUBe`{1QA!oS4v^nU;S6znC?Z-U)SF|Em%*sRTmG1KO)X!0ehL{9c2lbuGNHyNB~9mQh~h zCC`&bYpR9K_3M~7W(H+5zCgHnIXcxyv@sW*iQ)6)yD1sjybNKu+>DV-7$x%wR=*cK zmE>2>=k7HDdb_vrYIBB9EgH?nhGwRYE{CkVlf&eb_NjFhmPDWR<8(`MuQmvtl|bh1 zqsGPqs#g$u(NFIK0TL^{=%m;m4a>n}%vn?S%Rh_r?N9mn_NV-8t#>%%G>g1q$@5Fy z+)^n)*>1eJs!a03&-?kv2YhVWd(id11U>gC(!TNh5KTLq?cLDapynp`oFHoSYCPB_#l~wzg7TT}@9< z55>jB`;_m8s&`wv75{iKL0yy0zh9-eY=NTIpQg-Xb8B+}5yu!vXcY1tku;K}`|Qt! zk%)f3S`R*E(0}{A>#XhzUT{7kj|U+HN^1(Q90ywR`(NJ5mjCxzK5ZumVz4`HAJz0S zbHt!ksoCLpSYCb}i}NQl?bJGM+j1WjoBoZ$szQ=chjE*3VCH2TnVWkGJ$q6-D^m2- zn-I}MgJDOch!r{mwd1$Y*ftd_*+m(zVoQ^xryS3Co7mb6#olfr1?A+2b}(VeHndF^ z1Rwbki^qBB;fHBBK{kj|ik&-m(%scfCX;4nX&$<(gWe|}A@8C~5tavS+gPP#3!x2@=iGoTiGnzvk8xB(Vd7eta&+E>q`K(>EY7tud$(YJP%Jk4@YGN z0(1wx)w0FHN?}Ngi?%(-rQ2V_Ha!DpI9@cJa058fvT5!u;Xl6d2w(cQ765+!%N2Ad zOOYP?kb^vLCol&W3lsqnU^dW%+uWmzfu_bDpb*FdDskH{<_r^9`l0DdkL$g2(_XLt zFVl2b6E3AonD&XX6xUt}n>xZg`HIHUAl;m0W{iTdNt+)$t7yqIW=Z}=K&EBazR((} zHRB6CoLcNn^~-(1Z?q=u3|Xf0e0wyn|n^vpNFrYnpnYXx+AWXG7IM5 zD;SOG&+9)<2!^>RYoH)V4{9YMuo232+7yyTifNSPEI}aCNh&sXGimbE8ci z;@Cne=S-ns@jU$V=erHU0{;GOpRpZ$mSokFzu@_Men!pMLJ~=bqT2JAd)bf4%L(*5 z1Mf^CZ&wCNY0%Qr&AfRPeB>ij`vLUd{&qQ1da~HUq3Mi)rnL63nOno%NPM_Q;SKS_ zTI#8-Cb8E&paq_>HlZ`pBU5OxSKq)_C#8nrq#4lJqMgDMV2?<_%608%TQPr5IY0j| zx4G))zT@!m-+zcdf9g)oo>tc{V#P7qmZnd#V1}R7Ta!3`iD9}|;`k+-8`3PC;m7nz zm!b10j)*B(m20pd>>N_@wa)%;RjxtAe0Lxt|8YUV;d_zUgtxp-o9~zJVz%WnJa0*d z_)cdv;R+KmstK)Qz_gA#q7=7Th{Tiz(M$w^;QEQ5 zW>@Lhd2GB-%T3iW?4;0Y19;w)5ejNFjhe0V|m*<3&A(>${CZZw*Zm4l;I zKRM@!BS;!lk0kM2fOyR0{&r}T~I=L<8QFEAaijMW1I5$ z)WbGct+R;vH1ciq-N4cjL);FX74E5&Mkn27PeQoF5tGN7h*KR#KO5x2dqZ?aGT?zp z69tikX2+Wj6@>;r3siDbcn>cUr4ONyQec_VP4HHlOva(UzMlH}dLDV?5!avgc&M$d zWyXvdCm;F=FnnH<2ny*j5Yiww=%ptd$5Y@(X-#umn7eN2;(@!ja{b4r@{^m-rs1yVcEvCBQF{8W!y>IUhA9bmCt1HT&Agf<%XhrY ziVaVpe9b(uzKQKSJ^+T7DdYdi!ZC_5-gCHM!TZ@6Uc;`{i|7f*$tyH)>|@k)Ef9dp zN+>ObDN`Vo^{u^L*t7{u(>><6Fb=Xg@D@D09Ug6fNd=H^!Ioa=Ou&#FxIxg5?vua9 zk^O#uuvEO&$k5uo!0|ad`0V6A@qw}j@GJ|{^mi|bO>WS2aB-a0fCA~)aQZ4%HzP*4f`IySpJJ6@;j#Q=;cBugT)ZqbTUqcr*}NX`W3Gq{n$y? zR`W=>q*U_nV-05Jhy%mPdH{1vZOhR6j|7R=QjqCuB!5yipXfs=jT!Lr`ETD%Q9+Q2 z_9-QqK*!z*eBRsx!|Aoi- z6TJC^-pix^_~*S;s_wVr`x?|~AuzOZ$&RFSvmbGrUz(vH@yDN`>mPTZ%{-Ts%#Kp< zk$)lQ;&X8#(E}#7zU}zej}28XCt$n91I0R7YoQdH;vs#wKvw|HNnBK5<=Zx8tCA6U6UFXma)bJzP@`%%>>_HK9L- zPGh#9ROVW4thB$#1n?NFexnmC38r+LO!gPhx=nPn&`4i~rDQ;Yw_+${Fy)d8 zdR<>4v2!em`Z0KG>dBeA691Tbq|m6e*KN=(+#IgY-2r}!1(z)3 zr#D`RkqP7XN_I3#&Ohyk5b1)VTt0aHS$zGI7jXIcGfAawetPpWZ@*RnnV*ku$`m3G zKZ@Png5B1JZ`MpalP4i8Yah?3ue?^EuxZh6u*P|c75188r+YGULr1J@jDYXxVYIo0 zMRLJnIrRPFMWUeg(e>qVt1?{Ts=**tPly_Nhi`O=C|J zo=gXGV&!ZzOIdAipr*YJHQ{W)z!0EMI=TaROW(gjkZcWM_SDc_w~7uOAe9>=6i+eM z4w1?DiFM>*rmKl}EhD$gaoY`z;8cF=-VYt}ccf4_DIeFL^(6i@Oo;7bO|*&Fu2F>Y zn(+h^OzSks%^1A4X9{<`crk`IiPDE-2Y=^XzJ6?!lf;)d4sT8kpz-C^Vkf%?<%^A+ zZWdZ&XlMYuH%Vq+qP|IV%xTpiEZ1S*tVTaY`(G0o$o)`wg0Mp*tM$qtXFs6 z>w2ym@%fh}4Ym17x#PbjStE5-I$JT*p-&>*K|u?3Gf>RfMs*Il+t_4;ZUip`&uP+> ze*eSI9J8{JOGl7g5^moV@q6Z*x0Ui2tN3ZTu&zpYO4JCV5qc`aMm;@qt z&P*yl;*GfxRQT}^X}^|=6!3cT!7ZAJVNxTev)Jvl{kJgHp1V3P{OPg zR;DU0N|^5y{JQOU6~KD`s6XHJoip`#j99Cvd$pVCg}&>#zFSrpGTy#35|(UbW3;>9 z^FiG059^U0{D!;`!f+&Inv@~gfS1am>_f8Ciz#4ZL9U)EOi2oOPCC$t?%m-i7m{*Q zP+38}-=jIc?f*H}D|R&HyanrKpf7r4c#ijQCh1>WJmEZ-^?Me_G26QLInQi=uM=Sv z_}EIakZ>G)$6)f4g?a@rh^Ld=`gf;Y=6#{}D3?0kwwvEN1mtz*ZV3*~q}tqNa7tqB zUR5Y`@xo|UNRE=3sQ523|BO1?29jj_-kkQA+n8Zvlfwj9tzX|Rx|LZ+CHqhgbFH-0 z^DfPN7E!-mg=(?8qW&phl*K7|A7cuwf;r-uE*qPPD5*DFKZH?qO%x4_0P+e<3^RN6 zC>jvP+UG1)!A+uw*n16fA43_crhA zhw=b#E&^BAGnreeKD}CUc@m`cv$3CUu}wTBWr0yBV9yLwe;cdCR3JBgPO^gs+-TdU z9P=-pw2qdbdeBAe7{jlz1YO>{4~-#*7)h?99Ldseja*4mov#ND<-|Ok9r?U@X9|}^ zR&Z(G9?J&j4%KCS662hw3M(e7ON$AiG4MMx+#hELFt}j16h$lvNC3`EgPravr|5*B z6CM*{6Koe(ltnCBxP;_2n^CDJDzX`4DpD-zE4>2&>cJZJaf9{$2pJt;0CtSQ1!4UH zyphVQaUtcjvGL}ZLyj*>G9=GK8(i)^hkFd6Jt$+qa(b0$~6hxbwj0EmDpR%l#c--6B)JnNPSiC=$EqB&%1qy}^ zcfML~AsGoIOW0f+K|Wp%FqE{PNe}}&urO{PYwZsD*&aRkj5Op}-WkV8-~G0kKR-^J zH$28$;jq$$Cxcmqr6;=3YkO~aW+bBlyo(Ctlli>3zmGG}WaQV~Nw|8xKM&sDX1LFF zpCyA4gFnbuvXw_zCV8kJGjx3IuvAOzw#D_v4%g6ff{odK*2Kr`@tt$%o5Z04B(%nO za!HqwiJrrDieC?KBJBOsH&a3+NjAo$aeFgXN%&&^2fAr5kghLuWckUiSs$7j+I=y$ zBJ|u`*cuxY?cHr$xHZD{$45WM*a#`zI_ z+anvz3}dmy%tql?IQYMPOdM~CmKg9aPTn>^!#;JFaLC?P8!22@4UOVINvG)%0~z5K z1SulY1(v?wGTVU+|vL5T_-CP$YX-!aDopAb1S@fw{8wrM`;0|?!56W2ai z3Z`7^jyhRV@Ca^}|4XH0m`clvvtuEX#XFZfnwJHmfp>fGurg>$<=4C$vkhb~{;|2B z(r-h{phh9B<$l7)T0paCfJ#>J5X=|J)=+EgB2?DxxnsmOyGaYku?J9lT%L-4^=9!qQ^hTJj6&gX9Y>|nR!dS~H( zcWT7wdA#42+^@!z@M| zb;8NgRWZLAEFo{)05_~HorEdn*TQA&={H?K-abv1oa1=?ly?7BJps8W2 z0#{`1A8=FPWkgX?4lTA6jV@drJkgNgrwBcGVI=glR|qr3KS6*^2Mmf>6wwO5t@8QW`z@%5>?|^{d1>TvohMW(Y-ASY>C`TPv>ayK8Ai(H7 z*QdW=C}#p2DvQ$ksiW4E+abz?WqK2nS+<%%yRQz1ksorfF7hh}=Y_s0;=KwppAOAT z6QJfcyg_wyIG1@sp2##-|B)UV=A(c(`7obwRziVSvYN#L`OW9mg#{A65y_ADlj(*6W_Z(G>ZRg%z^js<1N=Azmsi#%bz)J_Z?r3pKJPk$%rTe*0&F*@rR8XY}!LEk`0=b17}GfNdCyvr4(1N#f2Xf{<}6S{`%mG~j-N zO_>B*VHpiGRu4OOUUd{OR8xh+?!V1i(D9pOL~sh__!hpEWb`i;pKNCJJk=&S#OQ(^ z{s%2f-x2y74b#6}Wb52BHj;?A8GA*R1wp8#reg)b=9s{b+vB>)`vFl_`?!cpKZe zxh7W*>z0;!FJl~go74Q7`jsOVWRNZhFkbqj5GPy9Y6vuh?&(jMSN3iUR7_8hZ>+@Z zD%q|i@Q9Mg*zbBNd)2ioDG*q>6F$2y8K)STy8Ok=F%kBPn8-kd3{>A~QkM{+L*T5T zNoa~}TT%uHPM^?x^SJ0K#ned&NPKi|A$Nt<`hR+I`-S(q4jQoUy8f&+Fk! zPMOR!hv%72kH&L3SwkaJrf@&Ns{=XnI~y9u$%i&LxO(gSXB_hdeUy)V*yNJqfB|Ho zzimklY}Ba2v9r0Jq#= z*4>$8MDu&1NZ|{Pw^7pkZF#jmK4c(-&nBdnUs{M$-Y`K-9Dc`@6>mRt84`EzM*MH^ zV}#F_@jq-~@yt>0DvQY%B}l|b)d*snqX`yeZceShL`YUswZP}YtG%5Gj(TFPA)I<- z+yuH8zFb259I^~qiPz5wkRi+OiI3c}@{85!=?Xh(YXv~=zT<~+J4k}tJw~&igsbnz z8{DY7Kt)&{r)4AF_4*)N5ox=pD(Cp)6g|zZrDa0z5t&z0zQs&?G6b0vT1l4$@jm38 zNNIg+V6Qz%4|(w1DDbuB zxAAh&MJ_EzR>^z??0^z2r!6f(j}yImGL{Aczv#gZKGD{C>>dIv>&jK*XNX|g0_9PB zs{wq-_Z@#rw(4Y#?qu8f(x_!zQ_yH$b+?-RBMbs5!-(d)kG{0xt(Bb@;e_uBJ0dQ4 zyjSO#Xtd1zmiiyMujaD*=U7FG#?M-D&aw2$23uds%#kCtQn3z0stsq(L6+5r<{0At9viW(xPMD>nQ;;4=4{$s7jpku! zmqsY5Yv41P$0!lGR%f^Jfo0`rD(GBYBRJMg{=c!Ik|viAx zUl%ooJnE`K@!ubPuE~I3VY4gV`+M#wGIP(hPsa&QYKvKjLtRG~nmbZTdhxP;;T_~c z{9F&DvJ*kZ^Je(VkdN4mu%IQVp@zGh@@{!;Q7Wdki#;o`2L?bqDwzn+>^IGVR4eb$ z;Z`BlY!D!)^X1X`?iErm;88goN2<|O1k)XtI7q1>6C<-{U8F#5Cf$VV*U61K=<2NiVlQ&cc0DY_R@az^T5aaVQ3NbWcBBWmn^wZ$Z8 z#0_-)LFW^i*7U@95%r8eZ`>|YI6k2kFNI-t5m+anxLmYiwuOT_TM2x3K6McVp2M?W z9u-^rpGn|3<2pvuRTVL*bu5~ZQ-?%+HJw!Oh4!ToUPhT4xl%<7nR(w;1bJk2cpgu1 zS$SI-Ch8hRF~*mn2$cuZ9S5bM$A9+Cop>m2^SpxO8T+}mg5zYXhtvJ#b^Grq&t;NMQj!s9AWU8b%vAZ$__@9 z6hV&S$+r#cCzNJ0eLauclXl1LXyuq|a^kCRk(ZBkFDz=96$m>#JCD9}qU45G(}M?| zBt5*{e}3=3mf(R$25#Xa{dHpUitN+-)*Dx!%6;Q)PLQd5zJ4m)&|`?xxsDxCn&=^0 zwd1F+--{Jz`6GuDvd-kzjwoCF;W%P*;hlVejVi$AMNt>;cA5Bwevc16Uqd`T30lAw zY_3`|Lkc^N6mz`%4^I-UN{Cu(N4dXJdvrSh&mb)ntI&Q#ik+sfiW^dA)H3z{S?20| zX}M)VRJXDC1Ct24T9u)|ibC;5Gc$PQ+9=gParTsSt5Q8ajLQTg`ZL$d1?Ds}!%RCjI-+0c68W zEVRE?Qi4$;Fn|ZjCeh7m zN)43ACpkdX_(eG~UAk?MHtb*@@bG7LR(@n#(o(!;nbC>ivOs$gNx5~wFUidxmBWMX z*RCw$M@+F#)`C`&*bb8yu#=(;ToUpUf8>F2CBPWg)vS>`D9nrU3P~6#AjqUk6{jd6jm1@-OP)oiB6_ogST z_L+iCx8P_O44a4wL<&d(yKmJOS*a)~`xs$uHbxF^4KUv`%;Bg(w!_8Q{>^tAvdr@` zFsP|6=G-xp)JAayGsQiXB1TG%$WW*3omLYa%l!o5^FUjVT}b><6sUczL6Z8^WTAkxeUu^>iKclyvb#(_3+@jW&z8KxgNf3GE;y;G^mTw~VnOk)PwA z@1ARX6n`2PgeRizR@HWfcCLMYOrp}`RFJpRv$~U+)14YEZa9~8Ie$HjQI1l`P|=PW zEX`Rg0heg4b^o+mwzp4qwy&XpOG|Dtp|2tBWB)<*;L?9SmPmL&fUmn5&ko=+ZfD~o z_8Jz0G6?^X=Sfb%xEZR>J5t_x!$J5orrS0ecNh2s*?F0>0y78$Pp#06mhMHX;f&8t zL%s+$SRb3QK zqT0u?RbkfdHN`c4EfNAVH0mqpl&gy&)%IRUHee}GHN^PS@HB6DpOeYr!OVXXi~ZBm z@Eek-PC5$e`>oc*jl*$Jx7YL`ok{0&dlE{5jnhIY-+zAkY~J5g`njA z3b%@L&KL+RDKk6+%eZFwE|tAW-XYB0E$y78a$XIeVGHXBSh(x!YxP95avyZ(K> z5%K-aXVJ(F0@>R)>@)_Y3(y{vJ-yH?LO9sD0eqcT+%>$m(cC>$h!f|1^zdp1tFoEA`RkVZ?W(_j221ZJPNjK{oY^sMSC2>( z4E_b>y_NVY8=vKKcF{+s$?`P*hhK`m@-g2;6={`Zb5X)LtZ^l@q#16mw;PHj)#ji0 zS!~5Nei#XBJ)IVmxT3bb5iu|yd=uW7%SN4c&+H{t8DM!~hbNzYH0S5|$g920M9<;$MIDbu2v1DoL36dB$+lJKc;5^x*uK+0Q7+%Eiwi$)pN!7*IE{w2naET zp&Xwy9XY9Rd3Kp!U!3XqY1QJr_XUeIPmp??TXMyj*a#`a6f4yahpa{#5cTY+^AU?B?44U^(wyFY?ivWL4O6WtCz^y7`i+;S5JrwqosEL7^ z8gd7t_<0-gl)KUY9&QEsB*yaVv&^wHI*Io-3)jj@j{m-zGUgI{@J}?HsaW9mS9G3& z&zQoNeAuKtQ)?*dgsmG=WW%oVYv+qi`l#LUu0l9wZh2m=xxfSHog>T0;WSqbJ0 zla(4>6&02EAI^dozpSw+NYH}S_^%uNGhKg!EVGo@MFA`mD@;iUhe7=K>c5l5dNda| z7X!@1%}t$!Q`YI}>GaZwSwK;BbxdJlVN!O~=$P6%z#Jce6CSI&juv5>&e894a+W1c z`}Ki=R7u2$2i_ES3vxO<7-=(*G>rVN9WV`M9(QHvo)uAMh|ch{rP9<6jSnRqW>})9 zFqpY#^*>GXXf7U<2%!ex^CtpVgAWA9SeMRkDT`Uk!*G%dXXKM|gKAl@LdT^PQt+nG z;gB;~&ZGuFOj3+$huU_E1yM;995{Lr^u(!bsr}n;MD!C7mxs5Af&C$>nP6yP(4rF8 zds4c*!Omuix6L!E%{rHkCM}ZXWvcRB4Jw zC!3zQ|6B6OV8t2~g*8TL-$NGh{UBa2Ud*9B>J-p9=VvKGJ*`LRz`Src<_G!*Y`Dw1 z$+{uGn=3Sm)h8yXqz2?_7FUHIO4FcF_x8@=`f&sH*9p|ay$e=(HjqZZd{GMsK>#KJ z(}T|ATg(7__t6%<+v*TU4SEkmf(5!u~ul;Nph+ zG`@a#*O?}!@cafZ{-4drh~P@Iz1t8@ua6|qarO@V2}>|`Vbg{N`2|U)n1*aJNE2?U z;bS{;+wK0pJnD>F@BXs5+LA}vRH(GMVg6q}!pfx%uPYpLTb&tflc@#9ml}I~hiFUj zQYC~G@j3pt@YSSeNonvHI*b8lXSmt45u+#b?K&QNqPc!vJi?e^76{>faIBtAR6toA z?j{9GB3!c(WOI=MI6M#2W`Zw%1pk2#ecIN_AE&DY3QPUbJMg}iuvszge`>f#b0jit z3k@M#E}1T!&-_jih_*9JU`cq*&TQ(F`aEIums!v1y5)Ss>WFvWzbhZQ3a|+a?23BP^3$vwWrqWS~0l=AP0m5v?^?ljA(J;4Tj8G?#7b28d)DzzEhFJ21hmNu#<@ZfnnwEnn9y!ryOUYR7sc@Pbd+i z+zO`?t{8WY*hIV)4-j~9~GOZ*LH_fS$>VBi8zWSWjx6PlTDy9uw>A7 zF3SmMFR7BrdS0pyFXW%`!-UYj>t;q+Dbb)yCP|v%JpYzNb-lCwV*>Tx+1L3CH9I>P zVU4_XJXd??+9M8tT;_P_Xq&{1g1^R-peSX773PATs_6F+kOs95^^+`S-MTaoV5${H1rW?R;~aD^p%`(BXG1^qni zudP-pM~=R}-q>NkpR~oqJm`55uwWD2$HgS=e{mNoco2JWSYp5`gaYtgG;VT@*eTQ< zMv@yfUnjbC(re3kd`XB{@)m0BxH-tMe5Jq@>^^Z&?q`nE+}ZYTEt|MQ!E40C95!s@ z^AP+5y6z(1zfQ|Uh=KX|uFOXf9)cDOJaoH!j7Nd+157MP?G(xX9ST3sPV?br_@KTg zm}1{`8P?$31LbAiP>6H<{2f!ES2MgSL1CESZO$s0i%@)7!j}-pC*TA{Rw=(z! zc8qB}4-QUMX>^#M8t!DxVe7Z1-MbppMl4WPm!EIXG>jx?9eOmurr0!^$n?DqCo;sb zr6*B5H5_ce<@7j6d6mh%T!Gc6Eu64Yg!=Jv!LR>v#TDCHCU?_~1Bpy2m#V;W#fB8x(i zKzbk7Yh;!ZNGx_U6>{kR^7%Q6`}802&}=QCO0a{{QDT`_sj@3xo{WB&NSxy)ssF$) z?hDv>F_SH(NECJzkF%)>HRROY`USlE@YBVx$MfV6Mz=Gw#n*F_)5BK?p_`0Yo(>l) zeyDY&(mkwz@(Fj1hE0-=``cx=+=gSyMu=Ijm6cCbAoX9(|3fq&Vy8THOhbgYJx&_# zd-^^T@^PWky}_P7@sVz*6(Ac1yV%+pVtPc463Ggfl_&SDE<(z+0qH;Lup$?rVTT}+ zAdUHG2a(e>Zfa9a3}x(eW<_2h_43btatH)bPD+Fw9HIkm?gjiqBMWiu+MiwhJ}x_7Z(Fa$QIGPqz0*4^klnxT zvs_#yUYDw8?;{XC0~L-T2zP~AAMdu~a);$sa%LLX9zULr%i3RP$b2mHh)!X7Tj<8p zdf9VWp7QK|Q-`?IY{XTOA z89I%JX-xu-Fq@CK+#HhPT!ZL6yom!)pinK-vZ~@9fTZBxmavvei8kg9x`6>hylQXW zh_yD#jNaYQBTpS-Qq(-x6&0 zEfi9t*S`uegBVXNe2qcbGx!U7LeAc|okB zy{Dh(;Ve_oiXfQ$<68=y++wgLbf-z(RF@XiRKzz42AE()Qx9SLe*7mLj=|W%c=rEQ zNIi53OJE+F8Ey8Qj{3A7d*L(WB7kSg&Cg!}gJ(Xe;HSCK9&B`85vmVMqIoes8Xhvb z;l8OeYdO77M%BZHNiGP4N82g}y|><%2a_j0+$Krvh>S3eQF0j-+l?+hZhtps!JoBR z@D8{7y;JhIw<2uONV7OgqwTyM4tt2_BQ2rWK6s7;NE9}8OyLI1>9kN%lz*I- zr90QN&D@OK)qVXRY!pF4bS=TXUx0ZQQLHMfnR72&XtV?SZ= zPwQ*#T_e;Oo*!>@UH_mHTgt+aR&LEs*Pv1D-}Oh`dEVn(sM+4wISh0Kw^#m%UH9rf zCNr!x?Uwv;Ei=2t4l(NtH5y`?rszD3rz z+VF1615(1L-Ym&F2S*RV;PPp}AaNsF>unI=ExT zBfYQdP$iJyfpBs z--2#BskF{pW`U ztKjN%WxPF-d+Bo ze`Yn=TJB{c_(e!kc3|YsFiF)N#Wt~NF7BQ#3)gs4&5V+FNhgys&{FLpY=kA;X0;cJ zgj(%9MS6zZTyz()5fMS92U2kJyy%_V5u>pq`16gSVZ15Ej#z?PW zA*;yyLOy?3WE@cm+BrXB`5Cx-p>-h-Vza03Xht)C)Kammb*V|U{Q3gWu9dZTqeC`DtGM@Xpvo zYVign$?e!Qhk1(E#{B1`LWlRx+Ywc<$3p0_Vb&YGzjEq%Wlj-eM%ti0j zaEPEM=-uC*FvqOv^!k~*cku4j87g;Sfj4oSbzCKMt#R~WbxpHTJW1MIihS{>>;16@ z;Luwehx`1fWWRS!S*@|y7NhRo6>-TeNyStwWcwGY_q2%jclgeO^2%B?5ch)PKo6l< zKPAbXjOB$D$-yev)Zi$0U8{`{I%+;11xD`}KJl+6@$`1y^xxepO%N+$8fvp_L}Z=> zANfBsfMU%}f;9-9akGwFxtW`-@9;}&T*Z{J?S&Id7p}EXB}k&uWSQcW&~N&f(!}Yw2@ss3Som_5e+dhqj=X{* za9z;Z;6AV(*cwp(t{$;Kb7zn+wU9Vqg?GNOe+Dpyva~RH{BToE_d4i1o%@$>_6C{c zPyxX%O4Ij zmMUrCno8Kx#PPjDOm44=vmabIcbB%LNaX1bpW9!oy5qbQb!jxlcP{geQIzQpD$Kkg zr}2MCZPtj-VEgmyXS4HR!ZZdfzESi z2dX6+4IbYmvh(v6Mx2Re_X<$Hdf0lt3`IS)~o^MQdB7uKrlWRywOjJ${?hZ6QfdfD7uP#mG{Dgdo z)Er9(bNi<^k{~Q_O7@yKAI~i_qzkp2oJdv_9-skQGgCLBE-s-8t|eUy(D;+w0BC%k zVZpC_LCU_4y4w>(GKS4t!C{8H$%FWzRQ%&$eUKoR^*pNx2`6@MYpD*|8qcwavGd339?>=ki=BI^v?|6TjBF`t0>L(xBux(XRRGjM#R;=jP zt(|XMImo0prwn8I!~8Kx0e5zL`LRGF@%PGwp1_TNje1gZd6Q8S%QhN;jA1!%Zrccl9+zTbeOc^OhBU%z=i z3%5?_5GuHu@1in3jI0!WT@QM+xE0-@{OXHt7%lM8uzx@}VsQSs{W;=~3-_F575!?DD%0m>1eja7KXW$&K)B`ojH*LUK@RL5z5P_4DV@?&?`0F52fPEpx z!9=*A>ygtIazhsCbnAv_E%R9KTJd2o9di}yZ5Uo+Ewu`*1nsxH&c<8yMc}IOjPF7i z0)c%?kC1go#+wPBdTd8xqTsmS&Q7-7@m^+_rs6%JYlN2YvEE^h1o9*lLmDj!{cBp2 z0s1?{8%X!v{*SUr7(1VT^C40P0*zW|8{vHvQKCRkM@I~IdK-h z*8|p;=qWO{&NRh$LoQ5h%>CYEkF3wU{cVJi@O@9{(sF1bKRdl==tQP}JY0;yv8q1c zYINIRIuf~fPh{`mETpJyvm0O60xfem^jNCGgT&5wgcAQ zYt{g>luOh7C&r*G-m~9KxrJDJpn0m;ni7gcyeQ^~QooA8y3^Uz);0Av#rf)A>-Cw4 zlq4)=*6f_iPDcc=$TftuVt0{WX?;~Cl$7O!NpkUaYa^TGV#S=o+%%GJjVcl!=>=Ai z&@@QWMB61HOTtzi9R{z&1Pp91>Hb?T)Dmz-e@Ww>mf>^Xod4XTA05Cz)dCbHg(cUM zr;FTR{3ls|$8Fg=Ui6s z!Af{pJHM@JaHI@P%@#c*Iy2ezq?d`WeOO+0^R~Lyubdqtcz^JDcV8O}jp2HXW~5FZ z6i7{VuFS^CZ;yQYt{hc}>1}#np=Anu13jc8=IQZ=)Kn5jyR_^$>TlEOYM><;9jnNf zQq9LMXSS$B<6U+#m5i?)$nRY+Q7EEL{9;wof6>K>YbA>%wLiNQdw^W1c7>czIY>nV z8z3R9aH6rJq;T?CSDmX7Ci^YP3SMet-S3barE(db^+i#lmW6QaoQz)V?NToPryPhK zFS$3_wY=hb_mym;-R27nC|AEBCUXnVq(Ox1yPy0ww92yKLo$+2=iI^D+x0GFi+!cY z+f+c*Jh-H`h_s=}zdu#k-Ipg(QOge-xmk=g$d5-^P|=lw6GU5{oQ)?bP?|Of*|Ui) zx0p{>mF|BfE|YCC-O!1*g)~3CT&y$EP!x=P-#w01qRm;!g`fSWW6wLXz0NBBYSb43 zKGZ63VBxRl*|6@&vo|bAIeM38hsO^!4XEhVHX%U}XRcb4kIO;y zL(z++nVkA84bUz_ehWbaXg!-9IQQyG3fL_a+}}!Aye;KP_S7#|8FNG*xS3iAN(xbD znp_B?eNOESGPRZVK^6FJKI-aeD?J7G2QYJ*zNS> zM4(V4%9pKmd9oZG9UTGyi>s@WKM~_pI@79rqU}aY;yCOe9I8QxHs;PPn4j`IVzzua z>%`%0j7uc@R}=d%L)tXyQc4NCs%(b9$YCG5aO$8;r}zPT2JLw6kQ-mbWMtlPawTR- zNTPX%S;LG!d(EBz`?(kZT3@#9eJ>)Lttuf+pL#dw+Ie*WyZA5RWXE*KzpIuEHm1H_ zee4L>HpqhcH@dd=_dny3DA~zo-a*1t8V%#7vhAeHC6*Sy$HGsPt!uqG(VD7}Y6e$_ zAZF}663^WQrXGgQaL;b~=33kaL8PiRf7iS|QPtH^uS{0O3?BD$trxPgk`twdhIsoXisq5_Rhv=abGm#{0fc?+wgTx}u?=_aVqZX;rjn9JqPA~0R z1*ulEM3~>d+0t_OJe7QD%H{%3Z6)^ycoM=U4KR_Er*kEw!fBscSr|%g8{!vw&|EW( zHpk0@Vox$tVRFO{6cP)g9VO3X2hdXw#3OIa6x#Bbe-9Uw!XOwo;u1KinXK_RZBgbo z(m*T_mTcnVCR=fKm{6YE$Mj-6M$h`zvMs*!J|6$?yhJ=iSv`Ss>wV~+G%zA3W`H@ zQZ)*TcM-e_HZFOG>N$GM*Vh+vc|zW67vcNky(~^(tcZ&PW9#bi4)}Umj2PX^iwg@A zYi+tLEw}pS>ew7SI99i2lu4Ha*9PAU8U1{k+vW64U+WI5q#J3J3wgK>*VoP%0Ismh zU(R|H9*R`E!7(nD8gyEFtm$*QqIuB$A-={@lJg-=5pjz=oP%Ll$e3sdjn)<{#IXTL zty2;1Z+FZKrVj7y9qR5h0V2f=TAXMf7e}OeQIz08&M)3CrSnJXO+{YhMOMP3g0{AB zIB|Yzlu_1hpOiTfkE*S^5DXmnZQ?8#QO zX`_QA)?*N@-i{ZTpR*m=xTDH1HhW|VAmt#IwXV)cIaf#flt&VUz-9WJoGeJPks|H& zo3eEa`BzDBm@!I>OEV}p_5dgX|pfmK@`fQq6N+vlQ(VIYd~n%+ANMI-^2|GtnP@ z0b2c4vOJAteq8d{Bfhz19T)J+0{UU*X$ zF@QR^xWu02?N`-hHpJ5LJiU1v?4(&V3U?S9wBW+qMImH|^37pqH$B`o)Hyk4CJe)&Oi0~s}w?Parv4bBSt zEj(XS%Cq!B=6IoT)rX4&UC|#FkiDi(*CY&!+p8mV1YOCE3Klc_9Ia`A+wif&O zlIbwEAt?8%t!{w65mh7yOlX!S_kv<#a6XhAO1EC-0o8DI z%D`3&Xh0t(3v#C$$=ZrKQr9blFhLiR`LveLNJhHxXaTno{&i55gSA^hGmi>V#)gZX zGD{^*01~W$3cLjR;ZI{JJnrS_zDe#Y2PeGQkppv7>W^?Lepsx0W|irY;pek=Wtf(M z?D53ehVPzx#`gh%R1zs}NZ+U!y^c#UG2A!$DWD1H&m{EqL zQf*v^Z9N{`?^s`&Hkay;g>e&8Cs%hcVDZzcTC!{`n~I2lGs);2?cbZX4ynC-sRiw- zj}BHBwk#diEXBbY2XuCAL%XRoAFQbIyWY)dcdg4Z7A~OyvVa~j{6s!p=YN?8(rB~- zIz@C~Y;tlon_U?w3cLvxddbf^9!PNl_pstZ{C2i<3x; zxSKG$l^6&c3Mv*>$n46{v?IrwHj!&x>*=MG2JvoaB!lF`eo|w}vSZJ;X4{P3TvH-y&KlBQHBgA6I8EOBBh{~UDw_qnxr|5N+k7<&D`)H zZj1ZtTwk*){NlYTN3w$exY4iH?|Wju<0<_9D45m-ESUo^*;;vZ%O|dMAkn@7rAYJK zogZ`TpT*-?!=qzzZWOGy9LNtyG0Q##8FrJ5+oPm*yKP#2pS!ATosI~F=txCOHcIx? zg-pr&q_mm+`J>_Dq#VS#HhZYhN+fJr5vTcJNxb(WO2K|EOgJ(O z4!1dglr)K<80g$zE?1Cgb&jUh{X`w!M}s!s`hj@P*;f3yM+ClYgG`ATuwppDEJDwH_mixMi1M3(jKbUyRr=plj%X2;i z&3c;;wSp`yD({T5S?qWQ?>bi3aur0>gOhE0&Xs2a1pnaixG8FCO8NTo{giJK{&?IX zBcZjjvY3R0%#Ju%$gVYuO$$Q?6t}zDLxbiZRpA?_$hG-#*KfaYrkqZxOuynQ0_MvADWIU=AeLN|lh#cMoRmwKI#1S-ZgIR~ z7!DBlEA}8BP@HHQdEV0|yzsjbf~!$98vo4Ee_j8DkIr)CyiN%H<<@Nj=kxr%d%!V} zwgXcXwHp`LUp(*d#_HjyX)mz2mu-nhJ>G#n7w_Ov!Zge^DEyH7+ARmV53H+rEdU)u zX5jKq)XO7j8{fZERPt>M##_t;Y@yV-VU^63{3mb$Ls5tK3&-#hLM_dV^4v9WX4-be&b+aEc<#NT^#Hzf-NnH_Dzdd^voXWHh$rUbqtXXsLlkqUR( zueyz&ZfOTil*K_uJ*(MY6@1L;BsaS66MWx3Zi=%2&oFNSSrqFbN@%;Tkglp4l5Q*T zOaC{xadkaW0-}hIgmpa;Obb@L40h=tv`y~&-nOo{Zp?upR~y*HflKN9M)vta5S3-| zHF)B*Hg#!~IsW3=0lRZSt)IH#==0SnO8$h-0ONcqe`%~B{9Z*1s*oaTS&3_LLhYpjqzBnjnj))JB*uqyWbJF?`9#6Z% zYrAn4FLeBBs-Q?PmxdKd9KV1PrU*;zS7LN(CuS2Nf*tm4KH^>Z-S;h9zGqB=BNTM` zXBk;v)ba7OdGi(!v08viCWe%mWo%)&+ZGvpnb_?7ysQM9r7|{i$sV`$PBYUbw^!PI zM?)iVcl(}mITLN?I4nRkCe=)iEaPrwmGq!Nm z;L3c~aTw_ThA6SLxjdYP>vX`wpdwQykIkAwfFPKZ?|8D0y z*mJ>VK_0QR>xYFhDP(NR5D@d{Ei8#j}E^+JdBwF%w zje5=|+Y87>;rAA*As2o~69!dY&DN|B-zeQ4=0#s{?JYgtBXmm|V^ex~%<1meGR-Xf z>EWfvpgpAZdw8SpY`rZc#A zfPTJ$6p|YEs0m6J+VeaAI`fTpUd6TKJD0Tdeh!kHFgGi| z+`Z&(g}Xw2qqiH~c2f(!^@vF^wC>FU#ji1C%F3~QDe;8o-f;Jy;o(y%F2|{HA?6JJ z0K-76zJmZozqM9LJKx;H8dVL?lH&7iAYidFU*yx-L2As1UL*2C1fVbg3??OlFECZy za(mngbrFy<%}DV&XPGe$pxNHoq!fh?eEt8hb&kQ6{L!C|ZQHhOYr=^pw(aD`wv8KS zGD&W1JDJ#=*v3Q?ZGQFNs@<*HS6y|w-`%S2?>*;pp6B}7=)M)#_^GZFwmrDbd?vDU z`7Lbs5V}pl<%=rua=QZBO+;lndKo6HWMbVB1opkm75U7tj88eA_~ zruiKxjNYDKgl%s%S|^VW%W_}NB^4_jtdIA33#QX?CkH&RGl9IJPJu_lZ%4b$T`n`9 zrtqYwpS!e^xmq#%9r`Z)N>^_q&2PJ;u{v!4#sJ_r^Ge?Dvg6G_RnZ9>hhZk>vYqY~ zv+G~O4okEsy& z2o$cvieEZ3hJ|a-)@^^qKcilWJ~0g%5EQbY*^205Q9mJp0`Duh#c-LqDi8`64tKZv<9QG5LAAc-?x;41X>wlnb730%2koj`_SJq#LS69IB7Lp z@0A*wABH|2ijTei+K6EL12R6MabMGZK@>sA7qJ50k|gErkkWbT7S3k{3FUY#@p*WG zahgG_WQhpIo!A0@L&YWOnr8WaXb4eE|2yC-@40AjkU~mDGi!Za-PD~N*X&$vuY!_* z2Lw}HnJm(+`E_Qdr-!cVFD@-TEQHV;BkEvjO;f826(kstc>5a;+ovsjNr8bYPumgq zU=LjQk~c%8bb$i(Nf}XVdVPXpZo2+UWn&#}xqZWA_;It}HO0Rj;(tHvY>-DKShfU*)Yc7#fBt_>Po@spxLFE>int)zdyQ%^+c5eyh z6wq>$0C3uzQZoDFB@nE>IRc%<5vQ&mC7h9w7%NOleP2UdyR`w}i(DC@yCJ6+POm-t zBYrP$r?3wlI@&p;Z!hisl7=<(%rVY~YYXi0UNZiO|$Q5o{(8j?aCmgV7ckVI@4nJ{X4#0x3yR7IZhVHWPAES5bk5JQmv{pIt%yO$dpz z?%yOsT1ppad9HfFg-D14XKT~p6!KZhEpynL2c+wGbfz6S6N5`E0zK&H1*u?{xe0#B zX1FeVNur5WdYb}w3IZ?S>+ZE4C?pV)LL3BhU#@0Ij<+H+A0b}!y>VWw^5-EB%-(Ns zH#w{bGPl`)vU(LR+irHNJ>9pLUeXDDkd?_2CHjynJe3Sl_vzz$FSBh1VE`WGWs1~W zlY_pRKW!&pP<_8{1p;5g`yzPmP1WvPQAgtbr{(yf7D`kTe!Pg-`N*WT&b!}~o#G(G zDlKt`%L3sTO-(jC9HPo8zvtb6M%|rsCw>o%Ms@U#<$GotR@WC(!x(xC8=OTMUEF&! z#-w+#4vM>CSQ9*~M>n@wIoJAYuyAp8;z6(oOvSFWT)Emb#vo#vSWA?ENtxuVf~>zU+|#Wp#S%V;9wuI$DlXq$9@{9zpC@GQ))} zsI|hQf+}gPiS@z0T^&K{XclNZ(CIjn^f+*lBH?I$Pf2G)&v0?o7?U{^y1lw{%i^Rd zzbTaj4j${oDAUS0W@a*Hs*Kfjzx-ydPE=`|ITumGVxHuZYDy+^bNG^-C}kG!*Jc3^ zzx-dXN`rz9*UEkslYRQkJyV{f@pHTYOD7aW%zaNw+*@>Gt>Ev096hDTk4BF^V7I+el0hb%DLnPOo^H3x zv}BwVZ4qC(KEIKlA|@P}B|r(8eyBr9?|E3|36`C|w4E8r(19W3r0>zw8~w31tnJj& z_CEOXd{3>61jQmjrKU?LsbKDnReXXZ^}*j1Wy9pa>uvLnlCj()@l6jIUod*R4o(L= zMiSbZOTq8+@qztcGs&EX%a?~{g?G>Ix)~31gj`n3B#tohSB>-~2(}DOI{ewG4aRED z?&o^P2dONuYryz&L1b%4SfWs{hT8``STT$DtZN1#Z1A9{-hrF$%v2gQs*Bj)<_?$q zccjvt#)`Ci-H2Jzyz~)nCgRK|(p(NjkJi16h{U^pLa}+&fdtT#e6Rcnc3PmfuAsLm zgW$arE+g`^1vZ!DqvRpYtCco(NH(b&W}lpx;TJG*aGa|)9N?T@p_ssp&PURt91su% zkIA504-jm$)Z%p7G6xF*CuPiZvKk0exVx8pKP&FmI4gO?-IAxz))$BwFir~*3rk|H zlSOq7Ad6c@YXV@wlx%vA_|+TW0!>m#qmm}e;dMSJbG8$JA6VN>Hr5-Db+ch7l_qmv zGU``x`X=>)84F$Em75nKB!sd)5A@`y$hA}@3Z|;3vHI&{J`_9|r&@_^yLL`ja%w!7 zHRM;*a;)ypv(P8*v=NXKRr8I9J5TInESkXn_sNixf_k^W-^8`OC4YaRk>GWC>i_4Q z88Xt9_@n)qInwA$Yy20r#ZU z+`mp4o)E5sje7U`PeMeXI=@O$kp7;(u&8==2QyQ;&DSsq8c}2O{d-8d-ev0~q{mYw zK0!)`u}yj+Y(k4kfFS_Zgpnp&m3yfXw+rZ9$tkwG8tE- zn4K>Y+;EF{{9mxGaT*$)ItG#Oy5gF`xZFyauH9R^yUC}P9C7h#pJ^c(Z`3F3;v6FT z!)Fl3j{J_aF}X9=gf=$;`L{G%>eqTyHIF|QT-CaWb8v^$)O2NaO0iN*5n`%p>M{G? zZ43^~HCQhY-#4B4J!+YTKXXON&DnqOM}{ZfhC1obxYbtg3wnLTN>RkmIJwME&H>&z zGt~? zRs45|5bh+uI-&z+p8=_?fa8D${9HMzK3zB3+d-#IF&h^W?q=q<^LAceP~;%^bT)4^ zDPZ4M&uj-h;wx{t2KNc5Jx81&6ok9` zpFe*Zf2G~qyT(cA#lU1T`YnzJWSxS>p+#~?e^=c0Q_Ocl;DLv;xf#b15wz^T8@;ZP z^Yu``nr0JbSHT2GI28nn>2(=xAlYxWC8JZypus`0Blp{AOx#3%%V;0ewM;)|<7Q$F z{Pl;((d@cCn3aga>CrvRq%in9!!XF86HheYO=P?5HII`hE-nR!6a~wrh*d#MuEXkv zc)NEqeySWh@Y9NtuI;!U%uNN3)5o1MK;v!%N2iTRxrOucVKvg?O4unM^%qKuDzSap z{PuK1C@A>q(&NsyPUs>l3v(~~Xs!L6MXvLh05Y8Tfu}f#Suj_(%a(9(!jkgaK3Kcd z@SdjLT0>*DS#Z>P{O58;d}Fl-;-zOuX{ro;rgdRZS}ysic~p-0kNJE!6E*?$X^=T% zg6AzV8qz<#N>06YtO%u}sAIZnU!o2AO;O#9<*eeQQ_VyT`hxxBS)Wo)mIweYrQk!2 z!QyLctwhjoI10)Jz=@uL(C0CjVuqZA^zXqu)q>;I=84f1zxSaWs&a?oZ!>xsE#~hU zvNJ&Xutwx5KMrcm67@6L}DcHgJ_jC4VneTUwSv!vQ{@9Vl`tl_)euw#x zBcn8rnBLuo6Vi^=5NF&_P-n?p_I3TV#?7HO6C@vUMI8omF4kr~xG{YtK=d=bsn9Ju zwspoRlryBkcZWQ!uIMTm2h%IQ(Bk^zy|~U8o$>J|_l}FzB=a@G+QyT30WAlcl4j~? zPpoIEXC?EVQ*l9CR6CH@+|x|r;`#*i*iSO=94g;*apQ8SXXw)v?91MI`P#oUo~Rt& z(96!jx~IZc$hhV_)+Z4t>`)9vr*Bn~mhr_mqD&C9@^1^w^G1 zZ2p8^vi=UXK!g%Eiu!X3bG7Bl>!xs|y2pC!?C|Z_&ooXT|U~1DNni8h0%cBLNvdm-4ibB@aO#z!bt!B2Yrw z5IkUk;?jI=ZR_lC5+PQtoMwNOYe>M`$Y_8Qth-Z?%##~#~^5X=1GU{9h7BQBW^QQ zcjtm7gAm2zQ06h&p4P!akyUQ`j1*D?Xxe`~A0H{zHX?pI2RY?MAAI8+fn3uPakrqS zHEO}vr9?Yoc&p&PY4zi&8>G!P4If))8BlIaWBs z%d=z69iGxqjOzKz(HZcrGSA(~CTWs1U$t^t013YCsR~l`{_P#Jv37DNfh}JOpwdA&YY;N%#RcO?HI9QkHOgk*SA}2B09}tG$bz!K$96H_@$N* zF)@1e(_yzcCC?E-2Fe>bNs{k2W?87{2v*49`Ps{R=!9;QEiKr23r{1!;JtuMOp?R; zjV;XB%MSO0<66k?>k7xd)2eXj3~t~8CMXoN_w)oCS-fIrmklHF@I8shy8!j#sN0Xa z0@I!4dfnvPPCau3p5kQanh!Ge<}aI*w~itb%i`K zOz5Wfe*C8Id5zHXPUzdemEQ99_IBC=Z3UN)m*e|L(KqlQRKO0T(ETK5dyaWL_!}dk zSxxHEYqH5CPiPZ8Zjt!W4Zs2|E{cY4tL%ZC)KOg(AdQnh%=oqD&fnozagV@B)I-JEiJ>elVzTbj+6(RhjCrY)n(T0kY=g_znxf|stqlpKmz6ePRHD{MdRnT-xz7pVBJ8f)XPGR3ZAU!_46Fgt=uCO%j27WtQbg&@Kh-nlmRzthwR*ntG`J1&wM8jaIf&t5s+=5l2ymr^zHxKa z%BD!&vcF)<$0SA*yoV^BqPJ*QizLQ_7$z@|RX)(g6*G#@5Prts9>8C=P1;}{VK1_h zzE(Mo3`puOBSVLq0Y`&*g8tBO!voF3ZvZtBR>%7iEGbBY;1%17Ccb}{om?K7)@9vempoSXO3QAl$wr}l%t3*X9#h#cNj!2@P6F6Xj~?!Bx)$ybvF;mY5`t8;Z3N(_PYYk zj?-1?-sx1FAa`^Sv?H8m8?x0KXImMe7=Dxzlm-LS_8hSEZvcgJCApb(fY8L@bT$iq ziBsS~5>YhZ==j}bn&p;|M%)OWz?&|VWmCy}W%YzV_dbz&>>CEqpfY1XS87WOO^U)7 z|4K|T7|XE73&b_96C=ClQt)-=+G>-s3rlnN^yIKxW;&Y6jm#dreKZx0$BwPvwGu7a zAFrrmBDD^mkHHwVR1gq%>nj#OA7pLP{u9vj=*v=jbvV{-7*-}Y04VY0(FPhwakQk* z{Aoecu=&EKrO#tLrhEA}VCv~+kH25QwjVwK^nX&ceGO>Faw^lEd9J>++a^VIg zk$6QA^Fk!y;-lA`HHNo7v-tYHbrHc~P(`FOX*V4HVHBNGaN9$tvM7tUF(TRZ&i#G7-W-71U+(fL#0G|J{Aa*ntpV1 zBLk(AaaJGUu1!tj2Om#TYe*OT%{!j_7V{cs|#kj?A>v zj|6#BdTa`@?4t=IUcaMD&pwty=T_}3ySG?sxXm5%a`LG@0IcJ(K(Vk8W71cd6p{{`h(D@-KXX8h9;JVON`?Uxt@UNq- z=!?YZA5iFX7+fhs)TD^cbrwF>N zA_N8G{G+Ss-p)<`Wx(I~t_D%zK0U+hqTdTY&~RcnL*yM<&dd{1cV3P;-#&o&1qOL# zxiD^l8(kaMiD6Jyz`cFS6~*a1?XlQOjW)jp525_5*b?M0r2__$e~%#IgDzsDQ=l}o}NB5i=_Tz$z_ zJaTxCLx{hdt*5@n|#*>!TA8T;Xv2hdbtG8pe6atn!8^sf}#DbAY1wx2+om+U?JB8O>GmjRz!Ga5VHgVY6(|_Lfw_m(nRt@dpvvs~=!i)-h zIa^A}(zQx4F5eu3fwbC&W4ft1c-o6`GvDp)8Fmi84X)Kw!gGb%kh$W)!QSC^0&yYA zQDZqeW@qHn)sz+_;KY3l@n8CdY%PdAE+3fI>(cH9Fa%n+VilaoIXqDWm#>E!Xneu? z!EmS=JEIa(Pckmu?cWKhDOHB&AQq<7e`Kk!5$#SKW3#*Hh^tV44LuKXSwMDA`w(Xf zR;IzV>oO6pT~y!_jD*wE zhTYJJfjzi?yvE5oF4vx}=zLuyi`6o%CD(ntzk0@j5- zrP6eu@!C0e`fqM-nEgS( z#xN!Xmq0g?KnFTw3!zoL1y$h}Qd2RM zvtca4>j02lbr2a&Av4{mj$LpHv4sr~hCfg~Uj@g^pMYE!$8hM#d=fWf2`sjlD1ik| z?Bp|u^JOPnim#|(s95fgYm*lWt4y{E`<{f81?R9IamT#wkAuV*aHq28yIU(B3bo=s zsvh_;1#@Rx>LgJAB`024D@(!zbo=k&%z38j;xCof+rm$uSS&lzEdUJke;;WB-7q0%XeZ4hPEAps4T~L3x`jfK^U(NFF)(!#gNM7Lcl-df^E(H9p z#9lo4mtiUK5oc~kt{+wA<)?xji&K4fgkrtZY1#A(5W>4@=m53^z^6_`ihTCYt{J%o zR&om#R|ZZ`{bK2WT{|iq_Lx(RD#^em1eAHA#FMnBKF=raq{b*+=@MVLS4sWT@{oo7 z;T;Kqp+Vrj<^mN`HM%t^TLDPe6T=6Ym6XPs{1`IQ8*iBbAUX)fz3!t%P3B!-TSpr{ zsmO`%#Xs18%;KVFjAsct(F%C+D6|)HX~+ABTA}nNZP&iCf3AO^a^*x}4=*9qBua=+ zbei{~vedHhK1dkTIfqf;Tnr0dFSAErkX$tzi|v$m?mIdlZYlw952K>pyLd$=Z1W*W zA{*4lZxlrDXKpFE%saU}9$3zK1*>%~>)yWQE}awG+8Pka?()6Lc;kE3v33YQs4ROX z%%o@7kdJ&FJ}F1mn0y{Y0s#%-3noN;`Zx z1I1*4-Byqe-T@FslK|AJo-*+-Ar(AN$SmsiWq=qt@PamfjNH#9qEjMoaAXcKaXgex9m`GWQ+m_ z2&<87@1~vU+Q-YwU6Hoe-q=5S_H6|?Uq-X&b0sHNh@g-8ct^{Fe8N*$6WFt~sh*w< z$x&`Fp;kRm@=;4qd}-p9kNdV^ZELx?`WS032y^jalyYHSUi?J1*Wm4zgU+u~w~I{R zp8u)-W%WMJ9Y7QMd?RS8qN`;&JQoFoaT5xwkJf(Ppz~Z=7rV%E4kV%7`CR)Ts-}6F zom6mytX7dcGm5n=i&YhQJYE@~%er_@QL;Lqt6zcVl+OtV4GwU<9tw606Bv5vPt`I~ zm1|+0v3TMQZ(@tY%7)MuhrtWF@yHT*YqpOD)L6;H`BV|cD^NS@*|ASdpdZz>-WWlx zI}F-X4~~h#|aGh!(f?|kD2&o7$AZOKDXO>Z}R6=o$?v**{VDlj4hvy*MWf~w_% zF#U|o=^wZ8v#&pQjqli>Ftnll{EO<1-($bnr6{2xFZPetxx-{dl8()@mX`Yb)_L4) z?Qzi$xur?s<9fN@o*QrpTevx{b4VM^797i`@TZ=7+^K=@H~eqMut#QiDS<*gd8pfu zRw>b3xIocVQow`l)$@Eh-C?p+z{@Ae-m9p8o-xErt|eI$Ax zGyhBR+AmWImj4;%^Jt=^owVh{4>t2FB4x^?(mzN}o}m5cj^p;gmEP5LP03lfBr9oE z>qO^YK*x zxX#B`y)LW!*y_awk;$U}Q0_%<=;s|_!iG2iZ+7DXBKMb~luRY4(Kl+-RB$sxAm%wH z7F_*0#PVi%(CV*tF9$L?>#8UOX7Y1ttm$D^l;=Ie~5rWTvW6U~?4J9PPdgK6Nic;?E-pdP3{1&{> z*>e9-uFd9wBP&NTo;##52X78*Z}`ENmPVWc`P-}48+t`wC>MU|FcNN)a_($r$29D( z+yM&o*m1-8@xA?uQqS$MQE!bdXP5*%<_Zt}#Q7d#W9vQXzE=va(!Mz}2R>=UY?itY zKmTsN-BZ&oUbiRcl{-5Q75E)s`&-Kq-(a+sH}N2nP-X!umW&BjgU=k*a^mAA(y8WW zhu|t|X`VX$^Yv%MKVN58ZrccO+5))k4<4w{$j`Meg4kwl04IUDRBE6Z!Kb;C|MM?{ z7-T$QfvKS`rogK4{iP!`2VF>bIhW@l?V?0tsNKk`M~Bw~>6@bw!`|$RUfe^06t{gg zaVR9faX|>T55Q^H@=39yzYi70`RP&EPl-b|sxHmLc*1eYrvkR^RDH(kb;At5mWY(wk*Z?=5nPHtfN<*-m7tdDDp znrugctVtplCs%O7=L{9P8YL3~22YouV?gNUi6NsEnbzS)(h?*u^SWRx;xRVc=Om$A zX{uDH3BvsZzAk(8fHirB$*!&N&D3=ymN)z?N=-1D(T2d9pA+Ax(!kaZ%eC^&&J~F} zITV97ZGjUWmCK8vB=Hk%F8?uBsH{ll%<4FevQ>nVB9R6|DR$5sepIoW>MrM+W#Zma zITWkY>JVY)r@UDgc#VEY1~BQA))f1wM{=Let8d?H&fn4$4{xDjr}L2^Y(@eLI|Rn- z-ZD-ev)e6Wnde{(ear;=D}oSAv{ZPx5YQTp2BB>e7L-)xw;1b}=BfzWEgPOWsHi9; zLtcox)vE0z|8g(?lE zW^w;Akdo1l*j0*Rg$K~Xv$5iIHscb0i}0z1N?k)lknNbgVs$9^x zak_1T8n=!K4yLHk{2Jyh55ciP#sT@PMv?@J=uV zQ0u|p`o8veSb*&$&$x9EI!H~A+y0&?N12Mj-*r18RLK5q14o+xtJ2}CKg6YVK>_`J zHV%)=-n#VGtdCR6OQyKErdcAzpYJ|`S((_~6 z$DxWr*Y-K^Wh@|1ms~6dusbZ+<~P{;ym~P4vYvF;Nz} zmCDJ@UF-0$L(SHFQY*_I%<8&j@cs;ksAn8XAjO?~GzAx6WFPoNXv$XMg~I&gx-aV4 zZMIkN)l%@h-kLJ{xWiQzeRpT+c{VNO%Hk{v<2*(>zSV9ife>j*v$nW4ndztjDhcNK zjL0$2YWtPT(tkBv`3?OaG#%RyaUxJjl}$``$rGm%cK}9dsIW13X3wgBkF2+_+Y_#! znV~ETz#$rxBXEtB?)UEJ^?D;D!k{dRj$7M)&3uSDo5J_H)3Isj3@l{tIrG@hY$Mo| zyK3=iKL~*FtwwgWY;-Y?H5$fux1ed?+VEyYk4^{z z&Y#xXXZw|;k=8oLg94)6M#dKDO1*ZD@@{6BpKaIISVy=R$g<9^4{GH$yHBs)C&AGA z-XGyol*s|F({sxCd)F_qpBOs+fNZHVAOOn+w?w zl5dU=y5W{3BZiN^=exl^h;3?&Dgvxu*+dL>mTK`Jc#e>g$seDqB|pBW6E2|9{$>9W z*8UB|1x^(4BEa8lj<^!HHj=GT97ek>RedIGuQsUL%Q$GKQhl_P&RxB=EK|(6|A!X{ zFOEqMZ7A3()9(L_@sGWtvib35j3Q*GGUY@QCU^}49pfj;w+oTTX+Pr43?lNkt?inA zUNs6~Zz}*Mb@qcTu&aDI=P!cv!b;;o?+lf1v-r*T&^{!2-*k$eKI(@Y2@m2Ozb$CQ z(a;DDoq3g>Y?Y$gy2R}+D-DyP+9UucsVpNF!XG1fMtA}0wcC1nYuO#ooW%eKAqM7T z@ZsgEijouzeAj*vFeLO&TiY8R~4xiRmHe5^R!$JtxIE%$sJa zyxe!|=SK8pM>|r#8pqh5h{+_l!J%;>b&9-jIC^7phKfiE%?{(-lO;i!Bb& zPAqfs&JVoCcm;)|amdlv7E#j~gv>+38-V%|>s_yGb0#tC(c1#O`09i!k?h<>k~vw=LxNu#FD}fECC8T|a@Z4sAK_TL5Iqixp&r`iVx zHXKf>Tc9*_M@Z1#NF1)#P;r%QAdy7-GC!QI@5a7SNzi)b);Y@TbqO{4jg^VHq2P>TZa8QBj&5#g6nr^64T+2@$y3vM*10jMg?YvnDdpxjsyJF8pDVTx~F!ahY+1 zM;nkLt)jNrrD>(=^bo;doL18Z%`1i_?d?9K`g3K9nGF`PqmVD_cD0wc@1SFnhHn<_ z^ew5Zk-yvcRpm0Z_a0vN=m*0wwWj31i>5KYcF=gj3JqG|D;Ub=i8 z1aQ|sUs&^&dD!Cm=^Xa9)g}| zDB=7jBT5oA&F)n8M2x>1QqFCrLHh_#0dJK&>l@s=Xp^KHVcWV&gu~x0sivlQ^83-# z1Z-r&bF$O5WdrIWIB96vvVCk71{EFh&y0P!rl1|_CW%5Mya2gDAbTxdFST9@LC{({p-rnyPP@Bu{Y}F!K4gBG0f64fmU*DS!4;nB3IW0P(IVbNH+b z+Gv#7;P6iKh=z~#t0usEo;3Q$Z7WOB;;eGDK6zolJyEb_SNu zd9@NNX4T_M%chB94lw!u-jd`9-X#Q_Tk*Tjn&eVmISU4lS7jHE3_O#}7Hx2wC6 z1Lm5IqFBW0wPQ5t1k#q(zwlXlETCV}Qv*FIhLeW*IM+&KlAkjJGDq4j_GPUYV7PfS zs+okV`se#K9dm*~XMV)FvdwYM95UB?SH^0i171H}@`5Eg|2vXI#mpd)D2X6ZA!n+w zVs&(WGxFEK-9lr6rKM%5zOf{D1mtO&&C;N}ysv&)Fj&CJ2`(c_>?;rMLTG3g+?>CI zV)(k4j!gX5?tOr|q}qSkPDYoik(^`QST3Qt16|l5=sKb?=4-Cr1I&O^S}^|Rkmsk8 zGlR)674ZjtAR?5J87x5069In3e14H_Z4P{y>Aa6CF`;adZ!}Yw=Rh3fgDfGKRm4$@ zy)SpYsZ?B(efWqq;`L{ur3;a*@$wnUe9$MYh1JaGSBN(Nv1|#NYEUyPm~LH}c#x<$ z6EaH2`5dW#{BX+&s1KKM5m71n*itd0CRC!pL;*g|n2RCQzP?W$F!NVvB;yrN({yhA z(A&jRlz7g1MYz~Sv6n{2VWEAq@CDyVG{evsv${q2D&PFm)!n)X?S}+U3`+A(oIh5D zExjC}iJ#8MkB%s!iuZb)|9h$~`Ly?mGLAmcur&4F2LHMvhnnU@h7>a~ZEAHfiZxSf zd36MX;R#(c#nYdZ*d+&Xp2n4Z_6O@wv%aP>tCvY<^yE)n&x_%3nd%}q5=bK z{>2itjF>x^YB83++l3P>T<4C>**Gzw}iovhx4_<2NDrU7d3Q)TRyYVIC6}5 zUjQ~p@%(qX{qrHKP1lnlARrL6pqvq^%rj%5#nD1G06bMdfK3V{sC8b_bSUk38dH!L zYiBLuHo6Zb8^7~TDwNAP!yH^FnJ$XkobGjN4t;Q zZ*+*ipt3#5Jl{N4fPk&?NbJ6EaWFiWmhtRNn zv~=Xlq9%WgL47JV2ipmAnR>f^H8Q&dQ4|>Rhpd;=4a~y6z5RAgt=-o7jcitIj=Q=D zs#iPJ7tLUodq@DIWLynD*xrA$9+Wj4DP-PJO&aH@V2*W8M9r^sgN>4Ssn-Tkbz0L0 zSFzH*o|(?03d_CeZHsgJL%6-^Y<9qG{)xvc8{X+KH}u8!8+Hx5dpP(C8b`JLDvDk- z`$CxIhA=Ua0Tv$ka$8M%+ff_@+a(G%Q5u*^wpPny%$)VwfX?6ub(=}@vcTpgIX>VF=_y)ygyG_a_r^09?dN3wt5r&_u2_p}oPKk23a`&PrYI zh!kV3gHNdZ*Fwk!&z^dM=ZL9hw{im_AloE}?0h3$Q%7;0A71ie#70*|`y7R*Nm^HH zL0MM~JX3{q_+k#*Zxi@)d+#Xq7u>7TBPy4dlsvV$Dy9&7=#9m*)zQC32u?S#vJud=zM>y+OdOO43k{&=|fmX)z{fBjv zJfVh+-8m4E$YGBzM2*`L8U)jzg-%m!h7{a}a0BOsi!ujh}2TO!WQcT(Nfwt%{aQP!yV>Uz@+N=_Xd+IMx7YI1s^vGiVQ9 z7<8&(l8ktqp8V^VF#Mz`{{Hyi?CcOXS{zCM&(3?yo%GF(I)jY$c3vS>b#`7R>FFg6 z_zkg!;t>PSzhnw8n9Mnca?j=C>CN@*m}{aRMZjxMuKOQ9n5k2NzCke)$`pK`NMYnY z6UE_qI13<(hdo9vp$9Nx|JVkYZpo&nqQ^cctUu#&goz8<;I#)I(-63OE+3u?Jk)M8 zOFJ%>_7mL|uieYDID&<8*ZRToOE*iX{UNx<=PcHak(ZrCoX{0hVM;iLzTHn<#Xy&c zEt++-YDeXJeS;MCIY69<*e?O?*`imN^jBn_*HyU7r4G>+&iNSF)doL{bT966F6g2Jc0eqy08~ghJ!EH6Hh>#WwZHIiiWn0eF-`IL=qNDaCwz z$ykOh0F173v8{Erm(iNc%_dD!bD+?|Z@d;5y`MdFZ`OokcY2g$I&Rx4uj970u#@pNEL7qey~od*^6hCZ$B1!TaNpd8AvW zspbAz8zWz4>}(;#lE&T5ouo>NiNiL7b)|gAok{`0DaePNHhZvK#*kUChPeddM4Wr= z_&eNr?xH&yFGLspPrdt{Q z4+roi7M}z;y{C9&S~PRd*7}>{i*_!yZ%}B9*t}5cY@z^`NC6mye;+; z2{Iev6^*Se##*VTZ;E-o%Mx(YMqmnjqVf1D6u*J3x-BXSKS(-U8W!hdVb^N42XN=9*JiY&fo#wh7Dh#nQ%kZadsp)QXN}ok3Ccv+wxj zGQLb_BvTP%4jvz%Ji3C_z^3lQOB=7lv-z=L9Vwrs3$Tniz5cRJd?PzU*7GQmPD{&^ z61rngTvfEHvoeb6ZG+-Bp?l&{zpco}fn{$K&tHve}PF)@@F(*B~?vLZ$qCIJ(-m z%`DTZ9TfFMazG@Z`OY1(7{Ob3KzvwJlunjM>+{yH#nXN2ygzmCY}tg)j5NPGCzs70 zFa2qI7%r=y(c2#VCPDfmn&?|U*?O-=MNg`uV&aeYrJO9CrHf{0Zm@@q^Q`hgVX^V z^CJFS3M^a^L8*vTMnraOy*gLpU!p-aF>udNMSJlW5beTA+B7jf@{Wk#KO67eaDOK$ zJ|t98r2C^wABQP|wmStms>gTowF^}+=dq6tF~)fGyU?JK5#^qz{lEvbI!B#GOp9zh zpMIj?Isypi?L^UPVpKBq12)y~mOq07za|6uWG4CK~xc zA;I0uAM6~M`*G6*ERKIB+uRw+oZX^jT$p%v$THn#K6z4A@Mk<$fFlECx$S>bKFhoZ zoR21nq|G$qcyXP~uY5S^SYmDl5bd)5%}9TrAsIYy!R~soMDFxzb{@B&oyS+XzXyu; z&jj95aVitY`q+@vcGX1~kIgjmPMTeg`~mz+?LA!n^vTH`tsd^*bE;*vxND*SwI6*q zH0X*(oc`n~ORdV{_JGQd=Bn*&x-!nwVx=PH`C67>t7X$Bc($6lfLG#mB(%*}M3 zNr3gKvEU~gYZPjr*RCS@Z0#+xTg!#*bx)&U^ZY)etNawA;8a;;cS;C%?+sqU=c~om z*?4uMS(!#>zX@W2`vDb>ikk?b24cA z2gZ}QP*GIg_Q7pz>*tHOq%(rO{eT)l5C_Eft^Q)$|Q zO;!!|u}jVp?SIF5VZ9lKP5u`E*FY%0e1QgpX|rPI1QxHKLf*JG>diD`8|tupE*nmq zz{E){ytaNaD|Su<)Ar1HKm3@_eC9KQdMAJOv!C7L@xAxndqlQT7zTE#g-oIzuj*BT zcJYU+u!8HnrtE$N02Hho7U0*X7O{F*pm$LZ+PsBEqH%>mA{e2$xSX2GF>D<*k($ae zG!<8n42E$H!#noM*)GF%`vuVYovt4a*P3Y|kXoY!B#i)FeNG%SAanOkXpI&}@iZb= zY-K3P{K@ON;gn@;{mc94tRD_CS1F|T?h5X0vKP5nqN1>k+b({Be=I$TZH;H4q#77I ze!PwMU7N-fy))l^PJ0yf${~$Y>z-i=DG*ZhSv?+@PERwyQ4pCchTPto-s3rU0D{9w zXU;q*|E42hvvhMiBeLzdxqYG#)LD6Kjt*n?xI#*!zJ8ygjrR|2rK4-BjxT`muYT$x zbRtE^Q!mo^$A6MswT{s2sbp{a6c6Npd$#Wd+;ezpLgc_fdx3oZ_V7~Pcg0EEeAOw8 zzwk`*&ODje%S&nc!~OX0yo>85kAKTHT&V#^kWKn2h^F|=)J@zvVFyLw6i(J6o$zBw zjgdR()rkG3i1s9a@Lpr!0U@RneuC2Fi&Ho8k?LLiY*RHq+gMF|JP2lP3~wc4#~#>m zQ_4FhH4Lz<{p-hM5^`X+d+6L~6vm8!P-y?3ZQJ0w;Pds=+YY=l>eT@F#<>Weh8&oo zf0~2N3VbG9Ss7=1G{awaDBHR$T;=tP9nKIVU;WhK4_9f@|9l+#<)!3IaMyQIgS9hThwxji1xE7Z=Cke#k+>qQJ?8oNQAUmSTm7Da;)d& z`?G+iqs`A(Tdn|Mfy^MJ?g4Ng7~SV-KcDHtAN2!ZnLfh7NY4Tm177KSm|9ya2<9R; zrG}u9`q(0o18Q@$CL|;QQ}9G*2j6S0Co;_8p|3}{@&bjM?j+j)R=5bG@^nPuxupCj zvpP}8%e$LcShJ1|P0tWZwPQ+2&kq}u{gTJ*?{oCNRC`a)L4gSdKc zQ2WEtO`_-Q+|`2Ru@I}`L4IFf$VY~?b5&`Ka-WURP*!O0iOVCrcYcVXYxnGPm0FXq zB+Du-7EB4Ttjb5)%7M2ieO&ZHA8>{YgMxXpDLU^|njU-xoplasu7%H}=)6-Ym^T|? z92s%(*zbJvF!K!>X-KYWZl?BI-$upb7&$;&B_(6Z$~f~&U!b706y@f6)(=NxUw=dY zO?VUV9Iz1&_%JW`d_;h~>mYQ9KwuLQDUAR69%OBb6A6Op6lQTr&hAOd z+uJ-+tb(GRI;yJH7DB-wgu>+cEW#pF+QtWzg)@i{XXR-Vu5^|idT zcmq$qu$qSE82Qm4XP-8S3+GQ`ctycJ*TW$nC(RtqMf0aKeoQ$4OIB{CB%yiNb;quP)up(=V;zg@qgFjHmXwzHr$Vo_zjIUV3fg{(@VN%tZ)f zAdmIU8~A+fDzFTQ7#QhMxC`e|v%QL&giEXlOm#G4$Y=Jt+1__g^rgA7qJ>YCH`3ma z<;M@hZytp9PK6MfnjPD@`s!;r<&?RM966F3Z@dxJ-M^^4^VzaOIQLZe)cfJ2u@>$B zj(V{qGi`(S)F*JbAU3cBZ%$YM8 zURg;rX!4nBrczVe$(uEuIUxN$c13Hn>($Cl8(qLBubECD=)+Z-hWdK$y6Y~=%gg!Y zFMr9UmtM-mi4z$;dNjsC>gHF7QPN2#KN>ck|ttr*c)dUnMc3ef?hprND9Y z!RJ_|%bLV+BCQ#Aq>Dkg94_^4H)f04TYDT!GTH7q)0*dB+rSV15aNSZ&1Le~3i2af z{cvYjnho0;_~U}bJpbB8+Y?vToK~!4=oLhWRgx{;Wxa` zcvmGX9l@AiUEcW}?=oCSM4%qr(F_NYg;Wcn?xyy_};*Y75oOnR%; zkhn?{35OY8S&0?!k#X%@SasxizvB+4aR?t`NRE8flPk5P*#{+A&FoIi*o5bK6lEpt zK25XFdyS=gx{`;c?l89MQE4NRKw&O#W*(sn(ydmHB(&;gl`WM0iX$~72S5Ep5d~CHA;msSlpQ8?`2j?%TnuD^{|;rWH3~d%1PLiHP_SIUf_Pdx4ArIBGl@Dxe(N`t^0i3kW#kXftf_?<)QRprIG`yqtaS|dz>f0{s;-F3=>uE)ea z4;_b2~h;Fd0y2 zS0Me~|J`;Ij6HGfj+31U8vK@p5U{hom47{mX(d?3% zm!#q`so9*vvo&Dw;982Ff@80qUAX+Kb0k}`5pFKr#%Ylzs{9EG4V$px#Z+l+&}jRq z&4gLhRmwf>V_BanLQALD+>4&s7}Pm5)tAs#b8xw`AsJk1>}~W#+R5_w)z4Db+05j! zYDN_fqbb>mlTE$N`wx9MOXdu6wy$RgD2~%042gk6>+U{+{@+IhS6wx@=l8e2-7^n` zW*T9l!z3Mx6SUt~fxFXB*Gf?B5lT*ugFislb;&<>Eau!vOjli;jKB~c26AuTeE-Xr zzjVib*1Yfz7hIQdm4#e-;dK7rSz{<)xstk{{DtKD&6uGu7zVn#)9#pe-s&rkXZOnoaPz;%+gVWPrHuLneRmeqh9`U5N(BVB_rs_bm3}+DGY{${l<)k zZtVKmXzk^{_Lbv}zv6h~E9g7#W>FrYbLS$9@-T*%;_hxHyKx7@SFGcG?VEx=)U}T? z%3tFz{INav*RQkq6HfmxP)`@St|qZ}9pjK+JorRwgcPK+4(YmFkF{xdeaJ(+Z2hMT zU5E6t{BoV1JN(k15s&LW{7tSi> zk~7BQ_nBy=`xh53H}2P8f1Qgix(M6ef8~>ulFKi@{DASki+5aLqxp8Sk(Ex0+e76< zge0aF79dP8!Wv(>qV*9!*?Nf#dVD8ux9x;)B#v<_ZNL3DEq{EF%(fj~&(?8+1$waV zir4dr<>Td*3weIUD_n8Ujuh@T&!XV9lmCY3hoRb!|`rLrTgEikUrWHibnc z{Ogq`dzZ;OP_K18@PKaEvPDEfVeK1HMQck74fXXRfAR!v2!qB=n?*F5r_;m6qEl4@ zVS!?kNtqJ8xDvFbwm)b?kaKVm7lQET05VY}GP*Vqv z4V!9UOC7Yu1fgi040%1ZlLK|m@^%Zy%O@!68uCDDWZ0o$(^!O|5TOj~HkN{^5QaMV zUiUsK%>foHvQZAmJb`V)gRj__LBR0f)1`p1WrDL#u=wD4K28~LU>H6WlaL4odZ#We zSA6RfSX?E&ocD2j^eqHr9Qf06_}m#Vth$peqL6sL$@qp>nA|4t73488>5^_~Bl)DJ z@@L@BvS;(o(bQd9(2*(Nx9dMnMW}%bs-C6L-@f0qrZu!@3VEjXe15zB<8)*Sj?vy3 zk|7y<^8SlXd>h3q80PGzbJIpTYc>-dUO{&IPLdLW(R_@6q;2^^LfXffCrqF`Zy1*A z^qX4v?aO;UzSv$lsOR(1ee};@S2TwcPxQV=3W*`bK>-PCz?2e8O5)k9hxyWdIDeSF z#n&6TCB(kZsKZDsR|&$G3)mYp4qG>`o1Sg(eR&kFP}z-&pU@%gvp?>)vztAsLdRAjeyt{OY#V`;RGXg<%x(!D$ot zRVKi$wiG_)<$O{Yj4BTB!4VFvD^~EHx_11Q91tw}z1b7)Tha2)TsT6YTn8&sM7m%W zX6H7_f(0zx+)m+$5Jl<5m=oq;JBrHKMt1IQWMM}&R>yYSkz*-6;Tp7?J?6~5Lcq)t zf!`3h8X!1rm>}bNnB#*(8+-Nfh7{xl3|`*Y#j|S@>~8lsP#a?|=S>Zh7ch`g;3(a1 z_3_3L@XTlpR=y_NWYYGMNpicVH=IsIWU_-*;9(LUk$<#TkCJfxXd{C=_BouyILYdvtkkhGbx! zo<3NpsZ5q^+UBy0=W^Z|vq)!bKK8x~kWz5M^s!uc<{S$1!rbX_W3*ae9vohe|IGOj4175L`fG0y_YrU)qNw!CPOwL-Q5d1ouelR|+Drw)=puxk{WmxcB2FKmgrP-eg67UO7o^JBt>n*OhFv==t8o$|iJrBgr z!_hv3?8;q~Wtvvt`kTr%IqvcwVb zEC2mpdp%_q#SSad*dae2la68TmEi!jJk1zLHdW0XkS6g$_y2Or}LaBCI2|FV)3fU?Ha zSAh0%uia8vTF3`W3-|Ir`)?nal@7k~HrY)Uv4=y%9}9sNWVe~*U75r;-o~tS$ZqPt z9%(~*H8-vTzYlJ`F~IGg3Zf8v<%bFGx-Uak3&gxij7zI=hedGHF2pi9{8G6`PV9J& z?d+x&j7S(6jSzo%G4Yoc_uLy9jo^01ak~--DTgo)`kV&rjz@WIXBC%C+KkV1a;?B( zpL|e{3#0{Iw#CAoBWOwTYR9=U{EcyBQOqei%_V#ux%c8Wj6e%T}Hf$iTvKxvb&#;(MF_P!*+A;MKV$UBQTRrW%oXuU_Di*+6=+R%`%boh_h)qNY`_YI_9y@zI{4i)|B=N5 z@N)4$^=|`K0KWoax!3&)xCyv6cg@VbCksPH<84G~P!2ry3Y>8Q6h`4c-|O+tZ`}=! zg4=%uCrpA9CqrEmEP4|fS_jRLk@&KJm$xPde**jsP0}L zV{y>^p96!HHY9sQe}d&}n$fn)nRBc7!B^vr&+?-PpGh~dV8d_zM%!cmX2dscrTin;gJIx0HZzJ&gq!N5>-B=!OEau0Pw=+-1x%tv{I9l+zpIk_1 zLj(d2_`I9i*`nyo8k7v{4?=h*@kmqIf=kGYE*F~pKWb!X=$JvVr&UF=T zSCVaa-Al)!l>?p;bJX#baSMzei__6T{)Ok0dht~Plg2>jjzK$K<1h{qwAKh03i4p* zj#j?)wHAsB!W0z-L4;^-d4sMl2g7GmT;#`fyv9~>pyb*AZ|}V0Dza+ zo8Ci03M2%igNlM8f`HiQD(Y){v0#6HU{@3@2r4K_6$GR=0fkT!NCcXwoadW z&-wjvXSQV%Hp%X0XLG)v&+g97ow;-8+;g7uoaa2{U@>pr2wRVMe{;Dl73|->cJ>z8 zBEu=8U*Q{bZsJ5t4I&#z(L;p?1-?p6*+|# z%35gu#e)|Uv-DPv`oA_p`w_1)-BzDu#>nd?~WULxvNtud45t&QciK#W_c< z;pGhz*-~HL<7h>3lusV_7LU9!i|U3l5V1j9pXq$}gwPr+!LH_%r{wvqL9jD)Go~r& z*+2qb=9~1EsWfe!LSXtvijRKnfIg+Du#{<2=Tg0WBTY?p9DDS82>649LXqtK&nEuL z-m^p^Mk<};^*3K87H?kz?;g!li= zQX(0Cn(zYNRz_M*zt@nGrJJ8uo3xQIaH%7s4=W9N@8fLe^x89VjY>APo ze3;e=6Hyrll}r&jau%Vo;sLAbEq!}5Er5hbAj6ExCMriO##TDir68)~lqVfVmnGTZ zB$?rF_HxAfK&Zi$$FAJhF(R@?9Zq^^l@-#o~Fwi~Y$(aTG?dVc!i+wrQzhS-S z(^6E2YGkqSLCe5U_avafcA&zAuv_@vXcW`6eF@K;!Q8dlzVAx0Qb4|EUkL9gQXP_Km6}|$8y~C608BfzK6eT`sh$n8?7AXSJ*QFdUWw}>i=>tEl<5b zXvSoUzyH5H)Zycn2bZ&cU5&Svm;0Z%r>`-ZOXRbqx{;sV@C5fgzML;ycruq=a6F|S zIF+K4j-lnL7pVX9-FuNc8ppN}6%OB@zmc!b-pZ)L7%FY!xPGjV#u9F)1k$=!l%43Y z-MYu)cGk${C_g3PG}nw<&6kg^=67o*^V99qy=&OtA}TdC@Z57SYZe@RH1sYqnDdd^ z+d2BOZMrTjUk+>6!fB_$xN$?GpNiai%=T<4J?tvB=eHmP%qvdw?ZbC5yEx6ATZ>rU z5~L$zA#=9OeMt5tdAJdHkt|Kd8OtqlldC0U3@v^;J9B#)euhab4bBwz19IS#!zjOhuH7b#$_1Twc zefA|Uqsaj35x;!k$7a$z*hIblm`Oo&3#1z~N_(-v{pntg18E0B0Z*J{256n;+0!j1 z$LhFp`5y>9wU#DjVF|tGeY))AC56Dw&e>6=a64ni2e#?Hb>~~A|8$!&1RAXcRv?8& zptb0XQ?AENpO-ndah2yC>2byn+P6o98>d@DAW}vT>^i=BMW+R8|bK zzu%BeX98DiECdxkn|0|VKiOK#D%r}nJ_XlY3Zc?C+L?r`JQ=I>G@8U5UTd*C^>&G}4v%uxIUwuGxpi&Ckl0+iG&f->9wdAJNNgP)p z<-oRazWGO8dF7S)wq)t4>t*eYqE`n0{vKm*@9TAZPv;SRoF~T(53T6eqP(;)z^St; znb7?l8njZZ*xbk;A6ZE<;~3%DmppP@&*pDibiDW~JHPjHVz0e{2nInZ!bi?#+|RyC z;VH+VmGWM1$gY93tn&!J7 z?DI2vQ(7oH9Ujt3@aV20ezU!TSKGokx&7?UHMSU-5tB7wx?1phdzcj+A?~U#;cMfY z_;5u#eyI^!P+GA2^)4Ud=bv-KESel3;TK)OXa~D8`9QRc6!axNEGZcHkK&qvYG^BDiRkKwN@L&yVbgQpIc`+r}xpyIH@*fF<~!sdI3Pe1Ex_!H6kCYNA zC63b-4`ErJzT>*JozK~}jZ$%xih|b2!nx?t3$nJLezbSPUwiz!X=?+k*6!qwxBnNv z&&F|FGLB0q=)>o;+0`87?R7i3@wWf;dAzwL%KA<9-0{F-0)B6QE|qqWLJ$mk3HKX! zwe#AWTlo16k7H-`6s0ubpdZWL^YKv7w^!SMQVMBBkYzS16+ped5O>wlkP1>4$aLM` zgV+rVgyN`zDE~8|mNSAaELo=c-5v1kYu+}bZA(Uv9?Qw6oQluq(`A zN{VS|Zo!f;dn#P;A^4y3As7v@{f06cpD4wRTUZh0_24H?np?#WK6^C3x%(~N-r7Q2+U?38D+R?t zi@B3Z`P!$B;H0@#fWmbhUU}seii(P;s;Xk?(xq6I#i~`S_}~BiUqm)<)81@?r}+xF zB3RBWJAeY*tgZQwPivoTGo|)?tbdE$3{N)A`N;};9#4=WI zs^gS*&0xxSFD`D&j$JHTx`CBzcc7FSP`zn?{9GikuzWg4l~1EtC3&`P1>=jyF{yYQ zOY7fcQ?iLhm0*mtu`P=;#x6KWb_R*1VVjTR^Owjl%*6&F!5aUxYyrt*Ah9qCPPn;jK{;eeN%g2SRPF6mO1p)=NgdR$Xhi&c(7?a&p*<_ zk`;@n-qwUlxoF!0zl|&k=2GK&E|%SN_rcEX7+fGJy1*uMl0-&?S3AemBwkcB-{6qh zs=Qogd$A{q2>54o6-@NckcbHA=$_UF0PnW%Ptwd)XrtZ%VRWA8~viW39Hq^DZvZbk!>7yh8*Tz+vSSrP+ z!a@LIsT2}{B?T$RVM|jZb?vRl+!ACE{r>vs4PE7ov_>nC5ibTfodNu#5ZbH%q225p zWDUOD(A^#g4KblvEj5n|#eXeDtML4OyXWZ}68fF+&}&qUMu-fn;$?g==y7Q_a~CQos@>8du)hq-M_C90Cn;Qac0lOZQKrkHEIIwU)=+>;Mu-eDC~6#0AP)EclC&aU#ir)4EQ_|bHk495e2aH8o#b8* zJeqE2m6PP!f-x+xL+ny6QfS<$pktYhutA1&mu>JJzES&sUZwtqzYtxt1noLr&dQNE zUOWA^B^}XruD|<6ri_`y{ONPhXwEwBH0DpA%_A>A!|UtcqORGCxg1qe&cefvV8-|< zTz}Ueh(+5GKK~x?RlZa6&2Na%SP702JBu_r2E`f8uBAfgBt#lCDlSBQ`3&^OzlSI+ zC*Y<*N|JVn`l9(fQhzSN9dS;xHZ!Wo0qG~6$`B4}N?c9Yk`(z}!hUE^ShS~0Sh+cg z&~ZkU*nGTn9SyZF@w`5Zh?@kmmwuPdw7-G07x%6tGU#N}Z|rNV zd(H5W%f};+zxafU;K6<>5px=w5RoU7^gWU`NHBIreV=cCn z%5M2B^VCL{OE+Z0ss^}q8JspeiM8vqWJ0)h&Q411t?xkpXmaJ zRD21Gb*;1b(d$>!kf`LeanCU(Tu0cBBZZ677I7y`ZG1G(?L3V?t^NY*T4$k!$?0q` zNe7D4gOuDiM;nr^t362UR*-QfA2*Hqoga2<4d3a9Kms8 z&`J-O>V5O~dj9|2TGmNdbRBMBXS9=G^HY-mmcFuTmp72^_IxcFZrm#;tu{DW4guXje-D<9r6 zBKwWj8iYip;}lFdf|%_mw(Kq-} zz-N$gpZf3ty;F1 zRJ$xw4mD_!wGG_&>)#{(?4Q_os?viC*`@KVcp5ZaI3AF1XY#X~U zLhTp7Pr7;szrOA|CQq5dSHAKUgp^3(>CCRBdus#;m$)0^_+<}ciwshFHLhzirQY|l;%IH5g+>U4)>gONgCmm+P%a!k z7>RO4aVx%#1b01?;dgf=*ih|usvmnY=LrGhsw_@F(dNoa0~8%LihJwc&2MWjWPNfL z+DalsB3t#Qds7}7GUC>2t^E}r*))6tS83Wi{zEX}hI=0E zX>ZQAdSXZX_`Acq1N`yV`?q$;4md5LF79yq`gT4#rI2}Lem*oIOnuU2U0WJ~;Qiym zR0Jgjw&aanY3|?BL0#NITiuJK?caFIxAy(p_unMV+I%>AgLcm}0+fwCa|(QUI2;IC{o> zn%bLbT3O5CMVqLooJ-~5U!$>RBOPylkK#ZGYit0Ot)V9g5D8eMcm0>bIX_|gF_*Gq z#h>u+yq7P|J%LkakH;4DSwB|~aNf-BwV8e69nxETbUYRzz9@iBd7sjDcLA9lJ_^r@ zd9T^v>+}gd(0=SHue{|KJ{sW1Ukwuo3VwV;oZsG&B;kNKW(?LjQ*g%@;-*|^PkTu( zEZH-+{78^uQlgS6S{`_O_k^HQqLmsj{b*#ELN!`Ldosx4>Iob@u9oq|?Oq+c?y)22 zZZ*y|u9mEAtYAgWXxwa$nf>iT`L>U;+j_g(0xX?Qvu@owlu}rh#i&uEm^5h;n>TI3 zbzCF@H&RY%yPu-w1ioMiLMg^>%pih=xP@`A4w-VXeKwOOO+sr;O-&81>(bEBz`S|$ z@caEe_4IyF7#18o-Nz;G3vi5xlANtD>vLEUDdNP*bNTeU zPUpDMb6C5kmD}!J%u~;8CKk__0R-H6=be1%_g|uYW;<4~jT?86!Qpd#HXDC@NUZ3U z5|GVVEVSmZnM)Z}u@!)lvIZoerN}y7becT|LUkUI?W?t>qa(`NHLG!_jHB?B_u^EI zMn^k9NUV}lQd>3w5STIzdsHQMSvjJt9A7~(ZuRS|ZP-jlI*At9;zfg?Xyl68=xmgf zFA^s4>T()yyp?hP?;BXfh1miQyKivgYTWh?8gIOn#H-8kMZyPMh*)p=(BP=&(i?OJ{Fj*ZFx3wt`bAmUpjS<{eSOG8@@lx+w-e=Ek_^v^osnNFE)Ki45lmq zShNj}y|?GFx1I;M=b(ILDLs4Cf|=gR$&%i4!(fFE8ZuJwQi;vWB{l_)rqK0TvcnQY zZP6q7sc{tCzh0@kB@foRr<0!H9lEKML{51xp@qkieEUtJ|9*n_i_ep(-HCRbuEL)~ zK+K6E5S%~lVm>?jYm^5oah(iGx>&Z4_E%n~`rE&x?WI?-3ktC-%D{0ulPL-zu*-_Q z`<{JHM#5fSa22}S`pm89u0iW&@TYg00^?_gUHgW9w6z7yEfice&EkWjEWG$|(YILd=CI>5yR<)+p#8xFD(a0hlQedi=mSHz zkJhJ+yjOQI81{w3Qq9Bq`qrCUG^Ctz_CNCKdjF^9bpfxxqkJ4TSpC>A(BSiF4jnJs zDOiJ&G*EZu|CJi5GEt6e-@!Re>o`2#fJEbZN~_r=c?Z7snbXAAKC=g#P7_>q{!LuA zhxcxN367rk(>?q_qfnur~y*jI$o3dPVT$H@nro0jZ%gXAjCTzxBC-TCa>J=%D{t=#+TWFiDw zx!(J8F{#;LcCB^R{-99WbNXkf3k-DI>eUF8()@QKY%9=wXd4{SD45ieBK5$tw2T`= zaNc1QpL;ryW9Idk^AEIl$F}(Pdc4YNrpj(c*9njogjMlH_^ENO)eBxM&cy=yxKmG4{d*oX1|{`l{4_S3MPbG8SN@B%5^_^JJ01q zCNmHL4$hEW@6VR36D-M}_MO-MqF~jFuqr>UH{ayLVa+uoXu|jO9jyh9lY?b}Q5@4&mz^ ze%$(@ae4IxM{3;1o^=S34Pe%^B%GY8$v_6@cV~RrJ4e;IO4Hbp#@a)oGARY4iu{Z# z31VAjJ(SOU<(Z!j^D8{J$A3j9EbQuVHLt=8_wK>s(>Hhh=4S5tO>ZUpZJ0Ff9p9Tf zw!Rv^{$Kd|XZ!aJBoG%CXYQ)!n)o`7-O)RC$=w(haVx9!{vO}*4KNl1tAD$}}I zGt0i3N4wcMr4SUmX+F2^pB!DYoS5)qk?EK3heG4_a3LKWf!dLD^6OR)(R#?;LpO8# zsaFlO{Oc~W`YOIWP}nHO>I6Y_wih1UiQJ2Vla%Qsb{~WBsFwBnet|b0JTDbjYl2wlo308l^|*N``#rdUQ`n*=@p40qMX#=7Ma_NGchsSkOUM@>>bB(OI{<{5rwM+nU`Kc*VYZ- zr{`CkHt!psSDJEt{TGdaV-R`zw-1^2HFVN&#jX3?A3n;hdG;-Penm?P-ZiI$W9JqF z@UA%}SaNXoCl)lV%B%5~$)pcl2XP>kNOUcTwDuAs2+y=NkmQ?xR9jmfujhMLT^#6R z2Xda==(YN1X_Zp!F`=#$fF-~k_~IFPAD5vt!nR1))KPQIbu{1opf}E?#40Xi%+J0{ z#T6GK{XVqgdddB5E9;}RciWf{T?yueZK0JyJ1&JMAIr@D-cRE#cTxL`Kj5U(#8<3l z!frd+_wG`cj;ZHMqwBDuNp86ZesdSp@9LZ~0Lg*{3pnSTb7*XA zBoc{GUth;1ms~>iwwT1qA?>uh4`DRW#?KIx?u455sK63m7W{fT5 zj^{SBY<&}LtzM5UE(vn{{HvBbLy$5^7PYB zbJS5sA*Jk^!}r2-nW%U!6U`r$H{blDE;v=_Jkm2~4!~R)eWRJDSG-NY@A)OB(hjat z%&-o8FMVC_we6}k`z{Z&V=}HXY)aJPMjQBT#YvP{A@1rZK<*N3T>1j#MN{wziOTB9 zf&cLuXy3t`~T*wuILYk@CE(IF1I@K- zaMKRjZ=?M-(w{35r%|0b;QDg*9o+6U<)L+ghX&w8@7>S$Z37mK-2UL-XSY7#6@xD- zA-HfpI+Y^x=G(+?zMb?7ivf+ZrJC^PF2Of{9>In4Nf(x&+r7Fy2fCs?Z0j5Q-r;tB zuZKMDkIa4&7;|upKg3cgmR4`X)r#XLPiIs?5fOg?JG%~cTtzIMq%qpgTQ%ERzHKwE z)>s3PwEp!=4|qVUzShn|s>fuTQhT0>bpl?o6c0(oDxpz$uDb`tvfA&suP#3Z4M@vD zA$U7o!P}`y5N@}Ec>=TrLV@idae7r4+yC!*sKpfyHLu5thxrxu&(EPGshQQFNm+Uy z`nN=r0-fyl{(QjoKC8dPB8OnX)jjw_42B=L$hX8kSr;bNe}%MeJdn5WOV8z1fB4j^16W@wSIlf6 z`T4Sbw`UAE>4) z1OuJowczacppz-mYc^9>+sOGHTl{{lK6rnT4r~mT|0;d_pI%_`7xq0^Zq*O-N^Z(& znEWX3AlLK(tb?c2Y})thy>m;y?HqZD*68*QV$VEB^0n8Azr5IcI-Vf-u7wnyeHH|R zBXS=wzH-e0G@GVK2#yUxc$SaG))=nRjID?;H`tEc)Him!kD z>j)vZ_S$QaQsTZtaDkh(-)vTCE^Ob%x5JfO94sZO6^_(c*>Y`KiGIgK7r*c1L&MI| znRinm{Xt%Pdl^6Y^H2G|PhZ8{sk0~uMVK&ZEMNM_rD&~bk42G|L<-58>h=8mw%_o= z(ic#nuy-CtW^UI^vDwgWU% zh?B`+ho|sb`Xh{sJq@7_wxwq>PBw9ve>1I_5S#r+(cId>99d0kD#9!JJ^0-Qjx2hM z_COi0#!hCm%rHJ#&v>6AiJzu)oESEZ2Wfs&{dnB(c`oM|)y+f7vr%X?0xfKULCvf& zaQ5*wSG?cP*m4Vvw%R!h6Ofs47U1 z8V5cJRtCx*fbgc>Z>~5<*R8Nv({ecfZ`qG|ddC@@GI|kHi#HRoW5k>Yo7<=IV(rPi zRCjW=evvpx7i=&LPb^FJDX4RPu4qlsq)BAjw&S<9VYyH;a~A$lqiCKyj`Yj_BpK28 z#~n+svK)!-jO!5tG0uDIXF8Er?Yp)yGR&`VKOBp)`v*dU-?kZFQjQeXUe~w+a9oGO z#!UtdGsjM3Szryd4LebmwcmDi-<&ql^*y?bu1&+VwXgie&G|L^JY8#MOT$64pAEni zl2_N8Z+7y4cJ_FU!Y@%vm+_f+lo=MdIKz72dROKu&9+@>1OnNuW~)RKPbp$4H(U35;J(S+Uw!8Q1^6CxYdt`V`9ECK zpD@-}5~@wv8QQ$2NLw z+dH;x+qS*4yJOq7ZQIt<@6R{C()7SO2E|HH^~3f8(g6KlqBnH zJwZ&UdO*!CmTh30bNdbzb6WA;lam-B=O;PQ0wAlQj6g1nt2g!AV0{c4g+^|b3ZI!L zMEyOp*=@0R)?ZB^?|eDS^D=+pjox2f!vqr^Y?rv2L1+Bj-oB`?7W0`F`(_q7N6?vW zsF8DPdhBuCWBc|#VO8_t0&0WTug{sizjMoanxL|%sPCgKl=HY-Achb?X2|)~Nt zcN*lm^I?%WPWujgd+|d|@a|4%hBWB5IvbK4HpapZck2>fJYJb)Jsl`*(iybac&X z))?cGe$TeHfULAwf;wBax1d|S*bnV9>lpziR&%P0>8+T5_A%#3(u|Y9GAgbA%X#9e zqm!65n*r<}UY3of!q|Npkr?Fl6*R0xFYjYaP$@kGw*i7QHgXH;mS22-01o(aU5(Y- z>H3a=>wt$b5)zd5a<*6u3?-)fANKYllA4;c=Av!ts? zwDPsgkIT59QKc7;=|X_pFCm=x)_dh1 zkpP_bpjYs$_D7ou3wro-;H4>*ajZ-EnP4lesTpqE!|vMga%7<}Geng}sn%S%zgN6S zYqL1I?s{KeY~bnLrqjs19#;d;yYa|d=#!2FuoAV8p8@Rn*_HE2CqSXdbvl#4y9EY! z0~T)J92k&gA8t{x&_PDKsQdA5%7`+diRyv35!DT;!4^x%%Tt>zgH?9_SYm;@sm5I8 zlde5n-RArEt8w4$Y94h@%FoalHc>LZW=A;qp+)9;BWx0V%53!Ib#t+RIk4fz-|^xe zw(neSgCd<~iM~Ip&v_n5v7%Aqhq

_AM+dM%;MQRe9vNcKW+-xOm7l2TdcM-2Mf@ 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 N002ovPDHLkV1n~oAoKtL literal 0 HcmV?d00001 diff --git a/assets/intl-tel-input/js/data.js b/assets/intl-tel-input/js/data.js new file mode 100644 index 0000000..d05a0e3 --- /dev/null +++ b/assets/intl-tel-input/js/data.js @@ -0,0 +1,37 @@ +/* + * International Telephone Input v19.5.7 + * https://github.com/jackocnr/intl-tel-input.git + * Licensed under the MIT license + */ + +// wrap in UMD +(function() { + // Array of country objects for the flag dropdown. + // Here is the criteria for the plugin to support a given country/territory + // - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + // - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes + // - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png + // - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml + // Each country array has the following information: + // [ + // Country name, + // iso2 code, + // International dial code, + // Order (if >1 country with same dial code), + // Area codes + // ] + var allCountries = [ [ "Afghanistan", "af", "93" ], [ "Albania", "al", "355" ], [ "Algeria", "dz", "213" ], [ "American Samoa", "as", "1", 5, [ "684" ] ], [ "Andorra", "ad", "376" ], [ "Angola", "ao", "244" ], [ "Anguilla", "ai", "1", 6, [ "264" ] ], [ "Antigua & Barbuda", "ag", "1", 7, [ "268" ] ], [ "Argentina", "ar", "54" ], [ "Armenia", "am", "374" ], [ "Aruba", "aw", "297" ], [ "Ascension Island", "ac", "247" ], [ "Australia", "au", "61", 0 ], [ "Austria", "at", "43" ], [ "Azerbaijan", "az", "994" ], [ "Bahamas", "bs", "1", 8, [ "242" ] ], [ "Bahrain", "bh", "973" ], [ "Bangladesh", "bd", "880" ], [ "Barbados", "bb", "1", 9, [ "246" ] ], [ "Belarus", "by", "375" ], [ "Belgium", "be", "32" ], [ "Belize", "bz", "501" ], [ "Benin", "bj", "229" ], [ "Bermuda", "bm", "1", 10, [ "441" ] ], [ "Bhutan", "bt", "975" ], [ "Bolivia", "bo", "591" ], [ "Bosnia & Herzegovina", "ba", "387" ], [ "Botswana", "bw", "267" ], [ "Brazil", "br", "55" ], [ "British Indian Ocean Territory", "io", "246" ], [ "British Virgin Islands", "vg", "1", 11, [ "284" ] ], [ "Brunei", "bn", "673" ], [ "Bulgaria", "bg", "359" ], [ "Burkina Faso", "bf", "226" ], [ "Burundi", "bi", "257" ], [ "Cambodia", "kh", "855" ], [ "Cameroon", "cm", "237" ], [ "Canada", "ca", "1", 1, [ "204", "226", "236", "249", "250", "263", "289", "306", "343", "354", "365", "367", "368", "382", "387", "403", "416", "418", "428", "431", "437", "438", "450", "584", "468", "474", "506", "514", "519", "548", "579", "581", "584", "587", "604", "613", "639", "647", "672", "683", "705", "709", "742", "753", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905" ] ], [ "Cape Verde", "cv", "238" ], [ "Caribbean Netherlands", "bq", "599", 1, [ "3", "4", "7" ] ], [ "Cayman Islands", "ky", "1", 12, [ "345" ] ], [ "Central African Republic", "cf", "236" ], [ "Chad", "td", "235" ], [ "Chile", "cl", "56" ], [ "China", "cn", "86" ], [ "Christmas Island", "cx", "61", 2, [ "89164" ] ], [ "Cocos (Keeling) Islands", "cc", "61", 1, [ "89162" ] ], [ "Colombia", "co", "57" ], [ "Comoros", "km", "269" ], [ "Congo - Brazzaville", "cg", "242" ], [ "Congo - Kinshasa", "cd", "243" ], [ "Cook Islands", "ck", "682" ], [ "Costa Rica", "cr", "506" ], [ "Côte d’Ivoire", "ci", "225" ], [ "Croatia", "hr", "385" ], [ "Cuba", "cu", "53" ], [ "Curaçao", "cw", "599", 0 ], [ "Cyprus", "cy", "357" ], [ "Czech Republic", "cz", "420" ], [ "Denmark", "dk", "45" ], [ "Djibouti", "dj", "253" ], [ "Dominica", "dm", "1", 13, [ "767" ] ], [ "Dominican Republic", "do", "1", 2, [ "809", "829", "849" ] ], [ "Ecuador", "ec", "593" ], [ "Egypt", "eg", "20" ], [ "El Salvador", "sv", "503" ], [ "Equatorial Guinea", "gq", "240" ], [ "Eritrea", "er", "291" ], [ "Estonia", "ee", "372" ], [ "Eswatini", "sz", "268" ], [ "Ethiopia", "et", "251" ], [ "Falkland Islands", "fk", "500" ], [ "Faroe Islands", "fo", "298" ], [ "Fiji", "fj", "679" ], [ "Finland", "fi", "358", 0 ], [ "France", "fr", "33" ], [ "French Guiana", "gf", "594" ], [ "French Polynesia", "pf", "689" ], [ "Gabon", "ga", "241" ], [ "Gambia", "gm", "220" ], [ "Georgia", "ge", "995" ], [ "Germany", "de", "49" ], [ "Ghana", "gh", "233" ], [ "Gibraltar", "gi", "350" ], [ "Greece", "gr", "30" ], [ "Greenland", "gl", "299" ], [ "Grenada", "gd", "1", 14, [ "473" ] ], [ "Guadeloupe", "gp", "590", 0 ], [ "Guam", "gu", "1", 15, [ "671" ] ], [ "Guatemala", "gt", "502" ], [ "Guernsey", "gg", "44", 1, [ "1481", "7781", "7839", "7911" ] ], [ "Guinea", "gn", "224" ], [ "Guinea-Bissau", "gw", "245" ], [ "Guyana", "gy", "592" ], [ "Haiti", "ht", "509" ], [ "Honduras", "hn", "504" ], [ "Hong Kong", "hk", "852" ], [ "Hungary", "hu", "36" ], [ "Iceland", "is", "354" ], [ "India", "in", "91" ], [ "Indonesia", "id", "62" ], [ "Iran", "ir", "98" ], [ "Iraq", "iq", "964" ], [ "Ireland", "ie", "353" ], [ "Isle of Man", "im", "44", 2, [ "1624", "74576", "7524", "7924", "7624" ] ], [ "Israel", "il", "972" ], [ "Italy", "it", "39", 0 ], [ "Jamaica", "jm", "1", 4, [ "876", "658" ] ], [ "Japan", "jp", "81" ], [ "Jersey", "je", "44", 3, [ "1534", "7509", "7700", "7797", "7829", "7937" ] ], [ "Jordan", "jo", "962" ], [ "Kazakhstan", "kz", "7", 1, [ "33", "7" ] ], [ "Kenya", "ke", "254" ], [ "Kiribati", "ki", "686" ], [ "Kosovo", "xk", "383" ], [ "Kuwait", "kw", "965" ], [ "Kyrgyzstan", "kg", "996" ], [ "Laos", "la", "856" ], [ "Latvia", "lv", "371" ], [ "Lebanon", "lb", "961" ], [ "Lesotho", "ls", "266" ], [ "Liberia", "lr", "231" ], [ "Libya", "ly", "218" ], [ "Liechtenstein", "li", "423" ], [ "Lithuania", "lt", "370" ], [ "Luxembourg", "lu", "352" ], [ "Macau", "mo", "853" ], [ "Madagascar", "mg", "261" ], [ "Malawi", "mw", "265" ], [ "Malaysia", "my", "60" ], [ "Maldives", "mv", "960" ], [ "Mali", "ml", "223" ], [ "Malta", "mt", "356" ], [ "Marshall Islands", "mh", "692" ], [ "Martinique", "mq", "596" ], [ "Mauritania", "mr", "222" ], [ "Mauritius", "mu", "230" ], [ "Mayotte", "yt", "262", 1, [ "269", "639" ] ], [ "Mexico", "mx", "52" ], [ "Micronesia", "fm", "691" ], [ "Moldova", "md", "373" ], [ "Monaco", "mc", "377" ], [ "Mongolia", "mn", "976" ], [ "Montenegro", "me", "382" ], [ "Montserrat", "ms", "1", 16, [ "664" ] ], [ "Morocco", "ma", "212", 0 ], [ "Mozambique", "mz", "258" ], [ "Myanmar (Burma)", "mm", "95" ], [ "Namibia", "na", "264" ], [ "Nauru", "nr", "674" ], [ "Nepal", "np", "977" ], [ "Netherlands", "nl", "31" ], [ "New Caledonia", "nc", "687" ], [ "New Zealand", "nz", "64" ], [ "Nicaragua", "ni", "505" ], [ "Niger", "ne", "227" ], [ "Nigeria", "ng", "234" ], [ "Niue", "nu", "683" ], [ "Norfolk Island", "nf", "672" ], [ "North Korea", "kp", "850" ], [ "North Macedonia", "mk", "389" ], [ "Northern Mariana Islands", "mp", "1", 17, [ "670" ] ], [ "Norway", "no", "47", 0 ], [ "Oman", "om", "968" ], [ "Pakistan", "pk", "92" ], [ "Palau", "pw", "680" ], [ "Palestine", "ps", "970" ], [ "Panama", "pa", "507" ], [ "Papua New Guinea", "pg", "675" ], [ "Paraguay", "py", "595" ], [ "Peru", "pe", "51" ], [ "Philippines", "ph", "63" ], [ "Poland", "pl", "48" ], [ "Portugal", "pt", "351" ], [ "Puerto Rico", "pr", "1", 3, [ "787", "939" ] ], [ "Qatar", "qa", "974" ], [ "Réunion", "re", "262", 0 ], [ "Romania", "ro", "40" ], [ "Russia", "ru", "7", 0 ], [ "Rwanda", "rw", "250" ], [ "Samoa", "ws", "685" ], [ "San Marino", "sm", "378" ], [ "São Tomé & Príncipe", "st", "239" ], [ "Saudi Arabia", "sa", "966" ], [ "Senegal", "sn", "221" ], [ "Serbia", "rs", "381" ], [ "Seychelles", "sc", "248" ], [ "Sierra Leone", "sl", "232" ], [ "Singapore", "sg", "65" ], [ "Sint Maarten", "sx", "1", 21, [ "721" ] ], [ "Slovakia", "sk", "421" ], [ "Slovenia", "si", "386" ], [ "Solomon Islands", "sb", "677" ], [ "Somalia", "so", "252" ], [ "South Africa", "za", "27" ], [ "South Korea", "kr", "82" ], [ "South Sudan", "ss", "211" ], [ "Spain", "es", "34" ], [ "Sri Lanka", "lk", "94" ], [ "St Barthélemy", "bl", "590", 1 ], [ "St Helena", "sh", "290" ], [ "St Kitts & Nevis", "kn", "1", 18, [ "869" ] ], [ "St Lucia", "lc", "1", 19, [ "758" ] ], [ "St Martin", "mf", "590", 2 ], [ "St Pierre & Miquelon", "pm", "508" ], [ "St Vincent & Grenadines", "vc", "1", 20, [ "784" ] ], [ "Sudan", "sd", "249" ], [ "Suriname", "sr", "597" ], [ "Svalbard & Jan Mayen", "sj", "47", 1, [ "79" ] ], [ "Sweden", "se", "46" ], [ "Switzerland", "ch", "41" ], [ "Syria", "sy", "963" ], [ "Taiwan", "tw", "886" ], [ "Tajikistan", "tj", "992" ], [ "Tanzania", "tz", "255" ], [ "Thailand", "th", "66" ], [ "Timor-Leste", "tl", "670" ], [ "Togo", "tg", "228" ], [ "Tokelau", "tk", "690" ], [ "Tonga", "to", "676" ], [ "Trinidad & Tobago", "tt", "1", 22, [ "868" ] ], [ "Tunisia", "tn", "216" ], [ "Turkey", "tr", "90" ], [ "Turkmenistan", "tm", "993" ], [ "Turks & Caicos Islands", "tc", "1", 23, [ "649" ] ], [ "Tuvalu", "tv", "688" ], [ "Uganda", "ug", "256" ], [ "Ukraine", "ua", "380" ], [ "United Arab Emirates", "ae", "971" ], [ "United Kingdom", "gb", "44", 0 ], [ "United States", "us", "1", 0 ], [ "Uruguay", "uy", "598" ], [ "US Virgin Islands", "vi", "1", 24, [ "340" ] ], [ "Uzbekistan", "uz", "998" ], [ "Vanuatu", "vu", "678" ], [ "Vatican City", "va", "39", 1, [ "06698" ] ], [ "Venezuela", "ve", "58" ], [ "Vietnam", "vn", "84" ], [ "Wallis & Futuna", "wf", "681" ], [ "Western Sahara", "eh", "212", 1, [ "5288", "5289" ] ], [ "Yemen", "ye", "967" ], [ "Zambia", "zm", "260" ], [ "Zimbabwe", "zw", "263" ], [ "Åland Islands", "ax", "358", 1, [ "18" ] ] ]; + // loop over all of the countries above, restructuring the data to be objects with named keys + for (var i = 0; i < allCountries.length; i++) { + var c = allCountries[i]; + allCountries[i] = { + name: c[0], + iso2: c[1], + dialCode: c[2], + priority: c[3] || 0, + areaCodes: c[4] || null, + nodeById: {} + }; + } + if (typeof module === "object" && module.exports) module.exports = allCountries; else window.allCountries = allCountries; +})(); \ No newline at end of file diff --git a/assets/intl-tel-input/js/data.min.js b/assets/intl-tel-input/js/data.min.js new file mode 100644 index 0000000..6aa72a3 --- /dev/null +++ b/assets/intl-tel-input/js/data.min.js @@ -0,0 +1,7 @@ +/* + * International Telephone Input v19.5.7 + * https://github.com/jackocnr/intl-tel-input.git + * Licensed under the MIT license + */ + +!function(){for(var a=[["Afghanistan","af","93"],["Albania","al","355"],["Algeria","dz","213"],["American Samoa","as","1",5,["684"]],["Andorra","ad","376"],["Angola","ao","244"],["Anguilla","ai","1",6,["264"]],["Antigua & Barbuda","ag","1",7,["268"]],["Argentina","ar","54"],["Armenia","am","374"],["Aruba","aw","297"],["Ascension Island","ac","247"],["Australia","au","61",0],["Austria","at","43"],["Azerbaijan","az","994"],["Bahamas","bs","1",8,["242"]],["Bahrain","bh","973"],["Bangladesh","bd","880"],["Barbados","bb","1",9,["246"]],["Belarus","by","375"],["Belgium","be","32"],["Belize","bz","501"],["Benin","bj","229"],["Bermuda","bm","1",10,["441"]],["Bhutan","bt","975"],["Bolivia","bo","591"],["Bosnia & Herzegovina","ba","387"],["Botswana","bw","267"],["Brazil","br","55"],["British Indian Ocean Territory","io","246"],["British Virgin Islands","vg","1",11,["284"]],["Brunei","bn","673"],["Bulgaria","bg","359"],["Burkina Faso","bf","226"],["Burundi","bi","257"],["Cambodia","kh","855"],["Cameroon","cm","237"],["Canada","ca","1",1,["204","226","236","249","250","263","289","306","343","354","365","367","368","382","387","403","416","418","428","431","437","438","450","584","468","474","506","514","519","548","579","581","584","587","604","613","639","647","672","683","705","709","742","753","778","780","782","807","819","825","867","873","902","905"]],["Cape Verde","cv","238"],["Caribbean Netherlands","bq","599",1,["3","4","7"]],["Cayman Islands","ky","1",12,["345"]],["Central African Republic","cf","236"],["Chad","td","235"],["Chile","cl","56"],["China","cn","86"],["Christmas Island","cx","61",2,["89164"]],["Cocos (Keeling) Islands","cc","61",1,["89162"]],["Colombia","co","57"],["Comoros","km","269"],["Congo - Brazzaville","cg","242"],["Congo - Kinshasa","cd","243"],["Cook Islands","ck","682"],["Costa Rica","cr","506"],["Côte d’Ivoire","ci","225"],["Croatia","hr","385"],["Cuba","cu","53"],["Curaçao","cw","599",0],["Cyprus","cy","357"],["Czech Republic","cz","420"],["Denmark","dk","45"],["Djibouti","dj","253"],["Dominica","dm","1",13,["767"]],["Dominican Republic","do","1",2,["809","829","849"]],["Ecuador","ec","593"],["Egypt","eg","20"],["El Salvador","sv","503"],["Equatorial Guinea","gq","240"],["Eritrea","er","291"],["Estonia","ee","372"],["Eswatini","sz","268"],["Ethiopia","et","251"],["Falkland Islands","fk","500"],["Faroe Islands","fo","298"],["Fiji","fj","679"],["Finland","fi","358",0],["France","fr","33"],["French Guiana","gf","594"],["French Polynesia","pf","689"],["Gabon","ga","241"],["Gambia","gm","220"],["Georgia","ge","995"],["Germany","de","49"],["Ghana","gh","233"],["Gibraltar","gi","350"],["Greece","gr","30"],["Greenland","gl","299"],["Grenada","gd","1",14,["473"]],["Guadeloupe","gp","590",0],["Guam","gu","1",15,["671"]],["Guatemala","gt","502"],["Guernsey","gg","44",1,["1481","7781","7839","7911"]],["Guinea","gn","224"],["Guinea-Bissau","gw","245"],["Guyana","gy","592"],["Haiti","ht","509"],["Honduras","hn","504"],["Hong Kong","hk","852"],["Hungary","hu","36"],["Iceland","is","354"],["India","in","91"],["Indonesia","id","62"],["Iran","ir","98"],["Iraq","iq","964"],["Ireland","ie","353"],["Isle of Man","im","44",2,["1624","74576","7524","7924","7624"]],["Israel","il","972"],["Italy","it","39",0],["Jamaica","jm","1",4,["876","658"]],["Japan","jp","81"],["Jersey","je","44",3,["1534","7509","7700","7797","7829","7937"]],["Jordan","jo","962"],["Kazakhstan","kz","7",1,["33","7"]],["Kenya","ke","254"],["Kiribati","ki","686"],["Kosovo","xk","383"],["Kuwait","kw","965"],["Kyrgyzstan","kg","996"],["Laos","la","856"],["Latvia","lv","371"],["Lebanon","lb","961"],["Lesotho","ls","266"],["Liberia","lr","231"],["Libya","ly","218"],["Liechtenstein","li","423"],["Lithuania","lt","370"],["Luxembourg","lu","352"],["Macau","mo","853"],["Madagascar","mg","261"],["Malawi","mw","265"],["Malaysia","my","60"],["Maldives","mv","960"],["Mali","ml","223"],["Malta","mt","356"],["Marshall Islands","mh","692"],["Martinique","mq","596"],["Mauritania","mr","222"],["Mauritius","mu","230"],["Mayotte","yt","262",1,["269","639"]],["Mexico","mx","52"],["Micronesia","fm","691"],["Moldova","md","373"],["Monaco","mc","377"],["Mongolia","mn","976"],["Montenegro","me","382"],["Montserrat","ms","1",16,["664"]],["Morocco","ma","212",0],["Mozambique","mz","258"],["Myanmar (Burma)","mm","95"],["Namibia","na","264"],["Nauru","nr","674"],["Nepal","np","977"],["Netherlands","nl","31"],["New Caledonia","nc","687"],["New Zealand","nz","64"],["Nicaragua","ni","505"],["Niger","ne","227"],["Nigeria","ng","234"],["Niue","nu","683"],["Norfolk Island","nf","672"],["North Korea","kp","850"],["North Macedonia","mk","389"],["Northern Mariana Islands","mp","1",17,["670"]],["Norway","no","47",0],["Oman","om","968"],["Pakistan","pk","92"],["Palau","pw","680"],["Palestine","ps","970"],["Panama","pa","507"],["Papua New Guinea","pg","675"],["Paraguay","py","595"],["Peru","pe","51"],["Philippines","ph","63"],["Poland","pl","48"],["Portugal","pt","351"],["Puerto Rico","pr","1",3,["787","939"]],["Qatar","qa","974"],["Réunion","re","262",0],["Romania","ro","40"],["Russia","ru","7",0],["Rwanda","rw","250"],["Samoa","ws","685"],["San Marino","sm","378"],["São Tomé & Príncipe","st","239"],["Saudi Arabia","sa","966"],["Senegal","sn","221"],["Serbia","rs","381"],["Seychelles","sc","248"],["Sierra Leone","sl","232"],["Singapore","sg","65"],["Sint Maarten","sx","1",21,["721"]],["Slovakia","sk","421"],["Slovenia","si","386"],["Solomon Islands","sb","677"],["Somalia","so","252"],["South Africa","za","27"],["South Korea","kr","82"],["South Sudan","ss","211"],["Spain","es","34"],["Sri Lanka","lk","94"],["St Barthélemy","bl","590",1],["St Helena","sh","290"],["St Kitts & Nevis","kn","1",18,["869"]],["St Lucia","lc","1",19,["758"]],["St Martin","mf","590",2],["St Pierre & Miquelon","pm","508"],["St Vincent & Grenadines","vc","1",20,["784"]],["Sudan","sd","249"],["Suriname","sr","597"],["Svalbard & Jan Mayen","sj","47",1,["79"]],["Sweden","se","46"],["Switzerland","ch","41"],["Syria","sy","963"],["Taiwan","tw","886"],["Tajikistan","tj","992"],["Tanzania","tz","255"],["Thailand","th","66"],["Timor-Leste","tl","670"],["Togo","tg","228"],["Tokelau","tk","690"],["Tonga","to","676"],["Trinidad & Tobago","tt","1",22,["868"]],["Tunisia","tn","216"],["Turkey","tr","90"],["Turkmenistan","tm","993"],["Turks & Caicos Islands","tc","1",23,["649"]],["Tuvalu","tv","688"],["Uganda","ug","256"],["Ukraine","ua","380"],["United Arab Emirates","ae","971"],["United Kingdom","gb","44",0],["United States","us","1",0],["Uruguay","uy","598"],["US Virgin Islands","vi","1",24,["340"]],["Uzbekistan","uz","998"],["Vanuatu","vu","678"],["Vatican City","va","39",1,["06698"]],["Venezuela","ve","58"],["Vietnam","vn","84"],["Wallis & Futuna","wf","681"],["Western Sahara","eh","212",1,["5288","5289"]],["Yemen","ye","967"],["Zambia","zm","260"],["Zimbabwe","zw","263"],["Åland Islands","ax","358",1,["18"]]],b=0;b1 country with same dial code), + // Area codes + // ] + var allCountries = [ [ "Afghanistan", "af", "93" ], [ "Albania", "al", "355" ], [ "Algeria", "dz", "213" ], [ "American Samoa", "as", "1", 5, [ "684" ] ], [ "Andorra", "ad", "376" ], [ "Angola", "ao", "244" ], [ "Anguilla", "ai", "1", 6, [ "264" ] ], [ "Antigua & Barbuda", "ag", "1", 7, [ "268" ] ], [ "Argentina", "ar", "54" ], [ "Armenia", "am", "374" ], [ "Aruba", "aw", "297" ], [ "Ascension Island", "ac", "247" ], [ "Australia", "au", "61", 0 ], [ "Austria", "at", "43" ], [ "Azerbaijan", "az", "994" ], [ "Bahamas", "bs", "1", 8, [ "242" ] ], [ "Bahrain", "bh", "973" ], [ "Bangladesh", "bd", "880" ], [ "Barbados", "bb", "1", 9, [ "246" ] ], [ "Belarus", "by", "375" ], [ "Belgium", "be", "32" ], [ "Belize", "bz", "501" ], [ "Benin", "bj", "229" ], [ "Bermuda", "bm", "1", 10, [ "441" ] ], [ "Bhutan", "bt", "975" ], [ "Bolivia", "bo", "591" ], [ "Bosnia & Herzegovina", "ba", "387" ], [ "Botswana", "bw", "267" ], [ "Brazil", "br", "55" ], [ "British Indian Ocean Territory", "io", "246" ], [ "British Virgin Islands", "vg", "1", 11, [ "284" ] ], [ "Brunei", "bn", "673" ], [ "Bulgaria", "bg", "359" ], [ "Burkina Faso", "bf", "226" ], [ "Burundi", "bi", "257" ], [ "Cambodia", "kh", "855" ], [ "Cameroon", "cm", "237" ], [ "Canada", "ca", "1", 1, [ "204", "226", "236", "249", "250", "263", "289", "306", "343", "354", "365", "367", "368", "382", "387", "403", "416", "418", "428", "431", "437", "438", "450", "584", "468", "474", "506", "514", "519", "548", "579", "581", "584", "587", "604", "613", "639", "647", "672", "683", "705", "709", "742", "753", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905" ] ], [ "Cape Verde", "cv", "238" ], [ "Caribbean Netherlands", "bq", "599", 1, [ "3", "4", "7" ] ], [ "Cayman Islands", "ky", "1", 12, [ "345" ] ], [ "Central African Republic", "cf", "236" ], [ "Chad", "td", "235" ], [ "Chile", "cl", "56" ], [ "China", "cn", "86" ], [ "Christmas Island", "cx", "61", 2, [ "89164" ] ], [ "Cocos (Keeling) Islands", "cc", "61", 1, [ "89162" ] ], [ "Colombia", "co", "57" ], [ "Comoros", "km", "269" ], [ "Congo - Brazzaville", "cg", "242" ], [ "Congo - Kinshasa", "cd", "243" ], [ "Cook Islands", "ck", "682" ], [ "Costa Rica", "cr", "506" ], [ "Côte d’Ivoire", "ci", "225" ], [ "Croatia", "hr", "385" ], [ "Cuba", "cu", "53" ], [ "Curaçao", "cw", "599", 0 ], [ "Cyprus", "cy", "357" ], [ "Czech Republic", "cz", "420" ], [ "Denmark", "dk", "45" ], [ "Djibouti", "dj", "253" ], [ "Dominica", "dm", "1", 13, [ "767" ] ], [ "Dominican Republic", "do", "1", 2, [ "809", "829", "849" ] ], [ "Ecuador", "ec", "593" ], [ "Egypt", "eg", "20" ], [ "El Salvador", "sv", "503" ], [ "Equatorial Guinea", "gq", "240" ], [ "Eritrea", "er", "291" ], [ "Estonia", "ee", "372" ], [ "Eswatini", "sz", "268" ], [ "Ethiopia", "et", "251" ], [ "Falkland Islands", "fk", "500" ], [ "Faroe Islands", "fo", "298" ], [ "Fiji", "fj", "679" ], [ "Finland", "fi", "358", 0 ], [ "France", "fr", "33" ], [ "French Guiana", "gf", "594" ], [ "French Polynesia", "pf", "689" ], [ "Gabon", "ga", "241" ], [ "Gambia", "gm", "220" ], [ "Georgia", "ge", "995" ], [ "Germany", "de", "49" ], [ "Ghana", "gh", "233" ], [ "Gibraltar", "gi", "350" ], [ "Greece", "gr", "30" ], [ "Greenland", "gl", "299" ], [ "Grenada", "gd", "1", 14, [ "473" ] ], [ "Guadeloupe", "gp", "590", 0 ], [ "Guam", "gu", "1", 15, [ "671" ] ], [ "Guatemala", "gt", "502" ], [ "Guernsey", "gg", "44", 1, [ "1481", "7781", "7839", "7911" ] ], [ "Guinea", "gn", "224" ], [ "Guinea-Bissau", "gw", "245" ], [ "Guyana", "gy", "592" ], [ "Haiti", "ht", "509" ], [ "Honduras", "hn", "504" ], [ "Hong Kong", "hk", "852" ], [ "Hungary", "hu", "36" ], [ "Iceland", "is", "354" ], [ "India", "in", "91" ], [ "Indonesia", "id", "62" ], [ "Iran", "ir", "98" ], [ "Iraq", "iq", "964" ], [ "Ireland", "ie", "353" ], [ "Isle of Man", "im", "44", 2, [ "1624", "74576", "7524", "7924", "7624" ] ], [ "Israel", "il", "972" ], [ "Italy", "it", "39", 0 ], [ "Jamaica", "jm", "1", 4, [ "876", "658" ] ], [ "Japan", "jp", "81" ], [ "Jersey", "je", "44", 3, [ "1534", "7509", "7700", "7797", "7829", "7937" ] ], [ "Jordan", "jo", "962" ], [ "Kazakhstan", "kz", "7", 1, [ "33", "7" ] ], [ "Kenya", "ke", "254" ], [ "Kiribati", "ki", "686" ], [ "Kosovo", "xk", "383" ], [ "Kuwait", "kw", "965" ], [ "Kyrgyzstan", "kg", "996" ], [ "Laos", "la", "856" ], [ "Latvia", "lv", "371" ], [ "Lebanon", "lb", "961" ], [ "Lesotho", "ls", "266" ], [ "Liberia", "lr", "231" ], [ "Libya", "ly", "218" ], [ "Liechtenstein", "li", "423" ], [ "Lithuania", "lt", "370" ], [ "Luxembourg", "lu", "352" ], [ "Macau", "mo", "853" ], [ "Madagascar", "mg", "261" ], [ "Malawi", "mw", "265" ], [ "Malaysia", "my", "60" ], [ "Maldives", "mv", "960" ], [ "Mali", "ml", "223" ], [ "Malta", "mt", "356" ], [ "Marshall Islands", "mh", "692" ], [ "Martinique", "mq", "596" ], [ "Mauritania", "mr", "222" ], [ "Mauritius", "mu", "230" ], [ "Mayotte", "yt", "262", 1, [ "269", "639" ] ], [ "Mexico", "mx", "52" ], [ "Micronesia", "fm", "691" ], [ "Moldova", "md", "373" ], [ "Monaco", "mc", "377" ], [ "Mongolia", "mn", "976" ], [ "Montenegro", "me", "382" ], [ "Montserrat", "ms", "1", 16, [ "664" ] ], [ "Morocco", "ma", "212", 0 ], [ "Mozambique", "mz", "258" ], [ "Myanmar (Burma)", "mm", "95" ], [ "Namibia", "na", "264" ], [ "Nauru", "nr", "674" ], [ "Nepal", "np", "977" ], [ "Netherlands", "nl", "31" ], [ "New Caledonia", "nc", "687" ], [ "New Zealand", "nz", "64" ], [ "Nicaragua", "ni", "505" ], [ "Niger", "ne", "227" ], [ "Nigeria", "ng", "234" ], [ "Niue", "nu", "683" ], [ "Norfolk Island", "nf", "672" ], [ "North Korea", "kp", "850" ], [ "North Macedonia", "mk", "389" ], [ "Northern Mariana Islands", "mp", "1", 17, [ "670" ] ], [ "Norway", "no", "47", 0 ], [ "Oman", "om", "968" ], [ "Pakistan", "pk", "92" ], [ "Palau", "pw", "680" ], [ "Palestine", "ps", "970" ], [ "Panama", "pa", "507" ], [ "Papua New Guinea", "pg", "675" ], [ "Paraguay", "py", "595" ], [ "Peru", "pe", "51" ], [ "Philippines", "ph", "63" ], [ "Poland", "pl", "48" ], [ "Portugal", "pt", "351" ], [ "Puerto Rico", "pr", "1", 3, [ "787", "939" ] ], [ "Qatar", "qa", "974" ], [ "Réunion", "re", "262", 0 ], [ "Romania", "ro", "40" ], [ "Russia", "ru", "7", 0 ], [ "Rwanda", "rw", "250" ], [ "Samoa", "ws", "685" ], [ "San Marino", "sm", "378" ], [ "São Tomé & Príncipe", "st", "239" ], [ "Saudi Arabia", "sa", "966" ], [ "Senegal", "sn", "221" ], [ "Serbia", "rs", "381" ], [ "Seychelles", "sc", "248" ], [ "Sierra Leone", "sl", "232" ], [ "Singapore", "sg", "65" ], [ "Sint Maarten", "sx", "1", 21, [ "721" ] ], [ "Slovakia", "sk", "421" ], [ "Slovenia", "si", "386" ], [ "Solomon Islands", "sb", "677" ], [ "Somalia", "so", "252" ], [ "South Africa", "za", "27" ], [ "South Korea", "kr", "82" ], [ "South Sudan", "ss", "211" ], [ "Spain", "es", "34" ], [ "Sri Lanka", "lk", "94" ], [ "St Barthélemy", "bl", "590", 1 ], [ "St Helena", "sh", "290" ], [ "St Kitts & Nevis", "kn", "1", 18, [ "869" ] ], [ "St Lucia", "lc", "1", 19, [ "758" ] ], [ "St Martin", "mf", "590", 2 ], [ "St Pierre & Miquelon", "pm", "508" ], [ "St Vincent & Grenadines", "vc", "1", 20, [ "784" ] ], [ "Sudan", "sd", "249" ], [ "Suriname", "sr", "597" ], [ "Svalbard & Jan Mayen", "sj", "47", 1, [ "79" ] ], [ "Sweden", "se", "46" ], [ "Switzerland", "ch", "41" ], [ "Syria", "sy", "963" ], [ "Taiwan", "tw", "886" ], [ "Tajikistan", "tj", "992" ], [ "Tanzania", "tz", "255" ], [ "Thailand", "th", "66" ], [ "Timor-Leste", "tl", "670" ], [ "Togo", "tg", "228" ], [ "Tokelau", "tk", "690" ], [ "Tonga", "to", "676" ], [ "Trinidad & Tobago", "tt", "1", 22, [ "868" ] ], [ "Tunisia", "tn", "216" ], [ "Turkey", "tr", "90" ], [ "Turkmenistan", "tm", "993" ], [ "Turks & Caicos Islands", "tc", "1", 23, [ "649" ] ], [ "Tuvalu", "tv", "688" ], [ "Uganda", "ug", "256" ], [ "Ukraine", "ua", "380" ], [ "United Arab Emirates", "ae", "971" ], [ "United Kingdom", "gb", "44", 0 ], [ "United States", "us", "1", 0 ], [ "Uruguay", "uy", "598" ], [ "US Virgin Islands", "vi", "1", 24, [ "340" ] ], [ "Uzbekistan", "uz", "998" ], [ "Vanuatu", "vu", "678" ], [ "Vatican City", "va", "39", 1, [ "06698" ] ], [ "Venezuela", "ve", "58" ], [ "Vietnam", "vn", "84" ], [ "Wallis & Futuna", "wf", "681" ], [ "Western Sahara", "eh", "212", 1, [ "5288", "5289" ] ], [ "Yemen", "ye", "967" ], [ "Zambia", "zm", "260" ], [ "Zimbabwe", "zw", "263" ], [ "Åland Islands", "ax", "358", 1, [ "18" ] ] ]; + // loop over all of the countries above, restructuring the data to be objects with named keys + for (var i = 0; i < allCountries.length; i++) { + var c = allCountries[i]; + allCountries[i] = { + name: c[0], + iso2: c[1], + dialCode: c[2], + priority: c[3] || 0, + areaCodes: c[4] || null, + nodeById: {} + }; + } + "use strict"; + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === "function") { + ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + ownKeys.forEach(function(key) { + _defineProperty(target, key, source[key]); + }); + } + return target; + } + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (;!(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { + } + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a 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, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + var intlTelInputGlobals = { + getInstance: function getInstance(input) { + var id = input.getAttribute("data-intl-tel-input-id"); + return window.intlTelInputGlobals.instances[id]; + }, + instances: {}, + // using a global like this allows us to mock it in the tests + documentReady: function documentReady() { + return document.readyState === "complete"; + } + }; + if (typeof window === "object") { + window.intlTelInputGlobals = intlTelInputGlobals; + } + // these vars persist through all instances of the plugin + var id = 0; + var defaults = { + // whether or not to allow the dropdown + allowDropdown: true, + // auto insert dial code (A) on init, (B) on user selecting a country, (C) on calling setCountry + autoInsertDialCode: false, + // add a placeholder in the input with an example number for the selected country + autoPlaceholder: "polite", + // add a country search input at the top of the dropdown + countrySearch: true, + // modify the parentClass + containerClass: "", + // modify the auto placeholder + customPlaceholder: null, + // by default, initialise with the first country in the list selected (if no country set via the initial value or initialCountry option) + defaultToFirstCountry: true, + // append menu to specified element + dropdownContainer: null, + // don't display these countries + excludeCountries: [], + // fix the dropdown width to the input width (rather than being as wide as the longest country name) + fixDropdownWidth: true, + // format the number as the user types + formatAsYouType: true, + // format the input value during initialisation and on setNumber + formatOnDisplay: true, + // geoIp lookup function + geoIpLookup: null, + // inject a hidden input with this name, and on submit, populate it with the result of getNumber + hiddenInput: null, + // internationalise the plugin text e.g. search input placeholder, country names + i18n: {}, + // initial country + initialCountry: "", + // national vs international formatting for numbers e.g. placeholders and displaying existing numbers + nationalMode: true, + // display only these countries + onlyCountries: [], + // number type to use for placeholders + placeholderNumberType: "MOBILE", + // the countries at the top of the list + preferredCountries: [], + // option to hide the flags - must be used with showSelectedDialCode, or allowDropdown=false + showFlags: true, + // display the international dial code next to the selected flag + showSelectedDialCode: false, + // use full screen popup instead of dropdown for country list + useFullscreenPopup: typeof navigator !== "undefined" && typeof window !== "undefined" ? // we cannot just test screen size as some smartphones/website meta tags will report desktop + // resolutions + // Note: to target Android Mobiles (and not Tablets), we must find 'Android' and 'Mobile' + /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 500 : false, + // specify the path to the libphonenumber script to enable validation/formatting + utilsScript: "" + }; + // https://en.wikipedia.org/wiki/List_of_North_American_Numbering_Plan_area_codes#Non-geographic_area_codes + var regionlessNanpNumbers = [ "800", "822", "833", "844", "855", "866", "877", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889" ]; + // run a method on each instance of the plugin + var forEachInstance = function forEachInstance(method) { + var instances = window.intlTelInputGlobals.instances; + Object.values(instances).forEach(function(instance) { + return instance[method](); + }); + }; + // this is our plugin class that we will create an instance of + // eslint-disable-next-line no-unused-vars + var Iti = /*#__PURE__*/ function() { + function Iti(input) { + var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, Iti); + this.id = id++; + this.telInput = input; + this.activeItem = null; + this.highlightedItem = null; + // process specified options / defaults + this.options = Object.assign({}, defaults, customOptions); + this.hadInitialPlaceholder = Boolean(input.getAttribute("placeholder")); + } + _createClass(Iti, [ { + key: "_init", + value: function _init() { + var _this = this; + // if showing fullscreen popup, do not fix the width + if (this.options.useFullscreenPopup) { + this.options.fixDropdownWidth = false; + } + // when search enabled, we must fix the width else it would change with different results + if (this.options.countrySearch && !this.options.useFullscreenPopup) { + this.options.fixDropdownWidth = true; + } + // if in nationalMode, do not insert dial codes + if (this.options.nationalMode) { + this.options.autoInsertDialCode = false; + } + // if showSelectedDialCode enabled, do not insert dial codes + if (this.options.showSelectedDialCode) { + this.options.autoInsertDialCode = false; + } + // force showFlags=true if there's a dropdown and we're not displaying the dial code, + // as otherwise you just have a down arrow on it's own which doesn't make sense + var forceShowFlags = this.options.allowDropdown && !this.options.showSelectedDialCode; + if (!this.options.showFlags && forceShowFlags) { + this.options.showFlags = true; + } + // on mobile, we want a full screen dropdown, so we must append it to the body + if (this.options.useFullscreenPopup && !this.options.dropdownContainer) { + this.options.dropdownContainer = document.body; + } + // check if input has one parent with RTL + this.isRTL = !!this.telInput.closest("[dir=rtl]"); + // these promises get resolved when their individual requests complete + // this way the dev can do something like iti.promise.then(...) to know when all requests are + // complete + if (typeof Promise !== "undefined") { + var autoCountryPromise = new Promise(function(resolve, reject) { + _this.resolveAutoCountryPromise = resolve; + _this.rejectAutoCountryPromise = reject; + }); + var utilsScriptPromise = new Promise(function(resolve, reject) { + _this.resolveUtilsScriptPromise = resolve; + _this.rejectUtilsScriptPromise = reject; + }); + this.promise = Promise.all([ autoCountryPromise, utilsScriptPromise ]); + } else { + // prevent errors when Promise doesn't exist + this.resolveAutoCountryPromise = this.rejectAutoCountryPromise = function() {}; + this.resolveUtilsScriptPromise = this.rejectUtilsScriptPromise = function() {}; + } + // in various situations there could be no country selected initially, but we need to be able + // to assume this variable exists + this.selectedCountryData = {}; + // process all the data: onlyCountries, excludeCountries, preferredCountries etc + this._processCountryData(); + // generate the markup + this._generateMarkup(); + // set the initial state of the input value and the selected flag + this._setInitialState(); + // start all of the event listeners: autoInsertDialCode, input keydown, selectedFlag click + this._initListeners(); + // utils script, and auto country + this._initRequests(); + } + }, { + key: "_processCountryData", + value: function _processCountryData() { + // process onlyCountries or excludeCountries array if present + this._processAllCountries(); + // generate this.dialCodes and this.dialCodeToIso2Map + this._processDialCodes(); + // process the preferredCountries + this._processPreferredCountries(); + // translate country names according to i18n option + this._translateCountryNames(); + // sort countries by name + if (this.options.onlyCountries.length || this.options.i18n) { + this.countries.sort(this._countryNameSort); + } + } + }, { + key: "_addToDialCodeMap", + value: function _addToDialCodeMap(iso2, dialCode, priority) { + if (dialCode.length > this.dialCodeMaxLen) { + this.dialCodeMaxLen = dialCode.length; + } + if (!this.dialCodeToIso2Map.hasOwnProperty(dialCode)) { + this.dialCodeToIso2Map[dialCode] = []; + } + // bail if we already have this country for this dialCode + for (var i = 0; i < this.dialCodeToIso2Map[dialCode].length; i++) { + if (this.dialCodeToIso2Map[dialCode][i] === iso2) { + return; + } + } + // check for undefined as 0 is falsy + var index = priority !== undefined ? priority : this.dialCodeToIso2Map[dialCode].length; + this.dialCodeToIso2Map[dialCode][index] = iso2; + } + }, { + key: "_processAllCountries", + value: function _processAllCountries() { + if (this.options.onlyCountries.length) { + var lowerCaseOnlyCountries = this.options.onlyCountries.map(function(country) { + return country.toLowerCase(); + }); + this.countries = allCountries.filter(function(country) { + return lowerCaseOnlyCountries.indexOf(country.iso2) > -1; + }); + } else if (this.options.excludeCountries.length) { + var lowerCaseExcludeCountries = this.options.excludeCountries.map(function(country) { + return country.toLowerCase(); + }); + this.countries = allCountries.filter(function(country) { + return lowerCaseExcludeCountries.indexOf(country.iso2) === -1; + }); + } else { + this.countries = allCountries; + } + } + }, { + key: "_translateCountryNames", + value: function _translateCountryNames() { + for (var i = 0; i < this.countries.length; i++) { + var iso2 = this.countries[i].iso2.toLowerCase(); + if (this.options.i18n.hasOwnProperty(iso2)) { + this.countries[i].name = this.options.i18n[iso2]; + } + } + } + }, { + key: "_countryNameSort", + value: function _countryNameSort(a, b) { + if (a.name < b.name) { + return -1; + } + if (a.name > b.name) { + return 1; + } + return 0; + } + }, { + key: "_processDialCodes", + value: function _processDialCodes() { + // here we store just dial codes, where the key is the dial code, and the value is true + // e.g. { 1: true, 7: true, 20: true, ... } + this.dialCodes = {}; + this.dialCodeMaxLen = 0; + // here we map dialCodes (inc both dialCode and dialCode+areaCode) to iso2 codes + /* e.g. + * { + * 1: [ 'us', 'ca', ... ], # all NANP countries + * 12: [ 'us', 'ca', ... ], # subset of NANP countries + * 120: [ 'us', 'ca' ], # just US and Canada + * 1204: [ 'ca' ], # only Canada + * ... + * } + */ + this.dialCodeToIso2Map = {}; + // first: add dial codes + for (var i = 0; i < this.countries.length; i++) { + var c = this.countries[i]; + if (!this.dialCodes[c.dialCode]) { + this.dialCodes[c.dialCode] = true; + } + this._addToDialCodeMap(c.iso2, c.dialCode, c.priority); + } + // next: add area codes + // this is a second loop over countries, to make sure we have all of the "root" countries + // already in the map, so that we can access them, as each time we add an area code substring + // to the map, we also need to include the "root" country's code, as that also matches + for (var _i = 0; _i < this.countries.length; _i++) { + var _c = this.countries[_i]; + // area codes + if (_c.areaCodes) { + var rootIso2Code = this.dialCodeToIso2Map[_c.dialCode][0]; + // for each area code + for (var j = 0; j < _c.areaCodes.length; j++) { + var areaCode = _c.areaCodes[j]; + // for each digit in the area code to add all partial matches as well + for (var k = 1; k < areaCode.length; k++) { + var partialDialCode = _c.dialCode + areaCode.substr(0, k); + // start with the root country, as that also matches this dial code + this._addToDialCodeMap(rootIso2Code, partialDialCode); + this._addToDialCodeMap(_c.iso2, partialDialCode); + } + // add the full area code + this._addToDialCodeMap(_c.iso2, _c.dialCode + areaCode); + } + } + } + } + }, { + key: "_processPreferredCountries", + value: function _processPreferredCountries() { + this.preferredCountries = []; + for (var i = 0; i < this.options.preferredCountries.length; i++) { + var iso2 = this.options.preferredCountries[i].toLowerCase(); + var countryData = this._getCountryData(iso2, true); + if (countryData) { + this.preferredCountries.push(countryData); + } + } + } + }, { + key: "_createEl", + value: function _createEl(name, attrs, container) { + var el = document.createElement(name); + if (attrs) { + Object.entries(attrs).forEach(function(_ref) { + var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; + return el.setAttribute(key, value); + }); + } + if (container) { + container.appendChild(el); + } + return el; + } + }, { + key: "_generateMarkup", + value: function _generateMarkup() { + this.telInput.classList.add("iti__tel-input"); + // if autocomplete does not exist on the element and its form, then + // prevent autocomplete as there's no safe, cross-browser event we can react to, so it can + // easily put the plugin in an inconsistent state e.g. the wrong flag selected for the + // autocompleted number, which on submit could mean wrong number is saved + if (!this.telInput.hasAttribute("autocomplete") && !(this.telInput.form && this.telInput.form.hasAttribute("autocomplete"))) { + this.telInput.setAttribute("autocomplete", "off"); + } + var _this$options = this.options, allowDropdown = _this$options.allowDropdown, showSelectedDialCode = _this$options.showSelectedDialCode, showFlags = _this$options.showFlags, containerClass = _this$options.containerClass, hiddenInput = _this$options.hiddenInput, dropdownContainer = _this$options.dropdownContainer, fixDropdownWidth = _this$options.fixDropdownWidth, useFullscreenPopup = _this$options.useFullscreenPopup, countrySearch = _this$options.countrySearch; + // containers (mostly for positioning) + var parentClass = "iti"; + if (allowDropdown) { + parentClass += " iti--allow-dropdown"; + } + if (showSelectedDialCode) { + parentClass += " iti--show-selected-dial-code"; + } + if (showFlags) { + parentClass += " iti--show-flags"; + } + if (containerClass) { + parentClass += " ".concat(containerClass); + } + if (!useFullscreenPopup) { + parentClass += " iti--inline-dropdown"; + } + var wrapper = this._createEl("div", { + "class": parentClass + }); + this.telInput.parentNode.insertBefore(wrapper, this.telInput); + // only hide the flagsContainer if allowDropdown, showFlags and showSelectedDialCode are all false + var showFlagsContainer = allowDropdown || showFlags || showSelectedDialCode; + if (showFlagsContainer) { + this.flagsContainer = this._createEl("div", { + "class": "iti__flag-container" + }, wrapper); + } + wrapper.appendChild(this.telInput); + // selected flag (displayed to left of input) + // using Aria tags for "Select-Only Combobox Example" + // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/ + if (showFlagsContainer) { + this.selectedFlag = this._createEl("div", _objectSpread({ + "class": "iti__selected-flag" + }, allowDropdown && { + role: "combobox", + "aria-haspopup": "listbox", + "aria-controls": "iti-".concat(this.id, "__country-listbox"), + "aria-expanded": "false", + "aria-label": this.options.i18n.selectedCountryAriaLabel || "Selected country" + }), this.flagsContainer); + } + if (showFlags) { + this.selectedFlagInner = this._createEl("div", { + "class": "iti__flag" + }, this.selectedFlag); + } + if (this.selectedFlag && this.telInput.disabled) { + this.selectedFlag.setAttribute("aria-disabled", "true"); + } + if (showSelectedDialCode) { + this.selectedDialCode = this._createEl("div", { + "class": "iti__selected-dial-code" + }, this.selectedFlag); + } + if (allowDropdown) { + if (!this.telInput.disabled) { + // make element focusable and tab navigable + this.selectedFlag.setAttribute("tabindex", "0"); + } + this.dropdownArrow = this._createEl("div", { + "class": "iti__arrow" + }, this.selectedFlag); + var extraClasses = fixDropdownWidth ? "" : "iti--flexible-dropdown-width"; + this.dropdownContent = this._createEl("div", { + "class": "iti__dropdown-content iti__hide ".concat(extraClasses) + }); + if (countrySearch) { + this.searchInput = this._createEl("input", { + type: "text", + "class": "iti__search-input", + placeholder: this.options.i18n.searchPlaceholder || "Search" + }, this.dropdownContent); + } + // country list: preferred countries, then divider, then all countries + this.countryList = this._createEl("ul", { + "class": "iti__country-list", + id: "iti-".concat(this.id, "__country-listbox"), + role: "listbox", + "aria-label": this.options.i18n.countryListAriaLabel || "List of countries" + }, this.dropdownContent); + if (this.preferredCountries.length && !countrySearch) { + this._appendListItems(this.preferredCountries, "iti__preferred", true); + this._createEl("li", { + "class": "iti__divider", + "aria-hidden": "true" + }, this.countryList); + } + this._appendListItems(this.countries, "iti__standard"); + // create dropdownContainer markup + if (dropdownContainer) { + var dropdownClasses = "iti iti--container"; + if (useFullscreenPopup) { + dropdownClasses += " iti--fullscreen-popup"; + } else { + dropdownClasses += " iti--inline-dropdown"; + } + if (countrySearch) { + dropdownClasses += " iti--country-search"; + } + this.dropdown = this._createEl("div", { + "class": dropdownClasses + }); + this.dropdown.appendChild(this.dropdownContent); + } else { + this.flagsContainer.appendChild(this.dropdownContent); + } + } + if (hiddenInput) { + var telInputName = this.telInput.getAttribute("name"); + var result = hiddenInput(telInputName); + var isObject = result !== null && typeof result === "object"; + var hiddenInputPhoneName; + var hiddenInputCountryName; + if (isObject) { + hiddenInputPhoneName = result.phone || telInputName; + hiddenInputCountryName = result.country || "".concat(hiddenInputPhoneName, "_country"); + } else { + hiddenInputPhoneName = result || telInputName; + hiddenInputCountryName = "".concat(hiddenInputPhoneName, "_country"); + } + // Check if a name has been determined for the phone input field after all conditions + if (!hiddenInputPhoneName) { + return; + } + // Create hidden input for the full international number + this.hiddenInput = this._createEl("input", { + type: "hidden", + name: hiddenInputPhoneName + }); + // Create hidden input for the selected country iso2 code + this.hiddenInputCountry = this._createEl("input", { + type: "hidden", + name: hiddenInputCountryName + }); + wrapper.appendChild(this.hiddenInput); + wrapper.appendChild(this.hiddenInputCountry); + } + } + }, { + key: "_appendListItems", + value: function _appendListItems(countries, className, preferred) { + for (var i = 0; i < countries.length; i++) { + var c = countries[i]; + var idSuffix = preferred ? "-preferred" : ""; + var listItem = this._createEl("li", { + id: "iti-".concat(this.id, "__item-").concat(c.iso2).concat(idSuffix), + "class": "iti__country ".concat(className), + tabindex: "-1", + role: "option", + "data-dial-code": c.dialCode, + "data-country-code": c.iso2, + "aria-selected": "false" + }, this.countryList); + // store this for later use e.g. country search filtering + c.nodeById[this.id] = listItem; + var content = ""; + // add the flag + if (this.options.showFlags) { + content += "

"); + } + // and the country name and dial code + content += "".concat(c.name, ""); + content += "+".concat(c.dialCode, ""); + listItem.insertAdjacentHTML("beforeend", content); + } + } + }, { + key: "_setInitialState", + value: function _setInitialState() { + var overrideAutoCountry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + // fix firefox bug: when first load page (with input with value set to number with intl dial + // code) and initialising plugin removes the dial code from the input, then refresh page, + // and we try to init plugin again but this time on number without dial code so get grey flag + var attributeValue = this.telInput.getAttribute("value"); + var inputValue = this.telInput.value; + var useAttribute = attributeValue && attributeValue.charAt(0) === "+" && (!inputValue || inputValue.charAt(0) !== "+"); + var val = useAttribute ? attributeValue : inputValue; + var dialCode = this._getDialCode(val); + var isRegionlessNanp = this._isRegionlessNanp(val); + var _this$options2 = this.options, initialCountry = _this$options2.initialCountry, autoInsertDialCode = _this$options2.autoInsertDialCode, defaultToFirstCountry = _this$options2.defaultToFirstCountry; + // if we already have a dial code, and it's not a regionlessNanp, we can go ahead and set the + // flag, else fall back to the default country + if (dialCode && !isRegionlessNanp) { + this._updateFlagFromNumber(val); + } else if (initialCountry !== "auto" || overrideAutoCountry) { + var lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : ""; + var isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true); + // see if we should select a flag + if (isValidInitialCountry) { + this._setFlag(lowerInitialCountry); + } else { + if (dialCode && isRegionlessNanp) { + // has intl dial code, is regionless nanp, and no initialCountry, so default to US + this._setFlag("us"); + } else if (defaultToFirstCountry && !val) { + // no dial code and no initialCountry, so default to first in list + this.defaultCountry = this.preferredCountries.length ? this.preferredCountries[0].iso2 : this.countries[0].iso2; + this._setFlag(this.defaultCountry); + } else { + // display the empty state (globe icon) + this._setFlag(); + } + } + // if empty and autoInsertDialCode then insert the dial code + if (!val && autoInsertDialCode) { + this.telInput.value = "+".concat(this.selectedCountryData.dialCode); + } + } + // NOTE: if initialCountry is set to auto, that will be handled separately + // format - note this wont be run after _updateDialCode as that's only called if no val + if (val) { + this._updateValFromNumber(val); + } + } + }, { + key: "_initListeners", + value: function _initListeners() { + this._initKeyListeners(); + if (this.options.autoInsertDialCode) { + this._initBlurListeners(); + } + if (this.options.allowDropdown) { + this._initDropdownListeners(); + } + if (this.hiddenInput) { + this._initHiddenInputListener(); + } + } + }, { + key: "_initHiddenInputListener", + value: function _initHiddenInputListener() { + var _this2 = this; + this._handleHiddenInputSubmit = function() { + _this2.hiddenInput.value = _this2.getNumber(); + _this2.hiddenInputCountry.value = _this2.getSelectedCountryData().iso2; + }; + if (this.telInput.form) { + this.telInput.form.addEventListener("submit", this._handleHiddenInputSubmit); + } + } + }, { + key: "_initDropdownListeners", + value: function _initDropdownListeners() { + var _this3 = this; + // hack for input nested inside label (which is valid markup): clicking the selected-flag to + // open the dropdown would then automatically trigger a 2nd click on the input which would + // close it again + this._handleLabelClick = function(e) { + // if the dropdown is closed, then focus the input, else ignore the click + if (_this3.dropdownContent.classList.contains("iti__hide")) { + _this3.telInput.focus(); + } else { + e.preventDefault(); + } + }; + var label = this.telInput.closest("label"); + if (label) { + label.addEventListener("click", this._handleLabelClick); + } + // toggle country dropdown on click + this._handleClickSelectedFlag = function() { + // only intercept this event if we're opening the dropdown + // else let it bubble up to the top ("click-off-to-close" listener) + // we cannot just stopPropagation as it may be needed to close another instance + if (_this3.dropdownContent.classList.contains("iti__hide") && !_this3.telInput.disabled && !_this3.telInput.readOnly) { + _this3._showDropdown(); + } + }; + this.selectedFlag.addEventListener("click", this._handleClickSelectedFlag); + // open dropdown if selected flag is focused and they press up/down/space/enter + this._handleFlagsContainerKeydown = function(e) { + var isDropdownHidden = _this3.dropdownContent.classList.contains("iti__hide"); + if (isDropdownHidden && [ "ArrowUp", "ArrowDown", " ", "Enter" ].includes(e.key)) { + // prevent form from being submitted if "ENTER" was pressed + e.preventDefault(); + // prevent event from being handled again by document + e.stopPropagation(); + _this3._showDropdown(); + } + // allow navigation from dropdown to input on TAB + if (e.key === "Tab") { + _this3._closeDropdown(); + } + }; + this.flagsContainer.addEventListener("keydown", this._handleFlagsContainerKeydown); + } + }, { + key: "_initRequests", + value: function _initRequests() { + var _this4 = this; + // if the user has specified the path to the utils script, fetch it on window.load, else resolve + if (this.options.utilsScript && !window.intlTelInputUtils) { + // if the plugin is being initialised after the window.load event has already been fired + if (window.intlTelInputGlobals.documentReady()) { + window.intlTelInputGlobals.loadUtils(this.options.utilsScript); + } else { + // wait until the load event so we don't block any other requests e.g. the flags image + window.addEventListener("load", function() { + window.intlTelInputGlobals.loadUtils(_this4.options.utilsScript); + }); + } + } else { + this.resolveUtilsScriptPromise(); + } + // dont bother with IP lookup if we already have a selected country + if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) { + this._loadAutoCountry(); + } else { + this.resolveAutoCountryPromise(); + } + } + }, { + key: "_loadAutoCountry", + value: function _loadAutoCountry() { + var _this5 = this; + // 3 options: + // 1) already loaded (we're done) + // 2) not already started loading (start) + // 3) already started loading (do nothing - just wait for loading callback to fire) + if (window.intlTelInputGlobals.autoCountry) { + this.handleAutoCountry(); + } else if (!window.intlTelInputGlobals.startedLoadingAutoCountry) { + // don't do this twice! + window.intlTelInputGlobals.startedLoadingAutoCountry = true; + if (typeof this.options.geoIpLookup === "function") { + this.options.geoIpLookup(function() { + var iso2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + var iso2Lower = iso2.toLowerCase(); + var isValidIso2 = iso2Lower && _this5._getCountryData(iso2Lower, true); + if (isValidIso2) { + window.intlTelInputGlobals.autoCountry = iso2Lower; + // tell all instances the auto country is ready + // TODO: this should just be the current instances + // UPDATE: use setTimeout in case their geoIpLookup function calls this callback straight + // away (e.g. if they have already done the geo ip lookup somewhere else). Using + // setTimeout means that the current thread of execution will finish before executing + // this, which allows the plugin to finish initialising. + setTimeout(function() { + return forEachInstance("handleAutoCountry"); + }); + } else { + _this5._setInitialState(true); + forEachInstance("rejectAutoCountryPromise"); + } + }, function() { + return forEachInstance("rejectAutoCountryPromise"); + }); + } + } + } + }, { + key: "_initKeyListeners", + value: function _initKeyListeners() { + var _this6 = this; + var userOverrideFormatting = false; + // update flag on input event + this._handleKeyEvent = function(e) { + if (_this6._updateFlagFromNumber(_this6.telInput.value)) { + _this6._triggerCountryChange(); + } + // if user types their own formatting char (not a plus or a numeric), then set the override + var isFormattingChar = e && e.data && /[^+0-9]/.test(e.data); + var isPaste = e && e.inputType === "insertFromPaste" && _this6.telInput.value; + if (isFormattingChar || isPaste) { + userOverrideFormatting = true; + } else if (!/[^+0-9]/.test(_this6.telInput.value)) { + userOverrideFormatting = false; + } + // handle FAYT, unless userOverrideFormatting or it's a paste event + if (_this6.options.formatAsYouType && !userOverrideFormatting && e.inputType !== "insertFromPaste") { + // maintain caret position after reformatting + var currentCaretPos = _this6.telInput.selectionStart; + var valueBeforeCaret = _this6.telInput.value.substring(0, currentCaretPos); + var relevantCharsBeforeCaret = valueBeforeCaret.replace(/[^+0-9]/g, "").length; + var isDeleteForwards = e && e.inputType === "deleteContentForward"; + var formattedValue = _this6._formatNumberAsYouType(); + var newCaretPos = _this6._translateCursorPosition(relevantCharsBeforeCaret, formattedValue, currentCaretPos, isDeleteForwards); + _this6.telInput.value = formattedValue; + _this6.telInput.setSelectionRange(newCaretPos, newCaretPos); + } + }; + this.telInput.addEventListener("input", this._handleKeyEvent); + // update flag on cut/paste events (now supported in all major browsers) + this._handleClipboardEvent = function() { + // hack because "paste" event is fired before input is updated + setTimeout(_this6._handleKeyEvent); + }; + this.telInput.addEventListener("cut", this._handleClipboardEvent); + this.telInput.addEventListener("paste", this._handleClipboardEvent); + } + }, { + key: "_translateCursorPosition", + value: function _translateCursorPosition(relevantChars, formattedValue, prevCaretPos, isDeleteForwards) { + // if the first char is a formatting char, and they backspace delete it: + // cursor should stay at the start (pos 0), rather than stick to the first digit (pos 1) + if (prevCaretPos === 0 && !isDeleteForwards) { + return 0; + } + var count = 0; + for (var i = 0; i < formattedValue.length; i++) { + if (/[+0-9]/.test(formattedValue[i])) { + count++; + } + // normal case: stop when you hit the right number of relevant chars + // (cursor will be just after the final relevant char) + if (count === relevantChars && !isDeleteForwards) { + return i + 1; + } + // spacial case: delete forwards (fn + delete on a mac): + // wait until hit one extra relevant char, and put the cursor just before it (after any formatting chars) + if (isDeleteForwards && count === relevantChars + 1) { + return i; + } + } + return formattedValue.length; + } + }, { + key: "_cap", + value: function _cap(number) { + var max = this.telInput.getAttribute("maxlength"); + return max && number.length > max ? number.substr(0, max) : number; + } + }, { + key: "_initBlurListeners", + value: function _initBlurListeners() { + var _this7 = this; + // on blur or form submit: if just a dial code then remove it + this._handleSubmitOrBlurEvent = function() { + _this7._removeEmptyDialCode(); + }; + if (this.telInput.form) { + this.telInput.form.addEventListener("submit", this._handleSubmitOrBlurEvent); + } + this.telInput.addEventListener("blur", this._handleSubmitOrBlurEvent); + } + }, { + key: "_removeEmptyDialCode", + value: function _removeEmptyDialCode() { + if (this.telInput.value.charAt(0) === "+") { + var numeric = this._getNumeric(this.telInput.value); + // if just a plus, or if just a dial code + if (!numeric || this.selectedCountryData.dialCode === numeric) { + this.telInput.value = ""; + } + } + } + }, { + key: "_getNumeric", + value: function _getNumeric(s) { + return s.replace(/\D/g, ""); + } + }, { + key: "_trigger", + value: function _trigger(name) { + var e = new Event(name, { + bubbles: true, + cancelable: true + }); + this.telInput.dispatchEvent(e); + } + }, { + key: "_showDropdown", + value: function _showDropdown() { + if (this.options.fixDropdownWidth) { + this.dropdownContent.style.width = "".concat(this.telInput.offsetWidth, "px"); + } + this.dropdownContent.classList.remove("iti__hide"); + this.selectedFlag.setAttribute("aria-expanded", "true"); + this._setDropdownPosition(); + if (this.options.countrySearch) { + // start by highlighting the first item in the list + var firstElementChild = this.countryList.firstElementChild; + if (firstElementChild) { + this._highlightListItem(firstElementChild, false); + } + this.searchInput.focus(); + } else if (this.activeItem) { + // update highlighting and scroll to active list item + this._highlightListItem(this.activeItem, false); + this._scrollTo(this.activeItem, true); + } + // bind all the dropdown-related listeners: mouseover, click, click-off, keydown + this._bindDropdownListeners(); + // update the arrow + this.dropdownArrow.classList.add("iti__arrow--up"); + this._trigger("open:countrydropdown"); + } + }, { + key: "_toggleClass", + value: function _toggleClass(el, className, shouldHaveClass) { + if (shouldHaveClass && !el.classList.contains(className)) { + el.classList.add(className); + } else if (!shouldHaveClass && el.classList.contains(className)) { + el.classList.remove(className); + } + } + }, { + key: "_setDropdownPosition", + value: function _setDropdownPosition() { + var _this8 = this; + if (this.options.dropdownContainer) { + this.options.dropdownContainer.appendChild(this.dropdown); + } + if (!this.options.useFullscreenPopup) { + var pos = this.telInput.getBoundingClientRect(); + // windowTop from https://stackoverflow.com/a/14384091/217866 + var windowTop = document.documentElement.scrollTop; + var inputTop = pos.top + windowTop; + var dropdownHeight = this.dropdownContent.offsetHeight; + // dropdownFitsBelow = (dropdownBottom < windowBottom) + var dropdownFitsBelow = inputTop + this.telInput.offsetHeight + dropdownHeight < windowTop + window.innerHeight; + var dropdownFitsAbove = inputTop - dropdownHeight > windowTop; + // dont allow positioning above when country search enabled as the search box jumps around as you filter countries + var positionDropdownAboveInput = !this.options.countrySearch && !dropdownFitsBelow && dropdownFitsAbove; + // by default, the dropdown will be below the input. If we want to position it above the + // input, we add the dropup class. + this._toggleClass(this.dropdownContent, "iti__dropdown-content--dropup", positionDropdownAboveInput); + // if dropdownContainer is enabled, calculate postion + if (this.options.dropdownContainer) { + // if we want to position the dropdown below the input, we need to add the input height to the top value + var extraTop = positionDropdownAboveInput ? 0 : this.telInput.offsetHeight; + // calculate placement + this.dropdown.style.top = "".concat(inputTop + extraTop, "px"); + this.dropdown.style.left = "".concat(pos.left + document.body.scrollLeft, "px"); + // close menu on window scroll + this._handleWindowScroll = function() { + return _this8._closeDropdown(); + }; + window.addEventListener("scroll", this._handleWindowScroll); + } + } + } + }, { + key: "_bindDropdownListeners", + value: function _bindDropdownListeners() { + var _this9 = this; + // when mouse over a list item, just highlight that one + // we add the class "highlight", so if they hit "enter" we know which one to select + this._handleMouseoverCountryList = function(e) { + // handle event delegation, as we're listening for this event on the countryList + var listItem = e.target.closest(".iti__country"); + if (listItem) { + _this9._highlightListItem(listItem, false); + } + }; + this.countryList.addEventListener("mouseover", this._handleMouseoverCountryList); + // listen for country selection + this._handleClickCountryList = function(e) { + var listItem = e.target.closest(".iti__country"); + if (listItem) { + _this9._selectListItem(listItem); + } + }; + this.countryList.addEventListener("click", this._handleClickCountryList); + // click off to close + // (except when this initial opening click is bubbling up) + // we cannot just stopPropagation as it may be needed to close another instance + var isOpening = true; + this._handleClickOffToClose = function() { + if (!isOpening) { + _this9._closeDropdown(); + } + isOpening = false; + }; + document.documentElement.addEventListener("click", this._handleClickOffToClose); + // listen for up/down scrolling, enter to select, or escape to close + // use keydown as keypress doesn't fire for non-char keys and we want to catch if they + // just hit down and hold it to scroll down (no keyup event). + // listen on the document because that's where key events are triggered if no input has focus + var query = ""; + var queryTimer = null; + this._handleKeydownOnDropdown = function(e) { + // prevent down key from scrolling the whole page, + // and enter key from submitting a form etc + if ([ "ArrowUp", "ArrowDown", "Enter", "Escape" ].includes(e.key)) { + e.preventDefault(); + e.stopPropagation(); + // up and down to navigate + if (e.key === "ArrowUp" || e.key === "ArrowDown") { + _this9._handleUpDownKey(e.key); + } else if (e.key === "Enter") { + _this9._handleEnterKey(); + } else if (e.key === "Escape") { + _this9._closeDropdown(); + } + } + // alpha chars to perform search + // regex allows one latin alpha char or space, based on https://stackoverflow.com/a/26900132/217866) + if (!_this9.options.countrySearch && /^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(e.key)) { + e.stopPropagation(); + // jump to countries that start with the query string + if (queryTimer) { + clearTimeout(queryTimer); + } + query += e.key.toLowerCase(); + _this9._searchForCountry(query); + // if the timer hits 1 second, reset the query + queryTimer = setTimeout(function() { + query = ""; + }, 1e3); + } + }; + document.addEventListener("keydown", this._handleKeydownOnDropdown); + if (this.options.countrySearch) { + var doFilter = function doFilter() { + var inputQuery = _this9.searchInput.value.trim(); + if (inputQuery) { + _this9._filterCountries(inputQuery); + } else { + _this9._filterCountries("", true); + } + }; + var keyupTimer = null; + this._handleSearchChange = function() { + // filtering country nodes is expensive (lots of DOM manipulation), so rate limit it + if (keyupTimer) { + clearTimeout(keyupTimer); + } + keyupTimer = setTimeout(function() { + doFilter(); + keyupTimer = null; + }, 100); + }; + this.searchInput.addEventListener("input", this._handleSearchChange); + // stop propagation on search input click, so doesn't trigger click-off-to-close listener + this.searchInput.addEventListener("click", function(e) { + return e.stopPropagation(); + }); + } + } + }, { + key: "_normaliseString", + value: function _normaliseString() { + var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + return s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase(); + } + }, { + key: "_filterCountries", + value: function _filterCountries(query) { + var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var isFirst = true; + this.countryList.innerHTML = ""; + var normalisedQuery = this._normaliseString(query); + for (var i = 0; i < this.countries.length; i++) { + var c = this.countries[i]; + var normalisedCountryName = this._normaliseString(c.name); + var fullDialCode = "+".concat(c.dialCode); + if (isReset || normalisedCountryName.includes(normalisedQuery) || fullDialCode.includes(normalisedQuery) || c.iso2.includes(normalisedQuery)) { + this.countryList.appendChild(c.nodeById[this.id]); + // highlight the first item + if (isFirst) { + this._highlightListItem(c.nodeById[this.id], false); + isFirst = false; + } + } + } + } + }, { + key: "_handleUpDownKey", + value: function _handleUpDownKey(key) { + var next = key === "ArrowUp" ? this.highlightedItem.previousElementSibling : this.highlightedItem.nextElementSibling; + if (next) { + // skip the divider + if (next.classList.contains("iti__divider")) { + next = key === "ArrowUp" ? next.previousElementSibling : next.nextElementSibling; + } + } else if (this.countryList.childElementCount > 1) { + // otherwise, we must be at the end, so loop round again + next = key === "ArrowUp" ? this.countryList.lastElementChild : this.countryList.firstElementChild; + } + if (next) { + // if country search enabled, dont lose focus from the search input on up/down + var doFocus = !this.options.countrySearch; + this._highlightListItem(next, doFocus); + if (this.options.countrySearch) { + this._scrollTo(next, false); + } + } + } + }, { + key: "_handleEnterKey", + value: function _handleEnterKey() { + if (this.highlightedItem) { + this._selectListItem(this.highlightedItem); + } + } + }, { + key: "_searchForCountry", + value: function _searchForCountry(query) { + for (var i = 0; i < this.countries.length; i++) { + if (this._startsWith(this.countries[i].name, query)) { + var listItem = this.countries[i].nodeById[this.id]; + // update highlighting and scroll + this._highlightListItem(listItem, false); + this._scrollTo(listItem, true); + break; + } + } + } + }, { + key: "_startsWith", + value: function _startsWith(a, b) { + return a.substr(0, b.length).toLowerCase() === b; + } + }, { + key: "_updateValFromNumber", + value: function _updateValFromNumber(fullNumber) { + var number = fullNumber; + if (this.options.formatOnDisplay && window.intlTelInputUtils && this.selectedCountryData) { + var useNational = this.options.nationalMode || number.charAt(0) !== "+" && !this.options.showSelectedDialCode; + var _intlTelInputUtils$nu = intlTelInputUtils.numberFormat, NATIONAL = _intlTelInputUtils$nu.NATIONAL, INTERNATIONAL = _intlTelInputUtils$nu.INTERNATIONAL; + var format = useNational ? NATIONAL : INTERNATIONAL; + number = intlTelInputUtils.formatNumber(number, this.selectedCountryData.iso2, format); + } + number = this._beforeSetNumber(number); + this.telInput.value = number; + } + }, { + key: "_updateFlagFromNumber", + value: function _updateFlagFromNumber(fullNumber) { + var plusIndex = fullNumber.indexOf("+"); + // if it contains a plus, discard any chars before it e.g. accidental space char. + // this keeps the selected country auto-updating correctly, which we want as + // libphonenumber's validation/getNumber methods will ignore these chars anyway + var number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber; + // if we already have US/Canada selected, make sure the number starts + // with a +1 so _getDialCode will be able to extract the area code + // update: if we dont yet have selectedCountryData, but we're here (trying to update the flag + // from the number), that means we're initialising the plugin with a number that already has a + // dial code, so fine to ignore this bit + var selectedDialCode = this.selectedCountryData.dialCode; + var isNanp = selectedDialCode === "1"; + if (number && isNanp && number.charAt(0) !== "+") { + if (number.charAt(0) !== "1") { + number = "1".concat(number); + } + number = "+".concat(number); + } + // if showSelectedDialCode enabled, then consider the selected dial code to be part of the number + if (this.options.showSelectedDialCode && selectedDialCode && number.charAt(0) !== "+") { + number = "+".concat(selectedDialCode).concat(number); + } + // try and extract valid dial code from input + var dialCode = this._getDialCode(number, true); + var numeric = this._getNumeric(number); + var iso2 = null; + if (dialCode) { + var iso2Codes = this.dialCodeToIso2Map[this._getNumeric(dialCode)]; + // check if the right country is already selected. this should be false if the number is + // longer than the matched dial code because in this case we need to make sure that if + // there are multiple country matches, that the first one is selected (note: we could + // just check that here, but it requires the same loop that we already have later) + var alreadySelected = iso2Codes.indexOf(this.selectedCountryData.iso2) !== -1 && numeric.length <= dialCode.length - 1; + var isRegionlessNanpNumber = selectedDialCode === "1" && this._isRegionlessNanp(numeric); + // only update the flag if: + // A) NOT (we currently have a NANP flag selected, and the number is a regionlessNanp) + // AND + // B) the right country is not already selected + if (!isRegionlessNanpNumber && !alreadySelected) { + // if using onlyCountries option, iso2Codes[0] may be empty, so we must find the first + // non-empty index + for (var j = 0; j < iso2Codes.length; j++) { + if (iso2Codes[j]) { + iso2 = iso2Codes[j]; + break; + } + } + } + } else if (number.charAt(0) === "+" && numeric.length) { + // invalid dial code, so empty + // Note: use getNumeric here because the number has not been formatted yet, so could contain + // bad chars + iso2 = ""; + } else if ((!number || number === "+") && !this.selectedCountryData.iso2) { + // if no selected flag, and user either clears the input, or just types a plus, then show default + iso2 = this.defaultCountry; + } + if (iso2 !== null) { + return this._setFlag(iso2); + } + return false; + } + }, { + key: "_isRegionlessNanp", + value: function _isRegionlessNanp(number) { + var numeric = this._getNumeric(number); + if (numeric.charAt(0) === "1") { + var areaCode = numeric.substr(1, 3); + return regionlessNanpNumbers.indexOf(areaCode) !== -1; + } + return false; + } + }, { + key: "_highlightListItem", + value: function _highlightListItem(listItem, shouldFocus) { + var prevItem = this.highlightedItem; + if (prevItem) { + prevItem.classList.remove("iti__highlight"); + } + this.highlightedItem = listItem; + this.highlightedItem.classList.add("iti__highlight"); + this.selectedFlag.setAttribute("aria-activedescendant", listItem.getAttribute("id")); + if (shouldFocus) { + this.highlightedItem.focus(); + } + } + }, { + key: "_getCountryData", + value: function _getCountryData(iso2, allowFail) { + for (var i = 0; i < this.countries.length; i++) { + if (this.countries[i].iso2 === iso2) { + return this.countries[i]; + } + } + if (allowFail) { + return null; + } + throw new Error("No country data for '".concat(iso2, "'")); + } + }, { + key: "_setFlag", + value: function _setFlag(iso2) { + var _this$options3 = this.options, allowDropdown = _this$options3.allowDropdown, showSelectedDialCode = _this$options3.showSelectedDialCode, showFlags = _this$options3.showFlags, countrySearch = _this$options3.countrySearch; + var prevCountry = this.selectedCountryData.iso2 ? this.selectedCountryData : {}; + // do this first as it will throw an error and stop if iso2 is invalid + this.selectedCountryData = iso2 ? this._getCountryData(iso2, false) : {}; + // update the defaultCountry - we only need the iso2 from now on, so just store that + if (this.selectedCountryData.iso2) { + this.defaultCountry = this.selectedCountryData.iso2; + } + if (showFlags) { + var flagClass = iso2 ? "iti__".concat(iso2) : "iti__globe"; + this.selectedFlagInner.setAttribute("class", "iti__flag ".concat(flagClass)); + } + this._setSelectedCountryFlagTitleAttribute(iso2, showSelectedDialCode); + if (showSelectedDialCode) { + var dialCode = this.selectedCountryData.dialCode ? "+".concat(this.selectedCountryData.dialCode) : ""; + this.selectedDialCode.innerHTML = dialCode; + // offsetWidth is zero if input is in a hidden container during initialisation + var selectedFlagWidth = this.selectedFlag.offsetWidth || this._getHiddenSelectedFlagWidth(); + // add 6px of padding after the grey selected-dial-code box, as this is what we use in the css + if (this.isRTL) { + this.telInput.style.paddingRight = "".concat(selectedFlagWidth + 6, "px"); + } else { + this.telInput.style.paddingLeft = "".concat(selectedFlagWidth + 6, "px"); + } + } + // and the input's placeholder + this._updatePlaceholder(); + // update the active list item (only if country search disabled, as country search doesn't store the active item) + if (allowDropdown && !countrySearch) { + var prevItem = this.activeItem; + if (prevItem) { + prevItem.classList.remove("iti__active"); + prevItem.setAttribute("aria-selected", "false"); + } + if (iso2) { + // check if there is a preferred item first, else fall back to standard + var nextItem = this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(iso2, "-preferred")) || this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(iso2)); + nextItem.setAttribute("aria-selected", "true"); + nextItem.classList.add("iti__active"); + this.activeItem = nextItem; + } + } + // return if the flag has changed or not + return prevCountry.iso2 !== iso2; + } + }, { + key: "_setSelectedCountryFlagTitleAttribute", + value: function _setSelectedCountryFlagTitleAttribute(iso2, showSelectedDialCode) { + if (!this.selectedFlag) { + return; + } + var title; + if (iso2 && !showSelectedDialCode) { + title = "".concat(this.selectedCountryData.name, ": +").concat(this.selectedCountryData.dialCode); + } else if (iso2) { + // For screen reader output, we don't want to include the dial code in the reader output twice + // so just use the selected country name here: + title = this.selectedCountryData.name; + } else { + title = "Unknown"; + } + this.selectedFlag.setAttribute("title", title); + } + }, { + key: "_getHiddenSelectedFlagWidth", + value: function _getHiddenSelectedFlagWidth() { + // to get the right styling to apply, all we need is a shallow clone of the container, + // and then to inject a deep clone of the selectedFlag element + var containerClone = this.telInput.parentNode.cloneNode(); + containerClone.style.visibility = "hidden"; + document.body.appendChild(containerClone); + var flagsContainerClone = this.flagsContainer.cloneNode(); + containerClone.appendChild(flagsContainerClone); + var selectedFlagClone = this.selectedFlag.cloneNode(true); + flagsContainerClone.appendChild(selectedFlagClone); + var width = selectedFlagClone.offsetWidth; + containerClone.parentNode.removeChild(containerClone); + return width; + } + }, { + key: "_updatePlaceholder", + value: function _updatePlaceholder() { + var _this$options4 = this.options, autoPlaceholder = _this$options4.autoPlaceholder, placeholderNumberType = _this$options4.placeholderNumberType, nationalMode = _this$options4.nationalMode, customPlaceholder = _this$options4.customPlaceholder; + var shouldSetPlaceholder = autoPlaceholder === "aggressive" || !this.hadInitialPlaceholder && autoPlaceholder === "polite"; + if (window.intlTelInputUtils && shouldSetPlaceholder) { + var numberType = intlTelInputUtils.numberType[placeholderNumberType]; + var placeholder = this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, nationalMode, numberType) : ""; + placeholder = this._beforeSetNumber(placeholder); + if (typeof customPlaceholder === "function") { + placeholder = customPlaceholder(placeholder, this.selectedCountryData); + } + this.telInput.setAttribute("placeholder", placeholder); + } + } + }, { + key: "_selectListItem", + value: function _selectListItem(listItem) { + // update selected flag and active list item + var flagChanged = this._setFlag(listItem.getAttribute("data-country-code")); + this._closeDropdown(); + this._updateDialCode(listItem.getAttribute("data-dial-code")); + // focus the input + this.telInput.focus(); + if (flagChanged) { + this._triggerCountryChange(); + } + } + }, { + key: "_closeDropdown", + value: function _closeDropdown() { + this.dropdownContent.classList.add("iti__hide"); + this.selectedFlag.setAttribute("aria-expanded", "false"); + this.selectedFlag.removeAttribute("aria-activedescendant"); + // update the arrow + this.dropdownArrow.classList.remove("iti__arrow--up"); + // unbind key events + document.removeEventListener("keydown", this._handleKeydownOnDropdown); + if (this.options.countrySearch) { + this.searchInput.removeEventListener("input", this._handleSearchChange); + } + document.documentElement.removeEventListener("click", this._handleClickOffToClose); + this.countryList.removeEventListener("mouseover", this._handleMouseoverCountryList); + this.countryList.removeEventListener("click", this._handleClickCountryList); + // remove menu from container + if (this.options.dropdownContainer) { + if (!this.options.useFullscreenPopup) { + window.removeEventListener("scroll", this._handleWindowScroll); + } + if (this.dropdown.parentNode) { + this.dropdown.parentNode.removeChild(this.dropdown); + } + } + this._trigger("close:countrydropdown"); + } + }, { + key: "_scrollTo", + value: function _scrollTo(element, middle) { + var container = this.countryList; + // windowTop from https://stackoverflow.com/a/14384091/217866 + var windowTop = document.documentElement.scrollTop; + var containerHeight = container.offsetHeight; + var containerTop = container.getBoundingClientRect().top + windowTop; + var containerBottom = containerTop + containerHeight; + var elementHeight = element.offsetHeight; + var elementTop = element.getBoundingClientRect().top + windowTop; + var elementBottom = elementTop + elementHeight; + var newScrollTop = elementTop - containerTop + container.scrollTop; + var middleOffset = containerHeight / 2 - elementHeight / 2; + if (elementTop < containerTop) { + // scroll up + if (middle) { + newScrollTop -= middleOffset; + } + container.scrollTop = newScrollTop; + } else if (elementBottom > containerBottom) { + // scroll down + if (middle) { + newScrollTop += middleOffset; + } + var heightDifference = containerHeight - elementHeight; + container.scrollTop = newScrollTop - heightDifference; + } + } + }, { + key: "_updateDialCode", + value: function _updateDialCode(newDialCodeBare) { + var inputVal = this.telInput.value; + // save having to pass this every time + var newDialCode = "+".concat(newDialCodeBare); + var newNumber; + if (inputVal.charAt(0) === "+") { + // there's a plus so we're dealing with a replacement + var prevDialCode = this._getDialCode(inputVal); + if (prevDialCode) { + // current number contains a valid dial code, so replace it + newNumber = inputVal.replace(prevDialCode, newDialCode); + } else { + // current number contains an invalid dial code, so ditch it + // (no way to determine where the invalid dial code ends and the rest of the number begins) + newNumber = newDialCode; + } + this.telInput.value = newNumber; + } else if (this.options.autoInsertDialCode) { + if (inputVal) { + // there is an existing value with no dial code: prefix the new dial code + newNumber = newDialCode + inputVal; + } else { + newNumber = newDialCode; + } + this.telInput.value = newNumber; + } + } + }, { + key: "_getDialCode", + value: function _getDialCode(number, includeAreaCode) { + var dialCode = ""; + // only interested in international numbers (starting with a plus) + if (number.charAt(0) === "+") { + var numericChars = ""; + // iterate over chars + for (var i = 0; i < number.length; i++) { + var c = number.charAt(i); + // if char is number (https://stackoverflow.com/a/8935649/217866) + if (!isNaN(parseInt(c, 10))) { + numericChars += c; + // if current numericChars make a valid dial code + if (includeAreaCode) { + if (this.dialCodeToIso2Map[numericChars]) { + // store the actual raw string (useful for matching later) + dialCode = number.substr(0, i + 1); + } + } else { + if (this.dialCodes[numericChars]) { + dialCode = number.substr(0, i + 1); + // if we're just looking for a dial code, we can break as soon as we find one + break; + } + } + // stop searching as soon as we can - in this case when we hit max len + if (numericChars.length === this.dialCodeMaxLen) { + break; + } + } + } + } + return dialCode; + } + }, { + key: "_getFullNumber", + value: function _getFullNumber() { + var val = this.telInput.value.trim(); + var dialCode = this.selectedCountryData.dialCode; + var prefix; + var numericVal = this._getNumeric(val); + if (this.options.showSelectedDialCode && !this.options.nationalMode && val.charAt(0) !== "+" && dialCode && numericVal) { + // when using showSelectedDialCode, it is visible so is effectively part of the typed number + prefix = "+".concat(dialCode); + } else { + prefix = ""; + } + return prefix + val; + } + }, { + key: "_beforeSetNumber", + value: function _beforeSetNumber(fullNumber) { + var number = fullNumber; + if (this.options.showSelectedDialCode) { + var dialCode = this._getDialCode(number); + // if there is a valid dial code + if (dialCode) { + // in case _getDialCode returned an area code as well + dialCode = "+".concat(this.selectedCountryData.dialCode); + // a lot of numbers will have a space separating the dial code and the main number, and + // some NANP numbers will have a hyphen e.g. +1 684-733-1234 - in both cases we want to get + // rid of it + // NOTE: don't just trim all non-numerics as may want to preserve an open parenthesis etc + var start = number[dialCode.length] === " " || number[dialCode.length] === "-" ? dialCode.length + 1 : dialCode.length; + number = number.substr(start); + } + } + return this._cap(number); + } + }, { + key: "_triggerCountryChange", + value: function _triggerCountryChange() { + this._trigger("countrychange"); + } + }, { + key: "_formatNumberAsYouType", + value: function _formatNumberAsYouType() { + var val = this._getFullNumber(); + var result = window.intlTelInputUtils ? intlTelInputUtils.formatNumberAsYouType(val, this.selectedCountryData.iso2) : val; + // if showSelectedDialCode and they haven't (re)typed the dial code in the input as well, then remove the dial code + var dialCode = this.selectedCountryData.dialCode; + if (this.options.showSelectedDialCode && !this.options.nationalMode && this.telInput.value.charAt(0) !== "+" && result.includes("+".concat(dialCode))) { + var afterDialCode = result.split("+".concat(dialCode))[1] || ""; + return afterDialCode.trim(); + } + return result; + } + }, { + key: "handleAutoCountry", + value: function handleAutoCountry() { + if (this.options.initialCountry === "auto") { + // we must set this even if there is an initial val in the input: in case the initial val is + // invalid and they delete it - they should see their auto country + this.defaultCountry = window.intlTelInputGlobals.autoCountry; + // if there's no initial value in the input, then update the flag + if (!this.telInput.value) { + this.setCountry(this.defaultCountry); + } + this.resolveAutoCountryPromise(); + } + } + }, { + key: "handleUtils", + value: function handleUtils() { + // if the request was successful + if (window.intlTelInputUtils) { + // if there's an initial value in the input, then format it + if (this.telInput.value) { + this._updateValFromNumber(this.telInput.value); + } + if (this.selectedCountryData.iso2) { + this._updatePlaceholder(); + } + } + this.resolveUtilsScriptPromise(); + } + }, { + key: "destroy", + value: function destroy() { + var form = this.telInput.form; + if (this.options.allowDropdown) { + // make sure the dropdown is closed (and unbind listeners) + this._closeDropdown(); + this.selectedFlag.removeEventListener("click", this._handleClickSelectedFlag); + this.flagsContainer.removeEventListener("keydown", this._handleFlagsContainerKeydown); + // label click hack + var label = this.telInput.closest("label"); + if (label) { + label.removeEventListener("click", this._handleLabelClick); + } + } + // unbind hiddenInput listeners + if (this.hiddenInput && form) { + form.removeEventListener("submit", this._handleHiddenInputSubmit); + } + // unbind autoInsertDialCode listeners + if (this.options.autoInsertDialCode) { + if (form) { + form.removeEventListener("submit", this._handleSubmitOrBlurEvent); + } + this.telInput.removeEventListener("blur", this._handleSubmitOrBlurEvent); + } + // unbind key events, and cut/paste events + this.telInput.removeEventListener("input", this._handleKeyEvent); + this.telInput.removeEventListener("cut", this._handleClipboardEvent); + this.telInput.removeEventListener("paste", this._handleClipboardEvent); + // remove attribute of id instance: data-intl-tel-input-id + this.telInput.removeAttribute("data-intl-tel-input-id"); + // remove markup (but leave the original input) + var wrapper = this.telInput.parentNode; + wrapper.parentNode.insertBefore(this.telInput, wrapper); + wrapper.parentNode.removeChild(wrapper); + delete window.intlTelInputGlobals.instances[this.id]; + } + }, { + key: "getExtension", + value: function getExtension() { + if (window.intlTelInputUtils) { + return intlTelInputUtils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2); + } + return ""; + } + }, { + key: "getNumber", + value: function getNumber(format) { + if (window.intlTelInputUtils) { + var iso2 = this.selectedCountryData.iso2; + return intlTelInputUtils.formatNumber(this._getFullNumber(), iso2, format); + } + return ""; + } + }, { + key: "getNumberType", + value: function getNumberType() { + if (window.intlTelInputUtils) { + return intlTelInputUtils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2); + } + return -99; + } + }, { + key: "getSelectedCountryData", + value: function getSelectedCountryData() { + return this.selectedCountryData; + } + }, { + key: "getValidationError", + value: function getValidationError() { + if (window.intlTelInputUtils) { + var iso2 = this.selectedCountryData.iso2; + return intlTelInputUtils.getValidationError(this._getFullNumber(), iso2); + } + return -99; + } + }, { + key: "isValidNumber", + value: function isValidNumber(mobileOnly) { + var val = this._getFullNumber(); + return window.intlTelInputUtils ? intlTelInputUtils.isPossibleNumber(val, this.selectedCountryData.iso2, mobileOnly) : null; + } + }, { + key: "isValidNumberPrecise", + value: function isValidNumberPrecise() { + var val = this._getFullNumber(); + return window.intlTelInputUtils ? intlTelInputUtils.isValidNumber(val, this.selectedCountryData.iso2) : null; + } + }, { + key: "setCountry", + value: function setCountry(iso2) { + var iso2Lower = iso2.toLowerCase(); + // check if already selected + if (this.selectedCountryData.iso2 !== iso2Lower) { + this._setFlag(iso2Lower); + this._updateDialCode(this.selectedCountryData.dialCode); + this._triggerCountryChange(); + } + } + }, { + key: "setNumber", + value: function setNumber(number) { + // we must update the flag first, which updates this.selectedCountryData, which is used for + // formatting the number before displaying it + var flagChanged = this._updateFlagFromNumber(number); + this._updateValFromNumber(number); + if (flagChanged) { + this._triggerCountryChange(); + } + } + }, { + key: "setPlaceholderNumberType", + value: function setPlaceholderNumberType(type) { + this.options.placeholderNumberType = type; + this._updatePlaceholder(); + } + } ]); + return Iti; + }(); + /******************** + * STATIC METHODS + ********************/ + // get the country data object + intlTelInputGlobals.getCountryData = function() { + return allCountries; + }; + // inject a