PageSourceSearch

https://www.bolognafc.it/wp-content/themes/bolognafc/js/ext.js?ver=29

js bolognafc.it collected 2026-09-24 09:32:57 UTC 1,108,849 bytes, 14,744 lines download raw bytes

vendor: 2,622 bytes, line 1
1(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:e?e.ownerDocument.documentElement:document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||n;return r[o]}return e[o]}function l(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function f(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+i+'Width'],10)}function m(e,t,o,i){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=document.body,t=document.documentElement,o=ie()&&getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top}
vendor: 5,196 bytes, line 1
1,p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,m=e.offsetHeight-d;if(l||m){var g=t(e);l-=f(g,'x'),m-=f(g,'y'),r.width-=l,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),f=parseFloat(a.borderTopWidth,10),m=parseFloat(a.borderLeftWidth,10),h=c({top:p.top-s.top-f,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(a.marginTop,10),b=parseFloat(a.marginLeft,10);h.top-=f-u,h.bottom-=f-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=l(h,o)),h}function b(e){var t=e.ownerDocument.documentElement,o=u(e,t),i=J(t.clientWidth,window.innerWidth||0),n=J(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function w(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||w(o(e))}function y(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(t)),'BODY'===a.nodeName&&(a=e.ownerDocument.documentElement)):'window'===r?a=e.ownerDocument.documentElement:a=r;var l=u(a,s);if('HTML'===a.nodeName&&!w(s)){var f=h(),m=f.height,c=f.width;p.top+=l.top-l.marginTop,p.bottom=m+l.top,p.left+=l.left-l.marginLeft,p.right=c+l.left}else p=l}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function E(e){var t=e.width,o=e.height;return t*o}function v(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=y(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:E(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function O(e,t,o){var i=d(t,o);return u(o,i)}function L(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function x(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function S(e,t,o){o=o.split('-')[0];var i=L(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[x(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function D(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function C(t,o,i){var n=void 0===i?t:t.slice(0,D(t,'name',i));return n.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t['function']||t.fn;t.enabled&&e(i)&&(o.offsets.popper=c(o.offsets.popper),o.offsets.reference=c(o.offsets.reference),o=i(o,t))}),o}function N(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference),e.placement=v(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=C(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function k(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function W(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function P(){return this.state.isDestroyed=!0,k(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.popper.style.position='',this.popper.style.top='',this.popper.style[W('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function B(e){var t=e.ownerDocument;return t?t.defaultView:window}function H(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||H(n(p.parentNode),t,o,i),i.push(p)}function A(e,t,o,i){o.updateBound=i,B(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return H(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=A(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return B(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEac
vendor: 11,562 bytes, lines 1-9
1h(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function R(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function U(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function Y(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&U(t[o])&&(i='px'),e.style[o]=t[o]+i})}function j(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function K(e){return'end'===e?'start':'start'===e?'end':e}function q(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ae.indexOf(e),i=ae.slice(o+1).concat(ae.slice(0,o));return t?i.reverse():i}function V(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=i;}var d=c(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function z(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,i){var n=(1===i?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return V(e,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){U(o)&&(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}function G(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=U(+i)?[+i,0]:z(i,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var _=Math.min,X=Math.floor,J=Math.max,Q='undefined'!=typeof window&&'undefined'!=typeof document,Z=['Edge','Trident','Firefox'],$=0,ee=0;ee<Z.length;ee+=1)if(Q&&0<=navigator.userAgent.indexOf(Z[ee])){$=1;break}var i,te=Q&&window.Promise,oe=te?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},$))}},ie=function(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},ne=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},re=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),pe=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},se=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},de=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ae=de.slice(3),le={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},fe=function(){function t(o,i){var n=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};ne(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=oe(this.update.bind(this)),this.options=se({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(se({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=se({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return se({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return re(t,[{key:'update',value:function(){return N.call(this)}},{key:'destroy',value:function(){return P.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return R.call(this)}}]),t}();return fe.Utils=('undefined'==typeof window?global:window).PopperUtils,fe.placements=de,fe.Defaults={placement:'bottom',eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:pe({},d,r[d]),end:pe({},d,r[d]+r[a]-p[a])};e.offsets.popper=se({},p,l[i])}return e}},offset:{order:200,enabled:!0,fn:G,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=y(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=J(p[e],i[e])),pe({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=_(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=X,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var i;if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var n=o.element;if('string'==typeof n){if(n=e.instance.popper.querySelector(n),!n)return e;}else if(!e.instance.popper.contains(n))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',g=a?'bottom':'right',u=L(n)[l];d[g]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[g]-u)),d[m]+u>s[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=J(_(s[l]-u,v),0),e.arrowElement=n,e.offsets.arrow=(i={},pe(i,m,Math.round(v)),pe(i,h,''),i),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(k(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=x(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case le.FLIP:p=[i,n];break;case le.CLOCKWISE:p=q(i);break;case le.COUNTERCLOCKWISE:p=q(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=x(i);var a=e.offsets.popper,l=e.offsets.reference,f=X,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)<f(l.right)||'top'===i&&f(a.bottom)>f(l.top)||'bottom'===i&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,w=-1!==['top','bottom'].indexOf(i),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),y&&(r=K(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=C(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=x(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===p?t.gpuAcceleration:p,l=r(e.instance.popper),f=g(l),m={position:n.position},h={left:X(n.left),top:X(n.top),bottom:X(n.bottom),right:X(n.right)},c='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=W('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==u?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[u]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==u?-1:1;m[c]=d*w,m[u]=s*y,m.willChange=c+', '+u}var E={"x-placement":e.placement};return e.attributes=se({},E,e.attributes),e.styles=se({},m,e.styles),e.arrowStyles=se({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return Y(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Y(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,i,n){var r=O(n,t,e),p=v(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),Y(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},fe});
2;/*!
3 * VERSION: 0.5.8
4 * DATE: 2018-02-15
5 * UPDATES AND DOCS AT: http://greensock.com
6 *
7 * @license Copyright (c) 2008-2018, GreenSock. All rights reserved.
8 * SplitText is a Club GreenSock membership benefit; You must have a valid membership to use
9 * this code without violating the terms of use. Visit http://greensock.com/club/ to sign up or get more details.
10 * This work is subject to the software agreement that was issued with your membership.
11 * 
12 * @author: Jack Doyle, [email protected]
13 */
14var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;!function(a){"use strict";var b=a.GreenSockGlobals||a,c=function(a){var c,d=a.split("."),e=b;for(c=0;c<d.length;c++)e[d[c]]=e=e[d[c]]||{};return e},d=c("com.greensock.utils"),e=function(a){var b=a.nodeType,c="";if(1===b||9===b||11===b){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===b||4===b)return a.nodeValue;return c},f=document,g=f.defaultView?f.defaultView.getComputedStyle:function(){},h=/([A-Z])/g,i=function(a,b,c,d){var e;return(c=c||g(a,null))?(a=c.getPropertyValue(b.replace(h,"-$1").toLowerCase()),e=a||c.length?a:c[b]):a.currentStyle&&(c=a.currentStyle,e=c[b]),d?e:parseInt(e,10)||0},j=function(a){return a.length&&a[0]&&(a[0].nodeType&&a[0].style&&!a.nodeType||a[0].length&&a[0][0])?!0:!1},k=function(a){var b,c,d,e=[],f=a.length;for(b=0;f>b;b++)if(c=a[b],j(c))for(d=c.length,d=0;d<c.length;
14d++)e.push(c[d]);else e.push(c);return e},l=/(?:\r|\n|\t\t)/g,m=/(?:\s\s+)/g,n=55296,o=56319,p=56320,q=127462,r=127487,s=127995,t=127999,u=function(a){return(a.charCodeAt(0)-n<<10)+(a.charCodeAt(1)-p)+65536},v=f.all&&!f.addEventListener,w=" style='position:relative;display:inline-block;"+(v?"*display:inline;*zoom:1;'":"'"),x=function(a,b){a=a||"";var c=-1!==a.indexOf("++"),d=1;return c&&(a=a.split("++").join("")),function(){return"<"+b+w+(a?" class='"+a+(c?d++:"")+"'>":">")}},y=d.SplitText=b.SplitText=function(a,b){if("string"==typeof a&&(a=y.selector(a)),!a)throw"cannot split a null element.";this.elements=j(a)?k(a):[a],this.chars=[],this.words=[],this.lines=[],this._originals=[],this.vars=b||{},this.split(b)},z=function(a,b,c){var d=a.nodeType;if(1===d||9===d||11===d)for(a=a.firstChild;a;a=a.nextSibling)z(a,b,c);else(3===d||4===d)&&(a.nodeValue=a.nodeValue.split(b).join(c))},A=function(a,b){for(var c=b.length;--c>-1;)a.push(b[c])},B=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},C=function(a,b,c){for(var d;a&&a!==b;){if(d=a._next||a.nextSibling)return d.textContent.charAt(0)===c;a=a.parentNode||a._parent}return!1},D=function(a){var b,c,d=B(a.childNodes),e=d.length;for(b=0;e>b;b++)c=d[b],c._isSplit?D(c):(b&&3===c.previousSibling.nodeType?c.previousSibling.nodeValue+=3===c.nodeType?c.nodeValue:c.firstChild.nodeValue:3!==c.nodeType&&a.insertBefore(c.firstChild,c),a.removeChild(c))},E=function(a,b,c,d,e,h,j){var k,l,m,n,o,p,q,r,s,t,u,v,w=g(a),x=i(a,"paddingLeft",w),y=-999,B=i(a,"borderBottomWidth",w)+i(a,"borderTopWidth",w),E=i(a,"borderLeftWidth",w)+i(a,"borderRightWidth",w),F=i(a,"paddingTop",w)+i(a,"paddingBottom",w),G=i(a,"paddingLeft",w)+i(a,"paddingRight",w),H=.2*i(a,"fontSize"),I=i(a,"textAlign",w,!0),J=[],K=[],L=[],M=b.wordDelimiter||" ",N=b.span?"span":"div",O=b.type||b.split||"chars,words,lines",P=e&&-1!==O.indexOf("lines")?[]:null,Q=-1!==O.indexOf("words"),R=-1!==O.indexOf("chars"),S="absolute"===b.position||b.absolute===!0,T=b.linesClass,U=-1!==(T||"").indexOf("++"),V=[];for(P&&1===a.children.length&&a.children[0]._isSplit&&(a=a.children[0]),U&&(T=T.split("++").join("")),l=a.getElementsByTagName("*"),m=l.length,o=[],k=0;m>k;k++)o[k]=l[k];if(P||S)for(k=0;m>k;k++)n=o[k],p=n.parentNode===a,(p||S||R&&!Q)&&(v=n.offsetTop,P&&p&&Math.abs(v-y)>H&&("BR"!==n.nodeName||0===k)&&(q=[],P.push(q),y=v),S&&(n._x=n.offsetLeft,n._y=v,n._w=n.offsetWidth,n._h=n.offsetHeight),P&&((n._isSplit&&p||!R&&p||Q&&p||!Q&&n.parentNode.parentNode===a&&!n.parentNode._isSplit)&&(q.push(n),n._x-=x,C(n,a,M)&&(n._wordEnd=!0)),"BR"===n.nodeName&&(n.nextSibling&&"BR"===n.nextSibling.nodeName||0===k)&&P.push([])));for(k=0;m>k;k++)n=o[k],p=n.parentNode===a,"BR"!==n.nodeName?(S&&(s=n.style,Q||p||(n._x+=n.parentNode._x,n._y+=n.parentNode._y),s.left=n._x+"px",s.top=n._y+"px",s.position="absolute",s.display="block",s.width=n._w+1+"px",s.height=n._h+"px"),!Q&&R?n._isSplit?(n._next=n.nextSibling,n.parentNode.appendChild(n)):n.parentNode._isSplit?(n._parent=n.parentNode,!n.previousSibling&&n.firstChild&&(n.firstChild._isFirst=!0),n.nextSibling&&" "===n.nextSibling.textContent&&!n.nextSibling.nextSibling&&V.push(n.nextSibling),n._next=n.nextSibling&&n.nextSibling._isFirst?null:n.nextSibling,n.parentNode.removeChild(n),o.splice(k--,1),m--):p||(v=!n.nextSibling&&C(n.parentNode,a,M),n.parentNode._parent&&n.parentNode._parent.appendChild(n),v&&n.parentNode.appendChild(f.createTextNode(" ")),b.span&&(n.style.display="inline"),J.push(n)):n.parentNode._isSplit&&!n._isSplit&&""!==n.innerHTML?K.push(n):R&&!n._isSplit&&(b.span&&(n.style.display="inline"),J.push(n))):P||S?(n.parentNode&&n.parentNode.removeChild(n),o.splice(k--,1),m--):Q||a.appendChild(n);for(k=V.length;--k>-1;)V[k].parentNode.removeChild(V[k]);if(P){for(S&&(t=f.createElement(N),a.appendChild(t),u=t.offsetWidth+"px",v=t.offsetParent===a?0:a.offsetLeft,a.removeChild(t)),s=a.style.cssText,a.style.cssText="display:none;";a.firstChild;)a.removeChild(a.firstChild);for(r=" "===M&&(!S||!Q&&!R),k=0;k<P.length;k++){for(q=P[k],t=f.createElement(N),t.style.cssText="display:block;text-align:"+I+";position:"+(S?"absolute;":"relative;"),T&&(t.className=T+(U?k+1:"")),L.push(t),m=q.length,l=0;m>l;l++)"BR"!==q[l].nodeName&&(n=q[l],t.appendChild(n),r&&n._wordEnd&&t.appendChild(f.createTextNode(" ")),S&&(0===l&&(t.style.top=n._y+"px",t.style.left=x+v+"px"),n.style.top="0px",v&&(n.style.left=n._x-v+"px")));0===m?t.innerHTML="&nbsp;":Q||R||(D(t),z(t,String.fromCharCode(160)," ")),S&&(t.style.width=u,t.style.height=n._h+"px"),a.appendChild(t)}a.style.cssText=s}S&&(j>a.clientHeight&&(a.style.height=j-F+"px",a.clientHeight<j&&(a.style.height=j+B+"px")),h>a.clientWidth&&(a.style.width=h-G+"px",a.clientWidth<h&&(a.style.width=h+E+"px"))),A(c,J),A(d,K),A(e,L)},F=function(a,b,c,d){var g,h,i,j,k,p,v,w,x,y=b.span?"span":"div",A=b.type||b.split||"chars,words,lines",B=-1!==A.indexOf("chars"),C="absolute"===b.position||b.absolute===!0,D=b.wordDelimiter||" ",E=" "!==D?"":C?"&#173; ":" ",F=b.span?"</span>":"</div>",G=!0,H=f.createElement("div"),I=a.parentNode;for(I.insertBefore(H,a),H.textContent=a.nodeValue,I.removeChild(a),a=H,g=e(a),v=-1!==g.indexOf("<"),b.reduceWhiteSpace!==!1&&(g=g.replace(m," ").replace(l,"")),v&&(g=g.split("<").join("{{LT}}")),k=g.length,h=(" "===g.charAt(0)?E:"")+c(),i=0;k>i;i++)if(p=g.charAt(i),p===D&&g.charAt(i-1)!==D&&i){for(h+=G?F:"",G=!1;g.charAt(i+1)===D;)h+=E,i++;i===k-1?h+=E:")"!==g.charAt(i+1)&&(h+=E+c(),G=!0)}else"{"===p&&"{{LT}}"===g.substr(i,6)?(h+=B?d()+"{{LT}}
14</"+y+">":"{{LT}}",i+=5):p.charCodeAt(0)>=n&&p.charCodeAt(0)<=o||g.charCodeAt(i+1)>=65024&&g.charCodeAt(i+1)<=65039?(w=u(g.substr(i,2)),x=u(g.substr(i+2,2)),j=w>=q&&r>=w&&x>=q&&r>=x||x>=s&&t>=x?4:2,h+=B&&" "!==p?d()+g.substr(i,j)+"</"+y+">":g.substr(i,j),i+=j-1):h+=B&&" "!==p?d()+p+"</"+y+">":p;a.outerHTML=h+(G?F:""),v&&z(I,"{{LT}}","<")},G=function(a,b,c,d){var e,f,g=B(a.childNodes),h=g.length,j="absolute"===b.position||b.absolute===!0;if(3!==a.nodeType||h>1){for(b.absolute=!1,e=0;h>e;e++)f=g[e],(3!==f.nodeType||/\S+/.test(f.nodeValue))&&(j&&3!==f.nodeType&&"inline"===i(f,"display",null,!0)&&(f.style.display="inline-block",f.style.position="relative"),f._isSplit=!0,G(f,b,c,d));return b.absolute=j,void(a._isSplit=!0)}F(a,b,c,d)},H=y.prototype;H.split=function(a){this.isSplit&&this.revert(),this.vars=a=a||this.vars,this._originals.length=this.chars.length=this.words.length=this.lines.length=0;for(var b,c,d,e=this.elements.length,f=a.span?"span":"div",g=x(a.wordsClass,f),h=x(a.charsClass,f);--e>-1;)d=this.elements[e],this._originals[e]=d.innerHTML,b=d.clientHeight,c=d.clientWidth,G(d,a,g,h),E(d,a,this.chars,this.words,this.lines,c,b);return this.chars.reverse(),this.words.reverse(),this.lines.reverse(),this.isSplit=!0,this},H.revert=function(){if(!this._originals)throw"revert() call wasn't scoped properly.";for(var a=this._originals.length;--a>-1;)this.elements[a].innerHTML=this._originals[a];return this.chars=[],this.words=[],this.lines=[],this.isSplit=!1,this},y.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(y.selector=c,c(b)):"undefined"==typeof document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)},y.version="0.5.8"}(_gsScope),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"undefined"!=typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd&&define([],b)}("SplitText");;/*!
15 * VERSION: 1.20.3
16 * DATE: 2017-10-02
17 * UPDATES AND DOCS AT: http://greensock.com
18 * 
19 * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
20 *
21 * @license Copyright (c) 2008-2017, GreenSock. All rights reserved.
22 * This work is subject to the terms at http://greensock.com/standard-license or for
23 * Club GreenSock members, the software agreement that was issued with your membership.
24 * 
25 * @author: Jack Doyle, [email protected]
26 **/
27var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},e=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c]):e[c%e.length];delete a.cycle},f=function(a,b,d){c.call(this,a,b,d),this._cycle=0,this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._repeat&&this._uncache(!0),this.render=f.prototype.render},g=1e-10,h=c._internals,i=h.isSelector,j=h.isArray,k=f.prototype=c.to({},.1,{}),l=[];f.version="1.20.3",k.constructor=f,k.kill()._gc=!1,f.killTweensOf=f.killDelayedCallsTo=c.killTweensOf,f.getTweensOf=c.getTweensOf,f.lagSmoothing=c.lagSmoothing,f.ticker=c.ticker,f.render=c.render,k.invalidate=function(){return this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._yoyoEase=null,this._uncache(!0),c.prototype.invalidate.call(this)},k.updateTo=function(a,b){var d,e=this.ratio,f=this.vars.immediateRender||a.immediateRender;b&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(d in a)this.vars[d]=a[d];if(this._initted||f)if(b)this._initted=!1,f&&this.render(0,!0,!0);else if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&c._onPluginEvent("_onDisable",this),this._time/this._duration>.998){var g=this._totalTime;this.render(0,!0,!1),this._initted=!1,this.render(g,!0,!1)}else if(this._initted=!1,this._init(),this._time>0||f)for(var h,i=1/(1-e),j=this._firstPT;j;)h=j.s+j.c,j.c*=i,j.s=h-j.c,j=j._next;return this},k.render=function(a,b,d){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var e,f,i,j,k,l,m,n,o,p=this._dirty?this.totalDuration():this._totalDuration,q=this._time,r=this._totalTime,s=this._cycle,t=this._duration,u=this._rawPrevTime;if(a>=p-1e-7&&a>=0?(this._totalTime=p,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=t,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(e=!0,f="onComplete",d=d||this._timeline.autoRemoveChildren),0===t&&(this._initted||!this.vars.lazy||d)&&(this._startTime===this._timeline._duration&&(a=0),(0>u||0>=a&&a>=-1e-7||u===g&&"isPause"!==this.data)&&u!==a&&(d=!0,u>g&&(f="onReverseComplete")),this._rawPrevTime=n=!b||a||u===a?a:g)):1e-7>a?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==r||0===t&&u>0)&&(f="onReverseComplete",e=this._reversed),0>a&&(this._active=!1,0===t&&(this._initted||!this.vars.lazy||d)&&(u>=0&&(d=!0),this._rawPrevTime=n=!b||a||u===a?a:g)),this._initted||(
27d=!0)):(this._totalTime=this._time=a,0!==this._repeat&&(j=t+this._repeatDelay,this._cycle=this._totalTime/j>>0,0!==this._cycle&&this._cycle===this._totalTime/j&&a>=r&&this._cycle--,this._time=this._totalTime-this._cycle*j,this._yoyo&&0!==(1&this._cycle)&&(this._time=t-this._time,o=this._yoyoEase||this.vars.yoyoEase,o&&(this._yoyoEase||(o!==!0||this._initted?this._yoyoEase=o=o===!0?this._ease:o instanceof Ease?o:Ease.map[o]:(o=this.vars.ease,this._yoyoEase=o=o?o instanceof Ease?o:"function"==typeof o?new Ease(o,this.vars.easeParams):Ease.map[o]||c.defaultEase:c.defaultEase)),this.ratio=o?1-o.getRatio((t-this._time)/t):0)),this._time>t?this._time=t:this._time<0&&(this._time=0)),this._easeType&&!o?(k=this._time/t,l=this._easeType,m=this._easePower,(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===m?k*=k:2===m?k*=k*k:3===m?k*=k*k*k:4===m&&(k*=k*k*k*k),1===l?this.ratio=1-k:2===l?this.ratio=k:this._time/t<.5?this.ratio=k/2:this.ratio=1-k/2):o||(this.ratio=this._ease.getRatio(this._time/t))),q===this._time&&!d&&s===this._cycle)return void(r!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!d&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=q,this._totalTime=r,this._rawPrevTime=u,this._cycle=s,h.lazyTweens.push(this),void(this._lazy=[a,b]);!this._time||e||o?e&&this._ease._calcEnd&&!o&&(this.ratio=this._ease.getRatio(0===this._time?0:1)):this.ratio=this._ease.getRatio(this._time/t)}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==q&&a>=0&&(this._active=!0),0===r&&(2===this._initted&&a>0&&this._init(),this._startAt&&(a>=0?this._startAt.render(a,!0,d):f||(f="_dummyGS")),this.vars.onStart&&(0!==this._totalTime||0===t)&&(b||this._callback("onStart"))),i=this._firstPT;i;)i.f?i.t[i.p](i.c*this.ratio+i.s):i.t[i.p]=i.c*this.ratio+i.s,i=i._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,!0,d),b||(this._totalTime!==r||f)&&this._callback("onUpdate")),this._cycle!==s&&(b||this._gc||this.vars.onRepeat&&this._callback("onRepeat")),f&&(!this._gc||d)&&(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,!0,d),e&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[f]&&this._callback(f),0===t&&this._rawPrevTime===g&&n!==g&&(this._rawPrevTime=0))},f.to=function(a,b,c){return new f(a,b,c)},f.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new f(a,b,c)},f.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new f(a,b,d)},f.staggerTo=f.allTo=function(a,b,g,h,k,m,n){h=h||0;var o,p,q,r,s=0,t=[],u=function(){g.onComplete&&g.onComplete.apply(g.onCompleteScope||this,arguments),k.apply(n||g.callbackScope||this,m||l)},v=g.cycle,w=g.startAt&&g.startAt.cycle;for(j(a)||("string"==typeof a&&(a=c.selector(a)||a),i(a)&&(a=d(a))),a=a||[],0>h&&(a=d(a),a.reverse(),h*=-1),o=a.length-1,q=0;o>=q;q++){p={};for(r in g)p[r]=g[r];if(v&&(e(p,a,q),null!=p.duration&&(b=p.duration,delete p.duration)),w){w=p.startAt={};for(r in g.startAt)w[r]=g.startAt[r];e(p.startAt,a,q)}p.delay=s+(p.delay||0),q===o&&k&&(p.onComplete=u),t[q]=new f(a[q],b,p),s+=h}return t},f.staggerFrom=f.allFrom=function(a,b,c,d,e,g,h){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,f.staggerTo(a,b,c,d,e,g,h)},f.staggerFromTo=f.allFromTo=function(a,b,c,d,e,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,f.staggerTo(a,b,d,e,g,h,i)},f.delayedCall=function(a,b,c,d,e){return new f(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,useFrames:e,overwrite:0})},f.set=function(a,b){return new f(a,0,b)},f.isTweening=function(a){return c.getTweensOf(a,!0).length>0};var m=function(a,b){for(var d=[],e=0,f=a._first;f;)f instanceof c?d[e++]=f:(b&&(d[e++]=f),d=d.concat(m(f,b)),e=d.length),f=f._next;return d},n=f.getAllTweens=function(b){return m(a._rootTimeline,b).concat(m(a._rootFramesTimeline,b))};f.killAll=function(a,c,d,e){null==c&&(c=!0),null==d&&(d=!0);var f,g,h,i=n(0!=e),j=i.length,k=c&&d&&e;for(h=0;j>h;h++)g=i[h],(k||g instanceof b||(f=g.target===g.vars.onComplete)&&d||
27c&&!f)&&(a?g.totalTime(g._reversed?0:g.totalDuration()):g._enabled(!1,!1))},f.killChildTweensOf=function(a,b){if(null!=a){var e,g,k,l,m,n=h.tweenLookup;if("string"==typeof a&&(a=c.selector(a)||a),i(a)&&(a=d(a)),j(a))for(l=a.length;--l>-1;)f.killChildTweensOf(a[l],b);else{e=[];for(k in n)for(g=n[k].target.parentNode;g;)g===a&&(e=e.concat(n[k].tweens)),g=g.parentNode;for(m=e.length,l=0;m>l;l++)b&&e[l].totalTime(e[l].totalDuration()),e[l]._enabled(!1,!1)}}};var o=function(a,c,d,e){c=c!==!1,d=d!==!1,e=e!==!1;for(var f,g,h=n(e),i=c&&d&&e,j=h.length;--j>-1;)g=h[j],(i||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&g.paused(a)};return f.pauseAll=function(a,b,c){o(!0,a,b,c)},f.resumeAll=function(a,b,c){o(!1,a,b,c)},f.globalTimeScale=function(b){var d=a._rootTimeline,e=c.ticker.time;return arguments.length?(b=b||g,d._startTime=e-(e-d._startTime)*d._timeScale/b,d=a._rootFramesTimeline,e=c.ticker.frame,d._startTime=e-(e-d._startTime)*d._timeScale/b,d._timeScale=a._rootTimeline._timeScale=b,b):d._timeScale},k.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},k.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},k.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.duration=function(b){return arguments.length?a.prototype.duration.call(this,b):this._duration},k.totalDuration=function(a){return arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},k.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},f},!0),_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var c,d,e=this.vars;for(d in e)c=e[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(c));i(e.tweens)&&this.add(e.tweens,0,e.align,e.stagger)},e=1e-10,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c]):e[c%e.length];delete a.cycle},o=g.pauseCallback=function(){},p=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=d.prototype=new b;return d.version="1.20.3",q.constructor=d,q.kill()._gc=q._forcingPlayhead=q._hasPause=!1,q.to=function(a,b,d,e){var f=d.repeat&&l.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},q.from=function(a,b,d,e){return this.add((d.repeat&&l.TweenMax||c).from(a,b,d),e)},q.fromTo=function(a,b,d,e,f){var g=e.repeat&&l.TweenMax||c;return b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},q.staggerTo=function(a,b,e,f,g,i,j,k){var l,o,q=new d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),r=e.cycle;for("string"==typeof a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),f=f||0,0>f&&(a=p(a),a.reverse(),f*=-1),o=0;o<a.length;o++)l=m(e),l.startAt&&(l.startAt=m(l.startAt),l.startAt.cycle&&n(l.startAt,a,o)),r&&(n(l,a,o),null!=l.duration&&(b=l.duration,delete l.duration)),q.to(a[o],b,l,o*f);return this.add(q,g)},q.staggerFrom=function(a,b,c,d,e,f,g,h){return c.immediateRender=0!=c.immediateRender,c.runBackwards=!0,this.staggerTo(a,b,c,d,e,f,g,h)},q.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,this.staggerTo(a,b,d,e,f,g,h,i)},q.call=function(a,b,d,e){return this.add(c.delayedCall(0,a,b,d),e)},q.set=function(a,b,d){return d=this._parseTimeOrLabel(d,0,!0),null==b.immediateRender&&(b.immediateRender=d===this._time&&!this._paused),this.add(new c(a,0,b),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var e,f,g,h,i=new d(a),j=i._timeline;for(null==b&&(b=!0),j._remove(i,!0),i._startTime=0,i._rawPrevTime=i._time=i._totalTime=j._time,g=j._first;g;)h=g._next,b&&g instanceof c&&g.target===g.vars.onComplete||(f=g._startTime-g._delay,0>f&&(e=1),i.add(g,f)),g=h;return j.add(i,0),e&&i.totalDuration(),i},q.add=function(e,f,g,h){var j,k,l,m,n,o;if("number"!=typeof f&&(f=this._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new d({tweens:m})),this.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return this._uncache(!0)}if("string"==typeof e)return this.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(this,e,f),e._time&&e.render((this.rawTime()-e._startTime)*e._timeScale,!1,!1),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(n=this,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return this},q.remove=function(b){if(b instanceof a){this._remove(b,!1);var c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&i(b)){for(var d=b.length;--d>-1;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},q._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>this.duration()&&(this._time=this._duration,this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},q.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},q.insert=q.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},q.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},q.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},q.addPause=function(a,b,d,e){var f=c.delayedCall(0,o,d,e||this);return f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},q.removeLabel=function(a){return delete this._labels[a],this},q.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},q._parseTimeOrLabel=function(b,c,d,e){var f,g;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&i(e)))for(g=e.length;--g>-1;)e[g]instanceof a&&e[g].timeline===this&&this.remove(e[g]);if(f="number"!=typeof b||c?this.duration()>99999999999?this.recent().endTime(!1):this._duration:0,"string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-f:0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=f);else{if(g=b.indexOf("="),-1===g)return null==this._labels[b]?d?this._labels[b]=f+c:c:this._labels[b]+c;c=parseInt(b.charAt(g-1)+"1",10)*Number(b.substr(g+1)),b=g>1?this._parseTimeOrLabel(b.substr(0,g-1),0,d):f}return Number(b)+c},q.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},q.stop=function(){return this.paused(!0)},q.gotoAndPlay=function(a,b){return this.play(a,b)},q.gotoAndStop=function(a,b){return this.pause(a,b)},q.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,h,i,l,m,n=this._time,o=this._dirty?this.totalDuration():this._totalDuration,p=this._startTime,q=this._timeScale,r=this._paused;if(n!==this._time&&(a+=this._time-n),a>=o-1e-7&&a>=0)this._totalTime=this._time=o,this._reversed||this._hasPausedChild()||(f=!0,h="onComplete",i=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||this._rawPrevTime<0||this._rawPrevTime===e)&&this._rawPrevTime!==a&&this._first&&(i=!0,this._rawPrevTime>e&&(h="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=o+1e-4;else if(1e-7>a)if(this._totalTime=this._time=0,(0!==n||0===this._duration&&this._rawPrevTime!==e&&(this._rawPrevTime>0||0>a&&this._rawPrevTime>=0))&&(h="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(i=f=!0,h="onReverseComplete"):this._rawPrevTime>=0&&this._first&&(i=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(i=!0)}else{if(this._hasPause&&!this._forcingPlayhead&&!b){if(a>=n)for(d=this._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(l=d),d=d._next;else for(d=this._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(this._time=a=l._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}this._totalTime=this._time=this._rawPrevTime=a}if(this._time!==n&&this._first||c||i||l){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==n&&a>0&&(this._active=!0),0===n&&this.vars.onStart&&(0===this._time&&this._duration||b||this._callback("onStart")),m=this._time,m>=n)for(d=this._first;d&&(g=d._next,m===this._time&&(!this._paused||r));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=this._last;d&&(g=d._prev,m===this._time&&(!this._paused||r));){if(d._active||d._startTime<=n&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>this._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}
27this._onUpdate&&(b||(j.length&&k(),this._callback("onUpdate"))),h&&(this._gc||(p===this._startTime||q!==this._timeScale)&&(0===this._time||o>=this.totalDuration())&&(f&&(j.length&&k(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[h]&&this._callback(h)))}},q._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},q.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return f},q.getTweensOf=function(a,b){var d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},q.recent=function(){return this._recent},q._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},q.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},q._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},q.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},q.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},q._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},q.totalTime=function(b,c,d){this._forcingPlayhead=!0;var e=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},q.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},q.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this._last,f=999999999999;e;)b=e._prev,e._dirty&&e.totalDuration(),e._startTime>f&&this._sortChildren&&!e._paused&&!this._calculatingDuration?(this._calculatingDuration=1,this.add(e,e._startTime-e._delay),this._calculatingDuration=0):f=e._startTime,e._startTime<0&&!e._paused&&(d-=e._startTime,this._timeline.smoothChildTiming&&(this._startTime+=e._startTime/this._timeScale,this._time-=e._startTime,this._totalTime-=e._startTime,this._rawPrevTime-=e._startTime),this.shiftChildren(-e._startTime,!1,-9999999999),f=0),c=e._startTime+e._totalDuration/e._timeScale,c>d&&(d=c),e=b;this._duration=this._totalDuration=d,this._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},q.paused=function(b){if(!b)for(var c=this._first,d=this._time;c;)c._startTime===d&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return a.prototype.paused.apply(this,arguments)},q.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},q.rawTime=function(a){return a&&(this._paused||this._repeat&&this.time()>0&&this.totalProgress()<1)?this._totalTime%(this._duration+this._repeatDelay):this._paused?this._totalTime:(this._timeline.rawTime(a)-this._startTime)*this._timeScale},d},!0),_gsScope._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(a,b,c){var d=function(b){a.call(this,b),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._dirty=!0},e=1e-10,f=b._internals,g=f.lazyTweens,h=f.lazyRender,i=_gsScope._gsDefine.globals,j=new c(null,null,1,0),k=d.prototype=new a;return k.constructor=d,k.kill()._gc=!1,d.version="1.20.3",k.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},k.addCallback=function(a,c,d,e){return this.add(b.delayedCall(0,a,d,e),
27c)},k.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else for(var c=this.getTweensOf(a,!1),d=c.length,e=this._parseTimeOrLabel(b);--d>-1;)c[d]._startTime===e&&c[d]._enabled(!1,!1);return this},k.removePause=function(b){return this.removeCallback(a._internals.pauseCallback,b)},k.tweenTo=function(a,c){c=c||{};var d,e,f,g={ease:j,useFrames:this.usesFrames(),immediateRender:!1},h=c.repeat&&i.TweenMax||b;for(e in c)g[e]=c[e];return g.time=this._parseTimeOrLabel(a),d=Math.abs(Number(g.time)-this._time)/this._timeScale||.001,f=new h(this,d,g),g.onStart=function(){f.target.paused(!0),f.vars.time!==f.target.time()&&d===f.duration()&&f.duration(Math.abs(f.vars.time-f.target.time())/f.target._timeScale),c.onStart&&c.onStart.apply(c.onStartScope||c.callbackScope||f,c.onStartParams||[])},f},k.tweenFromTo=function(a,b,c){c=c||{},a=this._parseTimeOrLabel(a),c.startAt={onComplete:this.seek,onCompleteParams:[a],callbackScope:this},c.immediateRender=c.immediateRender!==!1;var d=this.tweenTo(b,c);return d.duration(Math.abs(d.vars.time-a)/this._timeScale||.001)},k.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,i,j,k,l,m,n,o=this._time,p=this._dirty?this.totalDuration():this._totalDuration,q=this._duration,r=this._totalTime,s=this._startTime,t=this._timeScale,u=this._rawPrevTime,v=this._paused,w=this._cycle;if(o!==this._time&&(a+=this._time-o),a>=p-1e-7&&a>=0)this._locked||(this._totalTime=p,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(f=!0,j="onComplete",k=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||0>u||u===e)&&u!==a&&this._first&&(k=!0,u>e&&(j="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,this._yoyo&&0!==(1&this._cycle)?this._time=a=0:(this._time=q,a=q+1e-4);else if(1e-7>a)if(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==o||0===q&&u!==e&&(u>0||0>a&&u>=0)&&!this._locked)&&(j="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(k=f=!0,j="onReverseComplete"):u>=0&&this._first&&(k=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=q||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(k=!0)}else if(0===q&&0>u&&(k=!0),this._time=this._rawPrevTime=a,this._locked||(this._totalTime=a,0!==this._repeat&&(l=q+this._repeatDelay,this._cycle=this._totalTime/l>>0,0!==this._cycle&&this._cycle===this._totalTime/l&&a>=r&&this._cycle--,this._time=this._totalTime-this._cycle*l,this._yoyo&&0!==(1&this._cycle)&&(this._time=q-this._time),this._time>q?(this._time=q,a=q+1e-4):this._time<0?this._time=a=0:a=this._time)),this._hasPause&&!this._forcingPlayhead&&!b){if(a=this._time,a>=o||this._repeat&&w!==this._cycle)for(d=this._first;d&&d._startTime<=a&&!m;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(m=d),d=d._next;else for(d=this._last;d&&d._startTime>=a&&!m;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(m=d),d=d._prev;m&&m._startTime<q&&(this._time=a=m._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}if(this._cycle!==w&&!this._locked){var x=this._yoyo&&0!==(1&w),y=x===(this._yoyo&&0!==(1&this._cycle)),z=this._totalTime,A=this._cycle,B=this._rawPrevTime,C=this._time;if(this._totalTime=w*q,this._cycle<w?x=!x:this._totalTime+=q,this._time=o,this._rawPrevTime=0===q?u-1e-4:u,this._cycle=w,this._locked=!0,o=x?0:q,this.render(o,b,0===q),b||this._gc||this.vars.onRepeat&&(this._cycle=A,this._locked=!1,this._callback("onRepeat")),o!==this._time)return;if(y&&(this._cycle=w,this._locked=!0,o=x?q+1e-4:-1e-4,this.render(o,!0,!1)),this._locked=!1,this._paused&&!v)return;this._time=C,this._totalTime=z,this._cycle=A,this._rawPrevTime=B}if(!(this._time!==o&&this._first||c||k||m))return void(r!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==r&&a>0&&(this._active=!0),0===r&&this.vars.onStart&&(0===this._totalTime&&this._totalDuration||b||this._callback("onStart")),n=this._time,n>=o)for(d=this._first;d&&(i=d._next,n===this._time&&(!this._paused||v));)(d._active||d._startTime<=this._time&&!d._paused&&!d._gc)&&(m===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=i;else for(d=this._last;d&&(i=d._prev,n===this._time&&(!this._paused||v));){if(d._active||d._startTime<=o&&!d._paused&&!d._gc){if(m===d){for(m=d._prev;m&&m.endTime()>this._time;)m.render(m._reversed?m.totalDuration()-(a-m._startTime)*m._timeScale:(a-m._startTime)*m._timeScale,b,c),m=m._prev;m=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=i}
27this._onUpdate&&(b||(g.length&&h(),this._callback("onUpdate"))),j&&(this._locked||this._gc||(s===this._startTime||t!==this._timeScale)&&(0===this._time||p>=this.totalDuration())&&(f&&(g.length&&h(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[j]&&this._callback(j)))},k.getActive=function(a,b,c){null==a&&(a=!0),null==b&&(b=!0),null==c&&(c=!1);var d,e,f=[],g=this.getChildren(a,b,c),h=0,i=g.length;for(d=0;i>d;d++)e=g[d],e.isActive()&&(f[h++]=e);return f},k.getLabelAfter=function(a){a||0!==a&&(a=this._time);var b,c=this.getLabelsArray(),d=c.length;for(b=0;d>b;b++)if(c[b].time>a)return c[b].name;return null},k.getLabelBefore=function(a){null==a&&(a=this._time);for(var b=this.getLabelsArray(),c=b.length;--c>-1;)if(b[c].time<a)return b[c].name;return null},k.getLabelsArray=function(){var a,b=[],c=0;for(a in this._labels)b[c++]={time:this._labels[a],name:a};return b.sort(function(a,b){return a.time-b.time}),b},k.invalidate=function(){return this._locked=!1,a.prototype.invalidate.call(this)},k.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()||0},k.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()||0},k.totalDuration=function(b){return arguments.length?-1!==this._repeat&&b?this.timeScale(this.totalDuration()/b):this:(this._dirty&&(a.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},k.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},k.currentLabel=function(a){return arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+1e-8)},d},!0),function(){var a=180/Math.PI,b=[],c=[],d=[],e={},f=_gsScope._gsDefine.globals,g=function(a,b,c,d){c===d&&(c=d-(d-b)/1e6),a===b&&(b=a+(c-a)/1e6),this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},h=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",i=function(a,b,c,d){var e={a:a},f={},g={},h={c:d},i=(a+b)/2,j=(b+c)/2,k=(c+d)/2,l=(i+j)/2,m=(j+k)/2,n=(m-l)/8;return e.b=i+(a-i)/4,f.b=l+n,e.c=f.a=(e.b+f.b)/2,f.c=g.a=(l+m)/2,g.b=m-n,h.b=k+(d-k)/4,g.c=h.a=(g.b+h.b)/2,[e,f,g,h]},j=function(a,e,f,g,h){var j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.length-1,x=0,y=a[0].a;for(j=0;w>j;j++)n=a[x],k=n.a,l=n.d,m=a[x+1].d,h?(t=b[j],u=c[j],v=(u+t)*e*.25/(g?.5:d[j]||.5),o=l-(l-k)*(g?.5*e:0!==t?v/t:0),p=l+(m-l)*(g?.5*e:0!==u?v/u
27:0),q=l-(o+((p-o)*(3*t/(t+u)+.5)/4||0))):(o=l-(l-k)*e*.5,p=l+(m-l)*e*.5,q=l-(o+p)/2),o+=q,p+=q,n.c=r=o,0!==j?n.b=y:n.b=y=n.a+.6*(n.c-n.a),n.da=l-k,n.ca=r-k,n.ba=y-k,f?(s=i(k,y,r,l),a.splice(x,1,s[0],s[1],s[2],s[3]),x+=4):x++,y=p;n=a[x],n.b=y,n.c=y+.4*(n.d-y),n.da=n.d-n.a,n.ca=n.c-n.a,n.ba=y-n.a,f&&(s=i(n.a,y,n.c,n.d),a.splice(x,1,s[0],s[1],s[2],s[3]))},k=function(a,d,e,f){var h,i,j,k,l,m,n=[];if(f)for(a=[f].concat(a),i=a.length;--i>-1;)"string"==typeof(m=a[i][d])&&"="===m.charAt(1)&&(a[i][d]=f[d]+Number(m.charAt(0)+m.substr(2)));if(h=a.length-2,0>h)return n[0]=new g(a[0][d],0,0,a[0][d]),n;for(i=0;h>i;i++)j=a[i][d],k=a[i+1][d],n[i]=new g(j,0,0,k),e&&(l=a[i+2][d],b[i]=(b[i]||0)+(k-j)*(k-j),c[i]=(c[i]||0)+(l-k)*(l-k));return n[i]=new g(a[i][d],0,0,a[i+1][d]),n},l=function(a,f,g,i,l,m){var n,o,p,q,r,s,t,u,v={},w=[],x=m||a[0];l="string"==typeof l?","+l+",":h,null==f&&(f=1);for(o in a[0])w.push(o);if(a.length>1){for(u=a[a.length-1],t=!0,n=w.length;--n>-1;)if(o=w[n],Math.abs(x[o]-u[o])>.05){t=!1;break}t&&(a=a.concat(),m&&a.unshift(m),a.push(a[1]),m=a[a.length-3])}for(b.length=c.length=d.length=0,n=w.length;--n>-1;)o=w[n],e[o]=-1!==l.indexOf(","+o+","),v[o]=k(a,o,e[o],m);for(n=b.length;--n>-1;)b[n]=Math.sqrt(b[n]),c[n]=Math.sqrt(c[n]);if(!i){for(n=w.length;--n>-1;)if(e[o])for(p=v[w[n]],s=p.length-1,q=0;s>q;q++)r=p[q+1].da/c[q]+p[q].da/b[q]||0,
28d[q]=(d[q]||0)+r*r;for(n=d.length;--n>-1;)d[n]=Math.sqrt(d[n])}for(n=w.length,q=g?4:1;--n>-1;)o=w[n],p=v[o],j(p,f,g,i,e[o]),t&&(p.splice(0,q),p.splice(p.length-q,q));return v},m=function(a,b,c){b=b||"soft";var d,e,f,h,i,j,k,l,m,n,o,p={},q="cubic"===b?3:2,r="soft"===b,s=[];if(r&&c&&(a=[c].concat(a)),null==a||a.length<q+1)throw"invalid Bezier data";for(m in a[0])s.push(m);for(j=s.length;--j>-1;){for(m=s[j],p[m]=i=[],n=0,l=a.length,k=0;l>k;k++)d=null==c?a[k][m]:"string"==typeof(o=a[k][m])&&"="===o.charAt(1)?c[m]+Number(o.charAt(0)+o.substr(2)):Number(o),r&&k>1&&l-1>k&&(i[n++]=(d+i[n-2])/2),i[n++]=d;for(l=n-q+1,n=0,k=0;l>k;
28k+=q)d=i[k],e=i[k+1],f=i[k+2],h=2===q?0:i[k+3],i[n++]=o=3===q?new g(d,e,f,h):new g(d,(2*e+d)/3,(2*e+f)/3,f);i.length=n}return p},n=function(a,b,c){for(var d,e,f,g,h,i,j,k,l,m,n,o=1/c,p=a.length;--p>-1;)for(m=a[p],f=m.a,g=m.d-f,h=m.c-f,i=m.b-f,d=e=0,k=1;c>=k;k++)j=o*k,l=1-j,d=e-(e=(j*j*g+3*l*(j*h+l*i))*j),n=p*c+k-1,b[n]=(b[n]||0)+d*d},o=function(a,b){b=b>>0||6;var c,d,e,f,g=[],h=[],i=0,j=0,k=b-1,l=[],m=[];for(c in a)n(a[c],g,b);for(e=g.length,d=0;e>d;d++)i+=Math.sqrt(g[d]),f=d%b,m[f]=i,f===k&&(j+=i,f=d/b>>0,l[f]=m,h[f]=j,i=0,m=[]);return{length:j,lengths:h,segments:l}},p=_gsScope._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.8",API:2,global:!0,init:function(a,b,c){this._target=a,b instanceof Array&&(b={values:b}),this._func={},this._mod={},this._props=[],this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var d,e,f,g,h,i=b.values||[],j={},k=i[0],n=b.autoRotate||c.vars.orientToBezier;this._autoRotate=n?n instanceof Array?n:[["x","y","rotation",n===!0?0:Number(n)||0]]:null;for(d in k)this._props.push(d);for(f=this._props.length;--f>-1;)d=this._props[f],this._overwriteProps.push(d),e=this._func[d]="function"==typeof a[d],j[d]=e?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]():parseFloat(a[d]),h||j[d]!==i[0][d]&&(h=j);if(this._beziers="cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type?l(i,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,h):m(i,b.type,j),this._segCount=this._beziers[d].length,this._timeRes){var p=o(this._beziers,this._timeRes);this._length=p.length,this._lengths=p.lengths,this._segments=p.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(n=this._autoRotate)for(this._initialRotations=[],n[0]instanceof Array||(this._autoRotate=n=[n]),f=n.length;--f>-1;){for(g=0;3>g;g++)d=n[f][g],this._func[d]="function"==typeof a[d]?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]:!1;d=n[f][2],this._initialRotations[f]=(this._func[d]?this._func[d].call(this._target):this._target[d])||0,this._overwriteProps.push(d)}return this._startRatio=c.vars.runBackwards?1:0,!0},set:function(b){var c,d,e,f,g,h,i,j,k,l,m=this._segCount,n=this._func,o=this._target,p=b!==this._startRatio;if(this._timeRes){if(k=this._lengths,l=this._curSeg,b*=this._length,e=this._li,b>this._l2&&m-1>e){for(j=m-1;j>e&&(this._l2=k[++e])<=b;);this._l1=k[e-1],this._li=e,this._curSeg=l=this._segments[e],this._s2=l[this._s1=this._si=0]}else if(b<this._l1&&e>0){for(;e>0&&(this._l1=k[--e])>=b;);0===e&&b<this._l1?this._l1=0:e++,this._l2=k[e],this._li=e,this._curSeg=l=this._segments[e],this._s1=l[(this._si=l.length-1)-1]||0,this._s2=l[this._si]}if(c=e,b-=this._l1,e=this._si,b>this._s2&&e<l.length-1){for(j=l.length-1;j>e&&(this._s2=l[++e])<=b;);this._s1=l[e-1],this._si=e}else if(b<this._s1&&e>0){for(;e>0&&(this._s1=l[--e])>=b;);0===e&&b<this._s1?this._s1=0:e++,this._s2=l[e],this._si=e}h=(e+(b-this._s1)/(this._s2-this._s1))*this._prec||0}else c=0>b?0:b>=1?m-1:m*b>>0,h=(b-c*(1/m))*m;for(d=1-h,e=this._props.length;--e>-1;)f=this._props[e],g=this._beziers[f][c],i=(h*h*g.da+3*d*(h*g.ca+d*g.ba))*h+g.a,this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i;if(this._autoRotate){var q,r,s,t,u,v,w,x=this._autoRotate;for(e=x.length;--e>-1;)f=x[e][2],v=x[e][3]||0,w=x[e][4]===!0?1:a,g=this._beziers[x[e][0]],q=this._beziers[x[e][1]],g&&q&&(g=g[c],q=q[c],r=g.a+(g.b-g.a)*h,t=g.b+(g.c-g.b)*h,r+=(t-r)*h,t+=(g.c+(g.d-g.c)*h-t)*h,s=q.a+(q.b-q.a)*h,u=q.b+(q.c-q.b)*h,s+=(u-s)*h,u+=(q.c+(q.d-q.c)*h-u)*h,i=p?Math.atan2(u-s,t-r)*w+v:this._initialRotations[e],this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i)}}}),q=p.prototype;p.bezierThrough=l,p.cubicToQuadratic=i,p._autoCSS=!0,p.quadraticToCubic=function(a,b,c){return new g(a,(2*b+a)/3,(2*b+c)/3,c)},p._cssRegister=function(){var a=f.CSSPlugin;if(a){var b=a._internals,c=b._parseToProxy,d=b._setPluginRatio,e=b.CSSPropTween;b._registerComplexSpecialProp("bezier",{parser:function(a,b,f,g,h,i){b instanceof Array&&(b={values:b}),i=new p;var j,k,l,m=b.values,n=m.length-1,o=[],q={};if(0>n)return h;for(j=0;n>=j;j++)l=c(a,m[j],g,h,i,n!==j),o[j]=l.end;for(k in b)q[k]=b[k];return q.values=o,h=new e(a,"bezier",0,0,l.pt,2),h.data=l,h.plugin=i,h.setRatio=d,0===q.autoRotate&&(q.autoRotate=!0),!q.autoRotate||q.autoRotate instanceof Array||(j=q.autoRotate===!0?0:Number(q.autoRotate),q.autoRotate=null!=l.end.left?[["left","top","rotation",j,!1]]:null!=l.end.x?[["x","y","rotation",j,!1]]:!1),q.autoRotate&&(g._transform||g._enableTransforms(!1),l.autoRotate=g._target._gsTransform,l.proxy.rotation=l.autoRotate.rotation||0,g._overwriteProps.push("rotation")),i._onInitTween(l.proxy,q,g._tween),h}})}},q._mod=function(a){for(var b,c=this._overwriteProps,d=c.length;--d>-1;)b=a[c[d]],b&&"function"==typeof b&&(this._mod[c[d]]=b)},q._kill=function(a){var b,c,d=this._props;for(b in this._beziers)if(b in a)for(delete this._beziers[b],delete this._func[b],c=d.length;--c>-1;)d[c]===b&&d.splice(c,1);if(d=this._autoRotate)for(c=d.length;--c>-1;)a[d[c][2]]&&d.splice(c,1);return this._super._kill.call(this,a)}}(),_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="1.20.3",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\
28-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity *= *([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity *=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N={style:{}},O=_gsScope.document||{createElement:function(){return N}},P=function(a,b){return O.createElementNS?O.createElementNS(b||"http://www.w3.org/1999/xhtml",a):O.createElement(a)},Q=P("div"),R=P("img"),S=g._internals={_specialProps:i},T=(_gsScope.navigator||{}).userAgent||"",U=function(){var a=T.indexOf("Android"),b=P("a");return m=-1!==T.indexOf("Safari")&&-1===T.indexOf("Chrome")&&(-1===a||parseFloat(T.substr(a+8,2))>3),o=m&&parseFloat(T.substr(T.indexOf("Version/")+8,2))<6,n=-1!==T.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(T)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(T))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),V=function(a){return x.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},W=function(a){_gsScope.console&&console.log(a)},X="",Y="",Z=function(a,b){b=b||Q;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(Y=3===d?"ms":c[d],X="-"+Y.toLowerCase()+"-",Y+a):null},$=O.defaultView?O.defaultView.getComputedStyle:function(){},_=g.getStyle=function(a,b,c,d,e){var f;return U||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||$(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):V(a)},aa=S.convertToPixels=function(a,c,d,e,f){if("px"===e||!e&&"lineHeight"!==c)return d;if("auto"===e||!d)return 0;var h,i,j,k=F.test(c),l=a,m=Q.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"lineHeight"!==c||e)if("%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+_(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||O.body,-1!==_(l,"display").indexOf("flex")&&(m.position="absolute"),i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(Q),h=parseFloat(Q[k?"offsetWidth":"offsetHeight"]),l.removeChild(Q),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=aa(a,c,d,e,!0))}else i=$(a).lineHeight,a.style.lineHeight=d,h=parseFloat($(a).lineHeight),a.style.lineHeight=i;return o&&(h/=100),n?-h:h},ba=S.calculateOffset=function(a,b,c){if("absolute"!==_(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=_(a,"margin"+d,c);return a["offset"+d]-(aa(a,b,parseFloat(e),e.replace(w,""))||0)},ca=function(a,b){var c,d,e,f={};if(b=b||$(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Da===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Ca===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return U||(f.opacity=V(a)),d=Ra(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Fa&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},da=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(v,"")?f:0:ba(a,g),void 0!==j[g]&&(h=new sa(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},ea={width:["Left","Right"],height:["Top","Bottom"]},fa=["marginLeft","marginRight","marginTop","marginBottom"],ga=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||$(a))[b]||0;if(a.getCTM&&Oa(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=ea[b],f=e.length;for(c=c||$(a,null);--f>-1;)d-=parseFloat(_(a,"padding"+e[f],c,!0))||0,d-=parseFloat(_(a,"border"+e[f]+"Width",c,!0))||0;return d},ha=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ha(d[c]));return a.join(",")}return null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+" "+f+(d.length>2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ia=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ja=function(a,b){return"function"==typeof a&&(a=a(r,q)),null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ka=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},la={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ma=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},na=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),la[a])c=la[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(c[3])),c[0]=ma(g+1/3,d,e),c[1]=ma(g,d,e),c[2]=ma(g-1/3,d,e);else c=a.match(s)||la.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=la.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>
28e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},oa=function(a,b){var c,d,e,f=a.match(pa)||[],g=0,h="";if(!f.length)return a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=na(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return h+a.substr(g)},pa="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j in la)pa+="|"+j+"\\b";pa=new RegExp(pa+")","gi"),g.colorStringFilter=function(a){var b,c=a[0]+" "+a[1];pa.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=oa(a[0],b),a[1]=oa(a[1],b)),pa.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var qa=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(pa)||[""])[0]:"",g=a.split(f).join("").match(u)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(pa)||[f])[0],m=a.split(b).join("").match(u)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(f=a.replace(I,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(u)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return h+b.join(j)+i}:function(a){return a}},ra=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},sa=(S._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=Math.round(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod(h.rotation,this.t):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),ta=(S._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=M;for(c._transform=null,M=b,d=k=c.parse(a,b,d,e),M=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new sa(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new sa(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},S.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof ta||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ua=function(a,b,c,d,e,f){var g=new ta(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},va=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new ta(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&pa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(-1!==(d+c).indexOf("rgb")||-1!==(d+c).indexOf("hsl")?(D=D.join(" ").replace(I,", ").split(" "),E=E.join(" ").replace(I,", ").split(" ")):(D=D.join(" ").split(",").join(", ").split(" "),E=E.join(" ").split(",").join(", ").split(" ")),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,pa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m],x=parseFloat(p),x||0===x)h.appendXtra("",x,ia(u,x),u.replace(t,""),G&&-1!==u.indexOf("px"),!0);else if(e&&pa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&U,z=u,p=na(p,C),u=na(u,C),y=p.length+u.length>6,y&&!U&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(U||(y=!1),C?h.appendXtra(z.substr(0,z.indexOf("hsl"))+(y?"hsla(":"hsl("),p[0],ia(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ia(u[1],p[1]),"%,",!1).appendXtra("",p[2],ia(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(z.substr(0,z.indexOf("rgb"))+(y?"rgba(":"rgb("),p[0],u[0]-p[0],",",!0,!0).appendXtra("",p[1],u[1]-p[1],",",!0).appendXtra("",p[2],u[2]-p[2],y?",":B,!0),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),pa.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n<v.length;n++)A=v[n],z=p.indexOf(A,o),h.appendXtra(p.substr(o,z-o),Number(A),ia(w[n],A),"",G&&"px"===p.substr(z+A.length,2),0===n),o=z+A.length;h["xs"+h.l]+=p.substr(o)}else h["xs"+h.l]+=h.l||h["xs"+h.l]?" "+u:u;if(-1!==d.indexOf("=")&&h.data){for(B=h.xs0+h.data.s,m=1;m<h.l;m++)B+=h["xs"+m]+h.data["xn"+m];h.e=B+h["xs"+m]}return h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},wa=9;for(j=ta.prototype,j.l=j.pr=0;--wa>0;)j["xn"+wa]=0,j["xs"+wa]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2
28:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new ta(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var xa=function(a,b){b=b||{},this.p=b.prefix?Z(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||qa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},ya=S._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new xa(f[d],b)},za=S._registerPluginProp=function(a){if(!i[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";ya(a,{parser:function(a,c,d,e,f,g,j){var k=h.com.greensock.plugins[b];return k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(W("Error: "+b+" js file not loaded."),f)}})}};j=xa.prototype,j.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(I.test(c)||I.test(b)?(h=b.replace(I,"|").split("|"),i=c.replace(I,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return va(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(_(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){ya(a,{parser:function(a,d,e,f,g,h,i){var j=new ta(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=!0;var Aa,Ba="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ca=Z("transform"),Da=X+"transform",Ea=Z("transformOrigin"),Fa=null!==Z("perspective"),Ga=S.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Fa?g.defaultForce3D||"auto":!1},Ha=_gsScope.SVGElement,Ia=function(a,b,c){var d,e=O.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ja=O.documentElement||{},Ka=function(){var a,b,c,d=p||/Android/i.test(T)&&!_gsScope.chrome;return O.createElementNS&&!d&&(a=Ia("svg",Ja),b=Ia("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Ea]="50% 50%",b.style[Ca]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Fa),Ja.removeChild(a)),d}(),La=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Qa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),0===n.x&&0===n.y&&n.width+n.height===0&&(n={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=ha(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Pa&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,s&&(i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j)),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Ma=function(a){var b,c=P("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),d=this.parentNode,e=this.nextSibling,f=this.style.cssText;if(Ja.appendChild(c),c.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Ma}catch(g){}else this._originalGetBBox&&(b=this._originalGetBBox());return e?d.insertBefore(this,e):d.appendChild(this),Ja.removeChild(c),this.style.cssText=f,b},Na=function(a){try{return a.getBBox()}catch(b){return Ma.call(a,!0)}},Oa=function(a){return!(!Ha||!a.getCTM||a.parentNode&&!a.ownerSVGElement||!Na(a))},Pa=[1,0,0,1,0,0],Qa=function(a,b){var c,d,e,f,g,h,i=a._gsTransform||new Ga,j=1e5,k=a.style;if(Ca?d=_(a,Da,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,!Ca||!(h=!$(a)||"none"===$(a).display)&&a.parentNode||(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ja.appendChild(a)),d=_(a,Da,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?k.display=f:h&&Va(k,"display"),g&&Ja.removeChild(a)),(i.svg||a.getCTM&&Oa(a))&&(c&&-1!==(k[Ca]+"").indexOf("matrix")&&(d=k[Ca],c=0),e=a.getAttribute("transform"),c&&e&&(-1!==e.indexOf("matrix")?(d=e,c=0):-1!==e.indexOf("translate")&&(d="matrix(1,0,0,1,"+e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",c=0))),c)return Pa;for(e=(d||"").match(s)||[],wa=e.length;--wa>-1;)f=Number(e[wa]),e[wa]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Ra=S.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Ga:new Ga,n=m.scaleX<0,o=2e-5,p=1e5,q=Fa?parseFloat(_(a,Ea,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getCTM||!Oa(a)),m.svg&&(La(a,_(a,Ea,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),Aa=g.useSVGTransformAttr||Ka),f=Qa(a),f!==Pa){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(N),w=Math.sin(N),s=x*v+y*w,t=B*v+C*w,u=F*v+G*w,y=y*v-x*w,C=C*v-B*w,G=G*v-F*w,x=s,B=t,F=u),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),N=Math.atan2(B,C),m.scaleX=(Math.sqrt(x*x+y*y+z*z)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+D*D)*p+.5|0)/p,m.scaleZ=(Math.sqrt(F
28*F+G*G+H*H)*p+.5|0)/p,x/=m.scaleX,B/=m.scaleY,y/=m.scaleX,C/=m.scaleY,Math.abs(N)>o?(m.skewX=N*L,B=0,"simple"!==m.skewType&&(m.scaleY*=1/Math.cos(N))):m.skewX=0,m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Fa||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Fa&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180)),m.zOrigin=q;for(h in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(Aa&&a.style[Ca]?b.delayedCall(.001,function(){Va(a.style,Ca)}):!Aa&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Sa=function(a){var b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),wa=0;4>wa;wa++)z=fa[wa],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):aa(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>wa?-d.ieOffsetX:-d.ieOffsetY:2>wa?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===wa||2===wa?1:B)))+"px"}}},Ta=S.set3DTransformRatio=S.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D,O=z.skewY,P=z.skewX;if(O&&(P+=O,B+=O),((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||Aa&&L||!Fa)return void(B||P||L?(B*=K,x=P*K,y=1e5,c=Math.cos(B)*E,f=Math.sin(B)*E,d=Math.sin(B-x)*-F,g=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(b=Math.tan(x-O*K),b=Math.sqrt(1+b*b),d*=b,g*=b,O&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b)),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset,Aa&&(z.xPercent||z.yPercent)&&(q=this.t.getBBox(),H+=.01*z.xPercent*q.width,I+=.01*z.yPercent*q.height),q=1e-6,q>H&&H>-q&&(H=0),q>I&&I>-q&&(I=0)),u=(c*y|0)/y+","+(f*y|0)/y+","+(d*y|0)/y+","+(g*y|0)/y+","+H+","+I+")",L&&Aa?this.t.setAttribute("transform","matrix("+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(q=1e-4,q>E&&E>-q&&(E=G=2e-5),q>F&&F>-q&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||P)B*=K,r=c=Math.cos(B),s=f=Math.sin(B),P&&(B-=P*K,r=Math.cos(B),s=Math.sin(B),"simple"===z.skewType&&(b=Math.tan((P-O)*K),b=Math.sqrt(1+b*b),r*=b,s*=b,z.skewY&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b))),d=-s,g=r;else{if(!(D||C||1!==G||M||L))return void(A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));c=g=1,d=f=0}k=1,e=h=i=j=l=m=0,o=M?-1/M:0,p=z.zOrigin,q=1e-6,v=",",w="0",B=D*K,B&&(r=Math.cos(B),s=Math.sin(B),i=-s,l=o*-s,e=c*s,h=f*s,k=r,o*=r,c*=r,f*=r),B=C*K,B&&(r=Math.cos(B),s=Math.sin(B),b=d*r+e*s,t=g*r+h*s,j=k*s,m=o*s,e=d*-s+e*r,h=g*-s+h*r,k*=r,o*=r,d=b,g=t),1!==G&&(e*=G,h*=G,k*=G,o*=G),1!==F&&(d*=F,g*=F,j*=F,m*=F),1!==E&&(c*=E,f*=E,i*=E,l*=E),(p||L)&&(p&&(H+=e*-p,I+=h*-p,J+=k*-p+p),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset),q>H&&H>-q&&(H=w),q>I&&I>-q&&(I=w),q>J&&J>-q&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(q>c&&c>-q?w:c)+v+(q>f&&f>-q?w:f)+v+(q>i&&i>-q?w:i),u+=v+(q>l&&l>-q?w:l)+v+(q>d&&d>-q?w:d)+v+(q>g&&g>-q?w:g),C||D||1!==G?(u+=v+(q>j&&j>-q?w:j)+v+(q>m&&m>-q?w:m)+v+(q>e&&e>-q?w:e),u+=v+(q>h&&h>-q?w:h)+v+(q>k&&k>-q?w:k)+v+(q>o&&o>-q?w:o)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ca]=u};j=Ga.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,ya("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{
29parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j,k=i.scale&&"function"==typeof i.scale?i.scale:0;"function"==typeof i[c]&&(j=i[c],i[c]=b),k&&(i.scale=k(r,a));var l,m,n,o,p,s,t,u,v,w=a._gsTransform,x=a.style,y=1e-6,z=Ba.length,A=i,B={},C="transformOrigin",D=Ra(a,e,!0,A.parseTransform),E=A.transform&&("function"==typeof A.transform?A.transform(r,q):A.transform);if(D.skewType=A.skewType||D.skewType||g.defaultSkewType,d._transform=D,E&&"string"==typeof E&&Ca)m=Q.style,m[Ca]=E,m.display="block",m.position="absolute",O.body.appendChild(Q),l=Ra(Q,null,!1),"simple"===D.skewType&&(l.scaleY*=Math.cos(l.skewX*K)),D.svg&&(s=D.xOrigin,t=D.yOrigin,l.x-=D.xOffset,l.y-=D.yOffset,(A.transformOrigin||A.svgOrigin)&&(E={},La(a,ha(A.transformOrigin),E,A.svgOrigin,A.smoothOrigin,!0),s=E.xOrigin,t=E.yOrigin,l.x-=E.xOffset-D.xOffset,l.y-=E.yOffset-D.yOffset),(s||t)&&(u=Qa(Q,!0),l.x-=s-(s*u[0]+t*u[2]),l.y-=t-(s*u[1]+t*u[3]))),O.body.removeChild(Q),l.perspective||(l.perspective=D.perspective),null!=A.xPercent&&(l.xPercent=ja(A.xPercent,D.xPercent)),null!=A.yPercent&&(l.yPercent=ja(A.yPercent,D.yPercent));else if("object"==typeof A){if(l={scaleX:ja(null!=A.scaleX?A.scaleX:A.scale,D.scaleX),scaleY:ja(null!=A.scaleY?A.scaleY:A.scale,D.scaleY),scaleZ:ja(A.scaleZ,D.scaleZ),x:ja(A.x,D.x),y:ja(A.y,D.y),z:ja(A.z,D.z),xPercent:ja(A.xPercent,D.xPercent),yPercent:ja(A.yPercent,D.yPercent),perspective:ja(A.transformPerspective,D.perspective)},p=A.directionalRotation,null!=p)if("object"==typeof p)for(m in p)A[m]=p[m];else A.rotation=p;"string"==typeof A.x&&-1!==A.x.indexOf("%")&&(l.x=0,l.xPercent=ja(A.x,D.xPercent)),"string"==typeof A.y&&-1!==A.y.indexOf("%")&&(l.y=0,l.yPercent=ja(A.y,D.yPercent)),l.rotation=ka("rotation"in A?A.rotation:"shortRotation"in A?A.shortRotation+"_short":"rotationZ"in A?A.rotationZ:D.rotation,D.rotation,"rotation",B),Fa&&(l.rotationX=ka("rotationX"in A?A.rotationX:"shortRotationX"in A?A.shortRotationX+"_short":D.rotationX||0,D.rotationX,"rotationX",B),l.rotationY=ka("rotationY"
29in A?A.rotationY:"shortRotationY"in A?A.shortRotationY+"_short":D.rotationY||0,D.rotationY,"rotationY",B)),l.skewX=ka(A.skewX,D.skewX),l.skewY=ka(A.skewY,D.skewY)}for(Fa&&null!=A.force3D&&(D.force3D=A.force3D,o=!0),n=D.force3D||D.z||D.rotationX||D.rotationY||l.z||l.rotationX||l.rotationY||l.perspective,n||null==A.scale||(l.scaleZ=1);--z>-1;)v=Ba[z],E=l[v]-D[v],(E>y||-y>E||null!=A[v]||null!=M[v])&&(o=!0,f=new ta(D,v,D[v],E,f),v in B&&(f.e=B[v]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return E=A.transformOrigin,D.svg&&(E||A.svgOrigin)&&(s=D.xOffset,t=D.yOffset,La(a,ha(E),l,A.svgOrigin,A.smoothOrigin),f=ua(D,"xOrigin",(w?D:l).xOrigin,l.xOrigin,f,C),f=ua(D,"yOrigin",(w?D:l).yOrigin,l.yOrigin,f,C),(s!==D.xOffset||t!==D.yOffset)&&(f=ua(D,"xOffset",w?s:D.xOffset,D.xOffset,f,C),f=ua(D,"yOffset",w?t:D.yOffset,D.yOffset,f,C)),E="0px 0px"),(E||Fa&&n&&D.zOrigin)&&(Ca?(o=!0,v=Ea,E=(E||_(a,v,e,!1,"50% 50%"))+"",f=new ta(x,v,0,0,f,-1,C),f.b=x[v],f.plugin=h,Fa?(m=D.zOrigin,E=E.split(" "),D.zOrigin=(E.length>2&&(0===m||"0px"!==E[2])?parseFloat(E[2]):m)||0,f.xs0=f.e=E[0]+" "+(E[1]||"50%")+" 0px",f=new ta(D,"zOrigin",0,0,f,-1,f.n),f.b=m,f.xs0=f.e=D.zOrigin):f.xs0=f.e=E):ha(E+"",D)),o&&(d._transformType=D.svg&&Aa||!n&&3!==this._transformType?2:3),j&&(i[c]=j),k&&(i.scale=k),f},prefix:!0}),ya("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),ya("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=Z(y[j])),m=l=_(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=aa(a,"borderLeft",o,t),w=aa(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=aa(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=va(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:qa("0px 0px 0px 0px",!1,!0)}),ya("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return va(a.style,c,this.format(_(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:qa("0px 0px",!1,!0)}),ya("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||$(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=_(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),R.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-R.width:a.offsetHeight-R.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ha}),ya("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="",ha(-1===a.indexOf(" ")?a+" "+a:a)}}),ya("perspective",{defaultValue:"0px",prefix:!0}),ya("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),ya("transformStyle",{prefix:!0}),ya("backfaceVisibility",{prefix:!0}),ya("userSelect",{prefix:!0}),ya("margin",{parser:ra("marginTop,marginRight,marginBottom,marginLeft")}),ya("padding",{parser:ra("paddingTop,paddingRight,paddingBottom,paddingLeft")}),ya("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(_(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),ya("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),ya("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),ya("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=_(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/aa(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+_(a,"borderTopStyle",e,!1,"solid")+" "+_(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(pa)||["#000"])[0]}}),ya("borderWidth",{parser:ra("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),ya("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new ta(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Ua=function(a){var b,c=this.t,d=c.filter||_(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!_(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};ya("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(_(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===_(a,"visibility",e)&&0!==b&&(h=0),U?f=new ta(i,"opacity",h,b-h,f):(f=new ta(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Ua),j&&(f=new ta(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._over
29writeProps.push(c)),f}});var Va=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Wa=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Va(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};ya("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new ta(a,d,0,0,g,2),g.setRatio=Wa,g.pr=-11,c=!0,g.b=o,k=ca(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=da(a,k,ca(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Xa=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Ea:i[c].p),Va(g,c);e&&(Va(g,Ca),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(ya("clearProps",{parser:function(a,b,d,e,f){return f=new ta(a,d,0,0,f,2),f.setRatio=Xa,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),wa=j.length;wa--;)za(j[wa]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=$(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=_(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=ca(a,e),A.cssText=t+";"+b,n=da(a,n,ca(a)).difs,!U&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Ca?m&&(l=!0,""===A.zIndex&&(w=_(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new ta(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ca?Ta:Sa,x.data=this._transform||Ra(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b){if(n=b[g],"function"==typeof n&&(n=n(r,q)),h=i[g])c=h.parse(a,n,g,this,c,f,b);else{if("--"===g.substr(0,2)){this._tween._propLookup[g]=this._addTween.call(this._tween,a.style,"setProperty",$(a).getPropertyValue(g)+"",n+"",g,!1,g);continue}m=_(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=na(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=va(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=va(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=ga(a,g,e),o="px"):"left"===g||"top"===g?(j=ba(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&(""!==p||"lineHeight"===g)&&(l||0===l)&&j&&(j=aa(a,g,j,o),"%"===p?(j/=aa(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=aa(a,g,1,p):"px"!==p&&(l=aa(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new ta(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):W("invalid "+g+" tween value: "+b[g]):(c=new ta(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))}f&&c&&!c.plugin&&(c.plugin=f)}return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=Math.round(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Ra(this._target,e,!0),this._transformType=this._transform.svg&&Aa||!a&&3!==this._transformType?2:3};var Ya=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var d=this._firstPT=new ta(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Ya,d.data=this},j._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._mod=function(a){for(var b=this._firstPT;b;)"function"==typeof a[b.p]&&a[b.p]===Math.round&&(b.r=1),b=b._next},j._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}for(b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),c=this._firstPT;c;)c.plugin&&c.plugin!==d&&c.plugin._kill&&(c.plugin._kill(b),d=c.plugin),c=c._next;return a.prototype._kill.call(this,f)};var Za=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Za(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ca(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Za(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Za(a,k,m),i.render(c,!0,!0),Za(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=da(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0),function(){var a=_gsScope._gsDefine.plugin({propName:"roundProps",version:"1.6.0",priority:-1,API:2,init:function(a,b,c){return this._tween=c,!0}}),b=function(a){for(;a;)a.f||a.blob||(a.m=Math.round),a=a._next},c=a.prototype;c._onInitAllProps=function(){for(var a,c,d,e=this._tween,f=e.vars.roun
29dProps.join?e.vars.roundProps:e.vars.roundProps.split(","),g=f.length,h={},i=e._propLookup.roundProps;--g>-1;)h[f[g]]=Math.round;for(g=f.length;--g>-1;)for(a=f[g],c=e._firstPT;c;)d=c._next,c.pg?c.t._mod(h):c.n===a&&(2===c.f&&c.t?b(c.t._firstPT):(this._add(c.t,a,c.s,c.c),d&&(d._prev=c._prev),c._prev?c._prev._next=d:e._firstPT===c&&(e._firstPT=d),c._next=c._prev=null,e._propLookup[a]=i)),c=d;return!1},c._add=function(a,b,c,d){this._addTween(a,b,c,c+d,b,Math.round),this._overwriteProps.push(b)}}(),function(){_gsScope._gsDefine.plugin({propName:"attr",API:2,version:"0.6.1",init:function(a,b,c,d){var e,f;if("function"!=typeof a.setAttribute)return!1;for(e in b)f=b[e],"function"==typeof f&&(f=f(d,a)),this._addTween(a,"setAttribute",a.getAttribute(e)+"",f+"",e,!1,e),this._overwriteProps.push(e);return!0}})}(),_gsScope._gsDefine.plugin({propName:"directionalRotation",version:"0.3.1",API:2,init:function(a,b,c,d){"object"!=typeof b&&(b={rotation:b}),this.finals={};var e,f,g,h,i,j,k=b.useRadians===!0?2*Math.PI:360,l=1e-6;for(e in b)"useRadians"!==e&&(h=b[e],"function"==typeof h&&(h=h(d,a)),j=(h+"").split("_"),f=j[0],g=parseFloat("function"!=typeof a[e]?a[e]:a[e.indexOf("set")||"function"!=typeof a["get"+e.substr(3)]?e:"get"+e.substr(3)]()),h=this.finals[e]="string"==typeof f&&"="===f.charAt(1)?g+parseInt(f.charAt(0)+"1",10)*Number(f.substr(2)):Number(f)||0,i=h-g,j.length&&(f=j.join("_"),-1!==f.indexOf("short")&&(i%=k,i!==i%(k/2)&&(i=0>i?i+k:i-k)),-1!==f.indexOf("_cw")&&0>i?i=(i+9999999999*k)%k-(i/k|0)*k:-1!==f.indexOf("ccw")&&i>0&&(i=(i-9999999999*k)%k-(i/k|0)*k)),(i>l||-l>i)&&(this._addTween(a,e,g,g+i,e),this._overwriteProps.push(e)));return!0},set:function(a){var b;if(1!==a)this._super.setRatio.call(this,a);else for(b=this._firstPT;b;)b.f?b.t[b.p](this.finals[b.p]):b.t[b.p]=this.finals[b.p],b=b._next}})._autoCSS=!0,_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e=_gsScope.GreenSockGlobals||_gsScope,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var d=i("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new a;return q.constructor=p,q.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1===a?0:1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new p(.7,.7),q.config=p.config=function(a,b,c){return new p(a,b,c)},b=i("easing.SteppedEase",function(a,b){a=a||1,this._p1=1/a,this._p2=a+(b?0:1),this._p3=b?1:0},!0),q=b.prototype=new a,q.constructor=b,q.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),((this._p2*a|0)+this._p3)*this._p1},q.config=b.config=function(a,c){return new b(a,c)},c=i("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new a,q.constructor=c,q.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new c(a)},c.ease=new c,l("Bounce",j("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>
29a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var e=i("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/g*(Math.asin(1/this._p1)||0),this._p2=g/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a,b){"use strict";var c={},d=a.document,e=a.GreenSockGlobals=a.GreenSockGlobals||a;if(!e.TweenLite){var f,g,h,i,j,k=function(a){var b,c=a.split("."),d=e;for(b=0;b<c.length;b++)d[c[b]]=d=d[c[b]]||{};return d},l=k("com.greensock"),m=1e-10,n=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},o=function(){},p=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),q={},r=function(d,f,g,h){this.sc=q[d]?q[d].sc:[],q[d]=this,this.gsClass=null,this.func=g;var i=[];this.check=function(j){for(var l,m,n,o,p=f.length,s=p;--p>-1;)(l=q[f[p]]||new r(f[p],[])).gsClass?(i[p]=l.gsClass,s--):j&&l.sc.push(this);if(0===s&&g){if(m=("com.greensock."+d).split("."),n=m.pop(),o=k(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(e[n]=c[n]=o,"undefined"!=typeof module&&module.exports)if(d===b){module.exports=c[b]=o;for(p in c)o[p]=c[p]}else c[b]&&(c[b][n]=o);else"function"==typeof define&&define.amd&&define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+d.split(".").pop(),[],function(){return o});for(p=0;p<this.sc.length;p++)this.sc[p].check()}},this.check(!0)},s=a._gsDefine=function(a,b,c,d){return new r(a,b,c,d)},t=l._class=function(a,b,c){return b=b||function(){},s(a,[],function(){return b},c),b};s.globals=e;var u=[0,0,1,1],v=t("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?u.concat(b):u},!0),w=v.map={},x=v.register=function(a,b,c,d){for(var e,f,g,h,i=b.split(","),j=i.length,k=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?t("easing."+f,null,!0):l.easing[f]||{},g=k.length;--g>-1;)h=k[g],w[f+"."+h]=w[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(h=v.prototype,h._calcEnd=!1,h.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},f=["Linear","Quad","Cubic","Quart","Quint,Strong"],g=f.length;--g>-1;)h=f[g]+",Power"+g,x(new v(null,null,1,g),h,"easeOut",!0),x(new v(null,null,2,g),h,"easeIn"+(0===g?",easeNone":"")),x(new v(null,null,3,g),h,"easeInOut");w.linear=l.easing.Linear.easeIn,w.swing=l.easing.Quad.easeInOut;var y=t("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});h=y.prototype,h.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,h=this._listeners[a],k=0;for(this!==i||j||i.wake(),null==h&&(this._listeners[a]=h=[]),g=h.length;--g>-1;)f=h[g],f.c===b&&f.s===c?h.splice(g,1):0===k&&f.pr<e&&(k=g+1);h.splice(k,0,{c:b,s:c,up:d,pr:e})},h.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},h.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var z=a.requestAnimationFrame,A=a.cancelAnimationFrame,B=Date.now||function(){return(new Date).getTime()},C=B();
29for(f=["ms","moz","webkit","o"],g=f.length;--g>-1&&!z;)z=a[f[g]+"RequestAnimationFrame"],A=a[f[g]+"CancelAnimationFrame"]||a[f[g]+"CancelRequestAnimationFrame"];t("Ticker",function(a,b){var c,e,f,g,h,k=this,l=B(),n=b!==!1&&z?"auto":!1,p=500,q=33,r="tick",s=function(a){var b,d,i=B()-C;i>p&&(l+=i-q),C+=i,k.time=(C-l)/1e3,b=k.time-h,(!c||b>0||a===!0)&&(k.frame++,h+=b+(b>=g?.004:g-b),d=!0),a!==!0&&(f=e(s)),d&&k.dispatchEvent(r)};y.call(k),k.time=k.frame=0,k.tick=function(){s(!0)},k.lagSmoothing=function(a,b){return arguments.length?(p=a||1/m,void(q=Math.min(b,p,0))):1/m>p},k.sleep=function(){null!=f&&(n&&A?A(f):clearTimeout(f),e=o,f=null,k===i&&(j=!1))},k.wake=function(a){null!==f?k.sleep():a?l+=-C+(C=B()):k.frame>10&&(C=B()-p+5),e=0===c?o:n&&z?z:function(a){return setTimeout(a,1e3*(h-k.time)+1|0)},k===i&&(j=!0),s(2)},k.fps=function(a){return arguments.length?(c=a,g=1/(c||60),h=this.time+g,void k.wake()):c},k.useRAF=function(a){return arguments.length?(k.sleep(),n=a,void k.fps(c)):n},k.fps(a),setTimeout(function(){"auto"===n&&k.frame<5&&"hidden"!==d.visibilityState&&k.useRAF(!1)},1500)}),h=l.Ticker.prototype=new l.events.EventDispatcher,h.constructor=l.Ticker;var D=t("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,X){j||i.wake();var c=this.vars.useFrames?W:X;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});i=D.ticker=new l.Ticker,h=D.prototype,h._dirty=h._gc=h._initted=h._paused=!1,h._totalTime=h._time=0,h._rawPrevTime=-1,h._next=h._last=h._onUpdate=h._timeline=h.timeline=null,h._paused=!1;var E=function(){j&&B()-C>2e3&&("hidden"!==d.visibilityState||!i.lagSmoothing())&&i.wake();var a=setTimeout(E,2e3);a.unref&&a.unref()};E(),h.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},h.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},h.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},h.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},h.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},h.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},h.render=function(a,b,c){},h.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},h.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=c&&a<c+this.totalDuration()/this._timeScale-1e-7},h._enabled=function(a,b){return j||i.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},h._kill=function(a,b){return this._enabled(!1,!1)},h.kill=function(a,b){return this._kill(a,b),this},h._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},h._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},h._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},h.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=p(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},h.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},h.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},h.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},h.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},h.totalTime=function(a,b,c){if(j||i.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(J.length&&Z(),this.render(a,b,!1),J.length&&Z())}return this},h.progress=h.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},h.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},h.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale}
29,h.timeScale=function(a){if(!arguments.length)return this._timeScale;var b,c;for(a=a||m,this._timeline&&this._timeline.smoothChildTiming&&(b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime(),this._startTime=c-(c-this._startTime)*this._timeScale/a),this._timeScale=a,c=this.timeline;c&&c.timeline;)c._dirty=!0,c.totalDuration(),c=c.timeline;return this},h.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},h.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(j||a||i.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,
30this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var F=t("core.SimpleTimeline",function(a){D.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});h=F.prototype=new D,h.constructor=F,h.kill()._gc=!1,h._first=h._last=h._recent=null,h._sortChildren=!1,h.add=h.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},h._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},h.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused&&!e._gc)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},h.rawTime=function(){return j||i.wake(),this._totalTime};var G=t("TweenLite",function(b,c,d){if(D.call(this,c,d),this.render=G.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:G.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?V[G.defaultOverwrite]:"number"==typeof i?i>>0:V[i],(h||b instanceof Array||b.push&&p(b))&&"number"!=typeof b[0])for(this._targets=g=n(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(n(f))):(this._siblings[e]=$(f,this,!1),1===i&&this._siblings[e].length>1&&aa(f,this,null,1,this._siblings[e])):(f=g[e--]=G.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=$(b,this,!1),1===i&&this._siblings.length>1&&aa(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-m,this.render(Math.min(0,-this._delay)))},!0),H=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},I=function(a,b){var c,d={};for(c in a)U[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!R[c]||R[c]&&R[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};h=G.prototype=new D,h.constructor=G,h.kill()._gc=!1,h.ratio=0,h._firstPT=h._targets=h._overwrittenProps=h._startAt=null,h._notifyPluginsOfEnabled=h._lazy=!1,G.version="1.20.3",G.defaultEase=h._ease=new v(null,null,1,1),G.defaultOverwrite="auto",G.ticker=i,G.autoSleep=120,G.lagSmoothing=function(a,b){i.lagSmoothing(a,b)},G.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(G.selector=c,c(b)):"undefined"==typeof d?b:d.querySelectorAll?d.querySelectorAll(b):d.getElementById("#"===b.charAt(0)?b.substr(1):b)};var J=[],K={},L=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,M=/[\+-]=-?[\.\d]/,N=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?1===a&&null!=this.end?this.end:a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m(b,this._target||c.t):d>b&&b>-d&&!c.blob&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},O=function(a,b,c,d){var e,f,g,h,i,j,k,l=[],m=0,n="",o=0;for(l.start=a,l.end=b,a=l[0]=a+"",b=l[1]=b+"",c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(L)||[],f=b.match(L)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:0}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=N,M.test(b)&&(l.end=null),l},P=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k=typeof a[b],l="function"!==k?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),m="get"!==c?c:l?g?a[l](g):a[l]():a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:m,f:"function"===k,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-m||0};return("number"!=typeof m||"number"!=typeof d&&!n)&&(g||isNaN(m)||!n&&isNaN(d)||"boolean"==typeof m||"boolean"==typeof d?(o.fp=g,j=O(m,n?parseFloat(o.s)+o.c:d,h||G.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):(o.s=parseFloat(m),n||(o.c=parseFloat(d)-o.s||0))),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},Q=G._internals={isArray:p,isSelector:H,lazyTweens:J,blobDif:O},R=G._plugins={},S=Q.tweenLookup={},T=0,U=Q.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1,yoyoEase:1},V={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},W=D._rootFramesTimeline=new F,X=D._rootTimeline=new F,Y=30,Z=Q.lazyRender=function(){var a,b=J.length;for(K={};--b>-1;)a=J[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);J.length=0};X._startTime=i.time,W._startTime=i.frame,X._active=W._active=!0,setTimeout(Z,1),D._updateRoot=G.render=function(){var a,b,c;if(J.length&&Z(),X.render((i.time-X._startTime)*X._timeScale,!1,!1),W.render((i.frame-W._startTime)*W._timeScale,!1,!1),J.length&&Z(),i.frame>=Y){Y=i.frame+(parseInt(G.autoSleep,10)||120);for(c in S){for(b=S[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete S[c]}if(c=X._first,(!c||c._paused)&&G.autoSleep&&!W._first&&1===i._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||i.sleep()}}},i.addEventListener("tick",D._updateRoot);var $=function(a,b,c){var d,e,f=a._gsTweenID;if(S[f||(a._gsTweenID=f="t"+T++)]||(S[f]={target:a,tweens:[]}),b&&(d=S[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return S[f].tweens},_=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=G.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},aa=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+m,l=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||ba(b,0,o),0===ba(h,j,o)&&(l[n++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(l[n++]=h)));for(f=n;--f>-1;)if(h=l[f],2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted){if(2!==d&&!_(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},ba=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*m>f-b?m:(f+=a.totalDuration()/a._timeScale/e)>b+m?0:f-b-m};h._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease;if(g.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.data="isStart",e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,e.onUpdate=g.onUpdate,e.onUpdateParams=g.onUpdateParams,e.onUpdateScope=g.onUpdateScope||g.callbackScope||this,this._startAt=G.to(this.target,0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)U[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=G.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof v?k:"function"==typeof k?new v(k,g.easeParams):w[k]||G.defaultEase:G.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&G._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0}
30,h._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;K[b._gsTweenID]&&Z(),this.vars.css||b.style&&b!==a&&b.nodeType&&R.css&&this.vars.autoCSS!==!1&&I(this.vars,b);for(g in this.vars)if(l=this.vars[g],U[g])l&&(l instanceof Array||l.push&&p(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(R[g]&&(j=new R[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=P.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&aa(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(K[b._gsTweenID]=!0),i)},h.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7&&a>=0)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===m&&"isPause"!==this.data)&&j!==a&&(c=!0,j>m&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:m);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==m||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:m)),(!this._initted||this._startAt&&this._startAt.progress())&&(c=!0);else if(this._totalTime=this._time=a,this._easeType){var k=a/i,l=this._easeType,n=this._easePower;(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===n?k*=k:2===n?k*=k*k:3===n?k*=k*k*k:4===n&&(k*=k*k*k*k),1===l?this.ratio=1-k:2===l?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=j,J.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,!0,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,!0,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,!0,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===m&&g!==m&&(this._rawPrevTime=0))}},h._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:G.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline;if((p(b)||H(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}
30if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(G.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!_(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return i},h.invalidate=function(){return this._notifyPluginsOfEnabled&&G._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],D.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-m,this.render(Math.min(0,-this._delay))),this},h._enabled=function(a,b){if(j||i.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=$(d[c],this,!0);else this._siblings=$(this.target,this,!0)}return D.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?G._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},G.to=function(a,b,c){return new G(a,b,c)},G.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new G(a,b,c)},G.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new G(a,b,d)},G.delayedCall=function(a,b,c,d,e){return new G(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},G.set=function(a,b){return new G(a,0,b)},G.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:G.selector(a)||a;var c,d,e,f;if((p(a)||H(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(G.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else if(a._gsTweenID)for(d=$(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d||[]},G.killTweensOf=G.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=G.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var ca=t("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=ca.prototype},!0);if(h=ca.prototype,ca.version="1.19.0",ca.API=2,h._firstPT=null,h._addTween=P,h.setRatio=N,h._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},h._mod=h._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},G._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},ca.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===ca.API&&(R[(new a[b])._propName]=a[b]);return!0},s.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=t("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){ca.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new ca(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,ca.activate([g]),g},f=a._gsQueue){for(g=0;g<f.length;g++)f[g]();for(h in q)q[h].func||a.console.log("GSAP encountered missing dependency: "+h)}j=!1}}("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TweenMax");;/*!
31  * Bootstrap v4.1.3 (https://getbootstrap.com/)
32  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
33  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
34  */
35!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,h){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(r){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},e=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=o[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,h=h&&h.hasOwnProperty("default")?h.default:h;var r,n,o,a,c,u,f,d,g,_,m,p,v,y,E,C,T,b,S,I,A,D,w,N,O,k,P,j,H,L,R,x,W,U,q,F,K,M,Q,B,V,Y,z,J,Z,G,$,X,tt,et,nt,it,rt,ot,st,at,lt,ct,ht,ut,ft,dt,gt,_t,mt,pt,vt,yt,
35Et,Ct,Tt,bt,St,It,At,Dt,wt,Nt,Ot,kt,Pt,jt,Ht,Lt,Rt,xt,Wt,Ut,qt,Ft,Kt,Mt,Qt,Bt,Vt,Yt,zt,Jt,Zt,Gt,$t,Xt,te,ee,ne,ie,re,oe,se,ae,le,ce,he,ue,fe,de,ge,_e,me,pe,ve,ye,Ee,Ce,Te,be,Se,Ie,Ae,De,we,Ne,Oe,ke,Pe,je,He,Le,Re,xe,We,Ue,qe,Fe,Ke,Me,Qe,Be,Ve,Ye,ze,Je,Ze,Ge,$e,Xe,tn,en,nn,rn,on,sn,an,ln,cn,hn,un,fn,dn,gn,_n,mn,pn,vn,yn,En,Cn,Tn,bn,Sn,In,An,Dn,wn,Nn,On,kn,Pn,jn,Hn,Ln,Rn,xn,Wn,Un,qn,Fn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=e[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),Kn=(n="alert",a="."+(o="bs.alert"),c=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",g="show",_=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,o),this._element=null},t._getRootElement=function(t){var e=Fn.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(g),r(e).hasClass(d)){var t=Fn.getTransitionDurationFromElement(e);r(e).one(Fn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(o);e||(e=new i(this),t.data(o,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',_._handleDismiss(new _)),r.fn[n]=_._jQueryInterface,r.fn[n].Constructor=_,r.fn[n].noConflict=function(){return r.fn[n]=c,_._jQueryInterface},_),Mn=(p="button",y="."+(v="bs.button"),E=".data-api",C=(m=e).fn[p],T="active",b="btn",I='[data-toggle^="button"]',A='[data-toggle="buttons"]',D="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+y+E,FOCUS_BLUR_DATA_API:(S="focus")+y+E+" blur"+y+E},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(A)[0];if(n){var i=this._element.querySelector(D);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(T))t=!1;else{var r=n.querySelector(w);r&&m(r).removeClass(T)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(T),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(T)),t&&m(this._element).toggleClass(T)}
35,t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),n}(),m(document).on(O.CLICK_DATA_API,I,function(t){t.preventDefault();var e=t.target;m(e).hasClass(b)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,I,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(S,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=C,k._jQueryInterface},k),Qn=(j="carousel",L="."+(H="bs.carousel"),R=".data-api",x=(P=e).fn[j],W={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},q="next",F="prev",K="left",M="right",Q={SLIDE:"slide"+L,SLID:"slid"+L,KEYDOWN:"keydown"+L,MOUSEENTER:"mouseenter"+L,MOUSELEAVE:"mouseleave"+L,TOUCHEND:"touchend"+L,LOAD_DATA_API:"load"+L+R,CLICK_DATA_API:"click"+L+R},B="carousel",V="active",Y="slide",z="carousel-item-right",J="carousel-item-left",Z="carousel-item-next",G="carousel-item-prev",$=".active",X=".active.carousel-item",tt=".carousel-item",et=".carousel-item-next, .carousel-item-prev",nt=".carousel-indicators",it="[data-slide], [data-slide-to]",rt='[data-ride="carousel"]',ot=function(){function o(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=this._element.querySelector(nt),this._addEventListeners()}var t=o.prototype;return t.next=function(){this._isSliding||this._slide(q)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(F)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(et)&&(Fn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(X);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?q:F;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(L),P.removeData(this._element,H),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},W,t),Fn.typeCheckConfig(j,t,U),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(tt)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===q,i=t===F,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===F?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(X)),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll($));P(e).removeClass(V);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&P(n).addClass(V)}},t._slide=function(t,e){var n,i,r,o=this,s=this._element.querySelector(X),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(t===q?(n=J,i=Z,r=K):(n=z,i=G,r=M),l&&P(l).hasClass(V))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(P(this._element).hasClass(Y)){P(l).addClass(i),Fn.reflow(l),P(s).addClass(n),P(l).addClass(n);var f=Fn.getTransitionDurationFromElement(s);P(s).one(Fn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(V),P(s).removeClass(V+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return P(o._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(s).removeClass(V),P(l).addClass(V),this._isSliding=!1,P(this._element).trigger(u);h&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(H),e=l({},W,P(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new o(this,e),P(this).data(H,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method n
35amed "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},o._dataApiClickHandler=function(t){var e=Fn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=l({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(P(n),i),r&&P(n).data(H).to(r),t.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return W}}]),o}(),P(document).on(Q.CLICK_DATA_API,it,ot._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(rt)),e=0,n=t.length;e<n;e++){var i=P(t[e]);ot._jQueryInterface.call(i,i.data())}}),P.fn[j]=ot._jQueryInterface,P.fn[j].Constructor=ot,P.fn[j].noConflict=function(){return P.fn[j]=x,ot._jQueryInterface},ot),Bn=(at="collapse",ct="."+(lt="bs.collapse"),ht=(st=e).fn[at],ut={toggle:!0,parent:""},ft={toggle:"boolean",parent:"(string|element)"},dt={SHOW:"show"+ct,SHOWN:"shown"+ct,HIDE:"hide"+ct,HIDDEN:"hidden"+ct,CLICK_DATA_API:"click"+ct+".data-api"},gt="show",_t="collapse",mt="collapsing",pt="collapsed",vt="width",yt="height",Et=".show, .collapsing",Ct='[data-toggle="collapse"]',Tt=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=st.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(Ct)),i=0,r=n.length;i<r;i++){var o=n[i],s=Fn.getSelectorFromElement(o),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){st(this._element).hasClass(gt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!st(this._element).hasClass(gt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(Et)).filter(function(t){return t.getAttribute("data-parent")===n._config.parent})).length&&(t=null),!(t&&(e=st(t).not(this._selector).data(lt))&&e._isTransitioning))){var i=st.Event(dt.SHOW);if(st(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(st(t).not(this._selector),"hide"),e||st(t).data(lt,null));var r=this._getDimension();st(this._element).removeClass(_t).addClass(mt),this._element.style[r]=0,this._triggerArray.length&&st(this._triggerArray).removeClass(pt).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=Fn.getTransitionDurationFromElement(this._element);st(this._element).one(Fn.TRANSITION_END,function(){st(n._element).removeClass(mt).addClass(_t).addClass(gt),n._element.style[r]="",n.setTransitioning(!1),st(n._element).trigger(dt.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&st(this._element).hasClass(gt)){var e=st.Event(dt.HIDE);if(st(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Fn.reflow(this._element),st(this._element).addClass(mt).removeClass(_t).removeClass(gt);var i=this._triggerArray.length;if(0<i)for(var r=0;r<i;r++){var o=this._triggerArray[r],s=Fn.getSelectorFromElement(o);if(null!==s)st([].slice.call(document.querySelectorAll(s))).hasClass(gt)||st(o).addClass(pt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=Fn.getTransitionDurationFromElement(this._element);st(this._element).one(Fn.TRANSITION_END,function(){t.setTransitioning(!1),st(t._element).removeClass(mt).addClass(_t).trigger(dt.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){st.removeData(this._element,lt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},ut,t)).toggle=Boolean(t.toggle),Fn.typeCheckConfig(at,t,ft),t},t._getDimension=function(){return st(this._element).hasClass(vt)?vt:yt},t._getParent=function(){var n=this,t=null;Fn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return st(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=st(t).hasClass(gt);e.length&&st(e).toggleClass(pt,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Fn.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=st(this),e=t.data(lt),n=l({},ut,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(lt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method n
35amed "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ut}}]),a}(),st(document).on(dt.CLICK_DATA_API,Ct,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=st(this),e=Fn.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));st(i).each(function(){var t=st(this),e=t.data(lt)?"toggle":n.data();Tt._jQueryInterface.call(t,e)})}),st.fn[at]=Tt._jQueryInterface,st.fn[at].Constructor=Tt,st.fn[at].noConflict=function(){return st.fn[at]=ht,Tt._jQueryInterface},Tt),Vn=(St="dropdown",At="."+(It="bs.dropdown"),Dt=".data-api",wt=(bt=e).fn[St],Nt=new RegExp("38|40|27"),Ot={HIDE:"hide"+At,HIDDEN:"hidden"+At,SHOW:"show"+At,SHOWN:"shown"+At,CLICK:"click"+At,CLICK_DATA_API:"click"+At+Dt,KEYDOWN_DATA_API:"keydown"+At+Dt,KEYUP_DATA_API:"keyup"+At+Dt},kt="disabled",Pt="show",jt="dropup",Ht="dropright",Lt="dropleft",Rt="dropdown-menu-right",xt="position-static",Wt='[data-toggle="dropdown"]',Ut=".dropdown form",qt=".dropdown-menu",Ft=".navbar-nav",Kt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Mt="top-start",Qt="top-end",Bt="bottom-start",Vt="bottom-end",Yt="right-start",zt="left-start",Jt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Zt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Gt=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!bt(this._element).hasClass(kt)){var t=c._getParentFromElement(this._element),e=bt(this._menu).hasClass(Pt);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=bt.Event(Ot.SHOW,n);if(bt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof h)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Fn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&bt(t).addClass(xt),this._popper=new h(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===bt(t).closest(Ft).length&&bt(document.body).children().on("mouseover",null,bt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),bt(this._menu).toggleClass(Pt),bt(t).toggleClass(Pt).trigger(bt.Event(Ot.SHOWN,n))}}}},t.dispose=function(){bt.removeData(this._element,It),bt(this._element).off(At),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;bt(this._element).on(Ot.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,bt(this._element).data(),t),Fn.typeCheckConfig(St,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(qt))}return this._menu},t._getPlacement=function(){var t=bt(this._element.parentNode),e=Bt;return t.hasClass(jt)?(e=Mt,bt(this._menu).hasClass(Rt)&&(e=Qt)):t.hasClass(Ht)?e=Yt:t.hasClass(Lt)?e=zt:bt(this._menu).hasClass(Rt)&&(e=Vt),e},t._detectNavbar=function(){return 0<bt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},c._jQueryInterface=function(e){return this.each(function(){var t=bt(this).data(It);if(t||(t=new c(this,"object"==typeof e?e:null),bt(this).data(It,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method n
35amed "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(Wt)),n=0,i=e.length;n<i;n++){var r=c._getParentFromElement(e[n]),o=bt(e[n]).data(It),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),o){var a=o._menu;if(bt(r).hasClass(Pt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&bt.contains(r,t.target))){var l=bt.Event(Ot.HIDE,s);bt(r).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&bt(document.body).children().off("mouseover",null,bt.noop),e[n].setAttribute("aria-expanded","false"),bt(a).removeClass(Pt),bt(r).removeClass(Pt).trigger(bt.Event(Ot.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=Fn.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||bt(t.target).closest(qt).length)):Nt.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!bt(this).hasClass(kt))){var e=c._getParentFromElement(this),n=bt(e).hasClass(Pt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(Kt));if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var o=e.querySelector(Wt);bt(o).trigger("focus")}bt(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Jt}},{key:"DefaultType",get:function(){return Zt}}]),c}(),bt(document).on(Ot.KEYDOWN_DATA_API,Wt,Gt._dataApiKeydownHandler).on(Ot.KEYDOWN_DATA_API,qt,Gt._dataApiKeydownHandler).on(Ot.CLICK_DATA_API+" "+Ot.KEYUP_DATA_API,Gt._clearMenus).on(Ot.CLICK_DATA_API,Wt,function(t){t.preventDefault(),t.stopPropagation(),Gt._jQueryInterface.call(bt(this),"toggle")}).on(Ot.CLICK_DATA_API,Ut,function(t){t.stopPropagation()}),bt.fn[St]=Gt._jQueryInterface,bt.fn[St].Constructor=Gt,bt.fn[St].noConflict=function(){return bt.fn[St]=wt,Gt._jQueryInterface},Gt),Yn=(Xt="modal",ee="."+(te="bs.modal"),ne=($t=e).fn[Xt],ie={backdrop:!0,keyboard:!0,focus:!0,show:!0},re={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},oe={HIDE:"hide"+ee,HIDDEN:"hidden"+ee,SHOW:"show"+ee,SHOWN:"shown"+ee,FOCUSIN:"focusin"+ee,RESIZE:"resize"+ee,CLICK_DISMISS:"click.dismiss"+ee,KEYDOWN_DISMISS:"keydown.dismiss"+ee,MOUSEUP_DISMISS:"mouseup.dismiss"+ee,MOUSEDOWN_DISMISS:"mousedown.dismiss"+ee,CLICK_DATA_API:"click"+ee+".data-api"},se="modal-scrollbar-measure",ae="modal-backdrop",le="modal-open",ce="fade",he="show",ue=".modal-dialog",fe='[data-toggle="modal"]',de='[data-dismiss="modal"]',ge=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",_e=".sticky-top",me=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(ue),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){$t(this._element).hasClass(ce)&&(this._isTransitioning=!0);var n=$t.Event(oe.SHOW,{relatedTarget:t});$t(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),$t(document.body).addClass(le),this._setEscapeEvent(),this._setResizeEvent(),$t(this._element).on(oe.CLICK_DISMISS,de,function(t){return e.hide(t)}),$t(this._dialog).on(oe.MOUSEDOWN_DISMISS,function(){$t(e._element).one(oe.MOUSEUP_DISMISS,function(t){$t(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=$t.Event(oe.HIDE);if($t(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=$t(this._element).hasClass(ce);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),$t(document).off(oe.FOCUSIN),$t(this._element).removeClass(he),$t(this._element).off(oe.CLICK_DISMISS),$t(this._dialog).off(oe.MOUSEDOWN_DISMISS),i){var r=Fn.getTransitionDurationFromElement(this._element);$t(this._element).one(Fn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){$t.removeData(this._element,te),$t(window,document,this._element,this._backdrop).off(ee),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({}
35,ie,t),Fn.typeCheckConfig(Xt,t,re),t},t._showElement=function(t){var e=this,n=$t(this._element).hasClass(ce);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Fn.reflow(this._element),$t(this._element).addClass(he),this._config.focus&&this._enforceFocus();var i=$t.Event(oe.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,$t(e._element).trigger(i)};if(n){var o=Fn.getTransitionDurationFromElement(this._element);$t(this._dialog).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},t._enforceFocus=function(){var e=this;$t(document).off(oe.FOCUSIN).on(oe.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===$t(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?$t(this._element).on(oe.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||$t(this._element).off(oe.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?$t(window).on(oe.RESIZE,function(t){return e.handleUpdate(t)}):$t(window).off(oe.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){$t(document.body).removeClass(le),t._resetAdjustments(),t._resetScrollbar(),$t(t._element).trigger(oe.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&($t(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=$t(this._element).hasClass(ce)?ce:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ae,n&&this._backdrop.classList.add(n),$t(this._backdrop).appendTo(document.body),$t(this._element).on(oe.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Fn.reflow(this._backdrop),$t(this._backdrop).addClass(he),!t)return;if(!n)return void t();var i=Fn.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(Fn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){$t(this._backdrop).removeClass(he);var r=function(){e._removeBackdrop(),t&&t()};if($t(this._element).hasClass(ce)){var o=Fn.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(ge)),e=[].slice.call(document.querySelectorAll(_e));$t(t).each(function(t,e){var n=e.style.paddingRight,i=$t(e).css("padding-right");$t(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),$t(e).each(function(t,e){var n=e.style.marginRight,i=$t(e).css("margin-right");$t(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=$t(document.body).css("padding-right");$t(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(ge));$t(t).each(function(t,e){var n=$t(e).data("padding-right");$t(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+_e));$t(e).each(function(t,e){var n=$t(e).data("margin-right");"undefined"!=typeof n&&$t(e).css("margin-right",n).removeData("margin-right")});var n=$t(document.body).data("padding-right");$t(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=se,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=$t(this).data(te),e=l({},ie,$t(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new r(this,e),$t(this).data(te,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method n
35amed "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ie}}]),r}(),$t(document).on(oe.CLICK_DATA_API,fe,function(t){var e,n=this,i=Fn.getSelectorFromElement(this);i&&(e=document.querySelector(i));var r=$t(e).data(te)?"toggle":l({},$t(e).data(),$t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var o=$t(e).one(oe.SHOW,function(t){t.isDefaultPrevented()||o.one(oe.HIDDEN,function(){$t(n).is(":visible")&&n.focus()})});me._jQueryInterface.call($t(e),r,this)}),$t.fn[Xt]=me._jQueryInterface,$t.fn[Xt].Constructor=me,$t.fn[Xt].noConflict=function(){return $t.fn[Xt]=ne,me._jQueryInterface},me),zn=(ve="tooltip",Ee="."+(ye="bs.tooltip"),Ce=(pe=e).fn[ve],Te="bs-tooltip",be=new RegExp("(^|\\s)"+Te+"\\S+","g"),Ae={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(Ie={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Se={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},we="out",Ne={HIDE:"hide"+Ee,HIDDEN:"hidden"+Ee,SHOW:(De="show")+Ee,SHOWN:"shown"+Ee,INSERTED:"inserted"+Ee,CLICK:"click"+Ee,FOCUSIN:"focusin"+Ee,FOCUSOUT:"focusout"+Ee,MOUSEENTER:"mouseenter"+Ee,MOUSELEAVE:"mouseleave"+Ee},Oe="fade",ke="show",Pe=".tooltip-inner",je=".arrow",He="hover",Le="focus",Re="click",xe="manual",We=function(){function i(t,e){if("undefined"==typeof h)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=pe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(pe(this.getTipElement()).hasClass(ke))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),pe.removeData(this.element,this.constructor.DATA_KEY),pe(this.element).off(this.constructor.EVENT_KEY),pe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&pe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===pe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=pe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){pe(this.element).trigger(t);var n=pe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Fn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&pe(i).addClass(Oe);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:pe(document).find(this.config.container);pe(i).data(this.constructor.DATA_KEY,this),pe.contains(this.element.ownerDocument.documentElement,this.tip)||pe(i).appendTo(a),pe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new h(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:je}
35,preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),pe(i).addClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().on("mouseover",null,pe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,pe(e.element).trigger(e.constructor.Event.SHOWN),t===we&&e._leave(null,e)};if(pe(this.tip).hasClass(Oe)){var c=Fn.getTransitionDurationFromElement(this.tip);pe(this.tip).one(Fn.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=pe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==De&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),pe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(pe(this.element).trigger(i),!i.isDefaultPrevented()){if(pe(n).removeClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().off("mouseover",null,pe.noop),this._activeTrigger[Re]=!1,this._activeTrigger[Le]=!1,this._activeTrigger[He]=!1,pe(this.tip).hasClass(Oe)){var o=Fn.getTransitionDurationFromElement(n);pe(n).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){pe(this.getTipElement()).addClass(Te+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||pe(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(pe(t.querySelectorAll(Pe)),this.getTitle()),pe(t).removeClass(Oe+" "+ke)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?pe(e).parent().is(t)||t.empty().append(e):t.text(pe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return Ie[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)pe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==xe){var e=t===He?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===He?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;pe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}pe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Le:He]=!0),pe(e.getTipElement()).hasClass(ke)||e._hoverState===De?e._hoverState=De:(clearTimeout(e._timeout),e._hoverState=De,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===De&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Le:He]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=we,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===we&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=l({},this.constructor.Default,pe(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Fn.typeCheckConfig(ve,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=pe(this.getTipElement()),e=t.attr("class").match(be);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(pe(t).removeClass(Oe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=pe(this).data(ye),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),pe(this).data(ye,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method n
35amed "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Ae}},{key:"NAME",get:function(){return ve}},{key:"DATA_KEY",get:function(){return ye}},{key:"Event",get:function(){return Ne}},{key:"EVENT_KEY",get:function(){return Ee}},{key:"DefaultType",get:function(){return Se}}]),i}(),pe.fn[ve]=We._jQueryInterface,pe.fn[ve].Constructor=We,pe.fn[ve].noConflict=function(){return pe.fn[ve]=Ce,We._jQueryInterface},We),Jn=(qe="popover",Ke="."+(Fe="bs.popover"),Me=(Ue=e).fn[qe],Qe="bs-popover",Be=new RegExp("(^|\\s)"+Qe+"\\S+","g"),Ve=l({},zn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Ye=l({},zn.DefaultType,{content:"(string|element|function)"}),ze="fade",Ze=".popover-header",Ge=".popover-body",$e={HIDE:"hide"+Ke,HIDDEN:"hidden"+Ke,SHOW:(Je="show")+Ke,SHOWN:"shown"+Ke,INSERTED:"inserted"+Ke,CLICK:"click"+Ke,FOCUSIN:"focusin"+Ke,FOCUSOUT:"focusout"+Ke,MOUSEENTER:"mouseenter"+Ke,MOUSELEAVE:"mouseleave"+Ke},Xe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){Ue(this.getTipElement()).addClass(Qe+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||Ue(this.config.template)[0],this.tip},r.setContent=function(){var t=Ue(this.getTipElement());this.setElementContent(t.find(Ze),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ge),e),t.removeClass(ze+" "+Je)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=Ue(this.getTipElement()),e=t.attr("class").match(Be);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=Ue(this).data(Fe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),Ue(this).data(Fe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Ve}},{key:"NAME",get:function(){return qe}},{key:"DATA_KEY",get:function(){return Fe}},{key:"Event",get:function(){return $e}},{key:"EVENT_KEY",get:function(){return Ke}},{key:"DefaultType",get:function(){return Ye}}]),i}(zn),Ue.fn[qe]=Xe._jQueryInterface,Ue.fn[qe].Constructor=Xe,Ue.fn[qe].noConflict=function(){return Ue.fn[qe]=Me,Xe._jQueryInterface},Xe),Zn=(en="scrollspy",rn="."+(nn="bs.scrollspy"),on=(tn=e).fn[en],sn={offset:10,method:"auto",target:""},an={offset:"number",method:"string",target:"(string|element)"},ln={ACTIVATE:"activate"+rn,SCROLL:"scroll"+rn,LOAD_DATA_API:"load"+rn+".data-api"},cn="dropdown-item",hn="active",un='[data-spy="scroll"]',fn=".active",dn=".nav, .list-group",gn=".nav-link",_n=".nav-item",mn=".list-group-item",pn=".dropdown",vn=".dropdown-item",yn=".dropdown-toggle",En="offset",Cn="position",Tn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+gn+","+this._config.target+" "+mn+","+this._config.target+" "+vn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,tn(this._scrollElement).on(ln.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?En:Cn,r="auto"===this._config.method?t:this._config.method,o=r===Cn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=Fn.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[tn(e)[r]().top+o,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}
35).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){tn.removeData(this._element,nn),tn(this._scrollElement).off(rn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},sn,"object"==typeof t&&t?t:{})).target){var e=tn(t.target).attr("id");e||(e=Fn.getUID(en),tn(t.target).attr("id",e)),t.target="#"+e}return Fn.typeCheckConfig(en,t,an),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=tn([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(cn)?(n.closest(pn).find(yn).addClass(hn),n.addClass(hn)):(n.addClass(hn),n.parents(dn).prev(gn+", "+mn).addClass(hn),n.parents(dn).prev(_n).children(gn).addClass(hn)),tn(this._scrollElement).trigger(ln.ACTIVATE,{relatedTarget:e})},t._clear=function(){var t=[].slice.call(document.querySelectorAll(this._selector));tn(t).filter(fn).removeClass(hn)},n._jQueryInterface=function(e){return this.each(function(){var t=tn(this).data(nn);if(t||(t=new n(this,"object"==typeof e&&e),tn(this).data(nn,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return sn}}]),n}(),tn(window).on(ln.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(un)),e=t.length;e--;){var n=tn(t[e]);Tn._jQueryInterface.call(n,n.data())}}),tn.fn[en]=Tn._jQueryInterface,tn.fn[en].Constructor=Tn,tn.fn[en].noConflict=function(){return tn.fn[en]=on,Tn._jQueryInterface},Tn),Gn=(In="."+(Sn="bs.tab"),An=(bn=e).fn.tab,Dn={HIDE:"hide"+In,HIDDEN:"hidden"+In,SHOW:"show"+In,SHOWN:"shown"+In,CLICK_DATA_API:"click"+In+".data-api"},wn="dropdown-menu",Nn="active",On="disabled",kn="fade",Pn="show",jn=".dropdown",Hn=".nav, .list-group",Ln=".active",Rn="> li > .active",xn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Wn=".dropdown-toggle",Un="> .dropdown-menu .active",qn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&bn(this._element).hasClass(Nn)||bn(this._element).hasClass(On))){var t,i,e=bn(this._element).closest(Hn)[0],r=Fn.getSelectorFromElement(this._element);if(e){var o="UL"===e.nodeName?Rn:Ln;i=(i=bn.makeArray(bn(e).find(o)))[i.length-1]}var s=bn.Event(Dn.HIDE,{relatedTarget:this._element}),a=bn.Event(Dn.SHOW,{relatedTarget:i});if(i&&bn(i).trigger(s),bn(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(t=document.querySelector(r)),this._activate(this._element,e);var l=function(){var t=bn.Event(Dn.HIDDEN,{relatedTarget:n._element}),e=bn.Event(Dn.SHOWN,{relatedTarget:i});bn(i).trigger(t),bn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){bn.removeData(this._element,Sn),this._element=null}
35,t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?bn(e).find(Rn):bn(e).children(Ln))[0],o=n&&r&&bn(r).hasClass(kn),s=function(){return i._transitionComplete(t,r,n)};if(r&&o){var a=Fn.getTransitionDurationFromElement(r);bn(r).one(Fn.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){bn(e).removeClass(Pn+" "+Nn);var i=bn(e.parentNode).find(Un)[0];i&&bn(i).removeClass(Nn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(bn(t).addClass(Nn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Fn.reflow(t),bn(t).addClass(Pn),t.parentNode&&bn(t.parentNode).hasClass(wn)){var r=bn(t).closest(jn)[0];if(r){var o=[].slice.call(r.querySelectorAll(Wn));bn(o).addClass(Nn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=bn(this),e=t.data(Sn);if(e||(e=new i(this),t.data(Sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),bn(document).on(Dn.CLICK_DATA_API,xn,function(t){t.preventDefault(),qn._jQueryInterface.call(bn(this),"show")}),bn.fn.tab=qn._jQueryInterface,bn.fn.tab.Constructor=qn,bn.fn.tab.noConflict=function(){return bn.fn.tab=An,qn._jQueryInterface},qn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Fn,t.Alert=Kn,t.Button=Mn,t.Carousel=Qn,t.Collapse=Bn,t.Dropdown=Vn,t.Modal=Yn,t.Popover=Jn,t.Scrollspy=Zn,t.Tab=Gn,t.Tooltip=zn,Object.defineProperty(t,"__esModule",{value:!0})});
36;/*
37 * This combined file was created by the DataTables downloader builder:
38 *   https://datatables.net/download
39 *
40 * To rebuild or modify this file with the latest versions of the included
41 * software please visit:
42 *   https://datatables.net/download/#bs4/dt-1.10.18/r-2.2.2
43 *
44 * Included libraries:
45 *   DataTables 1.10.18, Responsive 2.2.2
46 */
47
48/*!
49 DataTables 1.10.18
50 ©2008-2018 SpryMedia Ltd - datatables.net/license
51*/
52(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
53d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
54a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
55"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function fb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function gb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
56overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
57function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
58d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
59S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
60b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
61typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;
61e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
62j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function ib(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
63typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
64e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function jb(a,
65b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
66-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
67function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
68a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
691)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
70j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}}
70,G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
71f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
72B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
73d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function kb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
74f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
750;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
76d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
77q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
78d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];
78a.nTableReinsertBefore=
79a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&
80d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
81i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
82!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
83b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
84"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function lb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,ub(a),function(b){vb(a,b)}),!1):!0}function ub(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
85i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
86e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function vb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
8710);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function pb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
88g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if
88(13==a.keyCode)return!1}).attr("aria-controls",
89c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)xb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
90e[b].bSmart,e[b].bCaseInsensitive);yb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function yb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function xb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function wb(a,b,c,d,e,f){var d=Pa(b,
91d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=zb(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
92"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
93h._aFilterData=j;h._sFilterRow=j.join("  ");c=!0}return c}function Ab(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Bb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function sb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
94b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
95c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
96y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function ob(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
97e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
98c&&h("select",i).val(d)});return i[0]}
98function tb(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
99e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function qb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
100function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
101position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
102{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
103f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
104L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
105"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
106"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
107g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
108f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;
108e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Eb(o.sWidthOrig,k),t=!0);if(d||
109!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
110"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Fb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
111l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Eb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Fb(a,
112b){var c=Gb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Gb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
113!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function mb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
114c;b++)j=h[b],j.formatter&&g++,Hb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
115c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Ib(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
116b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
117typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
118(2>e?e+1:3))}a.aLastSort=d}function Hb(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Ab(a.oPreviousSearch),
119columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Ab(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Jb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
120(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));
120b.search!==k&&h.extend(a.oPreviousSearch,Bb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Bb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
121a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
122typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
123function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
124typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
125a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
126this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
127b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
128c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();
128return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
129this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
130(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{eb(l);fb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
131j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
132sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();eb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
133"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
134z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
135g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);gb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
136J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
137g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);ib(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
138e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Ib(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
139p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");
139if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
140p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Jb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&
141isFinite(a)?b:null},Ob=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
142f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
143b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
144/<.*?>/g,Oa=n.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
145s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
146this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
147n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
148e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return hb(this,a,b,0,this.length,
1491)},reduceRight:w.reduceRight||function(a,b){return hb(this,a,b,this.length-1,-1,-1)}
149,reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
150b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
151f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
152d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
153"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
154this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);
155d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
156this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
157[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
158d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
159j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Nb(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
160a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Qb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
161function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
162function(a,b){return b}
162,1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
163l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
1641),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
165a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
1660<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
167this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
168c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,
169c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Nb(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
170"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
1711);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
1721)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
173i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
174function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
175h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Qb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
176k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
177c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
178function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});
178o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
179c[0].row,c[0].column):k;jb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
180this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
181h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
182null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
183n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
184this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
185this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
186h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();
186!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
187(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
188a._);return a.replace("%d",c)});n.version="1.10.18";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
189sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
190bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
191a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
192oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
193n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
194Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
195aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
196iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxD
196ata:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
197this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
198classes:{},build:"bs4/dt-1.10.18/r-2.2.2",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
199h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
200sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
201sJUIHeader:"",sJUIFooter:""});var Kb=n.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
202f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
203j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
204s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
205"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);
205h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
206"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
207c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
208"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
209a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:ib,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:gb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
210b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:kb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ga,_fnFilterCustom:yb,
211_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Eb,_fnGetWidestNode:Fb,_fnGetMaxLenString:Gb,_fnStringToCss:v,
212_fnSortFlatten:X,_fnSort:mb,_fnSortAria:Ib,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Hb,_fnSaveState:xa,_fnLoadState:Jb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
213h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
214
215
216/*!
217 DataTables Bootstrap 4 integration
218 ©2011-2017 SpryMedia Ltd - datatables.net/license
219*/
220(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
221renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();
222!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;
222g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",
223{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});
224
225
226/*!
227 Responsive 2.2.2
228 2014-2018 SpryMedia Ltd - datatables.net/license
229*/
230(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return d(l,window,document)}):"object"===typeof exports?module.exports=function(l,j){l||(l=window);if(!j||!j.fn.dataTable)j=require("datatables.net")(l,j).$;return d(j,l,l.document)}:d(jQuery,window,document)})(function(d,l,j,q){function t(a,b,c){var e=b+"-"+c;if(n[e])return n[e];for(var d=[],a=a.cell(b,c).node().childNodes,b=0,c=a.length;b<c;b++)d.push(a[b]);return n[e]=d}function r(a,b,d){var e=b+
231"-"+d;if(n[e]){for(var a=a.cell(b,d).node(),d=n[e][0].parentNode.childNodes,b=[],f=0,g=d.length;f<g;f++)b.push(d[f]);d=0;for(f=b.length;d<f;d++)a.appendChild(b[d]);n[e]=q}}var o=d.fn.dataTable,i=function(a,b){if(!o.versionCheck||!o.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new o.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}:
232b&&!0===b.details&&(b.details={type:"inline"}),this.c=d.extend(!0,{},i.defaults,o.defaults.responsive,b),a.responsive=this,this._constructor())};d.extend(i.prototype,{_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=d(l).width();b.settings()[0]._responsive=this;d(l).on("resize.dtr orientationchange.dtr",o.util.throttle(function(){var b=d(l).width();b!==e&&(a._resize(),e=b)}));c.oApi._fnCallbackReg(c,"aoRowCreatedCallback",function(e){-1!==d.inArray(!1,a.s.current)&&d(">td, >th",
233e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&d(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");d(b.table().body()).off(".dtr");d(l).off("resize.dtr orientationchange.dtr");d.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>b.width?-1:0});this._classLogic();this._resizeAuto();c=this.c.details;!1!==c.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._timer&&
234clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize();a._redrawChildren()},100)}),b.on("draw.dtr",function(){a._redrawChildren()}),d(b.table().node()).addClass("dtr-"+c.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("preXhr.dtr",function(){var e=[];b.rows().every(function(){this.child.isShown()&&e.push(this.id(true))});b.one("draw.dtr",
235function(){a._resizeAuto();a._resize();b.rows(e).every(function(){a._detailsDisplay(this,false)})})});b.on("init.dtr",function(){a._resizeAuto();a._resize();d.inArray(false,a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,c=this.s.columns,e,f,g=c.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=d.map(c,function(e,c){return!1===b.column(c).visible()?
236"not-visible":e.auto&&null===e.minWidth?!1:!0===e.auto?"-":-1!==d.inArray(a,e.includeIn)}),m=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(m+=c[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;m=b.table().container().offsetWidth-e-m;e=0;for(f=h.length;e<f;e++)c[e].control&&(m-=c[e].minWidth);var s=!1;e=0;for(f=g.length;e<f;e++){var k=g[e].columnIdx;"-"===h[k]&&(!c[k].control&&c[k].minWidth)&&(s||0>m-c[k].minWidth?(s=!0,h[k]=!1):h[k]=!0,m-=c[k].minWidth)}g=!1;e=0;for(f=c.length;e<f;e++)if(!c[e].control&&
237!c[e].never&&!1===h[e]){g=!0;break}e=0;for(f=c.length;e<f;e++)c[e].control&&(h[e]=g),"not-visible"===h[e]&&(h[e]=!1);-1===d.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,c=this.s.dt,e=c.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=c.settings()[0].aoColumns[a].responsivePriority;a===q&&(b=d(b.header()).data("priority"),a=b!==q?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),
238f=function(a,b){var c=e[a].includeIn;-1===d.inArray(b,c)&&c.push(b)},g=function(d,c,g,k){if(g)if("max-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width<=k&&f(d,b[c].name)}else if("min-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width>=k&&f(d,b[c].name)}else{if("not-"===g){c=0;for(g=b.length;c<g;c++)-1===b[c].name.indexOf(k)&&f(d,b[c].name)}}else e[d].includeIn.push(c)};e.each(function(a,e){for(var c=a.className.split(" "),f=!1,i=0,l=c.length;i<l;i++){var j=d.trim(c[i]);
239if("all"===j){f=!0;a.includeIn=d.map(b,function(a){return a.name});return}if("none"===j||a.never){f=!0;return}
239if("control"===j){f=!0;a.control=!0;return}d.each(b,function(a,b){var d=b.name.split("-"),c=j.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var c=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=
240f.display(a,b,function(){return f.renderer(e,a[0],c._detailsObj(a[0]))});(!0===g||!1===g)&&d(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();d(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&d(this).data("dtr-keyboard")&&d(this).click()});var e=c.target;d(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",
241"string"===typeof e?e:"td, th",function(c){if(d(b.table().node()).hasClass("collapsed")&&d.inArray(d(this).closest("tr").get(0),b.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!==g)return}g=b.row(d(this).closest("tr"));c.type==="click"?a._detailsDisplay(g,false):c.type==="mousedown"?d(this).css("outline","none"):c.type==="mouseup"&&d(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,c=this.s.dt;return d.map(this.s.columns,
242function(e,d){if(!e.never&&!e.control)return{title:c.settings()[0].aoColumns[d].sTitle,data:c.cell(a,d).render(b.c.orthogonal),hidden:c.column(d).visible()&&!b.s.current[d],columnIndex:d,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints,c=0,e=b.length;c<e;c++)if(b[c].name===a)return b[c]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,c=d(l).width(),
243e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,m=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(c<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(c=g.length;h<c;h++)if(!1===i[h]&&!g[h].never&&!g[h].control&&!1===!b.column(h).visible()){e=!0;break}d(b.table().node()).toggleClass("collapsed",e);var k=!1,j=0;b.columns().eq(0).each(function(b,c){!0===i[c]&&j++;i[c]!==m[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),d(b.table().node()).trigger("responsive-resize.dt",
244[b,this.s.current]),0===b.page.info().recordsDisplay&&d("td",b.table().body()).eq(0).attr("colspan",j))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==d.inArray(!0,d.map(b,function(a){return a.auto}))){d.isEmptyObject(n)||d.each(n,function(b){b=b.split("-");r(a,1*b[0],1*b[1])});a.table().node();var c=a.table().node().cloneNode(!1),e=d(a.table().header().cloneNode(!1)).appendTo(c),f=d(a.table().body()).clone(!1,!1).empty().appendTo(c),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display",
245"table-cell").css("min-width",0);d(f).append(d(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=d(f.cloneNode(!1)).appendTo(c),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");d("<tr/>").append(h).appendTo(f)}d("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&d(c).addClass("dtr-inline collapsed");d(c).find("[name]").removeAttr("name");d(c).css("position","relative");
246c=d("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(c);c.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});c.remove()}},_setColumnVis:function(a,b){var c=this.s.dt,e=b?"":"none";d(c.column(a).header()).css("display",e);d(c.column(a).footer()).css("display",e);c.column(a).nodes().to$().css("display",e);d.isEmptyObject(n)||c.cells(null,a).indexes().each(function(a){r(c,a.row,a.column)})},_tabIndexes:function(){var a=
247this.s.dt,b=a.cells({page:"current"}).nodes().to$(),c=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");"number"===typeof e?a.cells(null,e,{page:"current"}).nodes().to$().attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===e&&(e=">td:first-child, >th:first-child"),d(e,a.rows({page:"current"}).nodes()).attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1))}});i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",
248width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.display={childRow:function(a,b,c){if(b){if(d(a.node()).hasClass("parent"))return a.child(c(),"child").show(),!0}else{if(a.child.isShown())return a.child(!1),d(a.node()).removeClass("parent"),!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,c){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),d(a.node()).removeClass("parent"),
249!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0},modal:function(a){return function(b,c,e){if(c)d("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();d(j).off("keypress.dtr")},g=d('<div class="dtr-modal"/>').append(d('<div class="dtr-modal-display"/>').append(d('<div class="dtr-modal-content"/>').append(e())).append(d('<div class="dtr-modal-close">&times;</div>').click(function(){f()}))).append(d('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");
250d(j).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&d("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};var n={};i.renderer={listHiddenNodes:function(){return function(a,b,c){var e=d('<ul data-dtr-index="'+b+'" class="dtr-details"/>'),f=!1;d.each(c,function(b,c){c.hidden&&(d('<li data-dtr-index="'+c.columnIndex+'" data-dt-row="'+c.rowIndex+'" data-dt-column="'+c.columnIndex+'"><span class="dtr-title">'+c.title+"</span> </li>").append(d('<span class="dtr-data"/>').append(t(a,
251c.rowIndex,c.columnIndex))).appendTo(e),f=!0)});return f?e:!1}},listHidden:function(){return function(a,b,c){return(a=d.map(c,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?d('<ul data-dtr-index="'+b+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=d.extend({tableClass:""},a);return function(b,
252c,e){b=d.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return d('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(b)}}};i.defaults={breakpoints:i.breakpoints,auto:!0,details:{display:i.display.childRow,renderer:i.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var p=d.fn.dataTable.Api;p.register("responsive()",function(){return this});p.register("responsive.index()",
253function(a){a=d(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});p.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});p.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});p.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==d.inArray(!1,a._responsive.s.current):
254!1});p.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,b){return a._responsive?a._responsive.s.current[b]:!1},1)});i.version="2.2.2";d.fn.dataTable.Responsive=i;d.fn.DataTable.Responsive=i;d(j).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(d(b.nTable).hasClass("responsive")||d(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||o.defaults.responsive)){var c=b.oInit.responsive;!1!==c&&new i(b,d.isPlainObject(c)?
255c:{})}});return i});
256
257
258/*!
259 Bootstrap 4 integration for DataTables' Responsive
260 ©2016 SpryMedia Ltd - datatables.net/license
261*/
262(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,g=b.modal,e=c('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');
263b.modal=function(a){return function(b,d,f){if(c.fn.modal){if(!d){if(a&&a.header){var d=e.find("div.modal-header"),h=d.find("button").detach();d.empty().append('<h4 class="modal-title">'+a.header(b)+"</h4>").append(h)}e.find("div.modal-body").empty().append(f());e.appendTo("body").modal()}}else g(b,d,f)}};return a.Responsive});
264;/*  jQuery Nice Select - v1.0
265    https://github.com/hernansartorio/jquery-nice-select
266    Made by Hernán Sartorio  */
267!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html('<span class="current"></span><ul class="list"></ul>'));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("<li></li>").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".
267nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);;
vendor: 23,966 bytes, line 267
267!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
267
268;;(function (global, factory) {
269    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
270    typeof define === 'function' && define.amd ? define(factory) :
271    global.moment = factory()
272}(this, (function () { 'use strict';
273
274    var hookCallback;
275
276    function hooks () {
277        return hookCallback.apply(null, arguments);
278    }
279
280    // This is done to register the method called with moment()
281    // without creating circular dependencies.
282    function setHookCallback (callback) {
283        hookCallback = callback;
284    }
285
286    function isArray(input) {
287        return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
288    }
289
290    function isObject(input) {
291        // IE8 will treat undefined and null as object if it wasn't for
292        // input != null
293        return input != null && Object.prototype.toString.call(input) === '[object Object]';
294    }
295
296    function isObjectEmpty(obj) {
297        if (Object.getOwnPropertyNames) {
298            return (Object.getOwnPropertyNames(obj).length === 0);
299        } else {
300            var k;
301            for (k in obj) {
302                if (obj.hasOwnProperty(k)) {
303                    return false;
vendor: 108,814 bytes, lines 304-3597
304                }
305            }
306            return true;
307        }
308    }
309
310    function isUndefined(input) {
311        return input === void 0;
312    }
313
314    function isNumber(input) {
315        return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
316    }
317
318    function isDate(input) {
319        return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
320    }
321
322    function map(arr, fn) {
323        var res = [], i;
324        for (i = 0; i < arr.length; ++i) {
325            res.push(fn(arr[i], i));
326        }
327        return res;
328    }
329
330    function hasOwnProp(a, b) {
331        return Object.prototype.hasOwnProperty.call(a, b);
332    }
333
334    function extend(a, b) {
335        for (var i in b) {
336            if (hasOwnProp(b, i)) {
337                a[i] = b[i];
338            }
339        }
340
341        if (hasOwnProp(b, 'toString')) {
342            a.toString = b.toString;
343        }
344
345        if (hasOwnProp(b, 'valueOf')) {
346            a.valueOf = b.valueOf;
347        }
348
349        return a;
350    }
351
352    function createUTC (input, format, locale, strict) {
353        return createLocalOrUTC(input, format, locale, strict, true).utc();
354    }
355
356    function defaultParsingFlags() {
357        // We need to deep clone this object.
358        return {
359            empty           : false,
360            unusedTokens    : [],
361            unusedInput     : [],
362            overflow        : -2,
363            charsLeftOver   : 0,
364            nullInput       : false,
365            invalidMonth    : null,
366            invalidFormat   : false,
367            userInvalidated : false,
368            iso             : false,
369            parsedDateParts : [],
370            meridiem        : null,
371            rfc2822         : false,
372            weekdayMismatch : false
373        };
374    }
375
376    function getParsingFlags(m) {
377        if (m._pf == null) {
378            m._pf = defaultParsingFlags();
379        }
380        return m._pf;
381    }
382
383    var some;
384    if (Array.prototype.some) {
385        some = Array.prototype.some;
386    } else {
387        some = function (fun) {
388            var t = Object(this);
389            var len = t.length >>> 0;
390
391            for (var i = 0; i < len; i++) {
392                if (i in t && fun.call(this, t[i], i, t)) {
393                    return true;
394                }
395            }
396
397            return false;
398        };
399    }
400
401    function isValid(m) {
402        if (m._isValid == null) {
403            var flags = getParsingFlags(m);
404            var parsedParts = some.call(flags.parsedDateParts, function (i) {
405                return i != null;
406            });
407            var isNowValid = !isNaN(m._d.getTime()) &&
408                flags.overflow < 0 &&
409                !flags.empty &&
410                !flags.invalidMonth &&
411                !flags.invalidWeekday &&
412                !flags.weekdayMismatch &&
413                !flags.nullInput &&
414                !flags.invalidFormat &&
415                !flags.userInvalidated &&
416                (!flags.meridiem || (flags.meridiem && parsedParts));
417
418            if (m._strict) {
419                isNowValid = isNowValid &&
420                    flags.charsLeftOver === 0 &&
421                    flags.unusedTokens.length === 0 &&
422                    flags.bigHour === undefined;
423            }
424
425            if (Object.isFrozen == null || !Object.isFrozen(m)) {
426                m._isValid = isNowValid;
427            }
428            else {
429                return isNowValid;
430            }
431        }
432        return m._isValid;
433    }
434
435    function createInvalid (flags) {
436        var m = createUTC(NaN);
437        if (flags != null) {
438            extend(getParsingFlags(m), flags);
439        }
440        else {
441            getParsingFlags(m).userInvalidated = true;
442        }
443
444        return m;
445    }
446
447    // Plugins that add properties should also add the key here (null value),
448    // so we can properly clone ourselves.
449    var momentProperties = hooks.momentProperties = [];
450
451    function copyConfig(to, from) {
452        var i, prop, val;
453
454        if (!isUndefined(from._isAMomentObject)) {
455            to._isAMomentObject = from._isAMomentObject;
456        }
457        if (!isUndefined(from._i)) {
458            to._i = from._i;
459        }
460        if (!isUndefined(from._f)) {
461            to._f = from._f;
462        }
463        if (!isUndefined(from._l)) {
464            to._l = from._l;
465        }
466        if (!isUndefined(from._strict)) {
467            to._strict = from._strict;
468        }
469        if (!isUndefined(from._tzm)) {
470            to._tzm = from._tzm;
471        }
472        if (!isUndefined(from._isUTC)) {
473            to._isUTC = from._isUTC;
474        }
475        if (!isUndefined(from._offset)) {
476            to._offset = from._offset;
477        }
478        if (!isUndefined(from._pf)) {
479            to._pf = getParsingFlags(from);
480        }
481        if (!isUndefined(from._locale)) {
482            to._locale = from._locale;
483        }
484
485        if (momentProperties.length > 0) {
486            for (i = 0; i < momentProperties.length; i++) {
487                prop = momentProperties[i];
488                val = from[prop];
489                if (!isUndefined(val)) {
490                    to[prop] = val;
491                }
492            }
493        }
494
495        return to;
496    }
497
498    var updateInProgress = false;
499
500    // Moment prototype object
501    function Moment(config) {
502        copyConfig(this, config);
503        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
504        if (!this.isValid()) {
505            this._d = new Date(NaN);
506        }
507        // Prevent infinite loop in case updateOffset creates new moment
508        // objects.
509        if (updateInProgress === false) {
510            updateInProgress = true;
511            hooks.updateOffset(this);
512            updateInProgress = false;
513        }
514    }
515
516    function isMoment (obj) {
517        return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
518    }
519
520    function absFloor (number) {
521        if (number < 0) {
522            // -0 -> 0
523            return Math.ceil(number) || 0;
524        } else {
525            return Math.floor(number);
526        }
527    }
528
529    function toInt(argumentForCoercion) {
530        var coercedNumber = +argumentForCoercion,
531            value = 0;
532
533        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
534            value = absFloor(coercedNumber);
535        }
536
537        return value;
538    }
539
540    // compare two arrays, return the number of differences
541    function compareArrays(array1, array2, dontConvert) {
542        var len = Math.min(array1.length, array2.length),
543            lengthDiff = Math.abs(array1.length - array2.length),
544            diffs = 0,
545            i;
546        for (i = 0; i < len; i++) {
547            if ((dontConvert && array1[i] !== array2[i]) ||
548                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
549                diffs++;
550            }
551        }
552        return diffs + lengthDiff;
553    }
554
555    function warn(msg) {
556        if (hooks.suppressDeprecationWarnings === false &&
557                (typeof console !==  'undefined') && console.warn) {
558            console.warn('Deprecation warning: ' + msg);
559        }
560    }
561
562    function deprecate(msg, fn) {
563        var firstTime = true;
564
565        return extend(function () {
566            if (hooks.deprecationHandler != null) {
567                hooks.deprecationHandler(null, msg);
568            }
569            if (firstTime) {
570                var args = [];
571                var arg;
572                for (var i = 0; i < arguments.length; i++) {
573                    arg = '';
574                    if (typeof arguments[i] === 'object') {
575                        arg += '\n[' + i + '] ';
576                        for (var key in arguments[0]) {
577                            arg += key + ': ' + arguments[0][key] + ', ';
578                        }
579                        arg = arg.slice(0, -2); // Remove trailing comma and space
580                    } else {
581                        arg = arguments[i];
582                    }
583                    args.push(arg);
584                }
585                warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
586                firstTime = false;
587            }
588            return fn.apply(this, arguments);
589        }, fn);
590    }
591
592    var deprecations = {};
593
594    function deprecateSimple(name, msg) {
595        if (hooks.deprecationHandler != null) {
596            hooks.deprecationHandler(name, msg);
597        }
598        if (!deprecations[name]) {
599            warn(msg);
600            deprecations[name] = true;
601        }
602    }
603
604    hooks.suppressDeprecationWarnings = false;
605    hooks.deprecationHandler = null;
606
607    function isFunction(input) {
608        return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
609    }
610
611    function set (config) {
612        var prop, i;
613        for (i in config) {
614            prop = config[i];
615            if (isFunction(prop)) {
616                this[i] = prop;
617            } else {
618                this['_' + i] = prop;
619            }
620        }
621        this._config = config;
622        // Lenient ordinal parsing accepts just a number in addition to
623        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
624        // TODO: Remove "ordinalParse" fallback in next major release.
625        this._dayOfMonthOrdinalParseLenient = new RegExp(
626            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
627                '|' + (/\d{1,2}/).source);
628    }
629
630    function mergeConfigs(parentConfig, childConfig) {
631        var res = extend({}, parentConfig), prop;
632        for (prop in childConfig) {
633            if (hasOwnProp(childConfig, prop)) {
634                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
635                    res[prop] = {};
636                    extend(res[prop], parentConfig[prop]);
637                    extend(res[prop], childConfig[prop]);
638                } else if (childConfig[prop] != null) {
639                    res[prop] = childConfig[prop];
640                } else {
641                    delete res[prop];
642                }
643            }
644        }
645        for (prop in parentConfig) {
646            if (hasOwnProp(parentConfig, prop) &&
647                    !hasOwnProp(childConfig, prop) &&
648                    isObject(parentConfig[prop])) {
649                // make sure changes to properties don't modify parent config
650                res[prop] = extend({}, res[prop]);
651            }
652        }
653        return res;
654    }
655
656    function Locale(config) {
657        if (config != null) {
658            this.set(config);
659        }
660    }
661
662    var keys;
663
664    if (Object.keys) {
665        keys = Object.keys;
666    } else {
667        keys = function (obj) {
668            var i, res = [];
669            for (i in obj) {
670                if (hasOwnProp(obj, i)) {
671                    res.push(i);
672                }
673            }
674            return res;
675        };
676    }
677
678    var defaultCalendar = {
679        sameDay : '[Today at] LT',
680        nextDay : '[Tomorrow at] LT',
681        nextWeek : 'dddd [at] LT',
682        lastDay : '[Yesterday at] LT',
683        lastWeek : '[Last] dddd [at] LT',
684        sameElse : 'L'
685    };
686
687    function calendar (key, mom, now) {
688        var output = this._calendar[key] || this._calendar['sameElse'];
689        return isFunction(output) ? output.call(mom, now) : output;
690    }
691
692    var defaultLongDateFormat = {
693        LTS  : 'h:mm:ss A',
694        LT   : 'h:mm A',
695        L    : 'MM/DD/YYYY',
696        LL   : 'MMMM D, YYYY',
697        LLL  : 'MMMM D, YYYY h:mm A',
698        LLLL : 'dddd, MMMM D, YYYY h:mm A'
699    };
700
701    function longDateFormat (key) {
702        var format = this._longDateFormat[key],
703            formatUpper = this._longDateFormat[key.toUpperCase()];
704
705        if (format || !formatUpper) {
706            return format;
707        }
708
709        this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
710            return val.slice(1);
711        });
712
713        return this._longDateFormat[key];
714    }
715
716    var defaultInvalidDate = 'Invalid date';
717
718    function invalidDate () {
719        return this._invalidDate;
720    }
721
722    var defaultOrdinal = '%d';
723    var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
724
725    function ordinal (number) {
726        return this._ordinal.replace('%d', number);
727    }
728
729    var defaultRelativeTime = {
730        future : 'in %s',
731        past   : '%s ago',
732        s  : 'a few seconds',
733        ss : '%d seconds',
734        m  : 'a minute',
735        mm : '%d minutes',
736        h  : 'an hour',
737        hh : '%d hours',
738        d  : 'a day',
739        dd : '%d days',
740        M  : 'a month',
741        MM : '%d months',
742        y  : 'a year',
743        yy : '%d years'
744    };
745
746    function relativeTime (number, withoutSuffix, string, isFuture) {
747        var output = this._relativeTime[string];
748        return (isFunction(output)) ?
749            output(number, withoutSuffix, string, isFuture) :
750            output.replace(/%d/i, number);
751    }
752
753    function pastFuture (diff, output) {
754        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
755        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
756    }
757
758    var aliases = {};
759
760    function addUnitAlias (unit, shorthand) {
761        var lowerCase = unit.toLowerCase();
762        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
763    }
764
765    function normalizeUnits(units) {
766        return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
767    }
768
769    function normalizeObjectUnits(inputObject) {
770        var normalizedInput = {},
771            normalizedProp,
772            prop;
773
774        for (prop in inputObject) {
775            if (hasOwnProp(inputObject, prop)) {
776                normalizedProp = normalizeUnits(prop);
777                if (normalizedProp) {
778                    normalizedInput[normalizedProp] = inputObject[prop];
779                }
780            }
781        }
782
783        return normalizedInput;
784    }
785
786    var priorities = {};
787
788    function addUnitPriority(unit, priority) {
789        priorities[unit] = priority;
790    }
791
792    function getPrioritizedUnits(unitsObj) {
793        var units = [];
794        for (var u in unitsObj) {
795            units.push({unit: u, priority: priorities[u]});
796        }
797        units.sort(function (a, b) {
798            return a.priority - b.priority;
799        });
800        return units;
801    }
802
803    function zeroFill(number, targetLength, forceSign) {
804        var absNumber = '' + Math.abs(number),
805            zerosToFill = targetLength - absNumber.length,
806            sign = number >= 0;
807        return (sign ? (forceSign ? '+' : '') : '-') +
808            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
809    }
810
811    var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
812
813    var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
814
815    var formatFunctions = {};
816
817    var formatTokenFunctions = {};
818
819    // token:    'M'
820    // padded:   ['MM', 2]
821    // ordinal:  'Mo'
822    // callback: function () { this.month() + 1 }
823    function addFormatToken (token, padded, ordinal, callback) {
824        var func = callback;
825        if (typeof callback === 'string') {
826            func = function () {
827                return this[callback]();
828            };
829        }
830        if (token) {
831            formatTokenFunctions[token] = func;
832        }
833        if (padded) {
834            formatTokenFunctions[padded[0]] = function () {
835                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
836            };
837        }
838        if (ordinal) {
839            formatTokenFunctions[ordinal] = function () {
840                return this.localeData().ordinal(func.apply(this, arguments), token);
841            };
842        }
843    }
844
845    function removeFormattingTokens(input) {
846        if (input.match(/\[[\s\S]/)) {
847            return input.replace(/^\[|\]$/g, '');
848        }
849        return input.replace(/\\/g, '');
850    }
851
852    function makeFormatFunction(format) {
853        var array = format.match(formattingTokens), i, length;
854
855        for (i = 0, length = array.length; i < length; i++) {
856            if (formatTokenFunctions[array[i]]) {
857                array[i] = formatTokenFunctions[array[i]];
858            } else {
859                array[i] = removeFormattingTokens(array[i]);
860            }
861        }
862
863        return function (mom) {
864            var output = '', i;
865            for (i = 0; i < length; i++) {
866                output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
867            }
868            return output;
869        };
870    }
871
872    // format date using native date object
873    function formatMoment(m, format) {
874        if (!m.isValid()) {
875            return m.localeData().invalidDate();
876        }
877
878        format = expandFormat(format, m.localeData());
879        formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
880
881        return formatFunctions[format](m);
882    }
883
884    function expandFormat(format, locale) {
885        var i = 5;
886
887        function replaceLongDateFormatTokens(input) {
888            return locale.longDateFormat(input) || input;
889        }
890
891        localFormattingTokens.lastIndex = 0;
892        while (i >= 0 && localFormattingTokens.test(format)) {
893            format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
894            localFormattingTokens.lastIndex = 0;
895            i -= 1;
896        }
897
898        return format;
899    }
900
901    var match1         = /\d/;            //       0 - 9
902    var match2         = /\d\d/;          //      00 - 99
903    var match3         = /\d{3}/;         //     000 - 999
904    var match4         = /\d{4}/;         //    0000 - 9999
905    var match6         = /[+-]?\d{6}/;    // -999999 - 999999
906    var match1to2      = /\d\d?/;         //       0 - 99
907    var match3to4      = /\d\d\d\d?/;     //     999 - 9999
908    var match5to6      = /\d\d\d\d\d\d?/; //   99999 - 999999
909    var match1to3      = /\d{1,3}/;       //       0 - 999
910    var match1to4      = /\d{1,4}/;       //       0 - 9999
911    var match1to6      = /[+-]?\d{1,6}/;  // -999999 - 999999
912
913    var matchUnsigned  = /\d+/;           //       0 - inf
914    var matchSigned    = /[+-]?\d+/;      //    -inf - inf
915
916    var matchOffset    = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
917    var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
918
919    var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
920
921    // any word (or two) characters or numbers including two/three word month in arabic.
922    // includes scottish gaelic two word and hyphenated months
923    var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
924
925    var regexes = {};
926
927    function addRegexToken (token, regex, strictRegex) {
928        regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
929            return (isStrict && strictRegex) ? strictRegex : regex;
930        };
931    }
932
933    function getParseRegexForToken (token, config) {
934        if (!hasOwnProp(regexes, token)) {
935            return new RegExp(unescapeFormat(token));
936        }
937
938        return regexes[token](config._strict, config._locale);
939    }
940
941    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
942    function unescapeFormat(s) {
943        return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
944            return p1 || p2 || p3 || p4;
945        }));
946    }
947
948    function regexEscape(s) {
949        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
950    }
951
952    var tokens = {};
953
954    function addParseToken (token, callback) {
955        var i, func = callback;
956        if (typeof token === 'string') {
957            token = [token];
958        }
959        if (isNumber(callback)) {
960            func = function (input, array) {
961                array[callback] = toInt(input);
962            };
963        }
964        for (i = 0; i < token.length; i++) {
965            tokens[token[i]] = func;
966        }
967    }
968
969    function addWeekParseToken (token, callback) {
970        addParseToken(token, function (input, array, config, token) {
971            config._w = config._w || {};
972            callback(input, config._w, config, token);
973        });
974    }
975
976    function addTimeToArrayFromToken(token, input, config) {
977        if (input != null && hasOwnProp(tokens, token)) {
978            tokens[token](input, config._a, config, token);
979        }
980    }
981
982    var YEAR = 0;
983    var MONTH = 1;
984    var DATE = 2;
985    var HOUR = 3;
986    var MINUTE = 4;
987    var SECOND = 5;
988    var MILLISECOND = 6;
989    var WEEK = 7;
990    var WEEKDAY = 8;
991
992    // FORMATTING
993
994    addFormatToken('Y', 0, 0, function () {
995        var y = this.year();
996        return y <= 9999 ? '' + y : '+' + y;
997    });
998
999    addFormatToken(0, ['YY', 2], 0, function () {
1000        return this.year() % 100;
1001    });
1002
1003    addFormatToken(0, ['YYYY',   4],       0, 'year');
1004    addFormatToken(0, ['YYYYY',  5],       0, 'year');
1005    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
1006
1007    // ALIASES
1008
1009    addUnitAlias('year', 'y');
1010
1011    // PRIORITIES
1012
1013    addUnitPriority('year', 1);
1014
1015    // PARSING
1016
1017    addRegexToken('Y',      matchSigned);
1018    addRegexToken('YY',     match1to2, match2);
1019    addRegexToken('YYYY',   match1to4, match4);
1020    addRegexToken('YYYYY',  match1to6, match6);
1021    addRegexToken('YYYYYY', match1to6, match6);
1022
1023    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
1024    addParseToken('YYYY', function (input, array) {
1025        array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
1026    });
1027    addParseToken('YY', function (input, array) {
1028        array[YEAR] = hooks.parseTwoDigitYear(input);
1029    });
1030    addParseToken('Y', function (input, array) {
1031        array[YEAR] = parseInt(input, 10);
1032    });
1033
1034    // HELPERS
1035
1036    function daysInYear(year) {
1037        return isLeapYear(year) ? 366 : 365;
1038    }
1039
1040    function isLeapYear(year) {
1041        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
1042    }
1043
1044    // HOOKS
1045
1046    hooks.parseTwoDigitYear = function (input) {
1047        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
1048    };
1049
1050    // MOMENTS
1051
1052    var getSetYear = makeGetSet('FullYear', true);
1053
1054    function getIsLeapYear () {
1055        return isLeapYear(this.year());
1056    }
1057
1058    function makeGetSet (unit, keepTime) {
1059        return function (value) {
1060            if (value != null) {
1061                set$1(this, unit, value);
1062                hooks.updateOffset(this, keepTime);
1063                return this;
1064            } else {
1065                return get(this, unit);
1066            }
1067        };
1068    }
1069
1070    function get (mom, unit) {
1071        return mom.isValid() ?
1072            mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
1073    }
1074
1075    function set$1 (mom, unit, value) {
1076        if (mom.isValid() && !isNaN(value)) {
1077            if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
1078                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
1079            }
1080            else {
1081                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
1082            }
1083        }
1084    }
1085
1086    // MOMENTS
1087
1088    function stringGet (units) {
1089        units = normalizeUnits(units);
1090        if (isFunction(this[units])) {
1091            return this[units]();
1092        }
1093        return this;
1094    }
1095
1096
1097    function stringSet (units, value) {
1098        if (typeof units === 'object') {
1099            units = normalizeObjectUnits(units);
1100            var prioritized = getPrioritizedUnits(units);
1101            for (var i = 0; i < prioritized.length; i++) {
1102                this[prioritized[i].unit](units[prioritized[i].unit]);
1103            }
1104        } else {
1105            units = normalizeUnits(units);
1106            if (isFunction(this[units])) {
1107                return this[units](value);
1108            }
1109        }
1110        return this;
1111    }
1112
1113    function mod(n, x) {
1114        return ((n % x) + x) % x;
1115    }
1116
1117    var indexOf;
1118
1119    if (Array.prototype.indexOf) {
1120        indexOf = Array.prototype.indexOf;
1121    } else {
1122        indexOf = function (o) {
1123            // I know
1124            var i;
1125            for (i = 0; i < this.length; ++i) {
1126                if (this[i] === o) {
1127                    return i;
1128                }
1129            }
1130            return -1;
1131        };
1132    }
1133
1134    function daysInMonth(year, month) {
1135        if (isNaN(year) || isNaN(month)) {
1136            return NaN;
1137        }
1138        var modMonth = mod(month, 12);
1139        year += (month - modMonth) / 12;
1140        return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
1141    }
1142
1143    // FORMATTING
1144
1145    addFormatToken('M', ['MM', 2], 'Mo', function () {
1146        return this.month() + 1;
1147    });
1148
1149    addFormatToken('MMM', 0, 0, function (format) {
1150        return this.localeData().monthsShort(this, format);
1151    });
1152
1153    addFormatToken('MMMM', 0, 0, function (format) {
1154        return this.localeData().months(this, format);
1155    });
1156
1157    // ALIASES
1158
1159    addUnitAlias('month', 'M');
1160
1161    // PRIORITY
1162
1163    addUnitPriority('month', 8);
1164
1165    // PARSING
1166
1167    addRegexToken('M',    match1to2);
1168    addRegexToken('MM',   match1to2, match2);
1169    addRegexToken('MMM',  function (isStrict, locale) {
1170        return locale.monthsShortRegex(isStrict);
1171    });
1172    addRegexToken('MMMM', function (isStrict, locale) {
1173        return locale.monthsRegex(isStrict);
1174    });
1175
1176    addParseToken(['M', 'MM'], function (input, array) {
1177        array[MONTH] = toInt(input) - 1;
1178    });
1179
1180    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
1181        var month = config._locale.monthsParse(input, token, config._strict);
1182        // if we didn't find a month name, mark the date as invalid.
1183        if (month != null) {
1184            array[MONTH] = month;
1185        } else {
1186            getParsingFlags(config).invalidMonth = input;
1187        }
1188    });
1189
1190    // LOCALES
1191
1192    var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
1193    var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
1194    function localeMonths (m, format) {
1195        if (!m) {
1196            return isArray(this._months) ? this._months :
1197                this._months['standalone'];
1198        }
1199        return isArray(this._months) ? this._months[m.month()] :
1200            this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
1201    }
1202
1203    var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
1204    function localeMonthsShort (m, format) {
1205        if (!m) {
1206            return isArray(this._monthsShort) ? this._monthsShort :
1207                this._monthsShort['standalone'];
1208        }
1209        return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
1210            this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
1211    }
1212
1213    function handleStrictParse(monthName, format, strict) {
1214        var i, ii, mom, llc = monthName.toLocaleLowerCase();
1215        if (!this._monthsParse) {
1216            // this is not used
1217            this._monthsParse = [];
1218            this._longMonthsParse = [];
1219            this._shortMonthsParse = [];
1220            for (i = 0; i < 12; ++i) {
1221                mom = createUTC([2000, i]);
1222                this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
1223                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
1224            }
1225        }
1226
1227        if (strict) {
1228            if (format === 'MMM') {
1229                ii = indexOf.call(this._shortMonthsParse, llc);
1230                return ii !== -1 ? ii : null;
1231            } else {
1232                ii = indexOf.call(this._longMonthsParse, llc);
1233                return ii !== -1 ? ii : null;
1234            }
1235        } else {
1236            if (format === 'MMM') {
1237                ii = indexOf.call(this._shortMonthsParse, llc);
1238                if (ii !== -1) {
1239                    return ii;
1240                }
1241                ii = indexOf.call(this._longMonthsParse, llc);
1242                return ii !== -1 ? ii : null;
1243            } else {
1244                ii = indexOf.call(this._longMonthsParse, llc);
1245                if (ii !== -1) {
1246                    return ii;
1247                }
1248                ii = indexOf.call(this._shortMonthsParse, llc);
1249                return ii !== -1 ? ii : null;
1250            }
1251        }
1252    }
1253
1254    function localeMonthsParse (monthName, format, strict) {
1255        var i, mom, regex;
1256
1257        if (this._monthsParseExact) {
1258            return handleStrictParse.call(this, monthName, format, strict);
1259        }
1260
1261        if (!this._monthsParse) {
1262            this._monthsParse = [];
1263            this._longMonthsParse = [];
1264            this._shortMonthsParse = [];
1265        }
1266
1267        // TODO: add sorting
1268        // Sorting makes sure if one month (or abbr) is a prefix of another
1269        // see sorting in computeMonthsParse
1270        for (i = 0; i < 12; i++) {
1271            // make the regex if we don't have it already
1272            mom = createUTC([2000, i]);
1273            if (strict && !this._longMonthsParse[i]) {
1274                this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
1275                this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
1276            }
1277            if (!strict && !this._monthsParse[i]) {
1278                regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1279                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1280            }
1281            // test the regex
1282            if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
1283                return i;
1284            } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
1285                return i;
1286            } else if (!strict && this._monthsParse[i].test(monthName)) {
1287                return i;
1288            }
1289        }
1290    }
1291
1292    // MOMENTS
1293
1294    function setMonth (mom, value) {
1295        var dayOfMonth;
1296
1297        if (!mom.isValid()) {
1298            // No op
1299            return mom;
1300        }
1301
1302        if (typeof value === 'string') {
1303            if (/^\d+$/.test(value)) {
1304                value = toInt(value);
1305            } else {
1306                value = mom.localeData().monthsParse(value);
1307                // TODO: Another silent failure?
1308                if (!isNumber(value)) {
1309                    return mom;
1310                }
1311            }
1312        }
1313
1314        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1315        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1316        return mom;
1317    }
1318
1319    function getSetMonth (value) {
1320        if (value != null) {
1321            setMonth(this, value);
1322            hooks.updateOffset(this, true);
1323            return this;
1324        } else {
1325            return get(this, 'Month');
1326        }
1327    }
1328
1329    function getDaysInMonth () {
1330        return daysInMonth(this.year(), this.month());
1331    }
1332
1333    var defaultMonthsShortRegex = matchWord;
1334    function monthsShortRegex (isStrict) {
1335        if (this._monthsParseExact) {
1336            if (!hasOwnProp(this, '_monthsRegex')) {
1337                computeMonthsParse.call(this);
1338            }
1339            if (isStrict) {
1340                return this._monthsShortStrictRegex;
1341            } else {
1342                return this._monthsShortRegex;
1343            }
1344        } else {
1345            if (!hasOwnProp(this, '_monthsShortRegex')) {
1346                this._monthsShortRegex = defaultMonthsShortRegex;
1347            }
1348            return this._monthsShortStrictRegex && isStrict ?
1349                this._monthsShortStrictRegex : this._monthsShortRegex;
1350        }
1351    }
1352
1353    var defaultMonthsRegex = matchWord;
1354    function monthsRegex (isStrict) {
1355        if (this._monthsParseExact) {
1356            if (!hasOwnProp(this, '_monthsRegex')) {
1357                computeMonthsParse.call(this);
1358            }
1359            if (isStrict) {
1360                return this._monthsStrictRegex;
1361            } else {
1362                return this._monthsRegex;
1363            }
1364        } else {
1365            if (!hasOwnProp(this, '_monthsRegex')) {
1366                this._monthsRegex = defaultMonthsRegex;
1367            }
1368            return this._monthsStrictRegex && isStrict ?
1369                this._monthsStrictRegex : this._monthsRegex;
1370        }
1371    }
1372
1373    function computeMonthsParse () {
1374        function cmpLenRev(a, b) {
1375            return b.length - a.length;
1376        }
1377
1378        var shortPieces = [], longPieces = [], mixedPieces = [],
1379            i, mom;
1380        for (i = 0; i < 12; i++) {
1381            // make the regex if we don't have it already
1382            mom = createUTC([2000, i]);
1383            shortPieces.push(this.monthsShort(mom, ''));
1384            longPieces.push(this.months(mom, ''));
1385            mixedPieces.push(this.months(mom, ''));
1386            mixedPieces.push(this.monthsShort(mom, ''));
1387        }
1388        // Sorting makes sure if one month (or abbr) is a prefix of another it
1389        // will match the longer piece.
1390        shortPieces.sort(cmpLenRev);
1391        longPieces.sort(cmpLenRev);
1392        mixedPieces.sort(cmpLenRev);
1393        for (i = 0; i < 12; i++) {
1394            shortPieces[i] = regexEscape(shortPieces[i]);
1395            longPieces[i] = regexEscape(longPieces[i]);
1396        }
1397        for (i = 0; i < 24; i++) {
1398            mixedPieces[i] = regexEscape(mixedPieces[i]);
1399        }
1400
1401        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1402        this._monthsShortRegex = this._monthsRegex;
1403        this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1404        this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1405    }
1406
1407    function createDate (y, m, d, h, M, s, ms) {
1408        // can't just apply() to create a date:
1409        // https://stackoverflow.com/q/181348
1410        var date = new Date(y, m, d, h, M, s, ms);
1411
1412        // the date constructor remaps years 0-99 to 1900-1999
1413        if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
1414            date.setFullYear(y);
1415        }
1416        return date;
1417    }
1418
1419    function createUTCDate (y) {
1420        var date = new Date(Date.UTC.apply(null, arguments));
1421
1422        // the Date.UTC function remaps years 0-99 to 1900-1999
1423        if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
1424            date.setUTCFullYear(y);
1425        }
1426        return date;
1427    }
1428
1429    // start-of-first-week - start-of-year
1430    function firstWeekOffset(year, dow, doy) {
1431        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1432            fwd = 7 + dow - doy,
1433            // first-week day local weekday -- which local weekday is fwd
1434            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1435
1436        return -fwdlw + fwd - 1;
1437    }
1438
1439    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1440    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1441        var localWeekday = (7 + weekday - dow) % 7,
1442            weekOffset = firstWeekOffset(year, dow, doy),
1443            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1444            resYear, resDayOfYear;
1445
1446        if (dayOfYear <= 0) {
1447            resYear = year - 1;
1448            resDayOfYear = daysInYear(resYear) + dayOfYear;
1449        } else if (dayOfYear > daysInYear(year)) {
1450            resYear = year + 1;
1451            resDayOfYear = dayOfYear - daysInYear(year);
1452        } else {
1453            resYear = year;
1454            resDayOfYear = dayOfYear;
1455        }
1456
1457        return {
1458            year: resYear,
1459            dayOfYear: resDayOfYear
1460        };
1461    }
1462
1463    function weekOfYear(mom, dow, doy) {
1464        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1465            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1466            resWeek, resYear;
1467
1468        if (week < 1) {
1469            resYear = mom.year() - 1;
1470            resWeek = week + weeksInYear(resYear, dow, doy);
1471        } else if (week > weeksInYear(mom.year(), dow, doy)) {
1472            resWeek = week - weeksInYear(mom.year(), dow, doy);
1473            resYear = mom.year() + 1;
1474        } else {
1475            resYear = mom.year();
1476            resWeek = week;
1477        }
1478
1479        return {
1480            week: resWeek,
1481            year: resYear
1482        };
1483    }
1484
1485    function weeksInYear(year, dow, doy) {
1486        var weekOffset = firstWeekOffset(year, dow, doy),
1487            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1488        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1489    }
1490
1491    // FORMATTING
1492
1493    addFormatToken('w', ['ww', 2], 'wo', 'week');
1494    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1495
1496    // ALIASES
1497
1498    addUnitAlias('week', 'w');
1499    addUnitAlias('isoWeek', 'W');
1500
1501    // PRIORITIES
1502
1503    addUnitPriority('week', 5);
1504    addUnitPriority('isoWeek', 5);
1505
1506    // PARSING
1507
1508    addRegexToken('w',  match1to2);
1509    addRegexToken('ww', match1to2, match2);
1510    addRegexToken('W',  match1to2);
1511    addRegexToken('WW', match1to2, match2);
1512
1513    addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
1514        week[token.substr(0, 1)] = toInt(input);
1515    });
1516
1517    // HELPERS
1518
1519    // LOCALES
1520
1521    function localeWeek (mom) {
1522        return weekOfYear(mom, this._week.dow, this._week.doy).week;
1523    }
1524
1525    var defaultLocaleWeek = {
1526        dow : 0, // Sunday is the first day of the week.
1527        doy : 6  // The week that contains Jan 1st is the first week of the year.
1528    };
1529
1530    function localeFirstDayOfWeek () {
1531        return this._week.dow;
1532    }
1533
1534    function localeFirstDayOfYear () {
1535        return this._week.doy;
1536    }
1537
1538    // MOMENTS
1539
1540    function getSetWeek (input) {
1541        var week = this.localeData().week(this);
1542        return input == null ? week : this.add((input - week) * 7, 'd');
1543    }
1544
1545    function getSetISOWeek (input) {
1546        var week = weekOfYear(this, 1, 4).week;
1547        return input == null ? week : this.add((input - week) * 7, 'd');
1548    }
1549
1550    // FORMATTING
1551
1552    addFormatToken('d', 0, 'do', 'day');
1553
1554    addFormatToken('dd', 0, 0, function (format) {
1555        return this.localeData().weekdaysMin(this, format);
1556    });
1557
1558    addFormatToken('ddd', 0, 0, function (format) {
1559        return this.localeData().weekdaysShort(this, format);
1560    });
1561
1562    addFormatToken('dddd', 0, 0, function (format) {
1563        return this.localeData().weekdays(this, format);
1564    });
1565
1566    addFormatToken('e', 0, 0, 'weekday');
1567    addFormatToken('E', 0, 0, 'isoWeekday');
1568
1569    // ALIASES
1570
1571    addUnitAlias('day', 'd');
1572    addUnitAlias('weekday', 'e');
1573    addUnitAlias('isoWeekday', 'E');
1574
1575    // PRIORITY
1576    addUnitPriority('day', 11);
1577    addUnitPriority('weekday', 11);
1578    addUnitPriority('isoWeekday', 11);
1579
1580    // PARSING
1581
1582    addRegexToken('d',    match1to2);
1583    addRegexToken('e',    match1to2);
1584    addRegexToken('E',    match1to2);
1585    addRegexToken('dd',   function (isStrict, locale) {
1586        return locale.weekdaysMinRegex(isStrict);
1587    });
1588    addRegexToken('ddd',   function (isStrict, locale) {
1589        return locale.weekdaysShortRegex(isStrict);
1590    });
1591    addRegexToken('dddd',   function (isStrict, locale) {
1592        return locale.weekdaysRegex(isStrict);
1593    });
1594
1595    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1596        var weekday = config._locale.weekdaysParse(input, token, config._strict);
1597        // if we didn't get a weekday name, mark the date as invalid
1598        if (weekday != null) {
1599            week.d = weekday;
1600        } else {
1601            getParsingFlags(config).invalidWeekday = input;
1602        }
1603    });
1604
1605    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1606        week[token] = toInt(input);
1607    });
1608
1609    // HELPERS
1610
1611    function parseWeekday(input, locale) {
1612        if (typeof input !== 'string') {
1613            return input;
1614        }
1615
1616        if (!isNaN(input)) {
1617            return parseInt(input, 10);
1618        }
1619
1620        input = locale.weekdaysParse(input);
1621        if (typeof input === 'number') {
1622            return input;
1623        }
1624
1625        return null;
1626    }
1627
1628    function parseIsoWeekday(input, locale) {
1629        if (typeof input === 'string') {
1630            return locale.weekdaysParse(input) % 7 || 7;
1631        }
1632        return isNaN(input) ? null : input;
1633    }
1634
1635    // LOCALES
1636
1637    var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
1638    function localeWeekdays (m, format) {
1639        if (!m) {
1640            return isArray(this._weekdays) ? this._weekdays :
1641                this._weekdays['standalone'];
1642        }
1643        return isArray(this._weekdays) ? this._weekdays[m.day()] :
1644            this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
1645    }
1646
1647    var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
1648    function localeWeekdaysShort (m) {
1649        return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
1650    }
1651
1652    var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
1653    function localeWeekdaysMin (m) {
1654        return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
1655    }
1656
1657    function handleStrictParse$1(weekdayName, format, strict) {
1658        var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
1659        if (!this._weekdaysParse) {
1660            this._weekdaysParse = [];
1661            this._shortWeekdaysParse = [];
1662            this._minWeekdaysParse = [];
1663
1664            for (i = 0; i < 7; ++i) {
1665                mom = createUTC([2000, 1]).day(i);
1666                this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
1667                this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
1668                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1669            }
1670        }
1671
1672        if (strict) {
1673            if (format === 'dddd') {
1674                ii = indexOf.call(this._weekdaysParse, llc);
1675                return ii !== -1 ? ii : null;
1676            } else if (format === 'ddd') {
1677                ii = indexOf.call(this._shortWeekdaysParse, llc);
1678                return ii !== -1 ? ii : null;
1679            } else {
1680                ii = indexOf.call(this._minWeekdaysParse, llc);
1681                return ii !== -1 ? ii : null;
1682            }
1683        } else {
1684            if (format === 'dddd') {
1685                ii = indexOf.call(this._weekdaysParse, llc);
1686                if (ii !== -1) {
1687                    return ii;
1688                }
1689                ii = indexOf.call(this._shortWeekdaysParse, llc);
1690                if (ii !== -1) {
1691                    return ii;
1692                }
1693                ii = indexOf.call(this._minWeekdaysParse, llc);
1694                return ii !== -1 ? ii : null;
1695            } else if (format === 'ddd') {
1696                ii = indexOf.call(this._shortWeekdaysParse, llc);
1697                if (ii !== -1) {
1698                    return ii;
1699                }
1700                ii = indexOf.call(this._weekdaysParse, llc);
1701                if (ii !== -1) {
1702                    return ii;
1703                }
1704                ii = indexOf.call(this._minWeekdaysParse, llc);
1705                return ii !== -1 ? ii : null;
1706            } else {
1707                ii = indexOf.call(this._minWeekdaysParse, llc);
1708                if (ii !== -1) {
1709                    return ii;
1710                }
1711                ii = indexOf.call(this._weekdaysParse, llc);
1712                if (ii !== -1) {
1713                    return ii;
1714                }
1715                ii = indexOf.call(this._shortWeekdaysParse, llc);
1716                return ii !== -1 ? ii : null;
1717            }
1718        }
1719    }
1720
1721    function localeWeekdaysParse (weekdayName, format, strict) {
1722        var i, mom, regex;
1723
1724        if (this._weekdaysParseExact) {
1725            return handleStrictParse$1.call(this, weekdayName, format, strict);
1726        }
1727
1728        if (!this._weekdaysParse) {
1729            this._weekdaysParse = [];
1730            this._minWeekdaysParse = [];
1731            this._shortWeekdaysParse = [];
1732            this._fullWeekdaysParse = [];
1733        }
1734
1735        for (i = 0; i < 7; i++) {
1736            // make the regex if we don't have it already
1737
1738            mom = createUTC([2000, 1]).day(i);
1739            if (strict && !this._fullWeekdaysParse[i]) {
1740                this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
1741                this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
1742                this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
1743            }
1744            if (!this._weekdaysParse[i]) {
1745                regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
1746                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1747            }
1748            // test the regex
1749            if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
1750                return i;
1751            } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
1752                return i;
1753            } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
1754                return i;
1755            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1756                return i;
1757            }
1758        }
1759    }
1760
1761    // MOMENTS
1762
1763    function getSetDayOfWeek (input) {
1764        if (!this.isValid()) {
1765            return input != null ? this : NaN;
1766        }
1767        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1768        if (input != null) {
1769            input = parseWeekday(input, this.localeData());
1770            return this.add(input - day, 'd');
1771        } else {
1772            return day;
1773        }
1774    }
1775
1776    function getSetLocaleDayOfWeek (input) {
1777        if (!this.isValid()) {
1778            return input != null ? this : NaN;
1779        }
1780        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1781        return input == null ? weekday : this.add(input - weekday, 'd');
1782    }
1783
1784    function getSetISODayOfWeek (input) {
1785        if (!this.isValid()) {
1786            return input != null ? this : NaN;
1787        }
1788
1789        // behaves the same as moment#day except
1790        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1791        // as a setter, sunday should belong to the previous week.
1792
1793        if (input != null) {
1794            var weekday = parseIsoWeekday(input, this.localeData());
1795            return this.day(this.day() % 7 ? weekday : weekday - 7);
1796        } else {
1797            return this.day() || 7;
1798        }
1799    }
1800
1801    var defaultWeekdaysRegex = matchWord;
1802    function weekdaysRegex (isStrict) {
1803        if (this._weekdaysParseExact) {
1804            if (!hasOwnProp(this, '_weekdaysRegex')) {
1805                computeWeekdaysParse.call(this);
1806            }
1807            if (isStrict) {
1808                return this._weekdaysStrictRegex;
1809            } else {
1810                return this._weekdaysRegex;
1811            }
1812        } else {
1813            if (!hasOwnProp(this, '_weekdaysRegex')) {
1814                this._weekdaysRegex = defaultWeekdaysRegex;
1815            }
1816            return this._weekdaysStrictRegex && isStrict ?
1817                this._weekdaysStrictRegex : this._weekdaysRegex;
1818        }
1819    }
1820
1821    var defaultWeekdaysShortRegex = matchWord;
1822    function weekdaysShortRegex (isStrict) {
1823        if (this._weekdaysParseExact) {
1824            if (!hasOwnProp(this, '_weekdaysRegex')) {
1825                computeWeekdaysParse.call(this);
1826            }
1827            if (isStrict) {
1828                return this._weekdaysShortStrictRegex;
1829            } else {
1830                return this._weekdaysShortRegex;
1831            }
1832        } else {
1833            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1834                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1835            }
1836            return this._weekdaysShortStrictRegex && isStrict ?
1837                this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
1838        }
1839    }
1840
1841    var defaultWeekdaysMinRegex = matchWord;
1842    function weekdaysMinRegex (isStrict) {
1843        if (this._weekdaysParseExact) {
1844            if (!hasOwnProp(this, '_weekdaysRegex')) {
1845                computeWeekdaysParse.call(this);
1846            }
1847            if (isStrict) {
1848                return this._weekdaysMinStrictRegex;
1849            } else {
1850                return this._weekdaysMinRegex;
1851            }
1852        } else {
1853            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1854                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1855            }
1856            return this._weekdaysMinStrictRegex && isStrict ?
1857                this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
1858        }
1859    }
1860
1861
1862    function computeWeekdaysParse () {
1863        function cmpLenRev(a, b) {
1864            return b.length - a.length;
1865        }
1866
1867        var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
1868            i, mom, minp, shortp, longp;
1869        for (i = 0; i < 7; i++) {
1870            // make the regex if we don't have it already
1871            mom = createUTC([2000, 1]).day(i);
1872            minp = this.weekdaysMin(mom, '');
1873            shortp = this.weekdaysShort(mom, '');
1874            longp = this.weekdays(mom, '');
1875            minPieces.push(minp);
1876            shortPieces.push(shortp);
1877            longPieces.push(longp);
1878            mixedPieces.push(minp);
1879            mixedPieces.push(shortp);
1880            mixedPieces.push(longp);
1881        }
1882        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1883        // will match the longer piece.
1884        minPieces.sort(cmpLenRev);
1885        shortPieces.sort(cmpLenRev);
1886        longPieces.sort(cmpLenRev);
1887        mixedPieces.sort(cmpLenRev);
1888        for (i = 0; i < 7; i++) {
1889            shortPieces[i] = regexEscape(shortPieces[i]);
1890            longPieces[i] = regexEscape(longPieces[i]);
1891            mixedPieces[i] = regexEscape(mixedPieces[i]);
1892        }
1893
1894        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1895        this._weekdaysShortRegex = this._weekdaysRegex;
1896        this._weekdaysMinRegex = this._weekdaysRegex;
1897
1898        this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1899        this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1900        this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
1901    }
1902
1903    // FORMATTING
1904
1905    function hFormat() {
1906        return this.hours() % 12 || 12;
1907    }
1908
1909    function kFormat() {
1910        return this.hours() || 24;
1911    }
1912
1913    addFormatToken('H', ['HH', 2], 0, 'hour');
1914    addFormatToken('h', ['hh', 2], 0, hFormat);
1915    addFormatToken('k', ['kk', 2], 0, kFormat);
1916
1917    addFormatToken('hmm', 0, 0, function () {
1918        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1919    });
1920
1921    addFormatToken('hmmss', 0, 0, function () {
1922        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
1923            zeroFill(this.seconds(), 2);
1924    });
1925
1926    addFormatToken('Hmm', 0, 0, function () {
1927        return '' + this.hours() + zeroFill(this.minutes(), 2);
1928    });
1929
1930    addFormatToken('Hmmss', 0, 0, function () {
1931        return '' + this.hours() + zeroFill(this.minutes(), 2) +
1932            zeroFill(this.seconds(), 2);
1933    });
1934
1935    function meridiem (token, lowercase) {
1936        addFormatToken(token, 0, 0, function () {
1937            return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
1938        });
1939    }
1940
1941    meridiem('a', true);
1942    meridiem('A', false);
1943
1944    // ALIASES
1945
1946    addUnitAlias('hour', 'h');
1947
1948    // PRIORITY
1949    addUnitPriority('hour', 13);
1950
1951    // PARSING
1952
1953    function matchMeridiem (isStrict, locale) {
1954        return locale._meridiemParse;
1955    }
1956
1957    addRegexToken('a',  matchMeridiem);
1958    addRegexToken('A',  matchMeridiem);
1959    addRegexToken('H',  match1to2);
1960    addRegexToken('h',  match1to2);
1961    addRegexToken('k',  match1to2);
1962    addRegexToken('HH', match1to2, match2);
1963    addRegexToken('hh', match1to2, match2);
1964    addRegexToken('kk', match1to2, match2);
1965
1966    addRegexToken('hmm', match3to4);
1967    addRegexToken('hmmss', match5to6);
1968    addRegexToken('Hmm', match3to4);
1969    addRegexToken('Hmmss', match5to6);
1970
1971    addParseToken(['H', 'HH'], HOUR);
1972    addParseToken(['k', 'kk'], function (input, array, config) {
1973        var kInput = toInt(input);
1974        array[HOUR] = kInput === 24 ? 0 : kInput;
1975    });
1976    addParseToken(['a', 'A'], function (input, array, config) {
1977        config._isPm = config._locale.isPM(input);
1978        config._meridiem = input;
1979    });
1980    addParseToken(['h', 'hh'], function (input, array, config) {
1981        array[HOUR] = toInt(input);
1982        getParsingFlags(config).bigHour = true;
1983    });
1984    addParseToken('hmm', function (input, array, config) {
1985        var pos = input.length - 2;
1986        array[HOUR] = toInt(input.substr(0, pos));
1987        array[MINUTE] = toInt(input.substr(pos));
1988        getParsingFlags(config).bigHour = true;
1989    });
1990    addParseToken('hmmss', function (input, array, config) {
1991        var pos1 = input.length - 4;
1992        var pos2 = input.length - 2;
1993        array[HOUR] = toInt(input.substr(0, pos1));
1994        array[MINUTE] = toInt(input.substr(pos1, 2));
1995        array[SECOND] = toInt(input.substr(pos2));
1996        getParsingFlags(config).bigHour = true;
1997    });
1998    addParseToken('Hmm', function (input, array, config) {
1999        var pos = input.length - 2;
2000        array[HOUR] = toInt(input.substr(0, pos));
2001        array[MINUTE] = toInt(input.substr(pos));
2002    });
2003    addParseToken('Hmmss', function (input, array, config) {
2004        var pos1 = input.length - 4;
2005        var pos2 = input.length - 2;
2006        array[HOUR] = toInt(input.substr(0, pos1));
2007        array[MINUTE] = toInt(input.substr(pos1, 2));
2008        array[SECOND] = toInt(input.substr(pos2));
2009    });
2010
2011    // LOCALES
2012
2013    function localeIsPM (input) {
2014        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
2015        // Using charAt should be more compatible.
2016        return ((input + '').toLowerCase().charAt(0) === 'p');
2017    }
2018
2019    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
2020    function localeMeridiem (hours, minutes, isLower) {
2021        if (hours > 11) {
2022            return isLower ? 'pm' : 'PM';
2023        } else {
2024            return isLower ? 'am' : 'AM';
2025        }
2026    }
2027
2028
2029    // MOMENTS
2030
2031    // Setting the hour should keep the time, because the user explicitly
2032    // specified which hour they want. So trying to maintain the same hour (in
2033    // a new timezone) makes sense. Adding/subtracting hours does not follow
2034    // this rule.
2035    var getSetHour = makeGetSet('Hours', true);
2036
2037    var baseConfig = {
2038        calendar: defaultCalendar,
2039        longDateFormat: defaultLongDateFormat,
2040        invalidDate: defaultInvalidDate,
2041        ordinal: defaultOrdinal,
2042        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
2043        relativeTime: defaultRelativeTime,
2044
2045        months: defaultLocaleMonths,
2046        monthsShort: defaultLocaleMonthsShort,
2047
2048        week: defaultLocaleWeek,
2049
2050        weekdays: defaultLocaleWeekdays,
2051        weekdaysMin: defaultLocaleWeekdaysMin,
2052        weekdaysShort: defaultLocaleWeekdaysShort,
2053
2054        meridiemParse: defaultLocaleMeridiemParse
2055    };
2056
2057    // internal storage for locale config files
2058    var locales = {};
2059    var localeFamilies = {};
2060    var globalLocale;
2061
2062    function normalizeLocale(key) {
2063        return key ? key.toLowerCase().replace('_', '-') : key;
2064    }
2065
2066    // pick the locale from the array
2067    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
2068    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
2069    function chooseLocale(names) {
2070        var i = 0, j, next, locale, split;
2071
2072        while (i < names.length) {
2073            split = normalizeLocale(names[i]).split('-');
2074            j = split.length;
2075            next = normalizeLocale(names[i + 1]);
2076            next = next ? next.split('-') : null;
2077            while (j > 0) {
2078                locale = loadLocale(split.slice(0, j).join('-'));
2079                if (locale) {
2080                    return locale;
2081                }
2082                if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
2083                    //the next array item is better than a shallower substring of this one
2084                    break;
2085                }
2086                j--;
2087            }
2088            i++;
2089        }
2090        return globalLocale;
2091    }
2092
2093    function loadLocale(name) {
2094        var oldLocale = null;
2095        // TODO: Find a better way to register and load all the locales in Node
2096        if (!locales[name] && (typeof module !== 'undefined') &&
2097                module && module.exports) {
2098            try {
2099                oldLocale = globalLocale._abbr;
2100                var aliasedRequire = require;
2101                aliasedRequire('./locale/' + name);
2102                getSetGlobalLocale(oldLocale);
2103            } catch (e) {}
2104        }
2105        return locales[name];
2106    }
2107
2108    // This function will load locale and then set the global locale.  If
2109    // no arguments are passed in, it will simply return the current global
2110    // locale key.
2111    function getSetGlobalLocale (key, values) {
2112        var data;
2113        if (key) {
2114            if (isUndefined(values)) {
2115                data = getLocale(key);
2116            }
2117            else {
2118                data = defineLocale(key, values);
2119            }
2120
2121            if (data) {
2122                // moment.duration._locale = moment._locale = data;
2123                globalLocale = data;
2124            }
2125            else {
2126                if ((typeof console !==  'undefined') && console.warn) {
2127                    //warn user if arguments are passed but the locale could not be set
2128                    console.warn('Locale ' + key +  ' not found. Did you forget to load it?');
2129                }
2130            }
2131        }
2132
2133        return globalLocale._abbr;
2134    }
2135
2136    function defineLocale (name, config) {
2137        if (config !== null) {
2138            var locale, parentConfig = baseConfig;
2139            config.abbr = name;
2140            if (locales[name] != null) {
2141                deprecateSimple('defineLocaleOverride',
2142                        'use moment.updateLocale(localeName, config) to change ' +
2143                        'an existing locale. moment.defineLocale(localeName, ' +
2144                        'config) should only be used for creating a new locale ' +
2145                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
2146                parentConfig = locales[name]._config;
2147            } else if (config.parentLocale != null) {
2148                if (locales[config.parentLocale] != null) {
2149                    parentConfig = locales[config.parentLocale]._config;
2150                } else {
2151                    locale = loadLocale(config.parentLocale);
2152                    if (locale != null) {
2153                        parentConfig = locale._config;
2154                    } else {
2155                        if (!localeFamilies[config.parentLocale]) {
2156                            localeFamilies[config.parentLocale] = [];
2157                        }
2158                        localeFamilies[config.parentLocale].push({
2159                            name: name,
2160                            config: config
2161                        });
2162                        return null;
2163                    }
2164                }
2165            }
2166            locales[name] = new Locale(mergeConfigs(parentConfig, config));
2167
2168            if (localeFamilies[name]) {
2169                localeFamilies[name].forEach(function (x) {
2170                    defineLocale(x.name, x.config);
2171                });
2172            }
2173
2174            // backwards compat for now: also set the locale
2175            // make sure we set the locale AFTER all child locales have been
2176            // created, so we won't end up with the child locale set.
2177            getSetGlobalLocale(name);
2178
2179
2180            return locales[name];
2181        } else {
2182            // useful for testing
2183            delete locales[name];
2184            return null;
2185        }
2186    }
2187
2188    function updateLocale(name, config) {
2189        if (config != null) {
2190            var locale, tmpLocale, parentConfig = baseConfig;
2191            // MERGE
2192            tmpLocale = loadLocale(name);
2193            if (tmpLocale != null) {
2194                parentConfig = tmpLocale._config;
2195            }
2196            config = mergeConfigs(parentConfig, config);
2197            locale = new Locale(config);
2198            locale.parentLocale = locales[name];
2199            locales[name] = locale;
2200
2201            // backwards compat for now: also set the locale
2202            getSetGlobalLocale(name);
2203        } else {
2204            // pass null for config to unupdate, useful for tests
2205            if (locales[name] != null) {
2206                if (locales[name].parentLocale != null) {
2207                    locales[name] = locales[name].parentLocale;
2208                } else if (locales[name] != null) {
2209                    delete locales[name];
2210                }
2211            }
2212        }
2213        return locales[name];
2214    }
2215
2216    // returns locale data
2217    function getLocale (key) {
2218        var locale;
2219
2220        if (key && key._locale && key._locale._abbr) {
2221            key = key._locale._abbr;
2222        }
2223
2224        if (!key) {
2225            return globalLocale;
2226        }
2227
2228        if (!isArray(key)) {
2229            //short-circuit everything else
2230            locale = loadLocale(key);
2231            if (locale) {
2232                return locale;
2233            }
2234            key = [key];
2235        }
2236
2237        return chooseLocale(key);
2238    }
2239
2240    function listLocales() {
2241        return keys(locales);
2242    }
2243
2244    function checkOverflow (m) {
2245        var overflow;
2246        var a = m._a;
2247
2248        if (a && getParsingFlags(m).overflow === -2) {
2249            overflow =
2250                a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :
2251                a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
2252                a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
2253                a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :
2254                a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :
2255                a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
2256                -1;
2257
2258            if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
2259                overflow = DATE;
2260            }
2261            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2262                overflow = WEEK;
2263            }
2264            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2265                overflow = WEEKDAY;
2266            }
2267
2268            getParsingFlags(m).overflow = overflow;
2269        }
2270
2271        return m;
2272    }
2273
2274    // Pick the first defined of two or three arguments.
2275    function defaults(a, b, c) {
2276        if (a != null) {
2277            return a;
2278        }
2279        if (b != null) {
2280            return b;
2281        }
2282        return c;
2283    }
2284
2285    function currentDateArray(config) {
2286        // hooks is actually the exported moment object
2287        var nowValue = new Date(hooks.now());
2288        if (config._useUTC) {
2289            return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
2290        }
2291        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2292    }
2293
2294    // convert an array to a date.
2295    // the array should mirror the parameters below
2296    // note: all values past the year are optional and will default to the lowest possible value.
2297    // [year, month, day , hour, minute, second, millisecond]
2298    function configFromArray (config) {
2299        var i, date, input = [], currentDate, expectedWeekday, yearToUse;
2300
2301        if (config._d) {
2302            return;
2303        }
2304
2305        currentDate = currentDateArray(config);
2306
2307        //compute day of the year from weeks and weekdays
2308        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2309            dayOfYearFromWeekInfo(config);
2310        }
2311
2312        //if the day of the year is set, figure out what it is
2313        if (config._dayOfYear != null) {
2314            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2315
2316            if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
2317                getParsingFlags(config)._overflowDayOfYear = true;
2318            }
2319
2320            date = createUTCDate(yearToUse, 0, config._dayOfYear);
2321            config._a[MONTH] = date.getUTCMonth();
2322            config._a[DATE] = date.getUTCDate();
2323        }
2324
2325        // Default to current date.
2326        // * if no year, month, day of month are given, default to today
2327        // * if day of month is given, default month and year
2328        // * if month is given, default only year
2329        // * if year is given, don't default anything
2330        for (i = 0; i < 3 && config._a[i] == null; ++i) {
2331            config._a[i] = input[i] = currentDate[i];
2332        }
2333
2334        // Zero out whatever was not defaulted, including time
2335        for (; i < 7; i++) {
2336            config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
2337        }
2338
2339        // Check for 24:00:00.000
2340        if (config._a[HOUR] === 24 &&
2341                config._a[MINUTE] === 0 &&
2342                config._a[SECOND] === 0 &&
2343                config._a[MILLISECOND] === 0) {
2344            config._nextDay = true;
2345            config._a[HOUR] = 0;
2346        }
2347
2348        config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
2349        expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
2350
2351        // Apply timezone offset from input. The actual utcOffset can be changed
2352        // with parseZone.
2353        if (config._tzm != null) {
2354            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2355        }
2356
2357        if (config._nextDay) {
2358            config._a[HOUR] = 24;
2359        }
2360
2361        // check for mismatching day of week
2362        if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
2363            getParsingFlags(config).weekdayMismatch = true;
2364        }
2365    }
2366
2367    function dayOfYearFromWeekInfo(config) {
2368        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
2369
2370        w = config._w;
2371        if (w.GG != null || w.W != null || w.E != null) {
2372            dow = 1;
2373            doy = 4;
2374
2375            // TODO: We need to take the current isoWeekYear, but that depends on
2376            // how we interpret now (local, utc, fixed offset). So create
2377            // a now version of current config (take local/utc/offset flags, and
2378            // create now).
2379            weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
2380            week = defaults(w.W, 1);
2381            weekday = defaults(w.E, 1);
2382            if (weekday < 1 || weekday > 7) {
2383                weekdayOverflow = true;
2384            }
2385        } else {
2386            dow = config._locale._week.dow;
2387            doy = config._locale._week.doy;
2388
2389            var curWeek = weekOfYear(createLocal(), dow, doy);
2390
2391            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2392
2393            // Default to current week.
2394            week = defaults(w.w, curWeek.week);
2395
2396            if (w.d != null) {
2397                // weekday -- low day numbers are considered next week
2398                weekday = w.d;
2399                if (weekday < 0 || weekday > 6) {
2400                    weekdayOverflow = true;
2401                }
2402            } else if (w.e != null) {
2403                // local weekday -- counting starts from begining of week
2404                weekday = w.e + dow;
2405                if (w.e < 0 || w.e > 6) {
2406                    weekdayOverflow = true;
2407                }
2408            } else {
2409                // default to begining of week
2410                weekday = dow;
2411            }
2412        }
2413        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2414            getParsingFlags(config)._overflowWeeks = true;
2415        } else if (weekdayOverflow != null) {
2416            getParsingFlags(config)._overflowWeekday = true;
2417        } else {
2418            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2419            config._a[YEAR] = temp.year;
2420            config._dayOfYear = temp.dayOfYear;
2421        }
2422    }
2423
2424    // iso 8601 regex
2425    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
2426    var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2427    var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2428
2429    var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
2430
2431    var isoDates = [
2432        ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2433        ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2434        ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2435        ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2436        ['YYYY-DDD', /\d{4}-\d{3}/],
2437        ['YYYY-MM', /\d{4}-\d\d/, false],
2438        ['YYYYYYMMDD', /[+-]\d{10}/],
2439        ['YYYYMMDD', /\d{8}/],
2440        // YYYYMM is NOT allowed by the standard
2441        ['GGGG[W]WWE', /\d{4}W\d{3}/],
2442        ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2443        ['YYYYDDD', /\d{7}/]
2444    ];
2445
2446    // iso time formats and regexes
2447    var isoTimes = [
2448        ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2449        ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2450        ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2451        ['HH:mm', /\d\d:\d\d/],
2452        ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2453        ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2454        ['HHmmss', /\d\d\d\d\d\d/],
2455        ['HHmm', /\d\d\d\d/],
2456        ['HH', /\d\d/]
2457    ];
2458
2459    var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
2460
2461    // date from iso format
2462    function configFromISO(config) {
2463        var i, l,
2464            string = config._i,
2465            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2466            allowTime, dateFormat, timeFormat, tzFormat;
2467
2468        if (match) {
2469            getParsingFlags(config).iso = true;
2470
2471            for (i = 0, l = isoDates.length; i < l; i++) {
2472                if (isoDates[i][1].exec(match[1])) {
2473                    dateFormat = isoDates[i][0];
2474                    allowTime = isoDates[i][2] !== false;
2475                    break;
2476                }
2477            }
2478            if (dateFormat == null) {
2479                config._isValid = false;
2480                return;
2481            }
2482            if (match[3]) {
2483                for (i = 0, l = isoTimes.length; i < l; i++) {
2484                    if (isoTimes[i][1].exec(match[3])) {
2485                        // match[2] should be 'T' or space
2486                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
2487                        break;
2488                    }
2489                }
2490                if (timeFormat == null) {
2491                    config._isValid = false;
2492                    return;
2493                }
2494            }
2495            if (!allowTime && timeFormat != null) {
2496                config._isValid = false;
2497                return;
2498            }
2499            if (match[4]) {
2500                if (tzRegex.exec(match[4])) {
2501                    tzFormat = 'Z';
2502                } else {
2503                    config._isValid = false;
2504                    return;
2505                }
2506            }
2507            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2508            configFromStringAndFormat(config);
2509        } else {
2510            config._isValid = false;
2511        }
2512    }
2513
2514    // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2515    var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
2516
2517    function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
2518        var result = [
2519            untruncateYear(yearStr),
2520            defaultLocaleMonthsShort.indexOf(monthStr),
2521            parseInt(dayStr, 10),
2522            parseInt(hourStr, 10),
2523            parseInt(minuteStr, 10)
2524        ];
2525
2526        if (secondStr) {
2527            result.push(parseInt(secondStr, 10));
2528        }
2529
2530        return result;
2531    }
2532
2533    function untruncateYear(yearStr) {
2534        var year = parseInt(yearStr, 10);
2535        if (year <= 49) {
2536            return 2000 + year;
2537        } else if (year <= 999) {
2538            return 1900 + year;
2539        }
2540        return year;
2541    }
2542
2543    function preprocessRFC2822(s) {
2544        // Remove comments and folding whitespace and replace multiple-spaces with a single space
2545        return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
2546    }
2547
2548    function checkWeekday(weekdayStr, parsedInput, config) {
2549        if (weekdayStr) {
2550            // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
2551            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2552                weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
2553            if (weekdayProvided !== weekdayActual) {
2554                getParsingFlags(config).weekdayMismatch = true;
2555                config._isValid = false;
2556                return false;
2557            }
2558        }
2559        return true;
2560    }
2561
2562    var obsOffsets = {
2563        UT: 0,
2564        GMT: 0,
2565        EDT: -4 * 60,
2566        EST: -5 * 60,
2567        CDT: -5 * 60,
2568        CST: -6 * 60,
2569        MDT: -6 * 60,
2570        MST: -7 * 60,
2571        PDT: -7 * 60,
2572        PST: -8 * 60
2573    };
2574
2575    function calculateOffset(obsOffset, militaryOffset, numOffset) {
2576        if (obsOffset) {
2577            return obsOffsets[obsOffset];
2578        } else if (militaryOffset) {
2579            // the only allowed military tz is Z
2580            return 0;
2581        } else {
2582            var hm = parseInt(numOffset, 10);
2583            var m = hm % 100, h = (hm - m) / 100;
2584            return h * 60 + m;
2585        }
2586    }
2587
2588    // date and time from ref 2822 format
2589    function configFromRFC2822(config) {
2590        var match = rfc2822.exec(preprocessRFC2822(config._i));
2591        if (match) {
2592            var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
2593            if (!checkWeekday(match[1], parsedArray, config)) {
2594                return;
2595            }
2596
2597            config._a = parsedArray;
2598            config._tzm = calculateOffset(match[8], match[9], match[10]);
2599
2600            config._d = createUTCDate.apply(null, config._a);
2601            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2602
2603            getParsingFlags(config).rfc2822 = true;
2604        } else {
2605            config._isValid = false;
2606        }
2607    }
2608
2609    // date from iso format or fallback
2610    function configFromString(config) {
2611        var matched = aspNetJsonRegex.exec(config._i);
2612
2613        if (matched !== null) {
2614            config._d = new Date(+matched[1]);
2615            return;
2616        }
2617
2618        configFromISO(config);
2619        if (config._isValid === false) {
2620            delete config._isValid;
2621        } else {
2622            return;
2623        }
2624
2625        configFromRFC2822(config);
2626        if (config._isValid === false) {
2627            delete config._isValid;
2628        } else {
2629            return;
2630        }
2631
2632        // Final attempt, use Input Fallback
2633        hooks.createFromInputFallback(config);
2634    }
2635
2636    hooks.createFromInputFallback = deprecate(
2637        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2638        'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2639        'discouraged and will be removed in an upcoming major release. Please refer to ' +
2640        'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2641        function (config) {
2642            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2643        }
2644    );
2645
2646    // constant that refers to the ISO standard
2647    hooks.ISO_8601 = function () {};
2648
2649    // constant that refers to the RFC 2822 form
2650    hooks.RFC_2822 = function () {};
2651
2652    // date from string and format string
2653    function configFromStringAndFormat(config) {
2654        // TODO: Move this to another part of the creation flow to prevent circular deps
2655        if (config._f === hooks.ISO_8601) {
2656            configFromISO(config);
2657            return;
2658        }
2659        if (config._f === hooks.RFC_2822) {
2660            configFromRFC2822(config);
2661            return;
2662        }
2663        config._a = [];
2664        getParsingFlags(config).empty = true;
2665
2666        // This array is used to make a Date, either with `new Date` or `Date.UTC`
2667        var string = '' + config._i,
2668            i, parsedInput, tokens, token, skipped,
2669            stringLength = string.length,
2670            totalParsedInputLength = 0;
2671
2672        tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
2673
2674        for (i = 0; i < tokens.length; i++) {
2675            token = tokens[i];
2676            parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
2677            // console.log('token', token, 'parsedInput', parsedInput,
2678            //         'regex', getParseRegexForToken(token, config));
2679            if (parsedInput) {
2680                skipped = string.substr(0, string.indexOf(parsedInput));
2681                if (skipped.length > 0) {
2682                    getParsingFlags(config).unusedInput.push(skipped);
2683                }
2684                string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
2685                totalParsedInputLength += parsedInput.length;
2686            }
2687            // don't parse if it's not a known token
2688            if (formatTokenFunctions[token]) {
2689                if (parsedInput) {
2690                    getParsingFlags(config).empty = false;
2691                }
2692                else {
2693                    getParsingFlags(config).unusedTokens.push(token);
2694                }
2695                addTimeToArrayFromToken(token, parsedInput, config);
2696            }
2697            else if (config._strict && !parsedInput) {
2698                getParsingFlags(config).unusedTokens.push(token);
2699            }
2700        }
2701
2702        // add remaining unparsed input length to the string
2703        getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
2704        if (string.length > 0) {
2705            getParsingFlags(config).unusedInput.push(string);
2706        }
2707
2708        // clear _12h flag if hour is <= 12
2709        if (config._a[HOUR] <= 12 &&
2710            getParsingFlags(config).bigHour === true &&
2711            config._a[HOUR] > 0) {
2712            getParsingFlags(config).bigHour = undefined;
2713        }
2714
2715        getParsingFlags(config).parsedDateParts = config._a.slice(0);
2716        getParsingFlags(config).meridiem = config._meridiem;
2717        // handle meridiem
2718        config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
2719
2720        configFromArray(config);
2721        checkOverflow(config);
2722    }
2723
2724
2725    function meridiemFixWrap (locale, hour, meridiem) {
2726        var isPm;
2727
2728        if (meridiem == null) {
2729            // nothing to do
2730            return hour;
2731        }
2732        if (locale.meridiemHour != null) {
2733            return locale.meridiemHour(hour, meridiem);
2734        } else if (locale.isPM != null) {
2735            // Fallback
2736            isPm = locale.isPM(meridiem);
2737            if (isPm && hour < 12) {
2738                hour += 12;
2739            }
2740            if (!isPm && hour === 12) {
2741                hour = 0;
2742            }
2743            return hour;
2744        } else {
2745            // this is not supposed to happen
2746            return hour;
2747        }
2748    }
2749
2750    // date from string and array of format strings
2751    function configFromStringAndArray(config) {
2752        var tempConfig,
2753            bestMoment,
2754
2755            scoreToBeat,
2756            i,
2757            currentScore;
2758
2759        if (config._f.length === 0) {
2760            getParsingFlags(config).invalidFormat = true;
2761            config._d = new Date(NaN);
2762            return;
2763        }
2764
2765        for (i = 0; i < config._f.length; i++) {
2766            currentScore = 0;
2767            tempConfig = copyConfig({}, config);
2768            if (config._useUTC != null) {
2769                tempConfig._useUTC = config._useUTC;
2770            }
2771            tempConfig._f = config._f[i];
2772            configFromStringAndFormat(tempConfig);
2773
2774            if (!isValid(tempConfig)) {
2775                continue;
2776            }
2777
2778            // if there is any input that was not parsed add a penalty for that format
2779            currentScore += getParsingFlags(tempConfig).charsLeftOver;
2780
2781            //or tokens
2782            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2783
2784            getParsingFlags(tempConfig).score = currentScore;
2785
2786            if (scoreToBeat == null || currentScore < scoreToBeat) {
2787                scoreToBeat = currentScore;
2788                bestMoment = tempConfig;
2789            }
2790        }
2791
2792        extend(config, bestMoment || tempConfig);
2793    }
2794
2795    function configFromObject(config) {
2796        if (config._d) {
2797            return;
2798        }
2799
2800        var i = normalizeObjectUnits(config._i);
2801        config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
2802            return obj && parseInt(obj, 10);
2803        });
2804
2805        configFromArray(config);
2806    }
2807
2808    function createFromConfig (config) {
2809        var res = new Moment(checkOverflow(prepareConfig(config)));
2810        if (res._nextDay) {
2811            // Adding is smart enough around DST
2812            res.add(1, 'd');
2813            res._nextDay = undefined;
2814        }
2815
2816        return res;
2817    }
2818
2819    function prepareConfig (config) {
2820        var input = config._i,
2821            format = config._f;
2822
2823        config._locale = config._locale || getLocale(config._l);
2824
2825        if (input === null || (format === undefined && input === '')) {
2826            return createInvalid({nullInput: true});
2827        }
2828
2829        if (typeof input === 'string') {
2830            config._i = input = config._locale.preparse(input);
2831        }
2832
2833        if (isMoment(input)) {
2834            return new Moment(checkOverflow(input));
2835        } else if (isDate(input)) {
2836            config._d = input;
2837        } else if (isArray(format)) {
2838            configFromStringAndArray(config);
2839        } else if (format) {
2840            configFromStringAndFormat(config);
2841        }  else {
2842            configFromInput(config);
2843        }
2844
2845        if (!isValid(config)) {
2846            config._d = null;
2847        }
2848
2849        return config;
2850    }
2851
2852    function configFromInput(config) {
2853        var input = config._i;
2854        if (isUndefined(input)) {
2855            config._d = new Date(hooks.now());
2856        } else if (isDate(input)) {
2857            config._d = new Date(input.valueOf());
2858        } else if (typeof input === 'string') {
2859            configFromString(config);
2860        } else if (isArray(input)) {
2861            config._a = map(input.slice(0), function (obj) {
2862                return parseInt(obj, 10);
2863            });
2864            configFromArray(config);
2865        } else if (isObject(input)) {
2866            configFromObject(config);
2867        } else if (isNumber(input)) {
2868            // from milliseconds
2869            config._d = new Date(input);
2870        } else {
2871            hooks.createFromInputFallback(config);
2872        }
2873    }
2874
2875    function createLocalOrUTC (input, format, locale, strict, isUTC) {
2876        var c = {};
2877
2878        if (locale === true || locale === false) {
2879            strict = locale;
2880            locale = undefined;
2881        }
2882
2883        if ((isObject(input) && isObjectEmpty(input)) ||
2884                (isArray(input) && input.length === 0)) {
2885            input = undefined;
2886        }
2887        // object construction must be done this way.
2888        // https://github.com/moment/moment/issues/1423
2889        c._isAMomentObject = true;
2890        c._useUTC = c._isUTC = isUTC;
2891        c._l = locale;
2892        c._i = input;
2893        c._f = format;
2894        c._strict = strict;
2895
2896        return createFromConfig(c);
2897    }
2898
2899    function createLocal (input, format, locale, strict) {
2900        return createLocalOrUTC(input, format, locale, strict, false);
2901    }
2902
2903    var prototypeMin = deprecate(
2904        'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
2905        function () {
2906            var other = createLocal.apply(null, arguments);
2907            if (this.isValid() && other.isValid()) {
2908                return other < this ? this : other;
2909            } else {
2910                return createInvalid();
2911            }
2912        }
2913    );
2914
2915    var prototypeMax = deprecate(
2916        'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
2917        function () {
2918            var other = createLocal.apply(null, arguments);
2919            if (this.isValid() && other.isValid()) {
2920                return other > this ? this : other;
2921            } else {
2922                return createInvalid();
2923            }
2924        }
2925    );
2926
2927    // Pick a moment m from moments so that m[fn](other) is true for all
2928    // other. This relies on the function fn to be transitive.
2929    //
2930    // moments should either be an array of moment objects or an array, whose
2931    // first element is an array of moment objects.
2932    function pickBy(fn, moments) {
2933        var res, i;
2934        if (moments.length === 1 && isArray(moments[0])) {
2935            moments = moments[0];
2936        }
2937        if (!moments.length) {
2938            return createLocal();
2939        }
2940        res = moments[0];
2941        for (i = 1; i < moments.length; ++i) {
2942            if (!moments[i].isValid() || moments[i][fn](res)) {
2943                res = moments[i];
2944            }
2945        }
2946        return res;
2947    }
2948
2949    // TODO: Use [].sort instead?
2950    function min () {
2951        var args = [].slice.call(arguments, 0);
2952
2953        return pickBy('isBefore', args);
2954    }
2955
2956    function max () {
2957        var args = [].slice.call(arguments, 0);
2958
2959        return pickBy('isAfter', args);
2960    }
2961
2962    var now = function () {
2963        return Date.now ? Date.now() : +(new Date());
2964    };
2965
2966    var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
2967
2968    function isDurationValid(m) {
2969        for (var key in m) {
2970            if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
2971                return false;
2972            }
2973        }
2974
2975        var unitHasDecimal = false;
2976        for (var i = 0; i < ordering.length; ++i) {
2977            if (m[ordering[i]]) {
2978                if (unitHasDecimal) {
2979                    return false; // only allow non-integers for smallest unit
2980                }
2981                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
2982                    unitHasDecimal = true;
2983                }
2984            }
2985        }
2986
2987        return true;
2988    }
2989
2990    function isValid$1() {
2991        return this._isValid;
2992    }
2993
2994    function createInvalid$1() {
2995        return createDuration(NaN);
2996    }
2997
2998    function Duration (duration) {
2999        var normalizedInput = normalizeObjectUnits(duration),
3000            years = normalizedInput.year || 0,
3001            quarters = normalizedInput.quarter || 0,
3002            months = normalizedInput.month || 0,
3003            weeks = normalizedInput.week || 0,
3004            days = normalizedInput.day || 0,
3005            hours = normalizedInput.hour || 0,
3006            minutes = normalizedInput.minute || 0,
3007            seconds = normalizedInput.second || 0,
3008            milliseconds = normalizedInput.millisecond || 0;
3009
3010        this._isValid = isDurationValid(normalizedInput);
3011
3012        // representation for dateAddRemove
3013        this._milliseconds = +milliseconds +
3014            seconds * 1e3 + // 1000
3015            minutes * 6e4 + // 1000 * 60
3016            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
3017        // Because of dateAddRemove treats 24 hours as different from a
3018        // day when working around DST, we need to store them separately
3019        this._days = +days +
3020            weeks * 7;
3021        // It is impossible to translate months into days without knowing
3022        // which months you are are talking about, so we have to store
3023        // it separately.
3024        this._months = +months +
3025            quarters * 3 +
3026            years * 12;
3027
3028        this._data = {};
3029
3030        this._locale = getLocale();
3031
3032        this._bubble();
3033    }
3034
3035    function isDuration (obj) {
3036        return obj instanceof Duration;
3037    }
3038
3039    function absRound (number) {
3040        if (number < 0) {
3041            return Math.round(-1 * number) * -1;
3042        } else {
3043            return Math.round(number);
3044        }
3045    }
3046
3047    // FORMATTING
3048
3049    function offset (token, separator) {
3050        addFormatToken(token, 0, 0, function () {
3051            var offset = this.utcOffset();
3052            var sign = '+';
3053            if (offset < 0) {
3054                offset = -offset;
3055                sign = '-';
3056            }
3057            return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
3058        });
3059    }
3060
3061    offset('Z', ':');
3062    offset('ZZ', '');
3063
3064    // PARSING
3065
3066    addRegexToken('Z',  matchShortOffset);
3067    addRegexToken('ZZ', matchShortOffset);
3068    addParseToken(['Z', 'ZZ'], function (input, array, config) {
3069        config._useUTC = true;
3070        config._tzm = offsetFromString(matchShortOffset, input);
3071    });
3072
3073    // HELPERS
3074
3075    // timezone chunker
3076    // '+10:00' > ['10',  '00']
3077    // '-1530'  > ['-15', '30']
3078    var chunkOffset = /([\+\-]|\d\d)/gi;
3079
3080    function offsetFromString(matcher, string) {
3081        var matches = (string || '').match(matcher);
3082
3083        if (matches === null) {
3084            return null;
3085        }
3086
3087        var chunk   = matches[matches.length - 1] || [];
3088        var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];
3089        var minutes = +(parts[1] * 60) + toInt(parts[2]);
3090
3091        return minutes === 0 ?
3092          0 :
3093          parts[0] === '+' ? minutes : -minutes;
3094    }
3095
3096    // Return a moment from input, that is local/utc/zone equivalent to model.
3097    function cloneWithOffset(input, model) {
3098        var res, diff;
3099        if (model._isUTC) {
3100            res = model.clone();
3101            diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
3102            // Use low-level api, because this fn is low-level api.
3103            res._d.setTime(res._d.valueOf() + diff);
3104            hooks.updateOffset(res, false);
3105            return res;
3106        } else {
3107            return createLocal(input).local();
3108        }
3109    }
3110
3111    function getDateOffset (m) {
3112        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
3113        // https://github.com/moment/moment/pull/1871
3114        return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
3115    }
3116
3117    // HOOKS
3118
3119    // This function will be called whenever a moment is mutated.
3120    // It is intended to keep the offset in sync with the timezone.
3121    hooks.updateOffset = function () {};
3122
3123    // MOMENTS
3124
3125    // keepLocalTime = true means only change the timezone, without
3126    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
3127    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
3128    // +0200, so we adjust the time as needed, to be valid.
3129    //
3130    // Keeping the time actually adds/subtracts (one hour)
3131    // from the actual represented time. That is why we call updateOffset
3132    // a second time. In case it wants us to change the offset again
3133    // _changeInProgress == true case, then we have to adjust, because
3134    // there is no such time in the given timezone.
3135    function getSetOffset (input, keepLocalTime, keepMinutes) {
3136        var offset = this._offset || 0,
3137            localAdjust;
3138        if (!this.isValid()) {
3139            return input != null ? this : NaN;
3140        }
3141        if (input != null) {
3142            if (typeof input === 'string') {
3143                input = offsetFromString(matchShortOffset, input);
3144                if (input === null) {
3145                    return this;
3146                }
3147            } else if (Math.abs(input) < 16 && !keepMinutes) {
3148                input = input * 60;
3149            }
3150            if (!this._isUTC && keepLocalTime) {
3151                localAdjust = getDateOffset(this);
3152            }
3153            this._offset = input;
3154            this._isUTC = true;
3155            if (localAdjust != null) {
3156                this.add(localAdjust, 'm');
3157            }
3158            if (offset !== input) {
3159                if (!keepLocalTime || this._changeInProgress) {
3160                    addSubtract(this, createDuration(input - offset, 'm'), 1, false);
3161                } else if (!this._changeInProgress) {
3162                    this._changeInProgress = true;
3163                    hooks.updateOffset(this, true);
3164                    this._changeInProgress = null;
3165                }
3166            }
3167            return this;
3168        } else {
3169            return this._isUTC ? offset : getDateOffset(this);
3170        }
3171    }
3172
3173    function getSetZone (input, keepLocalTime) {
3174        if (input != null) {
3175            if (typeof input !== 'string') {
3176                input = -input;
3177            }
3178
3179            this.utcOffset(input, keepLocalTime);
3180
3181            return this;
3182        } else {
3183            return -this.utcOffset();
3184        }
3185    }
3186
3187    function setOffsetToUTC (keepLocalTime) {
3188        return this.utcOffset(0, keepLocalTime);
3189    }
3190
3191    function setOffsetToLocal (keepLocalTime) {
3192        if (this._isUTC) {
3193            this.utcOffset(0, keepLocalTime);
3194            this._isUTC = false;
3195
3196            if (keepLocalTime) {
3197                this.subtract(getDateOffset(this), 'm');
3198            }
3199        }
3200        return this;
3201    }
3202
3203    function setOffsetToParsedOffset () {
3204        if (this._tzm != null) {
3205            this.utcOffset(this._tzm, false, true);
3206        } else if (typeof this._i === 'string') {
3207            var tZone = offsetFromString(matchOffset, this._i);
3208            if (tZone != null) {
3209                this.utcOffset(tZone);
3210            }
3211            else {
3212                this.utcOffset(0, true);
3213            }
3214        }
3215        return this;
3216    }
3217
3218    function hasAlignedHourOffset (input) {
3219        if (!this.isValid()) {
3220            return false;
3221        }
3222        input = input ? createLocal(input).utcOffset() : 0;
3223
3224        return (this.utcOffset() - input) % 60 === 0;
3225    }
3226
3227    function isDaylightSavingTime () {
3228        return (
3229            this.utcOffset() > this.clone().month(0).utcOffset() ||
3230            this.utcOffset() > this.clone().month(5).utcOffset()
3231        );
3232    }
3233
3234    function isDaylightSavingTimeShifted () {
3235        if (!isUndefined(this._isDSTShifted)) {
3236            return this._isDSTShifted;
3237        }
3238
3239        var c = {};
3240
3241        copyConfig(c, this);
3242        c = prepareConfig(c);
3243
3244        if (c._a) {
3245            var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3246            this._isDSTShifted = this.isValid() &&
3247                compareArrays(c._a, other.toArray()) > 0;
3248        } else {
3249            this._isDSTShifted = false;
3250        }
3251
3252        return this._isDSTShifted;
3253    }
3254
3255    function isLocal () {
3256        return this.isValid() ? !this._isUTC : false;
3257    }
3258
3259    function isUtcOffset () {
3260        return this.isValid() ? this._isUTC : false;
3261    }
3262
3263    function isUtc () {
3264        return this.isValid() ? this._isUTC && this._offset === 0 : false;
3265    }
3266
3267    // ASP.NET json date format regex
3268    var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
3269
3270    // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3271    // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3272    // and further modified to allow for strings containing both week and day
3273    var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3274
3275    function createDuration (input, key) {
3276        var duration = input,
3277            // matching against regexp is expensive, do it on demand
3278            match = null,
3279            sign,
3280            ret,
3281            diffRes;
3282
3283        if (isDuration(input)) {
3284            duration = {
3285                ms : input._milliseconds,
3286                d  : input._days,
3287                M  : input._months
3288            };
3289        } else if (isNumber(input)) {
3290            duration = {};
3291            if (key) {
3292                duration[key] = input;
3293            } else {
3294                duration.milliseconds = input;
3295            }
3296        } else if (!!(match = aspNetRegex.exec(input))) {
3297            sign = (match[1] === '-') ? -1 : 1;
3298            duration = {
3299                y  : 0,
3300                d  : toInt(match[DATE])                         * sign,
3301                h  : toInt(match[HOUR])                         * sign,
3302                m  : toInt(match[MINUTE])                       * sign,
3303                s  : toInt(match[SECOND])                       * sign,
3304                ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
3305            };
3306        } else if (!!(match = isoRegex.exec(input))) {
3307            sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
3308            duration = {
3309                y : parseIso(match[2], sign),
3310                M : parseIso(match[3], sign),
3311                w : parseIso(match[4], sign),
3312                d : parseIso(match[5], sign),
3313                h : parseIso(match[6], sign),
3314                m : parseIso(match[7], sign),
3315                s : parseIso(match[8], sign)
3316            };
3317        } else if (duration == null) {// checks for null or undefined
3318            duration = {};
3319        } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
3320            diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
3321
3322            duration = {};
3323            duration.ms = diffRes.milliseconds;
3324            duration.M = diffRes.months;
3325        }
3326
3327        ret = new Duration(duration);
3328
3329        if (isDuration(input) && hasOwnProp(input, '_locale')) {
3330            ret._locale = input._locale;
3331        }
3332
3333        return ret;
3334    }
3335
3336    createDuration.fn = Duration.prototype;
3337    createDuration.invalid = createInvalid$1;
3338
3339    function parseIso (inp, sign) {
3340        // We'd normally use ~~inp for this, but unfortunately it also
3341        // converts floats to ints.
3342        // inp may be undefined, so careful calling replace on it.
3343        var res = inp && parseFloat(inp.replace(',', '.'));
3344        // apply sign while we're at it
3345        return (isNaN(res) ? 0 : res) * sign;
3346    }
3347
3348    function positiveMomentsDifference(base, other) {
3349        var res = {milliseconds: 0, months: 0};
3350
3351        res.months = other.month() - base.month() +
3352            (other.year() - base.year()) * 12;
3353        if (base.clone().add(res.months, 'M').isAfter(other)) {
3354            --res.months;
3355        }
3356
3357        res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
3358
3359        return res;
3360    }
3361
3362    function momentsDifference(base, other) {
3363        var res;
3364        if (!(base.isValid() && other.isValid())) {
3365            return {milliseconds: 0, months: 0};
3366        }
3367
3368        other = cloneWithOffset(other, base);
3369        if (base.isBefore(other)) {
3370            res = positiveMomentsDifference(base, other);
3371        } else {
3372            res = positiveMomentsDifference(other, base);
3373            res.milliseconds = -res.milliseconds;
3374            res.months = -res.months;
3375        }
3376
3377        return res;
3378    }
3379
3380    // TODO: remove 'name' arg after deprecation is removed
3381    function createAdder(direction, name) {
3382        return function (val, period) {
3383            var dur, tmp;
3384            //invert the arguments, but complain about it
3385            if (period !== null && !isNaN(+period)) {
3386                deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
3387                'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
3388                tmp = val; val = period; period = tmp;
3389            }
3390
3391            val = typeof val === 'string' ? +val : val;
3392            dur = createDuration(val, period);
3393            addSubtract(this, dur, direction);
3394            return this;
3395        };
3396    }
3397
3398    function addSubtract (mom, duration, isAdding, updateOffset) {
3399        var milliseconds = duration._milliseconds,
3400            days = absRound(duration._days),
3401            months = absRound(duration._months);
3402
3403        if (!mom.isValid()) {
3404            // No op
3405            return;
3406        }
3407
3408        updateOffset = updateOffset == null ? true : updateOffset;
3409
3410        if (months) {
3411            setMonth(mom, get(mom, 'Month') + months * isAdding);
3412        }
3413        if (days) {
3414            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3415        }
3416        if (milliseconds) {
3417            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3418        }
3419        if (updateOffset) {
3420            hooks.updateOffset(mom, days || months);
3421        }
3422    }
3423
3424    var add      = createAdder(1, 'add');
3425    var subtract = createAdder(-1, 'subtract');
3426
3427    function getCalendarFormat(myMoment, now) {
3428        var diff = myMoment.diff(now, 'days', true);
3429        return diff < -6 ? 'sameElse' :
3430                diff < -1 ? 'lastWeek' :
3431                diff < 0 ? 'lastDay' :
3432                diff < 1 ? 'sameDay' :
3433                diff < 2 ? 'nextDay' :
3434                diff < 7 ? 'nextWeek' : 'sameElse';
3435    }
3436
3437    function calendar$1 (time, formats) {
3438        // We want to compare the start of today, vs this.
3439        // Getting start-of-today depends on whether we're local/utc/offset or not.
3440        var now = time || createLocal(),
3441            sod = cloneWithOffset(now, this).startOf('day'),
3442            format = hooks.calendarFormat(this, sod) || 'sameElse';
3443
3444        var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
3445
3446        return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
3447    }
3448
3449    function clone () {
3450        return new Moment(this);
3451    }
3452
3453    function isAfter (input, units) {
3454        var localInput = isMoment(input) ? input : createLocal(input);
3455        if (!(this.isValid() && localInput.isValid())) {
3456            return false;
3457        }
3458        units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3459        if (units === 'millisecond') {
3460            return this.valueOf() > localInput.valueOf();
3461        } else {
3462            return localInput.valueOf() < this.clone().startOf(units).valueOf();
3463        }
3464    }
3465
3466    function isBefore (input, units) {
3467        var localInput = isMoment(input) ? input : createLocal(input);
3468        if (!(this.isValid() && localInput.isValid())) {
3469            return false;
3470        }
3471        units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3472        if (units === 'millisecond') {
3473            return this.valueOf() < localInput.valueOf();
3474        } else {
3475            return this.clone().endOf(units).valueOf() < localInput.valueOf();
3476        }
3477    }
3478
3479    function isBetween (from, to, units, inclusivity) {
3480        inclusivity = inclusivity || '()';
3481        return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
3482            (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
3483    }
3484
3485    function isSame (input, units) {
3486        var localInput = isMoment(input) ? input : createLocal(input),
3487            inputMs;
3488        if (!(this.isValid() && localInput.isValid())) {
3489            return false;
3490        }
3491        units = normalizeUnits(units || 'millisecond');
3492        if (units === 'millisecond') {
3493            return this.valueOf() === localInput.valueOf();
3494        } else {
3495            inputMs = localInput.valueOf();
3496            return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
3497        }
3498    }
3499
3500    function isSameOrAfter (input, units) {
3501        return this.isSame(input, units) || this.isAfter(input,units);
3502    }
3503
3504    function isSameOrBefore (input, units) {
3505        return this.isSame(input, units) || this.isBefore(input,units);
3506    }
3507
3508    function diff (input, units, asFloat) {
3509        var that,
3510            zoneDelta,
3511            output;
3512
3513        if (!this.isValid()) {
3514            return NaN;
3515        }
3516
3517        that = cloneWithOffset(input, this);
3518
3519        if (!that.isValid()) {
3520            return NaN;
3521        }
3522
3523        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3524
3525        units = normalizeUnits(units);
3526
3527        switch (units) {
3528            case 'year': output = monthDiff(this, that) / 12; break;
3529            case 'month': output = monthDiff(this, that); break;
3530            case 'quarter': output = monthDiff(this, that) / 3; break;
3531            case 'second': output = (this - that) / 1e3; break; // 1000
3532            case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
3533            case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
3534            case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
3535            case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
3536            default: output = this - that;
3537        }
3538
3539        return asFloat ? output : absFloor(output);
3540    }
3541
3542    function monthDiff (a, b) {
3543        // difference in months
3544        var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
3545            // b is in (anchor - 1 month, anchor + 1 month)
3546            anchor = a.clone().add(wholeMonthDiff, 'months'),
3547            anchor2, adjust;
3548
3549        if (b - anchor < 0) {
3550            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3551            // linear across the month
3552            adjust = (b - anchor) / (anchor - anchor2);
3553        } else {
3554            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3555            // linear across the month
3556            adjust = (b - anchor) / (anchor2 - anchor);
3557        }
3558
3559        //check for negative zero, return zero if negative zero
3560        return -(wholeMonthDiff + adjust) || 0;
3561    }
3562
3563    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3564    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3565
3566    function toString () {
3567        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3568    }
3569
3570    function toISOString(keepOffset) {
3571        if (!this.isValid()) {
3572            return null;
3573        }
3574        var utc = keepOffset !== true;
3575        var m = utc ? this.clone().utc() : this;
3576        if (m.year() < 0 || m.year() > 9999) {
3577            return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
3578        }
3579        if (isFunction(Date.prototype.toISOString)) {
3580            // native implementation is ~50x faster, use it when we can
3581            if (utc) {
3582                return this.toDate().toISOString();
3583            } else {
3584                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
3585            }
3586        }
3587        return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
3588    }
3589
3590    /**
3591     * Return a human readable representation of a moment that can
3592     * also be evaluated to get a new moment which is the same
3593     *
3594     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3595     */
3596    function inspect () {
3597        if (!this.isValid()) {
3598            return 'moment.invalid(/* ' + this._i + ' */)';
3599        }
3600        var func = 'moment';
3601        var zone = '';
3602        if (!this.isLocal()) {
3603            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3604            zone = 'Z';
3605        }
3606        var prefix = '[' + func + '("]';
3607        var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
3608        var datetime = '-MM-DD[T]HH:mm:ss.SSS';
3609        var suffix = zone + '[")]';
3610
3611        return this.format(prefix + year + datetime + suffix);
3612    }
3613
3614    function format (inputString) {
3615        if (!inputString) {
3616            inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
3617        }
3618        var output = formatMoment(this, inputString);
3619        return this.localeData().postformat(output);
3620    }
3621
3622    function from (time, withoutSuffix) {
3623        if (this.isValid() &&
3624                ((isMoment(time) && time.isValid()) ||
3625                 createLocal(time).isValid())) {
3626            return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
3627        } else {
3628            return this.localeData().invalidDate();
3629        }
3630    }
3631
3632    function fromNow (withoutSuffix) {
3633        return this.from(createLocal(), withoutSuffix);
3634    }
3635
3636    function to (time, withoutSuffix) {
3637        if (this.isValid() &&
3638                ((isMoment(time) && time.isValid()) ||
3639                 createLocal(time).isValid())) {
3640            return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
3641        } else {
3642            return this.localeData().invalidDate();
3643        }
3644    }
3645
3646    function toNow (withoutSuffix) {
3647        return this.to(createLocal(), withoutSuffix);
3648    }
3649
3650    // If passed a locale key, it will set the locale for this
3651    // instance.  Otherwise, it will return the locale configuration
3652    // variables for this instance.
3653    function locale (key) {
3654        var newLocaleData;
3655
3656        if (key === undefined) {
3657            return this._locale._abbr;
3658        } else {
3659            newLocaleData = getLocale(key);
3660            if (newLocaleData != null) {
3661                this._locale = newLocaleData;
3662            }
3663            return this;
3664        }
3665    }
3666
3667    var lang = deprecate(
3668        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
3669        function (key) {
3670            if (key === undefined) {
3671                return this.localeData();
3672            } else {
3673                return this.locale(key);
3674            }
3675        }
3676    );
3677
3678    function localeData () {
3679        return this._locale;
3680    }
3681
3682    function startOf (units) {
3683        units = normalizeUnits(units);
3684        // the following switch intentionally omits break keywords
3685        // to utilize falling through the cases.
3686        switch (units) {
3687            case 'year':
3688                this.month(0);
3689                /* falls through */
3690            case 'quarter':
3691            case 'month':
3692                this.date(1);
3693                /* falls through */
3694            case 'week':
3695            case 'isoWeek':
3696            case 'day':
3697            case 'date':
3698                this.hours(0);
3699                /* falls through */
3700            case 'hour':
3701                this.minutes(0);
3702                /* falls through */
3703            case 'minute':
3704                this.seconds(0);
3705                /* falls through */
3706            case 'second':
3707                this.milliseconds(0);
3708        }
3709
3710        // weeks are a special case
3711        if (units === 'week') {
3712            this.weekday(0);
3713        }
3714        if (units === 'isoWeek') {
3715            this.isoWeekday(1);
3716        }
3717
3718        // quarters are also special
3719        if (units === 'quarter') {
3720            this.month(Math.floor(this.month() / 3) * 3);
3721        }
3722
3723        return this;
3724    }
3725
3726    function endOf (units) {
3727        units = normalizeUnits(units);
3728        if (units === undefined || units === 'millisecond') {
3729            return this;
3730        }
3731
3732        // 'date' is an alias for 'day', so it should be considered as such.
3733        if (units === 'date') {
3734            units = 'day';
3735        }
3736
3737        return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
3738    }
3739
3740    function valueOf () {
3741        return this._d.valueOf() - ((this._offset || 0) * 60000);
3742    }
3743
3744    function unix () {
3745        return Math.floor(this.valueOf() / 1000);
3746    }
3747
3748    function toDate () {
3749        return new Date(this.valueOf());
3750    }
3751
3752    function toArray () {
3753        var m = this;
3754        return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
3755    }
3756
3757    function toObject () {
3758        var m = this;
3759        return {
3760            years: m.year(),
3761            months: m.month(),
3762            date: m.date(),
3763            hours: m.hours(),
3764            minutes: m.minutes(),
3765            seconds: m.seconds(),
3766            milliseconds: m.milliseconds()
3767        };
3768    }
3769
3770    function toJSON () {
3771        // new Date(NaN).toJSON() === null
3772        return this.isValid() ? this.toISOString() : null;
3773    }
3774
3775    function isValid$2 () {
3776        return isValid(this);
3777    }
3778
3779    function parsingFlags () {
3780        return extend({}, getParsingFlags(this));
3781    }
3782
vendor: 23,072 bytes, lines 3783-4542
3783    function invalidAt () {
3784        return getParsingFlags(this).overflow;
3785    }
3786
3787    function creationData() {
3788        return {
3789            input: this._i,
3790            format: this._f,
3791            locale: this._locale,
3792            isUTC: this._isUTC,
3793            strict: this._strict
3794        };
3795    }
3796
3797    // FORMATTING
3798
3799    addFormatToken(0, ['gg', 2], 0, function () {
3800        return this.weekYear() % 100;
3801    });
3802
3803    addFormatToken(0, ['GG', 2], 0, function () {
3804        return this.isoWeekYear() % 100;
3805    });
3806
3807    function addWeekYearFormatToken (token, getter) {
3808        addFormatToken(0, [token, token.length], 0, getter);
3809    }
3810
3811    addWeekYearFormatToken('gggg',     'weekYear');
3812    addWeekYearFormatToken('ggggg',    'weekYear');
3813    addWeekYearFormatToken('GGGG',  'isoWeekYear');
3814    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
3815
3816    // ALIASES
3817
3818    addUnitAlias('weekYear', 'gg');
3819    addUnitAlias('isoWeekYear', 'GG');
3820
3821    // PRIORITY
3822
3823    addUnitPriority('weekYear', 1);
3824    addUnitPriority('isoWeekYear', 1);
3825
3826
3827    // PARSING
3828
3829    addRegexToken('G',      matchSigned);
3830    addRegexToken('g',      matchSigned);
3831    addRegexToken('GG',     match1to2, match2);
3832    addRegexToken('gg',     match1to2, match2);
3833    addRegexToken('GGGG',   match1to4, match4);
3834    addRegexToken('gggg',   match1to4, match4);
3835    addRegexToken('GGGGG',  match1to6, match6);
3836    addRegexToken('ggggg',  match1to6, match6);
3837
3838    addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
3839        week[token.substr(0, 2)] = toInt(input);
3840    });
3841
3842    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
3843        week[token] = hooks.parseTwoDigitYear(input);
3844    });
3845
3846    // MOMENTS
3847
3848    function getSetWeekYear (input) {
3849        return getSetWeekYearHelper.call(this,
3850                input,
3851                this.week(),
3852                this.weekday(),
3853                this.localeData()._week.dow,
3854                this.localeData()._week.doy);
3855    }
3856
3857    function getSetISOWeekYear (input) {
3858        return getSetWeekYearHelper.call(this,
3859                input, this.isoWeek(), this.isoWeekday(), 1, 4);
3860    }
3861
3862    function getISOWeeksInYear () {
3863        return weeksInYear(this.year(), 1, 4);
3864    }
3865
3866    function getWeeksInYear () {
3867        var weekInfo = this.localeData()._week;
3868        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
3869    }
3870
3871    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
3872        var weeksTarget;
3873        if (input == null) {
3874            return weekOfYear(this, dow, doy).year;
3875        } else {
3876            weeksTarget = weeksInYear(input, dow, doy);
3877            if (week > weeksTarget) {
3878                week = weeksTarget;
3879            }
3880            return setWeekAll.call(this, input, week, weekday, dow, doy);
3881        }
3882    }
3883
3884    function setWeekAll(weekYear, week, weekday, dow, doy) {
3885        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
3886            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
3887
3888        this.year(date.getUTCFullYear());
3889        this.month(date.getUTCMonth());
3890        this.date(date.getUTCDate());
3891        return this;
3892    }
3893
3894    // FORMATTING
3895
3896    addFormatToken('Q', 0, 'Qo', 'quarter');
3897
3898    // ALIASES
3899
3900    addUnitAlias('quarter', 'Q');
3901
3902    // PRIORITY
3903
3904    addUnitPriority('quarter', 7);
3905
3906    // PARSING
3907
3908    addRegexToken('Q', match1);
3909    addParseToken('Q', function (input, array) {
3910        array[MONTH] = (toInt(input) - 1) * 3;
3911    });
3912
3913    // MOMENTS
3914
3915    function getSetQuarter (input) {
3916        return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
3917    }
3918
3919    // FORMATTING
3920
3921    addFormatToken('D', ['DD', 2], 'Do', 'date');
3922
3923    // ALIASES
3924
3925    addUnitAlias('date', 'D');
3926
3927    // PRIORITY
3928    addUnitPriority('date', 9);
3929
3930    // PARSING
3931
3932    addRegexToken('D',  match1to2);
3933    addRegexToken('DD', match1to2, match2);
3934    addRegexToken('Do', function (isStrict, locale) {
3935        // TODO: Remove "ordinalParse" fallback in next major release.
3936        return isStrict ?
3937          (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
3938          locale._dayOfMonthOrdinalParseLenient;
3939    });
3940
3941    addParseToken(['D', 'DD'], DATE);
3942    addParseToken('Do', function (input, array) {
3943        array[DATE] = toInt(input.match(match1to2)[0]);
3944    });
3945
3946    // MOMENTS
3947
3948    var getSetDayOfMonth = makeGetSet('Date', true);
3949
3950    // FORMATTING
3951
3952    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
3953
3954    // ALIASES
3955
3956    addUnitAlias('dayOfYear', 'DDD');
3957
3958    // PRIORITY
3959    addUnitPriority('dayOfYear', 4);
3960
3961    // PARSING
3962
3963    addRegexToken('DDD',  match1to3);
3964    addRegexToken('DDDD', match3);
3965    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
3966        config._dayOfYear = toInt(input);
3967    });
3968
3969    // HELPERS
3970
3971    // MOMENTS
3972
3973    function getSetDayOfYear (input) {
3974        var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
3975        return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
3976    }
3977
3978    // FORMATTING
3979
3980    addFormatToken('m', ['mm', 2], 0, 'minute');
3981
3982    // ALIASES
3983
3984    addUnitAlias('minute', 'm');
3985
3986    // PRIORITY
3987
3988    addUnitPriority('minute', 14);
3989
3990    // PARSING
3991
3992    addRegexToken('m',  match1to2);
3993    addRegexToken('mm', match1to2, match2);
3994    addParseToken(['m', 'mm'], MINUTE);
3995
3996    // MOMENTS
3997
3998    var getSetMinute = makeGetSet('Minutes', false);
3999
4000    // FORMATTING
4001
4002    addFormatToken('s', ['ss', 2], 0, 'second');
4003
4004    // ALIASES
4005
4006    addUnitAlias('second', 's');
4007
4008    // PRIORITY
4009
4010    addUnitPriority('second', 15);
4011
4012    // PARSING
4013
4014    addRegexToken('s',  match1to2);
4015    addRegexToken('ss', match1to2, match2);
4016    addParseToken(['s', 'ss'], SECOND);
4017
4018    // MOMENTS
4019
4020    var getSetSecond = makeGetSet('Seconds', false);
4021
4022    // FORMATTING
4023
4024    addFormatToken('S', 0, 0, function () {
4025        return ~~(this.millisecond() / 100);
4026    });
4027
4028    addFormatToken(0, ['SS', 2], 0, function () {
4029        return ~~(this.millisecond() / 10);
4030    });
4031
4032    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
4033    addFormatToken(0, ['SSSS', 4], 0, function () {
4034        return this.millisecond() * 10;
4035    });
4036    addFormatToken(0, ['SSSSS', 5], 0, function () {
4037        return this.millisecond() * 100;
4038    });
4039    addFormatToken(0, ['SSSSSS', 6], 0, function () {
4040        return this.millisecond() * 1000;
4041    });
4042    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
4043        return this.millisecond() * 10000;
4044    });
4045    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
4046        return this.millisecond() * 100000;
4047    });
4048    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
4049        return this.millisecond() * 1000000;
4050    });
4051
4052
4053    // ALIASES
4054
4055    addUnitAlias('millisecond', 'ms');
4056
4057    // PRIORITY
4058
4059    addUnitPriority('millisecond', 16);
4060
4061    // PARSING
4062
4063    addRegexToken('S',    match1to3, match1);
4064    addRegexToken('SS',   match1to3, match2);
4065    addRegexToken('SSS',  match1to3, match3);
4066
4067    var token;
4068    for (token = 'SSSS'; token.length <= 9; token += 'S') {
4069        addRegexToken(token, matchUnsigned);
4070    }
4071
4072    function parseMs(input, array) {
4073        array[MILLISECOND] = toInt(('0.' + input) * 1000);
4074    }
4075
4076    for (token = 'S'; token.length <= 9; token += 'S') {
4077        addParseToken(token, parseMs);
4078    }
4079    // MOMENTS
4080
4081    var getSetMillisecond = makeGetSet('Milliseconds', false);
4082
4083    // FORMATTING
4084
4085    addFormatToken('z',  0, 0, 'zoneAbbr');
4086    addFormatToken('zz', 0, 0, 'zoneName');
4087
4088    // MOMENTS
4089
4090    function getZoneAbbr () {
4091        return this._isUTC ? 'UTC' : '';
4092    }
4093
4094    function getZoneName () {
4095        return this._isUTC ? 'Coordinated Universal Time' : '';
4096    }
4097
4098    var proto = Moment.prototype;
4099
4100    proto.add               = add;
4101    proto.calendar          = calendar$1;
4102    proto.clone             = clone;
4103    proto.diff              = diff;
4104    proto.endOf             = endOf;
4105    proto.format            = format;
4106    proto.from              = from;
4107    proto.fromNow           = fromNow;
4108    proto.to                = to;
4109    proto.toNow             = toNow;
4110    proto.get               = stringGet;
4111    proto.invalidAt         = invalidAt;
4112    proto.isAfter           = isAfter;
4113    proto.isBefore          = isBefore;
4114    proto.isBetween         = isBetween;
4115    proto.isSame            = isSame;
4116    proto.isSameOrAfter     = isSameOrAfter;
4117    proto.isSameOrBefore    = isSameOrBefore;
4118    proto.isValid           = isValid$2;
4119    proto.lang              = lang;
4120    proto.locale            = locale;
4121    proto.localeData        = localeData;
4122    proto.max               = prototypeMax;
4123    proto.min               = prototypeMin;
4124    proto.parsingFlags      = parsingFlags;
4125    proto.set               = stringSet;
4126    proto.startOf           = startOf;
4127    proto.subtract          = subtract;
4128    proto.toArray           = toArray;
4129    proto.toObject          = toObject;
4130    proto.toDate            = toDate;
4131    proto.toISOString       = toISOString;
4132    proto.inspect           = inspect;
4133    proto.toJSON            = toJSON;
4134    proto.toString          = toString;
4135    proto.unix              = unix;
4136    proto.valueOf           = valueOf;
4137    proto.creationData      = creationData;
4138    proto.year       = getSetYear;
4139    proto.isLeapYear = getIsLeapYear;
4140    proto.weekYear    = getSetWeekYear;
4141    proto.isoWeekYear = getSetISOWeekYear;
4142    proto.quarter = proto.quarters = getSetQuarter;
4143    proto.month       = getSetMonth;
4144    proto.daysInMonth = getDaysInMonth;
4145    proto.week           = proto.weeks        = getSetWeek;
4146    proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;
4147    proto.weeksInYear    = getWeeksInYear;
4148    proto.isoWeeksInYear = getISOWeeksInYear;
4149    proto.date       = getSetDayOfMonth;
4150    proto.day        = proto.days             = getSetDayOfWeek;
4151    proto.weekday    = getSetLocaleDayOfWeek;
4152    proto.isoWeekday = getSetISODayOfWeek;
4153    proto.dayOfYear  = getSetDayOfYear;
4154    proto.hour = proto.hours = getSetHour;
4155    proto.minute = proto.minutes = getSetMinute;
4156    proto.second = proto.seconds = getSetSecond;
4157    proto.millisecond = proto.milliseconds = getSetMillisecond;
4158    proto.utcOffset            = getSetOffset;
4159    proto.utc                  = setOffsetToUTC;
4160    proto.local                = setOffsetToLocal;
4161    proto.parseZone            = setOffsetToParsedOffset;
4162    proto.hasAlignedHourOffset = hasAlignedHourOffset;
4163    proto.isDST                = isDaylightSavingTime;
4164    proto.isLocal              = isLocal;
4165    proto.isUtcOffset          = isUtcOffset;
4166    proto.isUtc                = isUtc;
4167    proto.isUTC                = isUtc;
4168    proto.zoneAbbr = getZoneAbbr;
4169    proto.zoneName = getZoneName;
4170    proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
4171    proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
4172    proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);
4173    proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
4174    proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
4175
4176    function createUnix (input) {
4177        return createLocal(input * 1000);
4178    }
4179
4180    function createInZone () {
4181        return createLocal.apply(null, arguments).parseZone();
4182    }
4183
4184    function preParsePostFormat (string) {
4185        return string;
4186    }
4187
4188    var proto$1 = Locale.prototype;
4189
4190    proto$1.calendar        = calendar;
4191    proto$1.longDateFormat  = longDateFormat;
4192    proto$1.invalidDate     = invalidDate;
4193    proto$1.ordinal         = ordinal;
4194    proto$1.preparse        = preParsePostFormat;
4195    proto$1.postformat      = preParsePostFormat;
4196    proto$1.relativeTime    = relativeTime;
4197    proto$1.pastFuture      = pastFuture;
4198    proto$1.set             = set;
4199
4200    proto$1.months            =        localeMonths;
4201    proto$1.monthsShort       =        localeMonthsShort;
4202    proto$1.monthsParse       =        localeMonthsParse;
4203    proto$1.monthsRegex       = monthsRegex;
4204    proto$1.monthsShortRegex  = monthsShortRegex;
4205    proto$1.week = localeWeek;
4206    proto$1.firstDayOfYear = localeFirstDayOfYear;
4207    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
4208
4209    proto$1.weekdays       =        localeWeekdays;
4210    proto$1.weekdaysMin    =        localeWeekdaysMin;
4211    proto$1.weekdaysShort  =        localeWeekdaysShort;
4212    proto$1.weekdaysParse  =        localeWeekdaysParse;
4213
4214    proto$1.weekdaysRegex       =        weekdaysRegex;
4215    proto$1.weekdaysShortRegex  =        weekdaysShortRegex;
4216    proto$1.weekdaysMinRegex    =        weekdaysMinRegex;
4217
4218    proto$1.isPM = localeIsPM;
4219    proto$1.meridiem = localeMeridiem;
4220
4221    function get$1 (format, index, field, setter) {
4222        var locale = getLocale();
4223        var utc = createUTC().set(setter, index);
4224        return locale[field](utc, format);
4225    }
4226
4227    function listMonthsImpl (format, index, field) {
4228        if (isNumber(format)) {
4229            index = format;
4230            format = undefined;
4231        }
4232
4233        format = format || '';
4234
4235        if (index != null) {
4236            return get$1(format, index, field, 'month');
4237        }
4238
4239        var i;
4240        var out = [];
4241        for (i = 0; i < 12; i++) {
4242            out[i] = get$1(format, i, field, 'month');
4243        }
4244        return out;
4245    }
4246
4247    // ()
4248    // (5)
4249    // (fmt, 5)
4250    // (fmt)
4251    // (true)
4252    // (true, 5)
4253    // (true, fmt, 5)
4254    // (true, fmt)
4255    function listWeekdaysImpl (localeSorted, format, index, field) {
4256        if (typeof localeSorted === 'boolean') {
4257            if (isNumber(format)) {
4258                index = format;
4259                format = undefined;
4260            }
4261
4262            format = format || '';
4263        } else {
4264            format = localeSorted;
4265            index = format;
4266            localeSorted = false;
4267
4268            if (isNumber(format)) {
4269                index = format;
4270                format = undefined;
4271            }
4272
4273            format = format || '';
4274        }
4275
4276        var locale = getLocale(),
4277            shift = localeSorted ? locale._week.dow : 0;
4278
4279        if (index != null) {
4280            return get$1(format, (index + shift) % 7, field, 'day');
4281        }
4282
4283        var i;
4284        var out = [];
4285        for (i = 0; i < 7; i++) {
4286            out[i] = get$1(format, (i + shift) % 7, field, 'day');
4287        }
4288        return out;
4289    }
4290
4291    function listMonths (format, index) {
4292        return listMonthsImpl(format, index, 'months');
4293    }
4294
4295    function listMonthsShort (format, index) {
4296        return listMonthsImpl(format, index, 'monthsShort');
4297    }
4298
4299    function listWeekdays (localeSorted, format, index) {
4300        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
4301    }
4302
4303    function listWeekdaysShort (localeSorted, format, index) {
4304        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
4305    }
4306
4307    function listWeekdaysMin (localeSorted, format, index) {
4308        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
4309    }
4310
4311    getSetGlobalLocale('en', {
4312        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
4313        ordinal : function (number) {
4314            var b = number % 10,
4315                output = (toInt(number % 100 / 10) === 1) ? 'th' :
4316                (b === 1) ? 'st' :
4317                (b === 2) ? 'nd' :
4318                (b === 3) ? 'rd' : 'th';
4319            return number + output;
4320        }
4321    });
4322
4323    // Side effect imports
4324
4325    hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
4326    hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
4327
4328    var mathAbs = Math.abs;
4329
4330    function abs () {
4331        var data           = this._data;
4332
4333        this._milliseconds = mathAbs(this._milliseconds);
4334        this._days         = mathAbs(this._days);
4335        this._months       = mathAbs(this._months);
4336
4337        data.milliseconds  = mathAbs(data.milliseconds);
4338        data.seconds       = mathAbs(data.seconds);
4339        data.minutes       = mathAbs(data.minutes);
4340        data.hours         = mathAbs(data.hours);
4341        data.months        = mathAbs(data.months);
4342        data.years         = mathAbs(data.years);
4343
4344        return this;
4345    }
4346
4347    function addSubtract$1 (duration, input, value, direction) {
4348        var other = createDuration(input, value);
4349
4350        duration._milliseconds += direction * other._milliseconds;
4351        duration._days         += direction * other._days;
4352        duration._months       += direction * other._months;
4353
4354        return duration._bubble();
4355    }
4356
4357    // supports only 2.0-style add(1, 's') or add(duration)
4358    function add$1 (input, value) {
4359        return addSubtract$1(this, input, value, 1);
4360    }
4361
4362    // supports only 2.0-style subtract(1, 's') or subtract(duration)
4363    function subtract$1 (input, value) {
4364        return addSubtract$1(this, input, value, -1);
4365    }
4366
4367    function absCeil (number) {
4368        if (number < 0) {
4369            return Math.floor(number);
4370        } else {
4371            return Math.ceil(number);
4372        }
4373    }
4374
4375    function bubble () {
4376        var milliseconds = this._milliseconds;
4377        var days         = this._days;
4378        var months       = this._months;
4379        var data         = this._data;
4380        var seconds, minutes, hours, years, monthsFromDays;
4381
4382        // if we have a mix of positive and negative values, bubble down first
4383        // check: https://github.com/moment/moment/issues/2166
4384        if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
4385                (milliseconds <= 0 && days <= 0 && months <= 0))) {
4386            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
4387            days = 0;
4388            months = 0;
4389        }
4390
4391        // The following code bubbles up values, see the tests for
4392        // examples of what that means.
4393        data.milliseconds = milliseconds % 1000;
4394
4395        seconds           = absFloor(milliseconds / 1000);
4396        data.seconds      = seconds % 60;
4397
4398        minutes           = absFloor(seconds / 60);
4399        data.minutes      = minutes % 60;
4400
4401        hours             = absFloor(minutes / 60);
4402        data.hours        = hours % 24;
4403
4404        days += absFloor(hours / 24);
4405
4406        // convert days to months
4407        monthsFromDays = absFloor(daysToMonths(days));
4408        months += monthsFromDays;
4409        days -= absCeil(monthsToDays(monthsFromDays));
4410
4411        // 12 months -> 1 year
4412        years = absFloor(months / 12);
4413        months %= 12;
4414
4415        data.days   = days;
4416        data.months = months;
4417        data.years  = years;
4418
4419        return this;
4420    }
4421
4422    function daysToMonths (days) {
4423        // 400 years have 146097 days (taking into account leap year rules)
4424        // 400 years have 12 months === 4800
4425        return days * 4800 / 146097;
4426    }
4427
4428    function monthsToDays (months) {
4429        // the reverse of daysToMonths
4430        return months * 146097 / 4800;
4431    }
4432
4433    function as (units) {
4434        if (!this.isValid()) {
4435            return NaN;
4436        }
4437        var days;
4438        var months;
4439        var milliseconds = this._milliseconds;
4440
4441        units = normalizeUnits(units);
4442
4443        if (units === 'month' || units === 'year') {
4444            days   = this._days   + milliseconds / 864e5;
4445            months = this._months + daysToMonths(days);
4446            return units === 'month' ? months : months / 12;
4447        } else {
4448            // handle milliseconds separately because of floating point math errors (issue #1867)
4449            days = this._days + Math.round(monthsToDays(this._months));
4450            switch (units) {
4451                case 'week'   : return days / 7     + milliseconds / 6048e5;
4452                case 'day'    : return days         + milliseconds / 864e5;
4453                case 'hour'   : return days * 24    + milliseconds / 36e5;
4454                case 'minute' : return days * 1440  + milliseconds / 6e4;
4455                case 'second' : return days * 86400 + milliseconds / 1000;
4456                // Math.floor prevents floating point math errors here
4457                case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
4458                default: throw new Error('Unknown unit ' + units);
4459            }
4460        }
4461    }
4462
4463    // TODO: Use this.as('ms')?
4464    function valueOf$1 () {
4465        if (!this.isValid()) {
4466            return NaN;
4467        }
4468        return (
4469            this._milliseconds +
4470            this._days * 864e5 +
4471            (this._months % 12) * 2592e6 +
4472            toInt(this._months / 12) * 31536e6
4473        );
4474    }
4475
4476    function makeAs (alias) {
4477        return function () {
4478            return this.as(alias);
4479        };
4480    }
4481
4482    var asMilliseconds = makeAs('ms');
4483    var asSeconds      = makeAs('s');
4484    var asMinutes      = makeAs('m');
4485    var asHours        = makeAs('h');
4486    var asDays         = makeAs('d');
4487    var asWeeks        = makeAs('w');
4488    var asMonths       = makeAs('M');
4489    var asYears        = makeAs('y');
4490
4491    function clone$1 () {
4492        return createDuration(this);
4493    }
4494
4495    function get$2 (units) {
4496        units = normalizeUnits(units);
4497        return this.isValid() ? this[units + 's']() : NaN;
4498    }
4499
4500    function makeGetter(name) {
4501        return function () {
4502            return this.isValid() ? this._data[name] : NaN;
4503        };
4504    }
4505
4506    var milliseconds = makeGetter('milliseconds');
4507    var seconds      = makeGetter('seconds');
4508    var minutes      = makeGetter('minutes');
4509    var hours        = makeGetter('hours');
4510    var days         = makeGetter('days');
4511    var months       = makeGetter('months');
4512    var years        = makeGetter('years');
4513
4514    function weeks () {
4515        return absFloor(this.days() / 7);
4516    }
4517
4518    var round = Math.round;
4519    var thresholds = {
4520        ss: 44,         // a few seconds to seconds
4521        s : 45,         // seconds to minute
4522        m : 45,         // minutes to hour
4523        h : 22,         // hours to day
4524        d : 26,         // days to month
4525        M : 11          // months to year
4526    };
4527
4528    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
4529    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
4530        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
4531    }
4532
4533    function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
4534        var duration = createDuration(posNegDuration).abs();
4535        var seconds  = round(duration.as('s'));
4536        var minutes  = round(duration.as('m'));
4537        var hours    = round(duration.as('h'));
4538        var days     = round(duration.as('d'));
4539        var months   = round(duration.as('M'));
4540        var years    = round(duration.as('y'));
4541
4542        var a = seconds <= thresholds.ss && ['s', seconds]  ||
4543                seconds < thresholds.s   && ['ss', seconds] ||
4544                minutes <= 1             && ['m']           ||
4545                minutes < thresholds.m   && ['mm', minutes] ||
4546                hours   <= 1             && ['h']           ||
4547                hours   < thresholds.h   && ['hh', hours]   ||
4548                days    <= 1             && ['d']           ||
4549                days    < thresholds.d   && ['dd', days]    ||
4550                months  <= 1             && ['M']           ||
4551                months  < thresholds.M   && ['MM', months]  ||
4552                years   <= 1             && ['y']           || ['yy', years];
4553
4554        a[2] = withoutSuffix;
4555        a[3] = +posNegDuration > 0;
4556        a[4] = locale;
4557        return substituteTimeAgo.apply(null, a);
4558    }
4559
4560    // This function allows you to set the rounding function for relative time strings
4561    function getSetRelativeTimeRounding (roundingFunction) {
4562        if (roundingFunction === undefined) {
4563            return round;
4564        }
4565        if (typeof(rou
vendor: 8,721 bytes, lines 4565-4805
4565ndingFunction) === 'function') {
4566            round = roundingFunction;
4567            return true;
4568        }
4569        return false;
4570    }
4571
4572    // This function allows you to set a threshold for relative time strings
4573    function getSetRelativeTimeThreshold (threshold, limit) {
4574        if (thresholds[threshold] === undefined) {
4575            return false;
4576        }
4577        if (limit === undefined) {
4578            return thresholds[threshold];
4579        }
4580        thresholds[threshold] = limit;
4581        if (threshold === 's') {
4582            thresholds.ss = limit - 1;
4583        }
4584        return true;
4585    }
4586
4587    function humanize (withSuffix) {
4588        if (!this.isValid()) {
4589            return this.localeData().invalidDate();
4590        }
4591
4592        var locale = this.localeData();
4593        var output = relativeTime$1(this, !withSuffix, locale);
4594
4595        if (withSuffix) {
4596            output = locale.pastFuture(+this, output);
4597        }
4598
4599        return locale.postformat(output);
4600    }
4601
4602    var abs$1 = Math.abs;
4603
4604    function sign(x) {
4605        return ((x > 0) - (x < 0)) || +x;
4606    }
4607
4608    function toISOString$1() {
4609        // for ISO strings we do not use the normal bubbling rules:
4610        //  * milliseconds bubble up until they become hours
4611        //  * days do not bubble at all
4612        //  * months bubble up until they become years
4613        // This is because there is no context-free conversion between hours and days
4614        // (think of clock changes)
4615        // and also not between days and months (28-31 days per month)
4616        if (!this.isValid()) {
4617            return this.localeData().invalidDate();
4618        }
4619
4620        var seconds = abs$1(this._milliseconds) / 1000;
4621        var days         = abs$1(this._days);
4622        var months       = abs$1(this._months);
4623        var minutes, hours, years;
4624
4625        // 3600 seconds -> 60 minutes -> 1 hour
4626        minutes           = absFloor(seconds / 60);
4627        hours             = absFloor(minutes / 60);
4628        seconds %= 60;
4629        minutes %= 60;
4630
4631        // 12 months -> 1 year
4632        years  = absFloor(months / 12);
4633        months %= 12;
4634
4635
4636        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
4637        var Y = years;
4638        var M = months;
4639        var D = days;
4640        var h = hours;
4641        var m = minutes;
4642        var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
4643        var total = this.asSeconds();
4644
4645        if (!total) {
4646            // this is the same as C#'s (Noda) and python (isodate)...
4647            // but not other JS (goog.date)
4648            return 'P0D';
4649        }
4650
4651        var totalSign = total < 0 ? '-' : '';
4652        var ymSign = sign(this._months) !== sign(total) ? '-' : '';
4653        var daysSign = sign(this._days) !== sign(total) ? '-' : '';
4654        var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
4655
4656        return totalSign + 'P' +
4657            (Y ? ymSign + Y + 'Y' : '') +
4658            (M ? ymSign + M + 'M' : '') +
4659            (D ? daysSign + D + 'D' : '') +
4660            ((h || m || s) ? 'T' : '') +
4661            (h ? hmsSign + h + 'H' : '') +
4662            (m ? hmsSign + m + 'M' : '') +
4663            (s ? hmsSign + s + 'S' : '');
4664    }
4665
4666    var proto$2 = Duration.prototype;
4667
4668    proto$2.isValid        = isValid$1;
4669    proto$2.abs            = abs;
4670    proto$2.add            = add$1;
4671    proto$2.subtract       = subtract$1;
4672    proto$2.as             = as;
4673    proto$2.asMilliseconds = asMilliseconds;
4674    proto$2.asSeconds      = asSeconds;
4675    proto$2.asMinutes      = asMinutes;
4676    proto$2.asHours        = asHours;
4677    proto$2.asDays         = asDays;
4678    proto$2.asWeeks        = asWeeks;
4679    proto$2.asMonths       = asMonths;
4680    proto$2.asYears        = asYears;
4681    proto$2.valueOf        = valueOf$1;
4682    proto$2._bubble        = bubble;
4683    proto$2.clone          = clone$1;
4684    proto$2.get            = get$2;
4685    proto$2.milliseconds   = milliseconds;
4686    proto$2.seconds        = seconds;
4687    proto$2.minutes        = minutes;
4688    proto$2.hours          = hours;
4689    proto$2.days           = days;
4690    proto$2.weeks          = weeks;
4691    proto$2.months         = months;
4692    proto$2.years          = years;
4693    proto$2.humanize       = humanize;
4694    proto$2.toISOString    = toISOString$1;
4695    proto$2.toString       = toISOString$1;
4696    proto$2.toJSON         = toISOString$1;
4697    proto$2.locale         = locale;
4698    proto$2.localeData     = localeData;
4699
4700    proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
4701    proto$2.lang = lang;
4702
4703    // Side effect imports
4704
4705    // FORMATTING
4706
4707    addFormatToken('X', 0, 0, 'unix');
4708    addFormatToken('x', 0, 0, 'valueOf');
4709
4710    // PARSING
4711
4712    addRegexToken('x', matchSigned);
4713    addRegexToken('X', matchTimestamp);
4714    addParseToken('X', function (input, array, config) {
4715        config._d = new Date(parseFloat(input, 10) * 1000);
4716    });
4717    addParseToken('x', function (input, array, config) {
4718        config._d = new Date(toInt(input));
4719    });
4720
4721    // Side effect imports
4722
4723    //! moment.js
4724
4725    hooks.version = '2.22.2';
4726
4727    setHookCallback(createLocal);
4728
4729    hooks.fn                    = proto;
4730    hooks.min                   = min;
4731    hooks.max                   = max;
4732    hooks.now                   = now;
4733    hooks.utc                   = createUTC;
4734    hooks.unix                  = createUnix;
4735    hooks.months                = listMonths;
4736    hooks.isDate                = isDate;
4737    hooks.locale                = getSetGlobalLocale;
4738    hooks.invalid               = createInvalid;
4739    hooks.duration              = createDuration;
4740    hooks.isMoment              = isMoment;
4741    hooks.weekdays              = listWeekdays;
4742    hooks.parseZone             = createInZone;
4743    hooks.localeData            = getLocale;
4744    hooks.isDuration            = isDuration;
4745    hooks.monthsShort           = listMonthsShort;
4746    hooks.weekdaysMin           = listWeekdaysMin;
4747    hooks.defineLocale          = defineLocale;
4748    hooks.updateLocale          = updateLocale;
4749    hooks.locales               = listLocales;
4750    hooks.weekdaysShort         = listWeekdaysShort;
4751    hooks.normalizeUnits        = normalizeUnits;
4752    hooks.relativeTimeRounding  = getSetRelativeTimeRounding;
4753    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
4754    hooks.calendarFormat        = getCalendarFormat;
4755    hooks.prototype             = proto;
4756
4757    // currently HTML5 input type only supports 24-hour formats
4758    hooks.HTML5_FMT = {
4759        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',             // <input type="datetime-local" />
4760        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',  // <input type="datetime-local" step="1" />
4761        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',   // <input type="datetime-local" step="0.001" />
4762        DATE: 'YYYY-MM-DD',                             // <input type="date" />
4763        TIME: 'HH:mm',                                  // <input type="time" />
4764        TIME_SECONDS: 'HH:mm:ss',                       // <input type="time" step="1" />
4765        TIME_MS: 'HH:mm:ss.SSS',                        // <input type="time" step="0.001" />
4766        WEEK: 'YYYY-[W]WW',                             // <input type="week" />
4767        MONTH: 'YYYY-MM'                                // <input type="month" />
4768    };
4769
4770    //! moment.js locale configuration
4771
4772    hooks.defineLocale('af', {
4773        months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
4774        monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
4775        weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
4776        weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
4777        weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
4778        meridiemParse: /vm|nm/i,
4779        isPM : function (input) {
4780            return /^nm$/i.test(input);
4781        },
4782        meridiem : function (hours, minutes, isLower) {
4783            if (hours < 12) {
4784                return isLower ? 'vm' : 'VM';
4785            } else {
4786                return isLower ? 'nm' : 'NM';
4787            }
4788        },
4789        longDateFormat : {
4790            LT : 'HH:mm',
4791            LTS : 'HH:mm:ss',
4792            L : 'DD/MM/YYYY',
4793            LL : 'D MMMM YYYY',
4794            LLL : 'D MMMM YYYY HH:mm',
4795            LLLL : 'dddd, D MMMM YYYY HH:mm'
4796        },
4797        calendar : {
4798            sameDay : '[Vandag om] LT',
4799            nextDay : '[Môre om] LT',
4800            nextWeek : 'dddd [om] LT',
4801            lastDay : '[Gister om] LT',
4802            lastWeek : '[Laas] dddd [om] LT',
4803            sameElse : 'L'
4804        },
4805        relativeTime : {
4806            future : 'oor %s',
4807            past : '%s gelede',
4808            s : '\'n paar sekondes',
4809            ss : '%d sekondes',
4810            m : '\'n minuut',
4811            mm : '%d minute',
4812            h : '\'n uur',
4813            hh : '%d ure',
4814            d : '\'n dag',
4815            dd : '%d dae',
4816            M : '\'n maand',
4817            MM : '%d maande',
4818            y : '\'n jaar',
4819            yy : '%d jaar'
4820        },
4821        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
4822        ordinal : function (number) {
4823            return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
4824        },
4825        week : {
4826            dow : 1, // Maandag is die eerste dag van die week.
4827            doy : 4  // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
4828        }
4829    });
4830
4831    //! moment.js locale configuration
4832
4833    hooks.defineLocale('ar-dz', {
4834        months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
4835        monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
4836        weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
4837        weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
4838        weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
4839        weekdaysParseExact : true,
4840        longDateFormat : {
4841            LT : 'HH:mm',
4842            LTS : 'HH:mm:ss',
4843            L : 'DD/MM/YYYY',
4844            LL : 'D MMMM YYYY',
4845            LLL : 'D MMMM YYYY HH:mm',
4846            LLLL : 'dddd D MMMM YYYY HH:mm'
4847        },
4848        calendar : {
4849            sameDay: '[اليوم على الساعة] LT',
4850            nextDay: '[غدا على الساعة] LT',
4851            nextWeek: 'dddd [على الساعة] LT',
4852            lastDay: '[أمس على الساعة] LT',
4853            lastWeek: 'dddd [على الساعة] LT',
4854            sameElse: 'L'
4855        },
4856        relativeTime : {
4857            future : 'في %s',
4858            past : 'منذ %s',
4859            s : 'ثوان',
4860            ss : '%d ثانية',
4861            m : 'دقيقة',
4862            mm : '%d دقائق',
4863            h : 'ساعة',
4864            hh : '%d ساعات',
4865            d : 'يوم',
4866            dd : '%d أيام',
4867            M : 'شهر',
4868            MM : '%d أشهر',
4869            y : 'سنة',
4870            yy : '%d سنوات'
4871        },
4872        week : {
4873            dow : 0, // Sunday is the first day of the week.
4874            doy : 4  // The week that contains Jan 1st is the first week of the year.
4875        }
4876    });
4877
4878    //! moment.js locale configuration
4879
4880    hooks.defineLocale('ar-kw', {
4881        months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
4882        monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
4883        weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
4884        weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
4885        weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
4886        weekdaysParseExact : true,
4887        longDateFormat : {
4888            LT : 'HH:mm',
4889            LTS : 'HH:mm:ss',
4890            L : 'DD/MM/YYYY',
4891            LL : 'D MMMM YYYY',
4892            LLL : 'D MMMM YYYY HH:mm',
4893            LLLL : 'dddd D MMMM YYYY HH:mm'
4894        },
4895        calendar : {
4896            sameDay: '[اليوم على الساعة] LT',
4897            nextDay: '[غدا على الساعة] LT',
4898            nextWeek: 'dddd [على الساعة] LT',
4899            lastDay: '[أمس على الساعة] LT',
4900            lastWeek: 'dddd [على الساعة] LT',
4901            sameElse: 'L'
4902        },
4903        relativeTime : {
4904            future : 'في %s',
4905            past : 'منذ %s',
4906            s : 'ثوان',
4907            ss : '%d ثانية',
4908            m : 'دقيقة',
4909            mm : '%d دقائق',
4910            h : 'ساعة',
4911            hh : '%d ساعات',
4912            d : 'يوم',
4913            dd : '%d أيام',
4914            M : 'شهر',
4915            MM : '%d أشهر',
4916            y : 'سنة',
4917            yy : '%d سنوات'
4918        },
4919        week : {
4920            dow : 0, // Sunday is the first day of the week.
4921            doy : 12  // The week that contains Jan 1st is the first week of the year.
4922        }
4923    });
4924
4925    //! moment.js locale configuration
4926
4927    var symbolMap = {
4928        '1': '1',
4929        '2': '2',
4930        '3': '3',
4931        '4': '4',
4932        '5': '5',
4933        '6': '6',
4934        '7': '7',
4935        '8': '8',
4936        '9': '9',
4937        '0': '0'
4938    }, pluralForm = function (n) {
4939        return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
4940    }, plurals = {
4941        s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
4942        m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
4943        h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
4944        d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
4945        M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
4946        y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
4947    }, pluralize = function (u) {
4948        return function (number, withoutSuffix, string, isFuture) {
4949            var f = pluralForm(number),
4950                str = plurals[u][pluralForm(number)];
4951            if (f === 2) {
4952                str = str[withoutSuffix ? 0 : 1];
4953            }
4954            return str.replace(/%d/i, number);
4955        };
4956    }, months$1 = [
4957        'يناير',
4958        'فبراير',
4959        'مارس',
4960        'أبريل',
4961        'مايو',
4962        'يونيو',
4963        'يوليو',
4964        'أغسطس',
4965        'سبتمبر',
4966        'أكتوبر',
4967        'نوفمبر',
4968        'ديسمبر'
4969    ];
4970
4971    hooks.defineLocale('ar-ly', {
4972        months : months$1,
4973        monthsShort : months$1,
4974        weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
4975        weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
4976        weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
4977        weekdaysParseExact : true,
4978        longDateFormat : {
4979            LT : 'HH:mm',
4980            LTS : 'HH:mm:ss',
4981            L : 'D/\u200FM/\u200FYYYY',
4982            LL : 'D MMMM YYYY',
4983            LLL : 'D MMMM YYYY HH:mm',
4984            LLLL : 'dddd D MMMM YYYY HH:mm'
4985        },
4986        meridiemParse: /ص|م/,
4987        isPM : function (input) {
4988            return 'م' === input;
4989        },
4990        meridiem : function (hour, minute, isLower) {
4991            if (hour < 12) {
4992                return 'ص';
4993            } else {
4994                return 'م';
4995            }
4996        },
4997        calendar : {
4998            sameDay: '[اليوم عند الساعة] LT',
4999            nextDay: '[غدًا عند الساعة] LT',
5000            nextWeek: 'dddd [عند الساعة] LT',
5001            lastDay: '[أمس عند الساعة] LT',
5002            lastWeek: 'dddd [عند الساعة] LT',
5003            sameElse: 'L'
5004        },
5005        relativeTime : {
5006            future : 'بعد %s',
5007            past : 'منذ %s',
5008            s : pluralize('s'),
5009            ss : pluralize('s'),
5010            m : pluralize('m'),
5011            mm : pluralize('m'),
5012            h : pluralize('h'),
5013            hh : pluralize('h'),
5014            d : pluralize('d'),
5015            dd : pluralize('d'),
5016            M : pluralize('M'),
5017            MM : pluralize('M'),
5018            y : pluralize('y'),
5019            yy : pluralize('y')
5020        },
5021        preparse: function (string) {
5022            return string.replace(/،/g, ',');
5023        },
5024        postformat: function (string) {
5025            return string.replace(/\d/g, function (match) {
5026                return symbolMap[match];
5027            }).replace(/,/g, '،');
5028        },
5029        week : {
5030            dow : 6, // Saturday is the first day of the week.
5031            doy : 12  // The week that contains Jan 1st is the first week of the year.
5032        }
5033    });
5034
5035    //! moment.js locale configuration
5036
5037    hooks.defineLocale('ar-ma', {
5038        months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
5039        monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
5040        weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5041        weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
5042        weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5043        weekdaysParseExact : true,
5044        longDateFormat : {
5045            LT : 'HH:mm',
5046            LTS : 'HH:mm:ss',
5047            L : 'DD/MM/YYYY',
5048            LL : 'D MMMM YYYY',
5049            LLL : 'D MMMM YYYY HH:mm',
5050            LLLL : 'dddd D MMMM YYYY HH:mm'
5051        },
5052        calendar : {
5053            sameDay: '[اليوم على الساعة] LT',
5054            nextDay: '[غدا على الساعة] LT',
5055            nextWeek: 'dddd [على الساعة] LT',
5056            lastDay: '[أمس على الساعة] LT',
5057            lastWeek: 'dddd [على الساعة] LT',
5058            sameElse: 'L'
5059        },
5060        relativeTime : {
5061            future : 'في %s',
5062            past : 'منذ %s',
5063            s : 'ثوان',
5064            ss : '%d ثانية',
5065            m : 'دقيقة',
5066            mm : '%d دقائق',
5067            h : 'ساعة',
5068            hh : '%d ساعات',
5069            d : 'يوم',
5070            dd : '%d أيام',
5071            M : 'شهر',
5072            MM : '%d أشهر',
5073            y : 'سنة',
5074            yy : '%d سنوات'
5075        },
5076        week : {
5077            dow : 6, // Saturday is the first day of the week.
5078            doy : 12  // The week that contains Jan 1st is the first week of the year.
5079        }
5080    });
5081
5082    //! moment.js locale configuration
5083
5084    var symbolMap$1 = {
5085        '1': 'Ù¡',
5086        '2': 'Ù¢',
5087        '3': 'Ù£',
5088        '4': 'Ù¤',
5089        '5': 'Ù¥',
5090        '6': 'Ù¦',
5091        '7': 'Ù§',
5092        '8': 'Ù¨',
5093        '9': 'Ù©',
5094        '0': 'Ù '
5095    }, numberMap = {
5096        'Ù¡': '1',
5097        'Ù¢': '2',
5098        'Ù£': '3',
5099        'Ù¤': '4',
5100        'Ù¥': '5',
5101        'Ù¦': '6',
5102        'Ù§': '7',
5103        'Ù¨': '8',
5104        'Ù©': '9',
5105        'Ù ': '0'
5106    };
5107
5108    hooks.defineLocale('ar-sa', {
5109        months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
5110        monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
5111        weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5112        weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5113        weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5114        weekdaysParseExact : true,
5115        longDateFormat : {
5116            LT : 'HH:mm',
5117            LTS : 'HH:mm:ss',
5118            L : 'DD/MM/YYYY',
5119            LL : 'D MMMM YYYY',
5120            LLL : 'D MMMM YYYY HH:mm',
5121            LLLL : 'dddd D MMMM YYYY HH:mm'
5122        },
5123        meridiemParse: /ص|م/,
5124        isPM : function (input) {
5125            return 'م' === input;
5126        },
5127        meridiem : function (hour, minute, isLower) {
5128            if (hour < 12) {
5129                return 'ص';
5130            } else {
5131                return 'م';
5132            }
5133        },
5134        calendar : {
5135            sameDay: '[اليوم على الساعة] LT',
5136            nextDay: '[غدا على الساعة] LT',
5137            nextWeek: 'dddd [على الساعة] LT',
5138            lastDay: '[أمس على الساعة] LT',
5139            lastWeek: 'dddd [على الساعة] LT',
5140            sameElse: 'L'
5141        },
5142        relativeTime : {
5143            future : 'في %s',
5144            past : 'منذ %s',
5145            s : 'ثوان',
5146            ss : '%d ثانية',
5147            m : 'دقيقة',
5148            mm : '%d دقائق',
5149            h : 'ساعة',
5150            hh : '%d ساعات',
5151            d : 'يوم',
5152            dd : '%d أيام',
5153            M : 'شهر',
5154            MM : '%d أشهر',
5155            y : 'سنة',
5156            yy : '%d سنوات'
5157        },
5158        preparse: function (string) {
5159            return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
5160                return numberMap[match];
5161            }).replace(/،/g, ',');
5162        },
5163        postformat: function (string) {
5164            return string.replace(/\d/g, function (match) {
5165                return symbolMap$1[match];
5166            }).replace(/,/g, '،');
5167        },
5168        week : {
5169            dow : 0, // Sunday is the first day of the week.
5170            doy : 6  // The week that contains Jan 1st is the first week of the year.
5171        }
5172    });
5173
5174    //! moment.js locale configuration
5175
5176    hooks.defineLocale('ar-tn', {
5177        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
5178        monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
5179        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5180        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5181        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5182        weekdaysParseExact : true,
5183        longDateFormat: {
5184            LT: 'HH:mm',
5185            LTS: 'HH:mm:ss',
5186            L: 'DD/MM/YYYY',
5187            LL: 'D MMMM YYYY',
5188            LLL: 'D MMMM YYYY HH:mm',
5189            LLLL: 'dddd D MMMM YYYY HH:mm'
5190        },
5191        calendar: {
5192            sameDay: '[اليوم على الساعة] LT',
5193            nextDay: '[غدا على الساعة] LT',
5194            nextWeek: 'dddd [على الساعة] LT',
5195            lastDay: '[أمس على الساعة] LT',
5196            lastWeek: 'dddd [على الساعة] LT',
5197            sameElse: 'L'
5198        },
5199        relativeTime: {
5200            future: 'في %s',
5201            past: 'منذ %s',
5202            s: 'ثوان',
5203            ss : '%d ثانية',
5204            m: 'دقيقة',
5205            mm: '%d دقائق',
5206            h: 'ساعة',
5207            hh: '%d ساعات',
5208            d: 'يوم',
5209            dd: '%d أيام',
5210            M: 'شهر',
5211            MM: '%d أشهر',
5212            y: 'سنة',
5213            yy: '%d سنوات'
5214        },
5215        week: {
5216            dow: 1, // Monday is the first day of the week.
5217            doy: 4 // The week that contains Jan 4th is the first week of the year.
5218        }
5219    });
5220
5221    //! moment.js locale configuration
5222
5223    var symbolMap$2 = {
5224        '1': 'Ù¡',
5225        '2': 'Ù¢',
5226        '3': 'Ù£',
5227        '4': 'Ù¤',
5228        '5': 'Ù¥',
5229        '6': 'Ù¦',
5230        '7': 'Ù§',
5231        '8': 'Ù¨',
5232        '9': 'Ù©',
5233        '0': 'Ù '
5234    }, numberMap$1 = {
5235        'Ù¡': '1',
5236        'Ù¢': '2',
5237        'Ù£': '3',
5238        'Ù¤': '4',
5239        'Ù¥': '5',
5240        'Ù¦': '6',
5241        'Ù§': '7',
5242        'Ù¨': '8',
5243        'Ù©': '9',
5244        'Ù ': '0'
5245    }, pluralForm$1 = function (n) {
5246        return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
5247    }, plurals$1 = {
5248        s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
5249        m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
5250        h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
5251        d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
5252        M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
5253        y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
5254    }, pluralize$1 = function (u) {
5255        return function (number, withoutSuffix, string, isFuture) {
5256            var f = pluralForm$1(number),
5257                str = plurals$1[u][pluralForm$1(number)];
5258            if (f === 2) {
5259                str = str[withoutSuffix ? 0 : 1];
5260            }
5261            return str.replace(/%d/i, number);
5262        };
5263    }, months$2 = [
5264        'يناير',
5265        'فبراير',
5266        'مارس',
5267        'أبريل',
5268        'مايو',
5269        'يونيو',
5270        'يوليو',
5271        'أغسطس',
5272        'سبتمبر',
5273        'أكتوبر',
5274        'نوفمبر',
5275        'ديسمبر'
5276    ];
5277
5278    hooks.defineLocale('ar', {
5279        months : months$2,
5280        monthsShort : months$2,
5281        weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5282        weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5283        weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5284        weekdaysParseExact : true,
5285        longDateFormat : {
5286            LT : 'HH:mm',
5287            LTS : 'HH:mm:ss',
5288            L : 'D/\u200FM/\u200FYYYY',
5289            LL : 'D MMMM YYYY',
5290            LLL : 'D MMMM YYYY HH:mm',
5291            LLLL : 'dddd D MMMM YYYY HH:mm'
5292        },
5293        meridiemParse: /ص|م/,
5294        isPM : function (input) {
5295            return 'م' === input;
5296        },
5297        meridiem : function (hour, minute, isLower) {
5298            if (hour < 12) {
5299                return 'ص';
5300            } else {
5301                return 'م';
5302            }
5303        },
5304        calendar : {
5305            sameDay: '[اليوم عند الساعة] LT',
5306            nextDay: '[غدًا عند الساعة] LT',
5307            nextWeek: 'dddd [عند الساعة] LT',
5308            lastDay: '[أمس عند الساعة] LT',
5309            lastWeek: 'dddd [عند الساعة] LT',
5310            sameElse: 'L'
5311        },
5312        relativeTime : {
5313            future : 'بعد %s',
5314            past : 'منذ %s',
5315            s : pluralize$1('s'),
5316            ss : pluralize$1('s'),
5317            m : pluralize$1('m'),
5318            mm : pluralize$1('m'),
5319            h : pluralize$1('h'),
5320            hh : pluralize$1('h'),
5321            d : pluralize$1('d'),
5322            dd : pluralize$1('d'),
5323            M : pluralize$1('M'),
5324            MM : pluralize$1('M'),
5325            y : pluralize$1('y'),
5326            yy : pluralize$1('y')
5327        },
5328        preparse: function (string) {
5329            return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
5330                return numberMap$1[match];
5331            }).replace(/،/g, ',');
5332        },
5333        postformat: function (string) {
5334            return string.replace(/\d/g, function (match) {
5335                return symbolMap$2[match];
5336            }).replace(/,/g, '،');
5337        },
5338        week : {
5339            dow : 6, // Saturday is the first day of the week.
5340            doy : 12  // The week that contains Jan 1st is the first week of the year.
5341        }
5342    });
5343
5344    //! moment.js locale configuration
5345
5346    var suffixes = {
5347        1: '-inci',
5348        5: '-inci',
5349        8: '-inci',
5350        70: '-inci',
5351        80: '-inci',
5352        2: '-nci',
5353        7: '-nci',
5354        20: '-nci',
5355        50: '-nci',
5356        3: '-üncü',
5357        4: '-üncü',
5358        100: '-üncü',
5359        6: '-ncı',
5360        9: '-uncu',
5361        10: '-uncu',
5362        30: '-uncu',
5363        60: '-ıncı',
5364        90: '-ıncı'
5365    };
5366
5367    hooks.defineLocale('az', {
5368        months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
5369        monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
5370        weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
5371        weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
5372        weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
5373        weekdaysParseExact : true,
5374        longDateFormat : {
5375            LT : 'HH:mm',
5376            LTS : 'HH:mm:ss',
5377            L : 'DD.MM.YYYY',
5378            LL : 'D MMMM YYYY',
5379            LLL : 'D MMMM YYYY HH:mm',
5380            LLLL : 'dddd, D MMMM YYYY HH:mm'
5381        },
5382        calendar : {
5383            sameDay : '[bugün saat] LT',
5384            nextDay : '[sabah saat] LT',
5385            nextWeek : '[gələn həftə] dddd [saat] LT',
5386            lastDay : '[dünən] LT',
5387            lastWeek : '[keçən həftə] dddd [saat] LT',
5388            sameElse : 'L'
5389        },
5390        relativeTime : {
5391            future : '%s sonra',
5392            past : '%s əvvəl',
5393            s : 'birneçə saniyə',
5394            ss : '%d saniyə',
5395            m : 'bir dəqiqə',
5396            mm : '%d dəqiqə',
5397            h : 'bir saat',
5398            hh : '%d saat',
5399            d : 'bir gün',
5400            dd : '%d gün',
5401            M : 'bir ay',
5402            MM : '%d ay',
5403            y : 'bir il',
5404            yy : '%d il'
5405        },
5406        meridiemParse: /gecə|səhər|gündüz|axşam/,
5407        isPM : function (input) {
5408            return /^(gündüz|axşam)$/.test(input);
5409        },
5410        meridiem : function (hour, minute, isLower) {
5411            if (hour < 4) {
5412                return 'gecə';
5413            } else if (hour < 12) {
5414                return 'səhər';
5415            } else if (hour < 17) {
5416                return 'gündüz';
5417            } else {
5418                return 'axşam';
5419            }
5420        },
5421        dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
5422        ordinal : function (number) {
5423            if (number === 0) {  // special case for zero
5424                return number + '-ıncı';
5425            }
5426            var a = number % 10,
5427                b = number % 100 - a,
5428                c = number >= 100 ? 100 : null;
5429            return number + (suffixes[a] || suffixes[b] || suffixes[c]);
5430        },
5431        week : {
5432            dow : 1, // Monday is the first day of the week.
5433            doy : 7  // The week that contains Jan 1st is the first week of the year.
5434        }
5435    });
5436
5437    //! moment.js locale configuration
5438
5439    function plural(word, num) {
5440        var forms = word.split('_');
5441        return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
5442    }
5443    function relativeTimeWithPlural(number, withoutSuffix, key) {
5444        var format = {
5445            'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
5446            'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
5447            'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
5448            'dd': 'дзень_дні_дзён',
5449            'MM': 'месяц_месяцы_месяцаў',
5450            'yy': 'год_гады_гадоў'
5451        };
5452        if (key === 'm') {
5453            return withoutSuffix ? 'хвіліна' : 'хвіліну';
5454        }
5455        else if (key === 'h') {
5456            return withoutSuffix ? 'гадзіна' : 'гадзіну';
5457        }
5458        else {
5459            return number + ' ' + plural(format[key], +number);
5460        }
5461    }
5462
5463    hooks.defineLocale('be', {
5464        months : {
5465            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
5466            standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
5467        },
5468        monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
5469        weekdays : {
5470            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
5471            standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
5472            isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/
5473        },
5474        weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
5475        weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
5476        longDateFormat : {
5477            LT : 'HH:mm',
5478            LTS : 'HH:mm:ss',
5479            L : 'DD.MM.YYYY',
5480            LL : 'D MMMM YYYY г.',
5481            LLL : 'D MMMM YYYY г., HH:mm',
5482            LLLL : 'dddd, D MMMM YYYY г., HH:mm'
5483        },
5484        calendar : {
5485            sameDay: '[Сёння ў] LT',
5486            nextDay: '[Заўтра ў] LT',
5487            lastDay: '[Учора ў] LT',
5488            nextWeek: function () {
5489                return '[У] dddd [ў] LT';
5490            },
5491            lastWeek: function () {
5492                switch (this.day()) {
5493                    case 0:
5494                    case 3:
5495                    case 5:
5496                    case 6:
5497                        return '[У мінулую] dddd [ў] LT';
5498                    case 1:
5499                    case 2:
5500                    case 4:
5501                        return '[У мінулы] dddd [ў] LT';
5502                }
5503            },
5504            sameElse: 'L'
5505        },
5506        relativeTime : {
5507            future : 'праз %s',
5508            past : '%s таму',
5509            s : 'некалькі секунд',
5510            m : relativeTimeWithPlural,
5511            mm : relativeTimeWithPlural,
5512            h : relativeTimeWithPlural,
5513            hh : relativeTimeWithPlural,
5514            d : 'дзень',
5515            dd : relativeTimeWithPlural,
5516            M : 'месяц',
5517            MM : relativeTimeWithPlural,
5518            y : 'год',
5519            yy : relativeTimeWithPlural
5520        },
5521        meridiemParse: /ночы|раніцы|дня|вечара/,
5522        isPM : function (input) {
5523            return /^(дня|вечара)$/.test(input);
5524        },
5525        meridiem : function (hour, minute, isLower) {
5526            if (hour < 4) {
5527                return 'ночы';
5528            } else if (hour < 12) {
5529                return 'раніцы';
5530            } else if (hour < 17) {
5531                return 'дня';
5532            } else {
5533                return 'вечара';
5534            }
5535        },
5536        dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
5537        ordinal: function (number, period) {
5538            switch (period) {
5539                case 'M':
5540                case 'd':
5541                case 'DDD':
5542                case 'w':
5543                case 'W':
5544                    return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
5545                case 'D':
5546                    return number + '-га';
5547                default:
5548                    return number;
5549            }
5550        },
5551        week : {
5552            dow : 1, // Monday is the first day of the week.
5553            doy : 7  // The week that contains Jan 1st is the first week of the year.
5554        }
5555    });
5556
5557    //! moment.js locale configuration
5558
5559    hooks.defineLocale('bg', {
5560        months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
5561        monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
5562        weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
5563        weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
5564        weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
5565        longDateFormat : {
5566            LT : 'H:mm',
5567            LTS : 'H:mm:ss',
5568            L : 'D.MM.YYYY',
5569            LL : 'D MMMM YYYY',
5570            LLL : 'D MMMM YYYY H:mm',
5571            LLLL : 'dddd, D MMMM YYYY H:mm'
5572        },
5573        calendar : {
5574            sameDay : '[Днес в] LT',
5575            nextDay : '[Утре в] LT',
5576            nextWeek : 'dddd [в] LT',
5577            lastDay : '[Вчера в] LT',
5578            lastWeek : function () {
5579                switch (this.day()) {
5580                    case 0:
5581                    case 3:
5582                    case 6:
5583                        return '[В изминалата] dddd [в] LT';
5584                    case 1:
5585                    case 2:
5586                    case 4:
5587                    case 5:
5588                        return '[В изминалия] dddd [в] LT';
5589                }
5590            },
5591            sameElse : 'L'
5592        },
5593        relativeTime : {
5594            future : 'след %s',
5595            past : 'преди %s',
5596            s : 'няколко секунди',
5597            ss : '%d секунди',
5598            m : 'минута',
5599            mm : '%d минути',
5600            h : 'час',
5601            hh : '%d часа',
5602            d : 'ден',
5603            dd : '%d дни',
5604            M : 'месец',
5605            MM : '%d месеца',
5606            y : 'година',
5607            yy : '%d години'
5608        },
5609        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
5610        ordinal : function (number) {
5611            var lastDigit = number % 10,
5612                last2Digits = number % 100;
5613            if (number === 0) {
5614                return number + '-ев';
5615            } else if (last2Digits === 0) {
5616                return number + '-ен';
5617            } else if (last2Digits > 10 && last2Digits < 20) {
5618                return number + '-ти';
5619            } else if (lastDigit === 1) {
5620                return number + '-ви';
5621            } else if (lastDigit === 2) {
5622                return number + '-ри';
5623            } else if (lastDigit === 7 || lastDigit === 8) {
5624                return number + '-ми';
5625            } else {
5626                return number + '-ти';
5627            }
5628        },
5629        week : {
5630            dow : 1, // Monday is the first day of the week.
5631            doy : 7  // The week that contains Jan 1st is the first week of the year.
5632        }
5633    });
5634
5635    //! moment.js locale configuration
5636
5637    hooks.defineLocale('bm', {
5638        months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
5639        monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
5640        weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
5641        weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
5642        weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
5643        longDateFormat : {
5644            LT : 'HH:mm',
5645            LTS : 'HH:mm:ss',
5646            L : 'DD/MM/YYYY',
5647            LL : 'MMMM [tile] D [san] YYYY',
5648            LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
5649            LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
5650        },
5651        calendar : {
5652            sameDay : '[Bi lɛrɛ] LT',
5653            nextDay : '[Sini lɛrɛ] LT',
5654            nextWeek : 'dddd [don lɛrɛ] LT',
5655            lastDay : '[Kunu lɛrɛ] LT',
5656            lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
5657            sameElse : 'L'
5658        },
5659        relativeTime : {
5660            future : '%s kɔnɔ',
5661            past : 'a bɛ %s bɔ',
5662            s : 'sanga dama dama',
5663            ss : 'sekondi %d',
5664            m : 'miniti kelen',
5665            mm : 'miniti %d',
5666            h : 'lɛrɛ kelen',
5667            hh : 'lɛrɛ %d',
5668            d : 'tile kelen',
5669            dd : 'tile %d',
5670            M : 'kalo kelen',
5671            MM : 'kalo %d',
5672            y : 'san kelen',
5673            yy : 'san %d'
5674        },
5675        week : {
5676            dow : 1, // Monday is the first day of the week.
5677            doy : 4  // The week that contains Jan 4th is the first week of the year.
5678        }
5679    });
5680
5681    //! moment.js locale configuration
5682
5683    var symbolMap$3 = {
5684        '1': 'à§§',
5685        '2': '২',
5686        '3': 'à§©',
5687        '4': '৪',
5688        '5': 'à§«',
5689        '6': '৬',
5690        '7': 'à§­',
5691        '8': 'à§®',
5692        '9': '৯',
5693        '0': '০'
5694    },
5695    numberMap$2 = {
5696        'à§§': '1',
5697        '২': '2',
5698        'à§©': '3',
5699        '৪': '4',
5700        'à§«': '5',
5701        '৬': '6',
5702        'à§­': '7',
5703        'à§®': '8',
5704        '৯': '9',
5705        '০': '0'
5706    };
5707
5708    hooks.defineLocale('bn', {
5709        months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
5710        monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
5711        weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
5712        weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
5713        weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
5714        longDateFormat : {
5715            LT : 'A h:mm সময়',
5716            LTS : 'A h:mm:ss সময়',
5717            L : 'DD/MM/YYYY',
5718            LL : 'D MMMM YYYY',
5719            LLL : 'D MMMM YYYY, A h:mm সময়',
5720            LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
5721        },
5722        calendar : {
5723            sameDay : '[আজ] LT',
5724            nextDay : '[আগামীকাল] LT',
5725            nextWeek : 'dddd, LT',
5726            lastDay : '[গতকাল] LT',
5727            lastWeek : '[গত] dddd, LT',
5728            sameElse : 'L'
5729        },
5730        relativeTime : {
5731            future : '%s পরে',
5732            past : '%s আগে',
5733            s : 'কয়েক সেকেন্ড',
5734            ss : '%d সেকেন্ড',
5735            m : 'এক মিনিট',
5736            mm : '%d মিনিট',
5737            h : 'এক ঘন্টা',
5738            hh : '%d ঘন্টা',
5739            d : 'এক দিন',
5740            dd : '%d দিন',
5741            M : 'এক মাস',
5742            MM : '%d মাস',
5743            y : 'এক বছর',
5744            yy : '%d বছর'
5745        },
5746        preparse: function (string) {
5747            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
5748                return numberMap$2[match];
5749            });
5750        },
5751        postformat: function (string) {
5752            return string.replace(/\d/g, function (match) {
5753                return symbolMap$3[match];
5754            });
5755        },
5756        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
5757        meridiemHour : function (hour, meridiem) {
5758            if (hour === 12) {
5759                hour = 0;
5760            }
5761            if ((meridiem === 'রাত' && hour >= 4) ||
5762                    (meridiem === 'দুপুর' && hour < 5) ||
5763                    meridiem === 'বিকাল') {
5764                return hour + 12;
5765            } else {
5766                return hour;
5767            }
5768        },
5769        meridiem : function (hour, minute, isLower) {
5770            if (hour < 4) {
5771                return 'রাত';
5772            } else if (hour < 10) {
5773                return 'সকাল';
5774            } else if (hour < 17) {
5775                return 'দুপুর';
5776            } else if (hour < 20) {
5777                return 'বিকাল';
5778            } else {
5779                return 'রাত';
5780            }
5781        },
5782        week : {
5783            dow : 0, // Sunday is the first day of the week.
5784            doy : 6  // The week that contains Jan 1st is the first week of the year.
5785        }
5786    });
5787
5788    //! moment.js locale configuration
5789
5790    var symbolMap$4 = {
5791        '1': '༡',
5792        '2': '༢',
5793        '3': '༣',
5794        '4': '༤',
5795        '5': '༥',
5796        '6': '༦',
5797        '7': '༧',
5798        '8': '༨',
5799        '9': '༩',
5800        '0': '༠'
5801    },
5802    numberMap$3 = {
5803        '༡': '1',
5804        '༢': '2',
5805        '༣': '3',
5806        '༤': '4',
5807        '༥': '5',
5808        '༦': '6',
5809        '༧': '7',
5810        '༨': '8',
5811        '༩': '9',
5812        '༠': '0'
5813    };
5814
5815    hooks.defineLocale('bo', {
5816        months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
5817        monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
5818        weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
5819        weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
5820        weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
5821        longDateFormat : {
5822            LT : 'A h:mm',
5823            LTS : 'A h:mm:ss',
5824            L : 'DD/MM/YYYY',
5825            LL : 'D MMMM YYYY',
5826            LLL : 'D MMMM YYYY, A h:mm',
5827            LLLL : 'dddd, D MMMM YYYY, A h:mm'
5828        },
5829        calendar : {
5830            sameDay : '[དི་རིང] LT',
5831            nextDay : '[སང་ཉིན] LT',
5832            nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
5833            lastDay : '[ཁ་སང] LT',
5834            lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
5835            sameElse : 'L'
5836        },
5837        relativeTime : {
5838            future : '%s ལ་',
5839            past : '%s སྔན་ལ',
5840            s : 'ལམ་སང',
5841            ss : '%d སྐར་ཆ།',
5842            m : 'སྐར་མ་གཅིག',
5843            mm : '%d སྐར་མ',
5844            h : 'ཆུ་ཚོད་གཅིག',
5845            hh : '%d ཆུ་ཚོད',
5846            d : 'ཉིན་གཅིག',
5847            dd : '%d ཉིན་',
5848            M : 'ཟླ་བ་གཅིག',
5849            MM : '%d ཟླ་བ',
5850            y : 'ལོ་གཅིག',
5851            yy : '%d ལོ'
5852        },
5853        preparse: function (string) {
5854            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
5855                return numberMap$3[match];
5856            });
5857        },
5858        postformat: function (string) {
5859            return string.replace(/\d/g, function (match) {
5860                return symbolMap$4[match];
5861            });
5862        },
5863        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
5864        meridiemHour : function (hour, meridiem) {
5865            if (hour === 12) {
5866                hour = 0;
5867            }
5868            if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
5869                    (meridiem === 'ཉིན་གུང' && hour < 5) ||
5870                    meridiem === 'དགོང་དག') {
5871                return hour + 12;
5872            } else {
5873                return hour;
5874            }
5875        },
5876        meridiem : function (hour, minute, isLower) {
5877            if (hour < 4) {
5878                return 'མཚན་མོ';
5879            } else if (hour < 10) {
5880                return 'ཞོགས་ཀས';
5881            } else if (hour < 17) {
5882                return 'ཉིན་གུང';
5883            } else if (hour < 20) {
5884                return 'དགོང་དག';
5885            } else {
5886                return 'མཚན་མོ';
5887            }
5888        },
5889        week : {
5890            dow : 0, // Sunday is the first day of the week.
5891            doy : 6  // The week that contains Jan 1st is the first week of the year.
5892        }
5893    });
5894
5895    //! moment.js locale configuration
5896
5897    function relativeTimeWithMutation(number, withoutSuffix, key) {
5898        var format = {
5899            'mm': 'munutenn',
5900            'MM': 'miz',
5901            'dd': 'devezh'
5902        };
5903        return number + ' ' + mutation(format[key], number);
5904    }
5905    function specialMutationForYears(number) {
5906        switch (lastNumber(number)) {
5907            case 1:
5908            case 3:
5909            case 4:
5910            case 5:
5911            case 9:
5912                return number + ' bloaz';
5913            default:
5914                return number + ' vloaz';
5915        }
5916    }
5917    function lastNumber(number) {
5918        if (number > 9) {
5919            return lastNumber(number % 10);
5920        }
5921        return number;
5922    }
5923    function mutation(text, number) {
5924        if (number === 2) {
5925            return softMutation(text);
5926        }
5927        return text;
5928    }
5929    function softMutation(text) {
5930        var mutationTable = {
5931            'm': 'v',
5932            'b': 'v',
5933            'd': 'z'
5934        };
5935        if (mutationTable[text.charAt(0)] === undefined) {
5936            return text;
5937        }
5938        return mutationTable[text.charAt(0)] + text.substring(1);
5939    }
5940
5941    hooks.defineLocale('br', {
5942        months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
5943        monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
5944        weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
5945        weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
5946        weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
5947        weekdaysParseExact : true,
5948        longDateFormat : {
5949            LT : 'h[e]mm A',
5950            LTS : 'h[e]mm:ss A',
5951            L : 'DD/MM/YYYY',
5952            LL : 'D [a viz] MMMM YYYY',
5953            LLL : 'D [a viz] MMMM YYYY h[e]mm A',
5954            LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
5955        },
5956        calendar : {
5957            sameDay : '[Hiziv da] LT',
5958            nextDay : '[Warc\'hoazh da] LT',
5959            nextWeek : 'dddd [da] LT',
5960            lastDay : '[Dec\'h da] LT',
5961            lastWeek : 'dddd [paset da] LT',
5962            sameElse : 'L'
5963        },
5964        relativeTime : {
5965            future : 'a-benn %s',
5966            past : '%s \'zo',
5967            s : 'un nebeud segondennoù',
5968            ss : '%d eilenn',
5969            m : 'ur vunutenn',
5970            mm : relativeTimeWithMutation,
5971            h : 'un eur',
5972            hh : '%d eur',
5973            d : 'un devezh',
5974            dd : relativeTimeWithMutation,
5975            M : 'ur miz',
5976            MM : relativeTimeWithMutation,
5977            y : 'ur bloaz',
5978            yy : specialMutationForYears
5979        },
5980        dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
5981        ordinal : function (number) {
5982            var output = (number === 1) ? 'añ' : 'vet';
5983            return number + output;
5984        },
5985        week : {
5986            dow : 1, // Monday is the first day of the week.
5987            doy : 4  // The week that contains Jan 4th is the first week of the year.
5988        }
5989    });
5990
5991    //! moment.js locale configuration
5992
5993    function translate(number, withoutSuffix, key) {
5994        var result = number + ' ';
5995        switch (key) {
5996            case 'ss':
5997                if (number === 1) {
5998                    result += 'sekunda';
5999                } else if (number === 2 || number === 3 || number === 4) {
6000                    result += 'sekunde';
6001                } else {
6002                    result += 'sekundi';
6003                }
6004                return result;
6005            case 'm':
6006                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
6007            case 'mm':
6008                if (number === 1) {
6009                    result += 'minuta';
6010                } else if (number === 2 || number === 3 || number === 4) {
6011                    result += 'minute';
6012                } else {
6013                    result += 'minuta';
6014                }
6015                return result;
6016            case 'h':
6017                return withoutSuffix ? 'jedan sat' : 'jednog sata';
6018            case 'hh':
6019                if (number === 1) {
6020                    result += 'sat';
6021                } else if (number === 2 || number === 3 || number === 4) {
6022                    result += 'sata';
6023                } else {
6024                    result += 'sati';
6025                }
6026                return result;
6027            case 'dd':
6028                if (number === 1) {
6029                    result += 'dan';
6030                } else {
6031                    result += 'dana';
6032                }
6033                return result;
6034            case 'MM':
6035                if (number === 1) {
6036                    result += 'mjesec';
6037                } else if (number === 2 || number === 3 || number === 4) {
6038                    result += 'mjeseca';
6039                } else {
6040                    result += 'mjeseci';
6041                }
6042                return result;
6043            case 'yy':
6044                if (number === 1) {
6045                    result += 'godina';
6046                } else if (number === 2 || number === 3 || number === 4) {
6047                    result += 'godine';
6048                } else {
6049                    result += 'godina';
6050                }
6051                return result;
6052        }
6053    }
6054
6055    hooks.defineLocale('bs', {
6056        months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
6057        monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
6058        monthsParseExact: true,
6059        weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
6060        weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
6061        weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
6062        weekdaysParseExact : true,
6063        longDateFormat : {
6064            LT : 'H:mm',
6065            LTS : 'H:mm:ss',
6066            L : 'DD.MM.YYYY',
6067            LL : 'D. MMMM YYYY',
6068            LLL : 'D. MMMM YYYY H:mm',
6069            LLLL : 'dddd, D. MMMM YYYY H:mm'
6070        },
6071        calendar : {
6072            sameDay  : '[danas u] LT',
6073            nextDay  : '[sutra u] LT',
6074            nextWeek : function () {
6075                switch (this.day()) {
6076                    case 0:
6077                        return '[u] [nedjelju] [u] LT';
6078                    case 3:
6079                        return '[u] [srijedu] [u] LT';
6080                    case 6:
6081                        return '[u] [subotu] [u] LT';
6082                    case 1:
6083                    case 2:
6084                    case 4:
6085                    case 5:
6086                        return '[u] dddd [u] LT';
6087                }
6088            },
6089            lastDay  : '[jučer u] LT',
6090            lastWeek : function () {
6091                switch (this.day()) {
6092                    case 0:
6093                    case 3:
6094                        return '[prošlu] dddd [u] LT';
6095                    case 6:
6096                        return '[prošle] [subote] [u] LT';
6097                    case 1:
6098                    case 2:
6099                    case 4:
6100                    case 5:
6101                        return '[prošli] dddd [u] LT';
6102                }
6103            },
6104            sameElse : 'L'
6105        },
6106        relativeTime : {
6107            future : 'za %s',
6108            past   : 'prije %s',
6109            s      : 'par sekundi',
6110            ss     : translate,
6111            m      : translate,
6112            mm     : translate,
6113            h      : translate,
6114            hh     : translate,
6115            d      : 'dan',
6116            dd     : translate,
6117            M      : 'mjesec',
6118            MM     : translate,
6119            y      : 'godinu',
6120            yy     : translate
6121        },
6122        dayOfMonthOrdinalParse: /\d{1,2}\./,
6123        ordinal : '%d.',
6124        week : {
6125            dow : 1, // Monday is the first day of the week.
6126            doy : 7  // The week that contains Jan 1st is the first week of the year.
6127        }
6128    });
6129
6130    //! moment.js locale configuration
6131
6132    hooks.defineLocale('ca', {
6133        months : {
6134            standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
6135            format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'),
6136            isFormat: /D[oD]?(\s)+MMMM/
6137        },
6138        monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
6139        monthsParseExact : true,
6140        weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
6141        weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
6142        weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
6143        weekdaysParseExact : true,
6144        longDateFormat : {
6145            LT : 'H:mm',
6146            LTS : 'H:mm:ss',
6147            L : 'DD/MM/YYYY',
6148            LL : 'D MMMM [de] YYYY',
6149            ll : 'D MMM YYYY',
6150            LLL : 'D MMMM [de] YYYY [a les] H:mm',
6151            lll : 'D MMM YYYY, H:mm',
6152            LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
6153            llll : 'ddd D MMM YYYY, H:mm'
6154        },
6155        calendar : {
6156            sameDay : function () {
6157                return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
6158            },
6159            nextDay : function () {
6160                return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
6161            },
6162            nextWeek : function () {
6163                return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
6164            },
6165            lastDay : function () {
6166                return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
6167            },
6168            lastWeek : function () {
6169                return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
6170            },
6171            sameElse : 'L'
6172        },
6173        relativeTime : {
6174            future : 'd\'aquí %s',
6175            past : 'fa %s',
6176            s : 'uns segons',
6177            ss : '%d segons',
6178            m : 'un minut',
6179            mm : '%d minuts',
6180            h : 'una hora',
6181            hh : '%d hores',
6182            d : 'un dia',
6183            dd : '%d dies',
6184            M : 'un mes',
6185            MM : '%d mesos',
6186            y : 'un any',
6187            yy : '%d anys'
6188        },
6189        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
6190        ordinal : function (number, period) {
6191            var output = (number === 1) ? 'r' :
6192                (number === 2) ? 'n' :
6193                (number === 3) ? 'r' :
6194                (number === 4) ? 't' : 'è';
6195            if (period === 'w' || period === 'W') {
6196                output = 'a';
6197            }
6198            return number + output;
6199        },
6200        week : {
6201            dow : 1, // Monday is the first day of the week.
6202            doy : 4  // The week that contains Jan 4th is the first week of the year.
6203        }
6204    });
6205
6206    //! moment.js locale configuration
6207
6208    var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.
6208split('_'),
6209        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
6210    function plural$1(n) {
6211        return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
6212    }
6213    function translate$1(number, withoutSuffix, key, isFuture) {
6214        var result = number + ' ';
6215        switch (key) {
6216            case 's':  // a few seconds / in a few seconds / a few seconds ago
6217                return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
6218            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
6219                if (withoutSuffix || isFuture) {
6220                    return result + (plural$1(number) ? 'sekundy' : 'sekund');
6221                } else {
6222                    return result + 'sekundami';
6223                }
6224                break;
6225            case 'm':  // a minute / in a minute / a minute ago
6226                return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
6227            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
6228                if (withoutSuffix || isFuture) {
6229                    return result + (plural$1(number) ? 'minuty' : 'minut');
6230                } else {
6231                    return result + 'minutami';
6232                }
6233                break;
6234            case 'h':  // an hour / in an hour / an hour ago
6235                return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
6236            case 'hh': // 9 hours / in 9 hours / 9 hours ago
6237                if (withoutSuffix || isFuture) {
6238                    return result + (plural$1(number) ? 'hodiny' : 'hodin');
6239                } else {
6240                    return result + 'hodinami';
6241                }
6242                break;
6243            case 'd':  // a day / in a day / a day ago
6244                return (withoutSuffix || isFuture) ? 'den' : 'dnem';
6245            case 'dd': // 9 days / in 9 days / 9 days ago
6246                if (withoutSuffix || isFuture) {
6247                    return result + (plural$1(number) ? 'dny' : 'dní');
6248                } else {
6249                    return result + 'dny';
6250                }
6251                break;
6252            case 'M':  // a month / in a month / a month ago
6253                return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
6254            case 'MM': // 9 months / in 9 months / 9 months ago
6255                if (withoutSuffix || isFuture) {
6256                    return result + (plural$1(number) ? 'měsíce' : 'měsíců');
6257                } else {
6258                    return result + 'měsíci';
6259                }
6260                break;
6261            case 'y':  // a year / in a year / a year ago
6262                return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
6263            case 'yy': // 9 years / in 9 years / 9 years ago
6264                if (withoutSuffix || isFuture) {
6265                    return result + (plural$1(number) ? 'roky' : 'let');
6266                } else {
6267                    return result + 'lety';
6268                }
6269                break;
6270        }
6271    }
6272
6273    hooks.defineLocale('cs', {
6274        months : months$3,
6275        monthsShort : monthsShort,
6276        monthsParse : (function (months, monthsShort) {
6277            var i, _monthsParse = [];
6278            for (i = 0; i < 12; i++) {
6279                // use custom parser to solve problem with July (červenec)
6280                _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
6281            }
6282            return _monthsParse;
6283        }(months$3, monthsShort)),
6284        shortMonthsParse : (function (monthsShort) {
6285            var i, _shortMonthsParse = [];
6286            for (i = 0; i < 12; i++) {
6287                _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
6288            }
6289            return _shortMonthsParse;
6290        }(monthsShort)),
6291        longMonthsParse : (function (months) {
6292            var i, _longMonthsParse = [];
6293            for (i = 0; i < 12; i++) {
6294                _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
6295            }
6296            return _longMonthsParse;
6297        }(months$3)),
6298        weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
6299        weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
6300        weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
6301        longDateFormat : {
6302            LT: 'H:mm',
6303            LTS : 'H:mm:ss',
6304            L : 'DD.MM.YYYY',
6305            LL : 'D. MMMM YYYY',
6306            LLL : 'D. MMMM YYYY H:mm',
6307            LLLL : 'dddd D. MMMM YYYY H:mm',
6308            l : 'D. M. YYYY'
6309        },
6310        calendar : {
6311            sameDay: '[dnes v] LT',
6312            nextDay: '[zítra v] LT',
6313            nextWeek: function () {
6314                switch (this.day()) {
6315                    case 0:
6316                        return '[v neděli v] LT';
6317                    case 1:
6318                    case 2:
6319                        return '[v] dddd [v] LT';
6320                    case 3:
6321                        return '[ve středu v] LT';
6322                    case 4:
6323                        return '[ve čtvrtek v] LT';
6324                    case 5:
6325                        return '[v pátek v] LT';
6326                    case 6:
6327                        return '[v sobotu v] LT';
6328                }
6329            },
6330            lastDay: '[včera v] LT',
6331            lastWeek: function () {
6332                switch (this.day()) {
6333                    case 0:
6334                        return '[minulou neděli v] LT';
6335                    case 1:
6336                    case 2:
6337                        return '[minulé] dddd [v] LT';
6338                    case 3:
6339                        return '[minulou středu v] LT';
6340                    case 4:
6341                    case 5:
6342                        return '[minulý] dddd [v] LT';
6343                    case 6:
6344                        return '[minulou sobotu v] LT';
6345                }
6346            },
6347            sameElse: 'L'
6348        },
6349        relativeTime : {
6350            future : 'za %s',
6351            past : 'před %s',
6352            s : translate$1,
6353            ss : translate$1,
6354            m : translate$1,
6355            mm : translate$1,
6356            h : translate$1,
6357            hh : translate$1,
6358            d : translate$1,
6359            dd : translate$1,
6360            M : translate$1,
6361            MM : translate$1,
6362            y : translate$1,
6363            yy : translate$1
6364        },
6365        dayOfMonthOrdinalParse : /\d{1,2}\./,
6366        ordinal : '%d.',
6367        week : {
6368            dow : 1, // Monday is the first day of the week.
6369            doy : 4  // The week that contains Jan 4th is the first week of the year.
6370        }
6371    });
6372
6373    //! moment.js locale configuration
6374
6375    hooks.defineLocale('cv', {
6376        months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
6377        monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
6378        weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
6379        weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
6380        weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
6381        longDateFormat : {
6382            LT : 'HH:mm',
6383            LTS : 'HH:mm:ss',
6384            L : 'DD-MM-YYYY',
6385            LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
6386            LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
6387            LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
6388        },
6389        calendar : {
6390            sameDay: '[Паян] LT [сехетре]',
6391            nextDay: '[Ыран] LT [сехетре]',
6392            lastDay: '[Ӗнер] LT [сехетре]',
6393            nextWeek: '[Ҫитес] dddd LT [сехетре]',
6394            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
6395            sameElse: 'L'
6396        },
6397        relativeTime : {
6398            future : function (output) {
6399                var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
6400                return output + affix;
6401            },
6402            past : '%s каялла',
6403            s : 'пӗр-ик ҫеккунт',
6404            ss : '%d ҫеккунт',
6405            m : 'пӗр минут',
6406            mm : '%d минут',
6407            h : 'пӗр сехет',
6408            hh : '%d сехет',
6409            d : 'пӗр кун',
6410            dd : '%d кун',
6411            M : 'пӗр уйӑх',
6412            MM : '%d уйӑх',
6413            y : 'пӗр ҫул',
6414            yy : '%d ҫул'
6415        },
6416        dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
6417        ordinal : '%d-мӗш',
6418        week : {
6419            dow : 1, // Monday is the first day of the week.
6420            doy : 7  // The week that contains Jan 1st is the first week of the year.
6421        }
6422    });
6423
6424    //! moment.js locale configuration
6425
6426    hooks.defineLocale('cy', {
6427        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
6428        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
6429        weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
6430        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
6431        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
6432        weekdaysParseExact : true,
6433        // time formats are the same as en-gb
6434        longDateFormat: {
6435            LT: 'HH:mm',
6436            LTS : 'HH:mm:ss',
6437            L: 'DD/MM/YYYY',
6438            LL: 'D MMMM YYYY',
6439            LLL: 'D MMMM YYYY HH:mm',
6440            LLLL: 'dddd, D MMMM YYYY HH:mm'
6441        },
6442        calendar: {
6443            sameDay: '[Heddiw am] LT',
6444            nextDay: '[Yfory am] LT',
6445            nextWeek: 'dddd [am] LT',
6446            lastDay: '[Ddoe am] LT',
6447            lastWeek: 'dddd [diwethaf am] LT',
6448            sameElse: 'L'
6449        },
6450        relativeTime: {
6451            future: 'mewn %s',
6452            past: '%s yn ôl',
6453            s: 'ychydig eiliadau',
6454            ss: '%d eiliad',
6455            m: 'munud',
6456            mm: '%d munud',
6457            h: 'awr',
6458            hh: '%d awr',
6459            d: 'diwrnod',
6460            dd: '%d diwrnod',
6461            M: 'mis',
6462            MM: '%d mis',
6463            y: 'blwyddyn',
6464            yy: '%d flynedd'
6465        },
6466        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
6467        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
6468        ordinal: function (number) {
6469            var b = number,
6470                output = '',
6471                lookup = [
6472                    '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
6473                    'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
6474                ];
6475            if (b > 20) {
6476                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
6477                    output = 'fed'; // not 30ain, 70ain or 90ain
6478                } else {
6479                    output = 'ain';
6480                }
6481            } else if (b > 0) {
6482                output = lookup[b];
6483            }
6484            return number + output;
6485        },
6486        week : {
6487            dow : 1, // Monday is the first day of the week.
6488            doy : 4  // The week that contains Jan 4th is the first week of the year.
6489        }
6490    });
6491
6492    //! moment.js locale configuration
6493
6494    hooks.defineLocale('da', {
6495        months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
6496        monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
6497        weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
6498        weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
6499        weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
6500        longDateFormat : {
6501            LT : 'HH:mm',
6502            LTS : 'HH:mm:ss',
6503            L : 'DD.MM.YYYY',
6504            LL : 'D. MMMM YYYY',
6505            LLL : 'D. MMMM YYYY HH:mm',
6506            LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
6507        },
6508        calendar : {
6509            sameDay : '[i dag kl.] LT',
6510            nextDay : '[i morgen kl.] LT',
6511            nextWeek : 'på dddd [kl.] LT',
6512            lastDay : '[i går kl.] LT',
6513            lastWeek : '[i] dddd[s kl.] LT',
6514            sameElse : 'L'
6515        },
6516        relativeTime : {
6517            future : 'om %s',
6518            past : '%s siden',
6519            s : 'få sekunder',
6520            ss : '%d sekunder',
6521            m : 'et minut',
6522            mm : '%d minutter',
6523            h : 'en time',
6524            hh : '%d timer',
6525            d : 'en dag',
6526            dd : '%d dage',
6527            M : 'en måned',
6528            MM : '%d måneder',
6529            y : 'et år',
6530            yy : '%d år'
6531        },
6532        dayOfMonthOrdinalParse: /\d{1,2}\./,
6533        ordinal : '%d.',
6534        week : {
6535            dow : 1, // Monday is the first day of the week.
6536            doy : 4  // The week that contains Jan 4th is the first week of the year.
6537        }
6538    });
6539
6540    //! moment.js locale configuration
6541
6542    function processRelativeTime(number, withoutSuffix, key, isFuture) {
6543        var format = {
6544            'm': ['eine Minute', 'einer Minute'],
6545            'h': ['eine Stunde', 'einer Stunde'],
6546            'd': ['ein Tag', 'einem Tag'],
6547            'dd': [number + ' Tage', number + ' Tagen'],
6548            'M': ['ein Monat', 'einem Monat'],
6549            'MM': [number + ' Monate', number + ' Monaten'],
6550            'y': ['ein Jahr', 'einem Jahr'],
6551            'yy': [number + ' Jahre', number + ' Jahren']
6552        };
6553        return withoutSuffix ? format[key][0] : format[key][1];
6554    }
6555
6556    hooks.defineLocale('de-at', {
6557        months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
6558        monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
6559        monthsParseExact : true,
6560        weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
6561        weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
6562        weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
6563        weekdaysParseExact : true,
6564        longDateFormat : {
6565            LT: 'HH:mm',
6566            LTS: 'HH:mm:ss',
6567            L : 'DD.MM.YYYY',
6568            LL : 'D. MMMM YYYY',
6569            LLL : 'D. MMMM YYYY HH:mm',
6570            LLLL : 'dddd, D. MMMM YYYY HH:mm'
6571        },
6572        calendar : {
6573            sameDay: '[heute um] LT [Uhr]',
6574            sameElse: 'L',
6575            nextDay: '[morgen um] LT [Uhr]',
6576            nextWeek: 'dddd [um] LT [Uhr]',
6577            lastDay: '[gestern um] LT [Uhr]',
6578            lastWeek: '[letzten] dddd [um] LT [Uhr]'
6579        },
6580        relativeTime : {
6581            future : 'in %s',
6582            past : 'vor %s',
6583            s : 'ein paar Sekunden',
6584            ss : '%d Sekunden',
6585            m : processRelativeTime,
6586            mm : '%d Minuten',
6587            h : processRelativeTime,
6588            hh : '%d Stunden',
6589            d : processRelativeTime,
6590            dd : processRelativeTime,
6591            M : processRelativeTime,
6592            MM : processRelativeTime,
6593            y : processRelativeTime,
6594            yy : processRelativeTime
6595        },
6596        dayOfMonthOrdinalParse: /\d{1,2}\./,
6597        ordinal : '%d.',
6598        week : {
6599            dow : 1, // Monday is the first day of the week.
6600            doy : 4  // The week that contains Jan 4th is the first week of the year.
6601        }
6602    });
6603
6604    //! moment.js locale configuration
6605
6606    function processRelativeTime$1(number, withoutSuffix, key, isFuture) {
6607        var format = {
6608            'm': ['eine Minute', 'einer Minute'],
6609            'h': ['eine Stunde', 'einer Stunde'],
6610            'd': ['ein Tag', 'einem Tag'],
6611            'dd': [number + ' Tage', number + ' Tagen'],
6612            'M': ['ein Monat', 'einem Monat'],
6613            'MM': [number + ' Monate', number + ' Monaten'],
6614            'y': ['ein Jahr', 'einem Jahr'],
6615            'yy': [number + ' Jahre', number + ' Jahren']
6616        };
6617        return withoutSuffix ? format[key][0] : format[key][1];
6618    }
6619
6620    hooks.defineLocale('de-ch', {
6621        months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
6622        monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
6623        monthsParseExact : true,
6624        weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
6625        weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
6626        weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
6627        weekdaysParseExact : true,
6628        longDateFormat : {
6629            LT: 'HH:mm',
6630            LTS: 'HH:mm:ss',
6631            L : 'DD.MM.YYYY',
6632            LL : 'D. MMMM YYYY',
6633            LLL : 'D. MMMM YYYY HH:mm',
6634            LLLL : 'dddd, D. MMMM YYYY HH:mm'
6635        },
6636        calendar : {
6637            sameDay: '[heute um] LT [Uhr]',
6638            sameElse: 'L',
6639            nextDay: '[morgen um] LT [Uhr]',
6640            nextWeek: 'dddd [um] LT [Uhr]',
6641            lastDay: '[gestern um] LT [Uhr]',
6642            lastWeek: '[letzten] dddd [um] LT [Uhr]'
6643        },
6644        relativeTime : {
6645            future : 'in %s',
6646            past : 'vor %s',
6647            s : 'ein paar Sekunden',
6648            ss : '%d Sekunden',
6649            m : processRelativeTime$1,
6650            mm : '%d Minuten',
6651            h : processRelativeTime$1,
6652            hh : '%d Stunden',
6653            d : processRelativeTime$1,
6654            dd : processRelativeTime$1,
6655            M : processRelativeTime$1,
6656            MM : processRelativeTime$1,
6657            y : processRelativeTime$1,
6658            yy : processRelativeTime$1
6659        },
6660        dayOfMonthOrdinalParse: /\d{1,2}\./,
6661        ordinal : '%d.',
6662        week : {
6663            dow : 1, // Monday is the first day of the week.
6664            doy : 4  // The week that contains Jan 4th is the first week of the year.
6665        }
6666    });
6667
6668    //! moment.js locale configuration
6669
6670    function processRelativeTime$2(number, withoutSuffix, key, isFuture) {
6671        var format = {
6672            'm': ['eine Minute', 'einer Minute'],
6673            'h': ['eine Stunde', 'einer Stunde'],
6674            'd': ['ein Tag', 'einem Tag'],
6675            'dd': [number + ' Tage', number + ' Tagen'],
6676            'M': ['ein Monat', 'einem Monat'],
6677            'MM': [number + ' Monate', number + ' Monaten'],
6678            'y': ['ein Jahr', 'einem Jahr'],
6679            'yy': [number + ' Jahre', number + ' Jahren']
6680        };
6681        return withoutSuffix ? format[key][0] : format[key][1];
6682    }
6683
6684    hooks.defineLocale('de', {
6685        months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
6686        monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
6687        monthsParseExact : true,
6688        weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
6689        weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
6690        weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
6691        weekdaysParseExact : true,
6692        longDateFormat : {
6693            LT: 'HH:mm',
6694            LTS: 'HH:mm:ss',
6695            L : 'DD.MM.YYYY',
6696            LL : 'D. MMMM YYYY',
6697            LLL : 'D. MMMM YYYY HH:mm',
6698            LLLL : 'dddd, D. MMMM YYYY HH:mm'
6699        },
6700        calendar : {
6701            sameDay: '[heute um] LT [Uhr]',
6702            sameElse: 'L',
6703            nextDay: '[morgen um] LT [Uhr]',
6704            nextWeek: 'dddd [um] LT [Uhr]',
6705            lastDay: '[gestern um] LT [Uhr]',
6706            lastWeek: '[letzten] dddd [um] LT [Uhr]'
6707        },
6708        relativeTime : {
6709            future : 'in %s',
6710            past : 'vor %s',
6711            s : 'ein paar Sekunden',
6712            ss : '%d Sekunden',
6713            m : processRelativeTime$2,
6714            mm : '%d Minuten',
6715            h : processRelativeTime$2,
6716            hh : '%d Stunden',
6717            d : processRelativeTime$2,
6718            dd : processRelativeTime$2,
6719            M : processRelativeTime$2,
6720            MM : processRelativeTime$2,
6721            y : processRelativeTime$2,
6722            yy : processRelativeTime$2
6723        },
6724        dayOfMonthOrdinalParse: /\d{1,2}\./,
6725        ordinal : '%d.',
6726        week : {
6727            dow : 1, // Monday is the first day of the week.
6728            doy : 4  // The week that contains Jan 4th is the first week of the year.
6729        }
6730    });
6731
6732    //! moment.js locale configuration
6733
6734    var months$4 = [
6735        'ޖެނުއަރީ',
6736        'ފެބްރުއަރީ',
6737        'މާރިޗު',
6738        'އޭޕްރީލު',
6739        'މޭ',
6740        'ޖޫން',
6741        'ޖުލައި',
6742        'އޯގަސްޓު',
6743        'ސެޕްޓެމްބަރު',
6744        'އޮކްޓޯބަރު',
6745        'ނޮވެމްބަރު',
6746        'ޑިސެމްބަރު'
6747    ], weekdays = [
6748        'އާދިއްތަ',
6749        'ހޯމަ',
6750        'އަންގާރަ',
6751        'ބުދަ',
6752        'ބުރާސްފަތި',
6753        'ހުކުރު',
6754        'ހޮނިހިރު'
6755    ];
6756
6757    hooks.defineLocale('dv', {
6758        months : months$4,
6759        monthsShort : months$4,
6760        weekdays : weekdays,
6761        weekdaysShort : weekdays,
6762        weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
6763        longDateFormat : {
6764
6765            LT : 'HH:mm',
6766            LTS : 'HH:mm:ss',
6767            L : 'D/M/YYYY',
6768            LL : 'D MMMM YYYY',
6769            LLL : 'D MMMM YYYY HH:mm',
6770            LLLL : 'dddd D MMMM YYYY HH:mm'
6771        },
6772        meridiemParse: /މކ|މފ/,
6773        isPM : function (input) {
6774            return 'މފ' === input;
6775        },
6776        meridiem : function (hour, minute, isLower) {
6777            if (hour < 12) {
6778                return 'މކ';
6779            } else {
6780                return 'މފ';
6781            }
6782        },
6783        calendar : {
6784            sameDay : '[މިއަދު] LT',
6785            nextDay : '[މާދަމާ] LT',
6786            nextWeek : 'dddd LT',
6787            lastDay : '[އިއްޔެ] LT',
6788            lastWeek : '[ފާއިތުވި] dddd LT',
6789            sameElse : 'L'
6790        },
6791        relativeTime : {
6792            future : 'ތެރޭގައި %s',
6793            past : 'ކުރިން %s',
6794            s : 'ސިކުންތުކޮޅެއް',
6795            ss : 'd% ސިކުންތު',
6796            m : 'މިނިޓެއް',
6797            mm : 'މިނިޓު %d',
6798            h : 'ގަޑިއިރެއް',
6799            hh : 'ގަޑިއިރު %d',
6800            d : 'ދުވަހެއް',
6801            dd : 'ދުވަސް %d',
6802            M : 'މަހެއް',
6803            MM : 'މަސް %d',
6804            y : 'އަހަރެއް',
6805            yy : 'އަހަރު %d'
6806        },
6807        preparse: function (string) {
6808            return string.replace(/،/g, ',');
6809        },
6810        postformat: function (string) {
6811            return string.replace(/,/g, '،');
6812        },
6813        week : {
6814            dow : 7,  // Sunday is the first day of the week.
6815            doy : 12  // The week that contains Jan 1st is the first week of the year.
6816        }
6817    });
6818
6819    //! moment.js locale configuration
6820
6821    hooks.defineLocale('el', {
6822        monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
6823        monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
6824        months : function (momentToFormat, format) {
6825            if (!momentToFormat) {
6826                return this._monthsNominativeEl;
6827            } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
6828                return this._monthsGenitiveEl[momentToFormat.month()];
6829            } else {
6830                return this._monthsNominativeEl[momentToFormat.month()];
6831            }
6832        },
6833        monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
6834        weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
6835        weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
6836        weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
6837        meridiem : function (hours, minutes, isLower) {
6838            if (hours > 11) {
6839                return isLower ? 'μμ' : 'ΜΜ';
6840            } else {
6841                return isLower ? 'πμ' : 'ΠΜ';
6842            }
6843        },
6844        isPM : function (input) {
6845            return ((input + '').toLowerCase()[0] === 'μ');
6846        },
6847        meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
6848        longDateFormat : {
6849            LT : 'h:mm A',
6850            LTS : 'h:mm:ss A',
6851            L : 'DD/MM/YYYY',
6852            LL : 'D MMMM YYYY',
6853            LLL : 'D MMMM YYYY h:mm A',
6854            LLLL : 'dddd, D MMMM YYYY h:mm A'
6855        },
6856        calendarEl : {
6857            sameDay : '[Σήμερα {}] LT',
6858            nextDay : '[Αύριο {}] LT',
6859            nextWeek : 'dddd [{}] LT',
6860            lastDay : '[Χθες {}] LT',
6861            lastWeek : function () {
6862                switch (this.day()) {
6863                    case 6:
6864                        return '[το προηγούμενο] dddd [{}] LT';
6865                    default:
6866                        return '[την προηγούμενη] dddd [{}] LT';
6867                }
6868            },
6869            sameElse : 'L'
6870        },
6871        calendar : function (key, mom) {
6872            var output = this._calendarEl[key],
6873                hours = mom && mom.hours();
6874            if (isFunction(output)) {
6875                output = output.apply(mom);
6876            }
6877            return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
6878        },
6879        relativeTime : {
6880            future : 'σε %s',
6881            past : '%s πριν',
6882            s : 'λίγα δευτερόλεπτα',
6883            ss : '%d δευτερόλεπτα',
6884            m : 'ένα λεπτό',
6885            mm : '%d λεπτά',
6886            h : 'μία ώρα',
6887            hh : '%d ώρες',
6888            d : 'μία μέρα',
6889            dd : '%d μέρες',
6890            M : 'ένας μήνας',
6891            MM : '%d μήνες',
6892            y : 'ένας χρόνος',
6893            yy : '%d χρόνια'
6894        },
6895        dayOfMonthOrdinalParse: /\d{1,2}η/,
6896        ordinal: '%dη',
6897        week : {
6898            dow : 1, // Monday is the first day of the week.
6899            doy : 4  // The week that contains Jan 4st is the first week of the year.
6900        }
6901    });
6902
6903    //! moment.js locale configuration
6904
6905    hooks.defineLocale('en-au', {
6906        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
6907        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
6908        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
6909        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
6910        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
6911        longDateFormat : {
6912            LT : 'h:mm A',
6913            LTS : 'h:mm:ss A',
6914            L : 'DD/MM/YYYY',
6915            LL : 'D MMMM YYYY',
6916            LLL : 'D MMMM YYYY h:mm A',
6917            LLLL : 'dddd, D MMMM YYYY h:mm A'
6918        },
6919        calendar : {
6920            sameDay : '[Today at] LT',
6921            nextDay : '[Tomorrow at] LT',
6922            nextWeek : 'dddd [at] LT',
6923            lastDay : '[Yesterday at] LT',
6924            lastWeek : '[Last] dddd [at] LT',
6925            sameElse : 'L'
6926        },
6927        relativeTime : {
6928            future : 'in %s',
6929            past : '%s ago',
6930            s : 'a few seconds',
6931            ss : '%d seconds',
6932            m : 'a minute',
6933            mm : '%d minutes',
6934            h : 'an hour',
6935            hh : '%d hours',
6936            d : 'a day',
6937            dd : '%d days',
6938            M : 'a month',
6939            MM : '%d months',
6940            y : 'a year',
6941            yy : '%d years'
6942        },
6943        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
6944        ordinal : function (number) {
6945            var b = number % 10,
6946                output = (~~(number % 100 / 10) === 1) ? 'th' :
6947                (b === 1) ? 'st' :
6948                (b === 2) ? 'nd' :
6949                (b === 3) ? 'rd' : 'th';
6950            return number + output;
6951        },
6952        week : {
6953            dow : 1, // Monday is the first day of the week.
6954            doy : 4  // The week that contains Jan 4th is the first week of the year.
6955        }
6956    });
6957
6958    //! moment.js locale configuration
6959
6960    hooks.defineLocale('en-ca', {
6961        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
6962        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
6963        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
6964        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
6965        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
6966        longDateFormat : {
6967            LT : 'h:mm A',
6968            LTS : 'h:mm:ss A',
6969            L : 'YYYY-MM-DD',
6970            LL : 'MMMM D, YYYY',
6971            LLL : 'MMMM D, YYYY h:mm A',
6972            LLLL : 'dddd, MMMM D, YYYY h:mm A'
6973        },
6974        calendar : {
6975            sameDay : '[Today at] LT',
6976            nextDay : '[Tomorrow at] LT',
6977            nextWeek : 'dddd [at] LT',
6978            lastDay : '[Yesterday at] LT',
6979            lastWeek : '[Last] dddd [at] LT',
6980            sameElse : 'L'
6981        },
6982        relativeTime : {
6983            future : 'in %s',
6984            past : '%s ago',
6985            s : 'a few seconds',
6986            ss : '%d seconds',
6987            m : 'a minute',
6988            mm : '%d minutes',
6989            h : 'an hour',
6990            hh : '%d hours',
6991            d : 'a day',
6992            dd : '%d days',
6993            M : 'a month',
6994            MM : '%d months',
6995            y : 'a year',
6996            yy : '%d years'
6997        },
6998        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
6999        ordinal : function (number) {
7000            var b = number % 10,
7001                output = (~~(number % 100 / 10) === 1) ? 'th' :
7002                (b === 1) ? 'st' :
7003                (b === 2) ? 'nd' :
7004                (b === 3) ? 'rd' : 'th';
7005            return number + output;
7006        }
7007    });
7008
7009    //! moment.js locale configuration
7010
7011    hooks.defineLocale('en-gb', {
7012        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
7013        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
7014        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
7015        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
7016        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
7017        longDateFormat : {
7018            LT : 'HH:mm',
7019            LTS : 'HH:mm:ss',
7020            L : 'DD/MM/YYYY',
7021            LL : 'D MMMM YYYY',
7022            LLL : 'D MMMM YYYY HH:mm',
7023            LLLL : 'dddd, D MMMM YYYY HH:mm'
7024        },
7025        calendar : {
7026            sameDay : '[Today at] LT',
7027            nextDay : '[Tomorrow at] LT',
7028            nextWeek : 'dddd [at] LT',
7029            lastDay : '[Yesterday at] LT',
7030            lastWeek : '[Last] dddd [at] LT',
7031            sameElse : 'L'
7032        },
7033        relativeTime : {
7034            future : 'in %s',
7035            past : '%s ago',
7036            s : 'a few seconds',
7037            ss : '%d seconds',
7038            m : 'a minute',
7039            mm : '%d minutes',
7040            h : 'an hour',
7041            hh : '%d hours',
7042            d : 'a day',
7043            dd : '%d days',
7044            M : 'a month',
7045            MM : '%d months',
7046            y : 'a year',
7047            yy : '%d years'
7048        },
7049        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
7050        ordinal : function (number) {
7051            var b = number % 10,
7052                output = (~~(number % 100 / 10) === 1) ? 'th' :
7053                (b === 1) ? 'st' :
7054                (b === 2) ? 'nd' :
7055                (b === 3) ? 'rd' : 'th';
7056            return number + output;
7057        },
7058        week : {
7059            dow : 1, // Monday is the first day of the week.
7060            doy : 4  // The week that contains Jan 4th is the first week of the year.
7061        }
7062    });
7063
7064    //! moment.js locale configuration
7065
7066    hooks.defineLocale('en-ie', {
7067        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
7068        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
7069        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
7070        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
7071        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
7072        longDateFormat : {
7073            LT : 'HH:mm',
7074            LTS : 'HH:mm:ss',
7075            L : 'DD-MM-YYYY',
7076            LL : 'D MMMM YYYY',
7077            LLL : 'D MMMM YYYY HH:mm',
7078            LLLL : 'dddd D MMMM YYYY HH:mm'
7079        },
7080        calendar : {
7081            sameDay : '[Today at] LT',
7082            nextDay : '[Tomorrow at] LT',
7083            nextWeek : 'dddd [at] LT',
7084            lastDay : '[Yesterday at] LT',
7085            lastWeek : '[Last] dddd [at] LT',
7086            sameElse : 'L'
7087        },
7088        relativeTime : {
7089            future : 'in %s',
7090            past : '%s ago',
7091            s : 'a few seconds',
7092            ss : '%d seconds',
7093            m : 'a minute',
7094            mm : '%d minutes',
7095            h : 'an hour',
7096            hh : '%d hours',
7097            d : 'a day',
7098            dd : '%d days',
7099            M : 'a month',
7100            MM : '%d months',
7101            y : 'a year',
7102            yy : '%d years'
7103        },
7104        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
7105        ordinal : function (number) {
7106            var b = number % 10,
7107                output = (~~(number % 100 / 10) === 1) ? 'th' :
7108                (b === 1) ? 'st' :
7109                (b === 2) ? 'nd' :
7110                (b === 3) ? 'rd' : 'th';
7111            return number + output;
7112        },
7113        week : {
7114            dow : 1, // Monday is the first day of the week.
7115            doy : 4  // The week that contains Jan 4th is the first week of the year.
7116        }
7117    });
7118
7119    //! moment.js locale configuration
7120
7121    hooks.defineLocale('en-il', {
7122        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
7123        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
7124        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
7125        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
7126        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
7127        longDateFormat : {
7128            LT : 'HH:mm',
7129            LTS : 'HH:mm:ss',
7130            L : 'DD/MM/YYYY',
7131            LL : 'D MMMM YYYY',
7132            LLL : 'D MMMM YYYY HH:mm',
7133            LLLL : 'dddd, D MMMM YYYY HH:mm'
7134        },
7135        calendar : {
7136            sameDay : '[Today at] LT',
7137            nextDay : '[Tomorrow at] LT',
7138            nextWeek : 'dddd [at] LT',
7139            lastDay : '[Yesterday at] LT',
7140            lastWeek : '[Last] dddd [at] LT',
7141            sameElse : 'L'
7142        },
7143        relativeTime : {
7144            future : 'in %s',
7145            past : '%s ago',
7146            s : 'a few seconds',
7147            m : 'a minute',
7148            mm : '%d minutes',
7149            h : 'an hour',
7150            hh : '%d hours',
7151            d : 'a day',
7152            dd : '%d days',
7153            M : 'a month',
7154            MM : '%d months',
7155            y : 'a year',
7156            yy : '%d years'
7157        },
7158        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
7159        ordinal : function (number) {
7160            var b = number % 10,
7161                output = (~~(number % 100 / 10) === 1) ? 'th' :
7162                (b === 1) ? 'st' :
7163                (b === 2) ? 'nd' :
7164                (b === 3) ? 'rd' : 'th';
7165            return number + output;
7166        }
7167    });
7168
7169    //! moment.js locale configuration
7170
7171    hooks.defineLocale('en-nz', {
7172        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
7173        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
7174        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
7175        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
7176        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
7177        longDateFormat : {
7178            LT : 'h:mm A',
7179            LTS : 'h:mm:ss A',
7180            L : 'DD/MM/YYYY',
7181            LL : 'D MMMM YYYY',
7182            LLL : 'D MMMM YYYY h:mm A',
7183            LLLL : 'dddd, D MMMM YYYY h:mm A'
7184        },
7185        calendar : {
7186            sameDay : '[Today at] LT',
7187            nextDay : '[Tomorrow at] LT',
7188            nextWeek : 'dddd [at] LT',
7189            lastDay : '[Yesterday at] LT',
7190            lastWeek : '[Last] dddd [at] LT',
7191            sameElse : 'L'
7192        },
7193        relativeTime : {
7194            future : 'in %s',
7195            past : '%s ago',
7196            s : 'a few seconds',
7197            ss : '%d seconds',
7198            m : 'a minute',
7199            mm : '%d minutes',
7200            h : 'an hour',
7201            hh : '%d hours',
7202            d : 'a day',
7203            dd : '%d days',
7204            M : 'a month',
7205            MM : '%d months',
7206            y : 'a year',
7207            yy : '%d years'
7208        },
7209        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
7210        ordinal : function (number) {
7211            var b = number % 10,
7212                output = (~~(number % 100 / 10) === 1) ? 'th' :
7213                (b === 1) ? 'st' :
7214                (b === 2) ? 'nd' :
7215                (b === 3) ? 'rd' : 'th';
7216            return number + output;
7217        },
7218        week : {
7219            dow : 1, // Monday is the first day of the week.
7220            doy : 4  // The week that contains Jan 4th is the first week of the year.
7221        }
7222    });
7223
7224    //! moment.js locale configuration
7225
7226    hooks.defineLocale('eo', {
7227        months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split('_'),
7228        monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aÅ­g_sep_okt_nov_dec'.split('_'),
7229        weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
7230        weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
7231        weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
7232        longDateFormat : {
7233            LT : 'HH:mm',
7234            LTS : 'HH:mm:ss',
7235            L : 'YYYY-MM-DD',
7236            LL : 'D[-a de] MMMM, YYYY',
7237            LLL : 'D[-a de] MMMM, YYYY HH:mm',
7238            LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
7239        },
7240        meridiemParse: /[ap]\.t\.m/i,
7241        isPM: function (input) {
7242            return input.charAt(0).toLowerCase() === 'p';
7243        },
7244        meridiem : function (hours, minutes, isLower) {
7245            if (hours > 11) {
7246                return isLower ? 'p.t.m.' : 'P.T.M.';
7247            } else {
7248                return isLower ? 'a.t.m.' : 'A.T.M.';
7249            }
7250        },
7251        calendar : {
7252            sameDay : '[HodiaÅ­ je] LT',
7253            nextDay : '[MorgaÅ­ je] LT',
7254            nextWeek : 'dddd [je] LT',
7255            lastDay : '[HieraÅ­ je] LT',
7256            lastWeek : '[pasinta] dddd [je] LT',
7257            sameElse : 'L'
7258        },
7259        relativeTime : {
7260            future : 'post %s',
7261            past : 'antaÅ­ %s',
7262            s : 'sekundoj',
7263            ss : '%d sekundoj',
7264            m : 'minuto',
7265            mm : '%d minutoj',
7266            h : 'horo',
7267            hh : '%d horoj',
7268            d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
7269            dd : '%d tagoj',
7270            M : 'monato',
7271            MM : '%d monatoj',
7272            y : 'jaro',
7273            yy : '%d jaroj'
7274        },
7275        dayOfMonthOrdinalParse: /\d{1,2}a/,
7276        ordinal : '%da',
7277        week : {
7278            dow : 1, // Monday is the first day of the week.
7279            doy : 7  // The week that contains Jan 1st is the first week of the year.
7280        }
7281    });
7282
7283    //! moment.js locale configuration
7284
7285    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
7286        monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
7287
7288    var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
7289    var monthsRegex$1 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
7290
7291    hooks.defineLocale('es-do', {
7292        months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
7293        monthsShort : function (m, format) {
7294            if (!m) {
7295                return monthsShortDot;
7296            } else if (/-MMM-/.test(format)) {
7297                return monthsShort$1[m.month()];
7298            } else {
7299                return monthsShortDot[m.month()];
7300            }
7301        },
7302        monthsRegex: monthsRegex$1,
7303        monthsShortRegex: monthsRegex$1,
7304        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
7305        monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
7306        monthsParse: monthsParse,
7307        longMonthsParse: monthsParse,
7308        shortMonthsParse: monthsParse,
7309        weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
7310        weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
7311        weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
7312        weekdaysParseExact : true,
7313        longDateFormat : {
7314            LT : 'h:mm A',
7315            LTS : 'h:mm:ss A',
7316            L : 'DD/MM/YYYY',
7317            LL : 'D [de] MMMM [de] YYYY',
7318            LLL : 'D [de] MMMM [de] YYYY h:mm A',
7319            LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
7320        },
7321        calendar : {
7322            sameDay : function () {
7323                return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7324            },
7325            nextDay : function () {
7326                return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7327            },
7328            nextWeek : function () {
7329                return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7330            
7330},
7331            lastDay : function () {
7332                return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7333            },
7334            lastWeek : function () {
7335                return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7336            },
7337            sameElse : 'L'
7338        },
7339        relativeTime : {
7340            future : 'en %s',
7341            past : 'hace %s',
7342            s : 'unos segundos',
7343            ss : '%d segundos',
7344            m : 'un minuto',
7345            mm : '%d minutos',
7346            h : 'una hora',
7347            hh : '%d horas',
7348            d : 'un día',
7349            dd : '%d días',
7350            M : 'un mes',
7351            MM : '%d meses',
7352            y : 'un año',
7353            yy : '%d años'
7354        },
7355        dayOfMonthOrdinalParse : /\d{1,2}º/,
7356        ordinal : '%dº',
7357        week : {
7358            dow : 1, // Monday is the first day of the week.
7359            doy : 4  // The week that contains Jan 4th is the first week of the year.
7360        }
7361    });
7362
7363    //! moment.js locale configuration
7364
7365    var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
7366        monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
7367
7368    hooks.defineLocale('es-us', {
7369        months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
7370        monthsShort : function (m, format) {
7371            if (!m) {
7372                return monthsShortDot$1;
7373            } else if (/-MMM-/.test(format)) {
7374                return monthsShort$2[m.month()];
7375            } else {
7376                return monthsShortDot$1[m.month()];
7377            }
7378        },
7379        monthsParseExact : true,
7380        weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
7381        weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
7382        weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
7383        weekdaysParseExact : true,
7384        longDateFormat : {
7385            LT : 'h:mm A',
7386            LTS : 'h:mm:ss A',
7387            L : 'MM/DD/YYYY',
7388            LL : 'MMMM [de] D [de] YYYY',
7389            LLL : 'MMMM [de] D [de] YYYY h:mm A',
7390            LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
7391        },
7392        calendar : {
7393            sameDay : function () {
7394                return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7395            },
7396            nextDay : function () {
7397                return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7398            },
7399            nextWeek : function () {
7400                return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7401            },
7402            lastDay : function () {
7403                return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7404            },
7405            lastWeek : function () {
7406                return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7407            },
7408            sameElse : 'L'
7409        },
7410        relativeTime : {
7411            future : 'en %s',
7412            past : 'hace %s',
7413            s : 'unos segundos',
7414            ss : '%d segundos',
7415            m : 'un minuto',
7416            mm : '%d minutos',
7417            h : 'una hora',
7418            hh : '%d horas',
7419            d : 'un día',
7420            dd : '%d días',
7421            M : 'un mes',
7422            MM : '%d meses',
7423            y : 'un año',
7424            yy : '%d años'
7425        },
7426        dayOfMonthOrdinalParse : /\d{1,2}º/,
7427        ordinal : '%dº',
7428        week : {
7429            dow : 0, // Sunday is the first day of the week.
7430            doy : 6  // The week that contains Jan 1st is the first week of the year.
7431        }
7432    });
7433
7434    //! moment.js locale configuration
7435
7436    var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
7437        monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
7438
7439    var monthsParse$1 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
7440    var monthsRegex$2 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
7441
7442    hooks.defineLocale('es', {
7443        months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
7444        monthsShort : function (m, format) {
7445            if (!m) {
7446                return monthsShortDot$2;
7447            } else if (/-MMM-/.test(format)) {
7448                return monthsShort$3[m.month()];
7449            } else {
7450                return monthsShortDot$2[m.month()];
7451            }
7452        },
7453        monthsRegex : monthsRegex$2,
7454        monthsShortRegex : monthsRegex$2,
7455        monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
7456        monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
7457        monthsParse : monthsParse$1,
7458        longMonthsParse : monthsParse$1,
7459        shortMonthsParse : monthsParse$1,
7460        weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
7461        weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
7462        weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
7463        weekdaysParseExact : true,
7464        longDateFormat : {
7465            LT : 'H:mm',
7466            LTS : 'H:mm:ss',
7467            L : 'DD/MM/YYYY',
7468            LL : 'D [de] MMMM [de] YYYY',
7469            LLL : 'D [de] MMMM [de] YYYY H:mm',
7470            LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
7471        },
7472        calendar : {
7473            sameDay : function () {
7474                return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7475            },
7476            nextDay : function () {
7477                return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7478            },
7479            nextWeek : function () {
7480                return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7481            },
7482            lastDay : function () {
7483                return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7484            },
7485            lastWeek : function () {
7486                return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
7487            },
7488            sameElse : 'L'
7489        },
7490        relativeTime : {
7491            future : 'en %s',
7492            past : 'hace %s',
7493            s : 'unos segundos',
7494            ss : '%d segundos',
7495            m : 'un minuto',
7496            mm : '%d minutos',
7497            h : 'una hora',
7498            hh : '%d horas',
7499            d : 'un día',
7500            dd : '%d días',
7501            M : 'un mes',
7502            MM : '%d meses',
7503            y : 'un año',
7504            yy : '%d años'
7505        },
7506        dayOfMonthOrdinalParse : /\d{1,2}º/,
7507        ordinal : '%dº',
7508        week : {
7509            dow : 1, // Monday is the first day of the week.
7510            doy : 4  // The week that contains Jan 4th is the first week of the year.
7511        }
7512    });
7513
7514    //! moment.js locale configuration
7515
7516    function processRelativeTime$3(number, withoutSuffix, key, isFuture) {
7517        var format = {
7518            's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
7519            'ss': [number + 'sekundi', number + 'sekundit'],
7520            'm' : ['ühe minuti', 'üks minut'],
7521            'mm': [number + ' minuti', number + ' minutit'],
7522            'h' : ['ühe tunni', 'tund aega', 'üks tund'],
7523            'hh': [number + ' tunni', number + ' tundi'],
7524            'd' : ['ühe päeva', 'üks päev'],
7525            'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
7526            'MM': [number + ' kuu', number + ' kuud'],
7527            'y' : ['ühe aasta', 'aasta', 'üks aasta'],
7528            'yy': [number + ' aasta', number + ' aastat']
7529        };
7530        if (withoutSuffix) {
7531            return format[key][2] ? format[key][2] : format[key][1];
7532        }
7533        return isFuture ? format[key][0] : format[key][1];
7534    }
7535
7536    hooks.defineLocale('et', {
7537        months        : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
7538        monthsShort   : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
7539        weekdays      : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
7540        weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
7541        weekdaysMin   : 'P_E_T_K_N_R_L'.split('_'),
7542        longDateFormat : {
7543            LT   : 'H:mm',
7544            LTS : 'H:mm:ss',
7545            L    : 'DD.MM.YYYY',
7546            LL   : 'D. MMMM YYYY',
7547            LLL  : 'D. MMMM YYYY H:mm',
7548            LLLL : 'dddd, D. MMMM YYYY H:mm'
7549        },
7550        calendar : {
7551            sameDay  : '[Täna,] LT',
7552            nextDay  : '[Homme,] LT',
7553            nextWeek : '[Järgmine] dddd LT',
7554            lastDay  : '[Eile,] LT',
7555            lastWeek : '[Eelmine] dddd LT',
7556            sameElse : 'L'
7557        },
7558        relativeTime : {
7559            future : '%s pärast',
7560            past   : '%s tagasi',
7561            s      : processRelativeTime$3,
7562            ss     : processRelativeTime$3,
7563            m      : processRelativeTime$3,
7564            mm     : processRelativeTime$3,
7565            h      : processRelativeTime$3,
7566            hh     : processRelativeTime$3,
7567            d      : processRelativeTime$3,
7568            dd     : '%d päeva',
7569            M      : processRelativeTime$3,
7570            MM     : processRelativeTime$3,
7571            y      : processRelativeTime$3,
7572            yy     : processRelativeTime$3
7573        },
7574        dayOfMonthOrdinalParse: /\d{1,2}\./,
7575        ordinal : '%d.',
7576        week : {
7577            dow : 1, // Monday is the first day of the week.
7578            doy : 4  // The week that contains Jan 4th is the first week of the year.
7579        }
7580    });
7581
7582    //! moment.js locale configuration
7583
7584    hooks.defineLocale('eu', {
7585        months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
7586        monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
7587        monthsParseExact : true,
7588        weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
7589        weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
7590        weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
7591        weekdaysParseExact : true,
7592        longDateFormat : {
7593            LT : 'HH:mm',
7594            LTS : 'HH:mm:ss',
7595            L : 'YYYY-MM-DD',
7596            LL : 'YYYY[ko] MMMM[ren] D[a]',
7597            LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
7598            LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
7599            l : 'YYYY-M-D',
7600            ll : 'YYYY[ko] MMM D[a]',
7601            lll : 'YYYY[ko] MMM D[a] HH:mm',
7602            llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
7603        },
7604        calendar : {
7605            sameDay : '[gaur] LT[etan]',
7606            nextDay : '[bihar] LT[etan]',
7607            nextWeek : 'dddd LT[etan]',
7608            lastDay : '[atzo] LT[etan]',
7609            lastWeek : '[aurreko] dddd LT[etan]',
7610            sameElse : 'L'
7611        },
7612        relativeTime : {
7613            future : '%s barru',
7614            past : 'duela %s',
7615            s : 'segundo batzuk',
7616            ss : '%d segundo',
7617            m : 'minutu bat',
7618            mm : '%d minutu',
7619            h : 'ordu bat',
7620            hh : '%d ordu',
7621            d : 'egun bat',
7622            dd : '%d egun',
7623            M : 'hilabete bat',
7624            MM : '%d hilabete',
7625            y : 'urte bat',
7626            yy : '%d urte'
7627        },
7628        dayOfMonthOrdinalParse: /\d{1,2}\./,
7629        ordinal : '%d.',
7630        week : {
7631            dow : 1, // Monday is the first day of the week.
7632            doy : 7  // The week that contains Jan 1st is the first week of the year.
7633        }
7634    });
7635
7636    //! moment.js locale configuration
7637
7638    var symbolMap$5 = {
7639        '1': 'Û±',
7640        '2': 'Û²',
7641        '3': 'Û³',
7642        '4': 'Û´',
7643        '5': 'Ûµ',
7644        '6': 'Û¶',
7645        '7': 'Û·',
7646        '8': 'Û¸',
7647        '9': 'Û¹',
7648        '0': 'Û°'
7649    }, numberMap$4 = {
7650        'Û±': '1',
7651        'Û²': '2',
7652        'Û³': '3',
7653        'Û´': '4',
7654        'Ûµ': '5',
7655        'Û¶': '6',
7656        'Û·': '7',
7657        'Û¸': '8',
7658        'Û¹': '9',
7659        'Û°': '0'
7660    };
7661
7662    hooks.defineLocale('fa', {
7663        months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
7664        monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
7665        weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
7666        weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
7667        weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
7668        weekdaysParseExact : true,
7669        longDateFormat : {
7670            LT : 'HH:mm',
7671            LTS : 'HH:mm:ss',
7672            L : 'DD/MM/YYYY',
7673            LL : 'D MMMM YYYY',
7674            LLL : 'D MMMM YYYY HH:mm',
7675            LLLL : 'dddd, D MMMM YYYY HH:mm'
7676        },
7677        meridiemParse: /قبل از ظهر|بعد از ظهر/,
7678        isPM: function (input) {
7679            return /بعد از ظهر/.test(input);
7680        },
7681        meridiem : function (hour, minute, isLower) {
7682            if (hour < 12) {
7683                return 'قبل از ظهر';
7684            } else {
7685                return 'بعد از ظهر';
7686            }
7687        },
7688        calendar : {
7689            sameDay : '[امروز ساعت] LT',
7690            nextDay : '[فردا ساعت] LT',
7691            nextWeek : 'dddd [ساعت] LT',
7692            lastDay : '[دیروز ساعت] LT',
7693            lastWeek : 'dddd [پیش] [ساعت] LT',
7694            sameElse : 'L'
7695        },
7696        relativeTime : {
7697            future : 'در %s',
7698            past : '%s پیش',
7699            s : 'چند ثانیه',
7700            ss : 'ثانیه d%',
7701            m : 'یک دقیقه',
7702            mm : '%d دقیقه',
7703            h : 'یک ساعت',
7704            hh : '%d ساعت',
7705            d : 'یک روز',
7706            dd : '%d روز',
7707            M : 'یک ماه',
7708            MM : '%d ماه',
7709            y : 'یک سال',
7710            yy : '%d سال'
7711        },
7712        preparse: function (string) {
7713            return string.replace(/[Û°-Û¹]/g, function (match) {
7714                return numberMap$4[match];
7715            }).replace(/،/g, ',');
7716        },
7717        postformat: function (string) {
7718            return string.replace(/\d/g, function (match) {
7719                return symbolMap$5[match];
7720            }).replace(/,/g, '،');
7721        },
7722        dayOfMonthOrdinalParse: /\d{1,2}م/,
7723        ordinal : '%dم',
7724        week : {
7725            dow : 6, // Saturday is the first day of the week.
7726            doy : 12 // The week that contains Jan 1st is the first week of the year.
7727        }
7728    });
7729
7730    //! moment.js locale configuration
7731
7732    var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
7733        numbersFuture = [
7734            'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
7735            numbersPast[7], numbersPast[8], numbersPast[9]
7736        ];
7737    function translate$2(number, withoutSuffix, key, isFuture) {
7738        var result = '';
7739        switch (key) {
7740            case 's':
7741                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
7742            case 'ss':
7743                return isFuture ? 'sekunnin' : 'sekuntia';
7744            case 'm':
7745                return isFuture ? 'minuutin' : 'minuutti';
7746            case 'mm':
7747                result = isFuture ? 'minuutin' : 'minuuttia';
7748                break;
7749            case 'h':
7750                return isFuture ? 'tunnin' : 'tunti';
7751            case 'hh':
7752                result = isFuture ? 'tunnin' : 'tuntia';
7753                break;
7754            case 'd':
7755                return isFuture ? 'päivän' : 'päivä';
7756            case 'dd':
7757                result = isFuture ? 'päivän' : 'päivää';
7758                break;
7759            case 'M':
7760                return isFuture ? 'kuukauden' : 'kuukausi';
7761            case 'MM':
7762                result = isFuture ? 'kuukauden' : 'kuukautta';
7763                break;
7764            case 'y':
7765                return isFuture ? 'vuoden' : 'vuosi';
7766            case 'yy':
7767                result = isFuture ? 'vuoden' : 'vuotta';
7768                break;
7769        }
7770        result = verbalNumber(number, isFuture) + ' ' + result;
7771        return result;
7772    }
7773    function verbalNumber(number, isFuture) {
7774        return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
7775    }
7776
7777    hooks.defineLocale('fi', {
7778        months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
7779        monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
7780        weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
7781        weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
7782        weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
7783        longDateFormat : {
7784            LT : 'HH.mm',
7785            LTS : 'HH.mm.ss',
7786            L : 'DD.MM.YYYY',
7787            LL : 'Do MMMM[ta] YYYY',
7788            LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
7789            LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
7790            l : 'D.M.YYYY',
7791            ll : 'Do MMM YYYY',
7792            lll : 'Do MMM YYYY, [klo] HH.mm',
7793            llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
7794        },
7795        calendar : {
7796            sameDay : '[tänään] [klo] LT',
7797            nextDay : '[huomenna] [klo] LT',
7798            nextWeek : 'dddd [klo] LT',
7799            lastDay : '[eilen] [klo] LT',
7800            lastWeek : '[viime] dddd[na] [klo] LT',
7801            sameElse : 'L'
7802        },
7803        relativeTime : {
7804            future : '%s päästä',
7805            past : '%s sitten',
7806            s : translate$2,
7807            ss : translate$2,
7808            m : translate$2,
7809            mm : translate$2,
7810            h : translate$2,
7811            hh : translate$2,
7812            d : translate$2,
7813            dd : translate$2,
7814            M : translate$2,
7815            MM : translate$2,
7816            y : translate$2,
7817            yy : translate$2
7818        },
7819        dayOfMonthOrdinalParse: /\d{1,2}\./,
7820        ordinal : '%d.',
7821        week : {
7822            dow : 1, // Monday is the first day of the week.
7823            doy : 4  // The week that contains Jan 4th is the first week of the year.
7824        }
7825    });
7826
7827    //! moment.js locale configuration
7828
7829    hooks.defineLocale('fo', {
7830        months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
7831        monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
7832        weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
7833        weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
7834        weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
7835        longDateFormat : {
7836            LT : 'HH:mm',
7837            LTS : 'HH:mm:ss',
7838            L : 'DD/MM/YYYY',
7839            LL : 'D MMMM YYYY',
7840            LLL : 'D MMMM YYYY HH:mm',
7841            LLLL : 'dddd D. MMMM, YYYY HH:mm'
7842        },
7843        calendar : {
7844            sameDay : '[Í dag kl.] LT',
7845            nextDay : '[Í morgin kl.] LT',
7846            nextWeek : 'dddd [kl.] LT',
7847            lastDay : '[Í gjár kl.] LT',
7848            lastWeek : '[síðstu] dddd [kl] LT',
7849            sameElse : 'L'
7850        },
7851        relativeTime : {
7852            future : 'um %s',
7853            past : '%s síðani',
7854            s : 'fá sekund',
7855            ss : '%d sekundir',
7856            m : 'ein minutt',
7857            mm : '%d minuttir',
7858            h : 'ein tími',
7859            hh : '%d tímar',
7860            d : 'ein dagur',
7861            dd : '%d dagar',
7862            M : 'ein mánaði',
7863            MM : '%d mánaðir',
7864            y : 'eitt ár',
7865            yy : '%d ár'
7866        },
7867        dayOfMonthOrdinalParse: /\d{1,2}\./,
7868        ordinal : '%d.',
7869        week : {
7870            dow : 1, // Monday is the first day of the week.
7871            doy : 4  // The week that contains Jan 4th is the first week of the year.
7872        }
7873    });
7874
7875    //! moment.js locale configuration
7876
7877    hooks.defineLocale('fr-ca', {
7878        months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
7879        monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
7880        monthsParseExact : true,
7881        weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
7882        weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
7883        weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
7884        weekdaysParseExact : true,
7885        longDateFormat : {
7886            LT : 'HH:mm',
7887            LTS : 'HH:mm:ss',
7888            L : 'YYYY-MM-DD',
7889            LL : 'D MMMM YYYY',
7890            LLL : 'D MMMM YYYY HH:mm',
7891            LLLL : 'dddd D MMMM YYYY HH:mm'
7892        },
7893        calendar : {
7894            sameDay : '[Aujourd’hui à] LT',
7895            nextDay : '[Demain à] LT',
7896            nextWeek : 'dddd [à] LT',
7897            lastDay : '[Hier à] LT',
7898            lastWeek : 'dddd [dernier à] LT',
7899            sameElse : 'L'
7900        },
7901        relativeTime : {
7902            future : 'dans %s',
7903            past : 'il y a %s',
7904            s : 'quelques secondes',
7905            ss : '%d secondes',
7906            m : 'une minute',
7907            mm : '%d minutes',
7908            h : 'une heure',
7909            hh : '%d heures',
7910            d : 'un jour',
7911            dd : '%d jours',
7912            M : 'un mois',
7913            MM : '%d mois',
7914            y : 'un an',
7915            yy : '%d ans'
7916        },
7917        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
7918        ordinal : function (number, period) {
7919            switch (period) {
7920                // Words with masculine grammatical gender: mois, trimestre, jour
7921                default:
7922                case 'M':
7923                case 'Q':
7924                case 'D':
7925                case 'DDD':
7926                case 'd':
7927                    return number + (number === 1 ? 'er' : 'e');
7928
7929                // Words with feminine grammatical gender: semaine
7930                case 'w':
7931                case 'W':
7932                    return number + (number === 1 ? 're' : 'e');
7933            }
7934        }
7935    });
7936
7937    //! moment.js locale configuration
7938
7939    hooks.defineLocale('fr-ch', {
7940        months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
7941        monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
7942        monthsParseExact : true,
7943        weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
7944        weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
7945        weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
7946        weekdaysParseExact : true,
7947        longDateFormat : {
7948            LT : 'HH:mm',
7949            LTS : 'HH:mm:ss',
7950            L : 'DD.MM.YYYY',
7951            LL : 'D MMMM YYYY',
7952            LLL : 'D MMMM YYYY HH:mm',
7953            LLLL : 'dddd D MMMM YYYY HH:mm'
7954        },
7955        calendar : {
7956            sameDay : '[Aujourd’hui à] LT',
7957            nextDay : '[Demain à] LT',
7958            nextWeek : 'dddd [à] LT',
7959            lastDay : '[Hier à] LT',
7960            lastWeek : 'dddd [dernier à] LT',
7961            sameElse : 'L'
7962        },
7963        relativeTime : {
7964            future : 'dans %s',
7965            past : 'il y a %s',
7966            s : 'quelques secondes',
7967            ss : '%d secondes',
7968            m : 'une minute',
7969            mm : '%d minutes',
7970            h : 'une heure',
7971            hh : '%d heures',
7972            d : 'un jour',
7973            dd : '%d jours',
7974            M : 'un mois',
7975            MM : '%d mois',
7976            y : 'un an',
7977            yy : '%d ans'
7978        },
7979        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
7980        ordinal : function (number, period) {
7981            switch (period) {
7982                // Words with masculine grammatical gender: mois, trimestre, jour
7983                default:
7984                case 'M':
7985                case 'Q':
7986                case 'D':
7987                case 'DDD':
7988                case 'd':
7989                    return number + (number === 1 ? 'er' : 'e');
7990
7991                // Words with feminine grammatical gender: semaine
7992                case 'w':
7993                case 'W':
7994                    return number + (number === 1 ? 're' : 'e');
7995            }
7996        },
7997        week : {
7998            dow : 1, // Monday is the first day of the week.
7999            doy : 4  // The week that contains Jan 4th is the first week of the year.
8000        }
8001    });
8002
8003    //! moment.js locale configuration
8004
8005    hooks.defineLocale('fr', {
8006        months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
8007        monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
8008        monthsParseExact : true,
8009        weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
8010        weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
8011        weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
8012        weekdaysParseExact : true,
8013        longDateFormat : {
8014            LT : 'HH:mm',
8015            LTS : 'HH:mm:ss',
8016            L : 'DD/MM/YYYY',
8017            LL : 'D MMMM YYYY',
8018            LLL : 'D MMMM YYYY HH:mm',
8019            LLLL : 'dddd D MMMM YYYY HH:mm'
8020        },
8021        calendar : {
8022            sameDay : '[Aujourd’hui à] LT',
8023            nextDay : '[Demain à] LT',
8024            nextWeek : 'dddd [à] LT',
8025            lastDay : '[Hier à] LT',
8026            lastWeek : 'dddd [dernier à] LT',
8027            sameElse : 'L'
8028        },
8029        relativeTime : {
8030            future : 'dans %s',
8031            past : 'il y a %s',
8032            s : 'quelques secondes',
8033            ss : '%d secondes',
8034            m : 'une minute',
8035            mm : '%d minutes',
8036            h : 'une heure',
8037            hh : '%d heures',
8038            d : 'un jour',
8039            dd : '%d jours',
8040            M : 'un mois',
8041            MM : '%d mois',
8042            y : 'un an',
8043            yy : '%d ans'
8044        },
8045        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
8046        ordinal : function (number, period) {
8047            switch (period) {
8048                // TODO: Return 'e' when day of month > 1. Move this case inside
8049                // block for masculine words below.
8050                // See https://github.com/moment/moment/issues/3375
8051                case 'D':
8052                    return number + (number === 1 ? 'er' : '');
8053
8054                // Words with masculine grammatical gender: mois, trimestre, jour
8055                default:
8056                case 'M':
8057                case 'Q':
8058                case 'DDD':
8059                case 'd':
8060                    return number + (number === 1 ? 'er' : 'e');
8061
8062                // Words with feminine grammatical gender: semaine
8063                case 'w':
8064                case 'W':
8065                    return number + (number === 1 ? 're' : 'e');
8066            }
8067        },
8068        week : {
8069            dow : 1, // Monday is the first day of the week.
8070            doy : 4  // The week that contains Jan 4th is the first week of the year.
8071        }
8072    });
8073
8074    //! moment.js locale configuration
8075
8076    var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
8077        monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
8078
8079    hooks.defineLocale('fy', {
8080        months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
8081        monthsShort : function (m, format) {
8082            if (!m) {
8083                return monthsShortWithDots;
8084            } else if (/-MMM-/.test(format)) {
8085                return monthsShortWithoutDots[m.month()];
8086            } else {
8087                return monthsShortWithDots[m.month()];
8088            }
8089        },
8090        monthsParseExact : true,
8091        weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
8092        weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
8093        weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
8094        weekdaysParseExact : true,
8095        longDateFormat : {
8096            LT : 'HH:mm',
8097            LTS : 'HH:mm:ss',
8098            L : 'DD-MM-YYYY',
8099            LL : 'D MMMM YYYY',
8100            LLL : 'D MMMM YYYY HH:mm',
8101            LLLL : 'dddd D MMMM YYYY HH:mm'
8102        },
8103        calendar : {
8104            sameDay: '[hjoed om] LT',
8105            nextDay: '[moarn om] LT',
8106         
8106   nextWeek: 'dddd [om] LT',
8107            lastDay: '[juster om] LT',
8108            lastWeek: '[ôfrûne] dddd [om] LT',
8109            sameElse: 'L'
8110        },
8111        relativeTime : {
8112            future : 'oer %s',
8113            past : '%s lyn',
8114            s : 'in pear sekonden',
8115            ss : '%d sekonden',
8116            m : 'ien minút',
8117            mm : '%d minuten',
8118            h : 'ien oere',
8119            hh : '%d oeren',
8120            d : 'ien dei',
8121            dd : '%d dagen',
8122            M : 'ien moanne',
8123            MM : '%d moannen',
8124            y : 'ien jier',
8125            yy : '%d jierren'
8126        },
8127        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
8128        ordinal : function (number) {
8129            return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
8130        },
8131        week : {
8132            dow : 1, // Monday is the first day of the week.
8133            doy : 4  // The week that contains Jan 4th is the first week of the year.
8134        }
8135    });
8136
8137    //! moment.js locale configuration
8138
8139    var months$5 = [
8140        'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
8141    ];
8142
8143    var monthsShort$4 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
8144
8145    var weekdays$1 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
8146
8147    var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
8148
8149    var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
8150
8151    hooks.defineLocale('gd', {
8152        months : months$5,
8153        monthsShort : monthsShort$4,
8154        monthsParseExact : true,
8155        weekdays : weekdays$1,
8156        weekdaysShort : weekdaysShort,
8157        weekdaysMin : weekdaysMin,
8158        longDateFormat : {
8159            LT : 'HH:mm',
8160            LTS : 'HH:mm:ss',
8161            L : 'DD/MM/YYYY',
8162            LL : 'D MMMM YYYY',
8163            LLL : 'D MMMM YYYY HH:mm',
8164            LLLL : 'dddd, D MMMM YYYY HH:mm'
8165        },
8166        calendar : {
8167            sameDay : '[An-diugh aig] LT',
8168            nextDay : '[A-màireach aig] LT',
8169            nextWeek : 'dddd [aig] LT',
8170            lastDay : '[An-dè aig] LT',
8171            lastWeek : 'dddd [seo chaidh] [aig] LT',
8172            sameElse : 'L'
8173        },
8174        relativeTime : {
8175            future : 'ann an %s',
8176            past : 'bho chionn %s',
8177            s : 'beagan diogan',
8178            ss : '%d diogan',
8179            m : 'mionaid',
8180            mm : '%d mionaidean',
8181            h : 'uair',
8182            hh : '%d uairean',
8183            d : 'latha',
8184            dd : '%d latha',
8185            M : 'mìos',
8186            MM : '%d mìosan',
8187            y : 'bliadhna',
8188            yy : '%d bliadhna'
8189        },
8190        dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
8191        ordinal : function (number) {
8192            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
8193            return number + output;
8194        },
8195        week : {
8196            dow : 1, // Monday is the first day of the week.
8197            doy : 4  // The week that contains Jan 4th is the first week of the year.
8198        }
8199    });
8200
8201    //! moment.js locale configuration
8202
8203    hooks.defineLocale('gl', {
8204        months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
8205        monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
8206        monthsParseExact: true,
8207        weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
8208        weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
8209        weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
8210        weekdaysParseExact : true,
8211        longDateFormat : {
8212            LT : 'H:mm',
8213            LTS : 'H:mm:ss',
8214            L : 'DD/MM/YYYY',
8215            LL : 'D [de] MMMM [de] YYYY',
8216            LLL : 'D [de] MMMM [de] YYYY H:mm',
8217            LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
8218        },
8219        calendar : {
8220            sameDay : function () {
8221                return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
8222            },
8223            nextDay : function () {
8224                return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
8225            },
8226            nextWeek : function () {
8227                return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
8228            },
8229            lastDay : function () {
8230                return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
8231            },
8232            lastWeek : function () {
8233                return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
8234            },
8235            sameElse : 'L'
8236        },
8237        relativeTime : {
8238            future : function (str) {
8239                if (str.indexOf('un') === 0) {
8240                    return 'n' + str;
8241                }
8242                return 'en ' + str;
8243            },
8244            past : 'hai %s',
8245            s : 'uns segundos',
8246            ss : '%d segundos',
8247            m : 'un minuto',
8248            mm : '%d minutos',
8249            h : 'unha hora',
8250            hh : '%d horas',
8251            d : 'un día',
8252            dd : '%d días',
8253            M : 'un mes',
8254            MM : '%d meses',
8255            y : 'un ano',
8256            yy : '%d anos'
8257        },
8258        dayOfMonthOrdinalParse : /\d{1,2}º/,
8259        ordinal : '%dº',
8260        week : {
8261            dow : 1, // Monday is the first day of the week.
8262            doy : 4  // The week that contains Jan 4th is the first week of the year.
8263        }
8264    });
8265
8266    //! moment.js locale configuration
8267
8268    function processRelativeTime$4(number, withoutSuffix, key, isFuture) {
8269        var format = {
8270            's': ['thodde secondanim', 'thodde second'],
8271            'ss': [number + ' secondanim', number + ' second'],
8272            'm': ['eka mintan', 'ek minute'],
8273            'mm': [number + ' mintanim', number + ' mintam'],
8274            'h': ['eka horan', 'ek hor'],
8275            'hh': [number + ' horanim', number + ' horam'],
8276            'd': ['eka disan', 'ek dis'],
8277            'dd': [number + ' disanim', number + ' dis'],
8278            'M': ['eka mhoinean', 'ek mhoino'],
8279            'MM': [number + ' mhoineanim', number + ' mhoine'],
8280            'y': ['eka vorsan', 'ek voros'],
8281            'yy': [number + ' vorsanim', number + ' vorsam']
8282        };
8283        return withoutSuffix ? format[key][0] : format[key][1];
8284    }
8285
8286    hooks.defineLocale('gom-latn', {
8287        months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
8288        monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
8289        monthsParseExact : true,
8290        weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
8291        weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
8292        weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
8293        weekdaysParseExact : true,
8294        longDateFormat : {
8295            LT : 'A h:mm [vazta]',
8296            LTS : 'A h:mm:ss [vazta]',
8297            L : 'DD-MM-YYYY',
8298            LL : 'D MMMM YYYY',
8299            LLL : 'D MMMM YYYY A h:mm [vazta]',
8300            LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
8301            llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
8302        },
8303        calendar : {
8304            sameDay: '[Aiz] LT',
8305            nextDay: '[Faleam] LT',
8306            nextWeek: '[Ieta to] dddd[,] LT',
8307            lastDay: '[Kal] LT',
8308            lastWeek: '[Fatlo] dddd[,] LT',
8309            sameElse: 'L'
8310        },
8311        relativeTime : {
8312            future : '%s',
8313            past : '%s adim',
8314            s : processRelativeTime$4,
8315            ss : processRelativeTime$4,
8316            m : processRelativeTime$4,
8317            mm : processRelativeTime$4,
8318            h : processRelativeTime$4,
8319            hh : processRelativeTime$4,
8320            d : processRelativeTime$4,
8321            dd : processRelativeTime$4,
8322            M : processRelativeTime$4,
8323            MM : processRelativeTime$4,
8324            y : processRelativeTime$4,
8325            yy : processRelativeTime$4
8326        },
8327        dayOfMonthOrdinalParse : /\d{1,2}(er)/,
8328        ordinal : function (number, period) {
8329            switch (period) {
8330                // the ordinal 'er' only applies to day of the month
8331                case 'D':
8332                    return number + 'er';
8333                default:
8334                case 'M':
8335                case 'Q':
8336                case 'DDD':
8337                case 'd':
8338                case 'w':
8339                case 'W':
8340                    return number;
8341            }
8342        },
8343        week : {
8344            dow : 1, // Monday is the first day of the week.
8345            doy : 4  // The week that contains Jan 4th is the first week of the year.
8346        },
8347        meridiemParse: /rati|sokalli|donparam|sanje/,
8348        meridiemHour : function (hour, meridiem) {
8349            if (hour === 12) {
8350                hour = 0;
8351            }
8352            if (meridiem === 'rati') {
8353                return hour < 4 ? hour : hour + 12;
8354            } else if (meridiem === 'sokalli') {
8355                return hour;
8356            } else if (meridiem === 'donparam') {
8357                return hour > 12 ? hour : hour + 12;
8358            } else if (meridiem === 'sanje') {
8359                return hour + 12;
8360            }
8361        },
8362        meridiem : function (hour, minute, isLower) {
8363            if (hour < 4) {
8364                return 'rati';
8365            } else if (hour < 12) {
8366                return 'sokalli';
8367            } else if (hour < 16) {
8368                return 'donparam';
8369            } else if (hour < 20) {
8370                return 'sanje';
8371            } else {
8372                return 'rati';
8373            }
8374        }
8375    });
8376
8377    //! moment.js locale configuration
8378
8379    var symbolMap$6 = {
8380            '1': 'à«§',
8381            '2': '૨',
8382            '3': 'à«©',
8383            '4': '૪',
8384            '5': 'à««',
8385            '6': '૬',
8386            '7': 'à«­',
8387            '8': 'à«®',
8388            '9': '૯',
8389            '0': '૦'
8390        },
8391        numberMap$5 = {
8392            'à«§': '1',
8393            '૨': '2',
8394            'à«©': '3',
8395            '૪': '4',
8396            'à««': '5',
8397            '૬': '6',
8398            'à«­': '7',
8399            'à«®': '8',
8400            '૯': '9',
8401            '૦': '0'
8402        };
8403
8404    hooks.defineLocale('gu', {
8405        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
8406        monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડà
8406ª¿àª¸à«‡.'.split('_'),
8407        monthsParseExact: true,
8408        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
8409        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
8410        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
8411        longDateFormat: {
8412            LT: 'A h:mm વાગ્યે',
8413            LTS: 'A h:mm:ss વાગ્યે',
8414            L: 'DD/MM/YYYY',
8415            LL: 'D MMMM YYYY',
8416            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
8417            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
8418        },
8419        calendar: {
8420            sameDay: '[આજ] LT',
8421            nextDay: '[કાલે] LT',
8422            nextWeek: 'dddd, LT',
8423            lastDay: '[ગઇકાલે] LT',
8424            lastWeek: '[પાછલા] dddd, LT',
8425            sameElse: 'L'
8426        },
8427        relativeTime: {
8428            future: '%s મા',
8429            past: '%s પેહલા',
8430            s: 'અમુક પળો',
8431            ss: '%d સેકંડ',
8432            m: 'એક મિનિટ',
8433            mm: '%d મિનિટ',
8434            h: 'એક કલાક',
8435            hh: '%d કલાક',
8436            d: 'એક દિવસ',
8437            dd: '%d દિવસ',
8438            M: 'એક મહિનો',
8439            MM: '%d મહિનો',
8440            y: 'એક વર્ષ',
8441            yy: '%d વર્ષ'
8442        },
8443        preparse: function (string) {
8444            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
8445                return numberMap$5[match];
8446            });
8447        },
8448        postformat: function (string) {
8449            return string.replace(/\d/g, function (match) {
8450                return symbolMap$6[match];
8451            });
8452        },
8453        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
8454        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
8455        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
8456        meridiemHour: function (hour, meridiem) {
8457            if (hour === 12) {
8458                hour = 0;
8459            }
8460            if (meridiem === 'રાત') {
8461                return hour < 4 ? hour : hour + 12;
8462            } else if (meridiem === 'સવાર') {
8463                return hour;
8464            } else if (meridiem === 'બપોર') {
8465                return hour >= 10 ? hour : hour + 12;
8466            } else if (meridiem === 'સાંજ') {
8467                return hour + 12;
8468            }
8469        },
8470        meridiem: function (hour, minute, isLower) {
8471            if (hour < 4) {
8472                return 'રાત';
8473            } else if (hour < 10) {
8474                return 'સવાર';
8475            } else if (hour < 17) {
8476                return 'બપોર';
8477            } else if (hour < 20) {
8478                return 'સાંજ';
8479            } else {
8480                return 'રાત';
8481            }
8482        },
8483        week: {
8484            dow: 0, // Sunday is the first day of the week.
8485            doy: 6 // The week that contains Jan 1st is the first week of the year.
8486        }
8487    });
8488
8489    //! moment.js locale configuration
8490
8491    hooks.defineLocale('he', {
8492        months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
8493        monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
8494        weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
8495        weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
8496        weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
8497        longDateFormat : {
8498            LT : 'HH:mm',
8499            LTS : 'HH:mm:ss',
8500            L : 'DD/MM/YYYY',
8501            LL : 'D [ב]MMMM YYYY',
8502            LLL : 'D [ב]MMMM YYYY HH:mm',
8503            LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
8504            l : 'D/M/YYYY',
8505            ll : 'D MMM YYYY',
8506            lll : 'D MMM YYYY HH:mm',
8507            llll : 'ddd, D MMM YYYY HH:mm'
8508        },
8509        calendar : {
8510            sameDay : '[היום ב־]LT',
8511            nextDay : '[מחר ב־]LT',
8512            nextWeek : 'dddd [בשעה] LT',
8513            lastDay : '[אתמול ב־]LT',
8514            lastWeek : '[ביום] dddd [האחרון בשעה] LT',
8515            sameElse : 'L'
8516        },
8517        relativeTime : {
8518            future : 'בעוד %s',
8519            past : 'לפני %s',
8520            s : 'מספר שניות',
8521            ss : '%d שניות',
8522            m : 'דקה',
8523            mm : '%d דקות',
8524            h : 'שעה',
8525            hh : function (number) {
8526                if (number === 2) {
8527                    return 'שעתיים';
8528                }
8529                return number + ' שעות';
8530            },
8531            d : 'יום',
8532            dd : function (number) {
8533                if (number === 2) {
8534                    return 'יומיים';
8535                }
8536                return number + ' ימים';
8537            },
8538            M : 'חודש',
8539            MM : function (number) {
8540                if (number === 2) {
8541                    return 'חודשיים';
8542                }
8543                return number + ' חודשים';
8544            },
8545            y : 'שנה',
8546            yy : function (number) {
8547                if (number === 2) {
8548                    return 'שנתיים';
8549                } else if (number % 10 === 0 && number !== 10) {
8550                    return number + ' שנה';
8551                }
8552                return number + ' שנים';
8553            }
8554        },
8555        meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
8556        isPM : function (input) {
8557            return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
8558        },
8559        meridiem : function (hour, minute, isLower) {
8560            if (hour < 5) {
8561                return 'לפנות בוקר';
8562            } else if (hour < 10) {
8563                return 'בבוקר';
8564            } else if (hour < 12) {
8565                return isLower ? 'לפנה"צ' : 'לפני הצהריים';
8566            } else if (hour < 18) {
8567                return isLower ? 'אחה"צ' : 'אחרי הצהריים';
8568            } else {
8569                return 'בערב';
8570            }
8571        }
8572    });
8573
8574    //! moment.js locale configuration
8575
8576    var symbolMap$7 = {
8577        '1': '१',
8578        '2': '२',
8579        '3': '३',
8580        '4': '४',
8581        '5': '५',
8582        '6': '६',
8583        '7': '७',
8584        '8': '८',
8585        '9': '९',
8586        '0': '०'
8587    },
8588    numberMap$6 = {
8589        '१': '1',
8590        '२': '2',
8591        '३': '3',
8592        '४': '4',
8593        '५': '5',
8594        '६': '6',
8595        '७': '7',
8596        '८': '8',
8597        '९': '9',
8598        '०': '0'
8599    };
8600
8601    hooks.defineLocale('hi', {
8602        months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
8603        monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
8604        monthsParseExact: true,
8605        weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
8606        weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
8607        weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
8608        longDateFormat : {
8609            LT : 'A h:mm बजे',
8610            LTS : 'A h:mm:ss बजे',
8611            L : 'DD/MM/YYYY',
8612            LL : 'D MMMM YYYY',
8613            LLL : 'D MMMM YYYY, A h:mm बजे',
8614            LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
8615        },
8616        calendar : {
8617            sameDay : '[आज] LT',
8618            nextDay : '[कल] LT',
8619            nextWeek : 'dddd, LT',
8620            lastDay : '[कल] LT',
8621            lastWeek : '[पिछले] dddd, LT',
8622            sameElse : 'L'
8623        },
8624        relativeTime : {
8625            future : '%s में',
8626            past : '%s पहले',
8627            s : 'कुछ ही क्षण',
8628            ss : '%d सेकंड',
8629            m : 'एक मिनट',
8630            mm : '%d मिनट',
8631            h : 'एक घंटा',
8632            hh : '%d घंटे',
8633            d : 'एक दिन',
8634            dd : '%d दिन',
8635            M : 'एक महीने',
8636            MM : '%d महीने',
8637            y : 'एक वर्ष',
8638            yy : '%d वर्ष'
8639        },
8640        preparse: function (string) {
8641            return string.replace(/[१२३४५६७८९०]/g, function (match) {
8642                return numberMap$6[match];
8643            });
8644        },
8645        postformat: function (string) {
8646            return string.replace(/\d/g, function (match) {
8647                return symbolMap$7[match];
8648            });
8649        },
8650        // Hindi notation for meridiems are quite fuzzy in practice. While there exists
8651        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
8652        meridiemParse: /रात|सुबह|दोपहर|शाम/,
8653        meridiemHour : function (hour, meridiem) {
8654            if (hour === 12) {
8655                hour = 0;
8656            }
8657            if (meridiem === 'रात') {
8658                return hour < 4 ? hour : hour + 12;
8659            } else if (meridiem === 'सुबह') {
8660                return hour;
8661            } else if (meridiem === 'दोपहर') {
8662                return hour >= 10 ? hour : hour + 12;
8663            } else if (meridiem === 'शाम') {
8664                return hour + 12;
8665            }
8666        },
8667        meridiem : function (hour, minute, isLower) {
8668            if (hour < 4) {
8669                return 'रात';
8670            } else if (hour < 10) {
8671                return 'सुबह';
8672            } else if (hour < 17) {
8673                return 'दोपहर';
8674            } else if (hour < 20) {
8675                return 'शाम';
8676            } else {
8677                return 'रात';
8678            }
8679        },
8680        week : {
8681            dow : 0, // Sunday is the first day of the week.
8682            doy : 6  // The week that contains Jan 1st is the first week of the year.
8683        }
8684    });
8685
8686    //! moment.js locale configuration
8687
8688    function translate$3(number, withoutSuffix, key) {
8689        var result = number + ' ';
8690        switch (key) {
8691            case 'ss':
8692                if (number === 1) {
8693                    result += 'sekunda';
8694                } else if (number === 2 || number === 3 || number === 4) {
8695                    result += 'sekunde';
8696                } else {
8697                    result += 'sekundi';
8698                }
8699                return result;
8700            case 'm':
8701                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
8702            case 'mm':
8703                if (number === 1) {
8704                    result += 'minuta';
8705                } else if (number === 2 || number === 3 || number === 4) {
8706                    result += 'minute';
8707                } else {
8708                    result += 'minuta';
8709                }
8710                return result;
8711            case 'h':
8712                return withoutSuffix ? 'jedan sat' : 'jednog sata';
8713            case 'hh':
8714                if (number === 1) {
8715                    result += 'sat';
8716                } else if (number === 2 || number === 3 || number === 4) {
8717                    result += 'sata';
8718                } else {
8719                    result += 'sati';
8720                }
8721                return result;
8722            case 'dd':
8723                if (number === 1) {
8724                    result += 'dan';
8725                } else {
8726                    result += 'dana';
8727                }
8728                return result;
8729            case 'MM':
8730                if (number === 1) {
8731                    result += 'mjesec';
8732                } else if (number === 2 || number === 3 || number === 4) {
8733                    result += 'mjeseca';
8734                } else {
8735                    result += 'mjeseci';
8736                }
8737                return result;
8738            case 'yy':
8739                if (number === 1) {
8740                    result += 'godina';
8741                } else if (number === 2 || number === 3 || number === 4) {
8742                    result += 'godine';
8743                } else {
8744                    result += 'godina';
8745                }
8746                return result;
8747        }
8748    }
8749
8750    hooks.defineLocale('hr', {
8751        months : {
8752            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
8753            standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
8754        },
8755        monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
8756        monthsParseExact: true,
8757        weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
8758        weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
8759        weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
8760        weekdaysParseExact : true,
8761        longDateFormat : {
8762            LT : 'H:mm',
8763            LTS : 'H:mm:ss',
8764            L : 'DD.MM.YYYY',
8765            LL : 'D. MMMM YYYY',
8766            LLL : 'D. MMMM YYYY H:mm',
8767            LLLL : 'dddd, D. MMMM YYYY H:mm'
8768        },
8769        calendar : {
8770            sameDay  : '[danas u] LT',
8771            nextDay  : '[sutra u] LT',
8772            nextWeek : function () {
8773                switch (this.day()) {
8774                    case 0:
8775                        return '[u] [nedjelju] [u] LT';
8776                    case 3:
8777                        return '[u] [srijedu] [u] LT';
8778                    case 6:
8779                        return '[u] [subotu] [u] LT';
8780                    case 1:
8781                    case 2:
8782                    case 4:
8783                    case 5:
8784                        return '[u] dddd [u] LT';
8785                }
8786            },
8787            lastDay  : '[jučer u] LT',
8788            lastWeek : function () {
8789                switch (this.day()) {
8790                    case 0:
8791                    case 3:
8792                        return '[prošlu] dddd [u] LT';
8793                    case 6:
8794                        return '[prošle] [subote] [u] LT';
8795                    case 1:
8796                    case 2:
8797                    case 4:
8798                    case 5:
8799                        return '[prošli] dddd [u] LT';
8800                }
8801            },
8802            sameElse : 'L'
8803        },
8804        relativeTime : {
8805            future : 'za %s',
8806            past   : 'prije %s',
8807            s      : 'par sekundi',
8808            ss     : translate$3,
8809            m      : translate$3,
8810            mm     : translate$3,
8811            h      : translate$3,
8812            hh     : translate$3,
8813            d      : 'dan',
8814            dd     : translate$3,
8815            M      : 'mjesec',
8816            MM     : translate$3,
8817            y      : 'godinu',
8818            yy     : translate$3
8819        },
8820        dayOfMonthOrdinalParse: /\d{1,2}\./,
8821        ordinal : '%d.',
8822        week : {
8823            dow : 1, // Monday is the first day of the week.
8824            doy : 7  // The week that contains Jan 1st is the first week of the year.
8825        }
8826    });
8827
8828    //! moment.js locale configuration
8829
8830    var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
8831    function translate$4(number, withoutSuffix, key, isFuture) {
8832        var num = number;
8833        switch (key) {
8834            case 's':
8835                return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
8836            case 'ss':
8837                return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
8838            case 'm':
8839                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
8840            case 'mm':
8841                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
8842            case 'h':
8843                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
8844            case 'hh':
8845                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
8846            case 'd':
8847                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
8848            case 'dd':
8849                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
8850            case 'M':
8851                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
8852            case 'MM':
8853                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
8854            case 'y':
8855                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
8856            case 'yy':
8857                return num + (isFuture || withoutSuffix ? ' év' : ' éve');
8858        }
8859        return '';
8860    }
8861    function week(isFuture) {
8862        return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
8863    }
8864
8865    hooks.defineLocale('hu', {
8866        months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
8867        monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
8868        weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
8869        weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
8870        weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
8871        longDateFormat : {
8872            LT : 'H:mm',
8873            LTS : 'H:mm:ss',
8874            L : 'YYYY.MM.DD.',
8875            LL : 'YYYY. MMMM D.',
8876            LLL : 'YYYY. MMMM D. H:mm',
8877            LLLL : 'YYYY. MMMM D., dddd H:mm'
8878        },
8879        meridiemParse: /de|du/i,
8880        isPM: function (input) {
8881            return input.charAt(1).toLowerCase() === 'u';
8882        },
8883        meridiem : function (hours, minutes, isLower) {
8884            if (hours < 12) {
8885                return isLower === true ? 'de' : 'DE';
8886            } else {
8887                return isLower === true ? 'du' : 'DU';
8888            }
8889        },
8890        calendar : {
8891            sameDay : '[ma] LT[-kor]',
8892            nextDay : '[holnap] LT[-kor]',
8893            nextWeek : function () {
8894                return week.call(this, true);
8895            },
8896            lastDay : '[tegnap] LT[-kor]',
8897            lastWeek : function () {
8898                return week.call(this, false);
8899            },
8900            sameElse : 'L'
8901        },
8902        relativeTime : {
8903            future : '%s múlva',
8904            past : '%s',
8905            s : translate$4,
8906            ss : translate$4,
8907            m : translate$4,
8908            mm : translate$4,
8909            h : translate$4,
8910            hh : translate$4,
8911            d : translate$4,
8912            dd : translate$4,
8913            M : translate$4,
8914            MM : translate$4,
8915            y : translate$4,
8916            yy : translate$4
8917        },
8918        dayOfMonthOrdinalParse: /\d{1,2}\./,
8919        ordinal : '%d.',
8920        week : {
8921            dow : 1, // Monday is the first day of the week.
8922            doy : 4  // The week that contains Jan 4th is the first week of the year.
8923        }
8924    });
8925
8926    //! moment.js locale configuration
8927
8928    hooks.defineLocale('hy-am', {
8929        months : {
8930            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
8931            standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
8932        },
8933        monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
8934        weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
8935        weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
8936        weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
8937        longDateFormat : {
8938            LT : 'HH:mm',
8939            LTS : 'HH:mm:ss',
8940            L : 'DD.MM.YYYY',
8941            LL : 'D MMMM YYYY Õ©.',
8942            LLL : 'D MMMM YYYY Õ©., HH:mm',
8943            LLLL : 'dddd, D MMMM YYYY Õ©., HH:mm'
8944        },
8945        calendar : {
8946            sameDay: '[այսօր] LT',
8947            nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',
8948            lastDay: '[երեկ] LT',
8949            nextWeek: function () {
8950                return 'dddd [օրը ժամը] LT';
8951            },
8952            lastWeek: function () {
8953                return '[անցած] dddd [օրը ժամը] LT';
8954            },
8955            sameElse: 'L'
8956        },
8957        relativeTime : {
8958            future : '%s Õ°Õ¥Õ¿Õ¸',
8959            past : '%s Õ¡Õ¼Õ¡Õ»',
8960            s : 'մի քանի վայրկյան',
8961            ss : '%d վայրկյան',
8962            m : 'րոպե',
8963            mm : '%d րոպե',
8964            h : 'ÕªÕ¡Õ´',
8965            hh : '%d ÕªÕ¡Õ´',
8966            d : 'օր',
8967            dd : '%d օր',
8968            M : 'Õ¡Õ´Õ«Õ½',
8969            MM : '%d Õ¡Õ´Õ«Õ½',
8970            y : 'տարի',
8971            yy : '%d տարի'
8972        },
8973        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
8974        isPM: function (input) {
8975            return /^(ցերեկվա|երեկոյան)$/.test(input);
8976        },
8977        meridiem : function (hour) {
8978            if (hour < 4) {
8979                return 'գիշերվա';
8980            } else if (hour < 12) {
8981                return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';
8982            } else if (hour < 17) {
8983                return 'ցերեկվա';
8984            } else {
8985                return 'երեկոյան';
8986            }
8987        },
8988        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
8989        ordinal: function (number, period) {
8990            switch (period) {
8991                case 'DDD':
8992                case 'w':
8993                case 'W':
8994                case 'DDDo':
8995                    if (number === 1) {
8996                        return number + '-Õ«Õ¶';
8997                    }
8998                    return number + '-րդ';
8999                default:
9000                    return number;
9001            }
9002        },
9003        week : {
9004            dow : 1, // Monday is the first day of the week.
9005            doy : 7  // The week that contains Jan 1st is the first week of the year.
9006        }
9007    });
9008
9009    //! moment.js locale configuration
9010
9011    hooks.defineLocale('id', {
9012        months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
9013        monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
9014        weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
9015        weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
9016        weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
9017        longDateFormat : {
9018            LT : 'HH.mm',
9019            LTS : 'HH.mm.ss',
9020            L : 'DD/MM/YYYY',
9021            LL : 'D MMMM YYYY',
9022            LLL : 'D MMMM YYYY [pukul] HH.mm',
9023            LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
9024        },
9025        meridiemParse: /pagi|siang|sore|malam/,
9026        meridiemHour : function (hour, meridiem) {
9027            if (hour === 12) {
9028                hour = 0;
9029            }
9030            if (meridiem === 'pagi') {
9031                return hour;
9032            } else if (meridiem === 'siang') {
9033                return hour >= 11 ? hour : hour + 12;
9034            } else if (meridiem === 'sore' || meridiem === 'malam') {
9035                return hour + 12;
9036            }
9037        },
9038        meridiem : function (hours, minutes, isLower) {
9039            if (hours < 11) {
9040                return 'pagi';
9041            } else if (hours < 15) {
9042                return 'siang';
9043            } else if (hours < 19) {
9044                return 'sore';
9045            } else {
9046                return 'malam';
9047            }
9048        },
9049        calendar : {
9050            sameDay : '[Hari ini pukul] LT',
9051            nextDay : '[Besok pukul] LT',
9052            nextWeek : 'dddd [pukul] LT',
9053            lastDay : '[Kemarin pukul] LT',
9054            lastWeek : 'dddd [lalu pukul] LT',
9055            sameElse : 'L'
9056        },
9057        relativeTime : {
9058            future : 'dalam %s',
9059            past : '%s yang lalu',
9060            s : 'beberapa detik',
9061            ss : '%d detik',
9062            m : 'semenit',
9063            mm : '%d menit',
9064            h : 'sejam',
9065            hh : '%d jam',
9066            d : 'sehari',
9067            dd : '%d hari',
9068            M : 'sebulan',
9069            MM : '%d bulan',
9070            y : 'setahun',
9071            yy : '%d tahun'
9072        },
9073        week : {
9074            dow : 1, // Monday is the first day of the week.
9075            doy : 7  // The week that contains Jan 1st is the first week of the year.
9076        }
9077    });
9078
9079    //! moment.js locale configuration
9080
9081    function plural$2(n) {
9082        if (n % 100 === 11) {
9083            return true;
9084        } else if (n % 10 === 1) {
9085            return false;
9086        }
9087        return true;
9088    }
9089    function translate$5(number, withoutSuffix, key, isFuture) {
9090        var result = number + ' ';
9091        switch (key) {
9092            case 's':
9093                return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
9094            case 'ss':
9095                if (plural$2(number)) {
9096                    return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
9097                }
9098                return result + 'sekúnda';
9099            case 'm':
9100                return withoutSuffix ? 'mínúta' : 'mínútu';
9101            case 'mm':
9102                if (plural$2(number)) {
9103                    return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
9104                } else if (withoutSuffix) {
9105                    return result + 'mínúta';
9106                }
9107                return result + 'mínútu';
9108            case 'hh':
9109                if (plural$2(number)) {
9110                    return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
9111                }
9112                return result + 'klukkustund';
9113            case 'd':
9114                if (withoutSuffix) {
9115                    return 'dagur';
9116                }
9117                return isFuture ? 'dag' : 'degi';
9118            case 'dd':
9119                if (plural$2(number)) {
9120                    if (withoutSuffix) {
9121                        return result + 'dagar';
9122                    }
9123                    return result + (isFuture ? 'daga' : 'dögum');
9124                } else if (withoutSuffix) {
9125                    return result + 'dagur';
9126                }
9127                return result + (isFuture ? 'dag' : 'degi');
9128            case 'M':
9129                if (withoutSuffix) {
9130                    return 'mánuður';
9131                }
9132                return isFuture ? 'mánuð' : 'mánuði';
9133            case 'MM':
9134                if (plural$2(number)) {
9135                    if (withoutSuffix) {
9136                        return result + 'mánuðir';
9137                    }
9138                    return result + (isFuture ? 'mánuði' : 'mánuðum');
9139                } else if (withoutSuffix) {
9140                    return result + 'mánuður';
9141                }
9142                return result + (isFuture ? 'mánuð' : 'mánuði');
9143            case 'y':
9144                return withoutSuffix || isFuture ? 'ár' : 'ári';
9145            case 'yy':
9146                if (plural$2(number)) {
9147                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
9148                }
9149                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
9150        }
9151    }
9152
9153    hooks.defineLocale('is', {
9154        months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
9155        monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
9156        weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
9157        weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
9158        weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
9159        longDateFormat : {
9160            LT : 'H:mm',
9161            LTS : 'H:mm:ss',
9162            L : 'DD.MM.YYYY',
9163            LL : 'D. MMMM YYYY',
9164            LLL : 'D. MMMM YYYY [kl.] H:mm',
9165            LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
9166        },
9167        calendar : {
9168            sameDay : '[í dag kl.] LT',
9169            nextDay : '[á morgun kl.] LT',
9170            nextWeek : 'dddd [kl.] LT',
9171            lastDay : '[í gær kl.] LT',
9172            lastWeek : '[síðasta] dddd [kl.] LT',
9173            sameElse : 'L'
9174        },
9175        relativeTime : {
9176            future : 'eftir %s',
9177            past : 'fyrir %s síðan',
9178            s : translate$5,
9179            ss : translate$5,
9180            m : translate$5,
9181            mm : translate$5,
9182            h : 'klukkustund',
9183            hh : translate$5,
9184            d : translate$5,
9185            dd : translate$5,
9186            M : translate$5,
9187            MM : translate$5,
9188            y : translate$5,
9189            yy : translate$5
9190        },
9191        dayOfMonthOrdinalParse: /\d{1,2}\./,
9192        ordinal : '%d.',
9193        week : {
9194            dow : 1, // Monday is the first day of the week.
9195            doy : 4  // The week that contains Jan 4th is the first week of the year.
9196        }
9197    });
9198
9199    //! moment.js locale configuration
9200
9201    hooks.defineLocale('it', {
9202        months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
9203        monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
9204        weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
9205        weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
9206        weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
9207        longDateFormat : {
9208            LT : 'HH:mm',
9209            LTS : 'HH:mm:ss',
9210            L : 'DD/MM/YYYY',
9211            LL : 'D MMMM YYYY',
9212            LLL : 'D MMMM YYYY HH:mm',
9213            LLLL : 'dddd D MMMM YYYY HH:mm'
9214        },
9215        calendar : {
9216            sameDay: '[Oggi alle] LT',
9217            nextDay: '[Domani alle] LT',
9218            nextWeek: 'dddd [alle] LT',
9219            lastDay: '[Ieri alle] LT',
9220            lastWeek: function () {
9221                switch (this.day()) {
9222                    case 0:
9223                        return '[la scorsa] dddd [alle] LT';
9224                    default:
9225                        return '[lo scorso] dddd [alle] LT';
9226                }
9227            },
9228            sameElse: 'L'
9229        },
9230        relativeTime : {
9231            future : function (s) {
9232                return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
9233            },
9234            past : '%s fa',
9235            s : 'alcuni secondi',
9236            ss : '%d secondi',
9237            m : 'un minuto',
9238            mm : '%d minuti',
9239            h : 'un\'ora',
9240            hh : '%d ore',
9241            d : 'un giorno',
9242            dd : '%d giorni',
9243            M : 'un mese',
9244            MM : '%d mesi',
9245            y : 'un anno',
9246            yy : '%d anni'
9247        },
9248        dayOfMonthOrdinalParse : /\d{1,2}º/,
9249        ordinal: '%dº',
9250        week : {
9251            dow : 1, // Monday is the first day of the week.
9252            doy : 4  // The week that contains Jan 4th is the first week of the year.
9253        }
9254    });
9255
9256    //! moment.js locale configuration
9257
9258    hooks.defineLocale('ja', {
9259        months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
9260        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
9261        weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
9262        weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
9263        weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
9264        longDateFormat : {
9265            LT : 'HH:mm',
9266            LTS : 'HH:mm:ss',
9267            L : 'YYYY/MM/DD',
9268            LL : 'YYYY年M月D日',
9269            LLL : 'YYYY年M月D日 HH:mm',
9270            LLLL : 'YYYY年M月D日 dddd HH:mm',
9271            l : 'YYYY/MM/DD',
9272            ll : 'YYYY年M月D日',
9273            lll : 'YYYY年M月D日 HH:mm',
9274            llll : 'YYYY年M月D日(ddd) HH:mm'
9275        },
9276        meridiemParse: /午前|午後/i,
9277        isPM : function (input) {
9278            return input === '午後';
9279        },
9280        meridiem : function (hour, minute, isLower) {
9281            if (hour < 12) {
9282                return '午前';
9283            } else {
9284                return '午後';
9285            }
9286        },
9287        calendar : {
9288            sameDay : '[今日] LT',
9289            nextDay : '[明日] LT',
9290            nextWeek : function (now) {
9291                if (now.week() < this.week()) {
9292                    return '[来週]dddd LT';
9293                } else {
9294                    return 'dddd LT';
9295                }
9296            },
9297            lastDay : '[昨日] LT',
9298            lastWeek : function (now) {
9299                if (this.week() < now.week()) {
9300                    return '[先週]dddd LT';
9301                } else {
9302                    return 'dddd LT';
9303                }
9304            },
9305            sameElse : 'L'
9306        },
9307        dayOfMonthOrdinalParse : /\d{1,2}日/,
9308        ordinal : function (number, period) {
9309            switch (period) {
9310                case 'd':
9311                case 'D':
9312                case 'DDD':
9313                    return number + '日';
9314                default:
9315                    return number;
9316            }
9317        },
9318        relativeTime : {
9319            future : '%s後',
9320            past : '%s前',
9321            s : '数秒',
9322            ss : '%d秒',
9323            m : '1分',
9324            mm : '%d分',
9325            h : '1時間',
9326            hh : '%d時間',
9327            d : '1日',
9328            dd : '%d日',
9329            M : '1ヶ月',
9330            MM : '%dヶ月',
9331            y : '1å¹´',
9332            yy : '%då¹´'
9333        }
9334    });
9335
9336    //! moment.js locale configuration
9337
9338    hooks.defineLocale('jv', {
9339        months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
9340        monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
9341        weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
9342        weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
9343        weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
9344        longDateFormat : {
9345            LT : 'HH.mm',
9346            LTS : 'HH.mm.ss',
9347            L : 'DD/MM/YYYY',
9348            LL : 'D MMMM YYYY',
9349            LLL : 'D MMMM YYYY [pukul] HH.mm',
9350            LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
9351        },
9352        meridiemParse: /enjing|siyang|sonten|ndalu/,
9353        meridiemHour : function (hour, meridiem) {
9354            if (hour === 12) {
9355                hour = 0;
9356            }
9357            if (meridiem === 'enjing') {
9358                return hour;
9359            } else if (meridiem === 'siyang') {
9360                return hour >= 11 ? hour : hour + 12;
9361            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
9362                return hour + 12;
9363            }
9364        },
9365        meridiem : function (hours, minutes, isLower) {
9366            if (hours < 11) {
9367                return 'enjing';
9368            } else if (hours < 15) {
9369                return 'siyang';
9370            } else if (hours < 19) {
9371                return 'sonten';
9372            } else {
9373                return 'ndalu';
9374            }
9375        },
9376        calendar : {
9377            sameDay : '[Dinten puniko pukul] LT',
9378            nextDay : '[Mbenjang pukul] LT',
9379            nextWeek : 'dddd [pukul] LT',
9380            lastDay : '[Kala wingi pukul] LT',
9381            lastWeek : 'dddd [kepengker pukul] LT',
9382            sameElse : 'L'
9383        },
9384        relativeTime : {
9385            future : 'wonten ing %s',
9386            past : '%s ingkang kepengker',
9387            s : 'sawetawis detik',
9388            ss : '%d detik',
9389            m : 'setunggal menit',
9390            mm : '%d menit',
9391            h : 'setunggal jam',
9392            hh : '%d jam',
9393            d : 'sedinten',
9394            dd : '%d dinten',
9395            M : 'sewulan',
9396            MM : '%d wulan',
9397            y : 'setaun',
9398            yy : '%d taun'
9399        },
9400        week : {
9401            dow : 1, // Monday is the first day of the week.
9402            doy : 7  // The week that contains Jan 1st is the first week of the year.
9403        }
9404    });
9405
9406    //! moment.js locale configuration
9407
9408    hooks.defineLocale('ka', {
9409        months : {
9410            standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
9411            format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
9412        },
9413        monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
9414        weekdays : {
9415            standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
9416            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
9417            isFormat: /(წინა|შემდეგ)/
9418        },
9419        weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
9420        weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
9421        longDateFormat : {
9422            LT : 'h:mm A',
9423            LTS : 'h:mm:ss A',
9424            L : 'DD/MM/YYYY',
9425            LL : 'D MMMM YYYY',
9426            LLL : 'D MMMM YYYY h:mm A',
9427            LLLL : 'dddd, D MMMM YYYY h:mm A'
9428        },
9429        calendar : {
9430            sameDay : '[დღეს] LT[-ზე]',
9431            nextDay : '[ხვალ] LT[-ზე]',
9432            lastDay : '[გუშინ] LT[-ზე]',
9433            nextWeek : '[შემდეგ] dddd LT[-ზე]',
9434            lastWeek : '[წინა] dddd LT-ზე',
9435            sameElse : 'L'
9436        },
9437        relativeTime : {
9438            future : function (s) {
9439                return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
9440                    s.replace(/ი$/, 'ში') :
9441                    s + 'ში';
9442            },
9443            past : function (s) {
9444                if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
9445                    return s.replace(/(ი|ე)$/, 'ის წინ');
9446                }
9447                if ((/წელი/).test(s)) {
9448                    return s.replace(/წელი$/, 'წლის წინ');
9449                }
9450            },
9451            s : 'რამდენიმე წამი',
9452            ss : '%d წამი',
9453            m : 'წუთი',
9454            mm : '%d წუთი',
9455            h : 'საათი',
9456            hh : '%d საათი',
9457            d : 'დღე',
9458            dd : '%d დღე',
9459            M : 'თვე',
9460            MM : '%d თვე',
9461            y : 'წელი',
9462            yy : '%d წელი'
9463        },
9464        dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
9465        ordinal : function (number) {
9466            if (number === 0) {
9467                return number;
9468            }
9469            if (number === 1) {
9470                return number + '-ლი';
9471            }
9472            if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
9473                return 'მე-' + number;
9474            }
9475            return number + '-ე';
9476        },
9477        week : {
9478            dow : 1,
9479            doy : 7
9480        }
9481    });
9482
9483    //! moment.js locale configuration
9484
9485    var suffixes$1 = {
9486        0: '-ші',
9487        1: '-ші',
9488        2: '-ші',
9489        3: '-ші',
9490        4: '-ші',
9491        5: '-ші',
9492        6: '-шы',
9493        7: '-ші',
9494        8: '-ші',
9495        9: '-шы',
9496        10: '-шы',
9497        20: '-шы',
9498        30: '-шы',
9499        40: '-шы',
9500        50: '-ші',
9501        60: '-шы',
9502        70: '-ші',
9503        80: '-ші',
9504        90: '-шы',
9505        100: '-ші'
9506    };
9507
9508    hooks.defineLocale('kk', {
9509        months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
9510        monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
9511        weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
9512        weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
9513        weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
9514        longDateFormat : {
9515            LT : 'HH:mm',
9516            LTS : 'HH:mm:ss',
9517            L : 'DD.MM.YYYY',
9518            LL : 'D MMMM YYYY',
9519            LLL : 'D MMMM YYYY HH:mm',
9520            LLLL : 'dddd, D MMMM YYYY HH:mm'
9521        },
9522        calendar : {
9523            sameDay : '[Бүгін сағат] LT',
9524            nextDay : '[Ертең сағат] LT',
9525            nextWeek : 'dddd [сағат] LT',
9526            lastDay : '[Кеше сағат] LT',
9527            lastWeek : '[Өткен аптаның] dddd [сағат] LT',
9528            sameElse : 'L'
9529        },
9530        relativeTime : {
9531            future : '%s ішінде',
9532            past : '%s бұрын',
9533            s : 'бірнеше секунд',
9534            ss : '%d секунд',
9535            m : 'бір минут',
9536            mm : '%d минут',
9537            h : 'бір сағат',
9538            hh : '%d сағат',
9539            d : 'бір күн',
9540            dd : '%d күн',
9541            M : 'бір ай',
9542            MM : '%d ай',
9543            y : 'бір жыл',
9544            yy : '%d жыл'
9545        },
9546        dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
9547        ordinal : function (number) {
9548            var a = number % 10,
9549                b = number >= 100 ? 100 : null;
9550            return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);
9551        },
9552        week : {
9553            dow : 1, // Monday is the first day of the week.
9554            doy : 7  // The week that contains Jan 1st is the first week of the year.
9555        }
9556    });
9557
9558    //! moment.js locale configuration
9559
9560    var symbolMap$8 = {
9561        '1': '១',
9562        '2': '២',
9563        '3': '៣',
9564        '4': '៤',
9565        '5': '៥',
9566        '6': '៦',
9567        '7': '៧',
9568        '8': '៨',
9569        '9': '៩',
9570        '0': '០'
9571    }, numberMap$7 = {
9572        '១': '1',
9573        '២': '2',
9574        '៣': '3',
9575        '៤': '4',
9576        '៥': '5',
9577        '៦': '6',
9578        '៧': '7',
9579        '៨': '8',
9580        '៩': '9',
9581        '០': '0'
9582    };
9583
9584    hooks.defineLocale('km', {
9585        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
9586            '_'
9587        ),
9588        monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
9589            '_'
9590        ),
9591        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
9592        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
9593        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
9594        weekdaysParseExact: true,
9595        longDateFormat: {
9596            LT: 'HH:mm',
9597            LTS: 'HH:mm:ss',
9598            L: 'DD/MM/YYYY',
9599            LL: 'D MMMM YYYY',
9600            LLL: 'D MMMM YYYY HH:mm',
9601            LLLL: 'dddd, D MMMM YYYY HH:mm'
9602        },
9603        meridiemParse: /ព្រឹក|ល្ងាច/,
9604        isPM: function (input) {
9605            return input === 'ល្ងាច';
9606        },
9607        meridiem: function (hour, minute, isLower) {
9608            if (hour < 12) {
9609                return 'ព្រឹក';
9610            } else {
9611                return 'ល្ងាច';
9612            }
9613        },
9614        calendar: {
9615            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
9616            nextDay: '[ស្អែក ម៉ោង] LT',
9617            nextWeek: 'dddd [ម៉ោង] LT',
9618            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
9619            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
9620            sameElse: 'L'
9621        },
9622        relativeTime: {
9623            future: '%sទៀត',
9624            past: '%sមុន',
9625            s: 'ប៉ុន្មានវិនាទី',
9626            ss: '%d វិនាទី',
9627            m: 'មួយនាទី',
9628            mm: '%d នាទី',
9629            h: 'មួយម៉ោង',
9630            hh: '%d ម៉ោង',
9631            d: 'មួយថ្ងៃ',
9632            dd: '%d ថ្ងៃ',
9633            M: 'មួយខែ',
9634            MM: '%d ខែ',
9635            y: 'មួយឆ្នាំ',
9636            yy: '%d ឆ្នាំ'
9637        },
9638        dayOfMonthOrdinalParse : /ទី\d{1,2}/,
9639        ordinal : 'ទី%d',
9640        preparse: function (string) {
9641            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
9642                return numberMap$7[match];
9643            });
9644        },
9645        postformat: function (string) {
9646            return string.replace(/\d/g, function (match) {
9647                return symbolMap$8[match];
9648            });
9649        },
9650        week: {
9651            dow: 1, // Monday is the first day of the week.
9652            doy: 4 // The week that contains Jan 4th is the first week of the year.
9653        }
9654    });
9655
9656    //! moment.js locale configuration
9657
9658    var symbolMap$9 = {
9659        '1': 'à³§',
9660        '2': '೨',
9661        '3': '೩',
9662        '4': '೪',
9663        '5': '೫',
9664        '6': '೬',
9665        '7': 'à³­',
9666        '8': 'à³®',
9667        '9': '೯',
9668        '0': '೦'
9669    },
9670    numberMap$8 = {
9671        'à³§': '1',
9672        '೨': '2',
9673        '೩': '3',
9674        '೪': '4',
9675        '೫': '5',
9676        '೬': '6',
9677        'à³­': '7',
9678        'à³®': '8',
9679        '೯': '9',
9680        '೦': '0'
9681    };
9682
9683    hooks.defineLocale('kn', {
9684        months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
9685        monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),
9686        monthsParseExact: true,
9687        weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
9688        weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
9689        weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
9690        longDateFormat : {
9691            LT : 'A h:mm',
9692            LTS : 'A h:mm:ss',
9693            L : 'DD/MM/YYYY',
9694            LL : 'D MMMM YYYY',
9695            LLL : 'D MMMM YYYY, A h:mm',
9696            LLLL : 'dddd, D MMMM YYYY, A h:mm'
9697        },
9698        calendar : {
9699            sameDay : '[ಇಂದು] LT',
9700            nextDay : '[ನಾಳೆ] LT',
9701            nextWeek : 'dddd, LT',
9702            lastDay : '[ನಿನ್ನೆ] LT',
9703            lastWeek : '[ಕೊನೆಯ] dddd, LT',
9704            sameElse : 'L'
9705        },
9706        relativeTime : {
9707            future : '%s ನಂತರ',
9708            past : '%s ಹಿಂದೆ',
9709            s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
9710            ss : '%d ಸೆಕೆಂಡುಗಳು',
9711            m : 'ಒಂದು ನಿಮಿಷ',
9712            mm : '%d ನಿಮಿಷ',
9713            h : 'ಒಂದು ಗಂಟೆ',
9714            hh : '%d ಗಂಟೆ',
9715            d : 'ಒಂದು ದಿನ',
9716            dd : '%d ದಿನ',
9717            M : 'ಒಂದು ತಿಂಗಳು',
9718            MM : '%d ತಿಂಗಳು',
9719            y : 'ಒಂದು ವರ್ಷ',
9720            yy : '%d ವರ್ಷ'
9721        },
9722        preparse: function (string) {
9723            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
9724                return numberMap$8[match];
9725            });
9726        },
9727        postformat: function (string) {
9728            return string.replace(/\d/g, function (match) {
9729                return symbolMap$9[match];
9730            });
9731        },
9732        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
9733        meridiemHour : function (hour, meridiem) {
9734            if (hour === 12) {
9735                hour = 0;
9736            }
9737            if (meridiem === 'ರಾತ್ರಿ') {
9738                return hour < 4 ? hour : hour + 12;
9739            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
9740                return hour;
9741            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
9742                return hour >= 10 ? hour : hour + 12;
9743            } else if (meridiem === 'ಸಂಜೆ') {
9744                return hour + 12;
9745            }
9746        },
9747        meridiem : function (hour, minute, isLower) {
9748            if (hour < 4) {
9749                return 'ರಾತ್ರಿ';
9750            } else if (hour < 10) {
9751                return 'ಬೆಳಿಗ್ಗೆ';
9752            } else if (hour < 17) {
9753                return 'ಮಧ್ಯಾಹ್ನ';
9754            } else if (hour < 20) {
9755                return 'ಸಂಜೆ';
9756            } else {
9757                return 'ರಾತ್ರಿ';
9758            }
9759        },
9760        dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
9761        ordinal : function (number) {
9762            return number + 'ನೇ';
9763        },
9764        week : {
9765            dow : 0, // Sunday is the first day of the week.
9766            doy : 6  // The week that contains Jan 1st is the first week of the year.
9767        }
9768    });
9769
9770    //! moment.js locale configuration
9771
9772    hooks.defineLocale('ko', {
9773        months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
9774        monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
9775        weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
9776        weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
9777        weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
9778        longDateFormat : {
9779            LT : 'A h:mm',
9780            LTS : 'A h:mm:ss',
9781            L : 'YYYY.MM.DD.',
9782            LL : 'YYYY년 MMMM D일',
9783            LLL : 'YYYY년 MMMM D일 A h:mm',
9784            LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
9785            l : 'YYYY.MM.DD.',
9786            ll : 'YYYY년 MMMM D일',
9787            lll : 'YYYY년 MMMM D일 A h:mm',
9788            llll : 'YYYY년 MMMM D일 dddd A h:mm'
9789        },
9790        calendar : {
9791            sameDay : '오늘 LT',
9792            nextDay : '내일 LT',
9793            nextWeek : 'dddd LT',
9794            lastDay : '어제 LT',
9795            lastWeek : '지난주 dddd LT',
9796            sameElse : 'L'
9797        },
9798        relativeTime : {
9799            future : '%s 후',
9800            past : '%s 전',
9801            s : '몇 초',
9802            ss : '%d초',
9803            m : '1분',
9804            mm : '%d분',
9805            h : '한 시간',
9806            hh : '%d시간',
9807            d : '하루',
9808            dd : '%d일',
9809            M : '한 달',
9810            MM : '%d달',
9811            y : '일 년',
9812            yy : '%d년'
9813        },
9814        dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
9815        ordinal : function (number, period) {
9816            switch (period) {
9817                case 'd':
9818                case 'D':
9819                case 'DDD':
9820                    return number + '일';
9821                case 'M':
9822                    return number + '월';
9823                case 'w':
9824                case 'W':
9825                    return number + '주';
9826                default:
9827                    return number;
9828            }
9829        },
9830        meridiemParse : /오전|오후/,
9831        isPM : function (token) {
9832            return token === '오후';
9833        },
9834        meridiem : function (hour, minute, isUpper) {
9835            return hour < 12 ? '오전' : '오후';
9836        }
9837    });
9838
9839    //! moment.js locale configuration
9840
9841    var suffixes$2 = {
9842        0: '-чү',
9843        1: '-чи',
9844        2: '-чи',
9845        3: '-чү',
9846        4: '-чү',
9847        5: '-чи',
9848        6: '-чы',
9849        7: '-чи',
9850        8: '-чи',
9851        9: '-чу',
9852        10: '-чу',
9853        20: '-чы',
9854        30: '-чу',
9855        40: '-чы',
9856        50: '-чү',
9857        60: '-чы',
9858        70: '-чи',
9859        80: '-чи',
9860        90: '-чу',
9861        100: '-чү'
9862    };
9863
9864    hooks.defineLocale('ky', {
9865        months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
9866        monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
9867        weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
9868        weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
9869        weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
9870        longDateFormat : {
9871            LT : 'HH:mm',
9872            LTS : 'HH:mm:ss',
9873            L : 'DD.MM.YYYY',
9874            LL : 'D MMMM YYYY',
9875            LLL : 'D MMMM YYYY HH:mm',
9876            LLLL : 'dddd, D MMMM YYYY HH:mm'
9877        },
9878        calendar : {
9879            sameDay : '[Бүгүн саат] LT',
9880            nextDay : '[Эртең саат] LT',
9881            nextWeek : 'dddd [саат] LT',
9882            lastDay : '[Кече саат] LT',
9883            lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
9884            sameElse : 'L'
9885        },
9886        relativeTime : {
9887            future : '%s ичинде',
9888            past : '%s мурун',
9889            s : 'бирнече секунд',
9890            ss : '%d секунд',
9891            m : 'бир мүнөт',
9892            mm : '%d мүнөт',
9893            h : 'бир саат',
9894            hh : '%d саат',
9895            d : 'бир күн',
9896            dd : '%d күн',
9897            M : 'бир ай',
9898            MM : '%d ай',
9899            y : 'бир жыл',
9900            yy : '%d жыл'
9901        },
9902        dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
9903        ordinal : function (number) {
9904            var a = number % 10,
9905                b = number >= 100 ? 100 : null;
9906            return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);
9907        },
9908        week : {
9909            dow : 1, // Monday is the first day of the week.
9910            doy : 7  // The week that contains Jan 1st is the first week of the year.
9911        }
9912    });
9913
9914    //! moment.js locale configuration
9915
9916    function processRelativeTime$5(number, withoutSuffix, key, isFuture) {
9917        var format = {
9918            'm': ['eng Minutt', 'enger Minutt'],
9919            'h': ['eng Stonn', 'enger Stonn'],
9920            'd': ['een Dag', 'engem Dag'],
9921            'M': ['ee Mount', 'engem Mount'],
9922            'y': ['ee Joer', 'engem Joer']
9923        };
9924        return withoutSuffix ? format[key][0] : format[key][1];
9925    }
9926    function processFutureTime(string) {
9927        var number = string.substr(0, string.indexOf(' '));
9928        if (eifelerRegelAppliesToNumber(number)) {
9929            return 'a ' + string;
9930        }
9931        return 'an ' + string;
9932    }
9933    function processPastTime(string) {
9934        var number = string.substr(0, string.indexOf(' '));
9935        if (eifelerRegelAppliesToNumber(number)) {
9936            return 'viru ' + string;
9937        }
9938        return 'virun ' + string;
9939    }
9940    /**
9941     * Returns true if the word before the given number loses the '-n' ending.
9942     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
9943     *
9944     * @param number {integer}
9945     * @returns {boolean}
9946     */
9947    function eifelerRegelAppliesToNumber(number) {
9948        number = parseInt(number, 10);
9949        if (isNaN(number)) {
9950            return false;
9951        }
9952        if (number < 0) {
9953            // Negative Number --> always true
9954            return true;
9955        } else if (number < 10) {
9956            // Only 1 digit
9957            if (4 <= number && number <= 7) {
9958                return true;
9959            }
9960            return false;
9961        } else if (number < 100) {
9962            // 2 digits
9963            var lastDigit = number % 10, firstDigit = number / 10;
9964            if (lastDigit === 0) {
9965                return eifelerRegelAppliesToNumber(firstDigit);
9966            }
9967            return eifelerRegelAppliesToNumber(lastDigit);
9968        } else if (number < 10000) {
9969            // 3 or 4 digits --> recursively check first digit
9970            while (number >= 10) {
9971                number = number / 10;
9972            }
9973            return eifelerRegelAppliesToNumber(number);
9974        } else {
9975            // Anything larger than 4 digits: recursively check first n-3 digits
9976            number = number / 1000;
9977            return eifelerRegelAppliesToNumber(number);
9978        }
9979    }
9980
9981    hooks.defineLocale('lb', {
9982        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
9983        monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
9984        monthsParseExact : true,
9985        weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
9986        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
9987        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
9988        weekdaysParseExact : true,
9989        longDateFormat: {
9990            LT: 'H:mm [Auer]',
9991            LTS: 'H:mm:ss [Auer]',
9992            L: 'DD.MM.YYYY',
9993            LL: 'D. MMMM YYYY',
9994            LLL: 'D. MMMM YYYY H:mm [Auer]',
9995            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
9996        },
9997        calendar: {
9998            sameDay: '[Haut um] LT',
9999            sameElse: 'L',
10000            nextDay: '[Muer um] LT',
10001            nextWeek: 'dddd [um] LT',
10002            lastDay: '[Gëschter um] LT',
10003            lastWeek: function () {
10004                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
10005                switch (this.day()) {
10006                    case 2:
10007                    case 4:
10008                        return '[Leschten] dddd [um] LT';
10009                    default:
10010                        return '[Leschte] dddd [um] LT';
10011                }
10012            }
10013        },
10014        relativeTime : {
10015            future : processFutureTime,
10016            past : processPastTime,
10017            s : 'e puer Sekonnen',
10018            ss : '%d Sekonnen',
10019            m : processRelativeTime$5,
10020            mm : '%d Minutten',
10021            h : processRelativeTime$5,
10022            hh : '%d Stonnen',
10023            d : processRelativeTime$5,
10024            dd : '%d Deeg',
10025            M : processRelativeTime$5,
10026            MM : '%d Méint',
10027            y : processRelativeTime$5,
10028            yy : '%d Joer'
10029        },
10030        dayOfMonthOrdinalParse: /\d{1,2}\./,
10031        ordinal: '%d.',
10032        week: {
10033            dow: 1, // Monday is the first day of the week.
10034            doy: 4  // The week that contains Jan 4th is the first week of the year.
10035        }
10036    });
10037
10038    //! moment.js locale configuration
10039
10040    hooks.defineLocale('lo', {
10041        months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
10042        monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
10043        weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
10044        weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
10045        weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
10046        weekdaysParseExact : true,
10047        longDateFormat : {
10048            LT : 'HH:mm',
10049            LTS : 'HH:mm:ss',
10050            L : 'DD/MM/YYYY',
10051            LL : 'D MMMM YYYY',
10052            LLL : 'D MMMM YYYY HH:mm',
10053            LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
10054        },
10055        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
10056        isPM: function (input) {
10057            return input === 'ຕອນແລງ';
10058        },
10059        meridiem : function (hour, minute, isLower) {
10060            if (hour < 12) {
10061                return 'ຕອນເຊົ້າ';
10062            } else {
10063                return 'ຕອນແລງ';
10064            }
10065        },
10066        calendar : {
10067            sameDay : '[ມື້ນີ້ເວລາ] LT',
10068            nextDay : '[ມື້ອື່ນເວລາ] LT',
10069            nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
10070            lastDay : '[ມື້ວານນີ້ເວລາ] LT',
10071            lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
10072            sameElse : 'L'
10073        },
10074        relativeTime : {
10075            future : 'ອີກ %s',
10076            past : '%sຜ່ານມາ',
10077            s : 'ບໍ່ເທົ່າໃດວິນາທີ',
10078            ss : '%d ວິນາທີ' ,
10079            m : '1 ນາທີ',
10080            mm : '%d ນາທີ',
10081            h : '1 ຊົ່ວໂມງ',
10082            hh : '%d ຊົ່ວໂມງ',
10083            d : '1 ມື້',
10084            dd : '%d ມື້',
10085            M : '1 ເດືອນ',
10086            MM : '%d ເດືອນ',
10087            y : '1 ປີ',
10088            yy : '%d ປີ'
10089        },
10090        dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
10091        ordinal : function (number) {
10092            return 'ທີ່' + number;
10093        }
10094    });
10095
10096    //! moment.js locale configuration
10097
10098    var units = {
10099        'ss' : 'sekundė_sekundžių_sekundes',
10100        'm' : 'minutė_minutės_minutę',
10101        'mm': 'minutės_minučių_minutes',
10102        'h' : 'valanda_valandos_valandą',
10103        'hh': 'valandos_valandų_valandas',
10104        'd' : 'diena_dienos_dieną',
10105        'dd': 'dienos_dienų_dienas',
10106        'M' : 'mėnuo_mėnesio_mėnesį',
10107        'MM': 'mėnesiai_mėnesių_mėnesius',
10108        'y' : 'metai_metų_metus',
10109        'yy': 'metai_metų_metus'
10110    };
10111    function translateSeconds(number, withoutSuffix, key, isFuture) {
10112        if (withoutSuffix) {
10113            return 'kelios sekundės';
10114        } else {
10115            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
10116        }
10117    }
10118    function translateSingular(number, withoutSuffix, key, isFuture) {
10119        return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
10120    }
10121    function special(number) {
10122        return number % 10 === 0 || (number > 10 && number < 20);
10123    }
10124    function forms(key) {
10125        return units[key].split('_');
10126    }
10127    function translate$6(number, withoutSuffix, key, isFuture) {
10128        var result = number + ' ';
10129        if (number === 1) {
10130            return result + translateSingular(number, withoutSuffix, key[0], isFuture);
10131        } else if (withoutSuffix) {
10132            return result + (special(number) ? forms(key)[1] : forms(key)[0]);
10133        } else {
10134            if (isFuture) {
10135                return result + forms(key)[1];
10136            } else {
10137                return result + (special(number) ? forms(key)[1] : forms(key)[2]);
10138            }
10139        }
10140    }
10141    hooks.defineLocale('lt', {
10142        months : {
10143            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
10144            standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
10145            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
10146        },
10147        monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
10148        weekdays : {
10149            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
10150            standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
10151            isFormat: /dddd HH:mm/
10152        },
10153        weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
10154        weekdaysMin : 'S_P_A_T_K_Pn_Å '.split('_'),
10155        weekdaysParseExact : true,
10156        longDateFormat : {
10157            LT : 'HH:mm',
10158            LTS : 'HH:mm:ss',
10159            L : 'YYYY-MM-DD',
10160            LL : 'YYYY [m.] MMMM D [d.]',
10161            LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
10162            LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
10163            l : 'YYYY-MM-DD',
10164            ll : 'YYYY [m.] MMMM D [d.]',
10165            lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
10166            llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
10167        },
10168        calendar : {
10169            sameDay : '[Å iandien] LT',
10170            nextDay : '[Rytoj] LT',
10171            nextWeek : 'dddd LT',
10172            lastDay : '[Vakar] LT',
10173            lastWeek : '[Praėjusį] dddd LT',
10174            sameElse : 'L'
10175        },
10176        relativeTime : {
10177            future : 'po %s',
10178            past : 'prieš %s',
10179            s : translateSeconds,
10180            ss : translate$6,
10181            m : translateSingular,
10182            mm : translate$6,
10183            h : translateSingular,
10184            hh : translate$6,
10185            d : translateSingular,
10186            dd : translate$6,
10187            M : translateSingular,
10188            MM : translate$6,
10189            y : translateSingular,
10190            yy : translate$6
10191        },
10192        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
10193        ordinal : function (number) {
10194            return number + '-oji';
10195        },
10196        week : {
10197            dow : 1, // Monday is the first day of the week.
10198            doy : 4  // The week that contains Jan 4th is the first week of the year.
10199        }
10200    });
10201
10202    //! moment.js locale configuration
10203
10204    var units$1 = {
10205        'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
10206        'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
10207        'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
10208        'h': 'stundas_stundām_stunda_stundas'.split('_'),
10209        'hh': 'stundas_stundām_stunda_stundas'.split('_'),
10210        'd': 'dienas_dienām_diena_dienas'.split('_'),
10211        'dd': 'dienas_dienām_diena_dienas'.split('_'),
10212        'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
10213        'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
10214        'y': 'gada_gadiem_gads_gadi'.split('_'),
10215        'yy': 'gada_gadiem_gads_gadi'.split('_')
10216    };
10217    /**
10218     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
10219     */
10220    function format$1(forms, number, withoutSuffix) {
10221        if (withoutSuffix) {
10222            // E.g. "21 minūte", "3 minūtes".
10223            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
10224        } else {
10225            // E.g. "21 minūtes" as in "pēc 21 minūtes".
10226            // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
10227            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
10228        }
10229    }
10230    function relativeTimeWithPlural$1(number, withoutSuffix, key) {
10231        return number + ' ' + format$1(units$1[key], number, withoutSuffix);
10232    }
10233    function relativeTimeWithSingular(number, withoutSuffix, key) {
10234        return format$1(units$1[key], number, withoutSuffix);
10235    }
10236    function relativeSeconds(number, withoutSuffix) {
10237        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
10238    }
10239
10240    hooks.defineLocale('lv', {
10241        months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
10242        monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
10243        weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
10244        weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
10245        weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
10246        weekdaysParseExact : true,
10247        longDateFormat : {
10248            LT : 'HH:mm',
10249            LTS : 'HH:mm:ss',
10250            L : 'DD.MM.YYYY.',
10251            LL : 'YYYY. [gada] D. MMMM',
10252            LLL : 'YYYY. [gada] D. MMMM, HH:mm',
10253            LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
10254        },
10255        calendar : {
10256            sameDay : '[Å odien pulksten] LT',
10257            nextDay : '[Rīt pulksten] LT',
10258            nextWeek : 'dddd [pulksten] LT',
10259            lastDay : '[Vakar pulksten] LT',
10260            lastWeek : '[Pagājušā] dddd [pulksten] LT',
10261            sameElse : 'L'
10262        },
10263        relativeTime : {
10264            future : 'pēc %s',
10265            past : 'pirms %s',
10266            s : relativeSeconds,
10267            ss : relativeTimeWithPlural$1,
10268            m : relativeTimeWithSingular,
10269            mm : relativeTimeWithPlural$1,
10270            h : relativeTimeWithSingular,
10271            hh : relativeTimeWithPlural$1,
10272            d : relativeTimeWithSingular,
10273            dd : relativeTimeWithPlural$1,
10274            M : relativeTimeWithSingular,
10275            MM : relativeTimeWithPlural$1,
10276            y : relativeTimeWithSingular,
10277            yy : relativeTimeWithPlural$1
10278        },
10279        dayOfMonthOrdinalParse: /\d{1,2}\./,
10280        ordinal : '%d.',
10281        week : {
10282            dow : 1, // Monday is the first day of the week.
10283            doy : 4  // The week that contains Jan 4th is the first week of the year.
10284        }
10285    });
10286
10287    //! moment.js locale configuration
10288
10289    var translator = {
10290        words: { //Different grammatical cases
10291            ss: ['sekund', 'sekunda', 'sekundi'],
10292            m: ['jedan minut', 'jednog minuta'],
10293            mm: ['minut', 'minuta', 'minuta'],
10294            h: ['jedan sat', 'jednog sata'],
10295            hh: ['sat', 'sata', 'sati'],
10296            dd: ['dan', 'dana', 'dana'],
10297            MM: ['mjesec', 'mjeseca', 'mjeseci'],
10298            yy: ['godina', 'godine', 'godina']
10299        },
10300        correctGrammaticalCase: function (number, wordKey) {
10301            return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
10302        },
10303        translate: function (number, withoutSuffix, key) {
10304            var wordKey = translator.words[key];
10305            if (key.length === 1) {
10306                return withoutSuffix ? wordKey[0] : wordKey[1];
10307            } else {
10308                return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
10309            }
10310        }
10311    };
10312
10313    hooks.defineLocale('me', {
10314        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
10315        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
10316        monthsParseExact : true,
10317        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
10318        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
10319        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
10320        weekdaysParseExact : true,
10321        longDateFormat: {
10322            LT: 'H:mm',
10323            LTS : 'H:mm:ss',
10324            L: 'DD.MM.YYYY',
10325            LL: 'D. MMMM YYYY',
10326            LLL: 'D. MMMM YYYY H:mm',
10327            LLLL: 'dddd, D. MMMM YYYY H:mm'
10328        },
10329        calendar: {
10330            sameDay: '[danas u] LT',
10331            nextDay: '[sjutra u] LT',
10332
10333            nextWeek: function () {
10334                switch (this.day()) {
10335                    case 0:
10336                        return '[u] [nedjelju] [u] LT';
10337                    case 3:
10338                        return '[u] [srijedu] [u] LT';
10339                    case 6:
10340                        return '[u] [subotu] [u] LT';
10341                    case 1:
10342                    case 2:
10343                    case 4:
10344                    case 5:
10345                        return '[u] dddd [u] LT';
10346                }
10347            },
10348            lastDay  : '[juče u] LT',
10349            lastWeek : function () {
10350                var lastWeekDays = [
10351                    '[prošle] [nedjelje] [u] LT',
10352                    '[prošlog] [ponedjeljka] [u] LT',
10353                    '[prošlog] [utorka] [u] LT',
10354                    '[prošle] [srijede] [u] LT',
10355                    '[prošlog] [četvrtka] [u] LT',
10356                    '[prošlog] [petka] [u] LT',
10357                    '[prošle] [subote] [u] LT'
10358                ];
10359                return lastWeekDays[this.day()];
10360            },
10361            sameElse : 'L'
10362        },
10363        relativeTime : {
10364            future : 'za %s',
10365            past   : 'prije %s',
10366            s      : 'nekoliko sekundi',
10367            ss     : translator.translate,
10368            m      : translator.translate,
10369            mm     : translator.translate,
10370            h      : translator.translate,
10371            hh     : translator.translate,
10372            d      : 'dan',
10373            dd     : translator.translate,
10374            M      : 'mjesec',
10375            MM     : translator.translate,
10376            y      : 'godinu',
10377            yy     : translator.translate
10378        },
10379        dayOfMonthOrdinalParse: /\d{1,2}\./,
10380        ordinal : '%d.',
10381        week : {
10382            dow : 1, // Monday is the first day of the week.
10383            doy : 7  // The week that contains Jan 1st is the first week of the year.
10384        }
10385    });
10386
10387    //! moment.js locale configuration
10388
10389    hooks.defineLocale('mi', {
10390        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
10391        monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
10392        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
10393        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
10394        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
10395        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
10396        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
10397        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
10398        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
10399        longDateFormat: {
10400            LT: 'HH:mm',
10401            LTS: 'HH:mm:ss',
10402            L: 'DD/MM/YYYY',
10403            LL: 'D MMMM YYYY',
10404            LLL: 'D MMMM YYYY [i] HH:mm',
10405            LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
10406        },
10407        calendar: {
10408            sameDay: '[i teie mahana, i] LT',
10409            nextDay: '[apopo i] LT',
10410            nextWeek: 'dddd [i] LT',
10411            lastDay: '[inanahi i] LT',
10412            lastWeek: 'dddd [whakamutunga i] LT',
10413            sameElse: 'L'
10414        },
10415        relativeTime: {
10416            future: 'i roto i %s',
10417            past: '%s i mua',
10418            s: 'te hēkona ruarua',
10419            ss: '%d hēkona',
10420            m: 'he meneti',
10421            mm: '%d meneti',
10422            h: 'te haora',
10423            hh: '%d haora',
10424            d: 'he ra',
10425            dd: '%d ra',
10426            M: 'he marama',
10427            MM: '%d marama',
10428            y: 'he tau',
10429            yy: '%d tau'
10430        },
10431        dayOfMonthOrdinalParse: /\d{1,2}º/,
10432        ordinal: '%dº',
10433        week : {
10434            dow : 1, // Monday is the first day of the week.
10435            doy : 4  // The week that contains Jan 4th is the first week of the year.
10436        }
10437    });
10438
10439    //! moment.js locale configuration
10440
10441    hooks.defineLocale('mk', {
10442        months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
10443        monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
10444        weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
10445        weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
10446        weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
10447        longDateFormat : {
10448            LT : 'H:mm',
10449            LTS : 'H:mm:ss',
10450            L : 'D.MM.YYYY',
10451            LL : 'D MMMM YYYY',
10452            LLL : 'D MMMM YYYY H:mm',
10453            LLLL : 'dddd, D MMMM YYYY H:mm'
10454        },
10455        calendar : {
10456            sameDay : '[Денес во] LT',
10457            nextDay : '[Утре во] LT',
10458            nextWeek : '[Во] dddd [во] LT',
10459            lastDay : '[Вчера во] LT',
10460            lastWeek : function () {
10461                switch (this.day()) {
10462                    case 0:
10463                    case 3:
10464                    case 6:
10465                        return '[Изминатата] dddd [во] LT';
10466                    case 1:
10467                    case 2:
10468                    case 4:
10469                    case 5:
10470                        return '[Изминатиот] dddd [во] LT';
10471                }
10472            },
10473            sameElse : 'L'
10474        },
10475        relativeTime : {
10476            future : 'после %s',
10477            past : 'пред %s',
10478            s : 'неколку секунди',
10479            ss : '%d секунди',
10480            m : 'минута',
10481            mm : '%d минути',
10482            h : 'час',
10483            hh : '%d часа',
10484            d : 'ден',
10485            dd : '%d дена',
10486            M : 'месец',
10487            MM : '%d месеци',
10488            y : 'година',
10489            yy : '%d години'
10490        },
10491        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
10492        ordinal : function (number) {
10493            var lastDigit = number % 10,
10494                last2Digits = number % 100;
10495            if (number === 0) {
10496                return number + '-ев';
10497            } else if (last2Digits === 0) {
10498                return number + '-ен';
10499            } else if (last2Digits > 10 && last2Digits < 20) {
10500                return number + '-ти';
10501            } else if (lastDigit === 1) {
10502                return number + '-ви';
10503            } else if (lastDigit === 2) {
10504                return number + '-ри';
10505            } else if (lastDigit === 7 || lastDigit === 8) {
10506                return number + '-ми';
10507            } else {
10508                return number + '-ти';
10509            }
10510        },
10511        week : {
10512            dow : 1, // Monday is the first day of the week.
10513            doy : 7  // The week that contains Jan 1st is the first week of the year.
10514        }
10515    });
10516
10517    //! moment.js locale configuration
10518
10519    hooks.defineLocale('ml', {
10520        months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ചà
10520µ_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
10521        monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
10522        monthsParseExact : true,
10523        weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
10524        weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
10525        weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
10526        longDateFormat : {
10527            LT : 'A h:mm -നു',
10528            LTS : 'A h:mm:ss -നു',
10529            L : 'DD/MM/YYYY',
10530            LL : 'D MMMM YYYY',
10531            LLL : 'D MMMM YYYY, A h:mm -നു',
10532            LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
10533        },
10534        calendar : {
10535            sameDay : '[ഇന്ന്] LT',
10536            nextDay : '[നാളെ] LT',
10537            nextWeek : 'dddd, LT',
10538            lastDay : '[ഇന്നലെ] LT',
10539            lastWeek : '[കഴിഞ്ഞ] dddd, LT',
10540            sameElse : 'L'
10541        },
10542        relativeTime : {
10543            future : '%s കഴിഞ്ഞ്',
10544            past : '%s മുൻപ്',
10545            s : 'അൽപ നിമിഷങ്ങൾ',
10546            ss : '%d സെക്കൻഡ്',
10547            m : 'ഒരു മിനിറ്റ്',
10548            mm : '%d മിനിറ്റ്',
10549            h : 'ഒരു മണിക്കൂർ',
10550            hh : '%d മണിക്കൂർ',
10551            d : 'ഒരു ദിവസം',
10552            dd : '%d ദിവസം',
10553            M : 'ഒരു മാസം',
10554            MM : '%d മാസം',
10555            y : 'ഒരു വർഷം',
10556            yy : '%d വർഷം'
10557        },
10558        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
10559        meridiemHour : function (hour, meridiem) {
10560            if (hour === 12) {
10561                hour = 0;
10562            }
10563            if ((meridiem === 'രാത്രി' && hour >= 4) ||
10564                    meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
10565                    meridiem === 'വൈകുന്നേരം') {
10566                return hour + 12;
10567            } else {
10568                return hour;
10569            }
10570        },
10571        meridiem : function (hour, minute, isLower) {
10572            if (hour < 4) {
10573                return 'രാത്രി';
10574            } else if (hour < 12) {
10575                return 'രാവിലെ';
10576            } else if (hour < 17) {
10577                return 'ഉച്ച കഴിഞ്ഞ്';
10578            } else if (hour < 20) {
10579                return 'വൈകുന്നേരം';
10580            } else {
10581                return 'രാത്രി';
10582            }
10583        }
10584    });
10585
10586    //! moment.js locale configuration
10587
10588    function translate$7(number, withoutSuffix, key, isFuture) {
10589        switch (key) {
10590            case 's':
10591                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
10592            case 'ss':
10593                return number + (withoutSuffix ? ' секунд' : ' секундын');
10594            case 'm':
10595            case 'mm':
10596                return number + (withoutSuffix ? ' минут' : ' минутын');
10597            case 'h':
10598            case 'hh':
10599                return number + (withoutSuffix ? ' цаг' : ' цагийн');
10600            case 'd':
10601            case 'dd':
10602                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
10603            case 'M':
10604            case 'MM':
10605                return number + (withoutSuffix ? ' сар' : ' сарын');
10606            case 'y':
10607            case 'yy':
10608                return number + (withoutSuffix ? ' жил' : ' жилийн');
10609            default:
10610                return number;
10611        }
10612    }
10613
10614    hooks.defineLocale('mn', {
10615        months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),
10616        monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),
10617        monthsParseExact : true,
10618        weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
10619        weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
10620        weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
10621        weekdaysParseExact : true,
10622        longDateFormat : {
10623            LT : 'HH:mm',
10624            LTS : 'HH:mm:ss',
10625            L : 'YYYY-MM-DD',
10626            LL : 'YYYY оны MMMMын D',
10627            LLL : 'YYYY оны MMMMын D HH:mm',
10628            LLLL : 'dddd, YYYY оны MMMMын D HH:mm'
10629        },
10630        meridiemParse: /ҮӨ|ҮХ/i,
10631        isPM : function (input) {
10632            return input === 'ҮХ';
10633        },
10634        meridiem : function (hour, minute, isLower) {
10635            if (hour < 12) {
10636                return 'Ò®Ó¨';
10637            } else {
10638                return 'ҮХ';
10639            }
10640        },
10641        calendar : {
10642            sameDay : '[Өнөөдөр] LT',
10643            nextDay : '[Маргааш] LT',
10644            nextWeek : '[Ирэх] dddd LT',
10645            lastDay : '[Өчигдөр] LT',
10646            lastWeek : '[Өнгөрсөн] dddd LT',
10647            sameElse : 'L'
10648        },
10649        relativeTime : {
10650            future : '%s дараа',
10651            past : '%s өмнө',
10652            s : translate$7,
10653            ss : translate$7,
10654            m : translate$7,
10655            mm : translate$7,
10656            h : translate$7,
10657            hh : translate$7,
10658            d : translate$7,
10659            dd : translate$7,
10660            M : translate$7,
10661            MM : translate$7,
10662            y : translate$7,
10663            yy : translate$7
10664        },
10665        dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
10666        ordinal : function (number, period) {
10667            switch (period) {
10668                case 'd':
10669                case 'D':
10670                case 'DDD':
10671                    return number + ' өдөр';
10672                default:
10673                    return number;
10674            }
10675        }
10676    });
10677
10678    //! moment.js locale configuration
10679
10680    var symbolMap$a = {
10681        '1': '१',
10682        '2': '२',
10683        '3': '३',
10684        '4': '४',
10685        '5': '५',
10686        '6': '६',
10687        '7': '७',
10688        '8': '८',
10689        '9': '९',
10690        '0': '०'
10691    },
10692    numberMap$9 = {
10693        '१': '1',
10694        '२': '2',
10695        '३': '3',
10696        '४': '4',
10697        '५': '5',
10698        '६': '6',
10699        '७': '7',
10700        '८': '8',
10701        '९': '9',
10702        '०': '0'
10703    };
10704
10705    function relativeTimeMr(number, withoutSuffix, string, isFuture)
10706    {
10707        var output = '';
10708        if (withoutSuffix) {
10709            switch (string) {
10710                case 's': output = 'काही सेकंद'; break;
10711                case 'ss': output = '%d सेकंद'; break;
10712                case 'm': output = 'एक मिनिट'; break;
10713                case 'mm': output = '%d मिनिटे'; break;
10714                case 'h': output = 'एक तास'; break;
10715                case 'hh': output = '%d तास'; break;
10716                case 'd': output = 'एक दिवस'; break;
10717                case 'dd': output = '%d दिवस'; break;
10718                case 'M': output = 'एक महिना'; break;
10719                case 'MM': output = '%d महिने'; break;
10720                case 'y': output = 'एक वर्ष'; break;
10721                case 'yy': output = '%d वर्षे'; break;
10722            }
10723        }
10724        else {
10725            switch (string) {
10726                case 's': output = 'काही सेकंदां'; break;
10727                case 'ss': output = '%d सेकंदां'; break;
10728                case 'm': output = 'एका मिनिटा'; break;
10729                case 'mm': output = '%d मिनिटां'; break;
10730                case 'h': output = 'एका तासा'; break;
10731                case 'hh': output = '%d तासां'; break;
10732                case 'd': output = 'एका दिवसा'; break;
10733                case 'dd': output = '%d दिवसां'; break;
10734                case 'M': output = 'एका महिन्या'; break;
10735                case 'MM': output = '%d महिन्यां'; break;
10736                case 'y': output = 'एका वर्षा'; break;
10737                case 'yy': output = '%d वर्षां'; break;
10738            }
10739        }
10740        return output.replace(/%d/i, number);
10741    }
10742
10743    hooks.defineLocale('mr', {
10744        months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
10745        monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
10746        monthsParseExact : true,
10747        weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
10748        weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
10749        weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
10750        longDateFormat : {
10751            LT : 'A h:mm वाजता',
10752            LTS : 'A h:mm:ss वाजता',
10753            L : 'DD/MM/YYYY',
10754            LL : 'D MMMM YYYY',
10755            LLL : 'D MMMM YYYY, A h:mm वाजता',
10756            LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
10757        },
10758        calendar : {
10759            sameDay : '[आज] LT',
10760            nextDay : '[उद्या] LT',
10761            nextWeek : 'dddd, LT',
10762            lastDay : '[काल] LT',
10763            lastWeek: '[मागील] dddd, LT',
10764            sameElse : 'L'
10765        },
10766        relativeTime : {
10767            future: '%sमध्ये',
10768            past: '%sपूर्वी',
10769            s: relativeTimeMr,
10770            ss: relativeTimeMr,
10771            m: relativeTimeMr,
10772            mm: relativeTimeMr,
10773            h: relativeTimeMr,
10774            hh: relativeTimeMr,
10775            d: relativeTimeMr,
10776            dd: relativeTimeMr,
10777            M: relativeTimeMr,
10778            MM: relativeTimeMr,
10779            y: relativeTimeMr,
10780            yy: relativeTimeMr
10781        },
10782        preparse: function (string) {
10783            return string.replace(/[१२३४५६७८९०]/g, function (match) {
10784                return numberMap$9[match];
10785            });
10786        },
10787        postformat: function (string) {
10788            return string.replace(/\d/g, function (match) {
10789                return symbolMap$a[match];
10790            });
10791        },
10792        meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
10793        meridiemHour : function (hour, meridiem) {
10794            if (hour === 12) {
10795                hour = 0;
10796            }
10797            if (meridiem === 'रात्री') {
10798                return hour < 4 ? hour : hour + 12;
10799            } else if (meridiem === 'सकाळी') {
10800                return hour;
10801            } else if (meridiem === 'दुपारी') {
10802                return hour >= 10 ? hour : hour + 12;
10803            } else if (meridiem === 'सायंकाळी') {
10804                return hour + 12;
10805            }
10806        },
10807        meridiem: function (hour, minute, isLower) {
10808            if (hour < 4) {
10809                return 'रात्री';
10810            } else if (hour < 10) {
10811                return 'सकाळी';
10812            } else if (hour < 17) {
10813                return 'दुपारी';
10814            } else if (hour < 20) {
10815                return 'सायंकाळी';
10816            } else {
10817                return 'रात्री';
10818            }
10819        },
10820        week : {
10821            dow : 0, // Sunday is the first day of the week.
10822            doy : 6  // The week that contains Jan 1st is the first week of the year.
10823        }
10824    });
10825
10826    //! moment.js locale configuration
10827
10828    hooks.defineLocale('ms-my', {
10829        months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
10830        monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
10831        weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
10832        weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
10833        weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
10834        longDateFormat : {
10835            LT : 'HH.mm',
10836            LTS : 'HH.mm.ss',
10837            L : 'DD/MM/YYYY',
10838            LL : 'D MMMM YYYY',
10839            LLL : 'D MMMM YYYY [pukul] HH.mm',
10840            LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
10841        },
10842        meridiemParse: /pagi|tengahari|petang|malam/,
10843        meridiemHour: function (hour, meridiem) {
10844            if (hour === 12) {
10845                hour = 0;
10846            }
10847            if (meridiem === 'pagi') {
10848                return hour;
10849            } else if (meridiem === 'tengahari') {
10850                return hour >= 11 ? hour : hour + 12;
10851            } else if (meridiem === 'petang' || meridiem === 'malam') {
10852                return hour + 12;
10853            }
10854        },
10855        meridiem : function (hours, minutes, isLower) {
10856            if (hours < 11) {
10857                return 'pagi';
10858            } else if (hours < 15) {
10859                return 'tengahari';
10860            } else if (hours < 19) {
10861                return 'petang';
10862            } else {
10863                return 'malam';
10864            }
10865        },
10866        calendar : {
10867            sameDay : '[Hari ini pukul] LT',
10868            nextDay : '[Esok pukul] LT',
10869            nextWeek : 'dddd [pukul] LT',
10870            lastDay : '[Kelmarin pukul] LT',
10871            lastWeek : 'dddd [lepas pukul] LT',
10872            sameElse : 'L'
10873        },
10874        relativeTime : {
10875            future : 'dalam %s',
10876            past : '%s yang lepas',
10877            s : 'beberapa saat',
10878            ss : '%d saat',
10879            m : 'seminit',
10880            mm : '%d minit',
10881            h : 'sejam',
10882            hh : '%d jam',
10883            d : 'sehari',
10884            dd : '%d hari',
10885            M : 'sebulan',
10886            MM : '%d bulan',
10887            y : 'setahun',
10888            yy : '%d tahun'
10889        },
10890        week : {
10891            dow : 1, // Monday is the first day of the week.
10892            doy : 7  // The week that contains Jan 1st is the first week of the year.
10893        }
10894    });
10895
10896    //! moment.js locale configuration
10897
10898    hooks.defineLocale('ms', {
10899        months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
10900        monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
10901        weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
10902        weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
10903        weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
10904        longDateFormat : {
10905            LT : 'HH.mm',
10906            LTS : 'HH.mm.ss',
10907            L : 'DD/MM/YYYY',
10908            LL : 'D MMMM YYYY',
10909            LLL : 'D MMMM YYYY [pukul] HH.mm',
10910            LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
10911        },
10912        meridiemParse: /pagi|tengahari|petang|malam/,
10913        meridiemHour: function (hour, meridiem) {
10914            if (hour === 12) {
10915                hour = 0;
10916            }
10917            if (meridiem === 'pagi') {
10918                return hour;
10919            } else if (meridiem === 'tengahari') {
10920                return hour >= 11 ? hour : hour + 12;
10921            } else if (meridiem === 'petang' || meridiem === 'malam') {
10922                return hour + 12;
10923            }
10924        },
10925        meridiem : function (hours, minutes, isLower) {
10926            if (hours < 11) {
10927                return 'pagi';
10928            } else if (hours < 15) {
10929                return 'tengahari';
10930            } else if (hours < 19) {
10931                return 'petang';
10932            } else {
10933                return 'malam';
10934            }
10935        },
10936        calendar : {
10937            sameDay : '[Hari ini pukul] LT',
10938            nextDay : '[Esok pukul] LT',
10939            nextWeek : 'dddd [pukul] LT',
10940            lastDay : '[Kelmarin pukul] LT',
10941            lastWeek : 'dddd [lepas pukul] LT',
10942            sameElse : 'L'
10943        },
10944        relativeTime : {
10945            future : 'dalam %s',
10946            past : '%s yang lepas',
10947            s : 'beberapa saat',
10948            ss : '%d saat',
10949            m : 'seminit',
10950            mm : '%d minit',
10951            h : 'sejam',
10952            hh : '%d jam',
10953            d : 'sehari',
10954            dd : '%d hari',
10955            M : 'sebulan',
10956            MM : '%d bulan',
10957            y : 'setahun',
10958            yy : '%d tahun'
10959        },
10960        week : {
10961            dow : 1, // Monday is the first day of the week.
10962            doy : 7  // The week that contains Jan 1st is the first week of the year.
10963        }
10964    });
10965
10966    //! moment.js locale configuration
10967
10968    hooks.defineLocale('mt', {
10969        months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
10970        monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
10971        weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
10972        weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
10973        weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
10974        longDateFormat : {
10975            LT : 'HH:mm',
10976            LTS : 'HH:mm:ss',
10977            L : 'DD/MM/YYYY',
10978            LL : 'D MMMM YYYY',
10979            LLL : 'D MMMM YYYY HH:mm',
10980            LLLL : 'dddd, D MMMM YYYY HH:mm'
10981        },
10982        calendar : {
10983            sameDay : '[Illum fil-]LT',
10984            nextDay : '[Għada fil-]LT',
10985            nextWeek : 'dddd [fil-]LT',
10986            lastDay : '[Il-bieraħ fil-]LT',
10987            lastWeek : 'dddd [li għadda] [fil-]LT',
10988            sameElse : 'L'
10989        },
10990        relativeTime : {
10991            future : 'f’ %s',
10992            past : '%s ilu',
10993            s : 'ftit sekondi',
10994            ss : '%d sekondi',
10995            m : 'minuta',
10996            mm : '%d minuti',
10997            h : 'siegħa',
10998            hh : '%d siegħat',
10999            d : 'ġurnata',
11000            dd : '%d ġranet',
11001            M : 'xahar',
11002            MM : '%d xhur',
11003            y : 'sena',
11004            yy : '%d sni'
11005        },
11006        dayOfMonthOrdinalParse : /\d{1,2}º/,
11007        ordinal: '%dº',
11008        week : {
11009            dow : 1, // Monday is the first day of the week.
11010            doy : 4  // The week that contains Jan 4th is the first week of the year.
11011        }
11012    });
11013
11014    //! moment.js locale configuration
11015
11016    var symbolMap$b = {
11017        '1': '၁',
11018        '2': '၂',
11019        '3': '၃',
11020        '4': '၄',
11021        '5': '၅',
11022        '6': '၆',
11023        '7': '၇',
11024        '8': '၈',
11025        '9': '၉',
11026        '0': '၀'
11027    }, numberMap$a = {
11028        '၁': '1',
11029        '၂': '2',
11030        '၃': '3',
11031        '၄': '4',
11032        '၅': '5',
11033        '၆': '6',
11034        '၇': '7',
11035        '၈': '8',
11036        '၉': '9',
11037        '၀': '0'
11038    };
11039
11040    hooks.defineLocale('my', {
11041        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
11042        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
11043        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
11044        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
11045        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
11046
11047        longDateFormat: {
11048            LT: 'HH:mm',
11049            LTS: 'HH:mm:ss',
11050            L: 'DD/MM/YYYY',
11051            LL: 'D MMMM YYYY',
11052            LLL: 'D MMMM YYYY HH:mm',
11053            LLLL: 'dddd D MMMM YYYY HH:mm'
11054        },
11055        calendar: {
11056            sameDay: '[ယနေ.] LT [မှာ]',
11057            nextDay: '[မနက်ဖြန်] LT [မှာ]',
11058            nextWeek: 'dddd LT [မှာ]',
11059            lastDay: '[မနေ.က] LT [မှာ]',
11060            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
11061            sameElse: 'L'
11062        },
11063        relativeTime: {
11064            future: 'လာမည့် %s မှာ',
11065            past: 'လွန်ခဲ့သော %s က',
11066            s: 'စက္ကန်.အနည်းငယ်',
11067            ss : '%d စက္ကန့်',
11068            m: 'တစ်မိနစ်',
11069            mm: '%d မိနစ်',
11070            h: 'တစ်နာရီ',
11071            hh: '%d နာရီ',
11072            d: 'တစ်ရက်',
11073            dd: '%d ရက်',
11074            M: 'တစ်လ',
11075            MM: '%d လ',
11076            y: 'တစ်နှစ်',
11077            yy: '%d နှစ်'
11078        },
11079        preparse: function (string) {
11080            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
11081                return numberMap$a[match];
11082            });
11083        },
11084        postformat: function (string) {
11085            return string.replace(/\d/g, function (match) {
11086                return symbolMap$b[match];
11087            });
11088        },
11089        week: {
11090            dow: 1, // Monday is the first day of the week.
11091            doy: 4 // The week that contains Jan 1st is the first week of the year.
11092        }
11093    });
11094
11095    //! moment.js locale configuration
11096
11097    hooks.defineLocale('nb', {
11098        months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
11099        monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
11100        monthsParseExact : true,
11101        weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
11102        weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
11103        weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
11104        weekdaysParseExact : true,
11105        longDateFormat : {
11106            LT : 'HH:mm',
11107            LTS : 'HH:mm:ss',
11108            L : 'DD.MM.YYYY',
11109            LL : 'D. MMMM YYYY',
11110            LLL : 'D. MMMM YYYY [kl.] HH:mm',
11111            LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
11112        },
11113        calendar : {
11114            sameDay: '[i dag kl.] LT',
11115            nextDay: '[i morgen kl.] LT',
11116            nextWeek: 'dddd [kl.] LT',
11117            lastDay: '[i går kl.] LT',
11118            lastWeek: '[forrige] dddd [kl.] LT',
11119            sameElse: 'L'
11120        },
11121        relativeTime : {
11122            future : 'om %s',
11123            past : '%s siden',
11124            s : 'noen sekunder',
11125            ss : '%d sekunder',
11126            m : 'ett minutt',
11127            mm : '%d minutter',
11128            h : 'en time',
11129            hh : '%d timer',
11130            d : 'en dag',
11131            dd : '%d dager',
11132            M : 'en måned',
11133            MM : '%d måneder',
11134            y : 'ett år',
11135            yy : '%d år'
11136        },
11137        dayOfMonthOrdinalParse: /\d{1,2}\./,
11138        ordinal : '%d.',
11139        week : {
11140            dow : 1, // Monday is the first day of the week.
11141            doy : 4  // The week that contains Jan 4th is the first week of the year.
11142        }
11143    });
11144
11145    //! moment.js locale configuration
11146
11147    var symbolMap$c = {
11148        '1': '१',
11149        '2': '२',
11150        '3': '३',
11151        '4': '४',
11152        '5': '५',
11153        '6': '६',
11154        '7': '७',
11155        '8': '८',
11156        '9': '९',
11157        '0': '०'
11158    },
11159    numberMap$b = {
11160        '१': '1',
11161        '२': '2',
11162        '३': '3',
11163        '४': '4',
11164        '५': '5',
11165        '६': '6',
11166        '७': '7',
11167        '८': '8',
11168        '९': '9',
11169        '०': '0'
11170    };
11171
11172    hooks.defineLocale('ne', {
11173        months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
11174        monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
11175        monthsParseExact : true,
11176        weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
11177        weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
11178        weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
11179        weekdaysParseExact : true,
11180        longDateFormat : {
11181            LT : 'Aको h:mm बजे',
11182            LTS : 'Aको h:mm:ss बजे',
11183            L : 'DD/MM/YYYY',
11184            LL : 'D MMMM YYYY',
11185            LLL : 'D MMMM YYYY, Aको h:mm बजे',
11186            LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
11187        },
11188        preparse: function (string) {
11189            return string.replace(/[१२३४५६७८९०]/g, function (match) {
11190                return numberMap$b[match];
11191            });
11192        },
11193        postformat: function (string) {
11194            return string.replace(/\d/g, function (match) {
11195                return symbolMap$c[match];
11196            });
11197        },
11198        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
11199        meridiemHour : function (hour, meridiem) {
11200            if (hour === 12) {
11201                hour = 0;
11202            }
11203            if (meridiem === 'राति') {
11204                return hour < 4 ? hour : hour + 12;
11205            } else if (meridiem === 'बिहान') {
11206                return hour;
11207            } else if (meridiem === 'दिउँसो') {
11208                return hour >= 10 ? hour : hour + 12;
11209            } else if (meridiem === 'साँझ') {
11210                return hour + 12;
11211            }
11212        },
11213        meridiem : function (hour, minute, isLower) {
11214            if (hour < 3) {
11215                return 'राति';
11216            } else if (hour < 12) {
11217                return 'बिहान';
11218            } else if (hour < 16) {
11219                return 'दिउँसो';
11220            } else if (hour < 20) {
11221                return 'साँझ';
11222            } else {
11223                return 'राति';
11224            }
11225        },
11226        calendar : {
11227            sameDay : '[आज] LT',
11228            nextDay : '[भोलि] LT',
11229            nextWeek : '[आउँदो] dddd[,] LT',
11230            lastDay : '[हिजो] LT',
11231            lastWeek : '[गएको] dddd[,] LT',
11232            sameElse : 'L'
11233        },
11234        relativeTime : {
11235            future : '%sमा',
11236            past : '%s अगाडि',
11237            s : 'केही क्षण',
11238            ss : '%d सेकेण्ड',
11239            m : 'एक मिनेट',
11240            mm : '%d मिनेट',
11241            h : 'एक घण्टा',
11242            hh : '%d घण्टा',
11243            d : 'एक दिन',
11244            dd : '%d दिन',
11245            M : 'एक महिना',
11246            MM : '%d महिना',
11247            y : 'एक बर्ष',
11248            yy : '%d बर्ष'
11249        },
11250        week : {
11251            dow : 0, // Sunday is the first day of the week.
11252            doy : 6  // The week that contains Jan 1st is the first week of the year.
11253        }
11254    });
11255
11256    //! moment.js locale configuration
11257
11258    var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
11259        monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
11260
11261    var monthsParse$2 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
11262    var monthsRegex$3 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
11263
11264    hooks.defineLocale('nl-be', {
11265        months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
11266        monthsShort : function (m, format) {
11267            if (!m) {
11268                return monthsShortWithDots$1;
11269            } else if (/-MMM-/.test(format)) {
11270                return monthsShortWithoutDots$1[m.month()];
11271            } else {
11272                return monthsShortWithDots$1[m.month()];
11273            }
11274        },
11275
11276        monthsRegex: monthsRegex$3,
11277        monthsShortRegex: monthsRegex$3,
11278        monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
11279        monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
11280
11281        monthsParse : monthsParse$2,
11282        longMonthsParse : monthsParse$2,
11283        shortMonthsParse : monthsParse$2,
11284
11285        weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
11286        weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
11287        weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
11288        weekdaysParseExact : true,
11289        longDateFormat : {
11290            LT : 'HH:mm',
11291            LTS : 'HH:mm:ss',
11292            L : 'DD/MM/YYYY',
11293            LL : 'D MMMM YYYY',
11294            LLL : 'D MMMM YYYY HH:mm',
11295            LLLL : 'dddd D MMMM YYYY HH:mm'
11296        },
11297        calendar : {
11298            sameDay: '[vandaag om] LT',
11299            nextDay: '[morgen om] LT',
11300            nextWeek: 'dddd [om] LT',
11301            lastDay: '[gisteren om] LT',
11302            lastWeek: '[afgelopen] dddd [om] LT',
11303            sameElse: 'L'
11304        },
11305        relativeTime : {
11306            future : 'over %s',
11307            past : '%s geleden',
11308            s : 'een paar seconden',
11309            ss : '%d seconden',
11310            m : 'één minuut',
11311            mm : '%d minuten',
11312            h : 'één uur',
11313            hh : '%d uur',
11314            d : 'één dag',
11315            dd : '%d dagen',
11316            M : 'één maand',
11317            MM : '%d maanden',
11318            y : 'één jaar',
11319            yy : '%d jaar'
11320        },
11321        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
11322        ordinal : function (number) {
11323            return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
11324        },
11325        week : {
11326            dow : 1, // Monday is the first day of the week.
11327            doy : 4  // The week that contains Jan 4th is the first week of the year.
11328        }
11329    });
11330
11331    //! moment.js locale configuration
11332
11333    var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
11334        monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
11335
11336    var monthsParse$3 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
11337    var monthsRegex$4 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
11338
11339    hooks.defineLocale('nl', {
11340        months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
11341        monthsShort : function (m, format) {
11342            if (!m) {
11343                return monthsShortWithDots$2;
11344            } else if (/-MMM-/.test(format)) {
11345                return monthsShortWithoutDots$2[m.month()];
11346            } else {
11347                return monthsShortWithDots$2[m.month()];
11348            }
11349        },
11350
11351        monthsRegex: monthsRegex$4,
11352        monthsShortRegex: monthsRegex$4,
11353        monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
11354        monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
11355
11356        monthsParse : monthsParse$3,
11357        longMonthsParse : monthsParse$3,
11358        shortMonthsParse : monthsParse$3,
11359
11360        weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
11361        weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
11362        weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
11363        weekdaysParseExact : true,
11364        longDateFormat : {
11365            LT : 'HH:mm',
11366            LTS : 'HH:mm:ss',
11367            L : 'DD-MM-YYYY',
11368            LL : 'D MMMM YYYY',
11369            LLL : 'D MMMM YYYY HH:mm',
11370            LLLL : 'dddd D MMMM YYYY HH:mm'
11371        },
11372        calendar : {
11373            sameDay: '[vandaag om] LT',
11374            nextDay: '[morgen om] LT',
11375            nextWeek: 'dddd [om] LT',
11376            lastDay: '[gisteren om] LT',
11377            lastWeek: '[afgelopen] dddd [om] LT',
11378            sameElse: 'L'
11379        },
11380        relativeTime : {
11381            future : 'over %s',
11382            past : '%s geleden',
11383            s : 'een paar seconden',
11384            ss : '%d seconden',
11385            m : 'één minuut',
11386            mm : '%d minuten',
11387            h : 'één uur',
11388            hh : '%d uur',
11389            d : 'één dag',
11390            dd : '%d dagen',
11391            M : 'één maand',
11392            MM : '%d maanden',
11393            y : 'één jaar',
11394            yy : '%d jaar'
11395        },
11396        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
11397        ordinal : function (number) {
11398            return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
11399        },
11400        week : {
11401            dow : 1, // Monday is the first day of the week.
11402            doy : 4  // The week that contains Jan 4th is the first week of the year.
11403        }
11404    });
11405
11406    //! moment.js locale configuration
11407
11408    hooks.defineLocale('nn', {
11409        months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
11410        monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
11411        weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
11412        weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
11413        weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
11414        longDateFormat : {
11415            LT : 'HH:mm',
11416            LTS : 'HH:mm:ss',
11417            L : 'DD.MM.YYYY',
11418            LL : 'D. MMMM YYYY',
11419            LLL : 'D. MMMM YYYY [kl.] H:mm',
11420            LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
11421        },
11422        calendar : {
11423            sameDay: '[I dag klokka] LT',
11424            nextDay: '[I morgon klokka] LT',
11425            nextWeek: 'dddd [klokka] LT',
11426            lastDay: '[I går klokka] LT',
11427            lastWeek: '[Føregåande] dddd [klokka] LT',
11428            sameElse: 'L'
11429        },
11430        relativeTime : {
11431            future : 'om %s',
11432            past : '%s sidan',
11433            s : 'nokre sekund',
11434            ss : '%d sekund',
11435            m : 'eit minutt',
11436            mm : '%d minutt',
11437            h : 'ein time',
11438            hh : '%d timar',
11439            d : 'ein dag',
11440            dd : '%d dagar',
11441            M : 'ein månad',
11442            MM : '%d månader',
11443            y : 'eit år',
11444            yy : '%d år'
11445        },
11446        dayOfMonthOrdinalParse: /\d{1,2}\./,
11447        ordinal : '%d.',
11448        week : {
11449            dow : 1, // Monday is the first day of the week.
11450            doy : 4  // The week that contains Jan 4th is the first week of the year.
11451        }
11452    });
11453
11454    //! moment.js locale configuration
11455
11456    var symbolMap$d = {
11457        '1': 'à©§',
11458        '2': '੨',
11459        '3': 'à©©',
11460        '4': '੪',
11461        '5': 'à©«',
11462        '6': '੬',
11463        '7': 'à©­',
11464        '8': 'à©®',
11465        '9': '੯',
11466        '0': '੦'
11467    },
11468    numberMap$c = {
11469        'à©§': '1',
11470        '੨': '2',
11471        'à©©': '3',
11472        '੪': '4',
11473        'à©«': '5',
11474        '੬': '6',
11475        'à©­': '7',
11476        'à©®': '8',
11477        '੯': '9',
11478        '੦': '0'
11479    };
11480
11481    hooks.defineLocale('pa-in', {
11482        // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
11483        months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
11484        monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
11485        weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
11486        weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
11487        weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
11488        longDateFormat : {
11489            LT : 'A h:mm ਵਜੇ',
11490            LTS : 'A h:mm:ss ਵਜੇ',
11491            L : 'DD/MM/YYYY',
11492            LL : 'D MMMM YYYY',
11493            LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
11494            LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
11495        },
11496        calendar : {
11497            sameDay : '[ਅਜ] LT',
11498            nextDay : '[ਕਲ] LT',
11499            nextWeek : '[ਅਗਲਾ] dddd, LT',
11500            lastDay : '[ਕਲ] LT',
11501            lastWeek : '[ਪਿਛਲੇ] dddd, LT',
11502            sameElse : 'L'
11503        },
11504        relativeTime : {
11505            future : '%s ਵਿੱਚ',
11506            past : '%s ਪਿਛਲੇ',
11507            s : 'ਕੁਝ ਸਕਿੰਟ',
11508            ss : '%d ਸਕਿੰਟ',
11509            m : 'ਇਕ ਮਿੰਟ',
11510            mm : '%d ਮਿੰਟ',
11511            h : 'ਇੱਕ ਘੰਟਾ',
11512            hh : '%d ਘੰਟੇ',
11513            d : 'ਇੱਕ ਦਿਨ',
11514            dd : '%d ਦਿਨ',
11515            M : 'ਇੱਕ ਮਹੀਨਾ',
11516            MM : '%d ਮਹੀਨੇ',
11517            y : 'ਇੱਕ ਸਾਲ',
11518            yy : '%d ਸਾਲ'
11519        },
11520        preparse: function (string) {
11521            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
11522                return numberMap$c[match];
11523            });
11524        },
11525        postformat: function (string) {
11526            return string.replace(/\d/g, function (match) {
11527                return symbolMap$d[match];
11528            });
11529        },
11530        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
11531        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
11532        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
11533        meridiemHour : function (hour, meridiem) {
11534            if (hour === 12) {
11535                hour = 0;
11536            }
11537            if (meridiem === 'ਰਾਤ') {
11538                return hour < 4 ? hour : hour + 12;
11539            } else if (meridiem === 'ਸਵੇਰ') {
11540                return hour;
11541            } else if (meridiem === 'ਦੁਪਹਿਰ') {
11542                return hour >= 10 ? hour : hour + 12;
11543            } else if (meridiem === 'ਸ਼ਾਮ') {
11544                return hour + 12;
11545            }
11546        },
11547        meridiem : function (hour, minute, isLower) {
11548            if (hour < 4) {
11549                return 'ਰਾਤ';
11550            } else if (hour < 10) {
11551                return 'ਸਵੇਰ';
11552            } else if (hour < 17) {
11553                return 'ਦੁਪਹਿਰ';
11554            } else if (hour < 20) {
11555                return 'ਸ਼ਾਮ';
11556            } else {
11557                return 'ਰਾਤ';
11558            }
11559        },
11560        week : {
11561            dow : 0, // Sunday is the first day of the week.
11562            doy : 6  // The week that contains Jan 1st is the first week of the year.
11563        }
11564    });
11565
11566    //! moment.js locale configuration
11567
11568    var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
11569        monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
11570    function plural$3(n) {
11571        return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
11572    }
11573    function translate$8(number, withoutSuffix, key) {
11574        var result = number + ' ';
11575        switch (key) {
11576            case 'ss':
11577                return result + (plural$3(number) ? 'sekundy' : 'sekund');
11578            case 'm':
11579                return withoutSuffix ? 'minuta' : 'minutę';
11580            case 'mm':
11581                return result + (plural$3(number) ? 'minuty' : 'minut');
11582            case 'h':
11583                return withoutSuffix  ? 'godzina'  : 'godzinę';
11584            case 'hh':
11585                return result + (plural$3(number) ? 'godziny' : 'godzin');
11586            case 'MM':
11587                return result + (plural$3(number) ? 'miesiące' : 'miesięcy');
11588            case 'yy':
11589                return result + (plural$3(number) ? 'lata' : 'lat');
11590        }
11591    }
11592
11593    hooks.defineLocale('pl', {
11594        months : function (momentToFormat, format) {
11595            if (!momentToFormat) {
11596                return monthsNominative;
11597            } else if (format === '') {
11598                // Hack: if format empty we know this is used to generate
11599                // RegExp by moment. Give then back both valid forms of months
11600                // in RegExp ready format.
11601                return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
11602            } else if (/D MMMM/.test(format)) {
11603                return monthsSubjective[momentToFormat.month()];
11604            } else {
11605                return monthsNominative[momentToFormat.month()];
11606            }
11607        },
11608        monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
11609        weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
11610        weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
11611        weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
11612        longDateFormat : {
11613            LT : 'HH:mm',
11614            LTS : 'HH:mm:ss',
11615            L : 'DD.MM.YYYY',
11616            LL : 'D MMMM YYYY',
11617            LLL : 'D MMMM YYYY HH:mm',
11618            LLLL : 'dddd, D MMMM YYYY HH:mm'
11619        },
11620        calendar : {
11621            sameDay: '[Dziś o] LT',
11622            nextDay: '[Jutro o] LT',
11623            nextWeek: function () {
11624                switch (this.day()) {
11625                    case 0:
11626                        return '[W niedzielę o] LT';
11627
11628                    case 2:
11629                        return '[We wtorek o] LT';
11630
11631                    case 3:
11632                        return '[W środę o] LT';
11633
11634                    case 6:
11635                        return '[W sobotę o] LT';
11636
11637                    default:
11638                        return '[W] dddd [o] LT';
11639                }
11640            },
11641            lastDay: '[Wczoraj o] LT',
11642            lastWeek: function () {
11643                switch (this.day()) {
11644                    case 0:
11645                        return '[W zeszłą niedzielę o] LT';
11646                    case 3:
11647                        return '[W zeszłą środę o] LT';
11648                    case 6:
11649                        return '[W zeszłą sobotę o] LT';
11650                    default:
11651                        return '[W zeszły] dddd [o] LT';
11652                }
11653            },
11654            sameElse: 'L'
11655        },
11656        relativeTime : {
11657            future : 'za %s',
11658            past : '%s temu',
11659            s : 'kilka sekund',
11660            ss : translate$8,
11661            m : translate$8,
11662            mm : translate$8,
11663            h : translate$8,
11664            hh : translate$8,
11665            d : '1 dzień',
11666            dd : '%d dni',
11667            M : 'miesiąc',
11668            MM : translate$8,
11669            y : 'rok',
11670            yy : translate$8
11671        },
11672        dayOfMonthOrdinalParse: /\d{1,2}\./,
11673        ordinal : '%d.',
11674        week : {
11675            dow : 1, // Monday is the first day of the week.
11676            doy : 4  // The week that contains Jan 4th is the first week of the year.
11677        }
11678    });
11679
11680    //! moment.js locale configuration
11681
11682    hooks.defineLocale('pt-br', {
11683        months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
11684        monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
11685        weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
11686        weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
11687        weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
11688        weekdaysParseExact : true,
11689        longDateFormat : {
11690            LT : 'HH:mm',
11691            LTS : 'HH:mm:ss',
11692            L : 'DD/MM/YYYY',
11693            LL : 'D [de] MMMM [de] YYYY',
11694            LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
11695            LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
11696        },
11697        calendar : {
11698            sameDay: '[Hoje às] LT',
11699            nextDay: '[Amanhã às] LT',
11700            nextWeek: 'dddd [às] LT',
11701            lastDay: '[Ontem às] LT',
11702            lastWeek: function () {
11703                return (this.day() === 0 || this.day() === 6) ?
11704                    '[Último] dddd [às] LT' : // Saturday + Sunday
11705                    '[Última] dddd [às] LT'; // Monday - Friday
11706            },
11707            sameElse: 'L'
11708        },
11709        relativeTime : {
11710            future : 'em %s',
11711            past : 'há %s',
11712            s : 'poucos segundos',
11713            ss : '%d segundos',
11714            m : 'um minuto',
11715            mm : '%d minutos',
11716            h : 'uma hora',
11717            hh : '%d horas',
11718            d : 'um dia',
11719            dd : '%d dias',
11720            M : 'um mês',
11721            MM : '%d meses',
11722            y : 'um ano',
11723            yy : '%d anos'
11724        },
11725        dayOfMonthOrdinalParse: /\d{1,2}º/,
11726        ordinal : '%dº'
11727    });
11728
11729    //! moment.js locale configuration
11730
11731    hooks.defineLocale('pt', {
11732        months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
11733        monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
11734        weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
11735        weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
11736        weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
11737        weekdaysParseExact : true,
11738        longDateFormat : {
11739            LT : 'HH:mm',
11740            LTS : 'HH:mm:ss',
11741            L : 'DD/MM/YYYY',
11742            LL : 'D [de] MMMM [de] YYYY',
11743            LLL : 'D [de] MMMM [de] YYYY HH:mm',
11744            LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
11745        },
11746        calendar : {
11747            sameDay: '[Hoje às] LT',
11748            nextDay: '[Amanhã às] LT',
11749            nextWeek: 'dddd [às] LT',
11750            lastDay: '[Ontem às] LT',
11751            lastWeek: function () {
11752                return (this.day() === 0 || this.day() === 6) ?
11753                    '[Último] dddd [às] LT' : // Saturday + Sunday
11754                    '[Última] dddd [às] LT'; // Monday - Friday
11755            },
11756            sameElse: 'L'
11757        },
11758        relativeTime : {
11759            future : 'em %s',
11760            past : 'há %s',
11761            s : 'segundos',
11762            ss : '%d segundos',
11763            m : 'um minuto',
11764            mm : '%d minutos',
11765            h : 'uma hora',
11766            hh : '%d horas',
11767            d : 'um dia',
11768            dd : '%d dias',
11769            M : 'um mês',
11770            MM : '%d meses',
11771            y : 'um ano',
11772            yy : '%d anos'
11773        },
11774        dayOfMonthOrdinalParse: /\d{1,2}º/,
11775        ordinal : '%dº',
11776        week : {
11777            dow : 1, // Monday is the first day of the week.
11778            doy : 4  // The week that contains Jan 4th is the first week of the year.
11779        }
11780    });
11781
11782    //! moment.js locale configuration
11783
11784    function relativeTimeWithPlural$2(number, withoutSuffix, key) {
11785        var format = {
11786                'ss': 'secunde',
11787                'mm': 'minute',
11788                'hh': 'ore',
11789                'dd': 'zile',
11790                'MM': 'luni',
11791                'yy': 'ani'
11792            },
11793            separator = ' ';
11794        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
11795            separator = ' de ';
11796        }
11797        return number + separator + format[key];
11798    }
11799
11800    hooks.defineLocale('ro', {
11801        months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
11802        monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
11803        monthsParseExact: true,
11804        weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
11805        weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
11806        weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
11807        longDateFormat : {
11808            LT : 'H:mm',
11809            LTS : 'H:mm:ss',
11810            L : 'DD.MM.YYYY',
11811            LL : 'D MMMM YYYY',
11812            LLL : 'D MMMM YYYY H:mm',
11813            LLLL : 'dddd, D MMMM YYYY H:mm'
11814        },
11815        calendar : {
11816            sameDay: '[azi la] LT',
11817            nextDay: '[mâine la] LT',
11818            nextWeek: 'dddd [la] LT',
11819            lastDay: '[ieri la] LT',
11820            lastWeek: '[fosta] dddd [la] LT',
11821            sameElse: 'L'
11822        },
11823        relativeTime : {
11824            future : 'peste %s',
11825            past : '%s în urmă',
11826            s : 'câteva secunde',
11827            ss : relativeTimeWithPlural$2,
11828            m : 'un minut',
11829            mm : relativeTimeWithPlural$2,
11830            h : 'o oră',
11831            hh : relativeTimeWithPlural$2,
11832            d : 'o zi',
11833            dd : relativeTimeWithPlural$2,
11834            M : 'o lună',
11835            MM : relativeTimeWithPlural$2,
11836            y : 'un an',
11837            yy : relativeTimeWithPlural$2
11838        },
11839        week : {
11840            dow : 1, // Monday is the first day of the week.
11841            doy : 7  // The week that contains Jan 1st is the first week of the year.
11842        }
11843    });
11844
11845    //! moment.js locale configuration
11846
11847    function plural$4(word, num) {
11848        var forms = word.split('_');
11849        return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
11850    }
11851    function relativeTimeWithPlural$3(number, withoutSuffix, key) {
11852        var format = {
11853            'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
11854            'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
11855            'hh': 'час_часа_часов',
11856            'dd': 'день_дня_дней',
11857            'MM': 'месяц_месяца_месяцев',
11858            'yy': 'год_года_лет'
11859        };
11860        if (key === 'm') {
11861            return withoutSuffix ? 'минута' : 'минуту';
11862        }
11863        else {
11864            return number + ' ' + plural$4(format[key], +number);
11865        }
11866    }
11867    var monthsParse$4 = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
11868
11869    // http://new.gramota.ru/spravka/rules/139-prop : § 103
11870    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
11871    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
11872    hooks.defineLocale('ru', {
11873        months : {
11874            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
11875            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
11876        },
11877        monthsShort : {
11878            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
11879            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
11880            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
11881        },
11882        weekdays : {
11883            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
11884            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
11885            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
11886        },
11887        weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
11888        weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
11889        monthsParse : monthsParse$4,
11890        longMonthsParse : monthsParse$4,
11891        shortMonthsParse : monthsParse$4,
11892
11893        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
11894        monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
11895
11896        // копия предыдущего
11897        monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
11898
11899        // полные названия с падежами
11900        monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
11901
11902        // Выражение, которое соотвествует только сокращённым формам
11903        monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
11904        longDateFormat : {
11905            LT : 'H:mm',
11906            LTS : 'H:mm:ss',
11907            L : 'DD.MM.YYYY',
11908            LL : 'D MMMM YYYY г.',
11909            LLL : 'D MMMM YYYY г., H:mm',
11910            LLLL : 'dddd, D MMMM YYYY г., H:mm'
11911        },
11912        calendar : {
11913            sameDay: '[Сегодня, в] LT',
11914            nextDay: '[Завтра, в] LT',
11915            lastDay: '[Вчера, в] LT',
11916            nextWeek: function (now) {
11917                if (now.week() !== this.week()) {
11918                    switch (this.day()) {
11919                        case 0:
11920                            return '[В следующее] dddd, [в] LT';
11921                        case 1:
11922                        case 2:
11923                        case 4:
11924                            return '[В следующий] dddd, [в] LT';
11925                        case 3:
11926                        case 5:
11927                        case 6:
11928                            return '[В следующую] dddd, [в] LT';
11929                    }
11930                } else {
11931                    if (this.day() === 2) {
11932                        return '[Во] dddd, [в] LT';
11933                    } else {
11934                        return '[В] dddd, [в] LT';
11935                    }
11936                }
11937            },
11938            lastWeek: function (now) {
11939                if (now.week() !== this.week()) {
11940                    switch (this.day()) {
11941                        case 0:
11942                            return '[В прошлое] dddd, [в] LT';
11943                        case 1:
11944                        case 2:
11945                        case 4:
11946                            return '[В прошлый] dddd, [в] LT';
11947                        case 3:
11948                        case 5:
11949                        case 6:
11950                            return '[В прошлую] dddd, [в] LT';
11951                    }
11952                } else {
11953                    if (this.day() === 2) {
11954                        return '[Во] dddd, [в] LT';
11955                    } else {
11956                        return '[В] dddd, [в] LT';
11957                    }
11958                }
11959            },
11960            sameElse: 'L'
11961        },
11962        relativeTime : {
11963            future : 'через %s',
11964            past : '%s назад',
11965            s : 'несколько секунд',
11966            ss : relativeTimeWithPlural$3,
11967            m : relativeTimeWithPlural$3,
11968            mm : relativeTimeWithPlural$3,
11969            h : 'час',
11970            hh : relativeTimeWithPlural$3,
11971            d : 'день',
11972            dd : relativeTimeWithPlural$3,
11973            M : 'месяц',
11974            MM : relativeTimeWithPlural$3,
11975            y : 'год',
11976            yy : relativeTimeWithPlural$3
11977        },
11978        meridiemParse: /ночи|утра|дня|вечера/i,
11979        isPM : function (input) {
11980            return /^(дня|вечера)$/.test(input);
11981        },
11982        meridiem : function (hour, minute, isLower) {
11983            if (hour < 4) {
11984                return 'ночи';
11985            } else if (hour < 12) {
11986                return 'утра';
11987            } else if (hour < 17) {
11988                return 'дня';
11989            } else {
11990                return 'вечера';
11991            }
11992        },
11993        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
11994        ordinal: function (number, period) {
11995            switch (period) {
11996                case 'M':
11997                case 'd':
11998                case 'DDD':
11999                    return number + '-й';
12000                case 'D':
12001                    return number + '-го';
12002                case 'w':
12003                case 'W':
12004                    return number + '-я';
12005                default:
12006                    return number;
12007            }
12008        },
12009        week : {
12010            dow : 1, // Monday is the first day of the week.
12011            doy : 4  // The week that contains Jan 4th is the first week of the year.
12012        }
12013    });
12014
12015    //! moment.js locale configuration
12016
12017    var months$6 = [
12018        'جنوري',
12019        'فيبروري',
12020        'مارچ',
12021        'اپريل',
12022        'مئي',
12023        'جون',
12024        'جولاءِ',
12025        'آگسٽ',
12026        'سيپٽمبر',
12027        'آڪٽوبر',
12028        'نومبر',
12029        'ڊسمبر'
12030    ];
12031    var days$1 = [
12032        'آچر',
12033        'سومر',
12034        'اڱارو',
12035        'اربع',
12036        'خميس',
12037        'جمع',
12038        'ڇنڇر'
12039    ];
12040
12041    hooks.defineLocale('sd', {
12042        months : months$6,
12043        monthsShort : months$6,
12044        weekdays : days$1,
12045        weekdaysShort : days$1,
12046        weekdaysMin : days$1,
12047        longDateFormat : {
12048            LT : 'HH:mm',
12049            LTS : 'HH:mm:ss',
12050            L : 'DD/MM/YYYY',
12051            LL : 'D MMMM YYYY',
12052            LLL : 'D MMMM YYYY HH:mm',
12053            LLLL : 'dddd، D MMMM YYYY HH:mm'
12054        },
12055        meridiemParse: /صبح|شام/,
12056        isPM : function (input) {
12057            return 'شام' === input;
12058        },
12059        meridiem : function (hour, minute, isLower) {
12060            if (hour < 12) {
12061                return 'صبح';
12062            }
12063            return 'شام';
12064        },
12065        calendar : {
12066            sameDay : '[اڄ] LT',
12067            nextDay : '[سڀاڻي] LT',
12068            nextWeek : 'dddd [اڳين هفتي تي] LT',
12069            lastDay : '[ڪالهه] LT',
12070            lastWeek : '[گزريل هفتي] dddd [تي] LT',
12071            sameElse : 'L'
12072        },
12073        relativeTime : {
12074            future : '%s پوء',
12075            past : '%s اڳ',
12076            s : 'چند سيڪنڊ',
12077            ss : '%d سيڪنڊ',
12078            m : 'هڪ منٽ',
12079            mm : '%d منٽ',
12080            h : 'هڪ ڪلاڪ',
12081            hh : '%d ڪلاڪ',
12082            d : 'هڪ ڏينهن',
12083            dd : '%d ڏينهن',
12084            M : 'هڪ مهينو',
12085            MM : '%d مهينا',
12086            y : 'هڪ سال',
12087            yy : '%d سال'
12088        },
12089        preparse: function (string) {
12090            return string.replace(/،/g, ',');
12091        },
12092        postformat: function (string) {
12093            return string.replace(/,/g, '،');
12094        },
12095        week : {
12096            dow : 1, // Monday is the first day of the week.
12097            doy : 4  // The week that contains Jan 4th is the first week of the year.
12098        }
12099    });
12100
12101    //! moment.js locale configuration
12102
12103    hooks.defineLocale('se', {
12104        months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
12105        monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
12106        weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
12107        weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
12108        weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
12109        longDateFormat : {
12110            LT : 'HH:mm',
12111            LTS : 'HH:mm:ss',
12112            L : 'DD.MM.YYYY',
12113            LL : 'MMMM D. [b.] YYYY',
12114            LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
12115            LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
12116        },
12117        calendar : {
12118            sameDay: '[otne ti] LT',
12119            nextDay: '[ihttin ti] LT',
12120            nextWeek: 'dddd [ti] LT',
12121            lastDay: '[ikte ti] LT',
12122            lastWeek: '[ovddit] dddd [ti] LT',
12123            sameElse: 'L'
12124        },
12125        relativeTime : {
12126            future : '%s geažes',
12127            past : 'maŋit %s',
12128            s : 'moadde sekunddat',
12129            ss: '%d sekunddat',
12130            m : 'okta minuhta',
12131            mm : '%d minuhtat',
12132            h : 'okta diimmu',
12133            hh : '%d diimmut',
12134            d : 'okta beaivi',
12135            dd : '%d beaivvit',
12136            M : 'okta mánnu',
12137            MM : '%d mánut',
12138            y : 'okta jahki',
12139            yy : '%d jagit'
12140        },
12141        dayOfMonthOrdinalParse: /\d{1,2}\./,
12142        ordinal : '%d.',
12143        week : {
12144            dow : 1, // Monday is the first day of the week.
12145            doy : 4  // The week that contains Jan 4th is the first week of the year.
12146        }
12147    });
12148
12149    //! moment.js locale configuration
12150
12151    /*jshint -W100*/
12152    hooks.defineLocale('si', {
12153        months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
12154        monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
12155        weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
12156        weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
12157        weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
12158        weekdaysParseExact : true,
12159        longDateFormat : {
12160            LT : 'a h:mm',
12161            LTS : 'a h:mm:ss',
12162            L : 'YYYY/MM/DD',
12163            LL : 'YYYY MMMM D',
12164            LLL : 'YYYY MMMM D, a h:mm',
12165            LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
12166        },
12167        calendar : {
12168            sameDay : '[අද] LT[ට]',
12169            nextDay : '[හෙට] LT[ට]',
12170            nextWeek : 'dddd LT[à¶§]',
12171            lastDay : '[ඊයේ] LT[ට]',
12172            lastWeek : '[පසුගිය] dddd LT[ට]',
12173            sameElse : 'L'
12174        },
12175        relativeTime : {
12176            future : '%sකින්',
12177            past : '%sකට පෙර',
12178            s : 'තත්පර කිහිපය',
12179            ss : 'තත්පර %d',
12180            m : 'මිනිත්තුව',
12181            mm : 'මිනිත්තු %d',
12182            h : 'පැය',
12183            hh : 'පැය %d',
12184            d : 'දිනය',
12185            dd : 'දින %d',
12186            M : 'මාසය',
12187            MM : 'මාස %d',
12188            y : 'වසර',
12189            yy : 'වසර %d'
12190        },
12191        dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
12192        ordinal : function (number) {
12193            return number + ' වැනි';
12194        },
12195        meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
12196        isPM : function (input) {
12197            return input === 'ප.ව.' || input === 'පස් වරු';
12198        },
12199        meridiem : function (hours, minutes, isLower) {
12200            if (hours > 11) {
12201                return isLower ? 'ප.ව.' : 'පස් වරු';
12202            } else {
12203                return isLower ? 'පෙ.ව.' : 'පෙර වරු';
12204            }
12205        }
12206    });
12207
12208    //! moment.js locale configuration
12209
12210    var months$7 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
12211        monthsShort$5 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
12212    function plural$5(n) {
12213        return (n > 1) && (n < 5);
12214    }
12215    function translate$9(number, withoutSuffix, key, isFuture) {
12216        var result = number + ' ';
12217        switch (key) {
12218            case 's':  // a few seconds / in a few seconds / a few seconds ago
12219                return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
12220            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
12221                if (withoutSuffix || isFuture) {
12222                    return result + (plural$5(number) ? 'sekundy' : 'sekúnd');
12223                } else {
12224                    return result + 'sekundami';
12225                }
12226                break;
12227            case 'm':  // a minute / in a minute / a minute ago
12228                return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
12229            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
12230                if (withoutSuffix || isFuture) {
12231                    return result + (plural$5(number) ? 'minúty' : 'minút');
12232                } else {
12233                    return result + 'minútami';
12234                }
12235                break;
12236            case 'h':  // an hour / in an hour / an hour ago
12237                return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
12238            case 'hh': // 9 hours / in 9 hours / 9 hours ago
12239                if (withoutSuffix || isFuture) {
12240                    return result + (plural$5(number) ? 'hodiny' : 'hodín');
12241                } else {
12242                    return result + 'hodinami';
12243                }
12244                break;
12245            case 'd':  // a day / in a day / a day ago
12246                return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
12247            case 'dd': // 9 days / in 9 days / 9 days ago
12248                if (withoutSuffix || isFuture) {
12249                    return result + (plural$5(number) ? 'dni' : 'dní');
12250                } else {
12251                    return result + 'dňami';
12252                }
12253                break;
12254            case 'M':  // a month / in a month / a month ago
12255                return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
12256            case 'MM': // 9 months / in 9 months / 9 months ago
12257                if (withoutSuffix || isFuture) {
12258                    return result + (plural$5(number) ? 'mesiace' : 'mesiacov');
12259                } else {
12260                    return result + 'mesiacmi';
12261                }
12262                break;
12263            case 'y':  // a year / in a year / a year ago
12264                return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
12265            case 'yy': // 9 years / in 9 years / 9 years ago
12266                if (withoutSuffix || isFuture) {
12267                    return result + (plural$5(number) ? 'roky' : 'rokov');
12268                } else {
12269                    return result + 'rokmi';
12270                }
12271                break;
12272        }
12273    }
12274
12275    hooks.defineLocale('sk', {
12276        months : months$7,
12277        monthsShort : monthsShort$5,
12278        weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
12279        weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
12280        weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
12281        longDateFormat : {
12282            LT: 'H:mm',
12283            LTS : 'H:mm:ss',
12284            L : 'DD.MM.YYYY',
12285            LL : 'D. MMMM YYYY',
12286            LLL : 'D. MMMM YYYY H:mm',
12287            LLLL : 'dddd D. MMMM YYYY H:mm'
12288        },
12289        calendar : {
12290            sameDay: '[dnes o] LT',
12291            nextDay: '[zajtra o] LT',
12292            nextWeek: function () {
12293                switch (this.day()) {
12294                    case 0:
12295                        return '[v nedeľu o] LT';
12296                    case 1:
12297                    case 2:
12298                        return '[v] dddd [o] LT';
12299                    case 3:
12300                        return '[v stredu o] LT';
12301                    case 4:
12302                        return '[vo štvrtok o] LT';
12303                    case 5:
12304                        return '[v piatok o] LT';
12305                    case 6:
12306                        return '[v sobotu o] LT';
12307                }
12308            },
12309            lastDay: '[včera o] LT',
12310            lastWeek: function () {
12311                switch (this.day()) {
12312                    case 0:
12313                        return '[minulú nedeľu o] LT';
12314                    case 1:
12315                    case 2:
12316                        return '[minulý] dddd [o] LT';
12317                    case 3:
12318                        return '[minulú stredu o] LT';
12319                    case 4:
12320                    case 5:
12321                        return '[minulý] dddd [o] LT';
12322                    case 6:
12323                        return '[minulú sobotu o] LT';
12324                }
12325            },
12326            sameElse: 'L'
12327        },
12328        relativeTime : {
12329            future : 'za %s',
12330            past : 'pred %s',
12331            s : translate$9,
12332            ss : translate$9,
12333            m : translate$9,
12334            mm : translate$9,
12335            h : translate$9,
12336            hh : translate$9,
12337            d : translate$9,
12338            dd : translate$9,
12339            M : translate$9,
12340            MM : translate$9,
12341            y : translate$9,
12342            yy : translate$9
12343        },
12344        dayOfMonthOrdinalParse: /\d{1,2}\./,
12345        ordinal : '%d.',
12346        week : {
12347            dow : 1, // Monday is the first day of the week.
12348            doy : 4  // The week that contains Jan 4th is the first week of the year.
12349        }
12350    });
12351
12352    //! moment.js locale configuration
12353
12354    function processRelativeTime$6(number, withoutSuffix, key, isFuture) {
12355        var result = number + ' ';
12356        switch (key) {
12357            case 's':
12358                return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
12359            case 'ss':
12360                if (number === 1) {
12361                    result += withoutSuffix ? 'sekundo' : 'sekundi';
12362                } else if (number === 2) {
12363                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
12364                } else if (number < 5) {
12365                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
12366                } else {
12367                    result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
12368                }
12369                return result;
12370            case 'm':
12371                return withoutSuffix ? 'ena minuta' : 'eno minuto';
12372            case 'mm':
12373                if (number === 1) {
12374                    result += withoutSuffix ? 'minuta' : 'minuto';
12375                } else if (number === 2) {
12376                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
12377                } else if (number < 5) {
12378                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';
12379                } else {
12380                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';
12381                }
12382                return result;
12383            case 'h':
12384                return withoutSuffix ? 'ena ura' : 'eno uro';
12385            case 'hh':
12386                if (number === 1) {
12387                    result += withoutSuffix ? 'ura' : 'uro';
12388                } else if (number === 2) {
12389                    result += withoutSuffix || isFuture ? 'uri' : 'urama';
12390                } else if (number < 5) {
12391                    result += withoutSuffix || isFuture ? 'ure' : 'urami';
12392                } else {
12393                    result += withoutSuffix || isFuture ? 'ur' : 'urami';
12394                }
12395                return result;
12396            case 'd':
12397                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
12398            case 'dd':
12399                if (number === 1) {
12400                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';
12401                } else if (number === 2) {
12402                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
12403                } else {
12404                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
12405                }
12406                return result;
12407            case 'M':
12408                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
12409            case 'MM':
12410                if (number === 1) {
12411                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
12412                } else if (number === 2) {
12413                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
12414                } else if (number < 5) {
12415                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
12416                } else {
12417                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
12418                }
12419                return result;
12420            case 'y':
12421                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
12422            case 'yy':
12423                if (number === 1) {
12424                    result += withoutSuffix || isFuture ? 'leto' : 'letom';
12425                } else if (number === 2) {
12426                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';
12427                } else if (number < 5) {
12428                    result += withoutSuffix || isFuture ? 'leta' : 'leti';
12429                } else {
12430                    result += withoutSuffix || isFuture ? 'let' : 'leti';
12431                }
12432                return result;
12433        }
12434    }
12435
12436    hooks.defineLocale('sl', {
12437        months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
12438        monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
12439        monthsParseExact: true,
12440        weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
12441        weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
12442        weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
12443        weekdaysParseExact : true,
12444        longDateFormat : {
12445            LT : 'H:mm',
12446            LTS : 'H:mm:ss',
12447            L : 'DD.MM.YYYY',
12448            LL : 'D. MMMM YYYY',
12449            LLL : 'D. MMMM YYYY H:mm',
12450            LLLL : 'dddd, D. MMMM YYYY H:mm'
12451        },
12452        calendar : {
12453            sameDay  : '[danes ob] LT',
12454            nextDay  : '[jutri ob] LT',
12455
12456            nextWeek : function () {
12457                switch (this.day()) {
12458                    case 0:
12459                        return '[v] [nedeljo] [ob] LT';
12460                    case 3:
12461                        return '[v] [sredo] [ob] LT';
12462                    case 6:
12463                        return '[v] [soboto] [ob] LT';
12464                    case 1:
12465                    case 2:
12466                    case 4:
12467                    case 5:
12468                        return '[v] dddd [ob] LT';
12469                }
12470            },
12471            lastDay  : '[včeraj ob] LT',
12472            lastWeek : function () {
12473                switch (this.day()) {
12474                    case 0:
12475                        return '[prejšnjo] [nedeljo] [ob] LT';
12476                    case 3:
12477                        return '[prejšnjo] [sredo] [ob] LT';
12478                    case 6:
12479                        return '[prejšnjo] [soboto] [ob] LT';
12480                    case 1:
12481                    case 2:
12482                    case 4:
12483                    case 5:
12484                        return '[prejšnji] dddd [ob] LT';
12485                }
12486            },
12487            sameElse : 'L'
12488        },
12489        relativeTime : {
12490            future : 'čez %s',
12491            past   : 'pred %s',
12492            s      : processRelativeTime$6,
12493            ss     : processRelativeTime$6,
12494            m      : processRelativeTime$6,
12495            mm     : processRelativeTime$6,
12496            h      : processRelativeTime$6,
12497            hh     : processRelativeTime$6,
12498            d      : processRelativeTime$6,
12499            dd     : processRelativeTime$6,
12500            M      : processRelativeTime$6,
12501            MM     : processRelativeTime$6,
12502            y      : processRelativeTime$6,
12503            yy     : processRelativeTime$6
12504        },
12505        dayOfMonthOrdinalParse: /\d{1,2}\./,
12506        ordinal : '%d.',
12507        week : {
12508            dow : 1, // Monday is the first day of the week.
12509            doy : 7  // The week that contains Jan 1st is the first week of the year.
12510        }
12511    });
12512
12513    //! moment.js locale configuration
12514
12515    hooks.defineLocale('sq', {
12516        months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
12517        monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
12518        weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
12519        weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
12520        weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
12521        weekdaysParseExact : true,
12522        meridiemParse: /PD|MD/,
12523        isPM: function (input) {
12524            return input.charAt(0) === 'M';
12525        },
12526        meridiem : function (hours, minutes, isLower) {
12527            return hours < 12 ? 'PD' : 'MD';
12528        },
12529        longDateFormat : {
12530            LT : 'HH:mm',
12531            LTS : 'HH:mm:ss',
12532            L : 'DD/MM/YYYY',
12533            LL : 'D MMMM YYYY',
12534            LLL : 'D MMMM YYYY HH:mm',
12535            LLLL : 'dddd, D MMMM YYYY HH:mm'
12536        },
12537        calendar : {
12538            sameDay : '[Sot në] LT',
12539            nextDay : '[Nesër në] LT',
12540            nextWeek : 'dddd [në] LT',
12541            lastDay : '[Dje në] LT',
12542            lastWeek : 'dddd [e kaluar në] LT',
12543            sameElse : 'L'
12544        },
12545        relativeTime : {
12546            future : 'në %s',
12547            past : '%s më parë',
12548            s : 'disa sekonda',
12549            ss : '%d sekonda',
12550            m : 'një minutë',
12551            mm : '%d minuta',
12552            h : 'një orë',
12553            hh : '%d orë',
12554            d : 'një ditë',
12555            dd : '%d ditë',
12556            M : 'një muaj',
12557            MM : '%d muaj',
12558            y : 'një vit',
12559            yy : '%d vite'
12560        },
12561        dayOfMonthOrdinalParse: /\d{1,2}\./,
12562        ordinal : '%d.',
12563        week : {
12564            dow : 1, // Monday is the first day of the week.
12565            doy : 4  // The week that contains Jan 4th is the first week of the year.
12566        }
12567    });
12568
12569    //! moment.js locale configuration
12570
12571    var translator$1 = {
12572        words: { //Different grammatical cases
12573            ss: ['секунда', 'секунде', 'секунди'],
12574            m: ['један минут', 'једне минуте'],
12575            mm: ['минут', 'минуте', 'минута'],
12576            h: ['један сат', 'једног сата'],
12577            hh: ['сат', 'сата', 'сати'],
12578            dd: ['дан', 'дана', 'дана'],
12579            MM: ['месец', 'месеца', 'месеци'],
12580            yy: ['година', 'године', 'година']
12581        },
12582        correctGrammaticalCase: function (number, wordKey) {
12583            return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
12584        },
12585        translate: function (number, withoutSuffix, key) {
12586            var wordKey = translator$1.words[key];
12587            if (key.length === 1) {
12588                return withoutSuffix ? wordKey[0] : wordKey[1];
12589            } else {
12590                return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey);
12591            }
12592        }
12593    };
12594
12595    hooks.defineLocale('sr-cyrl', {
12596        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
12597        monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
12598        monthsParseExact: true,
12599        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
12600        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
12601        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
12602        weekdaysParseExact : true,
12603        longDateFormat: {
12604            LT: 'H:mm',
12605            LTS : 'H:mm:ss',
12606            L: 'DD.MM.YYYY',
12607            LL: 'D. MMMM YYYY',
12608            LLL: 'D. MMMM YYYY H:mm',
12609            LLLL: 'dddd, D. MMMM YYYY H:mm'
12610        },
12611        calendar: {
12612            sameDay: '[данас у] LT',
12613            nextDay: '[сутра у] LT',
12614            nextWeek: function () {
12615                switch (this.day()) {
12616                    case 0:
12617                        return '[у] [недељу] [у] LT';
12618                    case 3:
12619                        return '[у] [среду] [у] LT';
12620                    case 6:
12621                        return '[у] [суботу] [у] LT';
12622                    case 1:
12623                    case 2:
12624                    case 4:
12625                    case 5:
12626                        return '[у] dddd [у] LT';
12627                }
12628            },
12629            lastDay  : '[јуче у] LT',
12630            lastWeek : function () {
12631                var lastWeekDays = [
12632                    '[прошле] [недеље] [у] LT',
12633                    '[прошлог] [понедељка] [у] LT',
12634                    '[прошлог] [уторка] [у] LT',
12635                    '[прошле] [среде] [у] LT',
12636                    '[прошлог] [четвртка] [у] LT',
12637                    '[прошлог] [петка] [у] LT',
12638                    '[прошле] [суботе] [у] LT'
12639                ];
12640                return lastWeekDays[this.day()];
12641            },
12642            sameElse : 'L'
12643        },
12644        relativeTime : {
12645            future : 'за %s',
12646            past   : 'пре %s',
12647            s      : 'неколико секунди',
12648            ss     : translator$1.translate,
12649            m      : translator$1.translate,
12650            mm     : translator$1.translate,
12651            h      : translator$1.translate,
12652            hh     : translator$1.translate,
12653            d      : 'дан',
12654            dd     : translator$1.translate,
12655            M      : 'месец',
12656            MM     : translator$1.translate,
12657            y      : 'годину',
12658            yy     : translator$1.translate
12659        },
12660        dayOfMonthOrdinalParse: /\d{1,2}\./,
12661        ordinal : '%d.',
12662        week : {
12663            dow : 1, // Monday is the first day of the week.
12664            doy : 7  // The week that contains Jan 1st is the first week of the year.
12665        }
12666    });
12667
12668    //! moment.js locale configuration
12669
12670    var translator$2 = {
12671        words: { //Different grammatical cases
12672            ss: ['sekunda', 'sekunde', 'sekundi'],
12673            m: ['jedan minut', 'jedne minute'],
12674            mm: ['minut', 'minute', 'minuta'],
12675            h: ['jedan sat', 'jednog sata'],
12676            hh: ['sat', 'sata', 'sati'],
12677            dd: ['dan', 'dana', 'dana'],
12678            MM: ['mesec', 'meseca', 'meseci'],
12679            yy: ['godina', 'godine', 'godina']
12680        },
12681        correctGrammaticalCase: function (number, wordKey) {
12682            return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
12683        },
12684        translate: function (number, withoutSuffix, key) {
12685            var wordKey = translator$2.words[key];
12686            if (key.length === 1) {
12687                return withoutSuffix ? wordKey[0] : wordKey[1];
12688            } else {
12689                return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey);
12690            }
12691        }
12692    };
12693
12694    hooks.defineLocale('sr', {
12695        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
12696        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
12697        monthsParseExact: true,
12698        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
12699        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
12700        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
12701        weekdaysParseExact : true,
12702        longDateFormat: {
12703            LT: 'H:mm',
12704            LTS : 'H:mm:ss',
12705            L: 'DD.MM.YYYY',
12706            LL: 'D. MMMM YYYY',
12707            LLL: 'D. MMMM YYYY H:mm',
12708            LLLL: 'dddd, D. MMMM YYYY H:mm'
12709        },
12710        calendar: {
12711            sameDay: '[danas u] LT',
12712            nextDay: '[sutra u] LT',
12713            nextWeek: function () {
12714                switch (this.day()) {
12715                    case 0:
12716                        return '[u] [nedelju] [u] LT';
12717                    case 3:
12718                        return '[u] [sredu] [u] LT';
12719                    case 6:
12720                        return '[u] [subotu] [u] LT';
12721                    case 1:
12722                    case 2:
12723                    case 4:
12724                    case 5:
12725                        return '[u] dddd [u] LT';
12726                }
12727            },
12728            lastDay  : '[juče u] LT',
12729            lastWeek : function () {
12730                var lastWeekDays = [
12731                    '[prošle] [nedelje] [u] LT',
12732                    '[prošlog] [ponedeljka] [u] LT',
12733                    '[prošlog] [utorka] [u] LT',
12734                    '[prošle] [srede] [u] LT',
12735                    '[prošlog] [četvrtka] [u] LT',
12736                    '[prošlog] [petka] [u] LT',
12737                    '[prošle] [subote] [u] LT'
12738                ];
12739                return lastWeekDays[this.day()];
12740            },
12741            sameElse : 'L'
12742        },
12743        relativeTime : {
12744            future : 'za %s',
12745            past   : 'pre %s',
12746            s      : 'nekoliko sekundi',
12747            ss     : translator$2.translate,
12748            m      : translator$2.translate,
12749            mm     : translator$2.translate,
12750            h      : translator$2.translate,
12751            hh     : translator$2.translate,
12752            d      : 'dan',
12753            dd     : translator$2.translate,
12754            M      : 'mesec',
12755            MM     : translator$2.translate,
12756            y      : 'godinu',
12757            yy     : translator$2.translate
12758        },
12759        dayOfMonthOrdinalParse: /\d{1,2}\./,
12760        ordinal : '%d.',
12761        week : {
12762            dow : 1, // Monday is the first day of the week.
12763            doy : 7  // The week that contains Jan 1st is the first week of the year.
12764        }
12765    });
12766
12767    //! moment.js locale configuration
12768
12769    hooks.defineLocale('ss', {
12770        months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
12771        monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
12772        weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
12773        weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
12774        weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
12775        weekdaysParseExact : true,
12776        longDateFormat : {
12777            LT : 'h:mm A',
12778            LTS : 'h:mm:ss A',
12779            L : 'DD/MM/YYYY',
12780            LL : 'D MMMM YYYY',
12781            LLL : 'D MMMM YYYY h:mm A',
12782            LLLL : 'dddd, D MMMM YYYY h:mm A'
12783        },
12784        calendar : {
12785            sameDay : '[Namuhla nga] LT',
12786            nextDay : '[Kusasa nga] LT',
12787            nextWeek : 'dddd [nga] LT',
12788            lastDay : '[Itolo nga] LT',
12789            lastWeek : 'dddd [leliphelile] [nga] LT',
12790            sameElse : 'L'
12791        },
12792        relativeTime : {
12793            future : 'nga %s',
12794            past : 'wenteka nga %s',
12795            s : 'emizuzwana lomcane',
12796            ss : '%d mzuzwana',
12797            m : 'umzuzu',
12798            mm : '%d emizuzu',
12799            h : 'lihora',
12800            hh : '%d emahora',
12801            d : 'lilanga',
12802            dd : '%d emalanga',
12803            M : 'inyanga',
12804            MM : '%d tinyanga',
12805            y : 'umnyaka',
12806            yy : '%d iminyaka'
12807        },
12808        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
12809        meridiem : function (hours, minutes, isLower) {
12810            if (hours < 11) {
12811                return 'ekuseni';
12812            } else if (hours < 15) {
12813                return 'emini';
12814            } else if (hours < 19) {
12815                return 'entsambama';
12816            } else {
12817                return 'ebusuku';
12818            }
12819        },
12820        meridiemHour : function (hour, meridiem) {
12821            if (hour === 12) {
12822                hour = 0;
12823            }
12824            if (meridiem === 'ekuseni') {
12825                return hour;
12826            } else if (meridiem === 'emini') {
12827                return hour >= 11 ? hour : hour + 12;
12828            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
12829                if (hour === 0) {
12830                    return 0;
12831                }
12832                return hour + 12;
12833            }
12834        },
12835        dayOfMonthOrdinalParse: /\d{1,2}/,
12836        ordinal : '%d',
12837        week : {
12838            dow : 1, // Monday is the first day of the week.
12839            doy : 4  // The week that contains Jan 4th is the first week of the year.
12840        }
12841    });
12842
12843    //! moment.js locale configuration
12844
12845    hooks.defineLocale('sv', {
12846        months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
12847        monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
12848        weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
12849        weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
12850        weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
12851        longDateFormat : {
12852            LT : 'HH:mm',
12853            LTS : 'HH:mm:ss',
12854            L : 'YYYY-MM-DD',
12855            LL : 'D MMMM YYYY',
12856            LLL : 'D MMMM YYYY [kl.] HH:mm',
12857            LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
12858            lll : 'D MMM YYYY HH:mm',
12859            llll : 'ddd D MMM YYYY HH:mm'
12860        },
12861        calendar : {
12862            sameDay: '[Idag] LT',
12863            nextDay: '[Imorgon] LT',
12864            lastDay: '[Igår] LT',
12865            nextWeek: '[PÃ¥] dddd LT',
12866            lastWeek: '[I] dddd[s] LT',
12867            sameElse: 'L'
12868        },
12869        relativeTime : {
12870            future : 'om %s',
12871            past : 'för %s sedan',
12872            s : 'några sekunder',
12873            ss : '%d sekunder',
12874            m : 'en minut',
12875            mm : '%d minuter',
12876            h : 'en timme',
12877            hh : '%d timmar',
12878            d : 'en dag',
12879            dd : '%d dagar',
12880            M : 'en månad',
12881            MM : '%d månader',
12882            y : 'ett år',
12883            yy : '%d år'
12884        },
12885        dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
12886        ordinal : function (number) {
12887            var b = number % 10,
12888                output = (~~(number % 100 / 10) === 1) ? 'e' :
12889                (b === 1) ? 'a' :
12890                (b === 2) ? 'a' :
12891                (b === 3) ? 'e' : 'e';
12892            return number + output;
12893        },
12894        week : {
12895            dow : 1, // Monday is the first day of the week.
12896            doy : 4  // The week that contains Jan 4th is the first week of the year.
12897        }
12898    });
12899
12900    //! moment.js locale configuration
12901
12902    hooks.defineLocale('sw', {
12903        months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
12904        monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
12905        weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
12906        weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
12907        weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
12908        weekdaysParseExact : true,
12909        longDateFormat : {
12910            LT : 'HH:mm',
12911            LTS : 'HH:mm:ss',
12912            L : 'DD.MM.YYYY',
12913            LL : 'D MMMM YYYY',
12914            LLL : 'D MMMM YYYY HH:mm',
12915            LLLL : 'dddd, D MMMM YYYY HH:mm'
12916        },
12917        calendar : {
12918            sameDay : '[leo saa] LT',
12919            nextDay : '[kesho saa] LT',
12920            nextWeek : '[wiki ijayo] dddd [saat] LT',
12921            lastDay : '[jana] LT',
12922            lastWeek : '[wiki iliyopita] dddd [saat] LT',
12923            sameElse : 'L'
12924        },
12925        relativeTime : {
12926            future : '%s baadaye',
12927            past : 'tokea %s',
12928            s : 'hivi punde',
12929            ss : 'sekunde %d',
12930            m : 'dakika moja',
12931            mm : 'dakika %d',
12932            h : 'saa limoja',
12933            hh : 'masaa %d',
12934            d : 'siku moja',
12935            dd : 'masiku %d',
12936            M : 'mwezi mmoja',
12937            MM : 'miezi %d',
12938            y : 'mwaka mmoja',
12939            yy : 'miaka %d'
12940        },
12941        week : {
12942            dow : 1, // Monday is the first day of the week.
12943            doy : 7  // The week that contains Jan 1st is the first week of the year.
12944        }
12945    });
12946
12947    //! moment.js locale configuration
12948
12949    var symbolMap$e = {
12950        '1': '௧',
12951        '2': '௨',
12952        '3': '௩',
12953        '4': '௪',
12954        '5': '௫',
12955        '6': '௬',
12956        '7': '௭',
12957        '8': '௮',
12958        '9': '௯',
12959        '0': '௦'
12960    }, numberMap$d = {
12961        '௧': '1',
12962        '௨': '2',
12963        '௩': '3',
12964        '௪': '4',
12965        '௫': '5',
12966        '௬': '6',
12967        '௭': '7',
12968        '௮': '8',
12969        '௯': '9',
12970        '௦': '0'
12971    };
12972
12973    hooks.defineLocale('ta', {
12974        months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்ப
vendor: 6,298 bytes, lines 12974-13101
12974ர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
12975        monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
12976        weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
12977        weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
12978        weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
12979        longDateFormat : {
12980            LT : 'HH:mm',
12981            LTS : 'HH:mm:ss',
12982            L : 'DD/MM/YYYY',
12983            LL : 'D MMMM YYYY',
12984            LLL : 'D MMMM YYYY, HH:mm',
12985            LLLL : 'dddd, D MMMM YYYY, HH:mm'
12986        },
12987        calendar : {
12988            sameDay : '[இன்று] LT',
12989            nextDay : '[நாளை] LT',
12990            nextWeek : 'dddd, LT',
12991            lastDay : '[நேற்று] LT',
12992            lastWeek : '[கடந்த வாரம்] dddd, LT',
12993            sameElse : 'L'
12994        },
12995        relativeTime : {
12996            future : '%s இல்',
12997            past : '%s முன்',
12998            s : 'ஒரு சில விநாடிகள்',
12999            ss : '%d விநாடிகள்',
13000            m : 'ஒரு நிமிடம்',
13001            mm : '%d நிமிடங்கள்',
13002            h : 'ஒரு மணி நேரம்',
13003            hh : '%d மணி நேரம்',
13004            d : 'ஒரு நாள்',
13005            dd : '%d நாட்கள்',
13006            M : 'ஒரு மாதம்',
13007            MM : '%d மாதங்கள்',
13008            y : 'ஒரு வருடம்',
13009            yy : '%d ஆண்டுகள்'
13010        },
13011        dayOfMonthOrdinalParse: /\d{1,2}வது/,
13012        ordinal : function (number) {
13013            return number + 'வது';
13014        },
13015        preparse: function (string) {
13016            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
13017                return numberMap$d[match];
13018            });
13019        },
13020        postformat: function (string) {
13021            return string.replace(/\d/g, function (match) {
13022                return symbolMap$e[match];
13023            });
13024        },
13025        // refer http://ta.wikipedia.org/s/1er1
13026        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
13027        meridiem : function (hour, minute, isLower) {
13028            if (hour < 2) {
13029                return ' யாமம்';
13030            } else if (hour < 6) {
13031                return ' வைகறை';  // வைகறை
13032            } else if (hour < 10) {
13033                return ' காலை'; // காலை
13034            } else if (hour < 14) {
13035                return ' நண்பகல்'; // நண்பகல்
13036            } else if (hour < 18) {
13037                return ' எற்பாடு'; // எற்பாடு
13038            } else if (hour < 22) {
13039                return ' மாலை'; // மாலை
13040            } else {
13041                return ' யாமம்';
13042            }
13043        },
13044        meridiemHour : function (hour, meridiem) {
13045            if (hour === 12) {
13046                hour = 0;
13047            }
13048            if (meridiem === 'யாமம்') {
13049                return hour < 2 ? hour : hour + 12;
13050            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
13051                return hour;
13052            } else if (meridiem === 'நண்பகல்') {
13053                return hour >= 10 ? hour : hour + 12;
13054            } else {
13055                return hour + 12;
13056            }
13057        },
13058        week : {
13059            dow : 0, // Sunday is the first day of the week.
13060            doy : 6  // The week that contains Jan 1st is the first week of the year.
13061        }
13062    });
13063
13064    //! moment.js locale configuration
13065
13066    hooks.defineLocale('te', {
13067        months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
13068        monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
13069        monthsParseExact : true,
13070        weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
13071        weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
13072        weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
13073        longDateFormat : {
13074            LT : 'A h:mm',
13075            LTS : 'A h:mm:ss',
13076            L : 'DD/MM/YYYY',
13077            LL : 'D MMMM YYYY',
13078            LLL : 'D MMMM YYYY, A h:mm',
13079            LLLL : 'dddd, D MMMM YYYY, A h:mm'
13080        },
13081        calendar : {
13082            sameDay : '[నేడు] LT',
13083            nextDay : '[రేపు] LT',
13084            nextWeek : 'dddd, LT',
13085            lastDay : '[నిన్న] LT',
13086            lastWeek : '[గత] dddd, LT',
13087            sameElse : 'L'
13088        },
13089        relativeTime : {
13090            future : '%s లో',
13091            past : '%s క్రితం',
13092            s : 'కొన్ని క్షణాలు',
13093            ss : '%d సెకన్లు',
13094            m : 'ఒక నిమిషం',
13095            mm : '%d నిమిషాలు',
13096            h : 'ఒక గంట',
13097            hh : '%d గంటలు',
13098            d : 'ఒక రోజు',
13099            dd : '%d రోజులు',
13100            M : 'ఒక నెల',
13101            MM : '%d నెలలు',
13102            y : 'ఒక సంవత్సరం',
13103            yy : '%d సంవత్సరాలు'
13104        },
13105        dayOfMonthOrdinalParse : /\d{1,2}à°µ/,
13106        ordinal : '%dà°µ',
13107        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
13108        meridiemHour : function (hour, meridiem) {
13109            if (hour === 12) {
13110                hour = 0;
13111            }
13112            if (meridiem === 'రాత్రి') {
13113                return hour < 4 ? hour : hour + 12;
13114            } else if (meridiem === 'ఉదయం') {
13115                return hour;
13116            } else if (meridiem === 'మధ్యాహ్నం') {
13117                return hour >= 10 ? hour : hour + 12;
13118            } else if (meridiem === 'సాయంత్రం') {
13119                return hour + 12;
13120            }
13121        },
13122        meridiem : function (hour, minute, isLower) {
13123            if (hour < 4) {
13124                return 'రాత్రి';
13125            } else if (hour < 10) {
13126                return 'ఉదయం';
13127            } else if (hour < 17) {
13128                return 'మధ్యాహ్నం';
13129            } else if (hour < 20) {
13130                return 'సాయంత్రం';
13131            } else {
13132                return 'రాత్రి';
13133            }
13134        },
13135        week : {
13136            dow : 0, // Sunday is the first day of the week.
13137            doy : 6  // The week that contains Jan 1st is the first week of the year.
13138        }
13139    });
13140
13141    //! moment.js locale configuration
13142
13143    hooks.defineLocale('tet', {
13144        months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
13145        monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
13146        weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
13147        weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
13148        weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
13149        longDateFormat : {
13150            LT : 'HH:mm',
13151            LTS : 'HH:mm:ss',
13152            L : 'DD/MM/YYYY',
13153            LL : 'D MMMM YYYY',
13154            LLL : 'D MMMM YYYY HH:mm',
13155            LLLL : 'dddd, D MMMM YYYY HH:mm'
13156        },
13157        calendar : {
13158            sameDay: '[Ohin iha] LT',
13159            nextDay: '[Aban iha] LT',
13160            nextWeek: 'dddd [iha] LT',
13161            lastDay: '[Horiseik iha] LT',
13162            lastWeek: 'dddd [semana kotuk] [iha] LT',
13163            sameElse: 'L'
13164        },
13165        relativeTime : {
13166            future : 'iha %s',
13167            past : '%s liuba',
13168            s : 'minutu balun',
13169            ss : 'minutu %d',
13170            m : 'minutu ida',
13171            mm : 'minutu %d',
13172            h : 'oras ida',
13173            hh : 'oras %d',
13174            d : 'loron ida',
13175            dd : 'loron %d',
13176            M : 'fulan ida',
13177            MM : 'fulan %d',
13178            y : 'tinan ida',
13179            yy : 'tinan %d'
13180        },
13181        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
13182        ordinal : function (number) {
13183            var b = number % 10,
13184                output = (~~(number % 100 / 10) === 1) ? 'th' :
13185                (b === 1) ? 'st' :
13186                (b === 2) ? 'nd' :
13187                (b === 3) ? 'rd' : 'th';
13188            return number + output;
13189        },
13190        week : {
13191            dow : 1, // Monday is the first day of the week.
13192            doy : 4  // The week that contains Jan 4th is the first week of the year.
13193        }
13194    });
13195
13196    //! moment.js locale configuration
13197
13198    var suffixes$3 = {
13199        0: '-ум',
13200        1: '-ум',
13201        2: '-юм',
13202        3: '-юм',
13203        4: '-ум',
13204        5: '-ум',
13205        6: '-ум',
13206        7: '-ум',
13207        8: '-ум',
13208        9: '-ум',
13209        10: '-ум',
13210        12: '-ум',
13211        13: '-ум',
13212        20: '-ум',
13213        30: '-юм',
13214        40: '-ум',
13215        50: '-ум',
13216        60: '-ум',
13217        70: '-ум',
13218        80: '-ум',
13219        90: '-ум',
13220        100: '-ум'
13221    };
13222
13223    hooks.defineLocale('tg', {
13224        months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
13225        monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
13226        weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),
13227        weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
13228        weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
13229        longDateFormat : {
13230            LT : 'HH:mm',
13231            LTS : 'HH:mm:ss',
13232            L : 'DD/MM/YYYY',
13233            LL : 'D MMMM YYYY',
13234            LLL : 'D MMMM YYYY HH:mm',
13235            LLLL : 'dddd, D MMMM YYYY HH:mm'
13236        },
13237        calendar : {
13238            sameDay : '[Имрӯз соати] LT',
13239            nextDay : '[Пагоҳ соати] LT',
13240            lastDay : '[Дирӯз соати] LT',
13241            nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',
13242            lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',
13243            sameElse : 'L'
13244        },
13245        relativeTime : {
13246            future : 'баъди %s',
13247            past : '%s пеш',
13248            s : 'якчанд сония',
13249            m : 'як дақиқа',
13250            mm : '%d дақиқа',
13251            h : 'як соат',
13252            hh : '%d соат',
13253            d : 'як рӯз',
13254            dd : '%d рӯз',
13255            M : 'як моҳ',
13256            MM : '%d моҳ',
13257            y : 'як сол',
13258            yy : '%d сол'
13259        },
13260        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
13261        meridiemHour: function (hour, meridiem) {
13262            if (hour === 12) {
13263                hour = 0;
13264            }
13265            if (meridiem === 'шаб') {
13266                return hour < 4 ? hour : hour + 12;
13267            } else if (meridiem === 'субҳ') {
13268                return hour;
13269            } else if (meridiem === 'рӯз') {
13270                return hour >= 11 ? hour : hour + 12;
13271            } else if (meridiem === 'бегоҳ') {
13272                return hour + 12;
13273            }
13274        },
13275        meridiem: function (hour, minute, isLower) {
13276            if (hour < 4) {
13277                return 'шаб';
13278            } else if (hour < 11) {
13279                return 'субҳ';
13280            } else if (hour < 16) {
13281                return 'рӯз';
13282            } else if (hour < 19) {
13283                return 'бегоҳ';
13284            } else {
13285                return 'шаб';
13286            }
13287        },
13288        dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
13289        ordinal: function (number) {
13290            var a = number % 10,
13291                b = number >= 100 ? 100 : null;
13292            return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);
13293        },
13294        week : {
13295            dow : 1, // Monday is the first day of the week.
13296            doy : 7  // The week that contains Jan 1th is the first week of the year.
13297        }
13298    });
13299
13300    //! moment.js locale configuration
13301
13302    hooks.defineLocale('th', {
13303        months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
13304        monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
13305        monthsParseExact: true,
13306        weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.
13306split('_'),
13307        weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
13308        weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
13309        weekdaysParseExact : true,
13310        longDateFormat : {
13311            LT : 'H:mm',
13312            LTS : 'H:mm:ss',
13313            L : 'DD/MM/YYYY',
13314            LL : 'D MMMM YYYY',
13315            LLL : 'D MMMM YYYY เวลา H:mm',
13316            LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
13317        },
13318        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
13319        isPM: function (input) {
13320            return input === 'หลังเที่ยง';
13321        },
13322        meridiem : function (hour, minute, isLower) {
13323            if (hour < 12) {
13324                return 'ก่อนเที่ยง';
13325            } else {
13326                return 'หลังเที่ยง';
13327            }
13328        },
13329        calendar : {
13330            sameDay : '[วันนี้ เวลา] LT',
13331            nextDay : '[พรุ่งนี้ เวลา] LT',
13332            nextWeek : 'dddd[หน้า เวลา] LT',
13333            lastDay : '[เมื่อวานนี้ เวลา] LT',
13334            lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
13335            sameElse : 'L'
13336        },
13337        relativeTime : {
13338            future : 'อีก %s',
13339            past : '%sที่แล้ว',
13340            s : 'ไม่กี่วินาที',
13341            ss : '%d วินาที',
13342            m : '1 นาที',
13343            mm : '%d นาที',
13344            h : '1 ชั่วโมง',
13345            hh : '%d ชั่วโมง',
13346            d : '1 วัน',
13347            dd : '%d วัน',
13348            M : '1 เดือน',
13349            MM : '%d เดือน',
13350            y : '1 ปี',
13351            yy : '%d ปี'
13352        }
13353    });
13354
13355    //! moment.js locale configuration
13356
13357    hooks.defineLocale('tl-ph', {
13358        months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
13359        monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
13360        weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
13361        weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
13362        weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
13363        longDateFormat : {
13364            LT : 'HH:mm',
13365            LTS : 'HH:mm:ss',
13366            L : 'MM/D/YYYY',
13367            LL : 'MMMM D, YYYY',
13368            LLL : 'MMMM D, YYYY HH:mm',
13369            LLLL : 'dddd, MMMM DD, YYYY HH:mm'
13370        },
13371        calendar : {
13372            sameDay: 'LT [ngayong araw]',
13373            nextDay: '[Bukas ng] LT',
13374            nextWeek: 'LT [sa susunod na] dddd',
13375            lastDay: 'LT [kahapon]',
13376            lastWeek: 'LT [noong nakaraang] dddd',
13377            sameElse: 'L'
13378        },
13379        relativeTime : {
13380            future : 'sa loob ng %s',
13381            past : '%s ang nakalipas',
13382            s : 'ilang segundo',
13383            ss : '%d segundo',
13384            m : 'isang minuto',
13385            mm : '%d minuto',
13386            h : 'isang oras',
13387            hh : '%d oras',
13388            d : 'isang araw',
13389            dd : '%d araw',
13390            M : 'isang buwan',
13391            MM : '%d buwan',
13392            y : 'isang taon',
13393            yy : '%d taon'
13394        },
13395        dayOfMonthOrdinalParse: /\d{1,2}/,
13396        ordinal : function (number) {
13397            return number;
13398        },
13399        week : {
13400            dow : 1, // Monday is the first day of the week.
13401            doy : 4  // The week that contains Jan 4th is the first week of the year.
13402        }
13403    });
13404
13405    //! moment.js locale configuration
13406
13407    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
13408
13409    function translateFuture(output) {
13410        var time = output;
13411        time = (output.indexOf('jaj') !== -1) ?
13412        time.slice(0, -3) + 'leS' :
13413        (output.indexOf('jar') !== -1) ?
13414        time.slice(0, -3) + 'waQ' :
13415        (output.indexOf('DIS') !== -1) ?
13416        time.slice(0, -3) + 'nem' :
13417        time + ' pIq';
13418        return time;
13419    }
13420
13421    function translatePast(output) {
13422        var time = output;
13423        time = (output.indexOf('jaj') !== -1) ?
13424        time.slice(0, -3) + 'Hu’' :
13425        (output.indexOf('jar') !== -1) ?
13426        time.slice(0, -3) + 'wen' :
13427        (output.indexOf('DIS') !== -1) ?
13428        time.slice(0, -3) + 'ben' :
13429        time + ' ret';
13430        return time;
13431    }
13432
13433    function translate$a(number, withoutSuffix, string, isFuture) {
13434        var numberNoun = numberAsNoun(number);
13435        switch (string) {
13436            case 'ss':
13437                return numberNoun + ' lup';
13438            case 'mm':
13439                return numberNoun + ' tup';
13440            case 'hh':
13441                return numberNoun + ' rep';
13442            case 'dd':
13443                return numberNoun + ' jaj';
13444            case 'MM':
13445                return numberNoun + ' jar';
13446            case 'yy':
13447                return numberNoun + ' DIS';
13448        }
13449    }
13450
13451    function numberAsNoun(number) {
13452        var hundred = Math.floor((number % 1000) / 100),
13453        ten = Math.floor((number % 100) / 10),
13454        one = number % 10,
13455        word = '';
13456        if (hundred > 0) {
13457            word += numbersNouns[hundred] + 'vatlh';
13458        }
13459        if (ten > 0) {
13460            word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
13461        }
13462        if (one > 0) {
13463            word += ((word !== '') ? ' ' : '') + numbersNouns[one];
13464        }
13465        return (word === '') ? 'pagh' : word;
13466    }
13467
13468    hooks.defineLocale('tlh', {
13469        months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
13470        monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
13471        monthsParseExact : true,
13472        weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
13473        weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
13474        weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
13475        longDateFormat : {
13476            LT : 'HH:mm',
13477            LTS : 'HH:mm:ss',
13478            L : 'DD.MM.YYYY',
13479            LL : 'D MMMM YYYY',
13480            LLL : 'D MMMM YYYY HH:mm',
13481            LLLL : 'dddd, D MMMM YYYY HH:mm'
13482        },
13483        calendar : {
13484            sameDay: '[DaHjaj] LT',
13485            nextDay: '[wa’leS] LT',
13486            nextWeek: 'LLL',
13487            lastDay: '[wa’Hu’] LT',
13488            lastWeek: 'LLL',
13489            sameElse: 'L'
13490        },
13491        relativeTime : {
13492            future : translateFuture,
13493            past : translatePast,
13494            s : 'puS lup',
13495            ss : translate$a,
13496            m : 'wa’ tup',
13497            mm : translate$a,
13498            h : 'wa’ rep',
13499            hh : translate$a,
13500            d : 'wa’ jaj',
13501            dd : translate$a,
13502            M : 'wa’ jar',
13503            MM : translate$a,
13504            y : 'wa’ DIS',
13505            yy : translate$a
13506        },
13507        dayOfMonthOrdinalParse: /\d{1,2}\./,
13508        ordinal : '%d.',
13509        week : {
13510            dow : 1, // Monday is the first day of the week.
13511            doy : 4  // The week that contains Jan 4th is the first week of the year.
13512        }
13513    });
13514
13515    var suffixes$4 = {
13516        1: '\'inci',
13517        5: '\'inci',
13518        8: '\'inci',
13519        70: '\'inci',
13520        80: '\'inci',
13521        2: '\'nci',
13522        7: '\'nci',
13523        20: '\'nci',
13524        50: '\'nci',
13525        3: '\'üncü',
13526        4: '\'üncü',
13527        100: '\'üncü',
13528        6: '\'ncı',
13529        9: '\'uncu',
13530        10: '\'uncu',
13531        30: '\'uncu',
13532        60: '\'ıncı',
13533        90: '\'ıncı'
13534    };
13535
13536    hooks.defineLocale('tr', {
13537        months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
13538        monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
13539        weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
13540        weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
13541        weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
13542        longDateFormat : {
13543            LT : 'HH:mm',
13544            LTS : 'HH:mm:ss',
13545            L : 'DD.MM.YYYY',
13546            LL : 'D MMMM YYYY',
13547            LLL : 'D MMMM YYYY HH:mm',
13548            LLLL : 'dddd, D MMMM YYYY HH:mm'
13549        },
13550        calendar : {
13551            sameDay : '[bugün saat] LT',
13552            nextDay : '[yarın saat] LT',
13553            nextWeek : '[gelecek] dddd [saat] LT',
13554            lastDay : '[dün] LT',
13555            lastWeek : '[geçen] dddd [saat] LT',
13556            sameElse : 'L'
13557        },
13558        relativeTime : {
13559            future : '%s sonra',
13560            past : '%s önce',
13561            s : 'birkaç saniye',
13562            ss : '%d saniye',
13563            m : 'bir dakika',
13564            mm : '%d dakika',
13565            h : 'bir saat',
13566            hh : '%d saat',
13567            d : 'bir gün',
13568            dd : '%d gün',
13569            M : 'bir ay',
13570            MM : '%d ay',
13571            y : 'bir yıl',
13572            yy : '%d yıl'
13573        },
13574        ordinal: function (number, period) {
13575            switch (period) {
13576                case 'd':
13577                case 'D':
13578                case 'Do':
13579                case 'DD':
13580                    return number;
13581                default:
13582                    if (number === 0) {  // special case for zero
13583                        return number + '\'ıncı';
13584                    }
13585                    var a = number % 10,
13586                        b = number % 100 - a,
13587                        c = number >= 100 ? 100 : null;
13588                    return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);
13589            }
13590        },
13591        week : {
13592            dow : 1, // Monday is the first day of the week.
13593            doy : 7  // The week that contains Jan 1st is the first week of the year.
13594        }
13595    });
13596
13597    //! moment.js locale configuration
13598
13599    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
13600    // This is currently too difficult (maybe even impossible) to add.
13601    hooks.defineLocale('tzl', {
13602        months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
13603        monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
13604        weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
13605        weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
13606        weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
13607        longDateFormat : {
13608            LT : 'HH.mm',
13609            LTS : 'HH.mm.ss',
13610            L : 'DD.MM.YYYY',
13611            LL : 'D. MMMM [dallas] YYYY',
13612            LLL : 'D. MMMM [dallas] YYYY HH.mm',
13613            LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
13614        },
13615        meridiemParse: /d\'o|d\'a/i,
13616        isPM : function (input) {
13617            return 'd\'o' === input.toLowerCase();
13618        },
13619        meridiem : function (hours, minutes, isLower) {
13620            if (hours > 11) {
13621                return isLower ? 'd\'o' : 'D\'O';
13622            } else {
13623                return isLower ? 'd\'a' : 'D\'A';
13624            }
13625        },
13626        calendar : {
13627            sameDay : '[oxhi à] LT',
13628            nextDay : '[demà à] LT',
13629            nextWeek : 'dddd [à] LT',
13630            lastDay : '[ieiri à] LT',
13631            lastWeek : '[sür el] dddd [lasteu à] LT',
13632            sameElse : 'L'
13633        },
13634        relativeTime : {
13635            future : 'osprei %s',
13636            past : 'ja%s',
13637            s : processRelativeTime$7,
13638            ss : processRelativeTime$7,
13639            m : processRelativeTime$7,
13640            mm : processRelativeTime$7,
13641            h : processRelativeTime$7,
13642            hh : processRelativeTime$7,
13643            d : processRelativeTime$7,
13644            dd : processRelativeTime$7,
13645            M : processRelativeTime$7,
13646            MM : processRelativeTime$7,
13647            y : processRelativeTime$7,
13648            yy : processRelativeTime$7
13649        },
13650        dayOfMonthOrdinalParse: /\d{1,2}\./,
13651        ordinal : '%d.',
13652        week : {
13653            dow : 1, // Monday is the first day of the week.
13654            doy : 4  // The week that contains Jan 4th is the first week of the year.
13655        }
13656    });
13657
13658    function processRelativeTime$7(number, withoutSuffix, key, isFuture) {
13659        var format = {
13660            's': ['viensas secunds', '\'iensas secunds'],
13661            'ss': [number + ' secunds', '' + number + ' secunds'],
13662            'm': ['\'n míut', '\'iens míut'],
13663            'mm': [number + ' míuts', '' + number + ' míuts'],
13664            'h': ['\'n þora', '\'iensa þora'],
13665            'hh': [number + ' þoras', '' + number + ' þoras'],
13666            'd': ['\'n ziua', '\'iensa ziua'],
13667            'dd': [number + ' ziuas', '' + number + ' ziuas'],
13668            'M': ['\'n mes', '\'iens mes'],
13669            'MM': [number + ' mesen', '' + number + ' mesen'],
13670            'y': ['\'n ar', '\'iens ar'],
13671            'yy': [number + ' ars', '' + number + ' ars']
13672        };
13673        return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
13674    }
13675
13676    //! moment.js locale configuration
13677
13678    hooks.defineLocale('tzm-latn', {
13679        months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
13680        monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
13681        weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
13682        weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
13683        weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
13684        longDateFormat : {
13685            LT : 'HH:mm',
13686            LTS : 'HH:mm:ss',
13687            L : 'DD/MM/YYYY',
13688            LL : 'D MMMM YYYY',
13689            LLL : 'D MMMM YYYY HH:mm',
13690            LLLL : 'dddd D MMMM YYYY HH:mm'
13691        },
13692        calendar : {
13693            sameDay: '[asdkh g] LT',
13694            nextDay: '[aska g] LT',
13695            nextWeek: 'dddd [g] LT',
13696            lastDay: '[assant g] LT',
13697            lastWeek: 'dddd [g] LT',
13698            sameElse: 'L'
13699        },
13700        relativeTime : {
13701            future : 'dadkh s yan %s',
13702            past : 'yan %s',
13703            s : 'imik',
13704            ss : '%d imik',
13705            m : 'minuḍ',
13706            mm : '%d minuḍ',
13707            h : 'saɛa',
13708            hh : '%d tassaɛin',
13709            d : 'ass',
13710            dd : '%d ossan',
13711            M : 'ayowr',
13712            MM : '%d iyyirn',
13713            y : 'asgas',
13714            yy : '%d isgasn'
13715        },
13716        week : {
13717            dow : 6, // Saturday is the first day of the week.
13718            doy : 12  // The week that contains Jan 1st is the first week of the year.
13719        }
13720    });
13721
13722    //! moment.js locale configuration
13723
13724    hooks.defineLocale('tzm', {
13725        months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
13726        monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
13727        weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
13728        weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
13729        weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
13730        longDateFormat : {
13731            LT : 'HH:mm',
13732            LTS: 'HH:mm:ss',
13733            L : 'DD/MM/YYYY',
13734            LL : 'D MMMM YYYY',
13735            LLL : 'D MMMM YYYY HH:mm',
13736            LLLL : 'dddd D MMMM YYYY HH:mm'
13737        },
13738        calendar : {
13739            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
13740            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
13741            nextWeek: 'dddd [â´´] LT',
13742            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
13743            lastWeek: 'dddd [â´´] LT',
13744            sameElse: 'L'
13745        },
13746        relativeTime : {
13747            future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
13748            past : 'ⵢⴰⵏ %s',
13749            s : 'ⵉⵎⵉⴽ',
13750            ss : '%d ⵉⵎⵉⴽ',
13751            m : 'ⵎⵉⵏⵓⴺ',
13752            mm : '%d ⵎⵉⵏⵓⴺ',
13753            h : 'ⵙⴰⵄⴰ',
13754            hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
13755            d : 'ⴰⵙⵙ',
13756            dd : '%d oⵙⵙⴰⵏ',
13757            M : 'ⴰⵢoⵓⵔ',
13758            MM : '%d ⵉⵢⵢⵉⵔⵏ',
13759            y : 'ⴰⵙⴳⴰⵙ',
13760            yy : '%d ⵉⵙⴳⴰⵙⵏ'
13761        },
13762        week : {
13763            dow : 6, // Saturday is the first day of the week.
13764            doy : 12  // The week that contains Jan 1st is the first week of the year.
13765        }
13766    });
13767
13768    //! moment.js language configuration
13769
13770    hooks.defineLocale('ug-cn', {
13771        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
13772            '_'
13773        ),
13774        monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
13775            '_'
13776        ),
13777        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
13778            '_'
13779        ),
13780        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
13781        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
13782        longDateFormat: {
13783            LT: 'HH:mm',
13784            LTS: 'HH:mm:ss',
13785            L: 'YYYY-MM-DD',
13786            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
13787            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
13788            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
13789        },
13790        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
13791        meridiemHour: function (hour, meridiem) {
13792            if (hour === 12) {
13793                hour = 0;
13794            }
13795            if (
13796                meridiem === 'يېرىم كېچە' ||
13797                meridiem === 'سەھەر' ||
13798                meridiem === 'چۈشتىن بۇرۇن'
13799            ) {
13800                return hour;
13801            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
13802                return hour + 12;
13803            } else {
13804                return hour >= 11 ? hour : hour + 12;
13805            }
13806        },
13807        meridiem: function (hour, minute, isLower) {
13808            var hm = hour * 100 + minute;
13809            if (hm < 600) {
13810                return 'يېرىم كېچە';
13811            } else if (hm < 900) {
13812                return 'سەھەر';
13813            } else if (hm < 1130) {
13814                return 'چۈشتىن بۇرۇن';
13815            } else if (hm < 1230) {
13816                return 'چۈش';
13817            } else if (hm < 1800) {
13818                return 'چۈشتىن كېيىن';
13819            } else {
13820                return 'كەچ';
13821            }
13822        },
13823        calendar: {
13824            sameDay: '[بۈگۈن سائەت] LT',
13825            nextDay: '[ئەتە سائەت] LT',
13826            nextWeek: '[كېلەركى] dddd [سائەت] LT',
13827            lastDay: '[تۆنۈگۈن] LT',
13828            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
13829            sameElse: 'L'
13830        },
13831        relativeTime: {
13832            future: '%s كېيىن',
13833            past: '%s بۇرۇن',
13834            s: 'نەچچە سېكونت',
13835            ss: '%d سېكونت',
13836            m: 'بىر مىنۇت',
13837            mm: '%d مىنۇت',
13838            h: 'بىر سائەت',
13839            hh: '%d سائەت',
13840            d: 'بىر كۈن',
13841            dd: '%d كۈن',
13842            M: 'بىر ئاي',
13843            MM: '%d ئاي',
13844            y: 'بىر يىل',
13845            yy: '%d يىل'
13846        },
13847
13848        dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
13849        ordinal: function (number, period) {
13850            switch (period) {
13851                case 'd':
13852                case 'D':
13853                case 'DDD':
13854                    return number + '-كۈنى';
13855                case 'w':
13856                case 'W':
13857                    return number + '-ھەپتە';
13858                default:
13859                    return number;
13860            }
13861        },
13862        preparse: function (string) {
13863            return string.replace(/،/g, ',');
13864        },
13865        postformat: function (string) {
13866            return string.replace(/,/g, '،');
13867        },
13868        week: {
13869            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
13870            dow: 1, // Monday is the first day of the week.
13871            doy: 7 // The week that contains Jan 1st is the first week of the year.
13872        }
13873    });
13874
13875    //! moment.js locale configuration
13876
13877    function plural$6(word, num) {
13878        var forms = word.split('_');
13879        return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
13880    }
13881    function relativeTimeWithPlural$4(number, withoutSuffix, key) {
13882        var format = {
13883            'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
13884            'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
13885            'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
13886            'dd': 'день_дні_днів',
13887            'MM': 'місяць_місяці_місяців',
13888            'yy': 'рік_роки_років'
13889        };
13890        if (key === 'm') {
13891            return withoutSuffix ? 'хвилина' : 'хвилину';
13892        }
13893        else if (key === 'h') {
13894            return withoutSuffix ? 'година' : 'годину';
13895        }
13896        else {
13897            return number + ' ' + plural$6(format[key], +number);
13898        }
13899    }
13900    function weekdaysCaseReplace(m, format) {
13901        var weekdays = {
13902            'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
13903            'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
13904            'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
13905        };
13906
13907        if (!m) {
13908            return weekdays['nominative'];
13909        }
13910
13911        var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
13912            'accusative' :
13913            ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
13914                'genitive' :
13915                'nominative');
13916        return weekdays[nounCase][m.day()];
13917    }
13918    function processHoursFunction(str) {
13919        return function () {
13920            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
13921        };
13922    }
13923
13924    hooks.defineLocale('uk', {
13925        months : {
13926            'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
13927            'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
13928        },
13929        monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
13930        weekdays : weekdaysCaseReplace,
13931        weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
13932        weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
13933        longDateFormat : {
13934            LT : 'HH:mm',
13935            LTS : 'HH:mm:ss',
13936            L : 'DD.MM.YYYY',
13937            LL : 'D MMMM YYYY р.',
13938            LLL : 'D MMMM YYYY р., HH:mm',
13939            LLLL : 'dddd, D MMMM YYYY р., HH:mm'
13940        },
13941        calendar : {
13942            sameDay: processHoursFunction('[Сьогодні '),
13943            nextDay: processHoursFunction('[Завтра '),
13944            lastDay: processHoursFunction('[Вчора '),
13945            nextWeek: processHoursFunction('[У] dddd ['),
13946            lastWeek: function () {
13947                switch (this.day()) {
13948                    case 0:
13949                    case 3:
13950                    case 5:
13951                    case 6:
13952                        return processHoursFunction('[Минулої] dddd [').call(this);
13953                    case 1:
13954                    case 2:
13955                    case 4:
13956                        return processHoursFunction('[Минулого] dddd [').call(this);
13957                }
13958            },
13959            sameElse: 'L'
13960        },
13961        relativeTime : {
13962            future : 'за %s',
13963            past : '%s тому',
13964            s : 'декілька секунд',
13965            ss : relativeTimeWithPlural$4,
13966            m : relativeTimeWithPlural$4,
13967            mm : relativeTimeWithPlural$4,
13968            h : 'годину',
13969            hh : relativeTimeWithPlural$4,
13970            d : 'день',
13971            dd : relativeTimeWithPlural$4,
13972            M : 'місяць',
13973            MM : relativeTimeWithPlural$4,
13974            y : 'рік',
13975            yy : relativeTimeWithPlural$4
13976        },
13977        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
13978        meridiemParse: /ночі|ранку|дня|вечора/,
13979        isPM: function (input) {
13980            return /^(дня|вечора)$/.test(input);
13981        },
13982        meridiem : function (hour, minute, isLower) {
13983            if (hour < 4) {
13984                return 'ночі';
13985            } else if (hour < 12) {
13986                return 'ранку';
13987            } else if (hour < 17) {
13988                return 'дня';
13989            } else {
13990                return 'вечора';
13991            }
13992        },
13993        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
13994        ordinal: function (number, period) {
13995            switch (period) {
13996                case 'M':
13997                case 'd':
13998                case 'DDD':
13999                case 'w':
14000                case 'W':
14001                    return number + '-й';
14002                case 'D':
14003                    return number + '-го';
14004                default:
14005                    return number;
14006            }
14007        },
14008        week : {
14009            dow : 1, // Monday is the first day of the week.
14010            doy : 7  // The week that contains Jan 1st is the first week of the year.
14011        }
14012    });
14013
14014    //! moment.js locale configuration
14015
14016    var months$8 = [
14017        'جنوری',
14018        'فروری',
14019        'مارچ',
14020        'اپریل',
14021        'مئی',
14022        'جون',
14023        'جولائی',
14024        'اگست',
14025        'ستمبر',
14026        'اکتوبر',
14027        'نومبر',
14028        'دسمبر'
14029    ];
14030    var days$2 = [
14031        'اتوار',
14032        'پیر',
14033        'منگل',
14034        'بدھ',
14035        'جمعرات',
14036        'جمعہ',
14037        'ہفتہ'
14038    ];
14039
14040    hooks.defineLocale('ur', {
14041        months : months$8,
14042        monthsShort : months$8,
14043        weekdays : days$2,
14044        weekdaysShort : days$2,
14045        weekdaysMin : days$2,
14046        longDateFormat : {
14047            LT : 'HH:mm',
14048            LTS : 'HH:mm:ss',
14049            L : 'DD/MM/YYYY',
14050            LL : 'D MMMM YYYY',
14051            LLL : 'D MMMM YYYY HH:mm',
14052            LLLL : 'dddd، D MMMM YYYY HH:mm'
14053        },
14054        meridiemParse: /صبح|شام/,
14055        isPM : function (input) {
14056            return 'شام' === input;
14057        },
14058        meridiem : function (hour, minute, isLower) {
14059            if (hour < 12) {
14060                return 'صبح';
14061            }
14062            return 'شام';
14063        },
14064        calendar : {
14065            sameDay : '[آج بوقت] LT',
14066            nextDay : '[کل بوقت] LT',
14067            nextWeek : 'dddd [بوقت] LT',
14068            lastDay : '[گذشتہ روز بوقت] LT',
14069            lastWeek : '[گذشتہ] dddd [بوقت] LT',
14070            sameElse : 'L'
14071        },
14072        relativeTime : {
14073            future : '%s بعد',
14074            past : '%s قبل',
14075            s : 'چند سیکنڈ',
14076            ss : '%d سیکنڈ',
14077            m : 'ایک منٹ',
14078            mm : '%d منٹ',
14079            h : 'ایک گھنٹہ',
14080            hh : '%d گھنٹے',
14081            d : 'ایک دن',
14082            dd : '%d دن',
14083            M : 'ایک ماہ',
14084            MM : '%d ماہ',
14085            y : 'ایک سال',
14086            yy : '%d سال'
14087        },
14088        preparse: function (string) {
14089            return string.replace(/،/g, ',');
14090        },
14091        postformat: function (string) {
14092            return string.replace(/,/g, '،');
14093        },
14094        week : {
14095            dow : 1, // Monday is the first day of the week.
14096            doy : 4  // The week that contains Jan 4th is the first week of the year.
14097        }
14098    });
14099
14100    //! moment.js locale configuration
14101
14102    hooks.defineLocale('uz-latn', {
14103        months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
14104        monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
14105        weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
14106        weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
14107        weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
14108        longDateFormat : {
14109            LT : 'HH:mm',
14110            LTS : 'HH:mm:ss',
14111            L : 'DD/MM/YYYY',
14112            LL : 'D MMMM YYYY',
14113            LLL : 'D MMMM YYYY HH:mm',
14114            LLLL : 'D MMMM YYYY, dddd HH:mm'
14115        },
14116        calendar : {
14117            sameDay : '[Bugun soat] LT [da]',
14118            nextDay : '[Ertaga] LT [da]',
14119            nextWeek : 'dddd [kuni soat] LT [da]',
14120            lastDay : '[Kecha soat] LT [da]',
14121            lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
14122            sameElse : 'L'
14123        },
14124        relativeTime : {
14125            future : 'Yaqin %s ichida',
14126            past : 'Bir necha %s oldin',
14127            s : 'soniya',
14128            ss : '%d soniya',
14129            m : 'bir daqiqa',
14130            mm : '%d daqiqa',
14131            h : 'bir soat',
14132            hh : '%d soat',
14133            d : 'bir kun',
14134            dd : '%d kun',
14135            M : 'bir oy',
14136            MM : '%d oy',
14137            y : 'bir yil',
14138            yy : '%d yil'
14139        },
14140        week : {
14141            dow : 1, // Monday is the first day of the week.
14142            doy : 7  // The week that contains Jan 1st is the first week of the year.
14143        }
14144    });
14145
14146    //! moment.js locale configuration
14147
14148    hooks.defineLocale('uz', {
14149        months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
14150        monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
14151        weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
14152        weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
14153        weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
14154        longDateFormat : {
14155            LT : 'HH:mm',
14156            LTS : 'HH:mm:ss',
14157            L : 'DD/MM/YYYY',
14158            LL : 'D MMMM YYYY',
14159            LLL : 'D MMMM YYYY HH:mm',
14160            LLLL : 'D MMMM YYYY, dddd HH:mm'
14161        },
14162        calendar : {
14163            sameDay : '[Бугун соат] LT [да]',
14164            nextDay : '[Эртага] LT [да]',
14165            nextWeek : 'dddd [куни соат] LT [да]',
14166            lastDay : '[Кеча соат] LT [да]',
14167            lastWeek : '[Утган] dddd [куни соат] LT [да]',
14168            sameElse : 'L'
14169        },
14170        relativeTime : {
14171            future : 'Якин %s ичида',
14172            past : 'Бир неча %s олдин',
14173            s : 'фурсат',
14174            ss : '%d фурсат',
14175            m : 'бир дакика',
14176            mm : '%d дакика',
14177            h : 'бир соат',
14178            hh : '%d соат',
14179            d : 'бир кун',
14180            dd : '%d кун',
14181            M : 'бир ой',
14182            MM : '%d ой',
14183            y : 'бир йил',
14184            yy : '%d йил'
14185        },
14186        week : {
14187            dow : 1, // Monday is the first day of the week.
14188            doy : 7  // The week that contains Jan 4th is the first week of the year.
14189        }
14190    });
14191
14192    //! moment.js locale configuration
14193
14194    hooks.defineLocale('vi', {
14195        months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
14196        monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
14197        monthsParseExact : true,
14198        weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
14199        weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
14200        weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
14201        weekdaysParseExact : true,
14202        meridiemParse: /sa|ch/i,
14203        isPM : function (input) {
14204            return /^ch$/i.test(input);
14205        },
14206        meridiem : function (hours, minutes, isLower) {
14207            if (hours < 12) {
14208                return isLower ? 'sa' : 'SA';
14209            } else {
14210                return isLower ? 'ch' : 'CH';
14211            }
14212        },
14213        longDateFormat : {
14214            LT : 'HH:mm',
14215            LTS : 'HH:mm:ss',
14216            L : 'DD/MM/YYYY',
14217            LL : 'D MMMM [năm] YYYY',
14218            LLL : 'D MMMM [năm] YYYY HH:mm',
14219            LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
14220            l : 'DD/M/YYYY',
14221            ll : 'D MMM YYYY',
14222            lll : 'D MMM YYYY HH:mm',
14223            llll : 'ddd, D MMM YYYY HH:mm'
14224        },
14225        calendar : {
14226            sameDay: '[Hôm nay lúc] LT',
14227            nextDay: '[Ngày mai lúc] LT',
14228            nextWeek: 'dddd [tuần tới lúc] LT',
14229            lastDay: '[Hôm qua lúc] LT',
14230            lastWeek: 'dddd [tuần rồi lúc] LT',
14231            sameElse: 'L'
14232        },
14233        relativeTime : {
14234            future : '%s tới',
14235            past : '%s trước',
14236            s : 'vài giây',
14237            ss : '%d giây' ,
14238            m : 'một phút',
14239            mm : '%d phút',
14240            h : 'một giờ',
14241            hh : '%d giờ',
14242            d : 'một ngày',
14243            dd : '%d ngày',
14244            M : 'một tháng',
14245            MM : '%d tháng',
14246            y : 'một năm',
14247            yy : '%d năm'
14248        },
14249        dayOfMonthOrdinalParse: /\d{1,2}/,
14250        ordinal : function (number) {
14251            return number;
14252        },
14253        week : {
14254            dow : 1, // Monday is the first day of the week.
14255            doy : 4  // The week that contains Jan 4th is the first week of the year.
14256        }
14257    });
14258
14259    //! moment.js locale configuration
14260
14261    hooks.defineLocale('x-pseudo', {
14262        months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),
14263        monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.
14263split('_'),
14264        monthsParseExact : true,
14265        weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
14266        weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
14267        weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
14268        weekdaysParseExact : true,
14269        longDateFormat : {
14270            LT : 'HH:mm',
14271            L : 'DD/MM/YYYY',
14272            LL : 'D MMMM YYYY',
14273            LLL : 'D MMMM YYYY HH:mm',
14274            LLLL : 'dddd, D MMMM YYYY HH:mm'
14275        },
14276        calendar : {
14277            sameDay : '[T~ódá~ý át] LT',
14278            nextDay : '[T~ómó~rró~w át] LT',
14279            nextWeek : 'dddd [át] LT',
14280            lastDay : '[Ý~ést~érdá~ý át] LT',
14281            lastWeek : '[L~ást] dddd [át] LT',
14282            sameElse : 'L'
14283        },
14284        relativeTime : {
14285            future : 'í~ñ %s',
14286            past : '%s á~gó',
14287            s : 'á ~féw ~sécó~ñds',
14288            ss : '%d s~écóñ~ds',
14289            m : 'á ~míñ~úté',
14290            mm : '%d m~íñú~tés',
14291            h : 'á~ñ hó~úr',
14292            hh : '%d h~óúrs',
14293            d : 'á ~dáý',
14294            dd : '%d d~áýs',
14295            M : 'á ~móñ~th',
14296            MM : '%d m~óñt~hs',
14297            y : 'á ~ýéár',
14298            yy : '%d ý~éárs'
14299        },
14300        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
14301        ordinal : function (number) {
14302            var b = number % 10,
14303                output = (~~(number % 100 / 10) === 1) ? 'th' :
14304                (b === 1) ? 'st' :
14305                (b === 2) ? 'nd' :
14306                (b === 3) ? 'rd' : 'th';
14307            return number + output;
14308        },
14309        week : {
14310            dow : 1, // Monday is the first day of the week.
14311            doy : 4  // The week that contains Jan 4th is the first week of the year.
14312        }
14313    });
14314
14315    //! moment.js locale configuration
14316
14317    hooks.defineLocale('yo', {
14318        months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
14319        monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
14320        weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
14321        weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
14322        weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
14323        longDateFormat : {
14324            LT : 'h:mm A',
14325            LTS : 'h:mm:ss A',
14326            L : 'DD/MM/YYYY',
14327            LL : 'D MMMM YYYY',
14328            LLL : 'D MMMM YYYY h:mm A',
14329            LLLL : 'dddd, D MMMM YYYY h:mm A'
14330        },
14331        calendar : {
14332            sameDay : '[Ònì ni] LT',
14333            nextDay : '[Ọ̀la ni] LT',
14334            nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
14335            lastDay : '[Àna ni] LT',
14336            lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
14337            sameElse : 'L'
14338        },
14339        relativeTime : {
14340            future : 'ní %s',
14341            past : '%s kọjá',
14342            s : 'ìsẹjú aayá die',
14343            ss :'aayá %d',
14344            m : 'ìsẹjú kan',
14345            mm : 'ìsẹjú %d',
14346            h : 'wákati kan',
14347            hh : 'wákati %d',
14348            d : 'ọjọ́ kan',
14349            dd : 'ọjọ́ %d',
14350            M : 'osù kan',
14351            MM : 'osù %d',
14352            y : 'ọdún kan',
14353            yy : 'ọdún %d'
14354        },
14355        dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
14356        ordinal : 'ọjọ́ %d',
14357        week : {
14358            dow : 1, // Monday is the first day of the week.
14359            doy : 4 // The week that contains Jan 4th is the first week of the year.
14360        }
14361    });
14362
14363    //! moment.js locale configuration
14364
14365    hooks.defineLocale('zh-cn', {
14366        months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
14367        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
14368        weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
14369        weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
14370        weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
14371        longDateFormat : {
14372            LT : 'HH:mm',
14373            LTS : 'HH:mm:ss',
14374            L : 'YYYY/MM/DD',
14375            LL : 'YYYY年M月D日',
14376            LLL : 'YYYY年M月D日Ah点mm分',
14377            LLLL : 'YYYY年M月D日ddddAh点mm分',
14378            l : 'YYYY/M/D',
14379            ll : 'YYYY年M月D日',
14380            lll : 'YYYY年M月D日 HH:mm',
14381            llll : 'YYYY年M月D日dddd HH:mm'
14382        },
14383        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
14384        meridiemHour: function (hour, meridiem) {
14385            if (hour === 12) {
14386                hour = 0;
14387            }
14388            if (meridiem === '凌晨' || meridiem === '早上' ||
14389                    meridiem === '上午') {
14390                return hour;
14391            } else if (meridiem === '下午' || meridiem === '晚上') {
14392                return hour + 12;
14393            } else {
14394                // '中午'
14395                return hour >= 11 ? hour : hour + 12;
14396            }
14397        },
14398        meridiem : function (hour, minute, isLower) {
14399            var hm = hour * 100 + minute;
14400            if (hm < 600) {
14401                return '凌晨';
14402            } else if (hm < 900) {
14403                return '早上';
14404            } else if (hm < 1130) {
14405                return '上午';
14406            } else if (hm < 1230) {
14407                return '中午';
14408            } else if (hm < 1800) {
14409                return '下午';
14410            } else {
14411                return '晚上';
14412            }
14413        },
14414        calendar : {
14415            sameDay : '[今天]LT',
14416            nextDay : '[明天]LT',
14417            nextWeek : '[下]ddddLT',
14418            lastDay : '[昨天]LT',
14419            lastWeek : '[上]ddddLT',
14420            sameElse : 'L'
14421        },
14422        dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
14423        ordinal : function (number, period) {
14424            switch (period) {
14425                case 'd':
14426                case 'D':
14427                case 'DDD':
14428                    return number + '日';
14429                case 'M':
14430                    return number + '月';
14431                case 'w':
14432                case 'W':
14433                    return number + '周';
14434                default:
14435                    return number;
14436            }
14437        },
14438        relativeTime : {
14439            future : '%s内',
14440            past : '%s前',
14441            s : '几秒',
14442            ss : '%d 秒',
14443            m : '1 分钟',
14444            mm : '%d 分钟',
14445            h : '1 小时',
14446            hh : '%d 小时',
14447            d : '1 天',
14448            dd : '%d 天',
14449            M : '1 个月',
14450            MM : '%d 个月',
14451            y : '1 å¹´',
14452            yy : '%d å¹´'
14453        },
14454        week : {
14455            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
14456            dow : 1, // Monday is the first day of the week.
14457            doy : 4  // The week that contains Jan 4th is the first week of the year.
14458        }
14459    });
14460
14461    //! moment.js locale configuration
14462
14463    hooks.defineLocale('zh-hk', {
14464        months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
14465        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
14466        weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
14467        weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
14468        weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
14469        longDateFormat : {
14470            LT : 'HH:mm',
14471            LTS : 'HH:mm:ss',
14472            L : 'YYYY/MM/DD',
14473            LL : 'YYYY年M月D日',
14474            LLL : 'YYYY年M月D日 HH:mm',
14475            LLLL : 'YYYY年M月D日dddd HH:mm',
14476            l : 'YYYY/M/D',
14477            ll : 'YYYY年M月D日',
14478            lll : 'YYYY年M月D日 HH:mm',
14479            llll : 'YYYY年M月D日dddd HH:mm'
14480        },
14481        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
14482        meridiemHour : function (hour, meridiem) {
14483            if (hour === 12) {
14484                hour = 0;
14485            }
14486            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
14487                return hour;
14488            } else if (meridiem === '中午') {
14489                return hour >= 11 ? hour : hour + 12;
14490            } else if (meridiem === '下午' || meridiem === '晚上') {
14491                return hour + 12;
14492            }
14493        },
14494        meridiem : function (hour, minute, isLower) {
14495            var hm = hour * 100 + minute;
14496            if (hm < 600) {
14497                return '凌晨';
14498            } else if (hm < 900) {
14499                return '早上';
14500            } else if (hm < 1130) {
14501                return '上午';
14502            } else if (hm < 1230) {
14503                return '中午';
14504            } else if (hm < 1800) {
14505                return '下午';
14506            } else {
14507                return '晚上';
14508            }
14509        },
14510        calendar : {
14511            sameDay : '[今天]LT',
14512            nextDay : '[明天]LT',
14513            nextWeek : '[下]ddddLT',
14514            lastDay : '[昨天]LT',
14515            lastWeek : '[上]ddddLT',
14516            sameElse : 'L'
14517        },
14518        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
14519        ordinal : function (number, period) {
14520            switch (period) {
14521                case 'd' :
14522                case 'D' :
14523                case 'DDD' :
14524                    return number + '日';
14525                case 'M' :
14526                    return number + '月';
14527                case 'w' :
14528                case 'W' :
14529                    return number + '週';
14530                default :
14531                    return number;
14532            }
14533        },
14534        relativeTime : {
14535            future : '%s內',
14536            past : '%s前',
14537            s : '幾秒',
14538            ss : '%d 秒',
14539            m : '1 分鐘',
14540            mm : '%d 分鐘',
14541            h : '1 小時',
14542            hh : '%d 小時',
14543            d : '1 天',
14544            dd : '%d 天',
14545            M : '1 個月',
14546            MM : '%d 個月',
14547            y : '1 å¹´',
14548            yy : '%d å¹´'
14549        }
14550    });
14551
14552    //! moment.js locale configuration
14553
14554    hooks.defineLocale('zh-tw', {
14555        months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
14556        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
14557        weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
14558        weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
14559        weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
14560        longDateFormat : {
14561            LT : 'HH:mm',
14562            LTS : 'HH:mm:ss',
14563            L : 'YYYY/MM/DD',
14564            LL : 'YYYY年M月D日',
14565            LLL : 'YYYY年M月D日 HH:mm',
14566            LLLL : 'YYYY年M月D日dddd HH:mm',
14567            l : 'YYYY/M/D',
14568            ll : 'YYYY年M月D日',
14569            lll : 'YYYY年M月D日 HH:mm',
14570            llll : 'YYYY年M月D日dddd HH:mm'
14571        },
14572        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
14573        meridiemHour : function (hour, meridiem) {
14574            if (hour === 12) {
14575                hour = 0;
14576            }
14577            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
14578                return hour;
14579            } else if (meridiem === '中午') {
14580                return hour >= 11 ? hour : hour + 12;
14581            } else if (meridiem === '下午' || meridiem === '晚上') {
14582                return hour + 12;
14583            }
14584        },
14585        meridiem : function (hour, minute, isLower) {
14586            var hm = hour * 100 + minute;
14587            if (hm < 600) {
14588                return '凌晨';
14589            } else if (hm < 900) {
14590                return '早上';
14591            } else if (hm < 1130) {
14592                return '上午';
14593            } else if (hm < 1230) {
14594                return '中午';
14595            } else if (hm < 1800) {
14596                return '下午';
14597            } else {
14598                return '晚上';
14599            }
14600        },
14601        calendar : {
14602            sameDay : '[今天] LT',
14603            nextDay : '[明天] LT',
14604            nextWeek : '[下]dddd LT',
14605            lastDay : '[昨天] LT',
14606            lastWeek : '[上]dddd LT',
14607            sameElse : 'L'
14608        },
14609        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
14610        ordinal : function (number, period) {
14611            switch (period) {
14612                case 'd' :
14613                case 'D' :
14614                case 'DDD' :
14615                    return number + '日';
14616                case 'M' :
14617                    return number + '月';
14618                case 'w' :
14619                case 'W' :
14620                    return number + '週';
14621                default :
14622                    return number;
14623            }
14624        },
14625        relativeTime : {
14626            future : '%s內',
14627            past : '%s前',
14628            s : '幾秒',
14629            ss : '%d 秒',
14630            m : '1 分鐘',
14631            mm : '%d 分鐘',
14632            h : '1 小時',
14633            hh : '%d 小時',
14634            d : '1 天',
14635            dd : '%d 天',
14636            M : '1 個月',
14637            MM : '%d 個月',
14638            y : '1 å¹´',
14639            yy : '%d å¹´'
14640        }
14641    });
14642
14643    hooks.locale('en');
14644
14645    return hooks;
14646
14647})));
14648;!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("scrollMonitor",[],e):"object"==typeof exports?exp
14648orts.scrollMonitor=e():t.scrollMonitor=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var s=i[o]={exports:{},id:o,loaded:!1};return t[o].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";var o=i(1),s=o.isInBrowser,n=i(2),r=new n(s?document.body:null);r.setStateFromDOM(null),r.listenToDOM(),s&&(window.scrollMonitor=r),t.exports=r},function(t,e){"use strict";e.VISIBILITYCHANGE="visibilityChange",e.ENTERVIEWPORT="enterViewport",e.FULLYENTERVIEWPORT="fullyEnterViewport",e.EXITVIEWPORT="exitViewport",e.PARTIALLYEXITVIEWPORT="partiallyExitViewport",e.LOCATIONCHANGE="locationChange",e.STATECHANGE="stateChange",e.eventTypes=[e.VISIBILITYCHANGE,e.ENTERVIEWPORT,e.FULLYENTERVIEWPORT,e.EXITVIEWPORT,e.PARTIALLYEXITVIEWPORT,e.LOCATIONCHANGE,e.STATECHANGE],e.isOnServer="undefined"==typeof window,e.isInBrowser=!e.isOnServer,e.defaultOffsets={top:0,bottom:0}},function(t,e,i){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t){return c?0:t===document.body?window.innerHeight||document.documentElement.clientHeight:t.clientHeight}function n(t){return c?0:t===document.body?Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.documentElement.clientHeight):t.scrollHeight}function r(t){return c?0:t===document.body?window.pageYOffset||document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop}var h=i(1),c=h.isOnServer,a=h.isInBrowser,l=h.eventTypes,p=i(3),u=!1;if(a)try{var w=Object.defineProperty({},"passive",{get:function(){u=!0}});window.addEventListener("test",null,w)}catch(t){}var d=!!u&&{capture:!1,passive:!0},f=function(){function t(e,i){function h(){if(a.viewportTop=r(e),a.viewportBottom=a.viewportTop+a.viewportHeight,a.documentHeight=n(e),a.documentHeight!==p){for(u=a.watchers.length;u--;)a.watchers[u].recalculateLocation();p=a.documentHeight}}function c(){for(w=a.watchers.length;w--;)a.watchers[w].update();for(w=a.watchers.length;w--;)a.watchers[w].triggerCallbacks()}o(this,t);var a=this;this.item=e,this.watchers=[],this.viewportTop=null,this.viewportBottom=null,this.documentHeight=n(e),this.viewportHeight=s(e),this.DOMListener=function(){t.prototype.DOMListener.apply(a,arguments)},this.eventTypes=l,i&&(this.containerWatcher=i.create(e));var p,u,w;this.update=function(){h(),c()},this.recalculateLocations=function(){this.documentHeight=0,this.update()}}return t.prototype.listenToDOM=function(){a&&(window.addEventListener?(this.item===document.body?window.addEventListener("scroll",this.DOMListener,d):this.item.addEventListener("scroll",this.DOMListener,d),window.addEventListener("resize",this.DOMListener)):(this.item===document.body?window.attachEvent("onscroll",this.DOMListener):this.item.attachEvent("onscroll",this.DOMListener),window.attachEvent("onresize",this.DOMListener)),this.destroy=function(){window.addEventListener?(this.item===document.body?(window.removeEventListener("scroll",this.DOMListener,d),this.containerWatcher.destroy()):this.item.removeEventListener("scroll",this.DOMListener,d),window.removeEventListener("resize",this.DOMListener)):(this.item===document.body?(window.detachEvent("onscroll",this.DOMListener),this.containerWatcher.destroy()):this.item.detachEvent("onscroll",this.DOMListener),window.detachEvent("onresize",this.DOMListener))})},t.prototype.destroy=function(){},t.prototype.DOMListener=function(t){this.setStateFromDOM(t)},t.prototype.setStateFromDOM=function(t){var e=r(this.item),i=s(this.item),o=n(this.item);this.setState(e,i,o,t)},t.prototype.setState=function(t,e,i,o){var s=e!==this.viewportHeight||i!==this.contentHeight;if(this.latestEvent=o,this.viewportTop=t,this.viewportHeight=e,this.viewportBottom=t+e,this.contentHeight=i,s)for(var n=this.watchers.length;n--;)this.watchers[n].recalculateLocation();this.updateAndTriggerWatchers(o)},t.prototype.updateAndTriggerWatchers=function(t){for(var e=this.watchers.length;e--;)this.watchers[e].update();for(e=this.watchers.length;e--;)this.watchers[e].triggerCallbacks(t)},t.prototype.createCustomContainer=function(){return new t},t.prototype.createContainer=function(e){"string"==typeof e?e=document.querySelector(e):e&&e.length>0&&(e=e[0]);var i=new t(e,this);return i.setStateFromDOM(),i.listenToDOM(),i},t.prototype.create=function(t,e){"string"==typeof t?t=document.querySelector(t):t&&t.length>0&&(t=t[0]);var i=new p(this,t,e);return this.watchers.push(i),i},t.prototype.beget=function(t,e){return this.create(t,e)},t}();t.exports=f}
14648,function(t,e,i){"use strict";function o(t,e,i){function o(t,e){if(0!==t.length)for(E=t.length;E--;)y=t[E],y.callback.call(s,e,s),y.isOne&&t.splice(E,1)}var s=this;this.watchItem=e,this.container=t,i?i===+i?this.offsets={top:i,bottom:i}:this.offsets={top:i.top||w.top,bottom:i.bottom||w.bottom}:this.offsets=w,this.callbacks={};for(var d=0,f=u.length;d<f;d++)s.callbacks[u[d]]=[];this.locked=!1;var m,v,b,I,E,y;this.triggerCallbacks=function(t){switch(this.isInViewport&&!m&&o(this.callbacks[r],t),this.isFullyInViewport&&!v&&o(this.callbacks[h],t),this.isAboveViewport!==b&&this.isBelowViewport!==I&&(o(this.callbacks[n],t),v||this.isFullyInViewport||(o(this.callbacks[h],t),o(this.callbacks[a],t)),m||this.isInViewport||(o(this.callbacks[r],t),o(this.callbacks[c],t))),!this.isFullyInViewport&&v&&o(this.callbacks[a],t),!this.isInViewport&&m&&o(this.callbacks[c],t),this.isInViewport!==m&&o(this.callbacks[n],t),!0){case m!==this.isInViewport:case v!==this.isFullyInViewport:case b!==this.isAboveViewport:case I!==this.isBelowViewport:o(this.callbacks[p],t)}m=this.isInViewport,v=this.isFullyInViewport,b=this.isAboveViewport,I=this.isBelowViewport},this.recalculateLocation=function(){if(!this.locked){var t=this.top,e=this.bottom;if(this.watchItem.nodeName){var i=this.watchItem.style.display;"none"===i&&(this.watchItem.style.display="");for(var s=0,n=this.container;n.containerWatcher;)s+=n.containerWatcher.top-n.containerWatcher.container.viewportTop,n=n.containerWatcher.container;var r=this.watchItem.getBoundingClientRect();this.top=r.top+this.container.viewportTop-s,this.bottom=r.bottom+this.container.viewportTop-s,"none"===i&&(this.watchItem.style.display=i)}else this.watchItem===+this.watchItem?this.watchItem>0?this.top=this.bottom=this.watchItem:this.top=this.bottom=this.container.documentHeight-this.watchItem:(this.top=this.watchItem.top,this.bottom=this.watchItem.bottom);this.top-=this.offsets.top,this.bottom+=this.offsets.bottom,this.height=this.bottom-this.top,void 0===t&&void 0===e||this.top===t&&this.bottom===e||o(this.callbacks[l],null)}},this.recalculateLocation(),this.update(),m=this.isInViewport,v=this.isFullyInViewport,b=this.isAboveViewport,I=this.isBelowViewport}var s=i(1),n=s.VISIBILITYCHANGE,r=s.ENTERVIEWPORT,h=s.FULLYENTERVIEWPORT,c=s.EXITVIEWPORT,a=s.PARTIALLYEXITVIEWPORT,l=s.LOCATIONCHANGE,p=s.STATECHANGE,u=s.eventTypes,w=s.defaultOffsets;o.prototype={on:function(t,e,i){switch(!0){case t===n&&!this.isInViewport&&this.isAboveViewport:case t===r&&this.isInViewport:case t===h&&this.isFullyInViewport:case t===c&&this.isAboveViewport&&!this.isInViewport:case t===a&&this.isInViewport&&this.isAboveViewport:if(e.call(this,this.container.latestEvent,this),i)return}if(!this.callbacks[t])throw new Error("Tried to add a scroll monitor listener of type "+t+". Your options are: "+u.join(", "));this.callbacks[t].push({callback:e,isOne:i||!1})},off:function(t,e){if(!this.callbacks[t])throw new Error("Tried to remove a scroll monitor listener of type "+t+". Your options are: "+u.join(", "));for(var i,o=0;i=this.callbacks[t][o];o++)if(i.callback===e){this.callbacks[t].splice(o,1);break}},one:function(t,e){this.on(t,e,!0)},recalculateSize:function(){this.height=this.watchItem.offsetHeight+this.offsets.top+this.offsets.bottom,this.bottom=this.top+this.height},update:function(){this.isAboveViewport=this.top<this.container.viewportTop,this.isBelowViewport=this.bottom>this.container.viewportBottom,this.isInViewport=this.top<this.container.viewportBottom&&this.bottom>this.container.viewportTop,this.isFullyInViewport=this.top>=this.container.viewportTop&&this.bottom<=this.container.viewportBottom||this.isAboveViewport&&this.isBelowViewport},destroy:function(){var t=this.container.watchers.indexOf(this),e=this;this.container.watchers.splice(t,1);for(var i=0,o=u.length;i<o;i++)e.callbacks[u[i]].length=0},lock:function(){this.locked=!0},unlock:function(){this.locked=!1}};for(var d=function(t){return function(e,i){this.on.call(this,t,e,i)}},f=0,m=u.length;f<m;f++){var v=u[f];o.prototype[v]=d(v)}t.exports=o}])});
14649;
vendor: 43,577 bytes, line 14649
14649!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(d){"use strict";var s,l=window.Slick||{};s=0,(l=function(i,e){var t,o=this;o.defaults={adaptiveHeight:!1,appendArrows:d(i),appendDots:d(i),arrows:!0,arrowsPlacement:null,asNavFor:null,prevArrow:'<button class="slick-prev" type="button"><span class="slick-prev-icon" aria-hidden="true"></span><span class="slick-sr-only">Previous</span></button>',nextArrow:'<button class="slick-next" type="button"><span class="slick-next-icon" aria-hidden="true"></span><span class="slick-sr-only">Next</span></button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(i,e){return d('<button type="button"><span class="slick-dot-icon" aria-hidden="true"></span><span class="slick-sr-only">Go to slide '+(e+1)+"</span></button>")},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,infinite:!0,initialSlide:0,instructionsText:null,lazyLoad:"ondemand",mobileFirst:!1,playIcon:'<span class="slick-play-icon" aria-hidden="true"></span>',pauseIcon:'<span class="slick-pause-icon" aria-hidden="true"></span>',pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,regionLabel:"carousel",respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useAutoplayToggleButton:!0,useCSS:!0,useGroupRole:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},o.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,$instructionsText:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$pauseButton:null,$pauseIcon:null,$playIcon:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},d.extend(o,o.initials),o.activeBreakpoint=null,o.animType=null,o.animProp=null,o.breakpoints=[],o.breakpointSettings=[],o.cssTransitions=!1,o.focussed=!1,o.interrupted=!1,o.hidden="hidden",o.paused=!0,o.positionProp=null,o.respondTo=null,o.rowCount=1,o.shouldClick=!0,o.$slider=d(i),o.$slidesCache=null,o.transformType=null,o.transitionType=null,o.visibilityChange="visibilitychange",o.windowWidth=0,o.windowTimer=null,t=d(i).data("slick")||{},o.options=d.extend({},o.defaults,e,t),o.currentSlide=o.options.initialSlide,o.originalSettings=o.options,void 0!==document.mozHidden?(o.hidden="mozHidden",o.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(o.hidden="webkitHidden",o.visibilityChange="webkitvisibilitychange"),o.autoPlay=d.proxy(o.autoPlay,o),o.autoPlayClear=d.proxy(o.autoPlayClear,o),o.autoPlayIterator=d.proxy(o.autoPlayIterator,o),o.autoPlayToggleHandler=d.proxy(o.autoPlayToggleHandler,o),o.changeSlide=d.proxy(o.changeSlide,o),o.clickHandler=d.proxy(o.clickHandler,o),o.selectHandler=d.proxy(o.selectHandler,o),o.setPosition=d.proxy(o.setPosition,o),o.swipeHandler=d.proxy(o.swipeHandler,o),o.dragHandler=d.proxy(o.dragHandler,o),o.instanceUid=s++,o.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,o.registerBreakpoints(),o.init(!0)}).prototype.addSlide=l.prototype.slickAdd=function(i,e,t){var o=this;if("boolean"==typeof e)t=e,e=null;else if(e<0||e>=o.slideCount)return!1;o.unload(),"number"==typeof e?0===e&&0===o.$slides.length?d(i).appendTo(o.$slideTrack):t?d(i).insertBefore(o.$slides.eq(e)):d(i).insertAfter(o.$slides.eq(e)):!0===t?d(i).prependTo(o.$slideTrack):d(i).appendTo(o.$slideTrack),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slides.each(function(i,e){d(e).attr("data-slick-index",i),d(e).attr("role","group"),d(e).attr("aria-label","slide "+i)}),o.$slidesCache=o.$slides,o.reinit()},l.prototype.animateHeight=function(){var i,e=this;1===e.options.slidesToShow&&!0===e.options.adaptiveHeight&&!1===e.options.vertical&&(i=e.$slides.eq(e.currentSlide).outerHeight(!0),e.$list.animate({height:i},e.options.speed))},l.prototype.animateSlide=function(i,e){var t={},o=this;o.animateHeight(),!0===o.options.rtl&&!1===o.options.vertical&&(i=-i),!1===o.transformsEnabled?!1===o.options.vertical?o.$slideTrack.animate({left:i},o.options.speed,o.options.easing,e):o.$slideTrack.animate({top:i},o.options.speed,o.options.easing,e):!1===o.cssTransitions?(!0===o.options.rtl&&(o.currentLeft=-o.currentLeft),d({animStart:o.currentLeft}).animate({animStart:i},{duration:o.options.speed,easing:o.options.easing,step:function(i){i=Math.ceil(i),!1===o.options.vertical?t[o.animType]="translate("+i+"px, 0px)":t[o.animType]="translate(0px,"+i+"px)",o.$slideTrack.css(t)},complete:function(){e&&e.call()}})):(o.applyTransition(),i=Math.ceil(i),!1===o.options.vertical?t[o.animType]="translate3d("+i+"px, 0px, 0px)":t[o.animType]="translate3d(0px,"+i+"px, 0px)",o.$slideTrack.css(t),e&&setTimeout(function(){o.disableTransition(),e.call()},o.options.speed))},l.prototype.getNavTarget=function(){var i=this.options.asNavFor;return i&&null!==i&&(i=d(i).not(this.$slider)),i},l.prototype.asNavFor=function(e){var i=this.getNavTarget();null!==i&&"object"==typeof i&&i.each(function(){var i=d(this).slick("getSlick");i.unslicked||i.slideHandler(e,!0)})},l.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},l.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},l.prototype.autoPlayClear=function(){this.autoPlayTimer&&clearInterval(this.autoPlayTimer)},l.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},l.prototype.autoPlayToggleHandler=function(){var i=this;i.paused?(i.$playIcon.css("display","none"),i.$pauseIcon.css("display","inline"),i.$pauseButton.find(".slick-play-text").attr("style","display: none"),i.$pauseButton.find(".slick-pause-text").removeAttr("style"),i.slickPlay()):(i.$playIcon.css("display","inline"),i.$pauseIcon.css("display","none"),i.$pauseButton.find(".slick-play-text").removeAttr("style"),i.$pauseButton.find(".slick-pause-text").attr("style","display: none"),i.slickPause())},l.prototype.buildArrows=function(){var i=this;if(!0===i.options.arrows)if(i.$prevArrow=d(i.options.prevArrow).addClass("slick-arrow"),i.$nextArrow=d(i.options.nextArrow).addClass("slick-arrow"),i.slideCount>i.options.slidesToShow){if(i.htmlExpr.test(i.options.prevArrow))if(null!=i.options.arrowsPlacement)switch(i.options.arrowsPlacement){case"beforeSlides":case"split":console.log("test"),i.$prevArrow.prependTo(i.options.appendArrows);break;case"afterSlides":i.$prevArrow.appendTo(i.options.appendArrows)}else i.$prevArrow.prependTo(i.options.appendArrows);if(i.htmlExpr.test(i.options.nextArrow))if(null!=i.options.arrowsPlacement)switch(i.options.arrowsPlacement){case"beforeSlides":console.log("test2"),i.$prevArrow.after(i.$nextArrow);break;case"afterSlides":case"split":i.$nextArrow.appendTo(i.options.appendArrows)}else i.$nextArrow.appendTo(i.options.appendArrows);!0!==i.options.infinite&&i.$prevArrow.addClass("slick-disabled").prop("disabled",!0)}else i.$prevArrow.add(i.$nextArrow).addClass("slick-hidden").prop("disabled",!0)},l.prototype.buildDots=function(){var i,e,t=this;if(!0===t.options.dots&&t.slideCount>t.options.slidesToShow){for(t.$slider.addClass("slick-dotted"),e=d("<ul />").addClass(t.options.dotsClass),i=0;i<=t.getDotCount();i+=1)e.append(d("<li />").append(t.options.customPaging.call(this,t,i)));t.$dots=e.appendTo(t.options.appendDots),t.$dots.find("li").first().addClass("slick-active")}},l.prototype.buildOut=function(){var t=this;t.$slides=t.$slider.children(t.options.slide+":not(.slick-cloned)").addClass("slick-slide"),t.slideCount=t.$slides.length,t.$slides.each(function(i,e){d(e).attr("data-slick-index",i).data("originalStyling",d(e).attr("style")||""),t.options.useGroupRole&&d(e).attr("role","group").attr("aria-label","slide "+(i+1))}),t.$slider.addClass("slick-slider"),t.$slider.attr("role","region"),t.$slider.attr("aria-label",t.options.regionLabel),t.$slideTrack=0===t.slideCount?d('<div class="slick-track"/>').appendTo(t.$slider):t.$slides.wrapAll('<div class="slick-track"/>').parent(),t.$list=t.$slideTrack.wrap('<div class="slick-list"/>').parent(),t.$slideTrack.css("opacity",0),!0!==t.options.centerMode&&!0!==t.options.swipeToSlide||(t.options.slidesToScroll=1),d("img[data-lazy]",t.$slider).not("[src]").addClass("slick-loading"),t.setupInfinite(),t.buildArrows(),t.buildDots(),t.updateDots(),t.setSlideClasses("number"==typeof t.currentSlide?t.currentSlide:0),!0===t.options.draggable&&t.$list.addClass("draggable"),t.options.autoplay&&t.options.useAutoplayToggleButton&&(t.$pauseIcon=d(t.options.pauseIcon).attr("aria-hidden",!0),t.$playIcon=d(t.options.playIcon).attr("aria-hidden",!0),t.$pauseButton=d('<button type="button" class="slick-autoplay-toggle-button">'),t.$pauseButton.append(t.$pauseIcon),t.$pauseButton.append(t.$playIcon.css("display","none")),t.$pauseButton.append(d('<span class="slick-pause-text slick-sr-only">Pause</span>')),t.$pauseButton.append(d('<span class="slick-play-text slick-sr-only" style="display: none">Play</span>')),t.$pauseButton.prependTo(t.$slider)),null!=t.options.instructionsText&&""!=t.options.instructionsText&&(t.$instructionsText=d('<p class="slick-instructions slick-sr-only">'+t.options.instructionsText+"</p>"),t.$instructionsText.prependTo(t.$slider))},l.prototype.buildRows=function(){var i,e,t,o=this,s=document.createDocumentFragment(),n=o.$slider.children();if(0<o.options.rows){for(t=o.options.slidesPerRow*o.options.rows,e=Math.ceil(n.length/t),i=0;i<e;i++){for(var l=document.createElement("div"),r=0;r<o.options.rows;r++){for(var a=document.createElement("div"),d=0;d<o.options.slidesPerRow;d++){var p=i*t+(r*o.options.slidesPerRow+d);n.get(p)&&a.appendChild(n.get(p))}l.appendChild(a)}s.appendChild(l)}o.$slider.empty().append(s),o.$slider.children().children().children().css({width:100/o.options.slidesPerRow+"%",display:"inline-block"})}},l.prototype.checkResponsive=function(i,e){var t,o,s,n=this,l=!1,r=n.$slider.width(),a=window.innerWidth||d(window).width();if("window"===n.respondTo?s=a:"slider"===n.respondTo?s=r:"min"===n.respondTo&&(s=Math.min(a,r)),n.options.responsive&&n.options.responsive.length&&null!==n.options.responsive){for(t in o=null,n.breakpoints)n.breakpoints.hasOwnProperty(t)&&(!1===n.originalSettings.mobileFirst?s<n.breakpoints[t]&&(o=n.breakpoints[t]):s>n.breakpoints[t]&&(o=n.breakpoints[t]));null!==o?null!==n.activeBreakpoint&&o===n.activeBreakpoint&&!e||(n.activeBreakpoint=o,"unslick"===n.breakpointSettings[o]?n.unslick(o):(n.options=d.extend({},n.originalSettings,n.breakpointSettings[o]),!0===i&&(n.currentSlide=n.options.initialSlide),n.refresh(i)),l=o):null!==n.activeBreakpoint&&(n.activeBreakpoint=null,n.options=n.originalSettings,!0===i&&(n.currentSlide=n.options.initialSlide),n.refresh(i),l=o),i||!1===l||n.$slider.trigger("breakpoint",[n,l])}},l.prototype.changeSlide=function(i,e){var t,o,s=this,n=d(i.currentTarget);switch(n.is("a")&&i.preventDefault(),n.is("li")||(n=n.closest("li")),t=s.slideCount%s.options.slidesToScroll!=0?0:(s.slideCount-s.currentSlide)%s.options.slidesToScroll,i.data.message){case"previous":o=0==t?s.options.slidesToScroll:s.options.slidesToShow-t,s.slideCount>s.options.slidesToShow&&s.slideHandler(s.currentSlide-o,!1,e);break;case"next":o=0==t?s.options.slidesToScroll:t,s.slideCount>s.options.slidesToShow&&s.slideHandler(s.currentSlide+o,!1,e);break;case"index":var l=0===i.data.index?0:i.data.index||n.index()*s.options.slidesToScroll;s.slideHandler(s.checkNavigable(l),!1,e),n.children().trigger("focus");break;default:return}},l.prototype.checkNavigable=function(i){var e=this.getNavigableIndexes(),t=0;if(i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},l.prototype.cleanUpEvents=function(){var i=this;i.options.autoplay&&i.options.useAutoplayToggleButton&&i.$pauseButton.off("click.slick",i.autoPlayToggleHandler),i.options.dots&&null!==i.$dots&&d("li",i.$dots).off("click.slick",i.changeSlide).off("mouseenter.slick",d.proxy(i.interrupt,i,!0)).off("mouseleave.slick",d.proxy(i.interrupt,i,!1)),i.$slider.off("focus.slick blur.slick"),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow&&i.$prevArrow.off("click.slick",i.changeSlide),i.$nextArrow&&i.$nextArrow.off("click.slick",i.changeSlide)),i.$list.off("touchstart.slick mousedown.slick",i.swipeHandler),i.$list.off("touchmove.slick mousemove.slick",i.swipeHandler),i.$list.off("touchend.slick mouseup.slick",i.swipeHandler),i.$list.off("touchcancel.slick mouseleave.slick",i.swipeHandler),i.$list.off("click.slick",i.clickHandler),d(document).off(i.visibilityChange,i.visibility),i.cleanUpSlideEvents(),d(window).off("orientationchange.slick.slick-"+i.instanceUid,i.orientationChange),d(window).off("resize.slick.slick-"+i.instanceUid,i.resize),d("[draggable!=true]",i.$slideTrack).off("dragstart",i.preventDefault),d(window).off("load.slick.slick-"+i.instanceUid,i.setPosition)},l.prototype.cleanUpSlideEvents=function(){var i=this;i.$list.off("mouseenter.slick",d.proxy(i.interrupt,i,!0)),i.$list.off("mouseleave.slick",d.proxy(i.interrupt,i,!1))},l.prototype.cleanUpRows=function(){var i;0<this.options.rows&&((i=this.$slides.children().children()).removeAttr("style"),this.$slider.empty().append(i))},l.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},l.prototype.destroy=function(i){var e=this;e.autoPlayClear(),e.touchObject={},e.cleanUpEvents(),d(".slick-cloned",e.$slider).detach(),e.options.autoplay&&e.options.useAutoplayToggleButton&&e.$pauseButton.remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.$prevArrow.length&&(e.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled",!1).css("display",""),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove()),e.$nextArrow&&e.$nextArrow.length&&(e.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled",!1).css("display",""),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove()),e.$slides&&(e.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){d(this).attr("style",d(this).data("originalStyling"))}),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.detach(),e.$list.detach(),e.$slider.append(e.$slides)),e.cleanUpRows(),e.$slider.removeClass("slick-slider"),e.$slider.removeClass("slick-initialized"),e.$slider.removeClass("slick-dotted"),e.unslicked=!0,i||e.$slider.trigger("destroy",[e])},l.prototype.disableTransition=function(i){var e={};e[this.transitionType]="",!1===this.options.fade?this.$slideTrack.css(e):this.$slides.eq(i).css(e)},l.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},l.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},l.prototype.filterSlides=l.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},l.prototype.focusHandler=function(){var t=this;t.$slider.off("focus.slick blur.slick").on("focus.slick","*",function(i){var e=d(this);setTimeout(function(){t.options.pauseOnFocus&&e.is(":focus")&&(t.focussed=!0,t.autoPlay())},0)}).on("blur.slick","*",function(i){d(this);t.options.pauseOnFocus&&(t.focussed=!1,t.autoPlay())})},l.prototype.getCurrent=l.prototype.slickCurrentSlide=function(){return this.currentSlide},l.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},l.prototype.getLeft=function(i){var e,t,o,s,n=this,l=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),l=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(l=i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,l=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(l=n.slideOffset=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+l,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},l.prototype.getOption=l.prototype.slickGetOption=function(i){return this.options[i]},l.prototype.getNavigableIndexes=function(){for(var i=this,e=0,t=0,o=[],s=!1===i.options.infinite?i.slideCount:(e=-1*i.options.slidesToScroll,t=-1*i.options.slidesToScroll,2*i.slideCount);e<s;)o.push(e),e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;return o},l.prototype.getSlick=function(){return this},l.prototype.getSlideCount=function(){var s,n=this,i=!0===n.options.centerMode?Math.floor(n.$list.width()/2):0,l=-1*n.swipeLeft+i;return!0===n.options.swipeToSlide?(n.$slideTrack.find(".slick-slide").each(function(i,e){var t=d(e).outerWidth(),o=e.offsetLeft;if(!0!==n.options.centerMode&&(o+=t/2),l<o+t)return s=e,!1}),Math.abs(d(s).attr("data-slick-index")-n.currentSlide)||1):n.options.slidesToScroll},l.prototype.goTo=l.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},l.prototype.init=function(i){var e=this;d(e.$slider).hasClass("slick-initialized")||(d(e.$slider).addClass("slick-initialized"),e.buildRows(),e.buildOut(),e.setProps(),e.startLoad(),e.loadSlider(),e.initializeEvents(),e.updateArrows(),e.updateDots(),e.checkResponsive(!0),e.focusHandler()),i&&e.$slider.trigger("init",[e]),e.options.autoplay&&(e.paused=!1,e.autoPlay()),e.updateSlideVisibility(),null!=e.options.accessibility&&console.warn("accessibility setting is no longer supported."),null!=e.options.focusOnChange&&console.warn("focusOnChange is no longer supported."),null!=e.options.focusOnSelect&&console.warn("focusOnSelect is no longer supported.")},l.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide))},l.prototype.initDotEvents=function(){var i=this;!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&d("li",i.$dots).on("click.slick",{message:"index"},i.changeSlide),!0===i.options.dots&&!0===i.options.pauseOnDotsHover&&i.slideCount>i.options.slidesToShow&&d("li",i.$dots).on("mouseenter.slick",d.proxy(i.interrupt,i,!0)).on("mouseleave.slick",d.proxy(i.interrupt,i,!1))},l.prototype.initSlideEvents=function(){var i=this;i.options.pauseOnHover&&(i.$list.on("mouseenter.slick",d.proxy(i.interrupt,i,!0)),i.$list.on("mouseleave.slick",d.proxy(i.interrupt,i,!1)))},l.prototype.initializeEvents=function(){var i=this;i.initArrowEvents(),i.initDotEvents(),i.initSlideEvents(),i.options.autoplay&&i.options.useAutoplayToggleButton&&i.$pauseButton.on("click.slick",i.autoPlayToggleHandler),i.$list.on("touchstart.slick mousedown.slick",{action:"start"},i.swipeHandler),i.$list.on("touchmove.slick mousemove.slick",{action:"move"},i.swipeHandler),i.$list.on("touchend.slick mouseup.slick",{action:"end"},i.swipeHandler),i.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},i.swipeHandler),i.$list.on("click.slick",i.clickHandler),d(document).on(i.visibilityChange,d.proxy(i.visibility,i)),d(window).on("orientationchange.slick.slick-"+i.instanceUid,d.proxy(i.orientationChange,i)),d(window).on("resize.slick.slick-"+i.instanceUid,d.proxy(i.resize,i)),d("[draggable!=true]",i.$slideTrack).on("dragstart",i.preventDefault),d(window).on("load.slick.slick-"+i.instanceUid,i.setPosition),d(i.setPosition)},l.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},l.prototype.lazyLoad=function(){var i,e,t,n=this;function o(i){d("img[data-lazy]",i).each(function(){var i=d(this),e=d(this).attr("data-lazy"),t=d(this).attr("data-srcset"),o=d(this).attr("data-sizes")||n.$slider.attr("data-sizes"),s=document.createElement("img");s.onload=function(){i.animate({opacity:0},100,function(){t&&(i.attr("srcset",t),o&&i.attr("sizes",o)),i.attr("src",e).animate({opacity:1},200,function(){i.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,i,e])})},s.onerror=function(){i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,i,e])},s.src=e})}if(!0===n.options.centerMode?t=!0===n.options.infinite?(e=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(e=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),n.options.slidesToShow/2+1+2+n.currentSlide):(e=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,t=Math.ceil(e+n.options.slidesToShow),!0===n.options.fade&&(0<e&&e--,t<=n.slideCount&&t++)),i=n.$slider.find(".slick-slide").slice(e,t),"anticipated"===n.options.lazyLoad)for(var s=e-1,l=t,r=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)s<0&&(s=n.slideCount-1),i=(i=i.add(r.eq(s))).add(r.eq(l)),s--,l++;o(i),n.slideCount<=n.options.slidesToShow?o(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?o(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&o(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},l.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},l.prototype.next=l.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},l.prototype.orientationChange=function(){this.checkResponsive(),this.setPosition()},l.prototype.pause=l.prototype.slickPause=function(){this.autoPlayClear(),this.paused=!0},l.prototype.play=l.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},l.prototype.postSlide=function(i){var e=this;e.unslicked||(e.$slider.trigger("afterChange",[e,i]),e.animating=!1,e.slideCount>e.options.slidesToShow&&e.setPosition(),e.swipeLeft=null,e.options.autoplay&&e.autoPlay(),e.updateSlideVisibility())},l.prototype.prev=l.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},l.prototype.preventDefault=function(i){i.preventDefault()},l.prototype.progressiveLazyLoad=function(i){i=i||1;var e,t,o,s,n,l=this,r=d("img[data-lazy]",l.$slider);r.length?(e=r.first(),t=e.attr("data-lazy"),o=e.attr("data-srcset"),s=e.attr("data-sizes")||l.$slider.attr("data-sizes"),(n=document.createElement("img")).onload=function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,e,t]),l.progressiveLazyLoad()},n.onerror=function(){i<3?setTimeout(function(){l.progressiveLazyLoad(i+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,e,t]),l.progressiveLazyLoad())},n.src=t):l.$slider.trigger("allImagesLoaded",[l])},l.prototype.refresh=function(i){var e,t=this,o=t.slideCount-t.options.slidesToShow;!t.options.infinite&&t.currentSlide>o&&(t.currentSlide=o),t.slideCount<=t.options.slidesToShow&&(t.currentSlide=0),e=t.currentSlide,t.destroy(!0),d.extend(t,t.initials,{currentSlide:e}),t.init(),i||t.changeSlide({data:{message:"index",index:e}},!1)},l.prototype.registerBreakpoints=function(){var i,e,t,o=this,s=o.options.responsive||null;if("array"===d.type(s)&&s.length){for(i in o.respondTo=o.options.respondTo||"window",s)if(t=o.breakpoints.length-1,s.hasOwnProperty(i)){for(e=s[i].breakpoint;0<=t;)o.breakpoints[t]&&o.breakpoints[t]===e&&o.breakpoints.splice(t,1),t--;o.breakpoints.push(e),o.breakpointSettings[e]=s[i].settings}o.breakpoints.sort(function(i,e){return o.options.mobileFirst?i-e:e-i})}},l.prototype.reinit=function(){var i=this;i.$slides=i.$slideTrack.children(i.options.slide).addClass("slick-slide"),i.slideCount=i.$slides.length,i.currentSlide>=i.slideCount&&0!==i.currentSlide&&(i.currentSlide=i.currentSlide-i.options.slidesToScroll),i.slideCount<=i.options.slidesToShow&&(i.currentSlide=0),i.registerBreakpoints(),i.setProps(),i.setupInfinite(),i.buildArrows(),i.updateArrows(),i.initArrowEvents(),i.buildDots(),i.updateDots(),i.initDotEvents(),i.cleanUpSlideEvents(),i.initSlideEvents(),i.checkResponsive(!1,!0),i.setSlideClasses("number"==typeof i.currentSlide?i.currentSlide:0),i.setPosition(),i.focusHandler(),i.paused=!i.options.autoplay,i.autoPlay(),i.$slider.trigger("reInit",[i])},l.prototype.resize=function(){var i=this;d(window).width()!==i.windowWidth&&(clearTimeout(i.windowDelay),i.windowDelay=window.setTimeout(function(){i.windowWidth=d(window).width(),i.checkResponsive(),i.unslicked||i.setPosition()},50))},l.prototype.removeSlide=l.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},l.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled||(!(s={})===o.cssTransitions?s[o.animType]="translate("+e+", "+t+")":s[o.animType]="translate3d("+e+", "+t+", 0px)"),o.$slideTrack.css(s)},l.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},l.prototype.setFade=function(){var t,o=this;o.$slides.each(function(i,e){t=o.slideWidth*i*-1,!0===o.options.rtl?d(e).css({position:"relative",right:t,top:0,zIndex:o.options.zIndex-2,opacity:0}):d(e).css({position:"relative",left:t,top:0,zIndex:o.options.zIndex-2,opacity:0})}),o.$slides.eq(o.currentSlide).css({zIndex:o.options.zIndex-1,opacity:1})},l.prototype.setHeight=function(){var i,e=this;1===e.options.slidesToShow&&!0===e.options.adaptiveHeight&&!1===e.options.vertical&&(i=e.$slides.eq(e.currentSlide).outerHeight(!0),e.$list.css("height",i))},l.prototype.setOption=l.prototype.slickSetOption=function(){var i,e,t,o,s,n=this,l=!1;if("object"===d.type(arguments[0])?(t=arguments[0],l=arguments[1],s="multiple"):"string"===d.type(arguments[0])&&(o=arguments[1],l=arguments[2],"responsive"===(t=arguments[0])&&"array"===d.type(arguments[1])?s="responsive":void 0!==arguments[1]&&(s="single")),"single"===s)n.options[t]=o;else if("multiple"===s)d.each(t,function(i,e){n.options[i]=e});else if("responsive"===s)for(e in o)if("array"!==d.type(n.options.responsive))n.options.responsive=[o[e]];else{for(i=n.options.responsive.length-1;0<=i;)n.options.responsive[i].breakpoint===o[e].breakpoint&&n.options.responsive.splice(i,1),i--;n.options.responsive.push(o[e])}l&&(n.unload(),n.reinit())},l.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},l.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},l.prototype.setSlideClasses=function(i){var e,t,o,s,n=this,l=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true").attr("aria-label",function(){return d(this).attr("aria-label").replace(" (centered)","")});n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode?(o=n.options.slidesToShow%2==0?1:0,s=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(s<=i&&i<=n.slideCount-1-s?n.$slides.slice(i-s+o,i+s+1).addClass("slick-active").removeAttr("aria-hidden"):(e=n.options.slidesToShow+i,l.slice(e-s+1+o,e+s+2).addClass("slick-active").removeAttr("aria-hidden")),0===i?l.eq(n.options.slidesToShow+n.slideCount+1).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"}):i===n.slideCount-1&&l.eq(n.options.slidesToShow).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"})),n.$slides.eq(i).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"})):0<=i&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden"):l.length<=n.options.slidesToShow?l.addClass("slick-active").removeAttr("aria-hidden"):(t=n.slideCount%n.options.slidesToShow,e=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?l.slice(e-(n.options.slidesToShow-t),e+t).addClass("slick-active").removeAttr("aria-hidden"):l.slice(e,e+n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden")),"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},l.prototype.setupInfinite=function(){var i,e,t,o=this;if(!0===o.options.fade&&(o.options.centerMode=!1),!0===o.options.infinite&&!1===o.options.fade&&(e=null,o.slideCount>o.options.slidesToShow)){for(t=!0===o.options.centerMode?o.options.slidesToShow+1:o.options.slidesToShow,i=o.slideCount;i>o.slideCount-t;--i)e=i-1,d(o.$slides[e]).clone(!0).attr("id","").attr("data-slick-index",e-o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned");for(i=0;i<t+o.slideCount;i+=1)e=i,d(o.$slides[e]).clone(!0).attr("id","").attr("data-slick-index",e+o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned");o.$slideTrack.find(".slick-cloned").find("[id]").each(function(){d(this).attr("id","")})}},l.prototype.interrupt=function(i){i||this.autoPlay(),this.interrupted=i},l.prototype.selectHandler=function(i){var e=d(i.target).is(".slick-slide")?d(i.target):d(i.target).parents(".slick-slide"),t=(t=parseInt(e.attr("data-slick-index")))||0;this.slideCount<=this.options.slidesToShow?this.slideHandler(t,!1,!0):this.slideHandler(t)},l.prototype.slideHandler=function(i,e,t){var o,s,n,l,r,a,d=this;if(e=e||!1,!(!0===d.animating&&!0===d.options.waitForAnimate||!0===d.options.fade&&d.currentSlide===i))if(!1===e&&d.asNavFor(i),o=i,r=d.getLeft(o),l=d.getLeft(d.currentSlide),d.currentLeft=null===d.swipeLeft?l:d.swipeLeft,!1===d.options.infinite&&!1===d.options.centerMode&&(i<0||i>d.getDotCount()*d.options.slidesToScroll))!1===d.options.fade&&(o=d.currentSlide,!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(l,function(){d.postSlide(o)}):d.postSlide(o));else if(!1===d.options.infinite&&!0===d.options.centerMode&&(i<0||i>d.slideCount-d.options.slidesToScroll))!1===d.options.fade&&(o=d.currentSlide,!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(l,function(){d.postSlide(o)}):d.postSlide(o));else{if(d.options.autoplay&&clearInterval(d.autoPlayTimer),s=o<0?d.slideCount%d.options.slidesToScroll!=0?d.slideCount-d.slideCount%d.options.slidesToScroll:d.slideCount+o:o>=d.slideCount?d.slideCount%d.options.slidesToScroll!=0?0:o-d.slideCount:o,d.animating=!0,d.$slider.trigger("beforeChange",[d,d.currentSlide,s]),n=d.currentSlide,d.currentSlide=s,d.setSlideClasses(d.currentSlide),d.options.asNavFor&&(a=(a=d.getNavTarget()).slick("getSlick")).slideCount<=a.options.slidesToShow&&a.setSlideClasses(d.currentSlide),d.updateDots(),d.updateArrows(),!0===d.options.fade)return!0!==t?(d.fadeSlideOut(n),d.fadeSlide(s,function(){d.postSlide(s)})):d.postSlide(s),void d.animateHeight();!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(r,function(){d.postSlide(s)}):d.postSlide(s)}},l.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},l.prototype.swipeDirection=function(){var i=this,e=i.touchObject.startX-i.touchObject.curX,t=i.touchObject.startY-i.touchObject.curY,o=Math.atan2(t,e),s=Math.round(180*o/Math.PI);return s<0&&(s=360-Math.abs(s)),s<=45&&0<=s||s<=360&&315<=s?!1===i.options.rtl?"left":"right":135<=s&&s<=225?!1===i.options.rtl?"right":"left":!0===i.options.verticalSwiping?35<=s&&s<=135?"down":"up":"vertical"},l.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1;if(o.interrupted=!1,o.shouldClick=!(10<o.touchObject.swipeLength),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},l.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},l.prototype.swipeMove=function(i){var e,t,o,s,n,l=this,r=void 0!==i.originalEvent?i.originalEvent.touches:null;return!(!l.dragging||l.scrolling||r&&1!==r.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==r?r[0].pageX:i.clientX,l.touchObject.curY=void 0!==r?r[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),n=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&4<n?!(l.scrolling=!0):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=n),t=l.swipeDirection(),void 0!==i.originalEvent&&4<l.touchObject.swipeLength&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,(l.touchObject.edgeHit=!1)===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},l.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return!(t.touchObject={});void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},l.prototype.unfilterSlides=l.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},l.prototype.unload=function(){var i=this;d(".slick-cloned",i.$slider).remove(),i.$dots&&i.$dots.remove(),i.$prevArrow&&i.htmlExpr.test(i.options.prevArrow)&&i.$prevArrow.remove(),i.$nextArrow&&i.htmlExpr.test(i.options.nextArrow)&&i.$nextArrow.remove(),i.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},l.prototype.unslick=function(i){this.$slider.trigger("unslick",[this,i]),this.destroy()},l.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2);!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").prop("disabled",!1),i.$nextArrow.removeClass("slick-disabled").prop("disabled",!1),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").prop("disabled",!0),i.$nextArrow.removeClass("slick-disabled").prop("disabled",!1)):(i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode||i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode)&&(i.$nextArrow.addClass("slick-disabled").prop("disabled",!0),i.$prevArrow.removeClass("slick-disabled").prop("disabled",!1)))},l.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").find("button").removeAttr("aria-current").end().end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active").find("button").attr("aria-current",!0).end().end())},l.prototype.updateSlideVisibility=function(){this.$slideTrack.find(".slick-slide").attr("aria-hidden","true").find("a, input, button, select").attr("tabindex","-1"),this.$slideTrack.find(".slick-active").removeAttr("aria-hidden").find("a, input, button, select").removeAttr("tabindex")},l.prototype.visibility=function(){this.options.autoplay&&(document[this.hidden]?this.interrupted=!0:this.interrupted=!1)},d.fn.slick=function(){for(var i,e=this,t=arguments[0],o=Array.prototype.slice.call(arguments,1),s=e.length,n=0;n<s;n++)if("object"==typeof t||void 0===t?e[n].slick=new l(e[n],t):i=e[n].slick[t].apply(e[n].slick,o),void 0!==i)return i;return e}});
14649;// Snap.svg 0.5.1
14650//
14651// Copyright (c) 2013 – 2017 Adobe Systems Incorporated. All rights reserved.
14652//
14653// Licensed under the Apache License, Version 2.0 (the "License");
14654// you may not use this file except in compliance with the License.
14655// You may obtain a copy of the License at
14656//
14657// http://www.apache.org/licenses/LICENSE-2.0
14658//
14659// Unless required by applicable law or agreed to in writing, software
14660// distributed under the License is distributed on an "AS IS" BASIS,
14661// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14662// See the License for the specific language governing permissions and
14663// limitations under the License.
14664//
14665// build: 2017-02-07
14666
14667!function(a){var b,c,d="0.5.0",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=Object.prototype.toString,n=String,o=Array.isArray||function(a){return a instanceof Array||"[object Array]"==m.call(a)};eve=function(a,d){var e,f=c,g=Array.prototype.slice.call(arguments,2),h=eve.listeners(a),j=0,m=[],n={},o=[],p=b;o.firstDefined=k,o.lastDefined=l,b=a,c=0;for(var q=0,r=h.length;r>q;q++)"zIndex"in h[q]&&(m.push(h[q].zIndex),h[q].zIndex<0&&(n[h[q].zIndex]=h[q]));for(m.sort(i);m[j]<0;)if(e=n[m[j++]],o.push(e.apply(d,g)),c)return c=f,o;for(q=0;r>q;q++)if(e=h[q],"zIndex"in e)if(e.zIndex==m[j]){if(o.push(e.apply(d,g)),c)break;do if(j++,e=n[m[j]],e&&o.push(e.apply(d,g)),c)break;while(e)}else n[e.zIndex]=e;else if(o.push(e.apply(d,g)),c)break;return c=f,b=p,o},eve._events=j,eve.listeners=function(a){var b,c,d,e,g,i,k,l,m=o(a)?a:a.split(f),n=j,p=[n],q=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=p.length;k>i;i++)for(n=p[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),q=q.concat(b.f||[]));p=l}return q},eve.separator=function(a){a?(a=n(a).replace(/(?=[\.\^\]\[\-])/g,"\\"),a="["+a+"]",f=new RegExp(a)):f=/[\.\/]/},eve.on=function(a,b){if("function"!=typeof b)return function(){};for(var c=o(a)?o(a[0])?a:[a]:n(a).split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=o(a)?a:n(a).split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},eve.f=function(a){var b=[].slice.call(arguments,1);return function(){eve.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},eve.stop=function(){c=1},eve.nt=function(a){var c=o(b)?b.join("."):b;return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(c):c},eve.nts=function(){return o(b)?b:b.split(f)},eve.off=eve.unbind=function(a,b){if(!a)return void(eve._events=j={n:{}});var c=o(a)?o(a[0])?a:[a]:n(a).split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)eve.off(c[d],b);else{c=o(a)?a:n(a).split(f);var k,l,m,d,i,p,q,r=[j],s=[];for(d=0,i=c.length;i>d;d++)for(p=0;p<r.length;p+=m.length-2){if(m=[p,1],k=r[p].n,c[d]!=h)k[c[d]]&&(m.push(k[c[d]]),s.unshift({n:k,name:c[d]}));else for(l in k)k[e](l)&&(m.push(k[l]),s.unshift({n:k,name:l}));r.splice.apply(r,m)}for(d=0,i=r.length;i>d;d++)for(k=r[d];k.n;){if(b){if(k.f){for(p=0,q=k.f.length;q>p;p++)if(k.f[p]==b){k.f.splice(p,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var t=k.n[l].f;for(p=0,q=t.length;q>p;p++)if(t[p]==b){t.splice(p,1);break}!t.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}a:for(d=0,i=s.length;i>d;d++){k=s[d];for(l in k.n[k.name].f)continue a;for(l in k.n[k.name].n)continue a;delete k.n[k.name]}}},eve.once=function(a,b){var c=function(){return eve.off(a,c),b.apply(this,arguments)};return eve.on(a,c)},eve.version=d,eve.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=eve:"function"==typeof define&&define.amd?define("eve",[],function(){return eve}):a.eve=eve}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});
14667else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c,d={},e=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){return setTimeout(a,16,(new Date).getTime()),!0},f=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},g=0,h="M"+(+new Date).toString(36),i=function(){return h+(g++).toString(36)},j=Date.now||function(){return+new Date},k=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},l=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},m=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},n=function(){var a=this;delete d[a.id],a.update(),b("mina.stop."+a.id,a)},o=function(){var a=this;a.pdif||(delete d[a.id],a.update(),a.pdif=a.get()-a.b)},p=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,d[a.id]=a,r())},q=function(){var a,b=this;if(f(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},r=function(a){if(!a)return void(c||(c=e(r)));var f=0;for(var g in d)if(d.hasOwnProperty(g)){var h=d[g],i=h.get();f++,h.s=(i-h.b)/(h.dur/h.spd),h.s>=1&&(delete d[g],h.s=1,f--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(h)),h.update()}c=f?e(r):!1},s=function(a,b,c,e,f,g,h){var j={id:i(),start:a,end:b,b:c,s:0,dur:e-c,spd:1,get:f,set:g,easing:h||s.linear,status:k,speed:l,duration:m,stop:n,pause:o,resume:p,update:q};d[j.id]=j;var t,u=0;for(t in d)if(d.hasOwnProperty(t)&&(u++,2==u))break;return 1==u&&r(),j};return s.time=j,s.getById=function(a){return d[a]||null},s.linear=function(a){return a},s.easeout=function(a){return Math.pow(a,1.7)},s.easein=function(a){return Math.pow(a,.48)},s.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},s.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},s.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},s.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin((a-.075)*(2*Math.PI)/.3)+1},s.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=s,s}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)try{return a=y.doc.querySelector(String(a)),w(a)}catch(d){return null}}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),"skewX"==c?b.push(["m",1,0,D.tan(k(d[0])),1,0,0]):"skewY"==c?b.push(["m",1,D.tan(k(d[0])),0,1,0,0]):b.push([c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=aa(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;
14667"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;b<a.length;b++)"set"==a[b].type?a[b].forEach(function(a){d.appendChild(a.node)}):d.appendChild(a[b].node);var f=d.childNodes;for(b=0;b<f.length;b++)this[c++]=w(f[b]);return this}function s(a){if(a.snap in V)return V[a.snap];var b;try{b=a.ownerSVGElement}catch(c){}this.node=a,b&&(this.paper=new v(b)),this.type=a.tagName||a.nodeName;var d=this.id=S(this);if(this.anims={},this._={transform:[]},a.snap=d,V[d]=this,"g"==this.type&&(this.add=r),this.type in{g:1,mask:1,pattern:1,symbol:1})for(var e in v.prototype)v.prototype[z](e)&&(this[e]=v.prototype[e])}function t(a){this.node=a}function u(a,b){var c=d(a);b.appendChild(c);var e=w(c);return e}function v(a,b){var c,e,f,g=v.prototype;if(a&&a.tagName&&"svg"==a.tagName.toLowerCase()){if(a.snap in V)return V[a.snap];var h=a.ownerDocument;c=new s(a),e=a.getElementsByTagName("desc")[0],f=a.getElementsByTagName("defs")[0],e||(e=d("desc"),e.appendChild(h.createTextNode("Created with Snap")),c.node.appendChild(e)),f||(f=d("defs"),c.node.appendChild(f)),c.defs=f;for(var i in g)g[z](i)&&(c[i]=g[i]);c.paper=c.root=c}else c=u("svg",y.doc.body),d(c.node,{height:b,version:1.1,width:a,xmlns:U});return c}function w(a){return a?a instanceof s||a instanceof t?a:a.tagName&&"svg"==a.tagName.toLowerCase()?new v(a):a.tagName&&"object"==a.tagName.toLowerCase()&&"image/svg+xml"==a.type?new v(a.contentDocument.getElementsByTagName("svg")[0]):new s(a):a}function x(a,b){for(var c=0,d=a.length;d>c;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.5.1",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};
14667c.url=function(a){return"url('#"+a+"')"};c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m)))<l&&(e=g,f=m,l=h);for(k*=.5;k>.5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))<l?(e=n,f=p,l=r):(q=f+k)<=j&&(s=d(o=i.getPointAtLength(q)))<l?(e=o,f=q,l=s):k*=.5}return e={x:e.x,y:e.y,length:f,distance:Math.sqrt(l)}},c.is=e,c.snapTo=function(a,b,c){if(c=e(c,"finite")?c:10,e(a,"array")){for(var d=a.length;d--;)if(G(a[d]-b)<=c)return a[d]}else{a=+a;var f=b%a;if(c>f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]}
14667,_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var aa=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){var e=[];c.toLowerCase();d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;e<b.length;e++)d.push(w(b[e]));return d},setInterval(function(){for(var a in V)if(V[z](a)){var b=V[a],c=b.node;("svg"!=b.type&&!c.ownerSVGElement||"svg"==b.type&&(!c.parentNode||"ownerSVGElement"in c.parentNode&&!c.ownerSVGElement))&&delete V[a]}},1e4),s.prototype.attr=function(a,c){var d=this,f=d.node;if(!a){if(1!=f.nodeType)return{text:f.nodeValue};for(var g=f.attributes,h={},i=0,j=g.length;j>i;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a="<svg>"+a+"</svg>",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return ba[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var ba={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode
14667-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});ba[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(a){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var ca=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=ca(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(c,d,e,f,g){function h(a,b){if(null==b){var d=!0;if(b="linearGradient"==a.type||"radialGradient"==a.type?a.node.getAttribute("gradientTransform"):"pattern"==a.type?a.node.getAttribute("patternTransform"):a.node.getAttribute("transform"),!b)return new c.Matrix;b=c._.svgTransform2string(b)}else b=c._.rgTransform.test(b)?m(b).replace(/\.{3}|\u2026/g,a._.transform||""):c._.svgTransform2string(b),l(b,"array")&&(b=c.path?c.path.toString.call(b):m(b)),a._.transform=b;var e=c._.transform2matrix(b,a.getBBox(1));return d?e:void(a.matrix=e)}function i(a){function b(a,b){var d=o(a.node,b);d=d&&d.match(g),d=d&&d[2],d&&"#"==d.charAt()&&(d=d.substring(1),d&&(i[d]=(i[d]||[]).concat(function(d){var e={};e[b]=c.url(d),o(a.node,e)})))}function d(a){var b=o(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(i[b]=(i[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var e,f=a.selectAll("*"),g=/^\s*url\(("|'|)(.*)\1\)\s*$/,h=[],i={},j=0,k=f.length;k>j;j++){e=f[j],b(e,"fill"),b(e,"stroke"),b(e,"filter"),b(e,"mask"),b(e,"clip-path"),d(e);var l=o(e.node,"id");l&&(o(e.node,{id:e.id}),h.push({old:l,id:e.id}))}for(j=0,k=h.length;k>j;j++){var m=i[h[j].old];if(m)for(var n=0,p=m.length;p>n;n++)m[n](h[j].id)}}function j(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=s(d[e]).toString());a&&(b+="</"+this.type+">")}else a&&(b+="/>");return b}}var k=d.prototype,l=c.is,m=String,n=c._unit2px,o=c._.$,p=c._.make,q=c._.getSomeDefs,r="hasOwnProperty",s=c._.wrap;k.getBBox=function(a){if("tspan"==this.type)return c._.box(this.node.getClientRects().item(0));if(!c.Matrix||!c.path)return this.node.getBBox();var b=this,d=new c.Matrix;if(b.removed)return c._.box();for(;"use"==b.type;)if(a||(d=d.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=c.path.get[b.type]||c.path.get.deflt;try{return a?(f.bboxwt=g?c.path.getBBox(b.realPath=g(b)):c._.box(b.node.getBBox()),c._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=c.path.getBBox(c.path.map(b.realPath,d.add(b.matrix))),c._.box(f.bbox))}catch(h){return c._.box()}};var t=function(){return this.string};k.transform=function(a){var b=this._;if(null==a){for(var d,e=this,f=new c.Matrix(this.node.getCTM()),g=h(this),i=[g],j=new c.Matrix,k=g.toTransformString(),l=m(g)==m(this.matrix
14667)?m(b.transform):k;"svg"!=e.type&&(e=e.parent());)i.push(h(e));for(d=i.length;d--;)j.add(i[d]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:t}}return a instanceof c.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):h(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?o(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?o(this.node,{patternTransform:this.matrix}):o(this.node,{transform:this.matrix})),this},k.parent=function(){return s(this.node.parentNode)},k.append=k.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=s(a),this.node.appendChild(a.node),a.paper=this.paper}return this},k.appendTo=function(a){return a&&(a=s(a),a.append(this)),this},k.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=s(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},k.prependTo=function(a){return a=s(a),a.prepend(this),this},k.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=s(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},k.after=function(a){a=s(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},k.insertBefore=function(a){a=s(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},k.insertAfter=function(a){a=s(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},k.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},k.select=function(a){return s(this.node.querySelector(a))},k.selectAll=function(a){for(var b=this.node.querySelectorAll(a),d=(c.set||Array)(),e=0;e<b.length;e++)d.push(s(b[e]));return d},k.asPX=function(a,b){return null==b&&(b=this.attr(a)),+n(this,a,b)},k.use=function(){var a,b=this.node.id;return b||(b=this.id,o(this.node,{id:b})),a="linearGradient"==this.type||"radialGradient"==this.type||"pattern"==this.type?p(this.type,this.node.parentNode):p("use",this.node.parentNode),o(a.node,{"xlink:href":"#"+b}),a.original=this,a},k.clone=function(){var a=s(this.node.cloneNode(!0));return o(a.node,"id")&&o(a.node,{id:a.id}),i(a),a.insertAfter(this),a},k.toDefs=function(){var a=q(this);return a.appendChild(this.node),this},k.pattern=k.toPattern=function(a,b,c,d){var e=p("pattern",q(this));return null==a&&(a=this.getBBox()),l(a,"object")&&"x"in a&&(b=a.y,c=a.width,d=a.height,a=a.x),o(e.node,{x:a,y:b,width:c,height:d,patternUnits:"userSpaceOnUse",id:e.id,viewBox:[a,b,c,d].join(" ")}),e.node.appendChild(this.node),e},k.marker=function(a,b,c,d,e,f){var g=p("marker",q(this));return null==a&&(a=this.getBBox()),l(a,"object")&&"x"in a&&(b=a.y,c=a.width,d=a.height,e=a.refX||a.cx,f=a.refY||a.cy,a=a.x),o(g.node,{viewBox:[a,b,c,d].join(" "),markerWidth:c,markerHeight:d,orient:"auto",refX:e||0,refY:f||0,id:g.id}),g.node.appendChild(this.node),g};var u={};k.data=function(a,d){var e=u[this.id]=u[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e;if(1==arguments.length){if(c.is(a,"object")){for(var f in a)a[r](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=d,b("snap.data.set."+this.id,this,d,a),this},k.removeData=function(a){return null==a?u[this.id]={}:u[this.id]&&delete u[this.id][a],this},k.outerSVG=k.toString=j(1),k.innerSVG=j(),k.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),d=c.format('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="{width}" height="{height}
14667" viewBox="{x} {y} {width} {height}">{contents}</svg>',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),
14668contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(d)))}},g.prototype.select=k.select,g.prototype.selectAll=k.selectAll}),d.plugin(function(a,d,e,f,g){function h(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}var i=d.prototype,j=a.is,k=String,l="hasOwnProperty",m=function(a,b,d,e){"function"!=typeof d||d.length||(e=d,d=c.linear),this.attr=a,this.dur=b,d&&(this.easing=d),e&&(this.callback=e)};a._.Animation=m,a.animation=function(a,b,c,d){return new m(a,b,c,d)},i.inAnim=function(){var a=this,b=[];for(var c in a.anims)a.anims[l](c)&&!function(a){b.push({anim:new m(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(b){return a.status(b)},stop:function(){a.stop()}})}(a.anims[c]);return b},a.animate=function(a,d,e,f,g,h){"function"!=typeof g||g.length||(h=g,g=c.linear);var i=c.time(),j=c(a,d,i,i+f,c.time,e,g);return h&&b.once("mina.finish."+j.id,h),j},i.stop=function(){for(var a=this.inAnim(),b=0,c=a.length;c>b;b++)a[b].stop();return this},i.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof m&&(f=a.callback,e=a.easing,d=a.dur,a=a.attr);var g,i,n,o,p=[],q=[],r={},s=this;for(var t in a)if(a[l](t)){s.equal?(o=s.equal(t,k(a[t])),g=o.from,i=o.to,n=o.f):(g=+s.attr(t),i=+a[t]);var u=j(g,"array")?g.length:1;r[t]=h(p.length,p.length+u,n),p=p.concat(g),q=q.concat(i)}var v=c.time(),w=c(p,q,v,v+d,c.time,function(a){var b={};for(var c in r)r[l](c)&&(b[c]=r[c](a));s.attr(b)},e);return s.anims[w.id]=w,w._attrs=a,w._callback=f,b("snap.animcreated."+s.id,w),b.once("mina.finish."+w.id,function(){b.off("mina.*."+w.id),delete s.anims[w.id],f&&f.call(s)}),b.once("mina.stop."+w.id,function(){b.off("mina.*."+w.id),delete s.anims[w.id]}),s}}),d.plugin(function(a,b,c,d,e){function f(a,b,c,d,e,f){return null==b&&"[object SVGMatrix]"==g.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var g=Object.prototype.toString,h=String,i=Math,j="";!function(b){function c(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var b=i.sqrt(c(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}b.add=function(a,b,c,d,e,g){if(a&&a instanceof f)return this.add(a.a,a.b,a.c,a.d,a.e,a.f);var h=a*this.a+b*this.c,i=a*this.b+b*this.d;return this.e+=e*this.a+g*this.c,this.f+=e*this.b+g*this.d,this.c=c*this.a+d*this.c,this.d=c*this.b+d*this.d,this.a=h,this.b=i,this},f.prototype.multLeft=function(a,b,c,d,e,g){if(a&&a instanceof f)return this.multLeft(a.a,a.b,a.c,a.d,a.e,a.f);var h=a*this.a+c*this.b,i=a*this.c+c*this.d,j=a*this.e+c*this.f+e;return this.b=b*this.a+d*this.b,this.d=b*this.c+d*this.d,this.f=b*this.e+d*this.f+g,this.a=h,this.c=i,this.e=j,this},b.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new f(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},b.clone=function(){return new f(this.a,this.b,this.c,this.d,this.e,this.f)},b.translate=function(a,b){return this.e+=a*this.a+b*this.c,this.f+=a*this.b+b*this.d,this},b.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.translate(c,d),this.a*=a,this.b*=a,this.c*=b,this.d*=b,(c||d)&&this.translate(-c,-d),this},b.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var e=+i.cos(b).toFixed(9),f=+i.sin(b).toFixed(9);return this.add(e,f,-f,e,c,d),this.add(1,0,0,1,-c,-d)},b.skewX=function(a){return this.skew(a,0)},b.skewY=function(a){return this.skew(0,a)},b.skew=function(b,c){b=b||0,c=c||0,b=a.rad(b),c=a.rad(c);var d=i.tan(b).toFixed(9),e=i.tan(c).toFixed(9);return this.add(1,e,d,1,0,0)},b.x=function(a,b){return a*this.a+b*this.c+this.e},b.y=function(a,b){return a*this.b+b*this.d+this.f},b.get=function(a){return+this[h.fromCharCode(97+a)].toFixed(4)},b.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},b.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},b.determinant=function(){return this.a*this.d-this.b*this.c},b.split=function(){var b={};b.dx=this.e,b.dy=this.f;var e=[[this.a,this.b],[this.c,this.d]];b.scalex=i.sqrt(c(e[0])),d(e[0]),b.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*b.shear,e[1][1]-e[0][1]*b.shear],b.scaley=i.sqrt(c(e[1])),d(e[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var f=e[0][1],g=e[1][1];return 0>g?(b.rotate=a.deg(i.acos(g)),0>f&&(b.rotate=360-b.rotate)):b.rotate=a.deg(i.asin(f)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},b.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:j)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:j)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:j))}}(f.prototype),a.Matrix=f,a.matrix=function(a,b,c,d,e,g){return new f(a,b,c,d,e,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&(1==f.childNodes.length&&3==f.firstChild.nodeType?b.push(f.firstChild.nodeValue):b.push(i(f)))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\((['"]?)([^)]+)\1\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";a.deurl=function(a){var b=String(a).match(o);return b?b[2]:a}
14668,b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){b.stop();for(var d,e=a.node;e;){if("clipPath"===e.nodeName){d=new c(e);break}if("svg"===e.nodeName){d=void 0;break}e=e.parentNode}d||(d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id})),p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){function b(a,b){for(var c=(b-h)/(a-i),d=i;a>d;d++)f[d].offset=+(+h+c*(d-i)).toFixed(2);i=a,h=b}a=r(a);var c=a.match(u);if(!c)return null;var d=c[1],e=c[2],f=c[3];e=e.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==e.length&&0==e[0]&&(e=[]),f=f.split("-"),f=f.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b});var g=f.length,h=0,i=0;g--;for(var j=0;g>j;j++)"offset"in f[j]&&b(j,f[j].offset);return f[g].offset=f[g].offset||100,b(g,f[g].offset),{type:d,params:e,stops:f}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c<a.length;c++)b.appendChild(d(a[c]));else b.appendChild(e.doc.createTextNode(a));return b.normalize&&b.normalize(),b};c.firstChild;)c.removeChild(c.firstChild);for(var f=d(a);f.firstChild;)c.appendChild(f.firstChild)}b.stop()})(-1),b.on("snap.util.attr.fontSize",h)(-1),b.on("snap.util.attr.font-size",h)(-1),b.on("snap.util.getattr.transform",function(){return b.stop(),this.transform()})(-1),b.on("snap.util.getattr.textpath",function(){return b.stop(),this.textPath})(-1),function(){function c(c){return function(){b.stop();var d=e.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue("marker-"+c);return"none"==d?d:a(e.doc.getElementById(d.match(o)[1]))}}function d(a){return function(c){b.stop();var d="marker"+a.charAt(0).toUpperCase()+a.substring(1);if(""==c||!c)return void(this.node.style[d]="none");if("marker"==c.type){var e=c.node.id;return e||p(c.node,{id:c.id}),void(this.node.style[d]=q(e))}}}b.on("snap.util.getattr.marker-end",c("end"))(-1),b.on("snap.util.getattr.markerEnd",c("end"))(-1),b.on("snap.util.getattr.marker-start",c("start"))(-1),b.on("snap.util.getattr.markerStart",c("start"))(-1),b.on("snap.util.getattr.marker-mid",c("mid"))(-1),b.on("snap.util.getattr.markerMid",c("mid"))(-1),b.on("snap.util.attr.marker-end",d("end"))(-1),b.on("snap.util.attr.markerEnd",d("end"))(-1),b.on("snap.util.attr.marker-start",d("start"))(-1),b.on("snap.util.attr.markerStart",d("start"))(-1),b.on("snap.util.attr.marker-mid",d("mid"))(-1),b.on("snap.util.attr.markerMid",d("mid"))(-1)}(),b.on("snap.util.getattr.r",function(){return"rect"==this.type&&p(this.node,"rx")==p(this.node,"ry")?(b.stop(),p(this.node,"rx")):void 0})(-1),b.on("snap.util.getattr.text",function(){if("text"==this.type||"tspan"==this.type){b.stop();var a=i(this.node);return 1==a.length?a[0]:a}})(-1),b.on("snap.util.getattr.#text",function(){return this.node.textContent})(-1),b.on("snap.util.getattr.fill",function(c){if(!c){b.stop();var d=b("snap.util.getattr.fill",this,!0).firstDefined();return a(a.deurl(d))||d}
14668})(-1),b.on("snap.util.getattr.stroke",function(c){if(!c){b.stop();var d=b("snap.util.getattr.stroke",this,!0).firstDefined();return a(a.deurl(d))||d}})(-1),b.on("snap.util.getattr.viewBox",function(){b.stop();var c=p(this.node,"viewBox");return c?(c=c.split(s),a._.box(+c[0],+c[1],+c[2],+c[3])):void 0})(-1),b.on("snap.util.getattr.points",function(){var a=p(this.node,"points");return b.stop(),a?a.split(s):void 0})(-1),b.on("snap.util.getattr.path",function(){var a=p(this.node,"d");return b.stop(),a})(-1),b.on("snap.util.getattr.class",function(){return this.node.className.baseVal})(-1),b.on("snap.util.getattr.fontSize",j)(-1),b.on("snap.util.getattr.font-size",j)(-1)}),d.plugin(function(a,b,c,d,e){var f=/\S+/g,g=String,h=b.prototype;h.addClass=function(a){var b,c,d,e,h=g(a||"").match(f)||[],i=this.node,j=i.className.baseVal,k=j.match(f)||[];if(h.length){for(b=0;d=h[b++];)c=k.indexOf(d),~c||k.push(d);e=k.join(" "),j!=e&&(i.className.baseVal=e)}return this},h.removeClass=function(a){var b,c,d,e,h=g(a||"").match(f)||[],i=this.node,j=i.className.baseVal,k=j.match(f)||[];if(k.length){for(b=0;d=h[b++];)c=k.indexOf(d),~c&&k.splice(c,1);e=k.join(" "),j!=e&&(i.className.baseVal=e)}return this},h.hasClass=function(a){var b=this.node,c=b.className.baseVal,d=c.match(f)||[];return!!~d.indexOf(a)},h.toggleClass=function(a,b){if(null!=b)return b?this.addClass(a):this.removeClass(a);var c,d,e,g,h=(a||"").match(f)||[],i=this.node,j=i.className.baseVal,k=j.match(f)||[];for(c=0;e=h[c++];)d=k.indexOf(e),~d?k.splice(d,1):k.push(e);return g=k.join(" "),j!=g&&(i.className.baseVal=g),this}}),d.plugin(function(a,c,d,e,f){function g(a){return a}function h(a){return function(b){return+b.toFixed(3)+a}}var i={"+":function(a,b){return a+b},"-":function(a,b){return a-b},"/":function(a,b){return a/b},"*":function(a,b){return a*b}},j=String,k=/[a-z]+$/i,l=/^\s*([+\-\/*])\s*=\s*([\d.eE+\-]+)\s*([^\d\s]+)?\s*$/;b.on("snap.util.attr",function(a){var c=j(a).match(l);if(c){var d=b.nt(),e=d.substring(d.lastIndexOf(".")+1),f=this.attr(e),g={};b.stop();var h=c[3]||"",m=f.match(k),n=i[c[1]];if(m&&m==h?a=n(parseFloat(f),+c[2]):(f=this.asPX(e),a=n(this.asPX(e),this.asPX(e,c[2]+h))),isNaN(f)||isNaN(a))return;g[e]=a,this.attr(g)}})(-10),b.on("snap.util.equal",function(a,c){var d=j(this.attr(a)||""),e=j(c).match(l);if(e){b.stop();var f=e[3]||"",m=d.match(k),n=i[e[1]];return m&&m==f?{from:parseFloat(d),to:n(parseFloat(d),+e[2]),f:h(m)}:(d=this.asPX(a),{from:d,to:n(d,this.asPX(a,e[2]+f)),f:g})}})(-10)}),d.plugin(function(c,d,e,f,g){var h=e.prototype,i=c.is;h.rect=function(a,b,c,d,e,f){var g;return null==f&&(f=e),i(a,"object")&&"[object Object]"==a?g=a:null!=a&&(g={x:a,y:b,width:c,height:d},null!=e&&(g.rx=e,g.ry=f)),this.el("rect",g)},h.circle=function(a,b,c){var d;return i(a,"object")&&"[object Object]"==a?d=a:null!=a&&(d={cx:a,cy:b,r:c}),this.el("circle",d)};var j=function(){function a(){this.parentNode.removeChild(this)}
14668return function(b,c){var d=f.doc.createElement("img"),e=f.doc.body;d.style.cssText="position:absolute;left:-9999em;top:-9999em",d.onload=function(){c.call(d),d.onload=d.onerror=null,e.removeChild(d)},d.onerror=a,e.appendChild(d),d.src=b}}();h.image=function(a,b,d,e,f){var g=this.el("image");if(i(a,"object")&&"src"in a)g.attr(a);else if(null!=a){var h={"xlink:href":a,preserveAspectRatio:"none"};null!=b&&null!=d&&(h.x=b,h.y=d),null!=e&&null!=f?(h.width=e,h.height=f):j(a,function(){c._.$(g.node,{width:this.offsetWidth,height:this.offsetHeight})}),c._.$(g.node,h)}return g},h.ellipse=function(a,b,c,d){var e;return i(a,"object")&&"[object Object]"==a?e=a:null!=a&&(e={cx:a,cy:b,rx:c,ry:d}),this.el("ellipse",e)},h.path=function(a){var b;return i(a,"object")&&!i(a,"array")?b=a:a&&(b={d:a}),this.el("path",b)},h.group=h.g=function(a){var b=this.el("g");return 1==arguments.length&&a&&!a.type?b.attr(a):arguments.length&&b.add(Array.prototype.slice.call(arguments,0)),b},h.svg=function(a,b,c,d,e,f,g,h){var j={};return i(a,"object")&&null==b?j=a:(null!=a&&(j.x=a),null!=b&&(j.y=b),null!=c&&(j.width=c),null!=d&&(j.height=d),null!=e&&null!=f&&null!=g&&null!=h&&(j.viewBox=[e,f,g,h])),this.el("svg",j)},h.mask=function(a){var b=this.el("mask");return 1==arguments.length&&a&&!a.type?b.attr(a):arguments.length&&b.add(Array.prototype.slice.call(arguments,0)),b},h.ptrn=function(a,b,c,d,e,f,g,h){if(i(a,"object"))var j=a;else j={patternUnits:"userSpaceOnUse"},a&&(j.x=a),b&&(j.y=b),null!=c&&(j.width=c),null!=d&&(j.height=d),null!=e&&null!=f&&null!=g&&null!=h?j.viewBox=[e,f,g,h]:j.viewBox=[a||0,b||0,c||0,d||0];return this.el("pattern",j)},h.use=function(a){return null!=a?(a instanceof d&&(a.attr("id")||a.attr({id:c._.id(a)}),a=a.attr("id")),"#"==String(a).charAt()&&(a=a.substring(1)),this.el("use",{"xlink:href":"#"+a})):d.prototype.use.call(this)},h.symbol=function(a,b,c,d){var e={};return null!=a&&null!=b&&null!=c&&null!=d&&(e.viewBox=[a,b,c,d]),this.el("symbol",e)},h.text=function(a,b,c){var d={};return i(a,"object")?d=a:null!=a&&(d={x:a,y:b,text:c||""}),this.el("text",d)},h.line=function(a,b,c,d){var e={};return i(a,"object")?e=a:null!=a&&(e={x1:a,x2:c,y1:b,y2:d}),this.el("line",e)},h.polyline=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return i(a,"object")&&!i(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},h.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return i(a,"object")&&!i(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=l("stop"),e={offset:+b+"%"};a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),l(d,e);for(var f,g=this.stops(),h=0;h<g.length;h++){var i=parseFloat(g[h].attr("offset"));if(i>b){this.node.insertBefore(d,g[h].node),f=!0;break}}return f||this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=l(this.node,"x1")||0,b=l(this.node,"x2")||1,d=l(this.node,"y1")||0,e=l(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function g(a){var d=a,e=this.stops();if("string"==typeof a&&(d=b("snap.util.grad.parse",null,"l(0,0,0,1)"+a).firstDefined().stops),c.is(d,"array")){for(var f=0;f<e.length;f++)if(d[f]){var g=c.color(d[f].color),h={offset:d[f].offset+"%"};h["stop-color"]=g.hex,g.opacity<1&&(h["stop-opacity"]=g.opacity),e[f].attr(h)}else e[f].remove();for(f=e.length;f<d.length;f++)this.addStop(d[f].color,d[f].offset);return this}}function i(a,c){var d,e=b("snap.util.grad.parse",null,c).firstDefined();if(!e)return null;e.params.unshift(a),d="l"==e.type.toLowerCase()?j.apply(0,e.params):k.apply(0,e.params),e.type!=e.type.toLowerCase()&&l(d.node,{gradientUnits:"userSpaceOnUse"});for(var f=e.stops,g=f.length,h=0;g>h;h++){var i=f[h];d.addStop(i.color,i.offset)}return d}function j(a,b,h,i,j){var k=c._.make("linearGradient",a);return k.stops=d,k.addStop=e,k.getBBox=f,k.setStops=g,null!=b&&l(k.node,{x1:b,y1:h,x2:i,y2:j}),k}function k(a,b,g,h,i,j){var k=c._.make("radialGradient",a);
14668return k.stops=d,k.addStop=e,k.getBBox=f,null!=b&&l(k.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&l(k.node,{fx:i,fy:j}),k}var l=c._.$;h.gradient=function(a){return i(this.defs,a)},h.gradientLinear=function(a,b,c,d){return j(this.defs,a,b,c,d)},h.gradientRadial=function(a,b,c,d,e){return k(this.defs,a,b,c,d,e)},h.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},h.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},h.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):h.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b,c,d){function e(a){var b=e.ps=e.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[M](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function f(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:P.min(c,d)/2,r2:P.max(c,d)/2,r0:P.sqrt(c*c+d*d)/2,path:y(a,b,c,d),vb:[a,b,c,d].join(" ")}}function g(){return this.join(",").replace(N,"$1")}function h(a){var b=L(a);return b.toString=g,b}function i(a,b,c,d,e,f,g,h,i){return null==i?p(a,b,c,d,e,f,g,h):k(a,b,c,d,e,f,g,h,q(a,b,c,d,e,f,g,h,i))}function j(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,g){a instanceof b&&(a=a.attr("d")),a=G(a);for(var h,j,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])h=+l[1],j=+l[2];else{if(m=i(h,j,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=i(h,j,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],g)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,h=+l[5],j=+l[6];continue}if(!c&&!d)return n=i(h,j,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,h=+l[5],j=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:k(h,j,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function k(a,b,c,d,e,f,g,h,i){var j=1-i,k=T(j,3),l=T(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*P.atan2(q-s,r-t)/Q;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function l(b,c,d,e,g,h,i,j){a.is(b,"array")||(b=[b,c,d,e,g,h,i,j]);var k=F.apply(null,b);return f(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function m(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function n(a,b){return a=f(a),b=f(b),m(b,a.x,a.y)||m(b,a.x2,a.y)||m(b,a.x,a.y2)||m(b,a.x2,a.y2)||m(a,b.x,b.y)||m(a,b.x2,b.y)||m(a,b.x,b.y2)||m(a,b.x2,b.y2)||(a.x<b.x2&&a.x>b.x||b.x<a.x2&&b.x>a.x)&&(a.y<b.y2&&a.y>b.y||b.y<a.y2&&b.y>a.y)}function o(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function p(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],m=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],n=0,p=0;k>p;p++){var q=j*l[p]+j,r=o(q,a,c,e,g),s=o(q,b,d,f,h),t=r*r+s*s;n+=m[p]*P.sqrt(t)}return j*n}function q(a,b,c,d,e,f,g,h,i){if(!(0>i||p(a,b,c,d,e,f,g,h)<i)){var j,k=1,l=k/2,m=k-l,n=.01;for(j=p(a,b,c,d,e,f,g,h,m);U(j-i)>n;)l/=2,m+=(i>j?1:-1)*l,j=p(a,b,c,d,e,f,g,h,m);return m}}function r(a,b,c,d,e,f,g,h){if(!(S(a,c)<R(e,g)||R(a,c)>S(e,g)||S(b,d)<R(f,h)||R(b,d)>S(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+R(a,c).toFixed(2)||n>+S(a,c).toFixed(2)||n<+R(e,g).toFixed(2)||n>+S(e,g).toFixed(2)||o<+R(b,d).toFixed(2)||o>+S(b,d).toFixed(2)||o<+R(f,h).toFixed(2)||o>+S(f,h).toFixed(2)))return{x:l,y:m}}}}
14668function s(a,b,c){var d=l(a),e=l(b);if(!n(d,e))return c?0:[];for(var f=p.apply(0,a),g=p.apply(0,b),h=~~(f/8),i=~~(g/8),j=[],m=[],o={},q=c?0:[],s=0;h+1>s;s++){var t=k.apply(0,a.concat(s/h));j.push({x:t.x,y:t.y,t:s/h})}for(s=0;i+1>s;s++)t=k.apply(0,b.concat(s/i)),m.push({x:t.x,y:t.y,t:s/i});for(s=0;h>s;s++)for(var u=0;i>u;u++){var v=j[s],w=j[s+1],x=m[u],y=m[u+1],z=U(w.x-v.x)<.001?"y":"x",A=U(y.x-x.x)<.001?"y":"x",B=r(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(o[B.x.toFixed(4)]==B.y.toFixed(4))continue;o[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+U((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+U((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?q++:q.push({x:B.x,y:B.y,t1:C,t2:D}))}}return q}function t(a,b){return v(a,b)}function u(a,b){return v(a,b,1)}function v(a,b,c){a=G(a),b=G(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var q=a[o];if("M"==q[0])d=h=q[1],e=i=q[2];else{"C"==q[0]?(l=[d,e].concat(q.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var r=0,t=b.length;t>r;r++){var u=b[r];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=s(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=r,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function w(a,b,c){var d=x(a);return m(d,b,c)&&v(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function x(a){var b=e(a);if(b.bbox)return L(b.bbox);if(!a)return f();a=G(a);for(var c,d=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(c=a[j],"M"==c[0])d=c[1],g=c[2],h.push(d),i.push(g);else{var l=F(d,g,c[1],c[2],c[3],c[4],c[5],c[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),d=c[5],g=c[6]}var m=R.apply(0,h),n=R.apply(0,i),o=S.apply(0,h),p=S.apply(0,i),q=f(m,n,o-m,p-n);return b.bbox=L(q),q}function y(a,b,c,d,e){if(e)return[["M",+a+ +e,b],["l",c-2*e,0],["a",e,e,0,0,1,e,e],["l",0,d-2*e],["a",e,e,0,0,1,-e,e],["l",2*e-c,0],["a",e,e,0,0,1,-e,-e],["l",0,2*e-d],["a",e,e,0,0,1,e,-e],["z"]];var f=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return f.toString=g,f}function z(a,b,c,d,e){if(null==e&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=e)var f=Math.PI/180,h=a+c*Math.cos(-d*f),i=a+c*Math.cos(-e*f),j=b+c*Math.sin(-d*f),k=b+c*Math.sin(-e*f),l=[["M",h,j],["A",c,c,0,+(e-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=g,l}function A(b){var c=e(b),d=String.prototype.toLowerCase;if(c.rel)return h(c.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var f=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,f.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=f[n]=[],q=b[n];if(q[0]!=d.call(q[0]))switch(p[0]=d.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=f[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)f[n][t]=q[t]}var v=f[n].length;switch(f[n][0]){case"z":i=k,j=l;break;case"h":i+=+f[n][v-1];break;case"v":j+=+f[n][v-1];break;default:i+=+f[n][v-2],j+=+f[n][v-1]}}return f.toString=g,c.rel=h(f),f}function B(b){var c=e(b);if(c.abs)return h(c.abs);if(K(b,"array")&&K(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var d,f=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,f[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(f.push(n=[]),o=b[q],d=o[0],d!=d.toUpperCase())switch(n[0]=d.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;f.pop(),f=f.concat(I(s,p));break;case"O":f.pop(),s=z(i,j,o[1],o[2]),s.push(s[0]),f=f.concat(s);break;case"U":f.pop(),f=f.concat(z(i,j,o[1],o[2],o[3])),n=["U"].concat(f[f.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==d)s=[i,j].concat(o.slice(1)),f.pop(),f=f.concat(I(s,p)),n=["R"].concat(o.slice(-2));else if("O"==d)f.pop(),s=z(i,j,o[1],o[2]),s.push(s[0]),f=f.concat(s);else if("U"==d)f.pop(),f=f.concat(z(i,j,o[1],o[2],o[3])),n=["U"].concat(f[f.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(d=d.toUpperCase(),"O"!=d)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return f.toString=g,c.abs=h(f),f}function C(a,b,c,d){return[a,b,c,d,c,d]}function D(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function E(b,c,d,e,f,g,h,i,j,k){var l,m=120*Q/180,n=Q/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*P.cos(c)-b*P.sin(c),e=a*P.sin(c)+b*P.cos(c);return{x:d,y:e}});if(!d||!e)return[b,c,i,j,i,j];if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(P.cos(Q/180*f),P.sin(Q/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=P.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*P.sqrt(U((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=P.asin(((c-x)/e).toFixed(9)),z=P.asin(((j-x)/e).toFixed(9));y=w>b?Q-y:y,z=w>i?Q-z:z,0>y&&(y=2*Q+y),0>z&&(z=2*Q+z),h&&y>z&&(y-=2*Q),!h&&z>y&&(z-=2*Q)}var A=z-y;if(U(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+d*P.cos(z),j=x+e*P.sin(z),o=E(i,j,d,e,f,0,h,C,D,[z,B,w,x])}A=z-y;var F=P.cos(y),G=P.sin(y),H=P.cos(z),I=P.sin(z),J=P.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],N=[b+K*G,c-L*F],O=[i+K*I,j-L*H],R=[i,j];if(N[0]=2*M[0]-N[0],N[1]=2*M[1]-N[1],k)return[N,O,R].concat(o);o=[N,O,R].concat(o).join().split(",");for(var S=[],T=0,V=o.length;V>T;T++)S[T]=T%2?p(o[T-1],o[T],n).y:p(o[T],o[T+1],n).x;return S}function F(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),U(i)<1e-12){if(U(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=P.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:R.apply(0,r[0]),y:R.apply(0,r[1])},max:{x:S.apply(0,r[0]),y:S.apply(0,r[1])}}}function G(a,b){var c=!b&&e(a);if(!b&&c.curve)return h(c.curve);for(var d=B(a),f=b&&B(b),g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(E.apply(0,[b.x,b.y].concat(a.slice(1))));break;
14668case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(D(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(D(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(C(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(C(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(C(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(C(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",f&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=S(d.length,f&&f.length||0)}},l=function(a,b,c,e,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",e.x,e.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],r=S(d.length,f&&f.length||0))},m=[],n=[],o="",p="",q=0,r=S(d.length,f&&f.length||0);r>q;q++){d[q]&&(o=d[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),d[q]=j(d[q],g,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(d,q),f&&(f[q]&&(o=f[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),f[q]=j(f[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(f,q)),l(d,f,g,i,q),l(f,d,i,g,q);var s=d[q],t=f&&f[q],u=s.length,v=f&&t.length;g.x=s[u-2],g.y=s[u-1],g.bx=O(s[u-4])||g.x,g.by=O(s[u-3])||g.y,i.bx=f&&(O(t[v-4])||i.x),i.by=f&&(O(t[v-3])||i.y),i.x=f&&t[v-2],i.y=f&&t[v-1]}return f||(c.curve=h(d)),f?[d,f]:d}function H(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=G(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function I(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var J=b.prototype,K=a.is,L=a._.clone,M="hasOwnProperty",N=/,?([a-z]),?/gi,O=parseFloat,P=Math,Q=P.PI,R=P.min,S=P.max,T=P.pow,U=P.abs,V=j(1),W=j(),X=j(0,1),Y=a._unit2px,Z={path:function(a){return a.attr("path")},circle:function(a){var b=Y(a);return z(b.cx,b.cy,b.r)},ellipse:function(a){var b=Y(a);
14669return z(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=Y(a);return y(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=Y(a);return y(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return y(b.x,b.y,b.width,b.height)}};a.path=e,a.path.getTotalLength=V,a.path.getPointAtLength=W,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return X(a,b).end;var d=X(a,c,1);return b?X(d,b).end:d},J.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},J.getPointAtLength=function(a){return W(this.attr("d"),a)},J.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=f,a.path.findDotsAtSegment=k,a.path.bezierBBox=l,a.path.isPointInsideBBox=m,a.closest=function(b,c,d,e){for(var g=100,h=f(b-g/2,c-g/2,g,g),i=[],j=d[0].hasOwnProperty("x")?function(a){return{x:d[a].x,y:d[a].y}}:function(a){return{x:d[a],y:e[a]}},k=0;1e6>=g&&!k;){for(var l=0,n=d.length;n>l;l++){var o=j(l);if(m(h,o.x,o.y)){k++,i.push(o);break}}k||(g*=2,h=f(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(l=0,n=i.length;n>l;l++){var r=a.len(b,c,i[l].x,i[l].y);q>r&&(q=r,i[l].len=r,p=i[l])}return p}},a.path.isBBoxIntersect=n,a.path.intersection=t,a.path.intersectionNumber=u,a.path.isPointInside=w,a.path.getBBox=x,a.path.get=Z,a.path.toRelative=A,a.path.toAbsolute=B,a.path.toCubic=G,a.path.map=H,a.path.toString=g,a.path.clone=h}),d.plugin(function(a,d,e,f){var g=Math.max,h=Math.min,i=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},j=i.prototype;j.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},j.pop=function(){return this.length&&delete this[this.length--],this.items.pop()}
14669,j.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},j.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this)};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},j.remove=function(){for(;this.length;)this.pop().remove();return this},j.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},j.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},j.clear=function(){for(;this.length;)this.pop()},j.splice=function(a,b,c){a=0>a?g(this.length+a,0):a,b=g(0,h(this.length-a,b));var d,e=[],f=[],j=[];for(d=2;d<arguments.length;d++)j.push(arguments[d]);for(d=0;b>d;d++)f.push(this[a+d]);for(;d<this.length-a;d++)e.push(this[a+d]);var k=j.length;for(d=0;d<k+e.length;d++)this.items[a+d]=this[a+d]=k>d?j[d]:e[d-k];for(d=this.items.length=this.length-=b-k;this[d];)delete this[d++];return new i(f)},j.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},j.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},j.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=h.apply(0,a),b=h.apply(0,b),c=g.apply(0,c),d=g.apply(0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b,cx:a+(c-a)/2,cy:b+(d-b)/2}},j.clone=function(a){a=new i;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},j.toString=function(){return"Snap‘s set"},j.type="set",a.Set=i,a.set=function(){var a=new i;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c,d,e){function f(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function g(b,c,d){b=b||new a.Matrix,c=c||new a.Matrix,b=a.parseTransformString(b.toTransformString())||[],c=a.parseTransformString(c.toTransformString())||[];for(var e,g,h,i,j=Math.max(b.length,c.length),k=[],n=[],o=0;j>o;o++){if(h=b[o]||f(c[o]),i=c[o]||f(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,d()),c=a._.transform2matrix(c,d()),k=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(k[o]=[],n[o]=[],e=0,g=Math.max(h.length,i.length);g>e;e++)e in h&&(k[o][e]=h[e]),e in i&&(n[o][e]=i[e])}return{from:m(k),to:m(n),f:l(k)}}function h(a){return a}function i(a){return function(b){return+b.toFixed(3)+a}}function j(a){return a.join(" ")}function k(b){return a.rgb(b[0],b[1],b[2],b[3])}function l(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function m(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function n(a){return isFinite(a)}function o(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var p={},q=/[%a-z]+$/i,r=String;p.stroke=p.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,e,f=r(this.attr(b)||""),s=this;if("colour"==p[b])return d=a.color(f),e=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[e.r,e.g,e.b,e.opacity],f:k};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),e=c.split(" ").map(Number),{from:
14669d,to:e,f:j};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return"string"==typeof c&&(c=r(c).replace(/\.{3}|\u2026/g,f)),f=this.matrix,c=a._.rgTransform.test(c)?a._.transform2matrix(c,this.getBBox()):a._.transform2matrix(a._.svgTransform2string(c),this.getBBox()),g(f,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(f,c),{from:m(d[0]),to:m(d[1]),f:l(d[0])};if("points"==b)return d=r(f).split(a._.separator),e=r(c).split(a._.separator),{from:d,to:e,f:function(a){return a}};if(n(f)&&n(c))return{from:parseFloat(f),to:parseFloat(c),f:h};var t=f.match(q),u=r(c).match(q);return t&&o(t,u)?{from:parseFloat(f),to:parseFloat(c),f:i(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:h}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var m=c.el.node;m.nextSibling,m.parentNode,m.style.display;d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d,e){var f=(c.prototype,d.prototype),g=/^\s*url\((.+)\)/,h=String,i=a._.$;a.filter={},f.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(h(b)),f=a._.id(),g=(d.node.offsetWidth,d.node.offsetHeight,i("filter"));return i(g,{id:f,filterUnits:"userSpaceOnUse"}),g.appendChild(e.node),d.defs.appendChild(g),new c(g)},b.on("snap.util.getattr.filter",function(){b.stop();var c=i(this.node,"filter");if(c){var d=h(c).match(g);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(i(d.node,{id:d.id}),e=d.id),i(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('<feGaussianBlur stdDeviation="{def}"/>',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return null==f&&(null==e?(f=d,d=4,e="#000"):(f=e,e=d,d=4)),null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('<feGaussianBlur in="SourceAlpha" stdDeviation="{blur}"/><feOffset dx="{dx}" dy="{dy}" result="offsetblur"/><feFlood flood-color="{color}"/><feComposite in2="offsetblur" operator="in"/><feComponentTransfer><feFuncA type="linear" slope="{opacity}"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('<feColorMatrix type="matrix" values="{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0"/>',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('<feColorMatrix type="matrix" values="{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0"/>',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('<feColorMatrix type="saturate" values="{amount}"/>',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('<feColorMatrix type="hueRotate" values="{angle}"/>',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('<feComponentTransfer><feFuncR type="table" tableValues="{amount} {amount2}"/><feFuncG type="table" tableValues="{amount} {amount2}"/><feFuncB type="table" tableValues="{amount} {amount2}"/></feComponentTransfer>',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('<feComponentTransfer><feFuncR type="linear" slope="{amount}"/><feFuncG type="linear" slope="{amount}"/><feFuncB type="linear" slope="{amount}"/></feComponentTransfer>',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('<feComponentTransfer><feFuncR type="linear" slope="{amount}" intercept="{amount2}"/><feFuncG type="linear" slope="{amount}" intercept="{amount2}"/><feFuncB type="linear" slope="{amount}" intercept="{amount2}"/></feComponentTransfer>',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b,c,d,e){var f=a._.box,g=a.is,h=/^[^a-z]*([tbmlrc])/i,i=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&g(a,"string")&&(b=a,a=null),a=a||this.paper;var c=a.getBBox?a.getBBox():f(a),d=this.getBBox(),e={};switch(b=b&&b.match(h),b=b?b[1].toLowerCase():"c"){case"t":e.dx=0,e.dy=c.y-d.y;break;case"b":e.dx=0,e.dy=c.y2-d.y2;break;case"m":e.dx=0,e.dy=c.cy-d.cy;break;case"l":e.dx=c.x-d.x,e.dy=0;break;case"r":e.dx=c.x2-d.x2,e.dy=0;break;default:e.dx=c.cx-d.cx,e.dy=0}return e.toString=i,e},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d.plugin(function(b,c,d,e){function f(a){a=a.split(/(?=#)/);var b=new String(a[5]);return b[50]=a[0],b[100]=a[1],b[200]=a[2],b[300]=a[3],b[400]=a[4],b[500]=a[5],b[600]=a[6],b[700]=a[7],b[800]=a[8],b[900]=a[9],a[10]&&(b.A100=a[10],b.A200=a[11],b.A400=a[12],b.A700=a[13]),b}var g="#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000",h="#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162",i="#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF",j="#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA",k="#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE",l="#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF",m="#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA",n="#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4",o="#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5",p="#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853",q="#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17",r="#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00",s="#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600",t="#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00",u="#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00",v="#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00",w="#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723",x="#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121",y="#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238";b.mui={},b.flat={},b.mui.red=f(g),b.mui.pink=f(h),b.mui.purple=f(i),b.mui.deeppurple=f(j),b.mui.indigo=f(k),b.mui.blue=f(l),b.mui.lightblue=f(m),b.mui.cyan=f(n),b.mui.teal=f(o),b.mui.green=f(p),b.mui.lightgreen=f(q),b.mui.lime=f(r),b.mui.yellow=f(s),b.mui.amber=f(t),b.mui.orange=f(u),b.mui.deeporange=f(v),b.mui.brown=f(w),b.mui.grey=f(x),b.mui.bluegrey=f(y),b.flat.turquoise="#1abc9c",b.flat.greensea="#16a085",b.flat.sunflower="#f1c40f",b.flat.orange="#f39c12",b.flat.emerland="#2ecc71",b.flat.nephritis="#27ae60",b.flat.carrot="#e67e22",b.flat.pumpkin="#d35400",b.flat.peterriver="#3498db",b.flat.belizehole="#2980b9",b.flat.alizarin="#e74c3c",b.flat.pomegranate="#c0392b",b.flat.amethyst="#9b59b6",b.flat.wisteria="#8e44ad",b.flat.clouds="#ecf0f1",b.flat.silver="#bdc3c7",b.flat.wetasphalt="#34495e",b.flat.midnightblue="#2c3e50",b.flat.concrete="#95a5a6",b.flat.asbestos="#7f8c8d",b.importMUIColors=function(){for(var c in b.mui)b.mui.hasOwnProperty(c)&&(a[c]=b.mui[c])}}),d});;!function(a,b){"function"==typeof define&&define.amd?
14670// AMD. Register as an anonymous module unless amdModuleId is set
14671define([],function(){return a.svg4everybody=b()}):"object"==typeof exports?module.exports=b():a.svg4everybody=b()}(this,function(){/*! svg4everybody v2.0.3 | github.com/jonathantneal/svg4everybody */
14672function a(a,b){
14673// if the target exists
14674if(b){
14675// create a document fragment to hold the contents of the target
14676var c=document.createDocumentFragment(),d=!a.getAttribute("viewBox")&&b.getAttribute("viewBox");
14677// conditionally set the viewBox on the svg
14678d&&a.setAttribute("viewBox",d);
14679// copy the contents of the clone into the fragment
14680for(
14681// clone the target
14682var e=b.cloneNode(!0);e.childNodes.length;)c.appendChild(e.firstChild);
14683// append the fragment into the svg
14684a.appendChild(c)}}function b(b){
14685// listen to changes in the request
14686b.onreadystatechange=function(){
14687// if the request is ready
14688if(4===b.readyState){
14689// get the cached html document
14690var c=b._cachedDocument;
14691// ensure the cached html document based on the xhr response
14692c||(c=b._cachedDocument=document.implementation.createHTMLDocument(""),c.body.innerHTML=b.responseText,b._cachedTarget={}),
14693// clear the xhr embeds list and embed each item
14694b._embeds.splice(0).map(function(d){
14695// get the cached target
14696var e=b._cachedTarget[d.id];
14697// ensure the cached target
14698e||(e=b._cachedTarget[d.id]=c.getElementById(d.id)),
14699// embed the target into the svg
14700a(d.svg,e)})}},
14701// test the ready state change immediately
14702b.onreadystatechange()}function c(c){function d(){
14703// while the index exists in the live <use> collection
14704for(
14705// get the cached <use> index
14706var c=0;c<l.length;){
14707// get the current <use>
14708var g=l[c],h=g.parentNode;if(h&&/svg/i.test(h.nodeName)){var i=g.getAttribute("xlink:href");if(e&&(!f.validate||f.validate(i,h,g))){
14709// remove the <use> element
14710h.removeChild(g);
14711// parse the src and get the url and id
14712var m=i.split("#"),n=m.shift(),o=m.join("#");
14713// if the link is external
14714if(n.length){
14715// get the cached xhr request
14716var p=j[n];
14717// ensure the xhr request exists
14718p||(p=j[n]=new XMLHttpRequest,p.open("GET",n),p.send(),p._embeds=[]),
14719// add the svg and id as an item to the xhr embeds list
14720p._embeds.push({svg:h,id:o}),
14721// prepare the xhr ready state change event
14722b(p)}else
14723// embed the local id into the svg
14724a(h,document.getElementById(o))}}else
14725// increase the index when the previous value was not "valid"
14726++c}
14727// continue the interval
14728k(d,67)}var e,f=Object(c),g=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,h=/\bAppleWebKit\/(\d+)\b/,i=/\bEdge\/12\.(\d+)\b/;e="polyfill"in f?f.polyfill:g.test(navigator.userAgent)||(navigator.userAgent.match(i)||[])[1]<10547||(navigator.userAgent.match(h)||[])[1]<537;
14729// create xhr requests object
14730var j={},k=window.requestAnimationFrame||setTimeout,l=document.getElementsByTagName("use");
14731// conditionally start the interval if the polyfill is active
14732e&&d()}return c});;/**
14733 * Swiper 4.4.2
14734 * Most modern mobile touch slider and framework with hardware accelerated transitions
14735 * http://www.idangero.us/swiper/
14736 *
14737 * Copyright 2014-2018 Vladimir Kharlampidi
14738 *
14739 * Released under the MIT License
14740 *
14741 * Released on: November 1, 2018
14742 */
14743!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var f="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,Y="undefined"==typeof window?{document:f,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,l=function(e){for(var t=0;t<e.length;t+=1)this[t]=e[t];return this.length=e.length,this};function L(e,t){var a=[],i=0;if(e&&!t&&e instanceof l)return e;if(e)if("string"==typeof e){var s,r,n=e.trim();if(0<=n.indexOf("<")&&0<=n.indexOf(">")){var o="div";for(0===n.indexOf("<li")&&(o="ul"),0===n.indexOf("<tr")&&(o="tbody"),0!==n.indexOf("<td")&&0!==n.indexOf("<th")||(o="tr"),0===n.indexOf("<tbody")&&(o="table"),0===n.indexOf("<option")&&(o="select"),(r=f.createElement(o)).innerHTML=n,i=0;i<r.childNodes.length;i+=1)a.push(r.childNodes[i])}else for(s=t||"#"!==e[0]||e.match(/[ .<>:~]/)?(t||f).querySelectorAll(e.trim()):[f.getElementById(e.trim().split("#")[1])],i=0;i<s.length;i+=1)s[i]&&a.push(s[i])}else if(e.nodeType||
vendor: 81,034 bytes, line 14743
14743e===Y||e===f)a.push(e);else if(0<e.length&&e[0].nodeType)for(i=0;i<e.length;i+=1)a.push(e[i]);return new l(a)}function r(e){for(var t=[],a=0;a<e.length;a+=1)-1===t.indexOf(e[a])&&t.push(e[a]);return t}L.fn=l.prototype,L.Class=l,L.Dom7=l;var t={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),a=0;a<t.length;a+=1)for(var i=0;i<this.length;i+=1)void 0!==this[i]&&void 0!==this[i].classList&&this[i].classList.add(t[a]);return this},removeClass:function(e){for(var t=e.split(" "),a=0;a<t.length;a+=1)for(var i=0;i<this.length;i+=1)void 0!==this[i]&&void 0!==this[i].classList&&this[i].classList.remove(t[a]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),a=0;a<t.length;a+=1)for(var i=0;i<this.length;i+=1)void 0!==this[i]&&void 0!==this[i].classList&&this[i].classList.toggle(t[a]);return this},attr:function(e,t){var a=arguments;if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var i=0;i<this.length;i+=1)if(2===a.length)this[i].setAttribute(e,t);else for(var s in e)this[i][s]=e[s],this[i].setAttribute(s,e[s]);return this},removeAttr:function(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},data:function(e,t){var a;if(void 0!==t){for(var i=0;i<this.length;i+=1)(a=this[i]).dom7ElementDataStorage||(a.dom7ElementDataStorage={}),a.dom7ElementDataStorage[e]=t;return this}if(a=this[0]){if(a.dom7ElementDataStorage&&e in a.dom7ElementDataStorage)return a.dom7ElementDataStorage[e];var s=a.getAttribute("data-"+e);return s||void 0}},transform:function(e){for(var t=0;t<this.length;t+=1){var a=this[t].style;a.webkitTransform=e,a.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t+=1){var a=this[t].style;a.webkitTransitionDuration=e,a.transitionDuration=e}return this},on:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var i=t[0],r=t[1],n=t[2],s=t[3];function o(e){var t=e.target;if(t){var a=e.target.dom7EventData||[];if(a.indexOf(e)<0&&a.unshift(e),L(t).is(r))n.apply(t,a);else for(var i=L(t).parents(),s=0;s<i.length;s+=1)L(i[s]).is(r)&&n.apply(i[s],a)}}function l(e){var t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),n.apply(this,t)}"function"==typeof t[1]&&(i=(e=t)[0],n=e[1],s=e[2],r=void 0),s||(s=!1);for(var d,p=i.split(" "),c=0;c<this.length;c+=1){var u=this[c];if(r)for(d=0;d<p.length;d+=1){var h=p[d];u.dom7LiveListeners||(u.dom7LiveListeners={}),u.dom7LiveListeners[h]||(u.dom7LiveListeners[h]=[]),u.dom7LiveListeners[h].push({listener:n,proxyListener:o}),u.addEventListener(h,o,s)}else for(d=0;d<p.length;d+=1){var v=p[d];u.dom7Listeners||(u.dom7Listeners={}),u.dom7Listeners[v]||(u.dom7Listeners[v]=[]),u.dom7Listeners[v].push({listener:n,proxyListener:l}),u.addEventListener(v,l,s)}}return this},off:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var i=t[0],s=t[1],r=t[2],n=t[3];"function"==typeof t[1]&&(i=(e=t)[0],r=e[1],n=e[2],s=void 0),n||(n=!1);for(var o=i.split(" "),l=0;l<o.length;l+=1)for(var d=o[l],p=0;p<this.length;p+=1){var c=this[p],u=void 0;if(!s&&c.dom7Listeners?u=c.dom7Listeners[d]:s&&c.dom7LiveListeners&&(u=c.dom7LiveListeners[d]),u&&u.length)for(var h=u.length-1;0<=h;h-=1){var v=u[h];r&&v.listener===r?(c.removeEventListener(d,v.proxyListener,n),u.splice(h,1)):r||(c.removeEventListener(d,v.proxyListener,n),u.splice(h,1))}}return this},trigger:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var a=e[0].split(" "),i=e[1],s=0;s<a.length;s+=1)for(var r=a[s],n=0;n<this.length;n+=1){var o=this[n],l=void 0;try{l=new Y.CustomEvent(r,{detail:i,bubbles:!0,cancelable:!0})}catch(e){(l=f.createEvent("Event")).initEvent(r,!0,!0),l.detail=i}o.dom7EventData=e.filter(function(e,t){return 0<t}),o.dispatchEvent(l),o.dom7EventData=[],delete o.dom7EventData}return this},transitionEnd:function(t){var a,i=["webkitTransitionEnd","transitionend"],s=this;function r(e){if(e.target===this)for(t.call(this,e),a=0;a<i.length;a+=1)s.off(i[a],r)}if(t)for(a=0;a<i.length;a+=1)s.on(i[a],r);return this},outerWidth:function(e){if(0<this.length){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(0<this.length){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},offset:function(){if(0<this.length){var e=this[0],t=e.getBoundingClientRect(),a=f.body,i=e.clientTop||a.clientTop||0,s=e.clientLeft||a.clientLeft||0,r=e===Y?Y.scrollY:e.scrollTop,n=e===Y?Y.scrollX:e.scrollLeft;return{top:t.top+r-i,left:t.left+n-s}}return null},css:function(e,t){var a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(var i in e)this[a].style[i]=e[i];return this}if(this[0])return Y.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this},each:function(e){if(!e)return this;for(var t=0;t<this.length;t+=1)if(!1===e.call(this[t],t,this[t]))return this;return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(var t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){var t,a,i=this[0];if(!i||void 0===e)return!1;if("string"==typeof e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);for(t=L(e),a=0;a<t.length;a+=1)if(t[a]===i)return!0;return!1}if(e===f)return i===f;if(e===Y)return i===Y;if(e.nodeType||e instanceof l){for(t=e.nodeType?[e]:e,a=0;a<t.length;a+=1)if(t[a]===i)return!0;return!1}return!1},index:function(){var e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;var t,a=this.length;return new l(a-1<e?[]:e<0?(t=a+e)<0?[]:[this[t]]:[this[e]])},append:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];for(var i=0;i<t.length;i+=1){e=t[i];for(var s=0;s<this.length;s+=1)if("string"==typeof e){var r=f.createElement("div");for(r.innerHTML=e;r.firstChild;)this[s].appendChild(r.firstChild)}else if(e instanceof l)for(var n=0;n<e.length;n+=1)this[s].appendChild(e[n]);else this[s].appendChild(e)}return this},prepend:function(e){var t,a;for(t=0;t<this.length;t+=1)if("string"==typeof e){var i=f.createElement("div");for(i.innerHTML=e,a=i.childNodes.length-1;0<=a;a-=1)this[t].insertBefore(i.childNodes[a],this[t].childNodes[0])}else if(e instanceof l)for(a=0;a<e.length;a+=1)this[t].insertBefore(e[a],this[t].childNodes[0]);else this[t].insertBefore(e,this[t].childNodes[0]);return this},next:function(e){return 0<this.length?e?this[0].nextElementSibling&&L(this[0].nextElementSibling).is(e)?new l([this[0].nextElementSibling]):new l([]):this[0].nextElementSibling?new l([this[0].nextElementSibling]):new l([]):new l([])},nextAll:function(e){var t=[],a=this[0];if(!a)return new l([]);for(;a.nextElementSibling;){var i=a.nextElementSibling;e?L(i).is(e)&&t.push(i):t.push(i),a=i}return new l(t)},prev:function(e){if(0<this.length){var t=this[0];return e?t.previousElementSibling&&L(t.previousElementSibling).is(e)?new l([t.previousElementSibling]):new l([]):t.previousElementSibling?new l([t.previousElementSibling]):new l([])}return new l([])},prevAll:function(e){var t=[],a=this[0];if(!a)return new l([]);for(;a.previousElementSibling;){var i=a.previousElementSibling;e?L(i).is(e)&&t.push(i):t.push(i),a=i}return new l(t)},parent:function(e){for(var t=[],a=0;a<this.length;a+=1)null!==this[a].parentNode&&(e?L(this[a].parentNode).is(e)&&t.push(this[a].parentNode):t.push(this[a].parentNode));return L(r(t))},parents:function(e){for(var t=[],a=0;a<this.length;a+=1)for(var i=this[a].parentNode;i;)e?L(i).is(e)&&t.push(i):t.push(i),i=i.parentNode;return L(r(t))},closest:function(e){var t=this;return void 0===e?new l([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){for(var t=[],a=0;a<this.length;a+=1)for(var i=this[a].querySelectorAll(e),s=0;s<i.length;s+=1)t.push(i[s]);return new l(t)},children:function(e){for(var t=[],a=0;a<this.length;a+=1)for(var i=this[a].childNodes,s=0;s<i.length;s+=1)e?1===i[s].nodeType&&L(i[s]).is(e)&&t.push(i[s]):1===i[s].nodeType&&t.push(i[s]);return new l(r(t))},remove:function(){for(var e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,i;for(a=0;a<e.length;a+=1){var s=L(e[a]);for(i=0;i<s.length;i+=1)this[this.length]=s[i],this.length+=1}return this},styles:function(){return this[0]?Y.getComputedStyle(this[0],null):{}}};Object.keys(t).forEach(function(e){L.fn[e]=t[e]});var e,a,i,V={deleteProps:function(e){var t=e;Object.keys(t).forEach(function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},now:function(){return Date.now()},getTranslate:function(e,t){var a,i,s;void 0===t&&(t="x");var r=Y.getComputedStyle(e,null);return Y.WebKitCSSMatrix?(6<(i=r.transform||r.webkitTransform).split(",").length&&(i=i.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),s=new Y.WebKitCSSMatrix("none"===i?"":i)):a=(s=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=Y.WebKitCSSMatrix?s.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=Y.WebKitCSSMatrix?s.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0},parseUrlQuery:function(e){var t,a,i,s,r={},n=e||Y.location.href;if("string"==typeof n&&n.length)for(s=(a=(n=-1<n.indexOf("?")?n.replace(/\S*\?/,""):"").split("&").filter(function(e){return""!==e})).length,t=0;t<s;t+=1)i=a[t].replace(/#\S+/g,"").split("="),r[decodeURIComponent(i[0])]=void 0===i[1]?void 0:decodeURIComponent(i[1])||"";return r},isObject:function(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object},extend:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var a=Object(e[0]),i=1;i<e.length;i+=1){var s=e[i];if(null!=s)for(var r=Object.keys(Object(s)),n=0,o=r.length;n<o;n+=1){var l=r[n],d=Object.getOwnPropertyDescriptor(s,l);void 0!==d&&d.enumerable&&(V.isObject(a[l])&&V.isObject(s[l])?V.extend(a[l],s[l]):!V.isObject(a[l])&&V.isObject(s[l])?(a[l]={},V.extend(a[l],s[l])):a[l]=s[l])}}return a}},F=(i=f.createElement("div"),{touch:Y.Modernizr&&!0===Y.Modernizr.touch||!!("ontouchstart"in Y||Y.DocumentTouch&&f instanceof Y.DocumentTouch),pointerEvents:!!(Y.navigator.pointerEnabled||Y.PointerEvent||"maxTouchPoints"in Y.navigator),prefixedPointerEvents:!!Y.navigator.msPointerEnabled,transition:(a=i.style,"transition"in a||"webkitTransition"in a||"MozTransition"in a),transforms3d:Y.Modernizr&&!0===Y.Modernizr.csstransforms3d||(e=i.style,"webkitPerspective"in e||"MozPerspective"in e||"OPerspective"in e||"MsPerspective"in e||"perspective"in e),flexbox:function(){for(var e=i.style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),a=0;a<t.length;a+=1)if(t[a]in e)return!0;return!1}(),observer:"MutationObserver"in Y||"WebkitMutationObserver"in Y,passiveListener:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});Y.addEventListener("testPassiveListener",null,t)}catch(e){}return e}(),gestures:"ongesturestart"in Y}),s=function(e){void 0===e&&(e={});var t=this;t.params=e,t.eventsListeners={},t.params&&t.params.on&&Object.keys(t.params.on).forEach(function(e){t.on(e,t.params.on[e])})},n={components:{configurable:!0}};s.prototype.on=function(e,t,a){var i=this;if("function"!=typeof t)return i;var s=a?"unshift":"push";return e.split(" ").forEach(function(e){i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][s](t)}),i},s.prototype.once=function(i,s,e){var r=this;if("function"!=typeof s)return r;return r.on(i,function e(){for(var t=[],a=arguments.length;a--;)t[a]=arguments[a];s.apply(r,t),r.off(i,e)},e)},s.prototype.off=function(e,i){var s=this;return s.eventsListeners&&e.split(" ").forEach(function(a){void 0===i?s.eventsListeners[a]=[]:s.eventsListeners[a]&&s.eventsListeners[a].length&&s.eventsListeners[a].forEach(function(e,t){e===i&&s.eventsListeners[a].splice(t,1)})}),s},s.prototype.emit=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,i,s,r=this;return r.eventsListeners&&("string"==typeof e[0]||Array.isArray(e[0])?(a=e[0],i=e.slice(1,e.length),s=r):(a=e[0].events,i=e[0].data,s=e[0].context||r),(Array.isArray(a)?a:a.split(" ")).forEach(function(e){if(r.eventsListeners&&r.eventsListeners[e]){var t=[];r.eventsListeners[e].forEach(function(e){t.push(e)}),t.forEach(function(e){e.apply(s,i)})}})),r},s.prototype.useModulesParams=function(a){var i=this;i.modules&&Object.keys(i.modules).forEach(function(e){var t=i.modules[e];t.params&&V.extend(a,t.params)})},s.prototype.useModules=function(i){void 0===i&&(i={});var s=this;s.modules&&Object.keys(s.modules).forEach(function(e){var a=s.modules[e],t=i[e]||{};a.instance&&Object.keys(a.instance).forEach(function(e){var t=a.instance[e];s[e]="function"==typeof t?t.bind(s):t}),a.on&&s.on&&Object.keys(a.on).forEach(function(e){s.on(e,a.on[e])}),a.create&&a.create.bind(s)(t)})},n.components.set=function(e){this.use&&this.use(e)},s.installModule=function(t){for(var e=[],a=arguments.length-1;0<a--;)e[a]=arguments[a+1];var i=this;i.prototype.modules||(i.prototype.modules={});var s=t.name||Object.keys(i.prototype.modules).length+"_"+V.now();return(i.prototype.modules[s]=t).proto&&Object.keys(t.proto).forEach(function(e){i.prototype[e]=t.proto[e]}),t.static&&Object.keys(t.static).forEach(function(e){i[e]=t.static[e]}),t.install&&t.install.apply(i,e),i},s.use=function(e){for(var t=[],a=arguments.length-1;0<a--;)t[a]=arguments[a+1];var i=this;return Array.isArray(e)?(e.forEach(function(e){return i.installModule(e)}),i):i.installModule.apply(i,[e].concat(t))},Object.defineProperties(s,n);var o={updateSize:function(){var e,t,a=this,i=a.$el;e=void 0!==a.params.width?a.params.width:i[0].clientWidth,t=void 0!==a.params.height?a.params.height:i[0].clientHeight,0===e&&a.isHorizontal()||0===t&&a.isVertical()||(e=e-parseInt(i.css("padding-left"),10)-parseInt(i.css("padding-right"),10),t=t-parseInt(i.css("padding-top"),10)-parseInt(i.css("padding-bottom"),10),V.extend(a,{width:e,height:t,size:a.isHorizontal()?e:t}))},updateSlides:function(){var e=this,t=e.params,a=e.$wrapperEl,i=e.size,s=e.rtlTranslate,r=e.wrongRTL,n=e.virtual&&t.virtual.enabled,o=n?e.virtual.slides.length:e.slides.length,l=a.children("."+e.params.slideClass),d=n?e.virtual.slides.length:l.length,p=[],c=[],u=[],h=t.slidesOffsetBefore;"function"==typeof h&&(h=t.slidesOffsetBefore.call(e));var v=t.slidesOffsetAfter;"function"==typeof v&&(v=t.slidesOffsetAfter.call(e));var f=e.snapGrid.length,m=e.snapGrid.length,g=t.spaceBetween,b=-h,w=0,y=0;if(void 0!==i){var x,T;"string"==typeof g&&0<=g.indexOf("%")&&(g=parseFloat(g.replace("%",""))/100*i),e.virtualSize=-g,s?l.css({marginLeft:"",marginTop:""}):l.css({marginRight:"",marginBottom:""}),1<t.slidesPerColumn&&(x=Math.floor(d/t.slidesPerColumn)===d/e.params.slidesPerColumn?d:Math.ceil(d/t.slidesPerColumn)*t.slidesPerColumn,"auto"!==t.slidesPerView&&"row"===t.slidesPerColumnFill&&(x=Math.max(x,t.slidesPerView*t.slidesPerColumn)));for(var E,S=t.slidesPerColumn,C=x/S,M=C-(t.slidesPerColumn*C-d),k=0;k<d;k+=1){T=0;var P=l.eq(k);if(1<t.slidesPerColumn){var z=void 0,$=void 0,L=void 0;"column"===t.slidesPerColumnFill?(L=k-($=Math.floor(k/S))*S,(M<$||$===M&&L===S-1)&&S<=(L+=1)&&(L=0,$+=1),z=$+L*x/S,P.css({"-webkit-box-ordinal-group":z,"-moz-box-ordinal-group":z,"-ms-flex-order":z,"-webkit-order":z,order:z})):$=k-(L=Math.floor(k/C))*C,P.css("margin-"+(e.isHorizontal()?"top":"left"),0!==L&&t.spaceBetween&&t.spaceBetween+"px").attr("data-swiper-column",$).attr("data-swiper-row",L)}if("none"!==P.css("display")){if("auto"===t.slidesPerView){var I=Y.getComputedStyle(P[0],null),D=P[0].style.transform,O=P[0].style.webkitTransform;D&&(P[0].style.transform="none"),O&&(P[0].style.webkitTransform="none"),T=t.roundLengths?e.isHorizontal()?P.outerWidth(!0):P.outerHeight(!0):e.isHorizontal()?parseFloat(I.getPropertyValue("width"))+parseFloat(I.getPropertyValue("margin-left"))+parseFloat(I.getPropertyValue("margin-right")):parseFloat(I.getPropertyValue("height"))+parseFloat(I.getPropertyValue("margin-top"))+parseFloat(I.getPropertyValue("margin-bottom")),D&&(P[0].style.transform=D),O&&(P[0].style.webkitTransform=O),t.roundLengths&&(T=Math.floor(T))}else T=(i-(t.slidesPerView-1)*g)/t.slidesPerView,t.roundLengths&&(T=Math.floor(T)),l[k]&&(e.isHorizontal()?l[k].style.width=T+"px":l[k].style.height=T+"px");l[k]&&(l[k].swiperSlideSize=T),u.push(T),t.centeredSlides?(b=b+T/2+w/2+g,0===w&&0!==k&&(b=b-i/2-g),0===k&&(b=b-i/2-g),Math.abs(b)<.001&&(b=0),t.roundLengths&&(b=Math.floor(b)),y%t.slidesPerGroup==0&&p.push(b),c.push(b)):(t.roundLengths&&(b=Math.floor(b)),y%t.slidesPerGroup==0&&p.push(b),c.push(b),b=b+T+g),e.virtualSize+=T+g,w=T,y+=1}}if(e.virtualSize=Math.max(e.virtualSize,i)+v,s&&r&&("slide"===t.effect||"coverflow"===t.effect)&&a.css({width:e.virtualSize+t.spaceBetween+"px"}),F.flexbox&&!t.setWrapperSize||(e.isHorizontal()?a.css({width:e.virtualSize+t.spaceBetween+"px"}):a.css({height:e.virtualSize+t.spaceBetween+"px"})),1<t.slidesPerColumn&&(e.virtualSize=(T+t.spaceBetween)*x,e.virtualSize=Math.ceil(e.virtualSize/t.slidesPerColumn)-t.spaceBetween,e.isHorizontal()?a.css({width:e.virtualSize+t.spaceBetween+"px"}):a.css({height:e.virtualSize+t.spaceBetween+"px"}),t.centeredSlides)){E=[];for(var A=0;A<p.length;A+=1){var N=p[A];t.roundLengths&&(N=Math.floor(N)),p[A]<e.virtualSize+p[0]&&E.push(N)}p=E}if(!t.centeredSlides){E=[];for(var H=0;H<p.length;H+=1){var G=p[H];t.roundLengths&&(G=Math.floor(G)),p[H]<=e.virtualSize-i&&E.push(G)}p=E,1<Math.floor(e.virtualSize-i)-Math.floor(p[p.length-1])&&p.push(e.virtualSize-i)}if(0===p.length&&(p=[0]),0!==t.spaceBetween&&(e.isHorizontal()?s?l.css({marginLeft:g+"px"}):l.css({marginRight:g+"px"}):l.css({marginBottom:g+"px"})),t.centerInsufficientSlides){var B=0;if(u.forEach(function(e){B+=e+(t.spaceBetween?t.spaceBetween:0)}),(B-=t.spaceBetween)<i){var X=(i-B)/2;p.forEach(function(e,t){p[t]=e-X}),c.forEach(function(e,t){c[t]=e+X})}}V.extend(e,{slides:l,snapGrid:p,slidesGrid:c,slidesSizesGrid:u}),d!==o&&e.emit("slidesLengthChange"),p.length!==f&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),c.length!==m&&e.emit("slidesGridLengthChange"),(t.watchSlidesProgress||t.watchSlidesVisibility)&&e.updateSlidesOffset()}},updateAutoHeight:function(e){var t,a=this,i=[],s=0;if("number"==typeof e?a.setTransition(e):!0===e&&a.setTransition(a.params.speed),"auto"!==a.params.slidesPerView&&1<a.params.slidesPerView)for(t=0;t<Math.ceil(a.params.slidesPerView);t+=1){var r=a.activeIndex+t;if(r>a.slides.length)break;i.push(a.slides.eq(r)[0])}else i.push(a.slides.eq(a.activeIndex)[0]);for(t=0;t<i.length;t+=1)if(void 0!==i[t]){var n=i[t].offsetHeight;s=s<n?n:s}s&&a.$wrapperEl.css("height",s+"px")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t<e.length;t+=1)e[t].swiperSlideOffset=this.isHorizontal()?e[t].offsetLeft:e[t].offsetTop},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);var t=this,a=t.params,i=t.slides,s=t.rtlTranslate;if(0!==i.length){void 0===i[0].swiperSlideOffset&&t.updateSlidesOffset();var r=-e;s&&(r=e),i.removeClass(a.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(var n=0;n<i.length;n+=1){var o=i[n],l=(r+(a.centeredSlides?t.minTranslate():0)-o.swiperSlideOffset)/(o.swiperSlideSize+a.spaceBetween);if(a.watchSlidesVisibility){var d=-(r-o.swiperSlideOffset),p=d+t.slidesSizesGrid[n];(0<=d&&d<t.size||0<p&&p<=t.size||d<=0&&p>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}o.progress=s?-l:l}t.visibleSlides=L(t.visibleSlides)}},updateProgress:function(e){void 0===e&&(e=this&&this.translate||0);var t=this,a=t.params,i=t.maxTranslate()-t.minTranslate(),s=t.progress,r=t.isBeginning,n=t.isEnd,o=r,l=n;0===i?n=r=!(s=0):(r=(s=(e-t.minTranslate())/i)<=0,n=1<=s),V.extend(t,{progress:s,isBeginning:r,isEnd:n}),(a.watchSlidesProgress||a.watchSlidesVisibility)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!l&&t.emit("reachEnd toEdge"),(o&&!r||l&&!n)&&t.emit("fromEdge"),t.emit("progress",s)},updateSlidesClasses:function(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,o=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=o?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var l=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===l.length&&(l=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(l.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass))},updateActiveIndex:function(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,o=a.activeIndex,l=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var c=0;c<s.length;c+=1)void 0!==s[c+1]?i>=s[c]&&i<s[c+1]-(s[c+1]-s[c])/2?p=c:i>=s[c]&&i<s[c+1]&&(p=c+1):i>=s[c]&&(p=c);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if((t=0<=r.indexOf(i)?r.indexOf(i):Math.floor(p/n.slidesPerGroup))>=r.length&&(t=r.length-1),p!==o){var u=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);V.extend(a,{snapIndex:t,realIndex:u,previousIndex:o,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),l!==u&&a.emit("realIndexChange"),a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,a=t.params,i=L(e.target).closest("."+a.slideClass)[0],s=!1;if(i)for(var r=0;r<t.slides.length;r+=1)t.slides[r]===i&&(s=!0);if(!i||!s)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=i,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(L(i).attr("data-swiper-slide-index"),10):t.clickedIndex=L(i).index(),a.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};var d={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");var t=this.params,a=this.rtlTranslate,i=this.translate,s=this.$wrapperEl;if(t.virtualTranslate)return a?-i:i;var r=V.getTranslate(s[0],e);return a&&(r=-r),r||0},setTranslate:function(e,t){var a=this,i=a.rtlTranslate,s=a.params,r=a.$wrapperEl,n=a.progress,o=0,l=0;a.isHorizontal()?o=i?-e:e:l=e,s.roundLengths&&(o=Math.floor(o),l=Math.floor(l)),s.virtualTranslate||(F.transforms3d?r.transform("translate3d("+o+"px, "+l+"px, 0px)"):r.transform("translate("+o+"px, "+l+"px)")),a.previousTranslate=a.translate,a.translate=a.isHorizontal()?o:l;var d=a.maxTranslate()-a.minTranslate();(0===d?0:(e-a.minTranslate())/d)!==n&&a.updateProgress(e),a.emit("setTranslate",a.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]}};var p={setTransition:function(e,t){this.$wrapperEl.transition(e),this.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);var a=this,i=a.activeIndex,s=a.params,r=a.previousIndex;s.autoHeight&&a.updateAutoHeight();var n=t;if(n||(n=r<i?"next":i<r?"prev":"reset"),a.emit("transitionStart"),e&&i!==r){if("reset"===n)return void a.emit("slideResetTransitionStart");a.emit("slideChangeTransitionStart"),"next"===n?a.emit("slideNextTransitionStart"):a.emit("slidePrevTransitionStart")}},transitionEnd:function(e,t){void 0===e&&(e=!0);var a=this,i=a.activeIndex,s=a.previousIndex;a.animating=!1,a.setTransition(0);var r=t;if(r||(r=s<i?"next":i<s?"prev":"reset"),a.emit("transitionEnd"),e&&i!==s){if("reset"===r)return void a.emit("slideResetTransitionEnd");a.emit("slideChangeTransitionEnd"),"next"===r?a.emit("slideNextTransitionEnd"):a.emit("slidePrevTransitionEnd")}}};var c={slideTo:function(e,t,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===a&&(a=!0);var s=this,r=e;r<0&&(r=0);var n=s.params,o=s.snapGrid,l=s.slidesGrid,d=s.previousIndex,p=s.activeIndex,c=s.rtlTranslate;if(s.animating&&n.preventInteractionOnTransition)return!1;var u=Math.floor(r/n.slidesPerGroup);u>=o.length&&(u=o.length-1),(p||n.initialSlide||0)===(d||0)&&a&&s.emit("beforeSlideChangeStart");var h,v=-o[u];if(s.updateProgress(v),n.normalizeSlideIndex)for(var f=0;f<l.length;f+=1)-Math.floor(100*v)>=Math.floor(100*l[f])&&(r=f);if(s.initialized&&r!==p){if(!s.allowSlideNext&&v<s.translate&&v<s.minTranslate())return!1;if(!s.allowSlidePrev&&v>s.translate&&v>s.maxTranslate()&&(p||0)!==r)return!1}return h=p<r?"next":r<p?"prev":"reset",c&&-v===s.translate||!c&&v===s.translate?(s.updateActiveIndex(r),n.autoHeight&&s.updateAutoHeight(),s.updateSlidesClasses(),"slide"!==n.effect&&s.setTranslate(v),"reset"!==h&&(s.transitionStart(a,h),s.transitionEnd(a,h)),!1):(0!==t&&F.transition?(s.setTransition(t),s.setTranslate(v),s.updateActiveIndex(r),s.updateSlidesClasses(),s.emit("beforeTransitionStart",t,i),s.transitionStart(a,h),s.animating||(s.animating=!0,s.onSlideToWrapperTransitionEnd||(s.onSlideToWrapperTransitionEnd=function(e){s&&!s.destroyed&&e.target===this&&(s.$wrapperEl[0].removeEventListener("transitionend",s.onSlideToWrapperTransitionEnd),s.$wrapperEl[0].removeEventListener("webkitTransitionEnd",s.onSlideToWrapperTransitionEnd),s.onSlideToWrapperTransitionEnd=null,delete s.onSlideToWrapperTransitionEnd,s.transitionEnd(a,h))}),s.$wrapperEl[0].addEventListener("transitionend",s.onSlideToWrapperTransitionEnd),s.$wrapperEl[0].addEventListener("webkitTransitionEnd",s.onSlideToWrapperTransitionEnd))):(s.setTransition(0),s.setTranslate(v),s.updateActiveIndex(r),s.updateSlidesClasses(),s.emit("beforeTransitionStart",t,i),s.transitionStart(a,h),s.transitionEnd(a,h)),!0)},slideToLoop:function(e,t,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===a&&(a=!0);var s=e;return this.params.loop&&(s+=this.loopedSlides),this.slideTo(s,t,a,i)},slideNext:function(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this,s=i.params,r=i.animating;return s.loop?!r&&(i.loopFix(),i._clientLeft=i.$wrapperEl[0].clientLeft,i.slideTo(i.activeIndex+s.slidesPerGroup,e,t,a)):i.slideTo(i.activeIndex+s.slidesPerGroup,e,t,a)},slidePrev:function(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this,s=i.params,r=i.animating,n=i.snapGrid,o=i.slidesGrid,l=i.rtlTranslate;if(s.loop){if(r)return!1;i.loopFix(),i._clientLeft=i.$wrapperEl[0].clientLeft}function d(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}var p,c=d(l?i.translate:-i.translate),u=n.map(function(e){return d(e)}),h=(o.map(function(e){return d(e)}),n[u.indexOf(c)],n[u.indexOf(c)-1]);return void 0!==h&&(p=o.indexOf(h))<0&&(p=i.activeIndex-1),i.slideTo(p,e,t,a)},slideReset:function(e,t,a){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,a)},slideToClosest:function(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this,s=i.activeIndex,r=Math.floor(s/i.params.slidesPerGroup);if(r<i.snapGrid.length-1){var n=i.rtlTranslate?i.translate:-i.translate,o=i.snapGrid[r];(i.snapGrid[r+1]-o)/2<n-o&&(s=i.params.slidesPerGroup)}return i.slideTo(s,e,t,a)},slideToClickedSlide:function(){var e,t=this,a=t.params,i=t.$wrapperEl,s="auto"===a.slidesPerView?t.slidesPerViewDynamic():a.slidesPerView,r=t.clickedIndex;if(a.loop){if(t.animating)return;e=parseInt(L(t.clickedSlide).attr("data-swiper-slide-index"),10),a.centeredSlides?r<t.loopedSlides-s/2||r>t.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),V.nextTick(function(){t.slideTo(r)})):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),V.nextTick(function(){t.slideTo(r)})):t.slideTo(r)}else t.slideTo(r)}};var u={loopCreate:function(){var i=this,e=i.params,t=i.$wrapperEl;t.children("."+e.slideClass+"."+e.slideDuplicateClass).remove();var s=t.children("."+e.slideClass);if(e.loopFillGroupWithBlank){var a=e.slidesPerGroup-s.length%e.slidesPerGroup;if(a!==e.slidesPerGroup){for(var r=0;r<a;r+=1){var n=L(f.createElement("div")).addClass(e.slideClass+" "+e.slideBlankClass);t.append(n)}s=t.children("."+e.slideClass)}}"auto"!==e.slidesPerView||e.loopedSlides||(e.loopedSlides=s.length),i.loopedSlides=parseInt(e.loopedSlides||e.slidesPerView,10),i.loopedSlides+=e.loopAdditionalSlides,i.loopedSlides>s.length&&(i.loopedSlides=s.length);var o=[],l=[];s.each(function(e,t){var a=L(t);e<i.loopedSlides&&l.push(t),e<s.length&&e>=s.length-i.loopedSlides&&o.push(t),a.attr("data-swiper-slide-index",e)});for(var d=0;d<l.length;d+=1)t.append(L(l[d].cloneNode(!0)).addClass(e.slideDuplicateClass));for(var p=o.length-1;0<=p;p-=1)t.prepend(L(o[p].cloneNode(!0)).addClass(e.slideDuplicateClass))},loopFix:function(){var e,t=this,a=t.params,i=t.activeIndex,s=t.slides,r=t.loopedSlides,n=t.allowSlidePrev,o=t.allowSlideNext,l=t.snapGrid,d=t.rtlTranslate;t.allowSlidePrev=!0,t.allowSlideNext=!0;var p=-l[i]-t.getTranslate();i<r?(e=s.length-3*r+i,e+=r,t.slideTo(e,0,!1,!0)&&0!==p&&t.setTranslate((d?-t.translate:t.translate)-p)):("auto"===a.slidesPerView&&2*r<=i||i>=s.length-r)&&(e=-s.length+i+r,e+=r,t.slideTo(e,0,!1,!0)&&0!==p&&t.setTranslate((d?-t.translate:t.translate)-p));t.allowSlidePrev=n,t.allowSlideNext=o},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,a=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass).remove(),a.removeAttr("data-swiper-slide-index")}};var h={setGrabCursor:function(e){if(!(F.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked)){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){F.touch||this.params.watchOverflow&&this.isLocked||(this.el.style.cursor="")}};var v={appendSlide:function(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s<e.length;s+=1)e[s]&&a.append(e[s]);else a.append(e);i.loop&&t.loopCreate(),i.observer&&F.observer||t.update()},prependSlide:function(e){var t=this,a=t.params,i=t.$wrapperEl,s=t.activeIndex;a.loop&&t.loopDestroy();var r=s+1;if("object"==typeof e&&"length"in e){for(var n=0;n<e.length;n+=1)e[n]&&i.prepend(e[n]);r=s+e.length}else i.prepend(e);a.loop&&t.loopCreate(),a.observer&&F.observer||t.update(),t.slideTo(r,0,!1)},addSlide:function(e,t){var a=this,i=a.$wrapperEl,s=a.params,r=a.activeIndex;s.loop&&(r-=a.loopedSlides,a.loopDestroy(),a.slides=i.children("."+s.slideClass));var n=a.slides.length;if(e<=0)a.prependSlide(t);else if(n<=e)a.appendSlide(t);else{for(var o=e<r?r+1:r,l=[],d=n-1;e<=d;d-=1){var p=a.slides.eq(d);p.remove(),l.unshift(p)}if("object"==typeof t&&"length"in t){for(var c=0;c<t.length;c+=1)t[c]&&i.append(t[c]);o=e<r?r+t.length:r}else i.append(t);for(var u=0;u<l.length;u+=1)i.append(l[u]);s.loop&&a.loopCreate(),s.observer&&F.observer||a.update(),s.loop?a.slideTo(o+a.loopedSlides,0,!1):a.slideTo(o,0,!1)}},removeSlide:function(e){var t=this,a=t.params,i=t.$wrapperEl,s=t.activeIndex;a.loop&&(s-=t.loopedSlides,t.loopDestroy(),t.slides=i.children("."+a.slideClass));var r,n=s;if("object"==typeof e&&"length"in e){for(var o=0;o<e.length;o+=1)r=e[o],t.slides[r]&&t.slides.eq(r).remove(),r<n&&(n-=1);n=Math.max(n,0)}else r=e,t.slides[r]&&t.slides.eq(r).remove(),r<n&&(n-=1),n=Math.max(n,0);a.loop&&t.loopCreate(),a.observer&&F.observer||t.update(),a.loop?t.slideTo(n+t.loopedSlides,0,!1):t.slideTo(n,0,!1)},removeAllSlides:function(){for(var e=[],t=0;t<this.slides.length;t+=1)e.push(t);this.removeSlide(e)}},m=function(){var e=Y.navigator.userAgent,t={ios:!1,android:!1,androidChrome:!1,desktop:!1,windows:!1,iphone:!1,ipod:!1,ipad:!1,cordova:Y.cordova||Y.phonegap,phonegap:Y.cordova||Y.phonegap},a=e.match(/(Windows Phone);?[\s\/]+([\d.]+)?/),i=e.match(/(Android);?[\s\/]+([\d.]+)?/),s=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),n=!s&&e.match(/(iPhone\sOS|iOS)\s([\d_]+)/);if(a&&(t.os="windows",t.osVersion=a[2],t.windows=!0),i&&!a&&(t.os="android",t.osVersion=i[2],t.android=!0,t.androidChrome=0<=e.toLowerCase().indexOf("chrome")),(s||n||r)&&(t.os="ios",t.ios=!0),n&&!r&&(t.osVersion=n[2].replace(/_/g,"."),t.iphone=!0),s&&(t.osVersion=s[2].replace(/_/g,"."),t.ipad=!0),r&&(t.osVersion=r[3]?r[3].replace(/_/g,"."):null,t.iphone=!0),t.ios&&t.osVersion&&0<=e.indexOf("Version/")&&"10"===t.osVersion.split(".")[0]&&(t.osVersion=e.toLowerCase().split("version/")[1].split(" ")[0]),t.desktop=!(t.os||t.android||t.webView),t.webView=(n||s||r)&&e.match(/.*AppleWebKit(?!.*Safari)/i),t.os&&"ios"===t.os){var o=t.osVersion.split("."),l=f.querySelector('meta[name="viewport"]');t.minimalUi=!t.webView&&(r||n)&&(1*o[0]==7?1<=1*o[1]:7<1*o[0])&&l&&0<=l.getAttribute("content").indexOf("minimal-ui")}return t.pixelRatio=Y.devicePixelRatio||1,t}();function g(){var e=this,t=e.params,a=e.el;if(!a||0!==a.offsetWidth){t.breakpoints&&e.setBreakpoint();var i=e.allowSlideNext,s=e.allowSlidePrev,r=e.snapGrid;if(e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),t.freeMode){var n=Math.min(Math.max(e.translate,e.maxTranslate()),e.minTranslate());e.setTranslate(n),e.updateActiveIndex(),e.updateSlidesClasses(),t.autoHeight&&e.updateAutoHeight()}else e.updateSlidesClasses(),("auto"===t.slidesPerView||1<t.slidesPerView)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0);e.allowSlidePrev=s,e.allowSlideNext=i,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}}var b={attachEvents:function(){var e=this,t=e.params,a=e.touchEvents,i=e.el,s=e.wrapperEl;e.onTouchStart=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches;if(!t.animating||!i.preventInteractionOnTransition){var r=e;if(r.originalEvent&&(r=r.originalEvent),a.isTouchEvent="touchstart"===r.type,(a.isTouchEvent||!("which"in r)||3!==r.which)&&!(!a.isTouchEvent&&"button"in r&&0<r.button||a.isTouched&&a.isMoved))if(i.noSwiping&&L(r.target).closest(i.noSwipingSelector?i.noSwipingSelector:"."+i.noSwipingClass)[0])t.allowClick=!0;else if(!i.swipeHandler||L(r).closest(i.swipeHandler)[0]){s.currentX="touchstart"===r.type?r.targetTouches[0].pageX:r.pageX,s.currentY="touchstart"===r.type?r.targetTouches[0].pageY:r.pageY;var n=s.currentX,o=s.currentY,l=i.edgeSwipeDetection||i.iOSEdgeSwipeDetection,d=i.edgeSwipeThreshold||i.iOSEdgeSwipeThreshold;if(!l||!(n<=d||n>=Y.screen.width-d)){if(V.extend(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),s.startX=n,s.startY=o,a.touchStartTime=V.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,0<i.threshold&&(a.allowThresholdMove=!1),"touchstart"!==r.type){var p=!0;L(r.target).is(a.formElements)&&(p=!1),f.activeElement&&L(f.activeElement).is(a.formElements)&&f.activeElement!==r.target&&f.activeElement.blur();var c=p&&t.allowTouchMove&&i.touchStartPreventDefault;(i.touchStartForcePreventDefault||c)&&r.preventDefault()}t.emit("touchStart",r)}}}}.bind(e),e.onTouchMove=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=e;if(n.originalEvent&&(n=n.originalEvent),a.isTouched){if(!a.isTouchEvent||"mousemove"!==n.type){var o="touchmove"===n.type?n.targetTouches[0].pageX:n.pageX,l="touchmove"===n.type?n.targetTouches[0].pageY:n.pageY;if(n.preventedByNestedSwiper)return s.startX=o,void(s.startY=l);if(!t.allowTouchMove)return t.allowClick=!1,void(a.isTouched&&(V.extend(s,{startX:o,startY:l,currentX:o,currentY:l}),a.touchStartTime=V.now()));if(a.isTouchEvent&&i.touchReleaseOnEdges&&!i.loop)if(t.isVertical()){if(l<s.startY&&t.translate<=t.maxTranslate()||l>s.startY&&t.translate>=t.minTranslate())return a.isTouched=!1,void(a.isMoved=!1)}else if(o<s.startX&&t.translate<=t.maxTranslate()||o>s.startX&&t.translate>=t.minTranslate())return;if(a.isTouchEvent&&f.activeElement&&n.target===f.activeElement&&L(n.target).is(a.formElements))return a.isMoved=!0,void(t.allowClick=!1);if(a.allowTouchCallbacks&&t.emit("touchMove",n),!(n.targetTouches&&1<n.targetTouches.length)){s.currentX=o,s.currentY=l;var d,p=s.currentX-s.startX,c=s.currentY-s.startY;if(!(t.params.threshold&&Math.sqrt(Math.pow(p,2)+Math.pow(c,2))<t.params.threshold))if(void 0===a.isScrolling&&(t.isHorizontal()&&s.currentY===s.startY||t.isVertical()&&s.currentX===s.startX?a.isScrolling=!1:25<=p*p+c*c&&(d=180*Math.atan2(Math.abs(c),Math.abs(p))/Math.PI,a.isScrolling=t.isHorizontal()?d>i.touchAngle:90-d>i.touchAngle)),a.isScrolling&&t.emit("touchMoveOpposite",n),void 0===a.startMoving&&(s.currentX===s.startX&&s.currentY===s.startY||(a.startMoving=!0)),a.isScrolling)a.isTouched=!1;else if(a.startMoving){t.allowClick=!1,n.preventDefault(),i.touchMoveStopPropagation&&!i.nested&&n.stopPropagation(),a.isMoved||(i.loop&&t.loopFix(),a.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),a.allowMomentumBounce=!1,!i.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",n)),t.emit("sliderMove",n),a.isMoved=!0;var u=t.isHorizontal()?p:c;s.diff=u,u*=i.touchRatio,r&&(u=-u),t.swipeDirection=0<u?"prev":"next",a.currentTranslate=u+a.startTranslate;var h=!0,v=i.resistanceRatio;if(i.touchReleaseOnEdges&&(v=0),0<u&&a.currentTranslate>t.minTranslate()?(h=!1,i.resistance&&(a.currentTranslate=t.minTranslate()-1+Math.pow(-t.minTranslate()+a.startTranslate+u,v))):u<0&&a.currentTranslate<t.maxTranslate()&&(h=!1,i.resistance&&(a.currentTranslate=t.maxTranslate()+1-Math.pow(t.maxTranslate()-a.startTranslate-u,v))),h&&(n.preventedByNestedSwiper=!0),!t.allowSlideNext&&"next"===t.swipeDirection&&a.currentTranslate<a.startTranslate&&(a.currentTranslate=a.startTranslate),!t.allowSlidePrev&&"prev"===t.swipeDirection&&a.currentTranslate>a.startTranslate&&(a.currentTranslate=a.startTranslate),0<i.threshold){if(!(Math.abs(u)>i.threshold||a.allowThresholdMove))return void(a.currentTranslate=a.startTranslate);if(!a.allowThresholdMove)return a.allowThresholdMove=!0,s.startX=s.currentX,s.startY=s.currentY,a.currentTranslate=a.startTranslate,void(s.diff=t.isHorizontal()?s.currentX-s.startX:s.currentY-s.startY)}i.followFinger&&((i.freeMode||i.watchSlidesProgress||i.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),i.freeMode&&(0===a.velocities.length&&a.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:a.touchStartTime}),a.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:V.now()})),t.updateProgress(a.currentTranslate),t.setTranslate(a.currentTranslate))}}}}else a.startMoving&&a.isScrolling&&t.emit("touchMoveOpposite",n)}.bind(e),e.onTouchEnd=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,c=V.now(),u=c-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap",d),u<300&&300<c-a.lastClickTime&&(a.clickTimeout&&clearTimeout(a.clickTimeout),a.clickTimeout=V.nextTick(function(){t&&!t.destroyed&&t.emit("click",d)},300)),u<300&&c-a.lastClickTime<300&&(a.clickTimeout&&clearTimeout(a.clickTimeout),t.emit("doubleTap",d))),a.lastClickTime=V.now(),V.nextTick(function(){t.destroyed||(t.allowClick=!0)}),!a.isTouched||!a.isMoved||!t.swipeDirection||0===s.diff||a.currentTranslate===a.startTranslate)return a.isTouched=!1,a.isMoved=!1,void(a.startMoving=!1);if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,p=i.followFinger?r?t.translate:-t.translate:-a.currentTranslate,i.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length<l.length?t.slideTo(l.length-1):t.slideTo(t.slides.length-1));if(i.freeModeMomentum){if(1<a.velocities.length){var h=a.velocities.pop(),v=a.velocities.pop(),f=h.position-v.position,m=h.time-v.time;t.velocity=f/m,t.velocity/=2,Math.abs(t.velocity)<i.freeModeMinimumVelocity&&(t.velocity=0),(150<m||300<V.now()-h.time)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeModeMomentumVelocityRatio,a.velocities.length=0;var g=1e3*i.freeModeMomentumRatio,b=t.velocity*g,w=t.translate+b;r&&(w=-w);var y,x,T=!1,E=20*Math.abs(t.velocity)*i.freeModeMomentumBounceRatio;if(w<t.maxTranslate())i.freeModeMomentumBounce?(w+t.maxTranslate()<-E&&(w=t.maxTranslate()-E),y=t.maxTranslate(),T=!0,a.allowMomentumBounce=!0):w=t.maxTranslate(),i.loop&&i.centeredSlides&&(x=!0);else if(w>t.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>E&&(w=t.minTranslate()+E),y=t.minTranslate(),T=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(x=!0);else if(i.freeModeSticky){for(var S,C=0;C<l.length;C+=1)if(l[C]>-w){S=C;break}w=-(w=Math.abs(l[S]-w)<Math.abs(l[S-1]-w)||"next"===t.swipeDirection?l[S]:l[S-1])}if(x&&t.once("transitionEnd",function(){t.loopFix()}),0!==t.velocity)g=r?Math.abs((-w-t.translate)/t.velocity):Math.abs((w-t.translate)/t.velocity);else if(i.freeModeSticky)return void t.slideToClosest();i.freeModeMomentumBounce&&T?(t.updateProgress(y),t.setTransition(g),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd(function(){t&&!t.destroyed&&a.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(i.speed),t.setTranslate(y),n.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()}))})):t.velocity?(t.updateProgress(w),t.setTransition(g),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()}))):t.updateProgress(w),t.updateActiveIndex(),t.updateSlidesClasses()}else if(i.freeModeSticky)return void t.slideToClosest();(!i.freeModeMomentum||u>=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,k=t.slidesSizesGrid[0],P=0;P<o.length;P+=i.slidesPerGroup)void 0!==o[P+i.slidesPerGroup]?p>=o[P]&&p<o[P+i.slidesPerGroup]&&(k=o[(M=P)+i.slidesPerGroup]-o[P]):p>=o[P]&&(M=P,k=o[o.length-1]-o[o.length-2]);var z=(p-o[M])/k;if(u>i.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(z>=i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M)),"prev"===t.swipeDirection&&(z>1-i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(M+i.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(M)}}}.bind(e),e.onClick=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}.bind(e);var r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(F.touch||!F.pointerEvents&&!F.prefixedPointerEvents){if(F.touch){var o=!("touchstart"!==a.start||!F.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.addEventListener(a.start,e.onTouchStart,o),r.addEventListener(a.move,e.onTouchMove,F.passiveListener?{passive:!1,capture:n}:n),r.addEventListener(a.end,e.onTouchEnd,o)}(t.simulateTouch&&!m.ios&&!m.android||t.simulateTouch&&!F.touch&&m.ios)&&(r.addEventListener("mousedown",e.onTouchStart,!1),f.addEventListener("mousemove",e.onTouchMove,n),f.addEventListener("mouseup",e.onTouchEnd,!1))}else r.addEventListener(a.start,e.onTouchStart,!1),f.addEventListener(a.move,e.onTouchMove,n),f.addEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.addEventListener("click",e.onClick,!0),e.on(m.ios||m.android?"resize orientationchange observerUpdate":"resize observerUpdate",g,!0)},detachEvents:function(){var e=this,t=e.params,a=e.touchEvents,i=e.el,s=e.wrapperEl,r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(F.touch||!F.pointerEvents&&!F.prefixedPointerEvents){if(F.touch){var o=!("onTouchStart"!==a.start||!F.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(a.start,e.onTouchStart,o),r.removeEventListener(a.move,e.onTouchMove,n),r.removeEventListener(a.end,e.onTouchEnd,o)}(t.simulateTouch&&!m.ios&&!m.android||t.simulateTouch&&!F.touch&&m.ios)&&(r.removeEventListener("mousedown",e.onTouchStart,!1),f.removeEventListener("mousemove",e.onTouchMove,n),f.removeEventListener("mouseup",e.onTouchEnd,!1))}else r.removeEventListener(a.start,e.onTouchStart,!1),f.removeEventListener(a.move,e.onTouchMove,n),f.removeEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",e.onClick,!0),e.off(m.ios||m.android?"resize orientationchange observerUpdate":"resize observerUpdate",g)}};var w,y={setBreakpoint:function(){var e=this,t=e.activeIndex,a=e.initialized,i=e.loopedSlides;void 0===i&&(i=0);var s=e.params,r=s.breakpoints;if(r&&(!r||0!==Object.keys(r).length)){var n=e.getBreakpoint(r);if(n&&e.currentBreakpoint!==n){var o=n in r?r[n]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup"].forEach(function(e){var t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});var l=o||e.originalParams,d=s.loop&&l.slidesPerView!==s.slidesPerView;V.extend(e.params,l),V.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=n,d&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-i+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}}},getBreakpoint:function(e){if(e){var t=!1,a=[];Object.keys(e).forEach(function(e){a.push(e)}),a.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var i=0;i<a.length;i+=1){var s=a[i];this.params.breakpointsInverse?s<=Y.innerWidth&&(t=s):s>=Y.innerWidth&&!t&&(t=s)}return t||"max"}}},I={isIE:!!Y.navigator.userAgent.match(/Trident/g)||!!Y.navigator.userAgent.match(/MSIE/g),isEdge:!!Y.navigator.userAgent.match(/Edge/g),isSafari:(w=Y.navigator.userAgent.toLowerCase(),0<=w.indexOf("safari")&&w.indexOf("chrome")<0&&w.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(Y.navigator.userAgent)};var x={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,preventInteractionOnTransition:!1,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsInverse:!1,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!0,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0},T={update:o,translate:d,transition:p,slide:c,loop:u,grabCursor:h,manipulation:v,events:b,breakpoints:y,checkOverflow:{checkOverflow:function(){var e=this,t=e.isLocked;e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),t&&t!==e.isLocked&&(e.isEnd=!1,e.navigation.update())}},classes:{addClasses:function(){var t=this.classNames,a=this.params,e=this.rtl,i=this.$el,s=[];s.push(a.direction),a.freeMode&&s.push("free-mode"),F.flexbox||s.push("no-flexbox"),a.autoHeight&&s.push("autoheight"),e&&s.push("rtl"),1<a.slidesPerColumn&&s.push("multirow"),m.android&&s.push("android"),m.ios&&s.push("ios"),(I.isIE||I.isEdge)&&(F.pointerEvents||F.prefixedPointerEvents)&&s.push("wp8-"+a.direction),s.forEach(function(e){t.push(a.containerModifierClass+e)}),i.addClass(t.join(" "))},removeClasses:function(){var e=this.$el,t=this.classNames;e.removeClass(t.join(" "))}},images:{loadImage:function(e,t,a,i,s,r){var n;function o(){r&&r()}e.complete&&s?o():t?((n=new Y.Image).onload=o,n.onerror=o,i&&(n.sizes=i),a&&(n.srcset=a),t&&(n.src=t)):o()},preloadImages:function(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var a=0;a<e.imagesToLoad.length;a+=1){var i=e.imagesToLoad[a];e.loadImage(i,i.currentSrc||i.getAttribute("src"),i.srcset||i.getAttribute("srcset"),i.sizes||i.getAttribute("sizes"),!0,t)}}}},E={},S=function(u){function h(){for(var e,t,s,a=[],i=arguments.length;i--;)a[i]=arguments[i];1===a.length&&a[0].constructor&&a[0].constructor===Object?s=a[0]:(t=(e=a)[0],s=e[1]),s||(s={}),s=V.extend({},s),t&&!s.el&&(s.el=t),u.call(this,s),Object.keys(T).forEach(function(t){Object.keys(T[t]).forEach(function(e){h.prototype[e]||(h.prototype[e]=T[t][e])})});var r=this;void 0===r.modules&&(r.modules={}),Object.keys(r.modules).forEach(function(e){var t=r.modules[e];if(t.params){var a=Object.keys(t.params)[0],i=t.params[a];if("object"!=typeof i||null===i)return;if(!(a in s&&"enabled"in i))return;!0===s[a]&&(s[a]={enabled:!0}),"object"!=typeof s[a]||"enabled"in s[a]||(s[a].enabled=!0),s[a]||(s[a]={enabled:!1})}});var n=V.extend({},x);r.useModulesParams(n),r.params=V.extend({},n,E,s),r.originalParams=V.extend({},r.params),r.passedParams=V.extend({},s);var o=(r.$=L)(r.params.el);if(t=o[0]){if(1<o.length){var l=[];return o.each(function(e,t){var a=V.extend({},s,{el:t});l.push(new h(a))}),l}t.swiper=r,o.data("swiper",r);var d,p,c=o.children("."+r.params.wrapperClass);return V.extend(r,{$el:o,el:t,$wrapperEl:c,wrapperEl:c[0],classNames:[],slides:L(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===r.params.direction},isVertical:function(){return"vertical"===r.params.direction},rtl:"rtl"===t.dir.toLowerCase()||"rtl"===o.css("direction"),rtlTranslate:"horizontal"===r.params.direction&&("rtl"===t.dir.toLowerCase()||"rtl"===o.css("direction")),wrongRTL:"-webkit-box"===c.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:(d=["touchstart","touchmove","touchend"],p=["mousedown","mousemove","mouseup"],F.pointerEvents?p=["pointerdown","pointermove","pointerup"]:F.prefixedPointerEvents&&(p=["MSPointerDown","MSPointerMove","MSPointerUp"]),r.touchEventsTouch={start:d[0],move:d[1],end:d[2]},r.touchEventsDesktop={start:p[0],move:p[1],end:p[2]},F.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video",lastClickTime:V.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.useModules(),r.params.init&&r.init(),r}}u&&(h.__proto__=u);var e={extendedDefaults:{configurable:!0},defaults:{configurable:!0},Class:{configurable:!0},$:{configurable:!0}};return((h.prototype=Object.create(u&&u.prototype)).constructor=h).prototype.slidesPerViewDynamic=function(){var e=this,t=e.params,a=e.slides,i=e.slidesGrid,s=e.size,r=e.activeIndex,n=1;if(t.centeredSlides){for(var o,l=a[r].swiperSlideSize,d=r+1;d<a.length;d+=1)a[d]&&!o&&(n+=1,s<(l+=a[d].swiperSlideSize)&&(o=!0));for(var p=r-1;0<=p;p-=1)a[p]&&!o&&(n+=1,s<(l+=a[p].swiperSlideSize)&&(o=!0))}else for(var c=r+1;c<a.length;c+=1)i[c]-i[r]<s&&(n+=1);return n},h.prototype.update=function(){var a=this;if(a&&!a.destroyed){var e=a.snapGrid,t=a.params;t.breakpoints&&a.setBreakpoint(),a.updateSize(),a.updateSlides(),a.updateProgress(),a.updateSlidesClasses(),a.params.freeMode?(i(),a.params.autoHeight&&a.updateAutoHeight()):(("auto"===a.params.slidesPerView||1<a.params.slidesPerView)&&a.isEnd&&!a.params.centeredSlides?a.slideTo(a.slides.length-1,0,!1,!0):a.slideTo(a.activeIndex,0,!1,!0))||i(),t.watchOverflow&&e!==a.snapGrid&&a.checkOverflow(),a.emit("update")}function i(){var e=a.rtlTranslate?-1*a.translate:a.translate,t=Math.min(Math.max(e,a.maxTranslate()),a.minTranslate());a.setTranslate(t),a.updateActiveIndex(),a.updateSlidesClasses()}},h.prototype.init=function(){var e=this;e.initialized||(e.emit("beforeInit"),e.params.breakpoints&&e.setBreakpoint(),e.addClasses(),e.params.loop&&e.loopCreate(),e.updateSize(),e.updateSlides(),e.params.watchOverflow&&e.checkOverflow(),e.params.grabCursor&&e.setGrabCursor(),e.params.preloadImages&&e.preloadImages(),e.params.loop?e.slideTo(e.params.initialSlide+e.loopedSlides,0,e.params.runCallbacksOnInit):e.slideTo(e.params.initialSlide,0,e.params.runCallbacksOnInit),e.attachEvents(),e.initialized=!0,e.emit("init"))},h.prototype.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var a=this,i=a.params,s=a.$el,r=a.$wrapperEl,n=a.slides;return void 0===a.params||a.destroyed||(a.emit("beforeDestroy"),a.initialized=!1,a.detachEvents(),i.loop&&a.loopDestroy(),t&&(a.removeClasses(),s.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([i.slideVisibleClass,i.slideActiveClass,i.slideNextClass,i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")),a.emit("destroy"),Object.keys(a.eventsListeners).forEach(function(e){a.off(e)}),!1!==e&&(a.$el[0].swiper=null,a.$el.data("swiper",null),V.deleteProps(a)),a.destroyed=!0),null},h.extendDefaults=function(e){V.extend(E,e)},e.extendedDefaults.get=function(){return E},e.defaults.get=function(){return x},e.Class.get=function(){return u},e.$.get=function(){return L},Object.defineProperties(h,e),h}(s),C={name:"device",proto:{device:m},static:{device:m}},M={name:"support",proto:{support:F},static:{support:F}},k={name:"browser",proto:{browser:I},static:{browser:I}},P={name:"resize",create:function(){var e=this;V.extend(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(){Y.addEventListener("resize",this.resize.resizeHandler),Y.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy:function(){Y.removeEventListener("resize",this.resize.resizeHandler),Y.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}},z={func:Y.MutationObserver||Y.WebkitMutationObserver,attach:function(e,t){void 0===t&&(t={});var a=this,i=new z.func(function(e){if(1!==e.length){var t=function(){a.emit("observerUpdate",e[0])};Y.requestAnimationFrame?Y.requestAnimationFrame(t):Y.setTimeout(t,0)}else a.emit("observerUpdate",e[0])});i.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),a.observer.observers.push(i)},init:function(){var e=this;if(F.observer&&e.params.observer){if(e.params.observeParents)for(var t=e.$el.parents(),a=0;a<t.length;a+=1)e.observer.attach(t[a]);e.observer.attach(e.$el[0],{childList:!1}),e.observer.attach(e.$wrapperEl[0],{attributes:!1})}},destroy:function(){this.observer.observers.forEach(function(e){e.disconnect()}),this.observer.observers=[]}},$={name:"observer",params:{observer:!1,observeParents:!1},create:function(){V.extend(this,{observer:{init:z.init.bind(this),attach:z.attach.bind(this),destroy:z.destroy.bind(this),observers:[]}})},on:{init:function(){this.observer.init()},destroy:function(){this.observer.destroy()}}},D={update:function(e){var t=this,a=t.params,i=a.slidesPerView,s=a.slidesPerGroup,r=a.centeredSlides,n=t.params.virtual,o=n.addSlidesBefore,l=n.addSlidesAfter,d=t.virtual,p=d.from,c=d.to,u=d.slides,h=d.slidesGrid,v=d.renderSlide,f=d.offset;t.updateActiveIndex();var m,g,b,w=t.activeIndex||0;m=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(g=Math.floor(i/2)+s+o,b=Math.floor(i/2)+s+l):(g=i+(s-1)+o,b=s+l);var y=Math.max((w||0)-b,0),x=Math.min((w||0)+g,u.length-1),T=(t.slidesGrid[y]||0)-(t.slidesGrid[0]||0);function E(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(V.extend(t.virtual,{from:y,to:x,offset:T,slidesGrid:t.slidesGrid}),p===y&&c===x&&!e)return t.slidesGrid!==h&&T!==f&&t.slides.css(m,T+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:T,from:y,to:x,slides:function(){for(var e=[],t=y;t<=x;t+=1)e.push(u[t]);return e}()}),void E();var S=[],C=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var M=p;M<=c;M+=1)(M<y||x<M)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+M+'"]').remove();for(var k=0;k<u.length;k+=1)y<=k&&k<=x&&(void 0===c||e?C.push(k):(c<k&&C.push(k),k<p&&S.push(k)));C.forEach(function(e){t.$wrapperEl.append(v(u[e],e))}),S.sort(function(e,t){return t-e}).forEach(function(e){t.$wrapperEl.prepend(v(u[e],e))}),t.$wrapperEl.children(".swiper-slide").css(m,T+"px"),E()},renderSlide:function(e,t){var a=this,i=a.params.virtual;if(i.cache&&a.virtual.cache[t])return a.virtual.cache[t];var s=i.renderSlide?L(i.renderSlide.call(a,e,t)):L('<div class="'+a.params.slideClass+'" data-swiper-slide-index="'+t+'">'+e+"</div>");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){this.virtual.slides.push(e),this.virtual.update(!0)},prependSlide:function(e){var t=this;if(t.virtual.slides.unshift(e),t.params.virtual.cache){var a=t.virtual.cache,i={};Object.keys(a).forEach(function(e){i[e+1]=a[e]}),t.virtual.cache=i}t.virtual.update(!0),t.slideNext(0)}},O={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,addSlidesBefore:0,addSlidesAfter:0}},create:function(){var e=this;V.extend(e,{virtual:{update:D.update.bind(e),appendSlide:D.appendSlide.bind(e),prependSlide:D.prependSlide.bind(e),renderSlide:D.renderSlide.bind(e),slides:e.params.virtual.slides,cache:{}}})},on:{beforeInit:function(){var e=this;if(e.params.virtual.enabled){e.classNames.push(e.params.containerModifierClass+"virtual");var t={watchSlidesProgress:!0};V.extend(e.params,t),V.extend(e.originalParams,t),e.params.initialSlide||e.virtual.update()}},setTranslate:function(){this.params.virtual.enabled&&this.virtual.update()}}},A={handle:function(e){var t=this,a=t.rtlTranslate,i=e;i.originalEvent&&(i=i.originalEvent);var s=i.keyCode||i.charCode;if(!t.allowSlideNext&&(t.isHorizontal()&&39===s||t.isVertical()&&40===s))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&37===s||t.isVertical()&&38===s))return!1;if(!(i.shiftKey||i.altKey||i.ctrlKey||i.metaKey||f.activeElement&&f.activeElement.nodeName&&("input"===f.activeElement.nodeName.toLowerCase()||"textarea"===f.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(37===s||39===s||38===s||40===s)){var r=!1;if(0<t.$el.parents("."+t.params.slideClass).length&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;var n=Y.innerWidth,o=Y.innerHeight,l=t.$el.offset();a&&(l.left-=t.$el[0].scrollLeft);for(var d=[[l.left,l.top],[l.left+t.width,l.top],[l.left,l.top+t.height],[l.left+t.width,l.top+t.height]],p=0;p<d.length;p+=1){var c=d[p];0<=c[0]&&c[0]<=n&&0<=c[1]&&c[1]<=o&&(r=!0)}if(!r)return}t.isHorizontal()?(37!==s&&39!==s||(i.preventDefault?i.preventDefault():i.returnValue=!1),(39===s&&!a||37===s&&a)&&t.slideNext(),(37===s&&!a||39===s&&a)&&t.slidePrev()):(38!==s&&40!==s||(i.preventDefault?i.preventDefault():i.returnValue=!1),40===s&&t.slideNext(),38===s&&t.slidePrev()),t.emit("keyPress",s)}},enable:function(){this.keyboard.enabled||(L(f).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable:function(){this.keyboard.enabled&&(L(f).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}},N={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0}},create:function(){V.extend(this,{keyboard:{enabled:!1,enable:A.enable.bind(this),disable:A.disable.bind(this),handle:A.handle.bind(this)}})},on:{init:function(){this.params.keyboard.enabled&&this.keyboard.enable()},destroy:function(){this.keyboard.enabled&&this.keyboard.disable()}}};var H={lastScrollTime:V.now(),event:-1<Y.navigator.userAgent.indexOf("firefox")?"DOMMouseScroll":function(){var e="onwheel",t=e in f;if(!t){var a=f.createElement("div");a.setAttribute(e,"return;"),t="function"==typeof a[e]}return!t&&f.implementation&&f.implementation.hasFeature&&!0!==f.implementation.hasFeature("","")&&(t=f.implementation.hasFeature("Events.wheel","3.0")),t}()?"wheel":"mousewheel",normalize:function(e){var t=0,a=0,i=0,s=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=a,a=0),i=10*t,s=10*a,"deltaY"in e&&(s=e.deltaY),"deltaX"in e&&(i=e.deltaX),(i||s)&&e.deltaMode&&(1===e.deltaMode?(i*=40,s*=40):(i*=800,s*=800)),i&&!t&&(t=i<1?-1:1),s&&!a&&(a=s<1?-1:1),{spinX:t,spinY:a,pixelX:i,pixelY:s}},handleMouseEnter:function(){this.mouseEntered=!0},handleMouseLeave:function(){this.mouseEntered=!1},handle:function(e){var t=e,a=this,i=a.params.mousewheel;if(!a.mouseEntered&&!i.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var s=0,r=a.rtlTranslate?-1:1,n=H.normalize(t);if(i.forceToAxis)if(a.isHorizontal()){if(!(Math.abs(n.pixelX)>Math.abs(n.pixelY)))return!0;s=n.pixelX*r}else{if(!(Math.abs(n.pixelY)>Math.abs(n.pixelX)))return!0;s=n.pixelY}else s=Math.abs(n.pixelX)>Math.abs(n.pixelY)?-n.pixelX*r:-n.pixelY;if(0===s)return!0;if(i.invert&&(s=-s),a.params.freeMode){a.params.loop&&a.loopFix();var o=a.getTranslate()+s*i.sensitivity,l=a.isBeginning,d=a.isEnd;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),a.setTransition(0),a.setTranslate(o),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!l&&a.isBeginning||!d&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky&&(clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=V.nextTick(function(){a.slideToClosest()},300)),a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),o===a.minTranslate()||o===a.maxTranslate())return!0}else{if(60<V.now()-a.mousewheel.lastScrollTime)if(s<0)if(a.isEnd&&!a.params.loop||a.animating){if(i.releaseOnEdges)return!0}else a.slideNext(),a.emit("scroll",t);else if(a.isBeginning&&!a.params.loop||a.animating){if(i.releaseOnEdges)return!0}else a.slidePrev(),a.emit("scroll",t);a.mousewheel.lastScrollTime=(new Y.Date).getTime()}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},enable:function(){var e=this;if(!H.event)return!1;if(e.mousewheel.enabled)return!1;var t=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(t=L(e.params.mousewheel.eventsTarged)),t.on("mouseenter",e.mousewheel.handleMouseEnter),t.on("mouseleave",e.mousewheel.handleMouseLeave),t.on(H.event,e.mousewheel.handle),e.mousewheel.enabled=!0},disable:function(){var e=this;if(!H.event)return!1;if(!e.mousewheel.enabled)return!1;var t=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(t=L(e.params.mousewheel.eventsTarged)),t.off(H.event,e.mousewheel.handle),!(e.mousewheel.enabled=!1)}},G={update:function(){var e=this,t=e.params.navigation;if(!e.params.loop){var a=e.navigation,i=a.$nextEl,s=a.$prevEl;s&&0<s.length&&(e.isBeginning?s.addClass(t.disabledClass):s.removeClass(t.disabledClass),s[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass)),i&&0<i.length&&(e.isEnd?i.addClass(t.disabledClass):i.removeClass(t.disabledClass),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass))}},onPrevClick:function(e){e.preventDefault(),this.isBeginning&&!this.params.loop||this.slidePrev()},onNextClick:function(e){e.preventDefault(),this.isEnd&&!this.params.loop||this.slideNext()},init:function(){var e,t,a=this,i=a.params.navigation;(i.nextEl||i.prevEl)&&(i.nextEl&&(e=L(i.nextEl),a.params.uniqueNavElements&&"string"==typeof i.nextEl&&1<e.length&&1===a.$el.find(i.nextEl).length&&(e=a.$el.find(i.nextEl))),i.prevEl&&(t=L(i.prevEl),a.params.uniqueNavElements&&"string"==typeof i.prevEl&&1<t.length&&1===a.$el.find(i.prevEl).length&&(t=a.$el.find(i.prevEl))),e&&0<e.length&&e.on("click",a.navigation.onNextClick),t&&0<t.length&&t.on("click",a.navigation.onPrevClick),V.extend(a.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this,t=e.navigation,a=t.$nextEl,i=t.$prevEl;a&&a.length&&(a.off("click",e.navigation.onNextClick),a.removeClass(e.params.navigation.disabledClass)),i&&i.length&&(i.off("click",e.navigation.onPrevClick),i.removeClass(e.params.navigation.disabledClass))}},B={update:function(){var e=this,t=e.rtl,s=e.params.pagination;if(s.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var r,a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el,n=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?((r=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup))>a-1-2*e.loopedSlides&&(r-=a-2*e.loopedSlides),n-1<r&&(r-=n),r<0&&"bullets"!==e.params.paginationType&&(r=n+r)):r=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===s.type&&e.pagination.bullets&&0<e.pagination.bullets.length){var o,l,d,p=e.pagination.bullets;if(s.dynamicBullets&&(e.pagination.bulletSize=p.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),i.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(s.dynamicMainBullets+4)+"px"),1<s.dynamicMainBullets&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=r-e.previousIndex,e.pagination.dynamicBulletIndex>s.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=s.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),o=r-e.pagination.dynamicBulletIndex,d=((l=o+(Math.min(p.length,s.dynamicMainBullets)-1))+o)/2),p.removeClass(s.bulletActiveClass+" "+s.bulletActiveClass+"-next "+s.bulletActiveClass+"-next-next "+s.bulletActiveClass+"-prev "+s.bulletActiveClass+"-prev-prev "+s.bulletActiveClass+"-main"),1<i.length)p.each(function(e,t){var a=L(t),i=a.index();i===r&&a.addClass(s.bulletActiveClass),s.dynamicBullets&&(o<=i&&i<=l&&a.addClass(s.bulletActiveClass+"-main"),i===o&&a.prev().addClass(s.bulletActiveClass+"-prev").prev().addClass(s.bulletActiveClass+"-prev-prev"),i===l&&a.next().addClass(s.bulletActiveClass+"-next").next().addClass(s.bulletActiveClass+"-next-next"))});else if(p.eq(r).addClass(s.bulletActiveClass),s.dynamicBullets){for(var c=p.eq(o),u=p.eq(l),h=o;h<=l;h+=1)p.eq(h).addClass(s.bulletActiveClass+"-main");c.prev().addClass(s.bulletActiveClass+"-prev").prev().addClass(s.bulletActiveClass+"-prev-prev"),u.next().addClass(s.bulletActiveClass+"-next").next().addClass(s.bulletActiveClass+"-next-next")}if(s.dynamicBullets){var v=Math.min(p.length,s.dynamicMainBullets+4),f=(e.pagination.bulletSize*v-e.pagination.bulletSize)/2-d*e.pagination.bulletSize,m=t?"right":"left";p.css(e.isHorizontal()?m:"top",f+"px")}}if("fraction"===s.type&&(i.find("."+s.currentClass).text(s.formatFractionCurrent(r+1)),i.find("."+s.totalClass).text(s.formatFractionTotal(n))),"progressbar"===s.type){var g;g=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";var b=(r+1)/n,w=1,y=1;"horizontal"===g?w=b:y=b,i.find("."+s.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+w+") scaleY("+y+")").transition(e.params.speed)}"custom"===s.type&&s.renderCustom?(i.html(s.renderCustom(e,r+1,n)),e.emit("paginationRender",e,i[0])):e.emit("paginationUpdate",e,i[0]),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](s.lockClass)}},render:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el,s="";if("bullets"===t.type){for(var r=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length,n=0;n<r;n+=1)t.renderBullet?s+=t.renderBullet.call(e,n,t.bulletClass):s+="<"+t.bulletElement+' class="'+t.bulletClass+'"></'+t.bulletElement+">";i.html(s),e.pagination.bullets=i.find("."+t.bulletClass)}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):'<span class="'+t.currentClass+'"></span> / <span class="'+t.totalClass+'"></span>',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'<span class="'+t.progressbarFillClass+'"></span>',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var a=this,e=a.params.pagination;if(e.el){var t=L(e.el);0!==t.length&&(a.params.uniqueNavElements&&"string"==typeof e.el&&1<t.length&&1===a.$el.find(e.el).length&&(t=a.$el.find(e.el)),"bullets"===e.type&&e.clickable&&t.addClass(e.clickableClass),t.addClass(e.modifierClass+e.type),"bullets"===e.type&&e.dynamicBullets&&(t.addClass(""+e.modifierClass+e.type+"-dynamic"),a.pagination.dynamicBulletIndex=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&t.addClass(e.progressbarOppositeClass),e.clickable&&t.on("click","."+e.bulletClass,function(e){e.preventDefault();var t=L(this).index()*a.params.slidesPerGroup;a.params.loop&&(t+=a.loopedSlides),a.slideTo(t)}),V.extend(a.pagination,{$el:t,el:t[0]}))}},destroy:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.pagination.$el;a.removeClass(t.hiddenClass),a.removeClass(t.modifierClass+t.type),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&a.off("click","."+t.bulletClass)}}},X={setTranslate:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=e.rtlTranslate,i=e.progress,s=t.dragSize,r=t.trackSize,n=t.$dragEl,o=t.$el,l=e.params.scrollbar,d=s,p=(r-s)*i;a?0<(p=-p)?(d=s-p,p=0):r<-p+s&&(d=r+p):p<0?(d=s+p,p=0):r<p+s&&(d=r-p),e.isHorizontal()?(F.transforms3d?n.transform("translate3d("+p+"px, 0, 0)"):n.transform("translateX("+p+"px)"),n[0].style.width=d+"px"):(F.transforms3d?n.transform("translate3d(0px, "+p+"px, 0)"):n.transform("translateY("+p+"px)"),n[0].style.height=d+"px"),l.hide&&(clearTimeout(e.scrollbar.timeout),o[0].style.opacity=1,e.scrollbar.timeout=setTimeout(function(){o[0].style.opacity=0,o.transition(400)},1e3))}},setTransition:function(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=t.$dragEl,i=t.$el;a[0].style.width="",a[0].style.height="";var s,r=e.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,n=e.size/e.virtualSize,o=n*(r/e.size);s="auto"===e.params.scrollbar.dragSize?r*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?a[0].style.width=s+"px":a[0].style.height=s+"px",i[0].style.display=1<=n?"none":"",e.params.scrollbarHide&&(i[0].style.opacity=0),V.extend(t,{trackSize:r,divider:n,moveDivider:o,dragSize:s}),t.$el[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}},setDragPosition:function(e){var t,a=this,i=a.scrollbar,s=a.rtlTranslate,r=i.$el,n=i.dragSize,o=i.trackSize;t=((a.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-r.offset()[a.isHorizontal()?"left":"top"]-n/2)/(o-n),t=Math.max(Math.min(t,1),0),s&&(t=1-t);var l=a.minTranslate()+(a.maxTranslate()-a.minTranslate())*t;a.updateProgress(l),a.setTranslate(l),a.updateActiveIndex(),a.updateSlidesClasses()},onDragStart:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el,n=i.$dragEl;t.scrollbar.isTouched=!0,e.preventDefault(),e.stopPropagation(),s.transition(100),n.transition(100),i.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),r.transition(0),a.hide&&r.css("opacity",1),t.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this.scrollbar,a=this.$wrapperEl,i=t.$el,s=t.$dragEl;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),a.transition(0),i.transition(0),s.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar.$el;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,a.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=V.nextTick(function(){i.css("opacity",0),i.transition(400)},1e3)),t.emit("scrollbarDragEnd",e),a.snapOnRelease&&t.slideToClosest())},enableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=e.scrollbar,a=e.touchEventsTouch,i=e.touchEventsDesktop,s=e.params,r=t.$el[0],n=!(!F.passiveListener||!s.passiveListeners)&&{passive:!1,capture:!1},o=!(!F.passiveListener||!s.passiveListeners)&&{passive:!0,capture:!1};F.touch?(r.addEventListener(a.start,e.scrollbar.onDragStart,n),r.addEventListener(a.move,e.scrollbar.onDragMove,n),r.addEventListener(a.end,e.scrollbar.onDragEnd,o)):(r.addEventListener(i.start,e.scrollbar.onDragStart,n),f.addEventListener(i.move,e.scrollbar.onDragMove,n),f.addEventListener(i.end,e.scrollbar.onDragEnd,o))}},disableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=e.scrollbar,a=e.touchEventsTouch,i=e.touchEventsDesktop,s=e.params,r=t.$el[0],n=!(!F.passiveListener||!s.passiveListeners)&&{passive:!1,capture:!1},o=!(!F.passiveListener||!s.passiveListeners)&&{passive:!0,capture:!1};F.touch?(r.removeEventListener(a.start,e.scrollbar.onDragStart,n),r.removeEventListener(a.move,e.scrollbar.onDragMove,n),r.removeEventListener(a.end,e.scrollbar.onDragEnd,o)):(r.removeEventListener(i.start,e.scrollbar.onDragStart,n),f.removeEventListener(i.move,e.scrollbar.onDragMove,n),f.removeEventListener(i.end,e.scrollbar.onDragEnd,o))}},init:function(){var e=this;if(e.params.scrollbar.el){var t=e.scrollbar,a=e.$el,i=e.params.scrollbar,s=L(i.el);e.params.uniqueNavElements&&"string"==typeof i.el&&1<s.length&&1===a.find(i.el).length&&(s=a.find(i.el));var r=s.find("."+e.params.scrollbar.dragClass);0===r.length&&(r=L('<div class="'+e.params.scrollbar.dragClass+'"></div>'),s.append(r)),V.extend(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},R={setTransform:function(e,t){var a=this.rtl,i=L(e),s=a?-1:1,r=i.attr("data-swiper-parallax")||"0",n=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y"),l=i.attr("data-swiper-parallax-scale"),d=i.attr("data-swiper-parallax-opacity");if(n||o?(n=n||"0",o=o||"0"):this.isHorizontal()?(n=r,o="0"):(o=r,n="0"),n=0<=n.indexOf("%")?parseInt(n,10)*t*s+"%":n*t*s+"px",o=0<=o.indexOf("%")?parseInt(o,10)*t+"%":o*t+"px",null!=d){var p=d-(d-1)*(1-Math.abs(t));i[0].style.opacity=p}if(null==l)i.transform("translate3d("+n+", "+o+", 0px)");else{var c=l-(l-1)*(1-Math.abs(t));i.transform("translate3d("+n+", "+o+", 0px) scale("+c+")")}},setTranslate:function(){var i=this,e=i.$el,t=i.slides,s=i.progress,r=i.snapGrid;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e,t){i.parallax.setTransform(t,s)}),t.each(function(e,t){var a=t.progress;1<i.params.slidesPerGroup&&"auto"!==i.params.slidesPerView&&(a+=Math.ceil(e/2)-s*(r.length-1)),a=Math.min(Math.max(a,-1),1),L(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e,t){i.parallax.setTransform(t,a)})})},setTransition:function(s){void 0===s&&(s=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e,t){var a=L(t),i=parseInt(a.attr("data-swiper-parallax-duration"),10)||s;0===s&&(i=0),a.transition(i)})}},q={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,a=e.targetTouches[0].pageY,i=e.targetTouches[1].pageX,s=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(i-t,2)+Math.pow(s-a,2))},onGestureStart:function(e){var t=this,a=t.params.zoom,i=t.zoom,s=i.gesture;if(i.fakeGestureTouched=!1,i.fakeGestureMoved=!1,!F.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;i.fakeGestureTouched=!0,s.scaleStart=q.getDistanceBetweenTouches(e)}s.$slideEl&&s.$slideEl.length||(s.$slideEl=L(e.target).closest(".swiper-slide"),0===s.$slideEl.length&&(s.$slideEl=t.slides.eq(t.activeIndex)),s.$imageEl=s.$slideEl.find("img, svg, canvas"),s.$imageWrapEl=s.$imageEl.parent("."+a.containerClass),s.maxRatio=s.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==s.$imageWrapEl.length)?(s.$imageEl.transition(0),t.zoom.isScaling=!0):s.$imageEl=void 0},onGestureChange:function(e){var t=this.params.zoom,a=this.zoom,i=a.gesture;if(!F.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;a.fakeGestureMoved=!0,i.scaleMove=q.getDistanceBetweenTouches(e)}i.$imageEl&&0!==i.$imageEl.length&&(F.gestures?this.zoom.scale=e.scale*a.currentScale:a.scale=i.scaleMove/i.scaleStart*a.currentScale,a.scale>i.maxRatio&&(a.scale=i.maxRatio-1+Math.pow(a.scale-i.maxRatio+1,.5)),a.scale<t.minRatio&&(a.scale=t.minRatio+1-Math.pow(t.minRatio-a.scale+1,.5)),i.$imageEl.transform("translate3d(0,
147430,0) scale("+a.scale+")"))},onGestureEnd:function(e){var t=this.params.zoom,a=this.zoom,i=a.gesture;if(!F.gestures){if(!a.fakeGestureTouched||!a.fakeGestureMoved)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!m.android)return;a.fakeGestureTouched=!1,a.fakeGestureMoved=!1}i.$imageEl&&0!==i.$imageEl.length&&(a.scale=Math.max(Math.min(a.scale,i.maxRatio),t.minRatio),i.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale("+a.scale+")"),a.currentScale=a.scale,a.isScaling=!1,1===a.scale&&(i.$slideEl=void 0))},onTouchStart:function(e){var t=this.zoom,a=t.gesture,i=t.image;a.$imageEl&&0!==a.$imageEl.length&&(i.isTouched||(m.android&&e.preventDefault(),i.isTouched=!0,i.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))},onTouchMove:function(e){var t=this,a=t.zoom,i=a.gesture,s=a.image,r=a.velocity;if(i.$imageEl&&0!==i.$imageEl.length&&(t.allowClick=!1,s.isTouched&&i.$slideEl)){s.isMoved||(s.width=i.$imageEl[0].offsetWidth,s.height=i.$imageEl[0].offsetHeight,s.startX=V.getTranslate(i.$imageWrapEl[0],"x")||0,s.startY=V.getTranslate(i.$imageWrapEl[0],"y")||0,i.slideWidth=i.$slideEl[0].offsetWidth,i.slideHeight=i.$slideEl[0].offsetHeight,i.$imageWrapEl.transition(0),t.rtl&&(s.startX=-s.startX,s.startY=-s.startY));var n=s.width*a.scale,o=s.height*a.scale;if(!(n<i.slideWidth&&o<i.slideHeight)){if(s.minX=Math.min(i.slideWidth/2-n/2,0),s.maxX=-s.minX,s.minY=Math.min(i.slideHeight/2-o/2,0),s.maxY=-s.minY,s.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,s.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!s.isMoved&&!a.isScaling){if(t.isHorizontal()&&(Math.floor(s.minX)===Math.floor(s.startX)&&s.touchesCurrent.x<s.touchesStart.x||Math.floor(s.maxX)===Math.floor(s.startX)&&s.touchesCurrent.x>s.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.y<s.touchesStart.y||Math.floor(s.maxY)===Math.floor(s.startY)&&s.touchesCurrent.y>s.touchesStart.y))return void(s.isTouched=!1)}e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentX<s.minX&&(s.currentX=s.minX+1-Math.pow(s.minX-s.currentX+1,.8)),s.currentX>s.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentY<s.minY&&(s.currentY=s.minY+1-Math.pow(s.minY-s.currentY+1,.8)),s.currentY>s.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,o=a.currentX+n,l=i.y*r,d=a.currentY+l;0!==i.x&&(s=Math.abs((o-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=o,a.currentY=d;var c=a.width*e.scale,u=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-c/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-u/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl.transform("translate3d(0,
147430,0)"),t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0,e.scale=1,e.currentScale=1)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,o,l,d,p,c,u,h,v,f,m,g=this,b=g.zoom,w=g.params.zoom,y=b.gesture,x=b.image;(y.$slideEl||(y.$slideEl=g.clickedSlide?L(g.clickedSlide):g.slides.eq(g.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas"),y.$imageWrapEl=y.$imageEl.parent("."+w.containerClass)),y.$imageEl&&0!==y.$imageEl.length)&&(y.$slideEl.addClass(""+w.zoomedSlideClass),void 0===x.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=x.touchesStart.x,a=x.touchesStart.y),b.scale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,b.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(f=y.$slideEl[0].offsetWidth,m=y.$slideEl[0].offsetHeight,i=y.$slideEl.offset().left+f/2-t,s=y.$slideEl.offset().top+m/2-a,o=y.$imageEl[0].offsetWidth,l=y.$imageEl[0].offsetHeight,d=o*b.scale,p=l*b.scale,h=-(c=Math.min(f/2-d/2,0)),v=-(u=Math.min(m/2-p/2,0)),(r=i*b.scale)<c&&(r=c),h<r&&(r=h),(n=s*b.scale)<u&&(n=u),v<n&&(n=v)):n=r=0,y.$imageWrapEl.transition(300).transform("translate3d("+r+"px, "+n+"px,0)"),y.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+b.scale+")"))},out:function(){var e=this,t=e.zoom,a=e.params.zoom,i=t.gesture;i.$slideEl||(i.$slideEl=e.clickedSlide?L(e.clickedSlide):e.slides.eq(e.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&(t.scale=1,t.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+a.zoomedSlideClass),i.$slideEl=void 0)},enable:function(){var e=this,t=e.zoom;if(!t.enabled){t.enabled=!0;var a=!("touchstart"!==e.touchEvents.start||!F.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1};F.gestures?(e.$wrapperEl.on("gesturestart",".swiper-slide",t.onGestureStart,a),e.$wrapperEl.on("gesturechange",".swiper-slide",t.onGestureChange,a),e.$wrapperEl.on("gestureend",".swiper-slide",t.onGestureEnd,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,".swiper-slide",t.onGestureStart,a),e.$wrapperEl.on(e.touchEvents.move,".swiper-slide",t.onGestureChange,a),e.$wrapperEl.on(e.touchEvents.end,".swiper-slide",t.onGestureEnd,a)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove)}},disable:function(){var e=this,t=e.zoom;if(t.enabled){e.zoom.enabled=!1;var a=!("touchstart"!==e.touchEvents.start||!F.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1};F.gestures?(e.$wrapperEl.off("gesturestart",".swiper-slide",t.onGestureStart,a),e.$wrapperEl.off("gesturechange",".swiper-slide",t.onGestureChange,a),e.$wrapperEl.off("gestureend",".swiper-slide",t.onGestureEnd,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,".swiper-slide",t.onGestureStart,a),e.$wrapperEl.off(e.touchEvents.move,".swiper-slide",t.onGestureChange,a),e.$wrapperEl.off(e.touchEvents.end,".swiper-slide",t.onGestureEnd,a)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove)}}},W={loadInSlide:function(e,l){void 0===l&&(l=!0);var d=this,p=d.params.lazy;if(void 0!==e&&0!==d.slides.length){var c=d.virtual&&d.params.virtual.enabled?d.$wrapperEl.children("."+d.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):d.slides.eq(e),t=c.find("."+p.elementClass+":not(."+p.loadedClass+"):not(."+p.loadingClass+")");!c.hasClass(p.elementClass)||c.hasClass(p.loadedClass)||c.hasClass(p.loadingClass)||(t=t.add(c[0])),0!==t.length&&t.each(function(e,t){var i=L(t);i.addClass(p.loadingClass);var s=i.attr("data-background"),r=i.attr("data-src"),n=i.attr("data-srcset"),o=i.attr("data-sizes");d.loadImage(i[0],r||s,n,o,!1,function(){if(null!=d&&d&&(!d||d.params)&&!d.destroyed){if(s?(i.css("background-image",'url("'+s+'")'),i.removeAttr("data-background")):(n&&(i.attr("srcset",n
vendor: 5,169 bytes, line 14743
14743),i.removeAttr("data-srcset")),o&&(i.attr("sizes",o),i.removeAttr("data-sizes")),r&&(i.attr("src",r),i.removeAttr("data-src"))),i.addClass(p.loadedClass).removeClass(p.loadingClass),c.find("."+p.preloaderClass).remove(),d.params.loop&&l){var e=c.attr("data-swiper-slide-index");if(c.hasClass(d.params.slideDuplicateClass)){var t=d.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+d.params.slideDuplicateClass+")");d.lazy.loadInSlide(t.index(),!1)}else{var a=d.$wrapperEl.children("."+d.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');d.lazy.loadInSlide(a.index(),!1)}}d.emit("lazyImageReady",c[0],i[0])}}),d.emit("lazyImageLoad",c[0],i[0])})}},load:function(){var i=this,t=i.$wrapperEl,a=i.params,s=i.slides,e=i.activeIndex,r=i.virtual&&a.virtual.enabled,n=a.lazy,o=a.slidesPerView;function l(e){if(r){if(t.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(s[e])return!0;return!1}function d(e){return r?L(e).attr("data-swiper-slide-index"):L(e).index()}if("auto"===o&&(o=0),i.lazy.initialImageLoaded||(i.lazy.initialImageLoaded=!0),i.params.watchSlidesVisibility)t.children("."+a.slideVisibleClass).each(function(e,t){var a=r?L(t).attr("data-swiper-slide-index"):L(t).index();i.lazy.loadInSlide(a)});else if(1<o)for(var p=e;p<e+o;p+=1)l(p)&&i.lazy.loadInSlide(p);else i.lazy.loadInSlide(e);if(n.loadPrevNext)if(1<o||n.loadPrevNextAmount&&1<n.loadPrevNextAmount){for(var c=n.loadPrevNextAmount,u=o,h=Math.min(e+u+Math.max(c,u),s.length),v=Math.max(e-Math.max(u,c),0),f=e+o;f<h;f+=1)l(f)&&i.lazy.loadInSlide(f);for(var m=v;m<e;m+=1)l(m)&&i.lazy.loadInSlide(m)}else{var g=t.children("."+a.slideNextClass);0<g.length&&i.lazy.loadInSlide(d(g));var b=t.children("."+a.slidePrevClass);0<b.length&&i.lazy.loadInSlide(d(b))}}},j={LinearSpline:function(e,t){var a,i,s,r,n,o=function(e,t){for(i=-1,a=e.length;1<a-i;)e[s=a+i>>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=o(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new j.LinearSpline(t.slidesGrid,e.slidesGrid):new j.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control;function n(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o<r.length;o+=1)r[o]!==t&&r[o]instanceof S&&n(r[o]);else r instanceof S&&t!==r&&n(r)},setTransition:function(t,e){var a,i=this,s=i.controller.control;function r(e){e.setTransition(t,i),0!==t&&(e.transitionStart(),e.params.autoHeight&&V.nextTick(function(){e.updateAutoHeight()}),e.$wrapperEl.transitionEnd(function(){s&&(e.params.loop&&"slide"===i.params.controller.by&&e.loopFix(),e.transitionEnd())}))}if(Array.isArray(s))for(a=0;a<s.length;a+=1)s[a]!==e&&s[a]instanceof S&&r(s[a]);else s instanceof S&&e!==s&&r(s)}},U={makeElFocusable:function(e){return e.attr("tabIndex","0"),e},addElRole:function(e,t){return e.attr("role",t),e},addElLabel:function(e,t){return e.attr("aria-label",t),e},disableEl:function(e){return e.attr("aria-disabled",!0),e},enableEl:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(e){var t=this,a=t.params.a11y;if(13===e.keyCode){var i=L(e.target);t.navigation&&t.navigation.$nextEl&&i.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?t.a11y.notify(a.lastSlideMessage):t.a11y.notify(a.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&i.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?t.a11y.notify(a.firstSlideMessage):t.a11y.notify(a.prevSlideMessage)),t.pagination&&i.is("."+t.params.pagination.bulletClass)&&i[0].click()}},notify:function(e){var t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation:function(){var e=this;if(!e.params.loop){var t=e.navigation,a=t.$nextEl,i=t.$prevEl;i&&0<i.length&&(e.isBeginning?e.a11y.disableEl(i):e.a11y.enableEl(i)),a&&0<a.length&&(e.isEnd?e.a11y.disableEl(a):e.a11y.enableEl(a))}},updatePagination:function(){var i=this,s=i.params.a11y;i.pagination&&i.params.pagination.clickable&&i.pagination.bullets&&i.pagination.bullets.length&&i.pagination.bullets.each(function(e,t){var a=L(t);i.a11y.makeElFocusable(a),i.a11y.addElRole(a,"button"),i.a11y.addElLabel(a,s.paginationBulletMessage.replace(/{{index}}/,a.index()+1))})},init:function(){var e=this;e.$el.append(e.a11y.liveRegion);var t,a,i=e.params.a11y;e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(a=e.navigation.$prevEl),t&&(e.a11y.makeElFocusable(t),e.a11y.addElRole(t,"button"),e.a11y.addElLabel(t,i.nextSlideMessage),t.on("key
14743down",e.a11y.onEnterKey)),a&&(e.a11y.makeElFocusable(a),e.a11y.addElRole(a,"button"),e.a11y.addElLabel(a,i.prevSlideMessage),a.on("keydown",e.a11y.onEnterKey)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown","."+e.params.pagination.bulletClass,e.a11y.onEnterKey)},destroy:function(){var e,t,a=this;a.a11y.liveRegion&&0<a.a11y.liveRegion.length&&a.a11y.liveRegion.remove(),a.navigation&&a.navigation.$nextEl&&(e=a.navigation.$nextEl),a.navigation&&a.navigation.$prevEl&&(t=a.navigation.$prevEl),e&&e.off("keydown",a.a11y.onEnterKey),t&&t.off("keydown",a.a11y.onEnterKey),a.pagination&&a.params.pagination.clickable&&a.pagination.bullets&&a.pagination.bullets.length&&a.pagination.$el.off("keydown","."+a.params.pagination.bulletClass,a.a11y.onEnterKey)}},K={init:function(){var e=this;if(e.params.history){if(!Y.history||!Y.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);var t=e.history;t.initialized=!0,t.paths=K.getPathValues(),(t.paths.key||t.paths.value)&&(t.scrollToSlide(0,t.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||Y.addEventListener("popstate",e.history.setHistoryPopState))}},destroy:function(){this.params.history.replaceState||Y.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){this.history.paths=K.getPathValues(),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues:function(){var e=Y.location.pathname.slice(1).split("/").filter(function(e){return""!==e}),t=e.length;return{key:e[t-2],value:e[t-1]}},setHistory:function(e,t){if(this.history.initialized&&this.params.history.enabled){var a=this.slides.eq(t),i=K.slugify(a.attr("data-history"));Y.location.pathname.includes(e)||(i=e+"/"+i);var s=Y.history.state;s&&s.value===i||(this.params.history.replaceState?Y.history.replaceState({value:i},null,i):Y.history.pushState({value:i},null,i))}},slugify:function(e){return e.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,a){var i=this;if(t)for(var s=0,r=i.slides.length;s<r;s+=1){var n=i.slides.eq(s);if(K.slugify(n.attr("data-history"))===t&&!n.hasClass(i.params.slideDuplicateClass)){var o=n.index();i.slideTo(o,e,a)}}else i.slideTo(0,e,a)}},_={onHashCange:function(){var e=this,t=f.location.hash.replace("#","");if(t!==e.slides.eq(e.activeIndex).attr("data-hash")){var a=e.$wrapperEl.children("."+e.params.slideClass+'[data-hash="'+t+'"]').index();if(void 0===a)return;e.slideTo(a)}},setHash:function(){var e=this;if(e.hashNavigation.initialized&&e.params.hashNavigation.enabled)if(e.params.hashNavigation.replaceState&&Y.history&&Y.history.replaceState)Y.history.replaceState(null,null,"#"+e.slides.eq(e.activeIndex).attr("data-hash")||"");else{var t=e.slides.eq(e.activeIndex),a=t.attr("data-hash")||t.attr("data-history");f.location.hash=a||""}},init:function(){var e=this;if(!(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)){e.hashNavigation.initialized=!0;var t=f.location.hash.replace("#","");if(t)for(var a=0,i=e.slides.length;a<i;a+=1){var s=e.slides.eq(a);if((s.attr("data-hash")||s.attr("data-history"))===t&&!s.hasClass(e.params.slideDuplicateClass)){var r=s.index();e.slideTo(r,0,e.params.runCallbacksOnInit,!0)}}e.params.hashNavigation.watchState&&L(Y).on("hashchange",e.hashNavigation.onHashCange)}},destroy:function(){this.params.hashNavigation.watchState&&L(Y).off("hashchange",this.hashNavigation.onHashCange)}},Z={run:function(){var e=this,t=e.slides.eq(e.activeIndex),a=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(a=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),e.autoplay.timeout=V.nextTick(function(){e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,
vendor: 24,155 bytes, lines 14743-14744
14743!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay"))},a)},start:function(){var e=this;return void 0===e.autoplay.timeout&&(!e.autoplay.running&&(e.autoplay.running=!0,e.emit("autoplayStart"),e.autoplay.run(),!0))},stop:function(){var e=this;return!!e.autoplay.running&&(void 0!==e.autoplay.timeout&&(e.autoplay.timeout&&(clearTimeout(e.autoplay.timeout),e.autoplay.timeout=void 0),e.autoplay.running=!1,e.emit("autoplayStop"),!0))},pause:function(e){var t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?(t.$wrapperEl[0].addEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].addEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd)):(t.autoplay.paused=!1,t.autoplay.run())))}},Q={setTranslate:function(){for(var e=this,t=e.slides,a=0;a<t.length;a+=1){var i=e.slides.eq(a),s=-i[0].swiperSlideOffset;e.params.virtualTranslate||(s-=e.translate);var r=0;e.isHorizontal()||(r=s,s=0);var n=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(i[0].progress),0):1+Math.min(Math.max(i[0].progress,-1),0);i.css({opacity:n}).transform("translate3d("+s+"px, "+r+"px, 0px)")}},setTransition:function(e){var a=this,t=a.slides,i=a.$wrapperEl;if(t.transition(e),a.params.virtualTranslate&&0!==e){var s=!1;t.transitionEnd(function(){if(!s&&a&&!a.destroyed){s=!0,a.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],t=0;t<e.length;t+=1)i.trigger(e[t])}})}}},J={setTranslate:function(){var e,t=this,a=t.$el,i=t.$wrapperEl,s=t.slides,r=t.width,n=t.height,o=t.rtlTranslate,l=t.size,d=t.params.cubeEffect,p=t.isHorizontal(),c=t.virtual&&t.params.virtual.enabled,u=0;d.shadow&&(p?(0===(e=i.find(".swiper-cube-shadow")).length&&(e=L('<div class="swiper-cube-shadow"></div>'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=L('<div class="swiper-cube-shadow"></div>'),a.append(e)));for(var h=0;h<s.length;h+=1){var v=s.eq(h),f=h;c&&(f=parseInt(v.attr("data-swiper-slide-index"),10));var m=90*f,g=Math.floor(m/360);o&&(m=-m,g=Math.floor(-m/360));var b=Math.max(Math.min(v[0].progress,1),-1),w=0,y=0,x=0;f%4==0?(w=4*-g*l,x=0):(f-1)%4==0?(w=0,x=4*-g*l):(f-2)%4==0?(w=l+4*g*l,x=l):(f-3)%4==0&&(w=-l,x=3*l+4*l*g),o&&(w=-w),p||(y=w,w=0);var T="rotateX("+(p?0:-m)+"deg) rotateY("+(p?m:0)+"deg) translate3d("+w+"px, "+y+"px, "+x+"px)";if(b<=1&&-1<b&&(u=90*f+90*b,o&&(u=90*-f-90*b)),v.transform(T),d.slideShadows){var E=p?v.find(".swiper-slide-shadow-left"):v.find(".swiper-slide-shadow-top"),S=p?v.find(".swiper-slide-shadow-right"):v.find(".swiper-slide-shadow-bottom");0===E.length&&(E=L('<div class="swiper-slide-shadow-'+(p?"left":"top")+'"></div>'),v.append(E)),0===S.length&&(S=L('<div class="swiper-slide-shadow-'+(p?"right":"bottom")+'"></div>'),v.append(S)),E.length&&(E[0].style.opacity=Math.max(-b,0)),S.length&&(S[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),d.shadow)if(p)e.transform("translate3d(0px, "+(r/2+d.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+d.shadowScale+")");else{var C=Math.abs(u)-90*Math.floor(Math.abs(u)/90),M=1.5-(Math.sin(2*C*Math.PI/360)/2+Math.cos(2*C*Math.PI/360)/2),k=d.shadowScale,P=d.shadowScale/M,z=d.shadowOffset;e.transform("scale3d("+k+", 1, "+P+") translate3d(0px, "+(n/2+z)+"px, "+-n/2/P+"px) rotateX(-90deg)")}var $=I.isSafari||I.isUiWebView?-l/2:0;i.transform("translate3d(0px,0,"+$+"px) rotateX("+(t.isHorizontal()?0:u)+"deg) rotateY("+(t.isHorizontal()?-u:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},ee={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i<t.length;i+=1){var s=t.eq(i),r=s[0].progress;e.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s[0].progress,1),-1));var n=-180*r,o=0,l=-s[0].swiperSlideOffset,d=0;if(e.isHorizontal()?a&&(n=-n):(d=l,o=-n,n=l=0),s[0].style.zIndex=-Math.abs(Math.round(r))+t.length,e.params.flipEffect.slideShadows){var p=e.isHorizontal()?s.find(".swiper-slide-shadow-left"):s.find(".swiper-slide-shadow-top"),c=e.isHorizontal()?s.find(".swiper-slide-shadow-right"):s.find(".swiper-slide-shadow-bottom");0===p.length&&(p=L('<div class="swiper-slide-shadow-'+(e.isHorizontal()?"left":"top")+'"></div>'),s.append(p)),0===c.length&&(c=L('<div class="swiper-slide-shadow-'+(e.isHorizontal()?"right":"bottom")+'"></div>'),s.append(c)),p.length&&(p[0].style.opacity=Math.max(-r,0)),c.length&&(c[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+l+"px, "+d+"px, 0px) rotateX("+o+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var a=this,t=a.slides,i=a.activeIndex,s=a.$wrapperEl;if(t.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),a.params.virtualTranslate&&0!==e){var r=!1;t.eq(i).transitionEnd(function(){if(!r&&a&&!a.destroyed){r=!0,a.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],t=0;t<e.length;t+=1)s.trigger(e[t])}})}}},te={setTranslate:function(){for(var e=this,t=e.width,a=e.height,i=e.slides,s=e.$wrapperEl,r=e.slidesSizesGrid,n=e.params.coverflowEffect,o=e.isHorizontal(),l=e.translate,d=o?t/2-l:a/2-l,p=o?n.rotate:-n.rotate,c=n.depth,u=0,h=i.length;u<h;u+=1){var v=i.eq(u),f=r[u],m=(d-v[0].swiperSlideOffset-f/2)/f*n.modifier,g=o?p*m:0,b=o?0:p*m,w=-c*Math.abs(m),y=o?0:n.stretch*m,x=o?n.stretch*m:0;Math.abs(x)<.001&&(x=0),Math.abs(y)<.001&&(y=0),Math.abs(w)<.001&&(w=0),Math.abs(g)<.001&&(g=0),Math.abs(b)<.001&&(b=0);var T="translate3d("+x+"px,"+y+"px,"+w+"px)  rotateX("+b+"deg) rotateY("+g+"deg)";if(v.transform(T),v[0].style.zIndex=1-Math.abs(Math.round(m)),n.slideShadows){var E=o?v.find(".swiper-slide-shadow-left"):v.find(".swiper-slide-shadow-top"),S=o?v.find(".swiper-slide-shadow-right"):v.find(".swiper-slide-shadow-bottom");0===E.length&&(E=L('<div class="swiper-slide-shadow-'+(o?"left":"top")+'"></div>'),v.append(E)),0===S.length&&(S=L('<div class="swiper-slide-shadow-'+(o?"right":"bottom")+'"></div>'),v.append(S)),E.length&&(E[0].style.opacity=0<m?m:0),S.length&&(S[0].style.opacity=0<-m?-m:0)}}(F.pointerEvents||F.prefixedPointerEvents)&&(s[0].style.perspectiveOrigin=d+"px 50%")},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},ae={init:function(){var e=this,t=e.params.thumbs,a=e.constructor;t.swiper instanceof a?(e.thumbs.swiper=t.swiper,V.extend(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),V.extend(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):V.isObject(t.swiper)&&(e.thumbs.swiper=new a(V.extend({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick)},onThumbClick:function(){var e=this,t=e.thumbs.swiper;if(t){var a=t.clickedIndex,i=t.clickedSlide;if(!(i&&L(i).hasClass(e.params.thumbs.slideThumbActiveClass)||null==a)){var s;if(s=t.params.loop?parseInt(L(t.clickedSlide).attr("data-swiper-slide-index"),10):a,e.params.loop){var r=e.activeIndex;e.slides.eq(r).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,r=e.activeIndex);var n=e.slides.eq(r).prevAll('[data-swiper-slide-index="'+s+'"]').eq(0).index(),o=e.slides.eq(r).nextAll('[data-swiper-slide-index="'+s+'"]').eq(0).index();s=void 0===n?o:void 0===o?n:o-r<r-n?o:n}e.slideTo(s)}}},update:function(e){var t=this,a=t.thumbs.swiper;if(a){var i="auto"===a.params.slidesPerView?a.slidesPerViewDynamic():a.params.slidesPerView;if(t.realIndex!==a.realIndex){var s,r=a.activeIndex;if(a.params.loop){a.slides.eq(r).hasClass(a.params.slideDuplicateClass)&&(a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft,r=a.activeIndex);var n=a.slides.eq(r).prevAll('[data-swiper-slide-index="'+t.realIndex+'"]').eq(0).index(),o=a.slides.eq(r).nextAll('[data-swiper-slide-index="'+t.realIndex+'"]').eq(0).index();s=void 0===n?o:void 0===o?n:o-r==r-n?r:o-r<r-n?o:n}else s=t.realIndex;a.visibleSlidesIndexes.indexOf(s)<0&&(a.params.centeredSlides?s=r<s?s-Math.floor(i/2)+1:s+Math.floor(i/2)-1:r<s&&(s=s-i+1),a.slideTo(s,e?0:void 0))}var l=1,d=t.params.thumbs.slideThumbActiveClass;if(1<t.params.slidesPerView&&!t.params.centeredSlides&&(l=t.params.slidesPerView),a.slides.removeClass(d),a.params.loop)for(var p=0;p<l;p+=1)a.$wrapperEl.children('[data-swiper-slide-index="'+(t.realIndex+p)+'"]').addClass(d);else for(var c=0;c<l;c+=1)a.slides.eq(t.realIndex+c).addClass(d)}}},ie=[C,M,k,P,$,O,N,{name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarged:"container"}},create:function(){var e=this;V.extend(e,{mousewheel:{enabled:!1,enable:H.enable.bind(e),disable:H.disable.bind(e),handle:H.handle.bind(e),handleMouseEnter:H.handleMouseEnter.bind(e),handleMouseLeave:H.handleMouseLeave.bind(e),lastScrollTime:V.now()}})},on:{init:function(){this.params.mousewheel.enabled&&this.mousewheel.enable()},destroy:function(){this.mousewheel.enabled&&this.mousewheel.disable()}}},{name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){var e=this;V.extend(e,{navigation:{init:G.init.bind(e),update:G.update.bind(e),destroy:G.destroy.bind(e),onNextClick:G.onNextClick.bind(e),onPrevClick:G.onPrevClick.bind(e)}})},on:{init:function(){this.navigation.init(),this.navigation.update()},toEdge:function(){this.navigation.update()},fromEdge:function(){this.navigation.update()},destroy:function(){this.navigation.destroy()},click:function(e){var t=this.navigation,a=t.$nextEl,i=t.$prevEl;!this.params.navigation.hideOnClick||L(e.target).is(i)||L(e.target).is(a)||(a&&a.toggleClass(this.params.navigation.hiddenClass),i&&i.toggleClass(this.params.navigation.hiddenClass))}}},{name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:function(e){return e},formatFractionTotal:function(e){return e},bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){var e=this;V.extend(e,{pagination:{init:B.init.bind(e),render:B.render.bind(e),update:B.update.bind(e),destroy:B.destroy.bind(e),dynamicBulletIndex:0}})},on:{init:function(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange:function(){this.params.loop?this.pagination.update():void 0===this.snapIndex&&this.pagination.update()},snapIndexChange:function(){this.params.loop||this.pagination.update()},slidesLengthChange:function(){this.params.loop&&(this.pagination.render(),this.pagination.update())},snapGridLengthChange:function(){this.params.loop||(this.pagination.render(),this.pagination.update())},destroy:function(){this.pagination.destroy()},click:function(e){var t=this;t.params.pagination.el&&t.params.pagination.hideOnClick&&0<t.pagination.$el.length&&!L(e.target).hasClass(t.params.pagination.bulletClass)&&t.pagination.$el.toggleClass(t.params.pagination.hiddenClass)}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){var e=this;V.extend(e,{scrollbar:{init:X.init.bind(e),destroy:X.destroy.bind(e),updateSize:X.updateSize.bind(e),setTranslate:X.setTranslate.bind(e),setTransition:X.setTransition.bind(e),enableDraggable:X.enableDraggable.bind(e),disableDraggable:X.disableDraggable.bind(e),setDragPosition:X.setDragPosition.bind(e),onDragStart:X.onDragStart.bind(e),onDragMove:X.onDragMove.bind(e),onDragEnd:X.onDragEnd.bind(e),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init:function(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update:function(){this.scrollbar.updateSize()},resize:function(){this.scrollbar.updateSize()},observerUpdate:function(){this.scrollbar.updateSize()},setTranslate:function(){this.scrollbar.setTranslate()},setTransition:function(e){this.scrollbar.setTransition(e)},destroy:function(){this.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){V.extend(this,{parallax:{setTransform:R.setTransform.bind(this),setTranslate:R.setTranslate.bind(this),setTransition:R.setTransition.bind(this)}})},on:{beforeInit:function(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},init:function(){this.params.parallax&&this.parallax.setTranslate()},setTranslate:function(){this.params.parallax&&this.parallax.setTranslate()},setTransition:function(e){this.params.parallax&&this.parallax.setTransition(e)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var t=this,a={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(e){a[e]=q[e].bind(t)}),V.extend(t,{zoom:a})},on:{init:function(){this.params.zoom.enabled&&this.zoom.enable()},destroy:function(){this.zoom.disable()},touchStart:function(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd:function(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap:function(e){this.params.zoom.enabled&&this.zoom.enabled&&this.params.zoom.toggle&&this.zoom.toggle(e)},transitionEnd:function(){this.zoom.enabled&&this.params.zoom.enabled&&this.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){V.extend(this,{lazy:{initialImageLoaded:!1,load:W.load.bind(this),loadInSlide:W.loadInSlide.bind(this)}})},on:{beforeInit:function(){this.params.lazy.enabled&&this.params.preloadImages&&(this.params.preloadImages=!1)},init:function(){this.params.lazy.enabled&&!this.params.loop&&0===this.params.initialSlide&&this.lazy.load()},scroll:function(){this.params.freeMode&&!this.params.freeModeSticky&&this.lazy.load()},resize:function(){this.params.lazy.enabled&&this.lazy.load()},scrollbarDragMove:function(){this.params.lazy.enabled&&this.lazy.load()},transitionStart:function(){var e=this;e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd:function(){this.params.lazy.enabled&&!this.params.lazy.loadOnTransitionStart&&this.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){var e=this;V.extend(e,{controller:{control:e.params.controller.control,getInterpolateFunction:j.getInterpolateFunction.bind(e),setTranslate:j.setTranslate.bind(e),setTransition:j.setTransition.bind(e)}})},on:{update:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},resize:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},observerUpdate:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},setTranslate:function(e,t){this.controller.control&&this.controller.setTranslate(e,t)},setTransition:function(e,t){this.controller.control&&this.controller.setTransition(e,t)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create:function(){var t=this;V.extend(t,{a11y:{liveRegion:L('<span class="'+t.params.a11y.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>')}}),Object.keys(U).forEach(function(e){t.a11y[e]=U[e].bind(t)})},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){var e=this;V.extend(e,{history:{init:K.init.bind(e),setHistory:K.setHistory.bind(e),setHistoryPopState:K.setHistoryPopState.bind(e),scrollToSlide:K.scrollToSlide.bind(e),destroy:K.destroy.bind(e)}})},on:{init:function(){this.params.history.enabled&&this.history.init()},destroy:function(){this.params.history.enabled&&this.history.destroy()},transitionEnd:function(){this.history.initialized&&this.history.setHistory(this.params.history.key,this.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){var e=this;V.extend(e,{hashNavigation:{initialized:!1,init:_.init.bind(e),destroy:_.destroy.bind(e),setHash:_.setHash.bind(e),onHashCange:_.onHashCange.bind(e)}})},on:{init:function(){this.params.hashNavigation.enabled&&this.hashNavigation.init()},destroy:function(){this.params.hashNavigation.enabled&&this.hashNavigation.destroy()},transitionEnd:function(){this.hashNavigation.initialized&&this.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){var t=this;V.extend(t,{autoplay:{running:!1,paused:!1,run:Z.run.bind(t),start:Z.start.bind(t),stop:Z.stop.bind(t),pause:Z.pause.bind(t),onTransitionEnd:function(e){t&&!t.destroyed&&t.$wrapperEl&&e.target===this&&(t.$wrapperEl[0].removeEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].removeEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd),t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())}}})},on:{init:function(){this.params.autoplay.enabled&&this.autoplay.start()},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},destroy:function(){this.autoplay.running&&this.autoplay.stop()}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){V.extend(this,{fadeEffect:{setTranslate:Q.setTranslate.bind(this),setTransition:Q.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};V.extend(e.params,t),V.extend(e.originalParams,t)}},setTranslate:function(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition:function(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){V.extend(this,{cubeEffect:{setTranslate:J.setTranslate.bind(this),setTransition:J.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};V.extend(e.params,t),V.extend(e.originalParams,t)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){V.extend(this,{flipEffect:{setTranslate:ee.setTranslate.bind(this),setTransition:ee.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};V.extend(e.params,t),V.extend(e.originalParams,t)}},setTranslate:function(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition:function(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){V.extend(this,{coverflowEffect:{setTranslate:te.setTranslate.bind(this),setTransition:te.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},{name:"thumbs",params:{thumbs:{swiper:null,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){V.extend(this,{thumbs:{swiper:null,init:ae.init.bind(this),update:ae.update.bind(this),onThumbClick:ae.onThumbClick.bind(this)}})},on:{beforeInit:function(){var e=this.params.thumbs;e&&e.swiper&&(this.thumbs.init(),this.thumbs.update(!0))},slideChange:function(){this.thumbs.swiper&&this.thumbs.update()},update:function(){this.thumbs.swiper&&this.thumbs.update()},resize:function(){this.thumbs.swiper&&this.thumbs.update()},observerUpdate:function(){this.thumbs.swiper&&this.thumbs.update()},setTransition:function(e){var t=this.thumbs.swiper;t&&t.setTransition(e)},beforeDestroy:function(){var e=this.thumbs.swiper;e&&this.thumbs.swiperCreated&&e&&e.destroy()}}}];return void 0===S.use&&(S.use=S.Class.use,S.installModule=S.Class.installModule),S.use(ie),S});
14744//# sourceMappingURL=swiper.min.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.