diff options
70 files changed, 5259 insertions, 7001 deletions
diff --git a/js/Gruntfile.js b/js/Gruntfile.js index f2df36050..71f2fea30 100644 --- a/js/Gruntfile.js +++ b/js/Gruntfile.js @@ -20,9 +20,6 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-wrap'); grunt.loadNpmTasks('grunt-karma'); grunt.loadNpmTasks('grunt-ng-annotate'); - // buggy, wait until it uses traceur 0.0.60 - // grunt.loadNpmTasks('grunt-traceur'); - grunt.loadNpmTasks('grunt-shell'); grunt.loadNpmTasks('grunt-protractor-runner'); grunt.loadNpmTasks('grunt-protractor-webdriver'); @@ -65,26 +62,6 @@ module.exports = function (grunt) { } } }, - // in place because grunt-traceur is buggy, remove when traceur 0.0.60 - // is supported - shell: { - traceur: { - command: 'node_modules/traceur/traceur --block-binding true --out build/app.js --experimental --script build/app.js' - } - }, - /*traceur: { - app: { - files: [{ - src: ['<%= meta.production %>app.js'], - dest: '<%= meta.production %>test.js' - }] - }, - options: { - experimental: true, - modules: 'inline' - } - },*/ - wrap: { basic: { src: ['<%= meta.production %>app.js'], @@ -183,7 +160,7 @@ module.exports = function (grunt) { }); // make tasks available under simpler commands - grunt.registerTask('default', ['jshint', 'concat', 'wrap', 'shell:traceur', 'ngAnnotate', 'uglify']); + grunt.registerTask('default', ['jshint', 'concat', 'wrap', 'ngAnnotate', 'uglify']); grunt.registerTask('dev', ['watch:concat']); grunt.registerTask('test', ['karma:unit']); grunt.registerTask('php', ['watch:phpunit']); diff --git a/js/app/App.js b/js/app/App.js index 3dbc907da..947a68a2e 100644 --- a/js/app/App.js +++ b/js/app/App.js @@ -7,4 +7,4 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -let app = angular.module('News', ['ngRoute', 'ngSanitize', 'ngAnimate']);
\ No newline at end of file +var app = angular.module('News', ['ngRoute', 'ngSanitize', 'ngAnimate']);
\ No newline at end of file diff --git a/js/app/Config.js b/js/app/Config.js index 986699090..b922e0aa1 100644 --- a/js/app/Config.js +++ b/js/app/Config.js @@ -10,7 +10,7 @@ app.config(function ($routeProvider, $provide, $httpProvider) { 'use strict'; - const feedType = { + var feedType = { FEED: 0, FOLDER: 1, STARRED: 2, @@ -25,9 +25,9 @@ app.config(function ($routeProvider, $provide, $httpProvider) { $provide.constant('FEED_TYPE', feedType); // make sure that the CSRF header is only sent to the ownCloud domain - $provide.factory('CSRFInterceptor', ($q, BASE_URL) => { + $provide.factory('CSRFInterceptor', function ($q, BASE_URL) { return { - request: (config) => { + request: function (config) { if (config.url.indexOf(BASE_URL) === 0) { config.headers.requesttoken = csrfToken; } @@ -39,7 +39,7 @@ app.config(function ($routeProvider, $provide, $httpProvider) { $httpProvider.interceptors.push('CSRFInterceptor'); // routing - const getResolve = (type) => { + var getResolve = function (type) { return { // request to items also returns feeds data: [ @@ -48,9 +48,9 @@ app.config(function ($routeProvider, $provide, $httpProvider) { '$q', 'BASE_URL', 'ITEM_BATCH_SIZE', - ($http, $route, $q, BASE_URL, ITEM_BATCH_SIZE) => { + function ($http, $route, $q, BASE_URL, ITEM_BATCH_SIZE) { - const parameters = { + var parameters = { type: type, limit: ITEM_BATCH_SIZE }; @@ -59,13 +59,13 @@ app.config(function ($routeProvider, $provide, $httpProvider) { parameters.id = $route.current.params.id; } - let deferred = $q.defer(); + var deferred = $q.defer(); $http({ - url: `${BASE_URL}/items`, + url: BASE_URL + '/items', method: 'GET', params: parameters - }).success((data) => { + }).success(function (data) { deferred.resolve(data); }); diff --git a/js/app/Run.js b/js/app/Run.js index 9b068910c..33c75c2b4 100644 --- a/js/app/Run.js +++ b/js/app/Run.js @@ -7,9 +7,9 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource, - FeedResource, FolderResource, SettingsResource, Publisher, BASE_URL, - FEED_TYPE, REFRESH_RATE) => { +app.run(function ($rootScope, $location, $http, $q, $interval, Loading, + ItemResource, FeedResource, FolderResource, SettingsResource, + Publisher, BASE_URL, FEED_TYPE, REFRESH_RATE) { 'use strict'; // show Loading screen @@ -17,32 +17,32 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource, // listen to keys in returned queries to automatically distribute the // incoming values to models - Publisher.subscribe(ItemResource).toChannels('items', 'newestItemId', - 'starred'); - Publisher.subscribe(FolderResource).toChannels('folders'); - Publisher.subscribe(FeedResource).toChannels('feeds'); - Publisher.subscribe(SettingsResource).toChannels('settings'); + Publisher.subscribe(ItemResource).toChannels(['items', 'newestItemId', + 'starred']); + Publisher.subscribe(FolderResource).toChannels(['folders']); + Publisher.subscribe(FeedResource).toChannels(['feeds']); + Publisher.subscribe(SettingsResource).toChannels(['settings']); // load feeds, settings and last read feed - let settingsDeferred = $q.defer(); - $http.get(`${BASE_URL}/settings`).success((data) => { + var settingsDeferred = $q.defer(); + $http.get(BASE_URL + '/settings').success(function (data) { Publisher.publishAll(data); settingsDeferred.resolve(); }); - let activeFeedDeferred = $q.defer(); - let path = $location.path(); - $http.get(`${BASE_URL}/feeds/active`).success((data) => { - let url; + var activeFeedDeferred = $q.defer(); + var path = $location.path(); + $http.get(BASE_URL + '/feeds/active').success(function (data) { + var url; switch (data.activeFeed.type) { case FEED_TYPE.FEED: - url = `/items/feeds/${data.activeFeed.id}`; + url = '/items/feeds/' + data.activeFeed.id; break; case FEED_TYPE.FOLDER: - url = `/items/folders/${data.activeFeed.id}`; + url = '/items/folders/' + data.activeFeed.id; break; case FEED_TYPE.STARRED: @@ -61,14 +61,14 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource, activeFeedDeferred.resolve(); }); - let folderDeferred = $q.defer(); - $http.get(`${BASE_URL}/folders`).success((data) => { + var folderDeferred = $q.defer(); + $http.get(BASE_URL + '/folders').success(function (data) { Publisher.publishAll(data); folderDeferred.resolve(); }); - let feedDeferred = $q.defer(); - $http.get(`${BASE_URL}/feeds`).success((data) => { + var feedDeferred = $q.defer(); + $http.get(BASE_URL + '/feeds').success(function (data) { Publisher.publishAll(data); feedDeferred.resolve(); }); @@ -82,27 +82,27 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource, folderDeferred.promise ] ) - .then(() => { + .then(function () { Loading.setLoading('global', false); }); // refresh feeds and folders - $interval(() => { - $http.get(`${BASE_URL}/feeds`); - $http.get(`${BASE_URL}/folders`); + $interval(function () { + $http.get(BASE_URL + '/feeds'); + $http.get(BASE_URL + '/folders'); }, REFRESH_RATE * 1000); - $rootScope.$on('$routeChangeStart', () => { + $rootScope.$on('$routeChangeStart', function () { Loading.setLoading('content', true); }); - $rootScope.$on('$routeChangeSuccess', () => { + $rootScope.$on('$routeChangeSuccess', function () { Loading.setLoading('content', false); }); // in case of wrong id etc show all items - $rootScope.$on('$routeChangeError', () => { + $rootScope.$on('$routeChangeError', function () { $location.path('/items'); }); diff --git a/js/bower.json b/js/bower.json index a069fe820..034b43979 100644 --- a/js/bower.json +++ b/js/bower.json @@ -31,6 +31,6 @@ "angular-animate": "~1.3.*", "jquery": "~2.*", "momentjs": "~2.8.*", - "traceur-runtime": "~0.0.61" + "es6-shim": "~0.18.0" } } diff --git a/js/build/app.js b/js/build/app.js index 3cfe28892..34dea4dec 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -1,1420 +1,1692 @@ -(function(window, document, angular, $, OC, csrfToken, undefined) { - 'use strict'; - var app = angular.module('News', ['ngRoute', 'ngSanitize', 'ngAnimate']); - app.config(["$routeProvider", "$provide", "$httpProvider", function($routeProvider, $provide, $httpProvider) { +(function(window, document, angular, $, OC, csrfToken, undefined){ + +'use strict'; + + +var app = angular.module('News', ['ngRoute', 'ngSanitize', 'ngAnimate']); +app.config(["$routeProvider", "$provide", "$httpProvider", function ($routeProvider, $provide, $httpProvider) { 'use strict'; + var feedType = { - FEED: 0, - FOLDER: 1, - STARRED: 2, - SUBSCRIPTIONS: 3, - SHARED: 4 - }; - $provide.constant('REFRESH_RATE', 60); - $provide.constant('ITEM_BATCH_SIZE', 50); + FEED: 0, + FOLDER: 1, + STARRED: 2, + SUBSCRIPTIONS: 3, + SHARED: 4 + }; + + // constants + $provide.constant('REFRESH_RATE', 60); // seconds + $provide.constant('ITEM_BATCH_SIZE', 50); // how many items to autopage by $provide.constant('BASE_URL', OC.generateUrl('/apps/news')); $provide.constant('FEED_TYPE', feedType); - $provide.factory('CSRFInterceptor', (["$q", "BASE_URL", function($q, BASE_URL) { - return {request: (function(config) { - if (config.url.indexOf(BASE_URL) === 0) { - config.headers.requesttoken = csrfToken; - } - return config || $q.when(config); - })}; - }])); + + // make sure that the CSRF header is only sent to the ownCloud domain + $provide.factory('CSRFInterceptor', ["$q", "BASE_URL", function ($q, BASE_URL) { + return { + request: function (config) { + if (config.url.indexOf(BASE_URL) === 0) { + config.headers.requesttoken = csrfToken; + } + + return config || $q.when(config); + } + }; + }]); $httpProvider.interceptors.push('CSRFInterceptor'); - var getResolve = (function(type) { - return {data: ['$http', '$route', '$q', 'BASE_URL', 'ITEM_BATCH_SIZE', (function($http, $route, $q, BASE_URL, ITEM_BATCH_SIZE) { - var parameters = { - type: type, - limit: ITEM_BATCH_SIZE - }; - if ($route.current.params.id !== undefined) { - parameters.id = $route.current.params.id; - } - var deferred = $q.defer(); - $http({ - url: (BASE_URL + "/items"), - method: 'GET', - params: parameters - }).success((function(data) { - deferred.resolve(data); - })); - return deferred.promise; - })]}; - }); - $routeProvider.when('/items', { - controller: 'ContentController as Content', - templateUrl: 'content.html', - resolve: getResolve(feedType.SUBSCRIPTIONS), - type: feedType.SUBSCRIPTIONS - }).when('/items/starred', { - controller: 'ContentController as Content', - templateUrl: 'content.html', - resolve: getResolve(feedType.STARRED), - type: feedType.STARRED - }).when('/items/feeds/:id', { - controller: 'ContentController as Content', - templateUrl: 'content.html', - resolve: getResolve(feedType.FEED), - type: feedType.FEED - }).when('/items/folders/:id', { - controller: 'ContentController as Content', - templateUrl: 'content.html', - resolve: getResolve(feedType.FOLDER), - type: feedType.FOLDER - }); - }]); - app.run((["$rootScope", "$location", "$http", "$q", "$interval", "Loading", "ItemResource", "FeedResource", "FolderResource", "SettingsResource", "Publisher", "BASE_URL", "FEED_TYPE", "REFRESH_RATE", function($rootScope, $location, $http, $q, $interval, Loading, ItemResource, FeedResource, FolderResource, SettingsResource, Publisher, BASE_URL, FEED_TYPE, REFRESH_RATE) { + + // routing + var getResolve = function (type) { + return { + // request to items also returns feeds + data: [ + '$http', + '$route', + '$q', + 'BASE_URL', + 'ITEM_BATCH_SIZE', + function ($http, $route, $q, BASE_URL, ITEM_BATCH_SIZE) { + + var parameters = { + type: type, + limit: ITEM_BATCH_SIZE + }; + + if ($route.current.params.id !== undefined) { + parameters.id = $route.current.params.id; + } + + var deferred = $q.defer(); + + $http({ + url: BASE_URL + '/items', + method: 'GET', + params: parameters + }).success(function (data) { + deferred.resolve(data); + }); + + return deferred.promise; + } + ] + }; + }; + + $routeProvider + .when('/items', { + controller: 'ContentController as Content', + templateUrl: 'content.html', + resolve: getResolve(feedType.SUBSCRIPTIONS), + type: feedType.SUBSCRIPTIONS + }) + .when('/items/starred', { + controller: 'ContentController as Content', + templateUrl: 'content.html', + resolve: getResolve(feedType.STARRED), + type: feedType.STARRED + }) + .when('/items/feeds/:id', { + controller: 'ContentController as Content', + templateUrl: 'content.html', + resolve: getResolve(feedType.FEED), + type: feedType.FEED + }) + .when('/items/folders/:id', { + controller: 'ContentController as Content', + templateUrl: 'content.html', + resolve: getResolve(feedType.FOLDER), + type: feedType.FOLDER + }); + +}]); + + +app.run(["$rootScope", "$location", "$http", "$q", "$interval", "Loading", "ItemResource", "FeedResource", "FolderResource", "SettingsResource", "Publisher", "BASE_URL", "FEED_TYPE", "REFRESH_RATE", function ($rootScope, $location, $http, $q, $interval, Loading, + ItemResource, FeedResource, FolderResource, SettingsResource, + Publisher, BASE_URL, FEED_TYPE, REFRESH_RATE) { 'use strict'; + + // show Loading screen Loading.setLoading('global', true); - Publisher.subscribe(ItemResource).toChannels('items', 'newestItemId', 'starred'); - Publisher.subscribe(FolderResource).toChannels('folders'); - Publisher.subscribe(FeedResource).toChannels('feeds'); - Publisher.subscribe(SettingsResource).toChannels('settings'); + + // listen to keys in returned queries to automatically distribute the + // incoming values to models + Publisher.subscribe(ItemResource).toChannels(['items', 'newestItemId', + 'starred']); + Publisher.subscribe(FolderResource).toChannels(['folders']); + Publisher.subscribe(FeedResource).toChannels(['feeds']); + Publisher.subscribe(SettingsResource).toChannels(['settings']); + + // load feeds, settings and last read feed var settingsDeferred = $q.defer(); - $http.get((BASE_URL + "/settings")).success((function(data) { - Publisher.publishAll(data); - settingsDeferred.resolve(); - })); + $http.get(BASE_URL + '/settings').success(function (data) { + Publisher.publishAll(data); + settingsDeferred.resolve(); + }); + var activeFeedDeferred = $q.defer(); var path = $location.path(); - $http.get((BASE_URL + "/feeds/active")).success((function(data) { - var url; - switch (data.activeFeed.type) { + $http.get(BASE_URL + '/feeds/active').success(function (data) { + var url; + + switch (data.activeFeed.type) { + case FEED_TYPE.FEED: - url = ("/items/feeds/" + data.activeFeed.id); - break; + url = '/items/feeds/' + data.activeFeed.id; + break; + case FEED_TYPE.FOLDER: - url = ("/items/folders/" + data.activeFeed.id); - break; + url = '/items/folders/' + data.activeFeed.id; + break; + case FEED_TYPE.STARRED: - url = '/items/starred'; - break; + url = '/items/starred'; + break; + default: - url = '/items'; - } - if (!/^\/items(\/(starred|feeds\/\d+|folders\/\d+))?\/?$/.test(path)) { - $location.path(url); - } - activeFeedDeferred.resolve(); - })); + url = '/items'; + } + + // only redirect if url is empty or faulty + if (!/^\/items(\/(starred|feeds\/\d+|folders\/\d+))?\/?$/.test(path)) { + $location.path(url); + } + + activeFeedDeferred.resolve(); + }); + var folderDeferred = $q.defer(); - $http.get((BASE_URL + "/folders")).success((function(data) { - Publisher.publishAll(data); - folderDeferred.resolve(); - })); + $http.get(BASE_URL + '/folders').success(function (data) { + Publisher.publishAll(data); + folderDeferred.resolve(); + }); + var feedDeferred = $q.defer(); - $http.get((BASE_URL + "/feeds")).success((function(data) { - Publisher.publishAll(data); - feedDeferred.resolve(); - })); - $q.all([settingsDeferred.promise, activeFeedDeferred.promise, feedDeferred.promise, folderDeferred.promise]).then((function() { - Loading.setLoading('global', false); - })); - $interval((function() { - $http.get((BASE_URL + "/feeds")); - $http.get((BASE_URL + "/folders")); - }), REFRESH_RATE * 1000); - $rootScope.$on('$routeChangeStart', (function() { - Loading.setLoading('content', true); - })); - $rootScope.$on('$routeChangeSuccess', (function() { - Loading.setLoading('content', false); - })); - $rootScope.$on('$routeChangeError', (function() { - $location.path('/items'); - })); - }])); - app.controller('AppController', ["Loading", "FeedResource", "FolderResource", function(Loading, FeedResource, FolderResource) { + $http.get(BASE_URL + '/feeds').success(function (data) { + Publisher.publishAll(data); + feedDeferred.resolve(); + }); + + // disable loading if all initial requests finished + $q.all( + [ + settingsDeferred.promise, + activeFeedDeferred.promise, + feedDeferred.promise, + folderDeferred.promise + ] + ) + .then(function () { + Loading.setLoading('global', false); + }); + + // refresh feeds and folders + $interval(function () { + $http.get(BASE_URL + '/feeds'); + $http.get(BASE_URL + '/folders'); + }, REFRESH_RATE * 1000); + + + $rootScope.$on('$routeChangeStart', function () { + Loading.setLoading('content', true); + }); + + $rootScope.$on('$routeChangeSuccess', function () { + Loading.setLoading('content', false); + }); + + // in case of wrong id etc show all items + $rootScope.$on('$routeChangeError', function () { + $location.path('/items'); + }); + +}]); +app.controller('AppController', +["Loading", "FeedResource", "FolderResource", function (Loading, FeedResource, FolderResource) { 'use strict'; + this.loading = Loading; - this.isFirstRun = (function() { - return FeedResource.size() === 0 && FolderResource.size() === 0; - }); - }]); - app.controller('ContentController', ["Publisher", "FeedResource", "ItemResource", "SettingsResource", "data", "$route", "$routeParams", function(Publisher, FeedResource, ItemResource, SettingsResource, data, $route, $routeParams) { + + this.isFirstRun = function () { + return FeedResource.size() === 0 && FolderResource.size() === 0; + }; + +}]); +app.controller('ContentController', +["Publisher", "FeedResource", "ItemResource", "SettingsResource", "data", "$route", "$routeParams", function (Publisher, FeedResource, ItemResource, SettingsResource, data, + $route, $routeParams) { 'use strict'; - var $__0 = this; + + // dont cache items across multiple route changes ItemResource.clear(); + + // distribute data to models based on key Publisher.publishAll(data); + + this.isAutoPagingEnabled = true; - this.getItems = (function() { - return ItemResource.getAll(); - }); - this.toggleStar = (function(itemId) { - ItemResource.toggleStar(itemId); - }); - this.toggleItem = (function(item) { - if ($__0.isCompactView()) { - item.show = !item.show; - } - }); - this.markRead = (function(itemId) { - var item = ItemResource.get(itemId); - if (!item.keepUnread) { - ItemResource.markItemRead(itemId); - FeedResource.markItemOfFeedRead(item.feedId); - } - }); - this.getFeed = (function(feedId) { - return FeedResource.getById(feedId); - }); - this.toggleKeepUnread = (function(itemId) { - var item = ItemResource.get(itemId); - if (!item.unread) { - FeedResource.markItemOfFeedUnread(item.feedId); - ItemResource.markItemRead(itemId, false); - } - item.keepUnread = !item.keepUnread; - }); - this.orderBy = (function() { - if (SettingsResource.get('oldestFirst')) { - return 'id'; - } else { - return '-id'; - } - }); - this.isCompactView = (function() { - return SettingsResource.get('compact'); - }); - this.autoPagingEnabled = (function() { - return $__0.isAutoPagingEnabled; - }); - this.markReadEnabled = (function() { - return !SettingsResource.get('preventReadOnScroll'); - }); - this.scrollRead = (function(itemIds) { - var itemId$__9; - var item$__10; - var ids = []; - var feedIds = []; - for (var $__3 = itemIds[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - itemId$__9 = $__4.value; - { - item$__10 = ItemResource.get(itemId$__9); - if (!item$__10.keepUnread) { - ids.push(itemId$__9); - feedIds.push(item$__10.feedId); - } + + this.getItems = function () { + return ItemResource.getAll(); + }; + + this.toggleStar = function (itemId) { + ItemResource.toggleStar(itemId); + }; + + this.toggleItem = function (item) { + // TODO: unittest + if (this.isCompactView()) { + item.show = !item.show; } - } - FeedResource.markItemsOfFeedsRead(feedIds); - ItemResource.markItemsRead(ids); - }); - this.autoPage = (function() { - $__0.isAutoPagingEnabled = false; - var type = $route.current.$$route.type; - var id = $routeParams.id; - ItemResource.autoPage(type, id).success((function(data) { - Publisher.publishAll(data); - if (data.items.length > 0) { - $__0.isAutoPagingEnabled = true; + }; + + this.markRead = function (itemId) { + var item = ItemResource.get(itemId); + + if (!item.keepUnread) { + ItemResource.markItemRead(itemId); + FeedResource.markItemOfFeedRead(item.feedId); } - })).error((function() { - $__0.isAutoPagingEnabled = true; - })); - }); - this.getRelativeDate = (function(timestamp) { - var languageCode$__11; - var date$__12; - if (timestamp !== undefined && timestamp !== '') { - languageCode$__11 = SettingsResource.get('language'); - date$__12 = moment.unix(timestamp).locale(languageCode$__11).fromNow() + ''; - return date$__12; - } else { - return ''; - } - }); - }]); - app.controller('NavigationController', ["$route", "FEED_TYPE", "FeedResource", "FolderResource", "ItemResource", "SettingsResource", function($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, SettingsResource) { + }; + + this.getFeed = function (feedId) { + return FeedResource.getById(feedId); + }; + + this.toggleKeepUnread = function (itemId) { + var item = ItemResource.get(itemId); + if (!item.unread) { + FeedResource.markItemOfFeedUnread(item.feedId); + ItemResource.markItemRead(itemId, false); + } + + item.keepUnread = !item.keepUnread; + }; + + this.orderBy = function () { + if (SettingsResource.get('oldestFirst')) { + return 'id'; + } else { + return '-id'; + } + }; + + this.isCompactView = function () { + return SettingsResource.get('compact'); + }; + + this.autoPagingEnabled = function () { + return this.isAutoPagingEnabled; + }; + + this.markReadEnabled = function () { + return !SettingsResource.get('preventReadOnScroll'); + }; + + this.scrollRead = function (itemIds) { + var ids = []; + var feedIds = []; + + itemIds.forEach(function (itemId) { + var item = ItemResource.get(itemId); + if (!item.keepUnread) { + ids.push(itemId); + feedIds.push(item.feedId); + } + }); + + FeedResource.markItemsOfFeedsRead(feedIds); + ItemResource.markItemsRead(ids); + }; + + this.autoPage = function () { + this.isAutoPagingEnabled = false; + + var type = $route.current.$$route.type; + var id = $routeParams.id; + + ItemResource.autoPage(type, id).success(function (data) { + Publisher.publishAll(data); + + if (data.items.length > 0) { + this.isAutoPagingEnabled = true; + } + }).error(function () { + this.isAutoPagingEnabled = true; + }); + }; + + this.getRelativeDate = function (timestamp) { + if (timestamp !== undefined && timestamp !== '') { + var languageCode = SettingsResource.get('language'); + var date = + moment.unix(timestamp).locale(languageCode).fromNow() + ''; + return date; + } else { + return ''; + } + }; + +}]); +app.controller('NavigationController', +["$route", "FEED_TYPE", "FeedResource", "FolderResource", "ItemResource", "SettingsResource", function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, + SettingsResource) { 'use strict'; - var $__0 = this; + this.feedError = ''; this.folderError = ''; - this.getFeeds = (function() { - return FeedResource.getAll(); - }); - this.getFolders = (function() { - return FolderResource.getAll(); - }); - this.markFolderRead = (function(folderId) { - var feed$__13; - FeedResource.markFolderRead(folderId); - for (var $__3 = FeedResource.getByFolderId(folderId)[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - feed$__13 = $__4.value; - { - ItemResource.markFeedRead(feed$__13.id); - } - } - }); - this.markFeedRead = (function(feedId) { - ItemResource.markFeedRead(feedId); - FeedResource.markFeedRead(feedId); - }); - this.markRead = (function() { - ItemResource.markRead(); - FeedResource.markRead(); - }); - this.isShowAll = (function() { - return SettingsResource.get('showAll'); - }); - this.getFeedsOfFolder = (function(folderId) { - return FeedResource.getByFolderId(folderId); - }); - this.getUnreadCount = (function() { - return FeedResource.getUnreadCount(); - }); - this.getFeedUnreadCount = (function(feedId) { - return FeedResource.getById(feedId).unreadCount; - }); - this.getFolderUnreadCount = (function(folderId) { - return FeedResource.getFolderUnreadCount(folderId); - }); - this.getStarredCount = (function() { - return ItemResource.getStarredCount(); - }); - this.toggleFolder = (function(folderName) { - FolderResource.toggleOpen(folderName); - }); - this.hasFeeds = (function(folderId) { - return FeedResource.getFolderUnreadCount(folderId) !== undefined; - }); - this.subFeedActive = (function(folderId) { - var feed$__14; - var type = $route.current.$$route.type; - if (type === FEED_TYPE.FEED) { - feed$__14 = FeedResource.getById($route.current.params.id); - if (feed$__14.folderId === folderId) { - return true; + + this.getFeeds = function () { + return FeedResource.getAll(); + }; + + this.getFolders = function () { + return FolderResource.getAll(); + }; + + this.markFolderRead = function (folderId) { + FeedResource.markFolderRead(folderId); + + FeedResource.getByFolderId(folderId).forEach(function (feed) { + ItemResource.markFeedRead(feed.id); + }); + }; + + this.markFeedRead = function (feedId) { + ItemResource.markFeedRead(feedId); + FeedResource.markFeedRead(feedId); + }; + + this.markRead = function () { + ItemResource.markRead(); + FeedResource.markRead(); + }; + + this.isShowAll = function () { + return SettingsResource.get('showAll'); + }; + + this.getFeedsOfFolder = function (folderId) { + return FeedResource.getByFolderId(folderId); + }; + + this.getUnreadCount = function () { + return FeedResource.getUnreadCount(); + }; + + this.getFeedUnreadCount = function (feedId) { + return FeedResource.getById(feedId).unreadCount; + }; + + this.getFolderUnreadCount= function (folderId) { + return FeedResource.getFolderUnreadCount(folderId); + }; + + this.getStarredCount = function () { + return ItemResource.getStarredCount(); + }; + + this.toggleFolder = function (folderName) { + FolderResource.toggleOpen(folderName); + }; + + this.hasFeeds = function (folderId) { + return FeedResource.getFolderUnreadCount(folderId) !== undefined; + }; + + this.subFeedActive = function (folderId) { + var type = $route.current.$$route.type; + + if (type === FEED_TYPE.FEED) { + var feed = FeedResource.getById($route.current.params.id); + + if (feed.folderId === folderId) { + return true; + } } - } - return false; - }); - this.isSubscriptionsActive = (function() { - return $route.current && $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; - }); - this.isStarredActive = (function() { - return $route.current && $route.current.$$route.type === FEED_TYPE.STARRED; - }); - this.isFolderActive = (function(folderId) { - var currentId = parseInt($route.current.params.id, 10); - return $route.current && $route.current.$$route.type === FEED_TYPE.FOLDER && currentId === folderId; - }); - this.isFeedActive = (function(feedId) { - var currentId = parseInt($route.current.params.id, 10); - return $route.current && $route.current.$$route.type === FEED_TYPE.FEED && currentId === feedId; - }); - this.folderNameExists = (function(folderName) { - return FolderResource.get(folderName) !== undefined; - }); - this.isAddingFolder = (function() { - return true; - }); - this.createFolder = (function(folder) { - console.log(folder.name); - folder.name = ''; - }); - this.createFeed = (function(feed) { - $__0.newFolder = false; - console.log(feed.url + feed.folder); - feed.url = ''; - }); - this.renameFeed = (function(feed) { - feed.editing = false; - }); - this.renameFolder = (function() { - console.log('TBD'); - }); - this.deleteFeed = (function(feed) { - feed.deleted = true; - }); - this.undeleteFeed = (function(feed) { - feed.deleted = false; - }); - this.removeFeed = (function(feed) { - console.log('remove ' + feed); - }); - this.deleteFolder = (function(folderName) { - console.log(folderName); - }); - this.moveFeed = (function(feedId, folderId) { - console.log(feedId + folderId); - }); - }]); - app.controller('SettingsController', ["$route", "SettingsResource", "FeedResource", function($route, SettingsResource, FeedResource) { + + return false; + }; + + this.isSubscriptionsActive = function () { + return $route.current && + $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; + }; + + this.isStarredActive = function () { + return $route.current && + $route.current.$$route.type === FEED_TYPE.STARRED; + }; + + this.isFolderActive = function (folderId) { + var currentId = parseInt($route.current.params.id, 10); + return $route.current && + $route.current.$$route.type === FEED_TYPE.FOLDER && + currentId === folderId; + }; + + this.isFeedActive = function (feedId) { + var currentId = parseInt($route.current.params.id, 10); + return $route.current && + $route.current.$$route.type === FEED_TYPE.FEED && + currentId === feedId; + }; + + this.folderNameExists = function (folderName) { + return FolderResource.get(folderName) !== undefined; + }; + + // TBD + this.isAddingFolder = function () { + return true; + }; + + this.createFolder = function (folder) { + console.log(folder.name); + folder.name = ''; + }; + + this.createFeed = function (feed) { + this.newFolder = false; + console.log(feed.url + feed.folder); + feed.url = ''; + }; + + this.renameFeed = function (feed) { + feed.editing = false; + // todo remote stuff + }; + + this.renameFolder = function () { + console.log('TBD'); + }; + + this.deleteFeed = function (feed) { + feed.deleted = true; + // todo remote stuff + }; + + this.undeleteFeed = function (feed) { + feed.deleted = false; + // todo remote stuff + }; + + this.removeFeed = function (feed) { + console.log('remove ' + feed); + }; + + this.deleteFolder = function (folderName) { + console.log(folderName); + }; + + this.moveFeed = function (feedId, folderId) { + console.log(feedId + folderId); + }; + +}]); +app.controller('SettingsController', +["$route", "SettingsResource", "FeedResource", function ($route, SettingsResource, FeedResource) { 'use strict'; - var $__0 = this; + this.importing = false; this.opmlImportError = false; this.articleImportError = false; - var set = (function(key, value) { - SettingsResource.set(key, value); - if (['showAll', 'oldestFirst'].indexOf(key) >= 0) { - $route.reload(); - } - }); - this.toggleSetting = (function(key) { - set(key, !$__0.getSetting(key)); - }); - this.getSetting = (function(key) { - return SettingsResource.get(key); - }); - this.feedSize = (function() { - return FeedResource.size(); - }); - this.importOpml = (function(content) { - console.log(content); - }); - this.importArticles = (function(content) { - console.log(content); - }); - }]); - app.filter('trustUrl', (["$sce", function($sce) { + + var set = function (key, value) { + SettingsResource.set(key, value); + + if (['showAll', 'oldestFirst'].indexOf(key) >= 0) { + $route.reload(); + } + }; + + + this.toggleSetting = function (key) { + set(key, !this.getSetting(key)); + }; + + + this.getSetting = function (key) { + return SettingsResource.get(key); + }; + + + this.feedSize = function () { + return FeedResource.size(); + }; + + + // TBD + this.importOpml = function (content) { + console.log(content); + }; + + + this.importArticles = function (content) { + console.log(content); + }; + +}]); +app.filter('trustUrl', ["$sce", function ($sce) { 'use strict'; - return (function(url) { - return $sce.trustAsResourceUrl(url); - }); - }])); - app.filter('unreadCountFormatter', (function() { + + return function (url) { + return $sce.trustAsResourceUrl(url); + }; +}]); +app.filter('unreadCountFormatter', function () { 'use strict'; - return (function(unreadCount) { - if (unreadCount > 999) { - return '999+'; - } - return unreadCount; - }); - })); - app.factory('FeedResource', (["Resource", "$http", "BASE_URL", function(Resource, $http, BASE_URL) { + + return function (unreadCount) { + if (unreadCount > 999) { + return '999+'; + } + return unreadCount; + }; +}); +app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource, $http, BASE_URL) { 'use strict'; - var FeedResource = function FeedResource($http, BASE_URL) { - $traceurRuntime.superCall(this, $FeedResource.prototype, "constructor", [$http, BASE_URL, 'url']); - this.ids = {}; - this.unreadCount = 0; - this.folderUnreadCount = {}; - this.folderIds = {}; - this.deleted = null; - }; - var $FeedResource = FeedResource; - ($traceurRuntime.createClass)(FeedResource, { - receive: function(data) { - $traceurRuntime.superCall(this, $FeedResource.prototype, "receive", [data]); + + var FeedResource = function ($http, BASE_URL) { + Resource.call(this, $http, BASE_URL, 'url'); + this.ids = {}; + this.unreadCount = 0; + this.folderUnreadCount = {}; + this.folderIds = {}; + this.deleted = null; + }; + + FeedResource.prototype = Object.create(Resource.prototype); + + FeedResource.prototype.receive = function (data) { + Resource.prototype.receive.call(this, data); this.updateUnreadCache(); this.updateFolderCache(); - }, - updateUnreadCache: function() { - var $__57, - $__58, - $__59, - $__60, - $__61; - var value$__15; + }; + + + FeedResource.prototype.updateUnreadCache = function () { this.unreadCount = 0; this.folderUnreadCount = {}; - for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - value$__15 = $__4.value; - { - if (value$__15.unreadCount) { - this.unreadCount += value$__15.unreadCount; + + var self = this; + this.values.forEach(function (feed) { + if (feed.unreadCount) { + self.unreadCount += feed.unreadCount; } - if (value$__15.folderId !== undefined) { - $traceurRuntime.setProperty(this.folderUnreadCount, value$__15.folderId, this.folderUnreadCount[$traceurRuntime.toProperty(value$__15.folderId)] || 0); - ($__57 = this.folderUnreadCount, $__58 = value$__15.folderId, $__59 = value$__15.unreadCount, $__60 = $__57[$traceurRuntime.toProperty($__58)], $__61 = $__60 + $__59, $traceurRuntime.setProperty($__57, $__58, $__61), $__61); + if (feed.folderId !== undefined) { + self.folderUnreadCount[feed.folderId] = + self.folderUnreadCount[feed.folderId] || 0; + self.folderUnreadCount[feed.folderId] += feed.unreadCount; } - } - } - }, - updateFolderCache: function() { - var feed$__16; + }); + }; + + + FeedResource.prototype.updateFolderCache = function () { this.folderIds = {}; - for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - feed$__16 = $__4.value; - { - $traceurRuntime.setProperty(this.folderIds, feed$__16.folderId, this.folderIds[$traceurRuntime.toProperty(feed$__16.folderId)] || []); - this.folderIds[$traceurRuntime.toProperty(feed$__16.folderId)].push(feed$__16); - } - } - }, - add: function(value) { - $traceurRuntime.superCall(this, $FeedResource.prototype, "add", [value]); + + var self = this; + this.values.forEach(function (feed) { + self.folderIds[feed.folderId] = + self.folderIds[feed.folderId] || []; + self.folderIds[feed.folderId].push(feed); + }); + }; + + + FeedResource.prototype.add = function (value) { + Resource.prototype.add.call(this, value); if (value.id !== undefined) { - $traceurRuntime.setProperty(this.ids, value.id, this.hashMap[$traceurRuntime.toProperty(value.url)]); + this.ids[value.id] = this.hashMap[value.url]; } - }, - delete: function(url) { + }; + + + FeedResource.prototype.delete = function (url) { var feed = this.get(url); this.deleted = feed; - delete this.ids[$traceurRuntime.toProperty(feed.id)]; - $traceurRuntime.superCall(this, $FeedResource.prototype, "delete", [url]); + delete this.ids[feed.id]; + + Resource.prototype.delete.call(this, url); + this.updateUnreadCache(); this.updateFolderCache(); - return this.http.delete((this.BASE_URL + "/feeds/" + feed.id)); - }, - markRead: function() { - var feed$__17; - for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - feed$__17 = $__4.value; - { - feed$__17.unreadCount = 0; - } - } + + return this.http.delete(this.BASE_URL + '/feeds/' + feed.id); + }; + + + FeedResource.prototype.markRead = function () { + this.values.forEach(function (feed) { + feed.unreadCount = 0; + }); + this.unreadCount = 0; this.folderUnreadCount = {}; - }, - markFeedRead: function(feedId) { - this.ids[$traceurRuntime.toProperty(feedId)].unreadCount = 0; + }; + + + FeedResource.prototype.markFeedRead = function (feedId) { + this.ids[feedId].unreadCount = 0; this.updateUnreadCache(); - }, - markFolderRead: function(folderId) { - var feed$__18; - for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - feed$__18 = $__4.value; - { - if (feed$__18.folderId === folderId) { - feed$__18.unreadCount = 0; + }; + + + FeedResource.prototype.markFolderRead = function (folderId) { + this.values.forEach(function (feed) { + if (feed.folderId === folderId) { + feed.unreadCount = 0; } - } - } + }); + this.updateUnreadCache(); - }, - markItemOfFeedRead: function(feedId) { - this.ids[$traceurRuntime.toProperty(feedId)].unreadCount -= 1; + }; + + + FeedResource.prototype.markItemOfFeedRead = function (feedId) { + this.ids[feedId].unreadCount -= 1; this.updateUnreadCache(); - }, - markItemsOfFeedsRead: function(feedIds) { - var feedId$__19; - for (var $__3 = feedIds[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - feedId$__19 = $__4.value; - { - this.ids[$traceurRuntime.toProperty(feedId$__19)].unreadCount -= 1; - } - } + }; + + + FeedResource.prototype.markItemsOfFeedsRead = function (feedIds) { + var self = this; + feedIds.forEach(function (feedId) { + self.ids[feedId].unreadCount -= 1; + }); + this.updateUnreadCache(); - }, - markItemOfFeedUnread: function(feedId) { - this.ids[$traceurRuntime.toProperty(feedId)].unreadCount += 1; + }; + + + FeedResource.prototype.markItemOfFeedUnread = function (feedId) { + this.ids[feedId].unreadCount += 1; this.updateUnreadCache(); - }, - getUnreadCount: function() { + }; + + + FeedResource.prototype.getUnreadCount = function () { return this.unreadCount; - }, - getFolderUnreadCount: function(folderId) { - return this.folderUnreadCount[$traceurRuntime.toProperty(folderId)]; - }, - getByFolderId: function(folderId) { - return this.folderIds[$traceurRuntime.toProperty(folderId)] || []; - }, - getById: function(feedId) { - return this.ids[$traceurRuntime.toProperty(feedId)]; - }, - rename: function(url, name) { + }; + + + FeedResource.prototype.getFolderUnreadCount = function (folderId) { + return this.folderUnreadCount[folderId]; + }; + + + FeedResource.prototype.getByFolderId = function (folderId) { + return this.folderIds[folderId] || []; + }; + + + FeedResource.prototype.getById = function (feedId) { + return this.ids[feedId]; + }; + + + FeedResource.prototype.rename = function (url, name) { var feed = this.get(url); feed.title = name; + return this.http({ - method: 'POST', - url: (this.BASE_URL + "/feeds/" + feed.id + "/rename"), - data: {feedTitle: name} + method: 'POST', + url: this.BASE_URL + '/feeds/' + feed.id + '/rename', + data: { + feedTitle: name + } }); - }, - move: function(url, folderId) { + }; + + + FeedResource.prototype.move = function (url, folderId) { var feed = this.get(url); feed.folderId = folderId; + this.updateFolderCache(); + return this.http({ - method: 'POST', - url: (this.BASE_URL + "/feeds/" + feed.id + "/move"), - data: {parentFolderId: folderId} + method: 'POST', + url: this.BASE_URL + '/feeds/' + feed.id + '/move', + data: { + parentFolderId: folderId + } }); - }, - create: function(url, folderId) { - var title = arguments[2] !== (void 0) ? arguments[2] : null; + + }; + + + FeedResource.prototype.create = function (url, folderId, title) { if (title) { - title = title.toUpperCase(); + title = title.toUpperCase(); } + var feed = { - url: url, - folderId: folderId, - title: title, - faviconLink: '../css/loading.gif' + url: url, + folderId: folderId, + title: title, + faviconLink: '../css/loading.gif' }; + if (!this.get(url)) { - this.add(feed); + this.add(feed); } + this.updateFolderCache(); + console.log(feed); - }, - undoDelete: function() { + + /*return this.http({ + method: 'POST', + url: this.BASE_URL + '/feeds', + data: { + url: url, + parentFolderId: folderId, + title: title + } + });*/ + }; + + + FeedResource.prototype.undoDelete = function () { if (this.deleted) { - this.add(this.deleted); - return this.http.post((this.BASE_URL + "/feeds/" + this.deleted.id + "/restore")); + this.add(this.deleted); + + return this.http.post( + this.BASE_URL + '/feeds/${this.deleted.id}/restore' + ); } + this.updateFolderCache(); this.updateUnreadCache(); - } - }, {}, Resource); + }; + + return new FeedResource($http, BASE_URL); - }])); - app.factory('FolderResource', (["Resource", "$http", "BASE_URL", function(Resource, $http, BASE_URL) { +}]); +app.factory('FolderResource', ["Resource", "$http", "BASE_URL", function (Resource, $http, BASE_URL) { 'use strict'; - var FolderResource = function FolderResource($http, BASE_URL) { - $traceurRuntime.superCall(this, $FolderResource.prototype, "constructor", [$http, BASE_URL, 'name']); - this.deleted = null; + + var FolderResource = function ($http, BASE_URL) { + Resource.call(this, $http, BASE_URL, 'name'); + this.deleted = null; }; - var $FolderResource = FolderResource; - ($traceurRuntime.createClass)(FolderResource, { - delete: function(folderName) { + + FolderResource.prototype = Object.create(Resource.prototype); + + FolderResource.prototype.delete = function (folderName) { var folder = this.get(folderName); this.deleted = folder; - $traceurRuntime.superCall(this, $FolderResource.prototype, "delete", [folderName]); - return this.http.delete((this.BASE_URL + "/folders/" + folder.id)); - }, - toggleOpen: function(folderName) { + + Resource.prototype.delete.call(this, folderName); + + return this.http.delete(this.BASE_URL + '/folders/' + folder.id); + }; + + + FolderResource.prototype.toggleOpen = function (folderName) { var folder = this.get(folderName); folder.opened = !folder.opened; + return this.http({ - url: (this.BASE_URL + "/folders/" + folder.id + "/open"), - method: 'POST', - data: { - folderId: folder.id, - open: folder.opened - } + url: this.BASE_URL + '/folders/' + folder.id + '/open', + method: 'POST', + data: { + folderId: folder.id, + open: folder.opened + } }); - }, - rename: function(folderName, toFolderName) { + }; + + + FolderResource.prototype.rename = function (folderName, toFolderName) { toFolderName = toFolderName.toUpperCase(); var folder = this.get(folderName); + + // still do http request if folder exists but dont change the name + // to have one point of failure if (!this.get(toFolderName)) { - folder.name = toFolderName; - delete this.hashMap[$traceurRuntime.toProperty(folderName)]; - $traceurRuntime.setProperty(this.hashMap, toFolderName, folder); + folder.name = toFolderName; + + delete this.hashMap[folderName]; + this.hashMap[toFolderName] = folder; } + return this.http({ - url: (this.BASE_URL + "/folders/" + folder.id + "/rename"), - method: 'POST', - data: {folderName: toFolderName} + url: this.BASE_URL + '/folders/' + folder.id + '/rename', + method: 'POST', + data: { + folderName: toFolderName + } }); - }, - create: function(folderName) { - var folder$__20; + }; + + + FolderResource.prototype.create = function (folderName) { folderName = folderName.toUpperCase(); + + // still do http request if folder exists but dont change the name + // to have one point of failure if (!this.get(folderName)) { - folder$__20 = {name: folderName}; - this.add(folder$__20); + var folder = { + name: folderName + }; + + this.add(folder); } + return this.http({ - url: (this.BASE_URL + "/folders"), - method: 'POST', - data: {folderName: folderName} + url: this.BASE_URL + '/folders', + method: 'POST', + data: { + folderName: folderName + } }); - }, - undoDelete: function() { + }; + + + FolderResource.prototype.undoDelete = function () { if (this.deleted) { - this.add(this.deleted); - return this.http.post((this.BASE_URL + "/folders/" + this.deleted.id + "/restore")); + this.add(this.deleted); + + return this.http.post( + this.BASE_URL + '/folders/' + this.deleted.id + '/restore' + ); } - } - }, {}, Resource); + }; + + return new FolderResource($http, BASE_URL); - }])); - app.factory('ItemResource', (["Resource", "$http", "BASE_URL", "ITEM_BATCH_SIZE", function(Resource, $http, BASE_URL, ITEM_BATCH_SIZE) { +}]); +app.factory('ItemResource', ["Resource", "$http", "BASE_URL", "ITEM_BATCH_SIZE", function (Resource, $http, BASE_URL, + ITEM_BATCH_SIZE) { 'use strict'; - var ItemResource = function ItemResource($http, BASE_URL, ITEM_BATCH_SIZE) { - $traceurRuntime.superCall(this, $ItemResource.prototype, "constructor", [$http, BASE_URL]); - this.starredCount = 0; - this.batchSize = ITEM_BATCH_SIZE; - }; - var $ItemResource = ItemResource; - ($traceurRuntime.createClass)(ItemResource, { - receive: function(value, channel) { + + + var ItemResource = function ($http, BASE_URL, ITEM_BATCH_SIZE) { + Resource.call(this, $http, BASE_URL); + this.starredCount = 0; + this.batchSize = ITEM_BATCH_SIZE; + }; + + ItemResource.prototype = Object.create(Resource.prototype); + + + ItemResource.prototype.receive = function (value, channel) { switch (channel) { - case 'newestItemId': + + case 'newestItemId': this.newestItemId = value; break; - case 'starred': + + case 'starred': this.starredCount = value; break; - default: - $traceurRuntime.superCall(this, $ItemResource.prototype, "receive", [value, channel]); + + default: + Resource.prototype.receive.call(this, value, channel); } - }, - getNewestItemId: function() { + }; + + + ItemResource.prototype.getNewestItemId = function () { return this.newestItemId; - }, - getStarredCount: function() { + }; + + + ItemResource.prototype.getStarredCount = function () { return this.starredCount; - }, - star: function(itemId) { - var isStarred = arguments[1] !== (void 0) ? arguments[1] : true; + }; + + + ItemResource.prototype.star = function (itemId, isStarred) { + if (isStarred === undefined) { + isStarred = true; + } + var it = this.get(itemId); - var url = (this.BASE_URL + "/items/" + it.feedId + "/" + it.guidHash + "/star"); + var url = this.BASE_URL + + '/items/' + it.feedId + '/' + it.guidHash + '/star'; + it.starred = isStarred; + if (isStarred) { - this.starredCount += 1; + this.starredCount += 1; } else { - this.starredCount -= 1; + this.starredCount -= 1; } + return this.http({ - url: url, - method: 'POST', - data: {isStarred: isStarred} + url: url, + method: 'POST', + data: { + isStarred: isStarred + } }); - }, - toggleStar: function(itemId) { + }; + + + ItemResource.prototype.toggleStar = function (itemId) { if (this.get(itemId).starred) { - this.star(itemId, false); + this.star(itemId, false); } else { - this.star(itemId, true); + this.star(itemId, true); + } + }; + + + ItemResource.prototype.markItemRead = function (itemId, isRead) { + if (isRead === undefined) { + isRead = true; } - }, - markItemRead: function(itemId) { - var isRead = arguments[1] !== (void 0) ? arguments[1] : true; + this.get(itemId).unread = !isRead; return this.http({ - url: (this.BASE_URL + "/items/" + itemId + "/read"), - method: 'POST', - data: {isRead: isRead} + url: this.BASE_URL + '/items/' + itemId + '/read', + method: 'POST', + data: { + isRead: isRead + } }); - }, - markItemsRead: function(itemIds) { - var itemId$__21; - for (var $__3 = itemIds[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - itemId$__21 = $__4.value; - { - this.get(itemId$__21).unread = false; - } - } + }; + + + ItemResource.prototype.markItemsRead = function (itemIds) { + var self = this; + + itemIds.forEach(function(itemId) { + self.get(itemId).unread = false; + }); + return this.http({ - url: (this.BASE_URL + "/items/read/multiple"), - method: 'POST', - data: {itemIds: itemIds} + url: this.BASE_URL + '/items/read/multiple', + method: 'POST', + data: { + itemIds: itemIds + } }); - }, - markFeedRead: function(feedId) { - var item$__22; - var read = arguments[1] !== (void 0) ? arguments[1] : true; - for (var $__3 = this.values.filter((function(i) { - return i.feedId === feedId; - }))[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - item$__22 = $__4.value; - { - item$__22.unread = !read; - } - } - return this.http.post((this.BASE_URL + "/feeds/" + feedId + "/read")); - }, - markRead: function() { - var item$__23; - for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - item$__23 = $__4.value; - { - item$__23.unread = false; - } + }; + + + ItemResource.prototype.markFeedRead = function (feedId, read) { + if (read === undefined) { + read = true; } - return this.http.post((this.BASE_URL + "/items/read")); - }, - autoPage: function(type, id) { + + var items = this.values.filter(function (element) { + return element.feedId === feedId; + }); + + items.forEach(function (item) { + item.unread = !read; + }); + + return this.http.post(this.BASE_URL + '/feeds/' + 'feedId' + '/read'); + }; + + + ItemResource.prototype.markRead = function () { + this.values.forEach(function (item) { + item.unread = false; + }); + + return this.http.post(this.BASE_URL + '/items/read'); + }; + + + ItemResource.prototype.autoPage = function (type, id) { return this.http({ - url: (this.BASE_URL + "/items"), - method: 'GET', - params: { - type: type, - id: id, - offset: this.size(), - limit: this.batchSize - } + url: this.BASE_URL + '/items', + method: 'GET', + params: { + type: type, + id: id, + offset: this.size(), + limit: this.batchSize + } }); - } - }, {}, Resource); + }; + + return new ItemResource($http, BASE_URL, ITEM_BATCH_SIZE); - }])); - app.service('Loading', function() { +}]); +app.service('Loading', function () { 'use strict'; - var $__0 = this; + this.loading = { - global: false, - content: false, - autopaging: false + global: false, + content: false, + autopaging: false }; - this.setLoading = (function(area, isLoading) { - $traceurRuntime.setProperty($__0.loading, area, isLoading); - }); - this.isLoading = (function(area) { - return $__0.loading[$traceurRuntime.toProperty(area)]; - }); - }); - app.service('Publisher', function() { + + this.setLoading = function (area, isLoading) { + this.loading[area] = isLoading; + }; + + this.isLoading = function (area) { + return this.loading[area]; + }; + +}); +/*jshint undef:false*/ +app.service('Publisher', function () { 'use strict'; - var $__0 = this; + this.channels = {}; - this.subscribe = (function(obj) { - return {toChannels: (function() { - var channel$__24; - for (var channels = [], - $__7 = 0; $__7 < arguments.length; $__7++) - $traceurRuntime.setProperty(channels, $__7, arguments[$traceurRuntime.toProperty($__7)]); - for (var $__3 = channels[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - channel$__24 = $__4.value; - { - $traceurRuntime.setProperty($__0.channels, channel$__24, $__0.channels[$traceurRuntime.toProperty(channel$__24)] || []); - $__0.channels[$traceurRuntime.toProperty(channel$__24)].push(obj); + + this.subscribe = function (obj) { + var self = this; + + return { + toChannels: function (channels) { + channels.forEach(function (channel) { + self.channels[channel] = self.channels[channel] || []; + self.channels[channel].push(obj); + }); } - } - })}; - }); - this.publishAll = (function(data) { - var $__8$__25, - channel$__26, - messages$__27; - var listener$__28; - for (var $__5 = items(data)[$traceurRuntime.toProperty(Symbol.iterator)](), - $__6; !($__6 = $__5.next()).done; ) { - $__8$__25 = $__6.value; - channel$__26 = $__8$__25[0]; - messages$__27 = $__8$__25[1]; - { - if ($__0.channels[$traceurRuntime.toProperty(channel$__26)] !== undefined) { - for (var $__3 = $__0.channels[$traceurRuntime.toProperty(channel$__26)][$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - listener$__28 = $__4.value; - { - listener$__28.receive(messages$__27, channel$__26); - } + }; + + }; + + this.publishAll = function (data) { + var self = this; + + Object.keys(data).forEach(function (channel) { + var listeners = self.channels[channel]; + if (listeners !== undefined) { + listeners.forEach(function (listener) { + listener.receive(data[channel], channel); + }); } - } - } - } - }); - }); - app.factory('Resource', (function() { + }); + }; + +}); +app.factory('Resource', function () { 'use strict'; - var Resource = function Resource(http, BASE_URL) { - var id = arguments[2] !== (void 0) ? arguments[2] : 'id'; - this.id = id; - this.values = []; - this.hashMap = {}; - this.http = http; - this.BASE_URL = BASE_URL; - }; - ($traceurRuntime.createClass)(Resource, { - receive: function(objs) { - var obj$__29; - for (var $__3 = objs[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - obj$__29 = $__4.value; - { - this.add(obj$__29); - } - } - }, - add: function(obj) { - var $__8$__30, - key$__31, - value$__32; - var existing = this.hashMap[$traceurRuntime.toProperty(obj[$traceurRuntime.toProperty(this.id)])]; + + var Resource = function (http, BASE_URL, id) { + this.id = id || 'id'; + this.values = []; + this.hashMap = {}; + this.http = http; + this.BASE_URL = BASE_URL; + }; + + + Resource.prototype.receive = function (objs) { + var self = this; + objs.forEach(function (obj) { + self.add(obj); + }); + }; + + + Resource.prototype.add = function (obj) { + var existing = this.hashMap[obj[this.id]]; + if (existing === undefined) { - this.values.push(obj); - $traceurRuntime.setProperty(this.hashMap, obj[$traceurRuntime.toProperty(this.id)], obj); + this.values.push(obj); + this.hashMap[obj[this.id]] = obj; } else { - for (var $__3 = items(obj)[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - $__8$__30 = $__4.value; - key$__31 = $__8$__30[0]; - value$__32 = $__8$__30[1]; - { - $traceurRuntime.setProperty(existing, key$__31, value$__32); - } - } + // copy values from new to old object if it exists already + Object.keys(obj).forEach(function (key) { + existing[key] = obj[key]; + }); } - }, - size: function() { + }; + + + Resource.prototype.size = function () { return this.values.length; - }, - get: function(id) { - return this.hashMap[$traceurRuntime.toProperty(id)]; - }, - delete: function(id) { - var $__0 = this; - var deleteAtIndex = this.values.findIndex((function(e) { - return e[$traceurRuntime.toProperty($__0.id)] === id; - })); + }; + + + Resource.prototype.get = function (id) { + return this.hashMap[id]; + }; + + + Resource.prototype.delete = function (id) { + // find index of object that should be deleted + var self = this; + var deleteAtIndex = this.values.findIndex(function(element) { + return element[self.id] === id; + }); + if (deleteAtIndex !== undefined) { - this.values.splice(deleteAtIndex, 1); + this.values.splice(deleteAtIndex, 1); } - if (this.hashMap[$traceurRuntime.toProperty(id)] !== undefined) { - delete this.hashMap[$traceurRuntime.toProperty(id)]; + + if (this.hashMap[id] !== undefined) { + delete this.hashMap[id]; } - }, - clear: function() { + }; + + + Resource.prototype.clear = function () { this.hashMap = {}; + + // http://stackoverflow.com/questions/1232040 + // this is the fastes way to empty an array when you want to keep + // the reference around while (this.values.length > 0) { - this.values.pop(); + this.values.pop(); } - }, - getAll: function() { + }; + + + Resource.prototype.getAll = function () { return this.values; - } - }, {}); + }; + + return Resource; - })); - app.service('SettingsResource', ["$http", "BASE_URL", function($http, BASE_URL) { +}); +/*jshint unused:false*/ +app.service('SettingsResource', ["$http", "BASE_URL", function ($http, BASE_URL) { 'use strict'; - var $__0 = this; + this.settings = { - language: 'en', - showAll: false, - compact: false, - oldestFirst: false, - preventReadOnScroll: false + language: 'en', + showAll: false, + compact: false, + oldestFirst: false, + preventReadOnScroll: false }; this.defaultLanguageCode = 'en'; - this.supportedLanguageCodes = ['ar-ma', 'ar', 'bg', 'ca', 'cs', 'cv', 'da', 'de', 'el', 'en-ca', 'en-gb', 'eo', 'es', 'et', 'eu', 'fi', 'fr-ca', 'fr', 'gl', 'he', 'hi', 'hu', 'id', 'is', 'it', 'ja', 'ka', 'ko', 'lv', 'ms-my', 'nb', 'ne', 'nl', 'pl', 'pt-br', 'pt', 'ro', 'ru', 'sk', 'sl', 'sv', 'th', 'tr', 'tzm-la', 'tzm', 'uk', 'zh-cn', 'zh-tw']; - this.receive = (function(data) { - var $__8$__33, - key$__34, - value$__35; - for (var $__3 = items(data)[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - $__8$__33 = $__4.value; - key$__34 = $__8$__33[0]; - value$__35 = $__8$__33[1]; - { - if (key$__34 === 'language') { - value$__35 = $__0.processLanguageCode(value$__35); - } - $traceurRuntime.setProperty($__0.settings, key$__34, value$__35); + this.supportedLanguageCodes = [ + 'ar-ma', 'ar', 'bg', 'ca', 'cs', 'cv', 'da', 'de', 'el', 'en-ca', + 'en-gb', 'eo', 'es', 'et', 'eu', 'fi', 'fr-ca', 'fr', 'gl', 'he', 'hi', + 'hu', 'id', 'is', 'it', 'ja', 'ka', 'ko', 'lv', 'ms-my', 'nb', 'ne', + 'nl', 'pl', 'pt-br', 'pt', 'ro', 'ru', 'sk', 'sl', 'sv', 'th', 'tr', + 'tzm-la', 'tzm', 'uk', 'zh-cn', 'zh-tw' + ]; + + this.receive = function (data) { + var self = this; + Object.keys(data).forEach(function (key) { + var value = data[key]; + + if (key === 'language') { + value = self.processLanguageCode(value); + } + + self.settings[key] = value; + }); + }; + + this.get = function (key) { + return this.settings[key]; + }; + + this.set = function (key, value) { + this.settings[key] = value; + + return $http({ + url: BASE_URL + '/settings', + method: 'PUT', + data: this.settings + }); + }; + + this.processLanguageCode = function (languageCode) { + languageCode = languageCode.replace('_', '-').toLowerCase(); + + if (this.supportedLanguageCodes.indexOf(languageCode) < 0) { + languageCode = languageCode.split('-')[0]; } - } - }); - this.get = (function(key) { - return $__0.settings[$traceurRuntime.toProperty(key)]; - }); - this.set = (function(key, value) { - $traceurRuntime.setProperty($__0.settings, key, value); - return $http({ - url: (BASE_URL + "/settings"), - method: 'PUT', - data: $__0.settings - }); - }); - this.processLanguageCode = (function(languageCode) { - languageCode = languageCode.replace('_', '-').toLowerCase(); - if ($__0.supportedLanguageCodes.indexOf(languageCode) < 0) { - languageCode = languageCode.split('-')[0]; - } - if ($__0.supportedLanguageCodes.indexOf(languageCode) < 0) { - languageCode = $__0.defaultLanguageCode; - } - return languageCode; - }); - }]); - (function(window, document, $) { - 'use strict'; - var noInputFocused = (function(element) { - return !(element.is('input') || element.is('select') || element.is('textarea') || element.is('checkbox')); - }); - var noModifierKey = (function(event) { - return !(event.shiftKey || event.altKey || event.ctrlKey || event.metaKey); - }); - var scrollToItem = (function(item, scrollArea) { - scrollArea.scrollTop(item.offset().top - scrollArea.offset().top + scrollArea.scrollTop()); - }); - var scrollToNextItem = (function(scrollArea) { - var item$__36; - var items = scrollArea.find('.item'); - for (var $__3 = items[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - item$__36 = $__4.value; - { - item$__36 = $(item$__36); - if (item$__36.position().top > 1) { - scrollToItem(scrollArea, item$__36); - return; - } + + if (this.supportedLanguageCodes.indexOf(languageCode) < 0) { + languageCode = this.defaultLanguageCode; } - } - scrollArea.scrollTop(scrollArea.prop('scrollHeight')); - }); - var scrollToPreviousItem = (function(scrollArea) { - var previous$__37; - var items = scrollArea.find('.item'); - for (var $__3 = items[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - var item = $__4.value; - { - item = $(item); - if (item.position().top >= 0) { - previous$__37 = item.prev(); - if (previous$__37.length > 0) { - scrollToItem(scrollArea, previous$__37); + + return languageCode; + }; + +}]); +/** + * Code in here acts only as a click shortcut mechanism. That's why its not + * being put into a directive since it has to be tested with protractor + * anyways and theres no benefit from wiring it into the angular app + */ +(function (window, document, $) { + 'use strict'; + + var noInputFocused = function (element) { + return !( + element.is('input') || + element.is('select') || + element.is('textarea') || + element.is('checkbox') + ); + }; + + var noModifierKey = function (event) { + return !( + event.shiftKey || + event.altKey || + event.ctrlKey || + event.metaKey + ); + }; + + var scrollToItem = function (item, scrollArea) { + scrollArea.scrollTop( + item.offset().top - scrollArea.offset().top + scrollArea.scrollTop() + ); + }; + + var scrollToNextItem = function (scrollArea) { + var items = scrollArea.find('.item'); + + items.each(function (index, item) { + item = $(item); + + if (item.position().top > 1) { + scrollToItem(scrollArea, item); + return false; } - return; - } + }); + + // in case this is the last item it should still scroll below the top + scrollArea.scrollTop(scrollArea.prop('scrollHeight')); + + }; + + var scrollToPreviousItem = function (scrollArea) { + var items = scrollArea.find('.item'); + + items.each(function (index, item) { + item = $(item); + + if (item.position().top >= 0) { + var previous = item.prev(); + + // if there are no items before the current one + if (previous.length > 0) { + scrollToItem(scrollArea, previous); + } + + return false; + } + }); + + // if there was no jump jump to the last element + if (items.length > 0) { + scrollToItem(scrollArea, items.last()); } - } - if (items.length > 0) { - scrollToItem(scrollArea, items.last()); - } - }); - var getActiveItem = (function(scrollArea) { - var item$__38; - var items = scrollArea.find('.item'); - for (var $__3 = items[$traceurRuntime.toProperty(Symbol.iterator)](), - $__4; !($__4 = $__3.next()).done; ) { - item$__38 = $__4.value; - { - item$__38 = $(item$__38); - if ((item$__38.height() + item$__38.position().top) > 30) { - return item$__38; - } + }; + + var getActiveItem = function (scrollArea) { + var items = scrollArea.find('.item'); + + items.each(function (index, item) { + item = $(item); + + // 130px of the item should be visible + if ((item.height() + item.position().top) > 30) { + return item; + } + }); + }; + + var toggleUnread = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.keep-unread').trigger('click'); + }; + + var toggleStar = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.star').trigger('click'); + }; + + var expandItem = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.title').trigger('click'); + }; + + var openLink = function (scrollArea) { + var item = getActiveItem(scrollArea).find('.title a'); + item.trigger('click'); // mark read + window.open(item.attr('href'), '_blank'); + }; + + $(document).keyup(function (event) { + if (noInputFocused($(':focus')) && noModifierKey(event)) { + var keyCode = event.keyCode; + var scrollArea = $('#app-content'); + + // j, n, right arrow + if ([74, 78, 33].indexOf(keyCode) >= 0) { + + event.preventDefault(); + scrollToNextItem(scrollArea); + + // k, p, left arrow + } else if ([75, 80, 37].indexOf(keyCode) >= 0) { + + event.preventDefault(); + scrollToPreviousItem(scrollArea); + + // u + } else if ([85].indexOf(keyCode) >= 0) { + + event.preventDefault(); + toggleUnread(scrollArea); + + // e + } else if ([69].indexOf(keyCode) >= 0) { + + event.preventDefault(); + expandItem(scrollArea); + + // s, i, l + } else if ([73, 83, 76].indexOf(keyCode) >= 0) { + + event.preventDefault(); + toggleStar(scrollArea); + + // h + } else if ([72].indexOf(keyCode) >= 0) { + + event.preventDefault(); + toggleStar(scrollArea); + scrollToNextItem(scrollArea); + + // o + } else if ([79].indexOf(keyCode) >= 0) { + + event.preventDefault(); + openLink(scrollArea); + + } + } - } }); - var toggleUnread = (function(scrollArea) { - var item = getActiveItem(scrollArea); - item.find('.keep_unread').trigger('click'); - }); - var toggleStar = (function(scrollArea) { - var item = getActiveItem(scrollArea); - item.find('.item_utils .star').trigger('click'); - }); - var expandItem = (function(scrollArea) { - var item = getActiveItem(scrollArea); - item.find('.item_heading a').trigger('click'); - }); - var openLink = (function(scrollArea) { - var item = getActiveItem(scrollArea).find('.item_title a'); - item.trigger('click'); - window.open(item.attr('href'), '_blank'); - }); - $(document).keyup((function(event) { - var keyCode$__39; - var scrollArea$__40; - if (noInputFocused($(':focus')) && noModifierKey(event)) { - keyCode$__39 = event.keyCode; - scrollArea$__40 = $('#app-content'); - if ([74, 78, 33].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - scrollToNextItem(scrollArea$__40); - } else if ([75, 80, 37].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - scrollToPreviousItem(scrollArea$__40); - } else if ([85].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - toggleUnread(scrollArea$__40); - } else if ([69].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - expandItem(scrollArea$__40); - } else if ([73, 83, 76].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - toggleStar(scrollArea$__40); - } else if ([72].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - toggleStar(scrollArea$__40); - scrollToNextItem(scrollArea$__40); - } else if ([79].indexOf(keyCode$__39) >= 0) { - event.preventDefault(); - openLink(scrollArea$__40); - } - } - })); - }(window, document, $)); - var call = Function.prototype.call.bind(Function.prototype.call); - var hasOwn = Object.prototype.hasOwnProperty; - window.items = function(obj) { + +}(window, document, $)); +app.run(["$document", "$rootScope", function ($document, $rootScope) { 'use strict'; - var $__2; - return ($__2 = {}, Object.defineProperty($__2, Symbol.iterator, { - value: function() { - return ($traceurRuntime.initGeneratorFunction(function $__52() { - var $__53, - $__54, - $__55, - $__56, - x$__41; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__53 = []; - $__54 = obj; - for ($__55 in $__54) - $__53.push($__55); - $ctx.state = 15; - break; - case 15: - $__56 = 0; - $ctx.state = 13; - break; - case 13: - $ctx.state = ($__56 < $__53.length) ? 9 : -2; - break; - case 4: - $__56++; - $ctx.state = 13; - break; - case 9: - x$__41 = $__53[$traceurRuntime.toProperty($__56)]; - $ctx.state = 10; - break; - case 10: - $ctx.state = (!($traceurRuntime.toProperty(x$__41) in $__54)) ? 4 : 7; - break; - case 7: - $ctx.state = (call(hasOwn, obj, x$__41)) ? 1 : 4; - break; - case 1: - $ctx.state = 2; - return [x$__41, obj[$traceurRuntime.toProperty(x$__41)]]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__52, this); - }))(); - }, - configurable: true, - enumerable: true, - writable: true - }), $__2); - }; - window.enumerate = function(list) { - 'use strict'; - var $__2; - return ($__2 = {}, Object.defineProperty($__2, Symbol.iterator, { - value: function() { - return ($traceurRuntime.initGeneratorFunction(function $__52() { - var counter$__42; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - counter$__42 = 0; - $ctx.state = 7; - break; - case 7: - $ctx.state = (counter$__42 < list.length) ? 1 : -2; - break; - case 4: - counter$__42 += 1; - $ctx.state = 7; - break; - case 1: - $ctx.state = 2; - return [counter$__42, list[$traceurRuntime.toProperty(counter$__42)]]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__52, this); - }))(); - }, - configurable: true, - enumerable: true, - writable: true - }), $__2); - }; - window.reverse = function(list) { - 'use strict'; - var $__2; - return ($__2 = {}, Object.defineProperty($__2, Symbol.iterator, { - value: function() { - return ($traceurRuntime.initGeneratorFunction(function $__52() { - var counter$__43; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - counter$__43 = list.length; - $ctx.state = 7; - break; - case 7: - $ctx.state = (counter$__43 >= 0) ? 1 : -2; - break; - case 4: - counter$__43 -= 1; - $ctx.state = 7; - break; - case 1: - $ctx.state = 2; - return list[$traceurRuntime.toProperty(counter$__43)]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__52, this); - }))(); - }, - configurable: true, - enumerable: true, - writable: true - }), $__2); - }; - app.run((["$document", "$rootScope", function($document, $rootScope) { - 'use strict'; - $document.click((function(event) { - $rootScope.$broadcast('documentClicked', event); - })); - }])); - app.directive('appNavigationEntryUtils', (function() { + $document.click(function (event) { + $rootScope.$broadcast('documentClicked', event); + }); +}]); + +app.directive('appNavigationEntryUtils', function () { 'use strict'; return { - restrict: 'C', - link: (function(scope, elm) { - var menu = elm.siblings('.app-navigation-entry-menu'); - var button = $(elm).find('.app-navigation-entry-utils-menu-button button'); - button.click((function() { - menu.toggleClass('open'); - })); - scope.$on('documentClicked', (function(scope, event) { - if (event.target !== button[0]) { - menu.removeClass('open'); - } - })); - }) - }; - })); - app.directive('newsAudio', (function() { + restrict: 'C', + link: function (scope, elm) { + var menu = elm.siblings('.app-navigation-entry-menu'); + var button = $(elm) + .find('.app-navigation-entry-utils-menu-button button'); + + button.click(function () { + menu.toggleClass('open'); + }); + + scope.$on('documentClicked', function (scope, event) { + if (event.target !== button[0]) { + menu.removeClass('open'); + } + }); + } + }; +}); +app.directive('newsAudio', function () { 'use strict'; return { - restrict: 'E', - scope: { - src: '@', - type: '@' - }, - transclude: true, - template: '' + '<audio controls="controls" preload="none" ng-hide="cantPlay()">' + '<source ng-src="{{ src|trustUrl }}">' + '</audio>' + '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' + 'ng-transclude></a>', - link: (function(scope, elm) { - var source = elm.children().children('source')[0]; - var cantPlay = false; - source.addEventListener('error', (function() { - scope.$apply((function() { - cantPlay = true; - })); - })); - scope.cantPlay = (function() { - return cantPlay; - }); - }) + restrict: 'E', + scope: { + src: '@', + type: '@' + }, + transclude: true, + template: '' + + '<audio controls="controls" preload="none" ng-hide="cantPlay()">' + + '<source ng-src="{{ src|trustUrl }}">' + + '</audio>' + + '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' + + 'ng-transclude></a>', + link: function (scope, elm) { + var source = elm.children().children('source')[0]; + var cantPlay = false; + + source.addEventListener('error', function () { + scope.$apply(function () { + cantPlay = true; + }); + }); + + scope.cantPlay = function () { + return cantPlay; + }; + } }; - })); - app.directive('newsAutoFocus', (function() { +}); +app.directive('newsAutoFocus', function () { 'use strict'; - return (function(scope, elem, attrs) { - if (attrs.newsAutofocus) { - $(attrs.newsAutofocus).focus(); - } else { - elem.focus(); - } - }); - })); - app.directive('newsBindHtmlUnsafe', (function() { + return function (scope, elem, attrs) { + if (attrs.newsAutofocus) { + $(attrs.newsAutofocus).focus(); + } else { + elem.focus(); + } + }; +}); +app.directive('newsBindHtmlUnsafe', function () { 'use strict'; - return (function(scope, elem, attr) { - scope.$watch(attr.newsBindHtmlUnsafe, (function() { - elem.html(scope.$eval(attr.newsBindHtmlUnsafe)); - })); - }); - })); - app.directive('newsDraggable', (function() { + + return function (scope, elem, attr) { + scope.$watch(attr.newsBindHtmlUnsafe, function () { + elem.html(scope.$eval(attr.newsBindHtmlUnsafe)); + }); + }; +}); +app.directive('newsDraggable', function () { 'use strict'; - return (function(scope, elem, attr) { - var options = scope.$eval(attr.newsDraggable); - if (angular.isDefined(options)) { - elem.draggable(options); - } else { - elem.draggable(); - } - }); - })); - app.directive('newsDroppable', (["$rootScope", function($rootScope) { + + return function (scope, elem, attr) { + var options = scope.$eval(attr.newsDraggable); + + if (angular.isDefined(options)) { + elem.draggable(options); + } else { + elem.draggable(); + } + }; +}); +app.directive('newsDroppable', ["$rootScope", function ($rootScope) { 'use strict'; - return (function(scope, elem, attr) { - var details = { - accept: '.feed', - hoverClass: 'drag-and-drop', - greedy: true, - drop: (function(event, ui) { - $('.drag-and-drop').removeClass('drag-and-drop'); - var data = { - folderId: parseInt(elem.data('id'), 10), - feedId: parseInt($(ui.draggable).data('id'), 10) - }; - $rootScope.$broadcast('moveFeedToFolder', data); - scope.$apply(attr.droppable); - }) - }; - elem.droppable(details); - }); - }])); - app.directive('newsFocus', (["$timeout", "$interpolate", function($timeout, $interpolate) { + + return function (scope, elem, attr) { + var details = { + accept: '.feed', + hoverClass: 'drag-and-drop', + greedy: true, + drop: function (event, ui) { + + $('.drag-and-drop').removeClass('drag-and-drop'); + + var data = { + folderId: parseInt(elem.data('id'), 10), + feedId: parseInt($(ui.draggable).data('id'), 10) + }; + + $rootScope.$broadcast('moveFeedToFolder', data); + scope.$apply(attr.droppable); + } + }; + + elem.droppable(details); + }; +}]); +app.directive('newsFocus', ["$timeout", "$interpolate", function ($timeout, $interpolate) { 'use strict'; - return (function(scope, elem, attrs) { - elem.click((function() { - var toReadd = $($interpolate(attrs.newsFocus)(scope)); - $timeout((function() { - toReadd.focus(); - }), 500); - })); - }); - }])); - app.directive('newsReadFile', (function() { + + return function (scope, elem, attrs) { + elem.click(function () { + var toReadd = $($interpolate(attrs.newsFocus)(scope)); + $timeout(function () { + toReadd.focus(); + }, 500); + }); + }; + +}]); +app.directive('newsReadFile', function () { 'use strict'; - return (function(scope, elem, attr) { - elem.change((function() { - var file = elem[0].files[0]; - var reader = new FileReader(); - reader.onload = (function(event) { - elem[0].value = 0; - scope.$fileContent = event.target.result; - scope.$apply(attr.newsReadFile); + + return function (scope, elem, attr) { + + elem.change(function () { + + var file = elem[0].files[0]; + var reader = new FileReader(); + + reader.onload = function (event) { + elem[0].value = 0; + // FIXME: is there a more flexible solution where we dont have + // to bind the file to scope? + scope.$fileContent = event.target.result; + scope.$apply(attr.newsReadFile); + }; + + reader.readAsText(file); }); - reader.readAsText(file); - })); - }); - })); - app.directive('newsScroll', (["$timeout", function($timeout) { + }; +}); +app.directive('newsScroll', ["$timeout", function ($timeout) { 'use strict'; - var autoPage = (function(enabled, limit, elem, scope) { - var counter$__44; - var articles$__45; - var item$__47; - if (enabled) { - counter$__44 = 0; - articles$__45 = elem.find('.item'); - for (var i$__46 = articles$__45.length - 1; i$__46 >= 0; i$__46 -= 1) { - item$__47 = $(articles$__45[$traceurRuntime.toProperty(i$__46)]); - if (counter$__44 >= limit) { - break; - } - if (item$__47.position().top < 0) { - scope.$apply(scope.newsScrollAutoPage); - break; - } - counter$__44 += 1; + + // autopaging + var autoPage = function (enabled, limit, elem, scope) { + if (enabled) { + var counter = 0; + var articles = elem.find('.item'); + + for (var i = articles.length - 1; i >= 0; i -= 1) { + var item = $(articles[i]); + + + // if the counter is higher than the size it means + // that it didnt break to auto page yet and that + // there are more items, so break + if (counter >= limit) { + break; + } + + // this is only reached when the item is not is + // below the top and we didnt hit the factor yet so + // autopage and break + if (item.position().top < 0) { + scope.$apply(scope.newsScrollAutoPage); + break; + } + + counter += 1; + } } - } - }); - var markRead = (function(enabled, elem, scope) { - var ids$__48; - var articles$__49; - var item$__51; - if (enabled) { - ids$__48 = []; - articles$__49 = elem.find('.item:not(.read)'); - for (var i$__50 = 0; i$__50 < articles$__49.length; i$__50 += 1) { - item$__51 = $(articles$__49[$traceurRuntime.toProperty(i$__50)]); - if (item$__51.position().top <= -50) { - ids$__48.push(parseInt(item$__51.data('id'), 10)); - } else { - break; - } + }; + + // mark read + var markRead = function (enabled, elem, scope) { + if (enabled) { + var ids = []; + var articles = elem.find('.item:not(.read)'); + + articles.each(function(index, article) { + var item = $(article); + + if (item.position().top <= -50) { + ids.push(parseInt(item.data('id'), 10)); + } else { + return false; + } + }); + + scope.itemIds = ids; + scope.$apply(scope.newsScrollMarkRead); } - scope.itemIds = ids$__48; - scope.$apply(scope.newsScrollMarkRead); - } - }); + }; + return { - restrict: 'A', - scope: { - 'newsScrollAutoPage': '&', - 'newsScrollMarkRead': '&', - 'newsScrollEnabledMarkRead': '=', - 'newsScrollEnabledAutoPage': '=', - 'newsScrollMarkReadTimeout': '@', - 'newsScrollTimeout': '@', - 'newsScrollAutoPageWhenLeft': '@' - }, - link: (function(scope, elem) { - var allowScroll = true; - var scrollTimeout = scope.newsScrollTimeout || 1; - var markReadTimeout = scope.newsScrollMarkReadTimeout || 1; - var autoPageLimit = scope.newsScrollAutoPageWhenLeft || 50; - var scrollHandler = (function() { - if (allowScroll) { - allowScroll = false; - $timeout((function() { - allowScroll = true; - }), scrollTimeout * 1000); - autoPage(scope.newsScrollEnabledAutoPage, autoPageLimit, elem, scope); - $timeout((function() { - markRead(scope.newsScrollEnabledMarkRead, elem, scope); - }), markReadTimeout * 1000); - } - }); - elem.on('scroll', scrollHandler); - scope.$on('$destroy', (function() { - elem.off('scroll', scrollHandler); - })); - }) - }; - }])); - app.directive('newsStopPropagation', (function() { - 'use strict'; + restrict: 'A', + scope: { + 'newsScrollAutoPage': '&', + 'newsScrollMarkRead': '&', + 'newsScrollEnabledMarkRead': '=', + 'newsScrollEnabledAutoPage': '=', + 'newsScrollMarkReadTimeout': '@', // optional, defaults to 1 second + 'newsScrollTimeout': '@', // optional, defaults to 1 second + 'newsScrollAutoPageWhenLeft': '@' // optional, defaults to 50 + }, + link: function (scope, elem) { + var allowScroll = true; + + var scrollTimeout = scope.newsScrollTimeout || 1; + var markReadTimeout = scope.newsScrollMarkReadTimeout || 1; + var autoPageLimit = scope.newsScrollAutoPageWhenLeft || 50; + + var scrollHandler = function () { + // allow only one scroll event to trigger at once + if (allowScroll) { + allowScroll = false; + + $timeout(function () { + allowScroll = true; + }, scrollTimeout*1000); + + autoPage(scope.newsScrollEnabledAutoPage, + autoPageLimit, + elem, + scope); + + // allow user to undo accidental scroll + $timeout(function () { + markRead(scope.newsScrollEnabledMarkRead, + elem, + scope); + }, markReadTimeout*1000); + } + + }; + + elem.on('scroll', scrollHandler); + + // remove scroll handler if element is destroyed + scope.$on('$destroy', function () { + elem.off('scroll', scrollHandler); + }); + } + }; +}]); +app.directive('newsStopPropagation', function () { + 'use strict'; return { - restrict: 'A', - link: (function(scope, element) { - element.bind('click', (function(e) { - e.stopPropagation(); - })); - }) - }; - })); - app.directive('newsTimeout', (["$timeout", function($timeout) { + restrict: 'A', + link: function (scope, element) { + element.bind('click', function (event) { + event.stopPropagation(); + }); + } + }; + }); +app.directive('newsTimeout', ["$timeout", function ($timeout) { 'use strict'; + return { - restrict: 'A', - scope: {'newsTimeout': '&'}, - link: (function(scope) { - var seconds = 7; - var timer = $timeout(scope.newsTimeout, seconds * 1000); - scope.$on('$destroy', (function() { - $timeout.cancel(timer); - })); - }) - }; - }])); - app.directive('newsTitleUnreadCount', (["$window", function($window) { + restrict: 'A', + scope: { + 'newsTimeout': '&' + }, + link: function (scope) { + var seconds = 7; + var timer = $timeout(scope.newsTimeout, seconds * 1000); + + // remove timeout if element is being removed by + // for instance clicking on the x button + scope.$on('$destroy', function () { + $timeout.cancel(timer); + }); + } + }; +}]); +app.directive('newsTitleUnreadCount', ["$window", function ($window) { 'use strict'; + var baseTitle = $window.document.title; + return { - restrict: 'E', - scope: {unreadCount: '@'}, - link: (function(scope, elem, attrs) { - attrs.$observe('unreadCount', (function(value) { - var titles = baseTitle.split('-'); - if (value !== '0') { - $window.document.title = titles[0] + '(' + value + ') - ' + titles[1]; - } - })); - }) - }; - }])); - app.directive('newsTriggerClick', (function() { + restrict: 'E', + scope: { + unreadCount: '@' + }, + link: function (scope, elem, attrs) { + attrs.$observe('unreadCount', function (value) { + var titles = baseTitle.split('-'); + + if (value !== '0') { + $window.document.title = titles[0] + + '(' + value + ') - ' + titles[1]; + } + }); + } + }; + +}]); +app.directive('newsTriggerClick', function () { 'use strict'; - return (function(scope, elm, attr) { - elm.click((function() { - $(attr.newsTriggerClick).trigger('click'); - })); - }); - })); -})(window, document, angular, jQuery, OC, oc_requesttoken); + + return function (scope, elm, attr) { + elm.click(function () { + $(attr.newsTriggerClick).trigger('click'); + }); + }; + +}); + +})(window, document, angular, jQuery, OC, oc_requesttoken);
\ No newline at end of file diff --git a/js/build/app.min.js b/js/build/app.min.js index b5a83b82b..ac91f09eb 100644 --- a/js/build/app.min.js +++ b/js/build/app.min.js @@ -1 +1 @@ -!function(a,b,c,d,e,f,g){"use strict";var h=c.module("News",["ngRoute","ngSanitize","ngAnimate"]);h.config(["$routeProvider","$provide","$httpProvider",function(a,b,c){var d={FEED:0,FOLDER:1,STARRED:2,SUBSCRIPTIONS:3,SHARED:4};b.constant("REFRESH_RATE",60),b.constant("ITEM_BATCH_SIZE",50),b.constant("BASE_URL",e.generateUrl("/apps/news")),b.constant("FEED_TYPE",d),b.factory("CSRFInterceptor",["$q","BASE_URL",function(a,b){return{request:function(c){return 0===c.url.indexOf(b)&&(c.headers.requesttoken=f),c||a.when(c)}}}]),c.interceptors.push("CSRFInterceptor");var h=function(a){return{data:["$http","$route","$q","BASE_URL","ITEM_BATCH_SIZE",function(b,c,d,e,f){var h={type:a,limit:f};c.current.params.id!==g&&(h.id=c.current.params.id);var i=d.defer();return b({url:e+"/items",method:"GET",params:h}).success(function(a){i.resolve(a)}),i.promise}]}};a.when("/items",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.SUBSCRIPTIONS),type:d.SUBSCRIPTIONS}).when("/items/starred",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.STARRED),type:d.STARRED}).when("/items/feeds/:id",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.FEED),type:d.FEED}).when("/items/folders/:id",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.FOLDER),type:d.FOLDER})}]),h.run(["$rootScope","$location","$http","$q","$interval","Loading","ItemResource","FeedResource","FolderResource","SettingsResource","Publisher","BASE_URL","FEED_TYPE","REFRESH_RATE",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){f.setLoading("global",!0),k.subscribe(g).toChannels("items","newestItemId","starred"),k.subscribe(i).toChannels("folders"),k.subscribe(h).toChannels("feeds"),k.subscribe(j).toChannels("settings");var o=d.defer();c.get(l+"/settings").success(function(a){k.publishAll(a),o.resolve()});var p=d.defer(),q=b.path();c.get(l+"/feeds/active").success(function(a){var c;switch(a.activeFeed.type){case m.FEED:c="/items/feeds/"+a.activeFeed.id;break;case m.FOLDER:c="/items/folders/"+a.activeFeed.id;break;case m.STARRED:c="/items/starred";break;default:c="/items"}/^\/items(\/(starred|feeds\/\d+|folders\/\d+))?\/?$/.test(q)||b.path(c),p.resolve()});var r=d.defer();c.get(l+"/folders").success(function(a){k.publishAll(a),r.resolve()});var s=d.defer();c.get(l+"/feeds").success(function(a){k.publishAll(a),s.resolve()}),d.all([o.promise,p.promise,s.promise,r.promise]).then(function(){f.setLoading("global",!1)}),e(function(){c.get(l+"/feeds"),c.get(l+"/folders")},1e3*n),a.$on("$routeChangeStart",function(){f.setLoading("content",!0)}),a.$on("$routeChangeSuccess",function(){f.setLoading("content",!1)}),a.$on("$routeChangeError",function(){b.path("/items")})}]),h.controller("AppController",["Loading","FeedResource","FolderResource",function(a,b,c){this.loading=a,this.isFirstRun=function(){return 0===b.size()&&0===c.size()}}]),h.controller("ContentController",["Publisher","FeedResource","ItemResource","SettingsResource","data","$route","$routeParams",function(a,b,c,d,e,f,h){var i=this;c.clear(),a.publishAll(e),this.isAutoPagingEnabled=!0,this.getItems=function(){return c.getAll()},this.toggleStar=function(a){c.toggleStar(a)},this.toggleItem=function(a){i.isCompactView()&&(a.show=!a.show)},this.markRead=function(a){var d=c.get(a);d.keepUnread||(c.markItemRead(a),b.markItemOfFeedRead(d.feedId))},this.getFeed=function(a){return b.getById(a)},this.toggleKeepUnread=function(a){var d=c.get(a);d.unread||(b.markItemOfFeedUnread(d.feedId),c.markItemRead(a,!1)),d.keepUnread=!d.keepUnread},this.orderBy=function(){return d.get("oldestFirst")?"id":"-id"},this.isCompactView=function(){return d.get("compact")},this.autoPagingEnabled=function(){return i.isAutoPagingEnabled},this.markReadEnabled=function(){return!d.get("preventReadOnScroll")},this.scrollRead=function(a){for(var d,e,f,g=[],h=[],i=a[$traceurRuntime.toProperty(Symbol.iterator)]();!(f=i.next()).done;)d=f.value,e=c.get(d),e.keepUnread||(g.push(d),h.push(e.feedId));b.markItemsOfFeedsRead(h),c.markItemsRead(g)},this.autoPage=function(){i.isAutoPagingEnabled=!1;var b=f.current.$$route.type,d=h.id;c.autoPage(b,d).success(function(b){a.publishAll(b),b.items.length>0&&(i.isAutoPagingEnabled=!0)}).error(function(){i.isAutoPagingEnabled=!0})},this.getRelativeDate=function(a){var b,c;return a!==g&&""!==a?(b=d.get("language"),c=moment.unix(a).locale(b).fromNow()+""):""}}]),h.controller("NavigationController",["$route","FEED_TYPE","FeedResource","FolderResource","ItemResource","SettingsResource",function(a,b,c,d,e,f){var h=this;this.feedError="",this.folderError="",this.getFeeds=function(){return c.getAll()},this.getFolders=function(){return d.getAll()},this.markFolderRead=function(a){var b;c.markFolderRead(a);for(var d,f=c.getByFolderId(a)[$traceurRuntime.toProperty(Symbol.iterator)]();!(d=f.next()).done;)b=d.value,e.markFeedRead(b.id)},this.markFeedRead=function(a){e.markFeedRead(a),c.markFeedRead(a)},this.markRead=function(){e.markRead(),c.markRead()},this.isShowAll=function(){return f.get("showAll")},this.getFeedsOfFolder=function(a){return c.getByFolderId(a)},this.getUnreadCount=function(){return c.getUnreadCount()},this.getFeedUnreadCount=function(a){return c.getById(a).unreadCount},this.getFolderUnreadCount=function(a){return c.getFolderUnreadCount(a)},this.getStarredCount=function(){return e.getStarredCount()},this.toggleFolder=function(a){d.toggleOpen(a)},this.hasFeeds=function(a){return c.getFolderUnreadCount(a)!==g},this.subFeedActive=function(d){var e,f=a.current.$$route.type;return f===b.FEED&&(e=c.getById(a.current.params.id),e.folderId===d)?!0:!1},this.isSubscriptionsActive=function(){return a.current&&a.current.$$route.type===b.SUBSCRIPTIONS},this.isStarredActive=function(){return a.current&&a.current.$$route.type===b.STARRED},this.isFolderActive=function(c){var d=parseInt(a.current.params.id,10);return a.current&&a.current.$$route.type===b.FOLDER&&d===c},this.isFeedActive=function(c){var d=parseInt(a.current.params.id,10);return a.current&&a.current.$$route.type===b.FEED&&d===c},this.folderNameExists=function(a){return d.get(a)!==g},this.isAddingFolder=function(){return!0},this.createFolder=function(a){console.log(a.name),a.name=""},this.createFeed=function(a){h.newFolder=!1,console.log(a.url+a.folder),a.url=""},this.renameFeed=function(a){a.editing=!1},this.renameFolder=function(){console.log("TBD")},this.deleteFeed=function(a){a.deleted=!0},this.undeleteFeed=function(a){a.deleted=!1},this.removeFeed=function(a){console.log("remove "+a)},this.deleteFolder=function(a){console.log(a)},this.moveFeed=function(a,b){console.log(a+b)}}]),h.controller("SettingsController",["$route","SettingsResource","FeedResource",function(a,b,c){var d=this;this.importing=!1,this.opmlImportError=!1,this.articleImportError=!1;var e=function(c,d){b.set(c,d),["showAll","oldestFirst"].indexOf(c)>=0&&a.reload()};this.toggleSetting=function(a){e(a,!d.getSetting(a))},this.getSetting=function(a){return b.get(a)},this.feedSize=function(){return c.size()},this.importOpml=function(a){console.log(a)},this.importArticles=function(a){console.log(a)}}]),h.filter("trustUrl",["$sce",function(a){return function(b){return a.trustAsResourceUrl(b)}}]),h.filter("unreadCountFormatter",function(){return function(a){return a>999?"999+":a}}),h.factory("FeedResource",["Resource","$http","BASE_URL",function(a,b,c){var d=function(a,b){$traceurRuntime.superCall(this,e.prototype,"constructor",[a,b,"url"]),this.ids={},this.unreadCount=0,this.folderUnreadCount={},this.folderIds={},this.deleted=null},e=d;return $traceurRuntime.createClass(d,{receive:function(a){$traceurRuntime.superCall(this,e.prototype,"receive",[a]),this.updateUnreadCache(),this.updateFolderCache()},updateUnreadCache:function(){var a,b,c,d,e,f;this.unreadCount=0,this.folderUnreadCount={};for(var h,i=this.values[$traceurRuntime.toProperty(Symbol.iterator)]();!(h=i.next()).done;)f=h.value,f.unreadCount&&(this.unreadCount+=f.unreadCount),f.folderId!==g&&($traceurRuntime.setProperty(this.folderUnreadCount,f.folderId,this.folderUnreadCount[$traceurRuntime.toProperty(f.folderId)]||0),a=this.folderUnreadCount,b=f.folderId,c=f.unreadCount,d=a[$traceurRuntime.toProperty(b)],e=d+c,$traceurRuntime.setProperty(a,b,e),e)},updateFolderCache:function(){var a;this.folderIds={};for(var b,c=this.values[$traceurRuntime.toProperty(Symbol.iterator)]();!(b=c.next()).done;)a=b.value,$traceurRuntime.setProperty(this.folderIds,a.folderId,this.folderIds[$traceurRuntime.toProperty(a.folderId)]||[]),this.folderIds[$traceurRuntime.toProperty(a.folderId)].push(a)},add:function(a){$traceurRuntime.superCall(this,e.prototype,"add",[a]),a.id!==g&&$traceurRuntime.setProperty(this.ids,a.id,this.hashMap[$traceurRuntime.toProperty(a.url)])},"delete":function(a){var b=this.get(a);return this.deleted=b,delete this.ids[$traceurRuntime.toProperty(b.id)],$traceurRuntime.superCall(this,e.prototype,"delete",[a]),this.updateUnreadCache(),this.updateFolderCache(),this.http.delete(this.BASE_URL+"/feeds/"+b.id)},markRead:function(){for(var a,b,c=this.values[$traceurRuntime.toProperty(Symbol.iterator)]();!(b=c.next()).done;)a=b.value,a.unreadCount=0;this.unreadCount=0,this.folderUnreadCount={}},markFeedRead:function(a){this.ids[$traceurRuntime.toProperty(a)].unreadCount=0,this.updateUnreadCache()},markFolderRead:function(a){for(var b,c,d=this.values[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=d.next()).done;)b=c.value,b.folderId===a&&(b.unreadCount=0);this.updateUnreadCache()},markItemOfFeedRead:function(a){this.ids[$traceurRuntime.toProperty(a)].unreadCount-=1,this.updateUnreadCache()},markItemsOfFeedsRead:function(a){for(var b,c,d=a[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=d.next()).done;)b=c.value,this.ids[$traceurRuntime.toProperty(b)].unreadCount-=1;this.updateUnreadCache()},markItemOfFeedUnread:function(a){this.ids[$traceurRuntime.toProperty(a)].unreadCount+=1,this.updateUnreadCache()},getUnreadCount:function(){return this.unreadCount},getFolderUnreadCount:function(a){return this.folderUnreadCount[$traceurRuntime.toProperty(a)]},getByFolderId:function(a){return this.folderIds[$traceurRuntime.toProperty(a)]||[]},getById:function(a){return this.ids[$traceurRuntime.toProperty(a)]},rename:function(a,b){var c=this.get(a);return c.title=b,this.http({method:"POST",url:this.BASE_URL+"/feeds/"+c.id+"/rename",data:{feedTitle:b}})},move:function(a,b){var c=this.get(a);return c.folderId=b,this.updateFolderCache(),this.http({method:"POST",url:this.BASE_URL+"/feeds/"+c.id+"/move",data:{parentFolderId:b}})},create:function(a,b){var c=void 0!==arguments[2]?arguments[2]:null;c&&(c=c.toUpperCase());var d={url:a,folderId:b,title:c,faviconLink:"../css/loading.gif"};this.get(a)||this.add(d),this.updateFolderCache(),console.log(d)},undoDelete:function(){return this.deleted?(this.add(this.deleted),this.http.post(this.BASE_URL+"/feeds/"+this.deleted.id+"/restore")):(this.updateFolderCache(),void this.updateUnreadCache())}},{},a),new d(b,c)}]),h.factory("FolderResource",["Resource","$http","BASE_URL",function(a,b,c){var d=function(a,b){$traceurRuntime.superCall(this,e.prototype,"constructor",[a,b,"name"]),this.deleted=null},e=d;return $traceurRuntime.createClass(d,{"delete":function(a){var b=this.get(a);return this.deleted=b,$traceurRuntime.superCall(this,e.prototype,"delete",[a]),this.http.delete(this.BASE_URL+"/folders/"+b.id)},toggleOpen:function(a){var b=this.get(a);return b.opened=!b.opened,this.http({url:this.BASE_URL+"/folders/"+b.id+"/open",method:"POST",data:{folderId:b.id,open:b.opened}})},rename:function(a,b){b=b.toUpperCase();var c=this.get(a);return this.get(b)||(c.name=b,delete this.hashMap[$traceurRuntime.toProperty(a)],$traceurRuntime.setProperty(this.hashMap,b,c)),this.http({url:this.BASE_URL+"/folders/"+c.id+"/rename",method:"POST",data:{folderName:b}})},create:function(a){var b;return a=a.toUpperCase(),this.get(a)||(b={name:a},this.add(b)),this.http({url:this.BASE_URL+"/folders",method:"POST",data:{folderName:a}})},undoDelete:function(){return this.deleted?(this.add(this.deleted),this.http.post(this.BASE_URL+"/folders/"+this.deleted.id+"/restore")):void 0}},{},a),new d(b,c)}]),h.factory("ItemResource",["Resource","$http","BASE_URL","ITEM_BATCH_SIZE",function(a,b,c,d){var e=function(a,b,c){$traceurRuntime.superCall(this,f.prototype,"constructor",[a,b]),this.starredCount=0,this.batchSize=c},f=e;return $traceurRuntime.createClass(e,{receive:function(a,b){switch(b){case"newestItemId":this.newestItemId=a;break;case"starred":this.starredCount=a;break;default:$traceurRuntime.superCall(this,f.prototype,"receive",[a,b])}},getNewestItemId:function(){return this.newestItemId},getStarredCount:function(){return this.starredCount},star:function(a){var b=void 0!==arguments[1]?arguments[1]:!0,c=this.get(a),d=this.BASE_URL+"/items/"+c.feedId+"/"+c.guidHash+"/star";return c.starred=b,b?this.starredCount+=1:this.starredCount-=1,this.http({url:d,method:"POST",data:{isStarred:b}})},toggleStar:function(a){this.get(a).starred?this.star(a,!1):this.star(a,!0)},markItemRead:function(a){var b=void 0!==arguments[1]?arguments[1]:!0;return this.get(a).unread=!b,this.http({url:this.BASE_URL+"/items/"+a+"/read",method:"POST",data:{isRead:b}})},markItemsRead:function(a){for(var b,c,d=a[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=d.next()).done;)b=c.value,this.get(b).unread=!1;return this.http({url:this.BASE_URL+"/items/read/multiple",method:"POST",data:{itemIds:a}})},markFeedRead:function(a){for(var b,c,d=void 0!==arguments[1]?arguments[1]:!0,e=this.values.filter(function(b){return b.feedId===a})[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=e.next()).done;)b=c.value,b.unread=!d;return this.http.post(this.BASE_URL+"/feeds/"+a+"/read")},markRead:function(){for(var a,b,c=this.values[$traceurRuntime.toProperty(Symbol.iterator)]();!(b=c.next()).done;)a=b.value,a.unread=!1;return this.http.post(this.BASE_URL+"/items/read")},autoPage:function(a,b){return this.http({url:this.BASE_URL+"/items",method:"GET",params:{type:a,id:b,offset:this.size(),limit:this.batchSize}})}},{},a),new e(b,c,d)}]),h.service("Loading",function(){var a=this;this.loading={global:!1,content:!1,autopaging:!1},this.setLoading=function(b,c){$traceurRuntime.setProperty(a.loading,b,c)},this.isLoading=function(b){return a.loading[$traceurRuntime.toProperty(b)]}}),h.service("Publisher",function(){var a=this;this.channels={},this.subscribe=function(b){return{toChannels:function(){for(var c,d=[],e=0;e<arguments.length;e++)$traceurRuntime.setProperty(d,e,arguments[$traceurRuntime.toProperty(e)]);for(var f,g=d[$traceurRuntime.toProperty(Symbol.iterator)]();!(f=g.next()).done;)c=f.value,$traceurRuntime.setProperty(a.channels,c,a.channels[$traceurRuntime.toProperty(c)]||[]),a.channels[$traceurRuntime.toProperty(c)].push(b)}}},this.publishAll=function(b){for(var c,d,e,f,h,i=items(b)[$traceurRuntime.toProperty(Symbol.iterator)]();!(h=i.next()).done;)if(c=h.value,d=c[0],e=c[1],a.channels[$traceurRuntime.toProperty(d)]!==g)for(var j,k=a.channels[$traceurRuntime.toProperty(d)][$traceurRuntime.toProperty(Symbol.iterator)]();!(j=k.next()).done;)f=j.value,f.receive(e,d)}}),h.factory("Resource",function(){var a=function(a,b){var c=void 0!==arguments[2]?arguments[2]:"id";this.id=c,this.values=[],this.hashMap={},this.http=a,this.BASE_URL=b};return $traceurRuntime.createClass(a,{receive:function(a){for(var b,c,d=a[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=d.next()).done;)b=c.value,this.add(b)},add:function(a){var b,c,d,e=this.hashMap[$traceurRuntime.toProperty(a[$traceurRuntime.toProperty(this.id)])];if(e===g)this.values.push(a),$traceurRuntime.setProperty(this.hashMap,a[$traceurRuntime.toProperty(this.id)],a);else for(var f,h=items(a)[$traceurRuntime.toProperty(Symbol.iterator)]();!(f=h.next()).done;)b=f.value,c=b[0],d=b[1],$traceurRuntime.setProperty(e,c,d)},size:function(){return this.values.length},get:function(a){return this.hashMap[$traceurRuntime.toProperty(a)]},"delete":function(a){var b=this,c=this.values.findIndex(function(c){return c[$traceurRuntime.toProperty(b.id)]===a});c!==g&&this.values.splice(c,1),this.hashMap[$traceurRuntime.toProperty(a)]!==g&&delete this.hashMap[$traceurRuntime.toProperty(a)]},clear:function(){for(this.hashMap={};this.values.length>0;)this.values.pop()},getAll:function(){return this.values}},{}),a}),h.service("SettingsResource",["$http","BASE_URL",function(a,b){var c=this;this.settings={language:"en",showAll:!1,compact:!1,oldestFirst:!1,preventReadOnScroll:!1},this.defaultLanguageCode="en",this.supportedLanguageCodes=["ar-ma","ar","bg","ca","cs","cv","da","de","el","en-ca","en-gb","eo","es","et","eu","fi","fr-ca","fr","gl","he","hi","hu","id","is","it","ja","ka","ko","lv","ms-my","nb","ne","nl","pl","pt-br","pt","ro","ru","sk","sl","sv","th","tr","tzm-la","tzm","uk","zh-cn","zh-tw"],this.receive=function(a){for(var b,d,e,f,g=items(a)[$traceurRuntime.toProperty(Symbol.iterator)]();!(f=g.next()).done;)b=f.value,d=b[0],e=b[1],"language"===d&&(e=c.processLanguageCode(e)),$traceurRuntime.setProperty(c.settings,d,e)},this.get=function(a){return c.settings[$traceurRuntime.toProperty(a)]},this.set=function(d,e){return $traceurRuntime.setProperty(c.settings,d,e),a({url:b+"/settings",method:"PUT",data:c.settings})},this.processLanguageCode=function(a){return a=a.replace("_","-").toLowerCase(),c.supportedLanguageCodes.indexOf(a)<0&&(a=a.split("-")[0]),c.supportedLanguageCodes.indexOf(a)<0&&(a=c.defaultLanguageCode),a}}]),function(a,b,c){var d=function(a){return!(a.is("input")||a.is("select")||a.is("textarea")||a.is("checkbox"))},e=function(a){return!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey)},f=function(a,b){b.scrollTop(a.offset().top-b.offset().top+b.scrollTop())},g=function(a){for(var b,d,e=a.find(".item"),g=e[$traceurRuntime.toProperty(Symbol.iterator)]();!(d=g.next()).done;)if(b=d.value,b=c(b),b.position().top>1)return void f(a,b);a.scrollTop(a.prop("scrollHeight"))},h=function(a){for(var b,d,e=a.find(".item"),g=e[$traceurRuntime.toProperty(Symbol.iterator)]();!(d=g.next()).done;){var h=d.value;if(h=c(h),h.position().top>=0)return b=h.prev(),void(b.length>0&&f(a,b))}e.length>0&&f(a,e.last())},i=function(a){for(var b,d,e=a.find(".item"),f=e[$traceurRuntime.toProperty(Symbol.iterator)]();!(d=f.next()).done;)if(b=d.value,b=c(b),b.height()+b.position().top>30)return b},j=function(a){var b=i(a);b.find(".keep_unread").trigger("click")},k=function(a){var b=i(a);b.find(".item_utils .star").trigger("click")},l=function(a){var b=i(a);b.find(".item_heading a").trigger("click")},m=function(b){var c=i(b).find(".item_title a");c.trigger("click"),a.open(c.attr("href"),"_blank")};c(b).keyup(function(a){var b,f;d(c(":focus"))&&e(a)&&(b=a.keyCode,f=c("#app-content"),[74,78,33].indexOf(b)>=0?(a.preventDefault(),g(f)):[75,80,37].indexOf(b)>=0?(a.preventDefault(),h(f)):[85].indexOf(b)>=0?(a.preventDefault(),j(f)):[69].indexOf(b)>=0?(a.preventDefault(),l(f)):[73,83,76].indexOf(b)>=0?(a.preventDefault(),k(f)):[72].indexOf(b)>=0?(a.preventDefault(),k(f),g(f)):[79].indexOf(b)>=0&&(a.preventDefault(),m(f)))})}(a,b,d);var i=Function.prototype.call.bind(Function.prototype.call),j=Object.prototype.hasOwnProperty;a.items=function(a){var b;return b={},Object.defineProperty(b,Symbol.iterator,{value:function(){return $traceurRuntime.initGeneratorFunction(function b(){var c,d,e,f,g;return $traceurRuntime.createGeneratorInstance(function(b){for(;;)switch(b.state){case 0:c=[],d=a;for(e in d)c.push(e);b.state=15;break;case 15:f=0,b.state=13;break;case 13:b.state=f<c.length?9:-2;break;case 4:f++,b.state=13;break;case 9:g=c[$traceurRuntime.toProperty(f)],b.state=10;break;case 10:b.state=$traceurRuntime.toProperty(g)in d?7:4;break;case 7:b.state=i(j,a,g)?1:4;break;case 1:return b.state=2,[g,a[$traceurRuntime.toProperty(g)]];case 2:b.maybeThrow(),b.state=4;break;default:return b.end()}},b,this)})()},configurable:!0,enumerable:!0,writable:!0}),b},a.enumerate=function(a){var b;return b={},Object.defineProperty(b,Symbol.iterator,{value:function(){return $traceurRuntime.initGeneratorFunction(function b(){var c;return $traceurRuntime.createGeneratorInstance(function(b){for(;;)switch(b.state){case 0:c=0,b.state=7;break;case 7:b.state=c<a.length?1:-2;break;case 4:c+=1,b.state=7;break;case 1:return b.state=2,[c,a[$traceurRuntime.toProperty(c)]];case 2:b.maybeThrow(),b.state=4;break;default:return b.end()}},b,this)})()},configurable:!0,enumerable:!0,writable:!0}),b},a.reverse=function(a){var b;return b={},Object.defineProperty(b,Symbol.iterator,{value:function(){return $traceurRuntime.initGeneratorFunction(function b(){var c;return $traceurRuntime.createGeneratorInstance(function(b){for(;;)switch(b.state){case 0:c=a.length,b.state=7;break;case 7:b.state=c>=0?1:-2;break;case 4:c-=1,b.state=7;break;case 1:return b.state=2,a[$traceurRuntime.toProperty(c)];case 2:b.maybeThrow(),b.state=4;break;default:return b.end()}},b,this)})()},configurable:!0,enumerable:!0,writable:!0}),b},h.run(["$document","$rootScope",function(a,b){a.click(function(a){b.$broadcast("documentClicked",a)})}]),h.directive("appNavigationEntryUtils",function(){return{restrict:"C",link:function(a,b){var c=b.siblings(".app-navigation-entry-menu"),e=d(b).find(".app-navigation-entry-utils-menu-button button");e.click(function(){c.toggleClass("open")}),a.$on("documentClicked",function(a,b){b.target!==e[0]&&c.removeClass("open")})}}}),h.directive("newsAudio",function(){return{restrict:"E",scope:{src:"@",type:"@"},transclude:!0,template:'<audio controls="controls" preload="none" ng-hide="cantPlay()"><source ng-src="{{ src|trustUrl }}"></audio><a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ng-transclude></a>',link:function(a,b){var c=b.children().children("source")[0],d=!1;c.addEventListener("error",function(){a.$apply(function(){d=!0})}),a.cantPlay=function(){return d}}}}),h.directive("newsAutoFocus",function(){return function(a,b,c){c.newsAutofocus?d(c.newsAutofocus).focus():b.focus()}}),h.directive("newsBindHtmlUnsafe",function(){return function(a,b,c){a.$watch(c.newsBindHtmlUnsafe,function(){b.html(a.$eval(c.newsBindHtmlUnsafe))})}}),h.directive("newsDraggable",function(){return function(a,b,d){var e=a.$eval(d.newsDraggable);c.isDefined(e)?b.draggable(e):b.draggable()}}),h.directive("newsDroppable",["$rootScope",function(a){return function(b,c,e){var f={accept:".feed",hoverClass:"drag-and-drop",greedy:!0,drop:function(f,g){d(".drag-and-drop").removeClass("drag-and-drop");var h={folderId:parseInt(c.data("id"),10),feedId:parseInt(d(g.draggable).data("id"),10)};a.$broadcast("moveFeedToFolder",h),b.$apply(e.droppable)}};c.droppable(f)}}]),h.directive("newsFocus",["$timeout","$interpolate",function(a,b){return function(c,e,f){e.click(function(){var e=d(b(f.newsFocus)(c));a(function(){e.focus()},500)})}}]),h.directive("newsReadFile",function(){return function(a,b,c){b.change(function(){var d=b[0].files[0],e=new FileReader;e.onload=function(d){b[0].value=0,a.$fileContent=d.target.result,a.$apply(c.newsReadFile)},e.readAsText(d)})}}),h.directive("newsScroll",["$timeout",function(a){var b=function(a,b,c,e){var f,g,h;if(a){f=0,g=c.find(".item");for(var i=g.length-1;i>=0&&(h=d(g[$traceurRuntime.toProperty(i)]),!(f>=b));i-=1){if(h.position().top<0){e.$apply(e.newsScrollAutoPage);break}f+=1}}},c=function(a,b,c){var e,f,g;if(a){e=[],f=b.find(".item:not(.read)");for(var h=0;h<f.length&&(g=d(f[$traceurRuntime.toProperty(h)]),g.position().top<=-50);h+=1)e.push(parseInt(g.data("id"),10));c.itemIds=e,c.$apply(c.newsScrollMarkRead)}};return{restrict:"A",scope:{newsScrollAutoPage:"&",newsScrollMarkRead:"&",newsScrollEnabledMarkRead:"=",newsScrollEnabledAutoPage:"=",newsScrollMarkReadTimeout:"@",newsScrollTimeout:"@",newsScrollAutoPageWhenLeft:"@"},link:function(d,e){var f=!0,g=d.newsScrollTimeout||1,h=d.newsScrollMarkReadTimeout||1,i=d.newsScrollAutoPageWhenLeft||50,j=function(){f&&(f=!1,a(function(){f=!0},1e3*g),b(d.newsScrollEnabledAutoPage,i,e,d),a(function(){c(d.newsScrollEnabledMarkRead,e,d)},1e3*h))};e.on("scroll",j),d.$on("$destroy",function(){e.off("scroll",j)})}}}]),h.directive("newsStopPropagation",function(){return{restrict:"A",link:function(a,b){b.bind("click",function(a){a.stopPropagation()})}}}),h.directive("newsTimeout",["$timeout",function(a){return{restrict:"A",scope:{newsTimeout:"&"},link:function(b){var c=7,d=a(b.newsTimeout,1e3*c);b.$on("$destroy",function(){a.cancel(d)})}}}]),h.directive("newsTitleUnreadCount",["$window",function(a){var b=a.document.title;return{restrict:"E",scope:{unreadCount:"@"},link:function(c,d,e){e.$observe("unreadCount",function(c){var d=b.split("-");"0"!==c&&(a.document.title=d[0]+"("+c+") - "+d[1])})}}}]),h.directive("newsTriggerClick",function(){return function(a,b,c){b.click(function(){d(c.newsTriggerClick).trigger("click")})}})}(window,document,angular,jQuery,OC,oc_requesttoken);
\ No newline at end of file +!function(a,b,c,d,e,f,g){"use strict";var h=c.module("News",["ngRoute","ngSanitize","ngAnimate"]);h.config(["$routeProvider","$provide","$httpProvider",function(a,b,c){var d={FEED:0,FOLDER:1,STARRED:2,SUBSCRIPTIONS:3,SHARED:4};b.constant("REFRESH_RATE",60),b.constant("ITEM_BATCH_SIZE",50),b.constant("BASE_URL",e.generateUrl("/apps/news")),b.constant("FEED_TYPE",d),b.factory("CSRFInterceptor",["$q","BASE_URL",function(a,b){return{request:function(c){return 0===c.url.indexOf(b)&&(c.headers.requesttoken=f),c||a.when(c)}}}]),c.interceptors.push("CSRFInterceptor");var h=function(a){return{data:["$http","$route","$q","BASE_URL","ITEM_BATCH_SIZE",function(b,c,d,e,f){var h={type:a,limit:f};c.current.params.id!==g&&(h.id=c.current.params.id);var i=d.defer();return b({url:e+"/items",method:"GET",params:h}).success(function(a){i.resolve(a)}),i.promise}]}};a.when("/items",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.SUBSCRIPTIONS),type:d.SUBSCRIPTIONS}).when("/items/starred",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.STARRED),type:d.STARRED}).when("/items/feeds/:id",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.FEED),type:d.FEED}).when("/items/folders/:id",{controller:"ContentController as Content",templateUrl:"content.html",resolve:h(d.FOLDER),type:d.FOLDER})}]),h.run(["$rootScope","$location","$http","$q","$interval","Loading","ItemResource","FeedResource","FolderResource","SettingsResource","Publisher","BASE_URL","FEED_TYPE","REFRESH_RATE",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){f.setLoading("global",!0),k.subscribe(g).toChannels(["items","newestItemId","starred"]),k.subscribe(i).toChannels(["folders"]),k.subscribe(h).toChannels(["feeds"]),k.subscribe(j).toChannels(["settings"]);var o=d.defer();c.get(l+"/settings").success(function(a){k.publishAll(a),o.resolve()});var p=d.defer(),q=b.path();c.get(l+"/feeds/active").success(function(a){var c;switch(a.activeFeed.type){case m.FEED:c="/items/feeds/"+a.activeFeed.id;break;case m.FOLDER:c="/items/folders/"+a.activeFeed.id;break;case m.STARRED:c="/items/starred";break;default:c="/items"}/^\/items(\/(starred|feeds\/\d+|folders\/\d+))?\/?$/.test(q)||b.path(c),p.resolve()});var r=d.defer();c.get(l+"/folders").success(function(a){k.publishAll(a),r.resolve()});var s=d.defer();c.get(l+"/feeds").success(function(a){k.publishAll(a),s.resolve()}),d.all([o.promise,p.promise,s.promise,r.promise]).then(function(){f.setLoading("global",!1)}),e(function(){c.get(l+"/feeds"),c.get(l+"/folders")},1e3*n),a.$on("$routeChangeStart",function(){f.setLoading("content",!0)}),a.$on("$routeChangeSuccess",function(){f.setLoading("content",!1)}),a.$on("$routeChangeError",function(){b.path("/items")})}]),h.controller("AppController",["Loading","FeedResource","FolderResource",function(a,b,c){this.loading=a,this.isFirstRun=function(){return 0===b.size()&&0===c.size()}}]),h.controller("ContentController",["Publisher","FeedResource","ItemResource","SettingsResource","data","$route","$routeParams",function(a,b,c,d,e,f,h){c.clear(),a.publishAll(e),this.isAutoPagingEnabled=!0,this.getItems=function(){return c.getAll()},this.toggleStar=function(a){c.toggleStar(a)},this.toggleItem=function(a){this.isCompactView()&&(a.show=!a.show)},this.markRead=function(a){var d=c.get(a);d.keepUnread||(c.markItemRead(a),b.markItemOfFeedRead(d.feedId))},this.getFeed=function(a){return b.getById(a)},this.toggleKeepUnread=function(a){var d=c.get(a);d.unread||(b.markItemOfFeedUnread(d.feedId),c.markItemRead(a,!1)),d.keepUnread=!d.keepUnread},this.orderBy=function(){return d.get("oldestFirst")?"id":"-id"},this.isCompactView=function(){return d.get("compact")},this.autoPagingEnabled=function(){return this.isAutoPagingEnabled},this.markReadEnabled=function(){return!d.get("preventReadOnScroll")},this.scrollRead=function(a){var d=[],e=[];a.forEach(function(a){var b=c.get(a);b.keepUnread||(d.push(a),e.push(b.feedId))}),b.markItemsOfFeedsRead(e),c.markItemsRead(d)},this.autoPage=function(){this.isAutoPagingEnabled=!1;var b=f.current.$$route.type,d=h.id;c.autoPage(b,d).success(function(b){a.publishAll(b),b.items.length>0&&(this.isAutoPagingEnabled=!0)}).error(function(){this.isAutoPagingEnabled=!0})},this.getRelativeDate=function(a){if(a!==g&&""!==a){var b=d.get("language"),c=moment.unix(a).locale(b).fromNow()+"";return c}return""}}]),h.controller("NavigationController",["$route","FEED_TYPE","FeedResource","FolderResource","ItemResource","SettingsResource",function(a,b,c,d,e,f){this.feedError="",this.folderError="",this.getFeeds=function(){return c.getAll()},this.getFolders=function(){return d.getAll()},this.markFolderRead=function(a){c.markFolderRead(a),c.getByFolderId(a).forEach(function(a){e.markFeedRead(a.id)})},this.markFeedRead=function(a){e.markFeedRead(a),c.markFeedRead(a)},this.markRead=function(){e.markRead(),c.markRead()},this.isShowAll=function(){return f.get("showAll")},this.getFeedsOfFolder=function(a){return c.getByFolderId(a)},this.getUnreadCount=function(){return c.getUnreadCount()},this.getFeedUnreadCount=function(a){return c.getById(a).unreadCount},this.getFolderUnreadCount=function(a){return c.getFolderUnreadCount(a)},this.getStarredCount=function(){return e.getStarredCount()},this.toggleFolder=function(a){d.toggleOpen(a)},this.hasFeeds=function(a){return c.getFolderUnreadCount(a)!==g},this.subFeedActive=function(d){var e=a.current.$$route.type;if(e===b.FEED){var f=c.getById(a.current.params.id);if(f.folderId===d)return!0}return!1},this.isSubscriptionsActive=function(){return a.current&&a.current.$$route.type===b.SUBSCRIPTIONS},this.isStarredActive=function(){return a.current&&a.current.$$route.type===b.STARRED},this.isFolderActive=function(c){var d=parseInt(a.current.params.id,10);return a.current&&a.current.$$route.type===b.FOLDER&&d===c},this.isFeedActive=function(c){var d=parseInt(a.current.params.id,10);return a.current&&a.current.$$route.type===b.FEED&&d===c},this.folderNameExists=function(a){return d.get(a)!==g},this.isAddingFolder=function(){return!0},this.createFolder=function(a){console.log(a.name),a.name=""},this.createFeed=function(a){this.newFolder=!1,console.log(a.url+a.folder),a.url=""},this.renameFeed=function(a){a.editing=!1},this.renameFolder=function(){console.log("TBD")},this.deleteFeed=function(a){a.deleted=!0},this.undeleteFeed=function(a){a.deleted=!1},this.removeFeed=function(a){console.log("remove "+a)},this.deleteFolder=function(a){console.log(a)},this.moveFeed=function(a,b){console.log(a+b)}}]),h.controller("SettingsController",["$route","SettingsResource","FeedResource",function(a,b,c){this.importing=!1,this.opmlImportError=!1,this.articleImportError=!1;var d=function(c,d){b.set(c,d),["showAll","oldestFirst"].indexOf(c)>=0&&a.reload()};this.toggleSetting=function(a){d(a,!this.getSetting(a))},this.getSetting=function(a){return b.get(a)},this.feedSize=function(){return c.size()},this.importOpml=function(a){console.log(a)},this.importArticles=function(a){console.log(a)}}]),h.filter("trustUrl",["$sce",function(a){return function(b){return a.trustAsResourceUrl(b)}}]),h.filter("unreadCountFormatter",function(){return function(a){return a>999?"999+":a}}),h.factory("FeedResource",["Resource","$http","BASE_URL",function(a,b,c){var d=function(b,c){a.call(this,b,c,"url"),this.ids={},this.unreadCount=0,this.folderUnreadCount={},this.folderIds={},this.deleted=null};return d.prototype=Object.create(a.prototype),d.prototype.receive=function(b){a.prototype.receive.call(this,b),this.updateUnreadCache(),this.updateFolderCache()},d.prototype.updateUnreadCache=function(){this.unreadCount=0,this.folderUnreadCount={};var a=this;this.values.forEach(function(b){b.unreadCount&&(a.unreadCount+=b.unreadCount),b.folderId!==g&&(a.folderUnreadCount[b.folderId]=a.folderUnreadCount[b.folderId]||0,a.folderUnreadCount[b.folderId]+=b.unreadCount)})},d.prototype.updateFolderCache=function(){this.folderIds={};var a=this;this.values.forEach(function(b){a.folderIds[b.folderId]=a.folderIds[b.folderId]||[],a.folderIds[b.folderId].push(b)})},d.prototype.add=function(b){a.prototype.add.call(this,b),b.id!==g&&(this.ids[b.id]=this.hashMap[b.url])},d.prototype.delete=function(b){var c=this.get(b);return this.deleted=c,delete this.ids[c.id],a.prototype.delete.call(this,b),this.updateUnreadCache(),this.updateFolderCache(),this.http.delete(this.BASE_URL+"/feeds/"+c.id)},d.prototype.markRead=function(){this.values.forEach(function(a){a.unreadCount=0}),this.unreadCount=0,this.folderUnreadCount={}},d.prototype.markFeedRead=function(a){this.ids[a].unreadCount=0,this.updateUnreadCache()},d.prototype.markFolderRead=function(a){this.values.forEach(function(b){b.folderId===a&&(b.unreadCount=0)}),this.updateUnreadCache()},d.prototype.markItemOfFeedRead=function(a){this.ids[a].unreadCount-=1,this.updateUnreadCache()},d.prototype.markItemsOfFeedsRead=function(a){var b=this;a.forEach(function(a){b.ids[a].unreadCount-=1}),this.updateUnreadCache()},d.prototype.markItemOfFeedUnread=function(a){this.ids[a].unreadCount+=1,this.updateUnreadCache()},d.prototype.getUnreadCount=function(){return this.unreadCount},d.prototype.getFolderUnreadCount=function(a){return this.folderUnreadCount[a]},d.prototype.getByFolderId=function(a){return this.folderIds[a]||[]},d.prototype.getById=function(a){return this.ids[a]},d.prototype.rename=function(a,b){var c=this.get(a);return c.title=b,this.http({method:"POST",url:this.BASE_URL+"/feeds/"+c.id+"/rename",data:{feedTitle:b}})},d.prototype.move=function(a,b){var c=this.get(a);return c.folderId=b,this.updateFolderCache(),this.http({method:"POST",url:this.BASE_URL+"/feeds/"+c.id+"/move",data:{parentFolderId:b}})},d.prototype.create=function(a,b,c){c&&(c=c.toUpperCase());var d={url:a,folderId:b,title:c,faviconLink:"../css/loading.gif"};this.get(a)||this.add(d),this.updateFolderCache(),console.log(d)},d.prototype.undoDelete=function(){return this.deleted?(this.add(this.deleted),this.http.post(this.BASE_URL+"/feeds/${this.deleted.id}/restore")):(this.updateFolderCache(),void this.updateUnreadCache())},new d(b,c)}]),h.factory("FolderResource",["Resource","$http","BASE_URL",function(a,b,c){var d=function(b,c){a.call(this,b,c,"name"),this.deleted=null};return d.prototype=Object.create(a.prototype),d.prototype.delete=function(b){var c=this.get(b);return this.deleted=c,a.prototype.delete.call(this,b),this.http.delete(this.BASE_URL+"/folders/"+c.id)},d.prototype.toggleOpen=function(a){var b=this.get(a);return b.opened=!b.opened,this.http({url:this.BASE_URL+"/folders/"+b.id+"/open",method:"POST",data:{folderId:b.id,open:b.opened}})},d.prototype.rename=function(a,b){b=b.toUpperCase();var c=this.get(a);return this.get(b)||(c.name=b,delete this.hashMap[a],this.hashMap[b]=c),this.http({url:this.BASE_URL+"/folders/"+c.id+"/rename",method:"POST",data:{folderName:b}})},d.prototype.create=function(a){if(a=a.toUpperCase(),!this.get(a)){var b={name:a};this.add(b)}return this.http({url:this.BASE_URL+"/folders",method:"POST",data:{folderName:a}})},d.prototype.undoDelete=function(){return this.deleted?(this.add(this.deleted),this.http.post(this.BASE_URL+"/folders/"+this.deleted.id+"/restore")):void 0},new d(b,c)}]),h.factory("ItemResource",["Resource","$http","BASE_URL","ITEM_BATCH_SIZE",function(a,b,c,d){var e=function(b,c,d){a.call(this,b,c),this.starredCount=0,this.batchSize=d};return e.prototype=Object.create(a.prototype),e.prototype.receive=function(b,c){switch(c){case"newestItemId":this.newestItemId=b;break;case"starred":this.starredCount=b;break;default:a.prototype.receive.call(this,b,c)}},e.prototype.getNewestItemId=function(){return this.newestItemId},e.prototype.getStarredCount=function(){return this.starredCount},e.prototype.star=function(a,b){b===g&&(b=!0);var c=this.get(a),d=this.BASE_URL+"/items/"+c.feedId+"/"+c.guidHash+"/star";return c.starred=b,b?this.starredCount+=1:this.starredCount-=1,this.http({url:d,method:"POST",data:{isStarred:b}})},e.prototype.toggleStar=function(a){this.get(a).starred?this.star(a,!1):this.star(a,!0)},e.prototype.markItemRead=function(a,b){return b===g&&(b=!0),this.get(a).unread=!b,this.http({url:this.BASE_URL+"/items/"+a+"/read",method:"POST",data:{isRead:b}})},e.prototype.markItemsRead=function(a){var b=this;return a.forEach(function(a){b.get(a).unread=!1}),this.http({url:this.BASE_URL+"/items/read/multiple",method:"POST",data:{itemIds:a}})},e.prototype.markFeedRead=function(a,b){b===g&&(b=!0);var c=this.values.filter(function(b){return b.feedId===a});return c.forEach(function(a){a.unread=!b}),this.http.post(this.BASE_URL+"/feeds/feedId/read")},e.prototype.markRead=function(){return this.values.forEach(function(a){a.unread=!1}),this.http.post(this.BASE_URL+"/items/read")},e.prototype.autoPage=function(a,b){return this.http({url:this.BASE_URL+"/items",method:"GET",params:{type:a,id:b,offset:this.size(),limit:this.batchSize}})},new e(b,c,d)}]),h.service("Loading",function(){this.loading={global:!1,content:!1,autopaging:!1},this.setLoading=function(a,b){this.loading[a]=b},this.isLoading=function(a){return this.loading[a]}}),h.service("Publisher",function(){this.channels={},this.subscribe=function(a){var b=this;return{toChannels:function(c){c.forEach(function(c){b.channels[c]=b.channels[c]||[],b.channels[c].push(a)})}}},this.publishAll=function(a){var b=this;Object.keys(a).forEach(function(c){var d=b.channels[c];d!==g&&d.forEach(function(b){b.receive(a[c],c)})})}}),h.factory("Resource",function(){var a=function(a,b,c){this.id=c||"id",this.values=[],this.hashMap={},this.http=a,this.BASE_URL=b};return a.prototype.receive=function(a){var b=this;a.forEach(function(a){b.add(a)})},a.prototype.add=function(a){var b=this.hashMap[a[this.id]];b===g?(this.values.push(a),this.hashMap[a[this.id]]=a):Object.keys(a).forEach(function(c){b[c]=a[c]})},a.prototype.size=function(){return this.values.length},a.prototype.get=function(a){return this.hashMap[a]},a.prototype.delete=function(a){var b=this,c=this.values.findIndex(function(c){return c[b.id]===a});c!==g&&this.values.splice(c,1),this.hashMap[a]!==g&&delete this.hashMap[a]},a.prototype.clear=function(){for(this.hashMap={};this.values.length>0;)this.values.pop()},a.prototype.getAll=function(){return this.values},a}),h.service("SettingsResource",["$http","BASE_URL",function(a,b){this.settings={language:"en",showAll:!1,compact:!1,oldestFirst:!1,preventReadOnScroll:!1},this.defaultLanguageCode="en",this.supportedLanguageCodes=["ar-ma","ar","bg","ca","cs","cv","da","de","el","en-ca","en-gb","eo","es","et","eu","fi","fr-ca","fr","gl","he","hi","hu","id","is","it","ja","ka","ko","lv","ms-my","nb","ne","nl","pl","pt-br","pt","ro","ru","sk","sl","sv","th","tr","tzm-la","tzm","uk","zh-cn","zh-tw"],this.receive=function(a){var b=this;Object.keys(a).forEach(function(c){var d=a[c];"language"===c&&(d=b.processLanguageCode(d)),b.settings[c]=d})},this.get=function(a){return this.settings[a]},this.set=function(c,d){return this.settings[c]=d,a({url:b+"/settings",method:"PUT",data:this.settings})},this.processLanguageCode=function(a){return a=a.replace("_","-").toLowerCase(),this.supportedLanguageCodes.indexOf(a)<0&&(a=a.split("-")[0]),this.supportedLanguageCodes.indexOf(a)<0&&(a=this.defaultLanguageCode),a}}]),function(a,b,c){var d=function(a){return!(a.is("input")||a.is("select")||a.is("textarea")||a.is("checkbox"))},e=function(a){return!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey)},f=function(a,b){b.scrollTop(a.offset().top-b.offset().top+b.scrollTop())},g=function(a){var b=a.find(".item");b.each(function(b,d){return d=c(d),d.position().top>1?(f(a,d),!1):void 0}),a.scrollTop(a.prop("scrollHeight"))},h=function(a){var b=a.find(".item");b.each(function(b,d){if(d=c(d),d.position().top>=0){var e=d.prev();return e.length>0&&f(a,e),!1}}),b.length>0&&f(a,b.last())},i=function(a){var b=a.find(".item");b.each(function(a,b){return b=c(b),b.height()+b.position().top>30?b:void 0})},j=function(a){var b=i(a);b.find(".keep-unread").trigger("click")},k=function(a){var b=i(a);b.find(".star").trigger("click")},l=function(a){var b=i(a);b.find(".title").trigger("click")},m=function(b){var c=i(b).find(".title a");c.trigger("click"),a.open(c.attr("href"),"_blank")};c(b).keyup(function(a){if(d(c(":focus"))&&e(a)){var b=a.keyCode,f=c("#app-content");[74,78,33].indexOf(b)>=0?(a.preventDefault(),g(f)):[75,80,37].indexOf(b)>=0?(a.preventDefault(),h(f)):[85].indexOf(b)>=0?(a.preventDefault(),j(f)):[69].indexOf(b)>=0?(a.preventDefault(),l(f)):[73,83,76].indexOf(b)>=0?(a.preventDefault(),k(f)):[72].indexOf(b)>=0?(a.preventDefault(),k(f),g(f)):[79].indexOf(b)>=0&&(a.preventDefault(),m(f))}})}(a,b,d),h.run(["$document","$rootScope",function(a,b){a.click(function(a){b.$broadcast("documentClicked",a)})}]),h.directive("appNavigationEntryUtils",function(){return{restrict:"C",link:function(a,b){var c=b.siblings(".app-navigation-entry-menu"),e=d(b).find(".app-navigation-entry-utils-menu-button button");e.click(function(){c.toggleClass("open")}),a.$on("documentClicked",function(a,b){b.target!==e[0]&&c.removeClass("open")})}}}),h.directive("newsAudio",function(){return{restrict:"E",scope:{src:"@",type:"@"},transclude:!0,template:'<audio controls="controls" preload="none" ng-hide="cantPlay()"><source ng-src="{{ src|trustUrl }}"></audio><a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ng-transclude></a>',link:function(a,b){var c=b.children().children("source")[0],d=!1;c.addEventListener("error",function(){a.$apply(function(){d=!0})}),a.cantPlay=function(){return d}}}}),h.directive("newsAutoFocus",function(){return function(a,b,c){c.newsAutofocus?d(c.newsAutofocus).focus():b.focus()}}),h.directive("newsBindHtmlUnsafe",function(){return function(a,b,c){a.$watch(c.newsBindHtmlUnsafe,function(){b.html(a.$eval(c.newsBindHtmlUnsafe))})}}),h.directive("newsDraggable",function(){return function(a,b,d){var e=a.$eval(d.newsDraggable);c.isDefined(e)?b.draggable(e):b.draggable()}}),h.directive("newsDroppable",["$rootScope",function(a){return function(b,c,e){var f={accept:".feed",hoverClass:"drag-and-drop",greedy:!0,drop:function(f,g){d(".drag-and-drop").removeClass("drag-and-drop");var h={folderId:parseInt(c.data("id"),10),feedId:parseInt(d(g.draggable).data("id"),10)};a.$broadcast("moveFeedToFolder",h),b.$apply(e.droppable)}};c.droppable(f)}}]),h.directive("newsFocus",["$timeout","$interpolate",function(a,b){return function(c,e,f){e.click(function(){var e=d(b(f.newsFocus)(c));a(function(){e.focus()},500)})}}]),h.directive("newsReadFile",function(){return function(a,b,c){b.change(function(){var d=b[0].files[0],e=new FileReader;e.onload=function(d){b[0].value=0,a.$fileContent=d.target.result,a.$apply(c.newsReadFile)},e.readAsText(d)})}}),h.directive("newsScroll",["$timeout",function(a){var b=function(a,b,c,e){if(a)for(var f=0,g=c.find(".item"),h=g.length-1;h>=0;h-=1){var i=d(g[h]);if(f>=b)break;if(i.position().top<0){e.$apply(e.newsScrollAutoPage);break}f+=1}},c=function(a,b,c){if(a){var e=[],f=b.find(".item:not(.read)");f.each(function(a,b){var c=d(b);return c.position().top<=-50?void e.push(parseInt(c.data("id"),10)):!1}),c.itemIds=e,c.$apply(c.newsScrollMarkRead)}};return{restrict:"A",scope:{newsScrollAutoPage:"&",newsScrollMarkRead:"&",newsScrollEnabledMarkRead:"=",newsScrollEnabledAutoPage:"=",newsScrollMarkReadTimeout:"@",newsScrollTimeout:"@",newsScrollAutoPageWhenLeft:"@"},link:function(d,e){var f=!0,g=d.newsScrollTimeout||1,h=d.newsScrollMarkReadTimeout||1,i=d.newsScrollAutoPageWhenLeft||50,j=function(){f&&(f=!1,a(function(){f=!0},1e3*g),b(d.newsScrollEnabledAutoPage,i,e,d),a(function(){c(d.newsScrollEnabledMarkRead,e,d)},1e3*h))};e.on("scroll",j),d.$on("$destroy",function(){e.off("scroll",j)})}}}]),h.directive("newsStopPropagation",function(){return{restrict:"A",link:function(a,b){b.bind("click",function(a){a.stopPropagation()})}}}),h.directive("newsTimeout",["$timeout",function(a){return{restrict:"A",scope:{newsTimeout:"&"},link:function(b){var c=7,d=a(b.newsTimeout,1e3*c);b.$on("$destroy",function(){a.cancel(d)})}}}]),h.directive("newsTitleUnreadCount",["$window",function(a){var b=a.document.title;return{restrict:"E",scope:{unreadCount:"@"},link:function(c,d,e){e.$observe("unreadCount",function(c){var d=b.split("-");"0"!==c&&(a.document.title=d[0]+"("+c+") - "+d[1])})}}}]),h.directive("newsTriggerClick",function(){return function(a,b,c){b.click(function(){d(c.newsTriggerClick).trigger("click")})}})}(window,document,angular,jQuery,OC,oc_requesttoken);
\ No newline at end of file diff --git a/js/controller/AppController.js b/js/controller/AppController.js index 17471e71e..184cf6fc5 100644 --- a/js/controller/AppController.js +++ b/js/controller/AppController.js @@ -9,12 +9,11 @@ */ app.controller('AppController', function (Loading, FeedResource, FolderResource) { - 'use strict'; this.loading = Loading; - this.isFirstRun = () => { + this.isFirstRun = function () { return FeedResource.size() === 0 && FolderResource.size() === 0; }; diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js index 92d2fe585..ae265f2cf 100644 --- a/js/controller/ContentController.js +++ b/js/controller/ContentController.js @@ -21,23 +21,23 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data, this.isAutoPagingEnabled = true; - this.getItems = () => { + this.getItems = function () { return ItemResource.getAll(); }; - this.toggleStar = (itemId) => { + this.toggleStar = function (itemId) { ItemResource.toggleStar(itemId); }; - this.toggleItem = (item) => { + this.toggleItem = function (item) { // TODO: unittest if (this.isCompactView()) { item.show = !item.show; } }; - this.markRead = (itemId) => { - let item = ItemResource.get(itemId); + this.markRead = function (itemId) { + var item = ItemResource.get(itemId); if (!item.keepUnread) { ItemResource.markItemRead(itemId); @@ -45,12 +45,12 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data, } }; - this.getFeed = (feedId) => { + this.getFeed = function (feedId) { return FeedResource.getById(feedId); }; - this.toggleKeepUnread = (itemId) => { - let item = ItemResource.get(itemId); + this.toggleKeepUnread = function (itemId) { + var item = ItemResource.get(itemId); if (!item.unread) { FeedResource.markItemOfFeedUnread(item.feedId); ItemResource.markItemRead(itemId, false); @@ -59,7 +59,7 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data, item.keepUnread = !item.keepUnread; }; - this.orderBy = () => { + this.orderBy = function () { if (SettingsResource.get('oldestFirst')) { return 'id'; } else { @@ -67,55 +67,55 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data, } }; - this.isCompactView = () => { + this.isCompactView = function () { return SettingsResource.get('compact'); }; - this.autoPagingEnabled = () => { + this.autoPagingEnabled = function () { return this.isAutoPagingEnabled; }; - this.markReadEnabled = () => { + this.markReadEnabled = function () { return !SettingsResource.get('preventReadOnScroll'); }; - this.scrollRead = (itemIds) => { - let ids = []; - let feedIds = []; + this.scrollRead = function (itemIds) { + var ids = []; + var feedIds = []; - for (let itemId of itemIds) { - let item = ItemResource.get(itemId); + itemIds.forEach(function (itemId) { + var item = ItemResource.get(itemId); if (!item.keepUnread) { ids.push(itemId); feedIds.push(item.feedId); } - } + }); FeedResource.markItemsOfFeedsRead(feedIds); ItemResource.markItemsRead(ids); }; - this.autoPage = () => { + this.autoPage = function () { this.isAutoPagingEnabled = false; - let type = $route.current.$$route.type; - let id = $routeParams.id; + var type = $route.current.$$route.type; + var id = $routeParams.id; - ItemResource.autoPage(type, id).success((data) => { + ItemResource.autoPage(type, id).success(function (data) { Publisher.publishAll(data); if (data.items.length > 0) { this.isAutoPagingEnabled = true; } - }).error(() => { + }).error(function () { this.isAutoPagingEnabled = true; }); }; - this.getRelativeDate = (timestamp) => { + this.getRelativeDate = function (timestamp) { if (timestamp !== undefined && timestamp !== '') { - let languageCode = SettingsResource.get('language'); - let date = + var languageCode = SettingsResource.get('language'); + var date = moment.unix(timestamp).locale(languageCode).fromNow() + ''; return date; } else { diff --git a/js/controller/NavigationController.js b/js/controller/NavigationController.js index 24c740423..6a79b8970 100644 --- a/js/controller/NavigationController.js +++ b/js/controller/NavigationController.js @@ -15,69 +15,69 @@ function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, this.feedError = ''; this.folderError = ''; - this.getFeeds = () => { + this.getFeeds = function () { return FeedResource.getAll(); }; - this.getFolders = () => { + this.getFolders = function () { return FolderResource.getAll(); }; - this.markFolderRead = (folderId) => { + this.markFolderRead = function (folderId) { FeedResource.markFolderRead(folderId); - for (let feed of FeedResource.getByFolderId(folderId)) { + FeedResource.getByFolderId(folderId).forEach(function (feed) { ItemResource.markFeedRead(feed.id); - } + }); }; - this.markFeedRead = (feedId) => { + this.markFeedRead = function (feedId) { ItemResource.markFeedRead(feedId); FeedResource.markFeedRead(feedId); }; - this.markRead = () => { + this.markRead = function () { ItemResource.markRead(); FeedResource.markRead(); }; - this.isShowAll = () => { + this.isShowAll = function () { return SettingsResource.get('showAll'); }; - this.getFeedsOfFolder = (folderId) => { + this.getFeedsOfFolder = function (folderId) { return FeedResource.getByFolderId(folderId); }; - this.getUnreadCount = () => { + this.getUnreadCount = function () { return FeedResource.getUnreadCount(); }; - this.getFeedUnreadCount = (feedId) => { + this.getFeedUnreadCount = function (feedId) { return FeedResource.getById(feedId).unreadCount; }; - this.getFolderUnreadCount= (folderId) => { + this.getFolderUnreadCount= function (folderId) { return FeedResource.getFolderUnreadCount(folderId); }; - this.getStarredCount = () => { + this.getStarredCount = function () { return ItemResource.getStarredCount(); }; - this.toggleFolder = (folderName) => { + this.toggleFolder = function (folderName) { FolderResource.toggleOpen(folderName); }; - this.hasFeeds = (folderId) => { + this.hasFeeds = function (folderId) { return FeedResource.getFolderUnreadCount(folderId) !== undefined; }; - this.subFeedActive = (folderId) => { - let type = $route.current.$$route.type; + this.subFeedActive = function (folderId) { + var type = $route.current.$$route.type; if (type === FEED_TYPE.FEED) { - let feed = FeedResource.getById($route.current.params.id); + var feed = FeedResource.getById($route.current.params.id); if (feed.folderId === folderId) { return true; @@ -87,78 +87,78 @@ function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, return false; }; - this.isSubscriptionsActive = () => { + this.isSubscriptionsActive = function () { return $route.current && $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; }; - this.isStarredActive = () => { + this.isStarredActive = function () { return $route.current && $route.current.$$route.type === FEED_TYPE.STARRED; }; - this.isFolderActive = (folderId) => { - let currentId = parseInt($route.current.params.id, 10); + this.isFolderActive = function (folderId) { + var currentId = parseInt($route.current.params.id, 10); return $route.current && $route.current.$$route.type === FEED_TYPE.FOLDER && currentId === folderId; }; - this.isFeedActive = (feedId) => { - let currentId = parseInt($route.current.params.id, 10); + this.isFeedActive = function (feedId) { + var currentId = parseInt($route.current.params.id, 10); return $route.current && $route.current.$$route.type === FEED_TYPE.FEED && currentId === feedId; }; - this.folderNameExists = (folderName) => { + this.folderNameExists = function (folderName) { return FolderResource.get(folderName) !== undefined; }; // TBD - this.isAddingFolder = () => { + this.isAddingFolder = function () { return true; }; - this.createFolder = (folder) => { + this.createFolder = function (folder) { console.log(folder.name); folder.name = ''; }; - this.createFeed = (feed) => { + this.createFeed = function (feed) { this.newFolder = false; console.log(feed.url + feed.folder); feed.url = ''; }; - this.renameFeed = (feed) => { + this.renameFeed = function (feed) { feed.editing = false; // todo remote stuff }; - this.renameFolder = () => { + this.renameFolder = function () { console.log('TBD'); }; - this.deleteFeed = (feed) => { + this.deleteFeed = function (feed) { feed.deleted = true; // todo remote stuff }; - this.undeleteFeed = (feed) => { + this.undeleteFeed = function (feed) { feed.deleted = false; // todo remote stuff }; - this.removeFeed = (feed) => { + this.removeFeed = function (feed) { console.log('remove ' + feed); }; - this.deleteFolder = (folderName) => { + this.deleteFolder = function (folderName) { console.log(folderName); }; - this.moveFeed = (feedId, folderId) => { + this.moveFeed = function (feedId, folderId) { console.log(feedId + folderId); }; diff --git a/js/controller/SettingsController.js b/js/controller/SettingsController.js index 781790acc..4754b16d2 100644 --- a/js/controller/SettingsController.js +++ b/js/controller/SettingsController.js @@ -15,7 +15,7 @@ function ($route, SettingsResource, FeedResource) { this.opmlImportError = false; this.articleImportError = false; - let set = (key, value) => { + var set = function (key, value) { SettingsResource.set(key, value); if (['showAll', 'oldestFirst'].indexOf(key) >= 0) { @@ -24,28 +24,28 @@ function ($route, SettingsResource, FeedResource) { }; - this.toggleSetting = (key) => { + this.toggleSetting = function (key) { set(key, !this.getSetting(key)); }; - this.getSetting = (key) => { + this.getSetting = function (key) { return SettingsResource.get(key); }; - this.feedSize = () => { + this.feedSize = function () { return FeedResource.size(); }; // TBD - this.importOpml = (content) => { + this.importOpml = function (content) { console.log(content); }; - this.importArticles = (content) => { + this.importArticles = function (content) { console.log(content); }; diff --git a/js/directive/AppNavigationEntryUtils.js b/js/directive/AppNavigationEntryUtils.js index 146d0f22a..c96589a6a 100644 --- a/js/directive/AppNavigationEntryUtils.js +++ b/js/directive/AppNavigationEntryUtils.js @@ -7,27 +7,27 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.run(($document, $rootScope) => { +app.run(function ($document, $rootScope) { 'use strict'; - $document.click((event) => { + $document.click(function (event) { $rootScope.$broadcast('documentClicked', event); }); }); -app.directive('appNavigationEntryUtils', () => { +app.directive('appNavigationEntryUtils', function () { 'use strict'; return { restrict: 'C', - link: (scope, elm) => { - let menu = elm.siblings('.app-navigation-entry-menu'); - let button = $(elm) + link: function (scope, elm) { + var menu = elm.siblings('.app-navigation-entry-menu'); + var button = $(elm) .find('.app-navigation-entry-utils-menu-button button'); - button.click(() => { + button.click(function () { menu.toggleClass('open'); }); - scope.$on('documentClicked', (scope, event) => { + scope.$on('documentClicked', function (scope, event) { if (event.target !== button[0]) { menu.removeClass('open'); } diff --git a/js/directive/NewsAudio.js b/js/directive/NewsAudio.js index efcf5dfec..422f5ff19 100644 --- a/js/directive/NewsAudio.js +++ b/js/directive/NewsAudio.js @@ -7,7 +7,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsAudio', () => { +app.directive('newsAudio', function () { 'use strict'; return { restrict: 'E', @@ -22,16 +22,17 @@ app.directive('newsAudio', () => { '</audio>' + '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' + 'ng-transclude></a>', - link: (scope, elm) => { - let source = elm.children().children('source')[0]; - let cantPlay = false; - source.addEventListener('error', () => { - scope.$apply(() => { + link: function (scope, elm) { + var source = elm.children().children('source')[0]; + var cantPlay = false; + + source.addEventListener('error', function () { + scope.$apply(function () { cantPlay = true; }); }); - scope.cantPlay = () => { + scope.cantPlay = function () { return cantPlay; }; } diff --git a/js/directive/NewsAutoFocus.js b/js/directive/NewsAutoFocus.js index b73dd2443..87bcab006 100644 --- a/js/directive/NewsAutoFocus.js +++ b/js/directive/NewsAutoFocus.js @@ -7,9 +7,9 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsAutoFocus', () => { +app.directive('newsAutoFocus', function () { 'use strict'; - return (scope, elem, attrs) => { + return function (scope, elem, attrs) { if (attrs.newsAutofocus) { $(attrs.newsAutofocus).focus(); } else { diff --git a/js/directive/NewsBindUnsafeHtml.js b/js/directive/NewsBindUnsafeHtml.js index 7c839d156..5d8cadf85 100644 --- a/js/directive/NewsBindUnsafeHtml.js +++ b/js/directive/NewsBindUnsafeHtml.js @@ -7,11 +7,11 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsBindHtmlUnsafe', () => { +app.directive('newsBindHtmlUnsafe', function () { 'use strict'; - return (scope, elem, attr) => { - scope.$watch(attr.newsBindHtmlUnsafe, () => { + return function (scope, elem, attr) { + scope.$watch(attr.newsBindHtmlUnsafe, function () { elem.html(scope.$eval(attr.newsBindHtmlUnsafe)); }); }; diff --git a/js/directive/NewsDraggable.js b/js/directive/NewsDraggable.js index 76360ecb7..0bd81a78c 100644 --- a/js/directive/NewsDraggable.js +++ b/js/directive/NewsDraggable.js @@ -7,11 +7,11 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsDraggable', () => { +app.directive('newsDraggable', function () { 'use strict'; - return (scope, elem, attr) => { - let options = scope.$eval(attr.newsDraggable); + return function (scope, elem, attr) { + var options = scope.$eval(attr.newsDraggable); if (angular.isDefined(options)) { elem.draggable(options); diff --git a/js/directive/NewsDroppable.js b/js/directive/NewsDroppable.js index a68f26444..2808dc6a4 100644 --- a/js/directive/NewsDroppable.js +++ b/js/directive/NewsDroppable.js @@ -7,19 +7,19 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsDroppable', ($rootScope) => { +app.directive('newsDroppable', function ($rootScope) { 'use strict'; - return (scope, elem, attr) => { - let details = { + return function (scope, elem, attr) { + var details = { accept: '.feed', hoverClass: 'drag-and-drop', greedy: true, - drop: (event, ui) => { + drop: function (event, ui) { $('.drag-and-drop').removeClass('drag-and-drop'); - let data = { + var data = { folderId: parseInt(elem.data('id'), 10), feedId: parseInt($(ui.draggable).data('id'), 10) }; diff --git a/js/directive/NewsFocus.js b/js/directive/NewsFocus.js index f5133fd20..5c83db4f5 100644 --- a/js/directive/NewsFocus.js +++ b/js/directive/NewsFocus.js @@ -7,13 +7,13 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsFocus', ($timeout, $interpolate) => { +app.directive('newsFocus', function ($timeout, $interpolate) { 'use strict'; - return (scope, elem, attrs) => { - elem.click(() => { - let toReadd = $($interpolate(attrs.newsFocus)(scope)); - $timeout(() => { + return function (scope, elem, attrs) { + elem.click(function () { + var toReadd = $($interpolate(attrs.newsFocus)(scope)); + $timeout(function () { toReadd.focus(); }, 500); }); diff --git a/js/directive/NewsReadFile.js b/js/directive/NewsReadFile.js index 89ed0adfc..82bdf477e 100644 --- a/js/directive/NewsReadFile.js +++ b/js/directive/NewsReadFile.js @@ -7,17 +7,17 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsReadFile', () => { +app.directive('newsReadFile', function () { 'use strict'; - return (scope, elem, attr) => { + return function (scope, elem, attr) { - elem.change(() => { + elem.change(function () { - let file = elem[0].files[0]; - let reader = new FileReader(); + var file = elem[0].files[0]; + var reader = new FileReader(); - reader.onload = (event) => { + reader.onload = function (event) { elem[0].value = 0; // FIXME: is there a more flexible solution where we dont have // to bind the file to scope? diff --git a/js/directive/NewsScroll.js b/js/directive/NewsScroll.js index 3d566aebe..26e799da6 100644 --- a/js/directive/NewsScroll.js +++ b/js/directive/NewsScroll.js @@ -7,17 +7,17 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsScroll', ($timeout) => { +app.directive('newsScroll', function ($timeout) { 'use strict'; // autopaging - let autoPage = (enabled, limit, elem, scope) => { + var autoPage = function (enabled, limit, elem, scope) { if (enabled) { - let counter = 0; - let articles = elem.find('.item'); + var counter = 0; + var articles = elem.find('.item'); - for (let i = articles.length - 1; i >= 0; i -= 1) { - let item = $(articles[i]); + for (var i = articles.length - 1; i >= 0; i -= 1) { + var item = $(articles[i]); // if the counter is higher than the size it means @@ -41,21 +41,20 @@ app.directive('newsScroll', ($timeout) => { }; // mark read - let markRead = (enabled, elem, scope) => { + var markRead = function (enabled, elem, scope) { if (enabled) { - let ids = []; + var ids = []; + var articles = elem.find('.item:not(.read)'); - let articles = elem.find('.item:not(.read)'); - - for (let i = 0; i < articles.length; i += 1) { - let item = $(articles[i]); + articles.each(function(index, article) { + var item = $(article); if (item.position().top <= -50) { ids.push(parseInt(item.data('id'), 10)); } else { - break; + return false; } - } + }); scope.itemIds = ids; scope.$apply(scope.newsScrollMarkRead); @@ -73,19 +72,19 @@ app.directive('newsScroll', ($timeout) => { 'newsScrollTimeout': '@', // optional, defaults to 1 second 'newsScrollAutoPageWhenLeft': '@' // optional, defaults to 50 }, - link: (scope, elem) => { - let allowScroll = true; + link: function (scope, elem) { + var allowScroll = true; - let scrollTimeout = scope.newsScrollTimeout || 1; - let markReadTimeout = scope.newsScrollMarkReadTimeout || 1; - let autoPageLimit = scope.newsScrollAutoPageWhenLeft || 50; + var scrollTimeout = scope.newsScrollTimeout || 1; + var markReadTimeout = scope.newsScrollMarkReadTimeout || 1; + var autoPageLimit = scope.newsScrollAutoPageWhenLeft || 50; - let scrollHandler = () => { + var scrollHandler = function () { // allow only one scroll event to trigger at once if (allowScroll) { allowScroll = false; - $timeout(() => { + $timeout(function () { allowScroll = true; }, scrollTimeout*1000); @@ -95,7 +94,7 @@ app.directive('newsScroll', ($timeout) => { scope); // allow user to undo accidental scroll - $timeout(() => { + $timeout(function () { markRead(scope.newsScrollEnabledMarkRead, elem, scope); @@ -107,7 +106,7 @@ app.directive('newsScroll', ($timeout) => { elem.on('scroll', scrollHandler); // remove scroll handler if element is destroyed - scope.$on('$destroy', () => { + scope.$on('$destroy', function () { elem.off('scroll', scrollHandler); }); } diff --git a/js/directive/NewsStopPropagation.js b/js/directive/NewsStopPropagation.js index daa62ae59..48d8ce3c4 100644 --- a/js/directive/NewsStopPropagation.js +++ b/js/directive/NewsStopPropagation.js @@ -7,13 +7,13 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsStopPropagation', () => { +app.directive('newsStopPropagation', function () { 'use strict'; return { restrict: 'A', - link: (scope, element) => { - element.bind('click', (e) => { - e.stopPropagation(); + link: function (scope, element) { + element.bind('click', function (event) { + event.stopPropagation(); }); } }; diff --git a/js/directive/NewsTimeout.js b/js/directive/NewsTimeout.js index dc87dd5aa..37458a61b 100644 --- a/js/directive/NewsTimeout.js +++ b/js/directive/NewsTimeout.js @@ -7,7 +7,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsTimeout', ($timeout) => { +app.directive('newsTimeout', function ($timeout) { 'use strict'; return { @@ -15,13 +15,13 @@ app.directive('newsTimeout', ($timeout) => { scope: { 'newsTimeout': '&' }, - link: (scope) => { - let seconds = 7; - let timer = $timeout(scope.newsTimeout, seconds * 1000); + link: function (scope) { + var seconds = 7; + var timer = $timeout(scope.newsTimeout, seconds * 1000); // remove timeout if element is being removed by // for instance clicking on the x button - scope.$on('$destroy', () => { + scope.$on('$destroy', function () { $timeout.cancel(timer); }); } diff --git a/js/directive/NewsTitleUnreadCount.js b/js/directive/NewsTitleUnreadCount.js index 709b910ed..0866b4b72 100644 --- a/js/directive/NewsTitleUnreadCount.js +++ b/js/directive/NewsTitleUnreadCount.js @@ -7,19 +7,19 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsTitleUnreadCount', ($window) => { +app.directive('newsTitleUnreadCount', function ($window) { 'use strict'; - let baseTitle = $window.document.title; + var baseTitle = $window.document.title; return { restrict: 'E', scope: { unreadCount: '@' }, - link: (scope, elem, attrs) => { - attrs.$observe('unreadCount', (value) => { - let titles = baseTitle.split('-'); + link: function (scope, elem, attrs) { + attrs.$observe('unreadCount', function (value) { + var titles = baseTitle.split('-'); if (value !== '0') { $window.document.title = titles[0] + diff --git a/js/directive/NewsTriggerClick.js b/js/directive/NewsTriggerClick.js index d5c43e442..a0a3f2904 100644 --- a/js/directive/NewsTriggerClick.js +++ b/js/directive/NewsTriggerClick.js @@ -7,11 +7,11 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.directive('newsTriggerClick', () => { +app.directive('newsTriggerClick', function () { 'use strict'; - return (scope, elm, attr) => { - elm.click(() => { + return function (scope, elm, attr) { + elm.click(function () { $(attr.newsTriggerClick).trigger('click'); }); }; diff --git a/js/filter/TrustUrl.js b/js/filter/TrustUrl.js index e0958ad2d..745e44c5e 100644 --- a/js/filter/TrustUrl.js +++ b/js/filter/TrustUrl.js @@ -7,10 +7,10 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.filter('trustUrl', ($sce) => { +app.filter('trustUrl', function ($sce) { 'use strict'; - return (url) => { + return function (url) { return $sce.trustAsResourceUrl(url); }; });
\ No newline at end of file diff --git a/js/filter/UnreadCountFormatter.js b/js/filter/UnreadCountFormatter.js index 3450114b1..671d4e3c5 100644 --- a/js/filter/UnreadCountFormatter.js +++ b/js/filter/UnreadCountFormatter.js @@ -7,10 +7,10 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.filter('unreadCountFormatter', () => { +app.filter('unreadCountFormatter', function () { 'use strict'; - return (unreadCount) => { + return function (unreadCount) { if (unreadCount > 999) { return '999+'; } diff --git a/js/gui/KeyboardShortcuts.js b/js/gui/KeyboardShortcuts.js index 6f19e48bc..345465857 100644 --- a/js/gui/KeyboardShortcuts.js +++ b/js/gui/KeyboardShortcuts.js @@ -16,7 +16,7 @@ (function (window, document, $) { 'use strict'; - const noInputFocused = (element) => { + var noInputFocused = function (element) { return !( element.is('input') || element.is('select') || @@ -25,7 +25,7 @@ ); }; - const noModifierKey = (event) => { + var noModifierKey = function (event) { return !( event.shiftKey || event.altKey || @@ -34,46 +34,46 @@ ); }; - const scrollToItem = (item, scrollArea) => { + var scrollToItem = function (item, scrollArea) { scrollArea.scrollTop( item.offset().top - scrollArea.offset().top + scrollArea.scrollTop() ); }; - const scrollToNextItem = (scrollArea) => { - const items = scrollArea.find('.item'); + var scrollToNextItem = function (scrollArea) { + var items = scrollArea.find('.item'); - for (let item of items) { + items.each(function (index, item) { item = $(item); if (item.position().top > 1) { scrollToItem(scrollArea, item); - return; + return false; } - } + }); // in case this is the last item it should still scroll below the top scrollArea.scrollTop(scrollArea.prop('scrollHeight')); }; - const scrollToPreviousItem = (scrollArea) => { - const items = scrollArea.find('.item'); + var scrollToPreviousItem = function (scrollArea) { + var items = scrollArea.find('.item'); - for (var item of items) { + items.each(function (index, item) { item = $(item); if (item.position().top >= 0) { - let previous = item.prev(); + var previous = item.prev(); // if there are no items before the current one if (previous.length > 0) { scrollToItem(scrollArea, previous); } - return; + return false; } - } + }); // if there was no jump jump to the last element if (items.length > 0) { @@ -81,44 +81,44 @@ } }; - const getActiveItem = (scrollArea) => { - const items = scrollArea.find('.item'); + var getActiveItem = function (scrollArea) { + var items = scrollArea.find('.item'); - for (let item of items) { + items.each(function (index, item) { item = $(item); // 130px of the item should be visible if ((item.height() + item.position().top) > 30) { return item; } - } + }); }; - const toggleUnread = (scrollArea) => { - const item = getActiveItem(scrollArea); - item.find('.keep_unread').trigger('click'); + var toggleUnread = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.keep-unread').trigger('click'); }; - const toggleStar = (scrollArea) => { - const item = getActiveItem(scrollArea); - item.find('.item_utils .star').trigger('click'); + var toggleStar = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.star').trigger('click'); }; - const expandItem = (scrollArea) => { - const item = getActiveItem(scrollArea); - item.find('.item_heading a').trigger('click'); + var expandItem = function (scrollArea) { + var item = getActiveItem(scrollArea); + item.find('.title').trigger('click'); }; - const openLink = (scrollArea) => { - const item = getActiveItem(scrollArea).find('.item_title a'); + var openLink = function (scrollArea) { + var item = getActiveItem(scrollArea).find('.title a'); item.trigger('click'); // mark read window.open(item.attr('href'), '_blank'); }; - $(document).keyup((event) => { + $(document).keyup(function (event) { if (noInputFocused($(':focus')) && noModifierKey(event)) { - const keyCode = event.keyCode; - const scrollArea = $('#app-content'); + var keyCode = event.keyCode; + var scrollArea = $('#app-content'); // j, n, right arrow if ([74, 78, 33].indexOf(keyCode) >= 0) { diff --git a/js/karma.conf.js b/js/karma.conf.js index a0bfe5e26..1ca0d54d7 100644 --- a/js/karma.conf.js +++ b/js/karma.conf.js @@ -12,28 +12,15 @@ module.exports = function (config) { // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine', 'traceur'], + frameworks: ['jasmine'], preprocessors: { - 'build/app.js': ['coverage'], - 'tests/unit/stubs/*.js': ['traceur'], - 'controller/**/*.js': ['traceur'], - 'filter/**/*.js': ['traceur'], - 'service/**/*.js': ['traceur'], - 'directive/**/*.js': ['traceur'], - 'utility/**/*.js': ['traceur'], - 'tests/unit/**/*Spec.js': ['traceur'] - }, - - traceurPreprocessor: { - options: { - experimental: true, - modules: 'inline' - } + 'build/app.js': ['coverage'] }, // list of files / patterns to load in the browser files: [ + 'vendor/es6-shim/es6-shim.min.js', 'vendor/jquery/dist/jquery.js', 'vendor/momentjs/min/moment-with-locales.js', 'vendor/angular/angular.js', diff --git a/js/package.json b/js/package.json index 60d475470..448c84776 100644 --- a/js/package.json +++ b/js/package.json @@ -36,17 +36,13 @@ "grunt-phpunit": "^0.3.5", "grunt-protractor-runner": "^1.1.4", "grunt-protractor-webdriver": "^0.1.8", - "grunt-shell": "^1.1.1", - "grunt-traceur": "^0.2.5", "grunt-wrap": "^0.3.0", "karma": "^0.12.23", "karma-chrome-launcher": "^0.1.4", "karma-coverage": "^0.2.6", "karma-firefox-launcher": "^0.1.3", "karma-jasmine": "^0.1.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-traceur-preprocessor": "^0.3.1", - "traceur": "^0.0.61" + "karma-phantomjs-launcher": "^0.1.4" }, "dependencies": {} } diff --git a/js/service/FeedResource.js b/js/service/FeedResource.js index 4466b502a..5c85fdc4e 100644 --- a/js/service/FeedResource.js +++ b/js/service/FeedResource.js @@ -7,221 +7,224 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.factory('FeedResource', (Resource, $http, BASE_URL) => { +app.factory('FeedResource', function (Resource, $http, BASE_URL) { 'use strict'; - class FeedResource extends Resource { - - constructor ($http, BASE_URL) { - super($http, BASE_URL, 'url'); - this.ids = {}; - this.unreadCount = 0; - this.folderUnreadCount = {}; - this.folderIds = {}; - this.deleted = null; - } + var FeedResource = function ($http, BASE_URL) { + Resource.call(this, $http, BASE_URL, 'url'); + this.ids = {}; + this.unreadCount = 0; + this.folderUnreadCount = {}; + this.folderIds = {}; + this.deleted = null; + }; + FeedResource.prototype = Object.create(Resource.prototype); - receive (data) { - super.receive(data); - this.updateUnreadCache(); - this.updateFolderCache(); - } + FeedResource.prototype.receive = function (data) { + Resource.prototype.receive.call(this, data); + this.updateUnreadCache(); + this.updateFolderCache(); + }; - updateUnreadCache () { - this.unreadCount = 0; - this.folderUnreadCount = {}; + FeedResource.prototype.updateUnreadCache = function () { + this.unreadCount = 0; + this.folderUnreadCount = {}; - for (let value of this.values) { - if (value.unreadCount) { - this.unreadCount += value.unreadCount; - } - if (value.folderId !== undefined) { - this.folderUnreadCount[value.folderId] = - this.folderUnreadCount[value.folderId] || 0; - this.folderUnreadCount[value.folderId] += value.unreadCount; - } + var self = this; + this.values.forEach(function (feed) { + if (feed.unreadCount) { + self.unreadCount += feed.unreadCount; } - } + if (feed.folderId !== undefined) { + self.folderUnreadCount[feed.folderId] = + self.folderUnreadCount[feed.folderId] || 0; + self.folderUnreadCount[feed.folderId] += feed.unreadCount; + } + }); + }; - updateFolderCache () { - this.folderIds = {}; + FeedResource.prototype.updateFolderCache = function () { + this.folderIds = {}; - for (let feed of this.values) { - this.folderIds[feed.folderId] = - this.folderIds[feed.folderId] || []; - this.folderIds[feed.folderId].push(feed); - } - } + var self = this; + this.values.forEach(function (feed) { + self.folderIds[feed.folderId] = + self.folderIds[feed.folderId] || []; + self.folderIds[feed.folderId].push(feed); + }); + }; - add (value) { - super.add(value); - if (value.id !== undefined) { - this.ids[value.id] = this.hashMap[value.url]; - } + FeedResource.prototype.add = function (value) { + Resource.prototype.add.call(this, value); + if (value.id !== undefined) { + this.ids[value.id] = this.hashMap[value.url]; } + }; - delete (url) { - let feed = this.get(url); - this.deleted = feed; - delete this.ids[feed.id]; + FeedResource.prototype.delete = function (url) { + var feed = this.get(url); + this.deleted = feed; + delete this.ids[feed.id]; - super.delete(url); + Resource.prototype.delete.call(this, url); - this.updateUnreadCache(); - this.updateFolderCache(); + this.updateUnreadCache(); + this.updateFolderCache(); - return this.http.delete(`${this.BASE_URL}/feeds/${feed.id}`); - } + return this.http.delete(this.BASE_URL + '/feeds/' + feed.id); + }; - markRead () { - for (let feed of this.values) { - feed.unreadCount = 0; - } - this.unreadCount = 0; - this.folderUnreadCount = {}; - } + FeedResource.prototype.markRead = function () { + this.values.forEach(function (feed) { + feed.unreadCount = 0; + }); + this.unreadCount = 0; + this.folderUnreadCount = {}; + }; - markFeedRead (feedId) { - this.ids[feedId].unreadCount = 0; - this.updateUnreadCache(); - } + FeedResource.prototype.markFeedRead = function (feedId) { + this.ids[feedId].unreadCount = 0; + this.updateUnreadCache(); + }; - markFolderRead (folderId) { - for (let feed of this.values) { - if (feed.folderId === folderId) { - feed.unreadCount = 0; - } - } - this.updateUnreadCache(); - } + FeedResource.prototype.markFolderRead = function (folderId) { + this.values.forEach(function (feed) { + if (feed.folderId === folderId) { + feed.unreadCount = 0; + } + }); - markItemOfFeedRead (feedId) { - this.ids[feedId].unreadCount -= 1; - this.updateUnreadCache(); - } + this.updateUnreadCache(); + }; - markItemsOfFeedsRead (feedIds) { - for (let feedId of feedIds) { - this.ids[feedId].unreadCount -= 1; - } - this.updateUnreadCache(); - } + FeedResource.prototype.markItemOfFeedRead = function (feedId) { + this.ids[feedId].unreadCount -= 1; + this.updateUnreadCache(); + }; - markItemOfFeedUnread (feedId) { - this.ids[feedId].unreadCount += 1; - this.updateUnreadCache(); - } + FeedResource.prototype.markItemsOfFeedsRead = function (feedIds) { + var self = this; + feedIds.forEach(function (feedId) { + self.ids[feedId].unreadCount -= 1; + }); + this.updateUnreadCache(); + }; - getUnreadCount () { - return this.unreadCount; - } + FeedResource.prototype.markItemOfFeedUnread = function (feedId) { + this.ids[feedId].unreadCount += 1; + this.updateUnreadCache(); + }; - getFolderUnreadCount (folderId) { - return this.folderUnreadCount[folderId]; - } + FeedResource.prototype.getUnreadCount = function () { + return this.unreadCount; + }; - getByFolderId (folderId) { - return this.folderIds[folderId] || []; - } + FeedResource.prototype.getFolderUnreadCount = function (folderId) { + return this.folderUnreadCount[folderId]; + }; - getById (feedId) { - return this.ids[feedId]; - } + FeedResource.prototype.getByFolderId = function (folderId) { + return this.folderIds[folderId] || []; + }; - rename (url, name) { - let feed = this.get(url); - feed.title = name; - return this.http({ - method: 'POST', - url: `${this.BASE_URL}/feeds/${feed.id}/rename`, - data: { - feedTitle: name - } - }); - } + FeedResource.prototype.getById = function (feedId) { + return this.ids[feedId]; + }; - move (url, folderId) { - let feed = this.get(url); - feed.folderId = folderId; + FeedResource.prototype.rename = function (url, name) { + var feed = this.get(url); + feed.title = name; - this.updateFolderCache(); + return this.http({ + method: 'POST', + url: this.BASE_URL + '/feeds/' + feed.id + '/rename', + data: { + feedTitle: name + } + }); + }; - return this.http({ - method: 'POST', - url: `${this.BASE_URL}/feeds/${feed.id}/move`, - data: { - parentFolderId: folderId - } - }); - } + FeedResource.prototype.move = function (url, folderId) { + var feed = this.get(url); + feed.folderId = folderId; + this.updateFolderCache(); - create (url, folderId, title=null) { - if (title) { - title = title.toUpperCase(); + return this.http({ + method: 'POST', + url: this.BASE_URL + '/feeds/' + feed.id + '/move', + data: { + parentFolderId: folderId } + }); - let feed = { - url: url, - folderId: folderId, - title: title, - faviconLink: '../css/loading.gif' - }; + }; - if (!this.get(url)) { - this.add(feed); - } - this.updateFolderCache(); + FeedResource.prototype.create = function (url, folderId, title) { + if (title) { + title = title.toUpperCase(); + } - console.log(feed); + var feed = { + url: url, + folderId: folderId, + title: title, + faviconLink: '../css/loading.gif' + }; - /*return this.http({ - method: 'POST', - url: `${this.BASE_URL}/feeds`, - data: { - url: url, - parentFolderId: folderId, - title: title - } - });*/ + if (!this.get(url)) { + this.add(feed); } + this.updateFolderCache(); - undoDelete () { - if (this.deleted) { - this.add(this.deleted); + console.log(feed); - return this.http.post( - `${this.BASE_URL}/feeds/${this.deleted.id}/restore` - ); + /*return this.http({ + method: 'POST', + url: this.BASE_URL + '/feeds', + data: { + url: url, + parentFolderId: folderId, + title: title } + });*/ + }; + + + FeedResource.prototype.undoDelete = function () { + if (this.deleted) { + this.add(this.deleted); - this.updateFolderCache(); - this.updateUnreadCache(); + return this.http.post( + this.BASE_URL + '/feeds/${this.deleted.id}/restore' + ); } + this.updateFolderCache(); + this.updateUnreadCache(); + }; - } return new FeedResource($http, BASE_URL); });
\ No newline at end of file diff --git a/js/service/FolderResource.js b/js/service/FolderResource.js index 2e67fa690..6453f33b8 100644 --- a/js/service/FolderResource.js +++ b/js/service/FolderResource.js @@ -7,100 +7,97 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.factory('FolderResource', (Resource, $http, BASE_URL) => { +app.factory('FolderResource', function (Resource, $http, BASE_URL) { 'use strict'; - class FolderResource extends Resource { + var FolderResource = function ($http, BASE_URL) { + Resource.call(this, $http, BASE_URL, 'name'); + this.deleted = null; + }; - constructor ($http, BASE_URL) { - super($http, BASE_URL, 'name'); - this.deleted = null; - } + FolderResource.prototype = Object.create(Resource.prototype); + FolderResource.prototype.delete = function (folderName) { + var folder = this.get(folderName); + this.deleted = folder; - delete (folderName) { - let folder = this.get(folderName); - this.deleted = folder; + Resource.prototype.delete.call(this, folderName); - super.delete(folderName); + return this.http.delete(this.BASE_URL + '/folders/' + folder.id); + }; - return this.http.delete(`${this.BASE_URL}/folders/${folder.id}`); - } + FolderResource.prototype.toggleOpen = function (folderName) { + var folder = this.get(folderName); + folder.opened = !folder.opened; - toggleOpen (folderName) { - let folder = this.get(folderName); - folder.opened = !folder.opened; + return this.http({ + url: this.BASE_URL + '/folders/' + folder.id + '/open', + method: 'POST', + data: { + folderId: folder.id, + open: folder.opened + } + }); + }; - return this.http({ - url: `${this.BASE_URL}/folders/${folder.id}/open`, - method: 'POST', - data: { - folderId: folder.id, - open: folder.opened - } - }); - } + FolderResource.prototype.rename = function (folderName, toFolderName) { + toFolderName = toFolderName.toUpperCase(); + var folder = this.get(folderName); - rename (folderName, toFolderName) { - toFolderName = toFolderName.toUpperCase(); - let folder = this.get(folderName); + // still do http request if folder exists but dont change the name + // to have one point of failure + if (!this.get(toFolderName)) { + folder.name = toFolderName; - // still do http request if folder exists but dont change the name - // to have one point of failure - if (!this.get(toFolderName)) { - folder.name = toFolderName; + delete this.hashMap[folderName]; + this.hashMap[toFolderName] = folder; + } - delete this.hashMap[folderName]; - this.hashMap[toFolderName] = folder; + return this.http({ + url: this.BASE_URL + '/folders/' + folder.id + '/rename', + method: 'POST', + data: { + folderName: toFolderName } + }); + }; - return this.http({ - url: `${this.BASE_URL}/folders/${folder.id}/rename`, - method: 'POST', - data: { - folderName: toFolderName - } - }); - } + FolderResource.prototype.create = function (folderName) { + folderName = folderName.toUpperCase(); - create (folderName) { - folderName = folderName.toUpperCase(); + // still do http request if folder exists but dont change the name + // to have one point of failure + if (!this.get(folderName)) { + var folder = { + name: folderName + }; - // still do http request if folder exists but dont change the name - // to have one point of failure - if (!this.get(folderName)) { - let folder = { - name: folderName - }; + this.add(folder); + } - this.add(folder); + return this.http({ + url: this.BASE_URL + '/folders', + method: 'POST', + data: { + folderName: folderName } - - return this.http({ - url: `${this.BASE_URL}/folders`, - method: 'POST', - data: { - folderName: folderName - } - }); - } + }); + }; - undoDelete () { - if (this.deleted) { - this.add(this.deleted); + FolderResource.prototype.undoDelete = function () { + if (this.deleted) { + this.add(this.deleted); - return this.http.post( - `${this.BASE_URL}/folders/${this.deleted.id}/restore` - ); - } + return this.http.post( + this.BASE_URL + '/folders/' + this.deleted.id + '/restore' + ); } + }; - } - return new FolderResource($http, BASE_URL); });
\ No newline at end of file diff --git a/js/service/ItemResource.js b/js/service/ItemResource.js index 420e20775..cc67cc003 100644 --- a/js/service/ItemResource.js +++ b/js/service/ItemResource.js @@ -7,134 +7,155 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.factory('ItemResource', (Resource, $http, BASE_URL, ITEM_BATCH_SIZE) => { +app.factory('ItemResource', function (Resource, $http, BASE_URL, + ITEM_BATCH_SIZE) { 'use strict'; - class ItemResource extends Resource { + var ItemResource = function ($http, BASE_URL, ITEM_BATCH_SIZE) { + Resource.call(this, $http, BASE_URL); + this.starredCount = 0; + this.batchSize = ITEM_BATCH_SIZE; + }; - constructor ($http, BASE_URL, ITEM_BATCH_SIZE) { - super($http, BASE_URL); - this.starredCount = 0; - this.batchSize = ITEM_BATCH_SIZE; - } + ItemResource.prototype = Object.create(Resource.prototype); - receive (value, channel) { - switch (channel) { + ItemResource.prototype.receive = function (value, channel) { + switch (channel) { - case 'newestItemId': - this.newestItemId = value; - break; + case 'newestItemId': + this.newestItemId = value; + break; - case 'starred': - this.starredCount = value; - break; + case 'starred': + this.starredCount = value; + break; - default: - super.receive(value, channel); - } + default: + Resource.prototype.receive.call(this, value, channel); } + }; - getNewestItemId () { - return this.newestItemId; - } + ItemResource.prototype.getNewestItemId = function () { + return this.newestItemId; + }; + + + ItemResource.prototype.getStarredCount = function () { + return this.starredCount; + }; - getStarredCount () { - return this.starredCount; + ItemResource.prototype.star = function (itemId, isStarred) { + if (isStarred === undefined) { + isStarred = true; } + var it = this.get(itemId); + var url = this.BASE_URL + + '/items/' + it.feedId + '/' + it.guidHash + '/star'; - star (itemId, isStarred=true) { - let it = this.get(itemId); - let url = `${this.BASE_URL}/items/${it.feedId}/${it.guidHash}/star`; + it.starred = isStarred; - it.starred = isStarred; + if (isStarred) { + this.starredCount += 1; + } else { + this.starredCount -= 1; + } - if (isStarred) { - this.starredCount += 1; - } else { - this.starredCount -= 1; + return this.http({ + url: url, + method: 'POST', + data: { + isStarred: isStarred } + }); + }; + - return this.http({ - url: url, - method: 'POST', - data: { - isStarred: isStarred - } - }); + ItemResource.prototype.toggleStar = function (itemId) { + if (this.get(itemId).starred) { + this.star(itemId, false); + } else { + this.star(itemId, true); } + }; - toggleStar (itemId) { - if (this.get(itemId).starred) { - this.star(itemId, false); - } else { - this.star(itemId, true); - } + ItemResource.prototype.markItemRead = function (itemId, isRead) { + if (isRead === undefined) { + isRead = true; } + this.get(itemId).unread = !isRead; + return this.http({ + url: this.BASE_URL + '/items/' + itemId + '/read', + method: 'POST', + data: { + isRead: isRead + } + }); + }; - markItemRead (itemId, isRead=true) { - this.get(itemId).unread = !isRead; - return this.http({ - url: `${this.BASE_URL}/items/${itemId}/read`, - method: 'POST', - data: { - isRead: isRead - } - }); - } + ItemResource.prototype.markItemsRead = function (itemIds) { + var self = this; - markItemsRead (itemIds) { - for (let itemId of itemIds) { - this.get(itemId).unread = false; + itemIds.forEach(function(itemId) { + self.get(itemId).unread = false; + }); + + return this.http({ + url: this.BASE_URL + '/items/read/multiple', + method: 'POST', + data: { + itemIds: itemIds } + }); + }; + - return this.http({ - url: `${this.BASE_URL}/items/read/multiple`, - method: 'POST', - data: { - itemIds: itemIds - } - }); + ItemResource.prototype.markFeedRead = function (feedId, read) { + if (read === undefined) { + read = true; } + var items = this.values.filter(function (element) { + return element.feedId === feedId; + }); - markFeedRead (feedId, read=true) { - for (let item of this.values.filter(i => i.feedId === feedId)) { - item.unread = !read; - } - return this.http.post(`${this.BASE_URL}/feeds/${feedId}/read`); - } + items.forEach(function (item) { + item.unread = !read; + }); + return this.http.post(this.BASE_URL + '/feeds/' + 'feedId' + '/read'); + }; - markRead () { - for (let item of this.values) { - item.unread = false; - } - return this.http.post(`${this.BASE_URL}/items/read`); - } + ItemResource.prototype.markRead = function () { + this.values.forEach(function (item) { + item.unread = false; + }); - autoPage (type, id) { - return this.http({ - url: `${this.BASE_URL}/items`, - method: 'GET', - params: { - type: type, - id: id, - offset: this.size(), - limit: this.batchSize - } - }); - } + return this.http.post(this.BASE_URL + '/items/read'); + }; + + + ItemResource.prototype.autoPage = function (type, id) { + return this.http({ + url: this.BASE_URL + '/items', + method: 'GET', + params: { + type: type, + id: id, + offset: this.size(), + limit: this.batchSize + } + }); + }; - } return new ItemResource($http, BASE_URL, ITEM_BATCH_SIZE); });
\ No newline at end of file diff --git a/js/service/Loading.js b/js/service/Loading.js index c07dba9fe..eb42655a5 100644 --- a/js/service/Loading.js +++ b/js/service/Loading.js @@ -16,11 +16,11 @@ app.service('Loading', function () { autopaging: false }; - this.setLoading = (area, isLoading) => { + this.setLoading = function (area, isLoading) { this.loading[area] = isLoading; }; - this.isLoading = (area) => { + this.isLoading = function (area) { return this.loading[area]; }; diff --git a/js/service/Publisher.js b/js/service/Publisher.js index dd420f629..b5d44c264 100644 --- a/js/service/Publisher.js +++ b/js/service/Publisher.js @@ -14,26 +14,31 @@ app.service('Publisher', function () { this.channels = {}; - this.subscribe = (obj) => { + this.subscribe = function (obj) { + var self = this; + return { - toChannels: (...channels) => { - for (let channel of channels) { - this.channels[channel] = this.channels[channel] || []; - this.channels[channel].push(obj); - } + toChannels: function (channels) { + channels.forEach(function (channel) { + self.channels[channel] = self.channels[channel] || []; + self.channels[channel].push(obj); + }); } }; }; - this.publishAll = (data) => { - for (let [channel, messages] of items(data)) { - if (this.channels[channel] !== undefined) { - for (let listener of this.channels[channel]) { - listener.receive(messages, channel); - } + this.publishAll = function (data) { + var self = this; + + Object.keys(data).forEach(function (channel) { + var listeners = self.channels[channel]; + if (listeners !== undefined) { + listeners.forEach(function (listener) { + listener.receive(data[channel], channel); + }); } - } + }); }; });
\ No newline at end of file diff --git a/js/service/Resource.js b/js/service/Resource.js index 072abca18..c2633c83e 100644 --- a/js/service/Resource.js +++ b/js/service/Resource.js @@ -7,85 +7,84 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.factory('Resource', () => { +app.factory('Resource', function () { 'use strict'; - class Resource { - - - constructor (http, BASE_URL, id='id') { - this.id = id; - this.values = []; - this.hashMap = {}; - this.http = http; - this.BASE_URL = BASE_URL; - } - - - receive (objs) { - for (let obj of objs) { - this.add(obj); - } + var Resource = function (http, BASE_URL, id) { + this.id = id || 'id'; + this.values = []; + this.hashMap = {}; + this.http = http; + this.BASE_URL = BASE_URL; + }; + + + Resource.prototype.receive = function (objs) { + var self = this; + objs.forEach(function (obj) { + self.add(obj); + }); + }; + + + Resource.prototype.add = function (obj) { + var existing = this.hashMap[obj[this.id]]; + + if (existing === undefined) { + this.values.push(obj); + this.hashMap[obj[this.id]] = obj; + } else { + // copy values from new to old object if it exists already + Object.keys(obj).forEach(function (key) { + existing[key] = obj[key]; + }); } + }; - add (obj) { - let existing = this.hashMap[obj[this.id]]; + Resource.prototype.size = function () { + return this.values.length; + }; - if (existing === undefined) { - this.values.push(obj); - this.hashMap[obj[this.id]] = obj; - } else { - // copy values from new to old object if it exists already - for (let [key, value] of items(obj)) { - existing[key] = value; - } - } - } + Resource.prototype.get = function (id) { + return this.hashMap[id]; + }; - size () { - return this.values.length; - } + Resource.prototype.delete = function (id) { + // find index of object that should be deleted + var self = this; + var deleteAtIndex = this.values.findIndex(function(element) { + return element[self.id] === id; + }); - get (id) { - return this.hashMap[id]; + if (deleteAtIndex !== undefined) { + this.values.splice(deleteAtIndex, 1); } - - delete (id) { - // find index of object that should be deleted - let deleteAtIndex = this.values.findIndex(e => e[this.id] === id); - - if (deleteAtIndex !== undefined) { - this.values.splice(deleteAtIndex, 1); - } - - if (this.hashMap[id] !== undefined) { - delete this.hashMap[id]; - } + if (this.hashMap[id] !== undefined) { + delete this.hashMap[id]; } + }; - clear () { - this.hashMap = {}; + Resource.prototype.clear = function () { + this.hashMap = {}; - // http://stackoverflow.com/questions/1232040 - // this is the fastes way to empty an array when you want to keep - // the reference around - while (this.values.length > 0) { - this.values.pop(); - } + // http://stackoverflow.com/questions/1232040 + // this is the fastes way to empty an array when you want to keep + // the reference around + while (this.values.length > 0) { + this.values.pop(); } + }; - getAll () { - return this.values; - } - + Resource.prototype.getAll = function () { + return this.values; + }; - } return Resource; });
\ No newline at end of file diff --git a/js/service/SettingsResource.js b/js/service/SettingsResource.js index 70ed1ab0f..291221472 100644 --- a/js/service/SettingsResource.js +++ b/js/service/SettingsResource.js @@ -28,30 +28,34 @@ app.service('SettingsResource', function ($http, BASE_URL) { 'tzm-la', 'tzm', 'uk', 'zh-cn', 'zh-tw' ]; - this.receive = (data) => { - for (let [key, value] of items(data)) { + this.receive = function (data) { + var self = this; + Object.keys(data).forEach(function (key) { + var value = data[key]; + if (key === 'language') { - value = this.processLanguageCode(value); + value = self.processLanguageCode(value); } - this.settings[key] = value; - } + + self.settings[key] = value; + }); }; - this.get = (key) => { + this.get = function (key) { return this.settings[key]; }; - this.set = (key, value) => { + this.set = function (key, value) { this.settings[key] = value; return $http({ - url: `${BASE_URL}/settings`, + url: BASE_URL + '/settings', method: 'PUT', data: this.settings }); }; - this.processLanguageCode = (languageCode) => { + this.processLanguageCode = function (languageCode) { languageCode = languageCode.replace('_', '-').toLowerCase(); if (this.supportedLanguageCodes.indexOf(languageCode) < 0) { diff --git a/js/utility/Iterators.js b/js/utility/Iterators.js deleted file mode 100644 index 1f96aab71..000000000 --- a/js/utility/Iterators.js +++ /dev/null @@ -1,70 +0,0 @@ -/** - * ownCloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @copyright Bernhard Posselt 2014 - */ - -const call = Function.prototype.call.bind(Function.prototype.call); -const hasOwn = Object.prototype.hasOwnProperty; - -/** - * From http://wiki.ecmascript.org/doku.php?id=harmony:iterators#standard_api - * Allows to iterate over objects - * like: for (let [key, value] of objects) - */ -window.items = function (obj) { - 'use strict'; - - return { - [Symbol.iterator]: function () { - return (function*() { - for (let x in obj) { - if (call(hasOwn, obj, x)) - yield [x, obj[x]]; - } - })(); - } - }; -}; - -/** - * Iterates over a list and returns the item and index - * like: for (let [index, value] of enumerate(list)) - * Similar to Pythons enumerate() iterator function - */ -window.enumerate = function (list) { - 'use strict'; - - return { - [Symbol.iterator]: function () { - return (function*() { - for (let counter = 0; counter < list.length; counter += 1) { - yield [counter, list[counter]]; - } - })(); - } - }; -}; - - -/** - * Iterates over a list in reverse - * like: for (let value of reverse(list)) - */ -window.reverse = function (list) { - 'use strict'; - - return { - [Symbol.iterator]: function () { - return (function*() { - for (let counter = list.length; counter >= 0 ; counter -= 1) { - yield list[counter]; - } - })(); - } - }; -};
\ No newline at end of file diff --git a/js/vendor/es6-shim/.bower.json b/js/vendor/es6-shim/.bower.json new file mode 100644 index 000000000..da6e71fa5 --- /dev/null +++ b/js/vendor/es6-shim/.bower.json @@ -0,0 +1,41 @@ +{ + "name": "es6-shim", + "repo": "paulmillr/es6-shim", + "version": "0.18.0", + "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", + "keywords": [ + "ecmascript", + "harmony", + "es6", + "shim", + "promise", + "promises", + "setPrototypeOf", + "map", + "set", + "__proto__" + ], + "main": "es6-shim.js", + "scripts": [ + "es6-shim.js" + ], + "dependencies": {}, + "development": {}, + "ignore": [ + "**/.*", + "node_modules", + "components", + "test" + ], + "homepage": "https://github.com/paulmillr/es6-shim", + "_release": "0.18.0", + "_resolution": { + "type": "version", + "tag": "0.18.0", + "commit": "0b6d1dda46c13dfc9d1240a4f5e1b31ed78c8c0b" + }, + "_source": "git://github.com/paulmillr/es6-shim.git", + "_target": "~0.18.0", + "_originalSource": "es6-shim", + "_direct": true +}
\ No newline at end of file diff --git a/js/vendor/es6-shim/CHANGELOG.md b/js/vendor/es6-shim/CHANGELOG.md new file mode 100644 index 000000000..4c3ae2b28 --- /dev/null +++ b/js/vendor/es6-shim/CHANGELOG.md @@ -0,0 +1,163 @@ +# es6-shim x.x.x (not yet released) + +# es6-shim 0.18.0 (6 Sep 2014) +* Speed up String#trim replacement (#284) +* named Array#find and Array#findIndex for easier debugging +* Replace broken native implementation in Firefox 25-31 for Array#find and Array#findIndex +* Ensure String.fromCodePoint has the correct length in Firefox +* List the license in `package.json` for `npm` +* Array.from: fix spec bug with Array.from([], undefined) throwing +* Array.from: fix Firefox Array.from bug wrt swallowing negative lengths vs throwing + +# es6-shim 0.17.0 (31 Aug 2014) +* Added es6-sham (#281) +* Fixing some flaky tests (#268) +* Tweaking how ArrayIterator is checked in its "next" function +* Cleaning up some of the logic in Array.from + +# es6-shim 0.16.0 (6 Aug 2014) +* Array#find and Array#findIndex: no longer skips holes in sparse arrays, per https://bugs.ecmascript.org/show_bug.cgi?id=3107 + +# es6-shim 0.15.1 (5 Aug 2014) +* Array.from: now correctly throws if provided `undefined` as a mapper function +* Array.from: now correctly works if provided a falsy `thisArg` +* Fix tests so they work properly when Array#(values|keys|entries) are not present +* Add `npm run lint` to run style checks independently +* Add `test/native.html` so browsers can be easily checked for shim-less compliance. + +# es6-shim 0.15.0 (31 Jul 2014) +* Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096 + +# es6-shim 0.14.0 (20 Jul 2014) +* Properly recognize Symbol.iterator when it is present (#277) +* Fix Math.clz's improper handling of values that coerce to NaN (#269) +* Fix incorrect handling of negative end index on Array#fill (#270) +* Removed Object.getOwnPropertyKeys, which shouldn't be anywhere (#267) +* Fixed arity of Map and Set constructors, per 2014.04.27 draft spec (rev 24) +* Added a full additional suite of ES6 promise tests (thanks to @smikes!) (#265) +* Make Number.isInteger a bit more efficient (#266) +* Added `npm run test-native` to expose how broken implementations are without the shim ;-) +* Added additional tests + +# es6-shim 0.13.0 (11 Jun 2014) +* Adapt to new Array.from changes: mapper function is now called with both value and index (#261, #262) +* More reliably getting the global object in strict mode to fix node-webkit (#258, #259) +* Properly test the global Promise for ignoring non-function callbacks (#258) + +# es6-shim 0.12.0 (4 Jun 2014) +* Fix String#trim implementations that incorrectly trim \u0085 +* Stop relying on ArrayIterator being a public var, fixing Safari 8 + +# es6-shim 0.11.1 (2 Jun 2014) +* Make sure to shim Object.assign in all environments, not just true ES5 +* Now including minified file and source map + +# es6-shim 0.11.0 (11 May 2014) +* Remove `Object.getOwnPropertyDescriptors`, per spec. (#234, #235) +* IE8 fixes. (#163, #236) +* Improve `Promise` scheduling. (#231) +* Add some more standalone shims +* Use an Object.create fallback, for better ES3 compatibility +* Fix Math.expm1 in more browsers (#84) +* Fix es6-shim in Web Workers (#247, #248) +* Correct Object.assign to take multiple sources (#241) + +# es6-shim 0.10.1 (13 Mar 2014) +* Update bower.json, component.json, and .npmignore (#229, #230, #233) +* Minor updates to `Promise` implementation and test suite. +* Workaround lack of 'strict mode' in IE9. (#232) + +# es6-shim 0.10.0 (1 March 2014) +* Implement `Promise`, per spec. (#209, #215, #224, #225) +* Make `Map`/`Set` subclassable; support `iterable` argument to + constructor (#218) +* Rename `Number#clz` to `Math.clz32` (#217) +* Bug fixes to `Array#find` and `Array#findIndex` on sparse arrays (#213) +* Re-add `Number.isInteger` (mistakenly removed in 0.9.0) +* Allow use of `arguments` as an iterable +* Minor spec-compliance fixes for `String.raw` +* In ES6, `Object.keys` accepts non-Object types (#220) +* Improved browser compatibility with IE 9/10, Opera 12 (#225) + +# es6-shim 0.9.3 (5 February 2014) +* Per spec, removed `Object.mixin` (#192) +* Per spec, treat -0 and +0 keys as identical in Map/Set (#129, #204) +* Per spec, `ArrayIterator`/`Array#values()` skips sparse indexes now. (#189) +* Added `Array.from`, supporting Map/Set/Array/String iterators (the String iterator iterates over codepoints, not indexes) (#182) +* Bug fixes to Map/Set iteration after concurrent delete. (#183) +* Bug fixes to `Number.clz`: 0 and 0x100000000 are handled correctly now. (#196) +* Added `Math.fround` to truncate to a 32-bit floating point number. (#140) +* Bug fix for `Math.cosh` (#178) +* Work around Firefox bugs in `String#startsWith` and `String#endsWith` (#172) +* Work around Safari bug in `Math.imul` + +# es6-shim 0.9.2 (18 December 2013) +* Negative `String#endsWith` position is now handled properly. +* `TypeError` is now thrown when string methods are called + on `null` / `undefined`. + +# es6-shim 0.9.1 (28 October 2013) +* Added `Array#copyWithin` and `Number.MIN_SAFE_INTEGER` +* Big speed-up of Maps / Sets for string / number keys: + they are O(1) now. +* Changed `Math.hypot` according to spec. +* Other small fixes. + +# es6-shim 0.9.0 (30 August 2013) +* Added Array iteration methods: `Array#keys`, `Array#values`, `Array#entries`, which return an `ArrayIterator` +* Changed `Map` and `Set` constructors to conform to spec when called without `new` +* Added `Math.imul` +* Per spec, removed `Number.toInteger`, `Number.isInteger`, and `Number.MAX_INTEGER`; added `Number.isSafeInteger`, `Number.MAX_SAFE_INTEGER` +* Added extensive additional tests for many methods + +# es6-shim 0.8.0 (8 June 2013) +* Added `Object.setPrototypeOf`, `Set#keys`, `Set#values`, `Map#keys`, `Map#values`, `Map#entries`, `Set#entries`. +* Fixed `String#repeat` according to spec. + +# es6-shim 0.7.0 (2 April 2013) +* Added `Array#find`, `Array#findIndex`, `Object.assign`, `Object.mixin`, + `Math.cbrt`, `String.fromCodePoint`, `String#codePointAt`. +* Removed `Object.isnt`. +* Made Math functions fully conform spec. + +# es6-shim 0.6.0 (15 January 2013) +* Added `Map#keys`, `Map#values`, `Map#size`, `Set#size`, `Set#clear`. + +# es6-shim 0.5.3 (2 September 2012) +* Made `String#startsWith`, `String#endsWith` fully conform spec. + +# es6-shim 0.5.2 (17 June 2012) +* Removed `String#toArray` and `Object.isObject` as per spec updates. + +# es6-shim 0.5.1 (14 June 2012) +* Made Map and Set follow Spidermonkey implementation instead of V8. +`var m = Map(); m.set('key', void 0); m.has('key');` now gives true. + +# es6-shim 0.5.0 (13 June 2012) +* Added Number.MAX_INTEGER, Number.EPSILON, Number.parseInt, +Number.parseFloat, Number.prototype.clz, Object.isObject. + +# es6-shim 0.4.1 (11 May 2012) +* Fixed boundary checking in Number.isInteger. + +# es6-shim 0.4.0 (8 February 2012) +* Added Math.log10, Math.log2, Math.log1p, Math.expm1, Math.cosh, +Math.sinh, Math.tanh, Math.acosh, Math.asinh, Math.atanh, Math.hypot, +Math.trunc. + +# es6-shim 0.3.1 (30 January 2012) +* Added IE8 support. + +# es6-shim 0.3.0 (27 January 2012) +* Added Number.isFinite() and Object.isnt(). + +# es6-shim 0.2.1 (7 January 2012) +* Fixed a bug in String#endsWith(). + +# es6-shim 0.2.0 (25 December 2011) +* Added browser support. +* Added tests. +* Added Math.sign(). + +# es6-shim 0.1.0 (25 December 2011) +* Initial release diff --git a/js/vendor/es6-shim/Gruntfile.js b/js/vendor/es6-shim/Gruntfile.js new file mode 100644 index 000000000..73e25feb0 --- /dev/null +++ b/js/vendor/es6-shim/Gruntfile.js @@ -0,0 +1,98 @@ +module.exports = function(grunt) { + var browsers = [ + { browserName: "firefox", version: "19", platform: "XP" }, + { browserName: "firefox", platform: "linux" }, + { browserName: "chrome", platform: "linux" }, + { browserName: "internet explorer", platform: "Windows 8.1", version: "11" }, + { browserName: "internet explorer", platform: "WIN8", version: "10" }, + { browserName: "internet explorer", platform: "VISTA", version: "9" }, + { browserName: 'safari', platform: 'OS X 10.6' }, + { browserName: 'safari', platform: 'OS X 10.8' }, + { browserName: 'safari', platform: 'OS X 10.9' }, + { browserName: 'iphone', platform: 'OS X 10.9', version: '7.1' }, + { browserName: 'android', platform: 'Linux', version: '4.4' }, + ]; + var extraBrowsers = [ + { browserName: "firefox", platform: "linux", version: "30" }, + { browserName: "firefox", platform: "linux", version: "25" }, + { browserName: "firefox", platform: "OS X 10.9" }, + { browserName: "chrome", platform: "XP" }, + { browserName: "chrome", platform: "OS X 10.9" }, + { browserName: 'iphone', platform: 'OS X 10.8', version: '6.1' }, + { browserName: 'iphone', platform: 'OS X 10.8', version: '5.1' }, + { browserName: 'android', platform: 'Linux', version: '4.2' }, + // XXX haven't investigated these: + //{ browserName: "opera", platform: "Windows 2008", version: "12" } + //{ browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' }, + //{ browserName: 'android', platform: 'Linux', version: '4.0' }, + ]; + if (grunt.option('extra')) { + browsers = browsers.concat(extraBrowsers); + } + grunt.initConfig({ + connect: { + server: { + options: { + base: "", + port: 9999, + useAvailablePort: true + } + } + }, + 'saucelabs-mocha': { + all: { + options: { + urls: (function() { + var urls = ["http://localhost:9999/test/"]; + if (grunt.option('extra')) { + urls.push("http://localhost:9999/test-sham/"); + } + return urls; + })(), + //tunnelTimeout: 5, + build: process.env.TRAVIS_BUILD_NUMBER, + tunneled: !process.env.SAUCE_HAS_TUNNEL, + identifier: process.env.TRAVIS_JOB_NUMBER, + sauceConfig: { + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER + }, + //concurrency: 3, + browsers: browsers, + testname: (function() { + var testname = "mocha"; + if (process.env.TRAVIS_PULL_REQUEST && + process.env.TRAVIS_PULL_REQUEST !== 'false') { + testname += ' (PR '+process.env.TRAVIS_PULL_REQUEST+')'; + } + if (process.env.TRAVIS_BRANCH && + process.env.TRAVIS_BRANCH !== 'false') { + testname += ' (branch '+process.env.TRAVIS_BRANCH+')'; + } + return testname; + })(), + tags: (function() { + var tags = []; + if (process.env.TRAVIS_PULL_REQUEST && + process.env.TRAVIS_PULL_REQUEST !== 'false') { + tags.push('PR-'+process.env.TRAVIS_PULL_REQUEST); + } + if (process.env.TRAVIS_BRANCH && + process.env.TRAVIS_BRANCH !== 'false') { + tags.push(process.env.TRAVIS_BRANCH); + } + return tags; + })() + } + } + }, + watch: {} + }); + // Loading dependencies + for (var key in grunt.file.readJSON("package.json").devDependencies) { + if (key !== "grunt" && key.indexOf("grunt") === 0) { + grunt.loadNpmTasks(key); + } + } + grunt.registerTask("dev", ["connect", "watch"]); + grunt.registerTask("sauce", ["connect", "saucelabs-mocha"]); +}; diff --git a/js/vendor/es6-shim/README.md b/js/vendor/es6-shim/README.md new file mode 100644 index 000000000..7d08f3525 --- /dev/null +++ b/js/vendor/es6-shim/README.md @@ -0,0 +1,221 @@ +# ES6 Shim +Provides compatibility shims so that legacy JavaScript engines behave as +closely as possible to ECMAScript 6 (Harmony). + +[![Build Status][1]][2] [![dependency status][3]][4] [![dev dependency status][5]][6] + +[![browser support](https://ci.testling.com/paulmillr/es6-shim.png)](https://ci.testling.com/paulmillr/es6-shim) + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/es6-shim.svg)](https://saucelabs.com/u/es6-shim) + +## Installation +If you want to use it in browser: + +* Just include es6-shim before your scripts. +* Include [es5-shim](https://github.com/kriskowal/es5-shim) if your browser doesn't support ECMAScript 5. +* `component install paulmillr/es6-shim` if you’re using [component(1)](https://github.com/component/component). +* `bower install es6-shim` if you’re using [Twitter Bower](http://bower.io/). + +For node.js: + + npm install es6-shim + +In both browser and node you may also want to include `unorm`; see the +[`String.prototype.normalize`](#stringprototypenormalize) section for +details. + +## Safe shims + +* `Map`, `Set` (requires ES5) +* `Promise` +* `String`: + * `fromCodePoint()` ([a standalone shim is also available](http://mths.be/fromcodepoint)) + * `raw()` +* `String.prototype`: + * `codePointAt()` ([a standalone shim is also available](http://mths.be/codepointat)) + * `repeat()` ([a standalone shim is also available](http://mths.be/repeat)) + * `startsWith()` ([a standalone shim is also available](http://mths.be/startswith)) + * `endsWith()` ([a standalone shim is also available](http://mths.be/endswith)) + * `contains()` ([a standalone shim is also available](http://mths.be/contains)) +* `Number`: + * `MAX_SAFE_INTEGER` + * `MIN_SAFE_INTEGER` + * `EPSILON` + * `parseInt()` + * `parseFloat()` + * `isNaN()`([a standalone shim is also available](https://npmjs.org/package/is-nan)) + * `isInteger()` + * `isSafeInteger()` + * `isFinite()` +* `Array`: + * `from()` ([a standalone shim is also available](https://npmjs.org/package/array.from)) + * `of()` ([a standalone shim is also available](https://npmjs.org/package/array.of)) +* `Array.prototype`: + * `copyWithin()` + * `fill()` + * `find()` ([a standalone shim is also available](https://github.com/paulmillr/Array.prototype.find)) + * `findIndex()` ([a standalone shim is also available](https://github.com/paulmillr/Array.prototype.findIndex)) + * `keys()` (note: keys/values/entries return an `ArrayIterator` object) + * `entries()` + * `values()` +* `Object`: + * `getPropertyDescriptor()` (ES5) + * `getPropertyNames()` (ES5) + * `getPropertyKeys()` (ES5) + * `keys()` (ES5, but no longer throws on non-object non-null/undefined values in ES6) + * `is()` ([a standalone shim is also available](https://github.com/ljharb/object-is)) + * `assign()` ([a standalone shim is also available](https://github.com/ljharb/object.assign)) + * `setPrototypeOf()` (IE >= 11) +* `Math`: + * `acosh()` + * `asinh()` + * `atanh()` + * `cbrt()` + * `clz32()` + * `cosh()` + * `expm1()` + * `hypot()` + * `log2()` + * `log10()` + * `log1p()` + * `sign()` + * `sinh()` + * `tanh()` + * `trunc()` + * `imul()` + * `fround()` + +Math functions accuracy is 1e-11. + +## Subclassing +The `Map`, `Set`, and `Promise` implementations are subclassable. +You should use the following pattern to create a subclass in ES5 which +will continue to work in ES6: +```javascript +function MyPromise(exec) { + Promise.call(this, exec); + // ... +} +Object.setPrototypeOf(MyPromise, Promise); +MyPromise.prototype = Object.create(Promise.prototype, { + constructor: { value: MyPromise } +}); +``` + +## String.prototype.normalize +Including a proper shim for `String.prototype.normalize` would +increase the size of this library by a factor of more than 4. +So instead we recommend that you install the +[`unorm`](https://github.com/walling/unorm) +package alongside `es6-shim` if you need `String.prototype.normalize`. +See https://github.com/paulmillr/es6-shim/issues/134 for more +discussion. + + +## WeakMap shim +It is not possible to implement WeakMap in pure javascript. +The [es6-collections](https://github.com/WebReflection/es6-collections) +implementation doesn't hold values strongly, which is critical +for the collection. es6-shim decided to not include an incorrect shim. + +WeakMap has a very unusual use-case so you probably won't need it at all +(use simple `Map` instead). + +## Getting started + +```javascript +'abc'.startsWith('a') // true +'abc'.endsWith('a') // false +'john alice'.contains('john') // true +'123'.repeat(2) // '123123' + +Object.is(NaN, NaN) // Fixes ===. 0 isnt -0, NaN is NaN +Object.assign({a: 1}, {b: 2}) // {a: 1, b: 2} + +Number.isNaN('123') // false. isNaN('123') will give true. +Number.isFinite('asd') // false. Global isFinite() will give true. +// Tests if value is a number, finite, +// >= -9007199254740992 && <= 9007199254740992 and floor(value) === value +Number.isInteger(2.4) // false. + +Math.sign(400) // 1, 0 or -1 depending on sign. In this case 1. + +[5, 10, 15, 10].find(function(item) {return item / 2 === 5;}) // 10 +[5, 10, 15, 10].findIndex(function(item) {return item / 2 === 5;}) // 1 + +// Replacement for `{}` key-value storage. +// Keys can be anything. +var map = new Map() +map.set('John', 25) +map.set('Alice', 400) +map.set(['meh'], 555) +map.get(['meh']) // undefined because you need to use exactly the same object. +map.delete('Alice') +map.keys() +map.values() +map.size // 2 + +// Useful for storing unique items. +var set = new Set() +set.add(1) +set.add(5) +set.has(1) +set.has(4) // => false +set.delete(5) + +// Promises, see +// http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript +// https://github.com/petkaantonov/bluebird/#what-are-promises-and-why-should-i-use-them +Promise.resolve(5).then(function(value) { + if ( ... ) throw new Error("whoops!"); + // do some stuff + return anotherPromise(); +}).catch(function(e) { + // any errors thrown asynchronously end up here +}); +``` + +Note that the ES6 `Promise` specification includes very few methods. +For a more useful set of utility methods +(`map`/`reduce`/`bind`/`guard`/etc), you might want to look into the +[`prfun`](https://github.com/cscott/prfun) package. + +Other stuff: + +* [ECMAScript 6 drafts](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts) +* [Harmony proposals](http://wiki.ecmascript.org/doku.php?id=harmony:harmony) + +## License +The project was initially based on [es6-shim by Axel Rauschmayer](https://github.com/rauschma/es6-shim). + +Current maintainers are: [Paul Miller](http://paulmillr.com), [Jordan Harband](https://github.com/ljharb), and [C. Scott Ananian](http://cscott.net). + +The MIT License (MIT) + +Copyright (c) 2013-2014 Paul Miller (http://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[1]: https://travis-ci.org/paulmillr/es6-shim.svg +[2]: https://travis-ci.org/paulmillr/es6-shim +[3]: https://david-dm.org/paulmillr/es6-shim.svg +[4]: https://david-dm.org/paulmillr/es6-shim +[5]: https://david-dm.org/paulmillr/es6-shim/dev-status.svg +[6]: https://david-dm.org/paulmillr/es6-shim#info=devDependencies + diff --git a/js/vendor/es6-shim/bower.json b/js/vendor/es6-shim/bower.json new file mode 100644 index 000000000..a6a3d156e --- /dev/null +++ b/js/vendor/es6-shim/bower.json @@ -0,0 +1,29 @@ +{ + "name": "es6-shim", + "repo": "paulmillr/es6-shim", + "version": "0.18.0", + "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", + "keywords": [ + "ecmascript", + "harmony", + "es6", + "shim", + "promise", + "promises", + "setPrototypeOf", + "map", + "set", + "__proto__" + ], + "main": "es6-shim.js", + "scripts": ["es6-shim.js"], + "dependencies": {}, + "development": {}, + "ignore": [ + "**/.*", + "node_modules", + "components", + "test" + ] +} + diff --git a/js/vendor/es6-shim/component.json b/js/vendor/es6-shim/component.json new file mode 100644 index 000000000..dce105fd8 --- /dev/null +++ b/js/vendor/es6-shim/component.json @@ -0,0 +1,23 @@ +{ + "name": "es6-shim", + "repo": "paulmillr/es6-shim", + "version": "0.18.0", + "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", + "keywords": [ + "ecmascript", + "harmony", + "es6", + "shim", + "promise", + "promises", + "setPrototypeOf", + "map", + "set", + "__proto__" + ], + "main": "es6-shim.js", + "scripts": ["es6-shim.js"], + "dependencies": {}, + "development": {} +} + diff --git a/js/vendor/es6-shim/es6-sham.js b/js/vendor/es6-shim/es6-sham.js new file mode 100644 index 000000000..32fadd25c --- /dev/null +++ b/js/vendor/es6-shim/es6-sham.js @@ -0,0 +1,106 @@ +// ES6-shim 0.18.0 (c) 2013-2014 Paul Miller (http://paulmillr.com) +// ES6-shim may be freely distributed under the MIT license. +// For more details and documentation: +// https://github.com/paulmillr/es6-shim/ + +(function (undefined) { + 'use strict'; + + /*jshint evil: true */ + var getGlobal = new Function('return this;'); + /*jshint evil: false */ + + var main = function () { + var globals = getGlobal(); + var Object = globals.Object; + + // NOTE: This versions needs object ownership + // beacuse every promoted object needs to be reassigned + // otherwise uncompatible browsers cannot work as expected + // + // NOTE: This might need es5-shim or polyfills upfront + // because it's based on ES5 API. + // (probably just an IE <= 8 problem) + // + // NOTE: nodejs is fine in version 0.8, 0.10 and future versions. + if (!Object.setPrototypeOf) (function () { + /*jshint proto: true */ + // @author Andrea Giammarchi - @WebReflection + // define into target descriptors from source + var copyDescriptors = function (target, source) { + getOwnPropertyNames(source).forEach(function (key) { + defineProperty( + target, + key, + getOwnPropertyDescriptor(source, key) + ); + }); + return target; + }; + // used as fallback when no promotion is possible + var createAndCopy = function (origin, proto) { + return copyDescriptors(create(proto), origin); + }; + var create = Object.create; + var defineProperty = Object.defineProperty; + var getPrototypeOf = Object.getPrototypeOf; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var proto = Object.prototype; + var set, setPrototypeOf; + + try { + // this might fail for various reasons + // ignore if Chrome cought it at runtime + set = getOwnPropertyDescriptor(proto, '__proto__').set; + set.call({}, null); + // setter not poisoned, it can promote + // Firefox, Chrome + setPrototypeOf = function (origin, proto) { + set.call(origin, proto); + return origin; + }; + } catch (e) { + // do one or more feature detections + set = {__proto__: null}; + // if proto does not work, needs to fallback + // some Opera, Rhino, ducktape + if (set instanceof Object) { + setPrototypeOf = createAndCopy; + } else { + // verify if null objects are buggy + set.__proto__ = proto; + // if null objects are buggy + // nodejs 0.8 to 0.10 + if (set instanceof Object) { + setPrototypeOf = function (origin, proto) { + // use such bug to promote + origin.__proto__ = proto; + return origin; + }; + } else { + // try to use proto or fallback + // Safari, old Firefox, many others + setPrototypeOf = function (origin, proto) { + // if proto is not null + return getPrototypeOf(origin) ? + // use __proto__ to promote + ((origin.__proto__ = proto), origin) : + // otherwise unable to promote: fallback + createAndCopy(origin, proto); + }; + } + } + } + Object.setPrototypeOf = setPrototypeOf; + }()); + + }; + + if (typeof define === 'function' && define.amd) { + define(main); // RequireJS + } else { + main(); // CommonJS and <script> + } +}()); + diff --git a/js/vendor/es6-shim/es6-sham.map b/js/vendor/es6-shim/es6-sham.map new file mode 100644 index 000000000..d3878f544 --- /dev/null +++ b/js/vendor/es6-shim/es6-sham.map @@ -0,0 +1 @@ +{"version":3,"sources":["es6-sham.js"],"names":["undefined","getGlobal","Function","main","globals","Object","setPrototypeOf","copyDescriptors","target","source","getOwnPropertyNames","forEach","key","defineProperty","getOwnPropertyDescriptor","createAndCopy","origin","proto","create","getPrototypeOf","prototype","set","call","e","__proto__","define","amd"],"mappings":"CAKC,SAAUA,GACT,YAGA,IAAIC,GAAY,GAAIC,UAAS,eAG7B,IAAIC,GAAO,WACT,GAAIC,GAAUH,GACd,IAAII,GAASD,EAAQC,MAWrB,KAAKA,EAAOC,gBAAiB,WAI3B,GAAIC,GAAkB,SAAUC,EAAQC,GACtCC,EAAoBD,GAAQE,QAAQ,SAAUC,GAC5CC,EACEL,EACAI,EACAE,EAAyBL,EAAQG,KAGrC,OAAOJ,GAGT,IAAIO,GAAgB,SAAUC,EAAQC,GACpC,MAAOV,GAAgBW,EAAOD,GAAQD,GAExC,IAAIE,GAASb,EAAOa,MACpB,IAAIL,GAAiBR,EAAOQ,cAC5B,IAAIM,GAAiBd,EAAOc,cAC5B,IAAIT,GAAsBL,EAAOK,mBACjC,IAAII,GAA2BT,EAAOS,wBACtC,IAAIG,GAAQZ,EAAOe,SACnB,IAAIC,GAAKf,CAET,KAGEe,EAAMP,EAAyBG,EAAO,aAAaI,GACnDA,GAAIC,QAAS,KAGbhB,GAAiB,SAAUU,EAAQC,GACjCI,EAAIC,KAAKN,EAAQC,EACjB,OAAOD,IAET,MAAOO,GAEPF,GAAOG,UAAW,KAGlB,IAAIH,YAAehB,GAAQ,CACzBC,EAAiBS,MACZ,CAELM,EAAIG,UAAYP,CAGhB,IAAII,YAAehB,GAAQ,CACzBC,EAAiB,SAAUU,EAAQC,GAEjCD,EAAOQ,UAAYP,CACnB,OAAOD,QAEJ,CAGLV,EAAiB,SAAUU,EAAQC,GAEjC,MAAOE,GAAeH,IAElBA,EAAOQ,UAAYP,EAAQD,GAE7BD,EAAcC,EAAQC,MAKhCZ,EAAOC,eAAiBA,MAK5B,UAAWmB,UAAW,YAAcA,OAAOC,IAAK,CAC9CD,OAAOtB,OACF,CACLA"}
\ No newline at end of file diff --git a/js/vendor/es6-shim/es6-sham.min.js b/js/vendor/es6-shim/es6-sham.min.js new file mode 100644 index 000000000..47e04c644 --- /dev/null +++ b/js/vendor/es6-shim/es6-sham.min.js @@ -0,0 +1,2 @@ +(function(t){"use strict";var r=new Function("return this;");var e=function(){var t=r();var e=t.Object;if(!e.setPrototypeOf)(function(){var t=function(t,r){i(r).forEach(function(e){o(t,e,a(r,e))});return t};var r=function(r,e){return t(n(e),r)};var n=e.create;var o=e.defineProperty;var f=e.getPrototypeOf;var i=e.getOwnPropertyNames;var a=e.getOwnPropertyDescriptor;var c=e.prototype;var u,_;try{u=a(c,"__proto__").set;u.call({},null);_=function(t,r){u.call(t,r);return t}}catch(p){u={__proto__:null};if(u instanceof e){_=r}else{u.__proto__=c;if(u instanceof e){_=function(t,r){t.__proto__=r;return t}}else{_=function(t,e){return f(t)?(t.__proto__=e,t):r(t,e)}}}}e.setPrototypeOf=_})()};if(typeof define==="function"&&define.amd){define(e)}else{e()}})(); +//# sourceMappingURL=es6-sham.map
\ No newline at end of file diff --git a/js/vendor/es6-shim/es6-shim.js b/js/vendor/es6-shim/es6-shim.js new file mode 100644 index 000000000..5ac65e8c7 --- /dev/null +++ b/js/vendor/es6-shim/es6-shim.js @@ -0,0 +1,1928 @@ +// ES6-shim 0.18.0 (c) 2013-2014 Paul Miller (http://paulmillr.com) +// ES6-shim may be freely distributed under the MIT license. +// For more details and documentation: +// https://github.com/paulmillr/es6-shim/ + +(function(undefined) { + 'use strict'; + + var isCallableWithoutNew = function(func) { + try { func(); } + catch (e) { return false; } + return true; + }; + + var supportsSubclassing = function(C, f) { + /* jshint proto:true */ + try { + var Sub = function() { C.apply(this, arguments); }; + if (!Sub.__proto__) { return false; /* skip test on IE < 11 */ } + Object.setPrototypeOf(Sub, C); + Sub.prototype = Object.create(C.prototype, { + constructor: { value: C } + }); + return f(Sub); + } catch (e) { + return false; + } + }; + + var arePropertyDescriptorsSupported = function() { + try { + Object.defineProperty({}, 'x', {}); + return true; + } catch (e) { /* this is IE 8. */ + return false; + } + }; + + var startsWithRejectsRegex = function() { + var rejectsRegex = false; + if (String.prototype.startsWith) { + try { + '/a/'.startsWith(/a/); + } catch (e) { /* this is spec compliant */ + rejectsRegex = true; + } + } + return rejectsRegex; + }; + + /*jshint evil: true */ + var getGlobal = new Function('return this;'); + /*jshint evil: false */ + + var main = function() { + var globals = getGlobal(); + var global_isFinite = globals.isFinite; + var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported(); + var startsWithIsCompliant = startsWithRejectsRegex(); + var _slice = Array.prototype.slice; + var _indexOf = String.prototype.indexOf; + var _toString = Object.prototype.toString; + var _hasOwnProperty = Object.prototype.hasOwnProperty; + var ArrayIterator; // make our implementation private + + var defineProperty = function(object, name, value, force) { + if (!force && name in object) return; + if (supportsDescriptors) { + Object.defineProperty(object, name, { + configurable: true, + enumerable: false, + writable: true, + value: value + }); + } else { + object[name] = value; + } + }; + + // Define configurable, writable and non-enumerable props + // if they don’t exist. + var defineProperties = function(object, map) { + Object.keys(map).forEach(function(name) { + var method = map[name]; + defineProperty(object, name, method, false); + }); + }; + + // Simple shim for Object.create on ES3 browsers + // (unlike real shim, no attempt to support `prototype === null`) + var create = Object.create || function(prototype, properties) { + function Type() {} + Type.prototype = prototype; + var object = new Type(); + if (typeof properties !== "undefined") { + defineProperties(object, properties); + } + return object; + }; + + // This is a private name in the es6 spec, equal to '[Symbol.iterator]' + // we're going to use an arbitrary _-prefixed name to make our shims + // work properly with each other, even though we don't have full Iterator + // support. That is, `Array.from(map.keys())` will work, but we don't + // pretend to export a "real" Iterator interface. + var $iterator$ = (typeof Symbol === 'function' && Symbol.iterator) || + '_es6shim_iterator_'; + // Firefox ships a partial implementation using the name @@iterator. + // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14 + // So use that name if we detect it. + if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') { + $iterator$ = '@@iterator'; + } + var addIterator = function(prototype, impl) { + if (!impl) { impl = function iterator() { return this; }; } + var o = {}; + o[$iterator$] = impl; + defineProperties(prototype, o); + /* jshint notypeof: true */ + if (!prototype[$iterator$] && typeof $iterator$ === 'symbol') { + // implementations are buggy when $iterator$ is a Symbol + prototype[$iterator$] = impl; + } + }; + + // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js + // can be replaced with require('is-arguments') if we ever use a build process instead + var isArguments = function isArguments(value) { + var str = _toString.call(value); + var result = str === '[object Arguments]'; + if (!result) { + result = str !== '[object Array]' && + value !== null && + typeof value === 'object' && + typeof value.length === 'number' && + value.length >= 0 && + _toString.call(value.callee) === '[object Function]'; + } + return result; + }; + + var emulateES6construct = function(o) { + if (!ES.TypeIsObject(o)) throw new TypeError('bad object'); + // es5 approximation to es6 subclass semantics: in es6, 'new Foo' + // would invoke Foo.@@create to allocation/initialize the new object. + // In es5 we just get the plain object. So if we detect an + // uninitialized object, invoke o.constructor.@@create + if (!o._es6construct) { + if (o.constructor && ES.IsCallable(o.constructor['@@create'])) { + o = o.constructor['@@create'](o); + } + defineProperties(o, { _es6construct: true }); + } + return o; + }; + + var ES = { + CheckObjectCoercible: function(x, optMessage) { + /* jshint eqnull:true */ + if (x == null) + throw new TypeError(optMessage || ('Cannot call method on ' + x)); + return x; + }, + + TypeIsObject: function(x) { + /* jshint eqnull:true */ + // this is expensive when it returns false; use this function + // when you expect it to return true in the common case. + return x != null && Object(x) === x; + }, + + ToObject: function(o, optMessage) { + return Object(ES.CheckObjectCoercible(o, optMessage)); + }, + + IsCallable: function(x) { + return typeof x === 'function' && + // some versions of IE say that typeof /abc/ === 'function' + _toString.call(x) === '[object Function]'; + }, + + ToInt32: function(x) { + return x >> 0; + }, + + ToUint32: function(x) { + return x >>> 0; + }, + + ToInteger: function(value) { + var number = +value; + if (Number.isNaN(number)) return 0; + if (number === 0 || !Number.isFinite(number)) return number; + return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number)); + }, + + ToLength: function(value) { + var len = ES.ToInteger(value); + if (len <= 0) return 0; // includes converting -0 to +0 + if (len > Number.MAX_SAFE_INTEGER) return Number.MAX_SAFE_INTEGER; + return len; + }, + + SameValue: function(a, b) { + if (a === b) { + // 0 === -0, but they are not identical. + if (a === 0) return 1 / a === 1 / b; + return true; + } + return Number.isNaN(a) && Number.isNaN(b); + }, + + SameValueZero: function(a, b) { + // same as SameValue except for SameValueZero(+0, -0) == true + return (a === b) || (Number.isNaN(a) && Number.isNaN(b)); + }, + + IsIterable: function(o) { + return ES.TypeIsObject(o) && + (o[$iterator$] !== undefined || isArguments(o)); + }, + + GetIterator: function(o) { + if (isArguments(o)) { + // special case support for `arguments` + return new ArrayIterator(o, "value"); + } + var it = o[$iterator$](); + if (!ES.TypeIsObject(it)) { + throw new TypeError('bad iterator'); + } + return it; + }, + + IteratorNext: function (it) { + var result = arguments.length > 1 ? it.next(arguments[1]) : it.next(); + if (!ES.TypeIsObject(result)) { + throw new TypeError('bad iterator'); + } + return result; + }, + + Construct: function(C, args) { + // CreateFromConstructor + var obj; + if (ES.IsCallable(C['@@create'])) { + obj = C['@@create'](); + } else { + // OrdinaryCreateFromConstructor + obj = create(C.prototype || null); + } + // Mark that we've used the es6 construct path + // (see emulateES6construct) + defineProperties(obj, { _es6construct: true }); + // Call the constructor. + var result = C.apply(obj, args); + return ES.TypeIsObject(result) ? result : obj; + } + }; + + var numberConversion = (function () { + // from https://github.com/inexorabletash/polyfill/blob/master/typedarray.js#L176-L266 + // with permission and license, per https://twitter.com/inexorabletash/status/372206509540659200 + + function roundToEven(n) { + var w = Math.floor(n), f = n - w; + if (f < 0.5) { + return w; + } + if (f > 0.5) { + return w + 1; + } + return w % 2 ? w + 1 : w; + } + + function packIEEE754(v, ebits, fbits) { + var bias = (1 << (ebits - 1)) - 1, + s, e, f, ln, + i, bits, str, bytes; + + // Compute sign, exponent, fraction + if (v !== v) { + // NaN + // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping + e = (1 << ebits) - 1; + f = Math.pow(2, fbits - 1); + s = 0; + } else if (v === Infinity || v === -Infinity) { + e = (1 << ebits) - 1; + f = 0; + s = (v < 0) ? 1 : 0; + } else if (v === 0) { + e = 0; + f = 0; + s = (1 / v === -Infinity) ? 1 : 0; + } else { + s = v < 0; + v = Math.abs(v); + + if (v >= Math.pow(2, 1 - bias)) { + e = Math.min(Math.floor(Math.log(v) / Math.LN2), 1023); + f = roundToEven(v / Math.pow(2, e) * Math.pow(2, fbits)); + if (f / Math.pow(2, fbits) >= 2) { + e = e + 1; + f = 1; + } + if (e > bias) { + // Overflow + e = (1 << ebits) - 1; + f = 0; + } else { + // Normal + e = e + bias; + f = f - Math.pow(2, fbits); + } + } else { + // Subnormal + e = 0; + f = roundToEven(v / Math.pow(2, 1 - bias - fbits)); + } + } + + // Pack sign, exponent, fraction + bits = []; + for (i = fbits; i; i -= 1) { + bits.push(f % 2 ? 1 : 0); + f = Math.floor(f / 2); + } + for (i = ebits; i; i -= 1) { + bits.push(e % 2 ? 1 : 0); + e = Math.floor(e / 2); + } + bits.push(s ? 1 : 0); + bits.reverse(); + str = bits.join(''); + + // Bits to bytes + bytes = []; + while (str.length) { + bytes.push(parseInt(str.slice(0, 8), 2)); + str = str.slice(8); + } + return bytes; + } + + function unpackIEEE754(bytes, ebits, fbits) { + // Bytes to bits + var bits = [], i, j, b, str, + bias, s, e, f; + + for (i = bytes.length; i; i -= 1) { + b = bytes[i - 1]; + for (j = 8; j; j -= 1) { + bits.push(b % 2 ? 1 : 0); + b = b >> 1; + } + } + bits.reverse(); + str = bits.join(''); + + // Unpack sign, exponent, fraction + bias = (1 << (ebits - 1)) - 1; + s = parseInt(str.slice(0, 1), 2) ? -1 : 1; + e = parseInt(str.slice(1, 1 + ebits), 2); + f = parseInt(str.slice(1 + ebits), 2); + + // Produce number + if (e === (1 << ebits) - 1) { + return f !== 0 ? NaN : s * Infinity; + } else if (e > 0) { + // Normalized + return s * Math.pow(2, e - bias) * (1 + f / Math.pow(2, fbits)); + } else if (f !== 0) { + // Denormalized + return s * Math.pow(2, -(bias - 1)) * (f / Math.pow(2, fbits)); + } else { + return s < 0 ? -0 : 0; + } + } + + function unpackFloat64(b) { return unpackIEEE754(b, 11, 52); } + function packFloat64(v) { return packIEEE754(v, 11, 52); } + function unpackFloat32(b) { return unpackIEEE754(b, 8, 23); } + function packFloat32(v) { return packIEEE754(v, 8, 23); } + + var conversions = { + toFloat32: function (num) { return unpackFloat32(packFloat32(num)); } + }; + if (typeof Float32Array !== 'undefined') { + var float32array = new Float32Array(1); + conversions.toFloat32 = function (num) { + float32array[0] = num; + return float32array[0]; + }; + } + return conversions; + }()); + + defineProperties(String, { + fromCodePoint: function(_) { // length = 1 + var points = _slice.call(arguments, 0, arguments.length); + var result = []; + var next; + for (var i = 0, length = points.length; i < length; i++) { + next = Number(points[i]); + if (!ES.SameValue(next, ES.ToInteger(next)) || + next < 0 || next > 0x10FFFF) { + throw new RangeError('Invalid code point ' + next); + } + + if (next < 0x10000) { + result.push(String.fromCharCode(next)); + } else { + next -= 0x10000; + result.push(String.fromCharCode((next >> 10) + 0xD800)); + result.push(String.fromCharCode((next % 0x400) + 0xDC00)); + } + } + return result.join(''); + }, + + raw: function(callSite) { // raw.length===1 + var substitutions = _slice.call(arguments, 1, arguments.length); + var cooked = ES.ToObject(callSite, 'bad callSite'); + var rawValue = cooked.raw; + var raw = ES.ToObject(rawValue, 'bad raw value'); + var len = Object.keys(raw).length; + var literalsegments = ES.ToLength(len); + if (literalsegments === 0) { + return ''; + } + + var stringElements = []; + var nextIndex = 0; + var nextKey, next, nextSeg, nextSub; + while (nextIndex < literalsegments) { + nextKey = String(nextIndex); + next = raw[nextKey]; + nextSeg = String(next); + stringElements.push(nextSeg); + if (nextIndex + 1 >= literalsegments) { + break; + } + next = substitutions[nextKey]; + if (next === undefined) { + break; + } + nextSub = String(next); + stringElements.push(nextSub); + nextIndex++; + } + return stringElements.join(''); + } + }); + + // Firefox 31 reports this function's length as 0 + // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484 + if (String.fromCodePoint.length !== 1) { + var originalFromCodePoint = String.fromCodePoint; + defineProperty(String, 'fromCodePoint', function (_) { return originalFromCodePoint.apply(this, arguments); }, true); + } + + var StringShims = { + // Fast repeat, uses the `Exponentiation by squaring` algorithm. + // Perf: http://jsperf.com/string-repeat2/2 + repeat: (function() { + var repeat = function(s, times) { + if (times < 1) return ''; + if (times % 2) return repeat(s, times - 1) + s; + var half = repeat(s, times / 2); + return half + half; + }; + + return function(times) { + var thisStr = String(ES.CheckObjectCoercible(this)); + times = ES.ToInteger(times); + if (times < 0 || times === Infinity) { + throw new RangeError('Invalid String#repeat value'); + } + return repeat(thisStr, times); + }; + })(), + + startsWith: function(searchStr) { + var thisStr = String(ES.CheckObjectCoercible(this)); + if (_toString.call(searchStr) === '[object RegExp]') throw new TypeError('Cannot call method "startsWith" with a regex'); + searchStr = String(searchStr); + var startArg = arguments.length > 1 ? arguments[1] : undefined; + var start = Math.max(ES.ToInteger(startArg), 0); + return thisStr.slice(start, start + searchStr.length) === searchStr; + }, + + endsWith: function(searchStr) { + var thisStr = String(ES.CheckObjectCoercible(this)); + if (_toString.call(searchStr) === '[object RegExp]') throw new TypeError('Cannot call method "endsWith" with a regex'); + searchStr = String(searchStr); + var thisLen = thisStr.length; + var posArg = arguments.length > 1 ? arguments[1] : undefined; + var pos = posArg === undefined ? thisLen : ES.ToInteger(posArg); + var end = Math.min(Math.max(pos, 0), thisLen); + return thisStr.slice(end - searchStr.length, end) === searchStr; + }, + + contains: function(searchString) { + var position = arguments.length > 1 ? arguments[1] : undefined; + // Somehow this trick makes method 100% compat with the spec. + return _indexOf.call(this, searchString, position) !== -1; + }, + + codePointAt: function(pos) { + var thisStr = String(ES.CheckObjectCoercible(this)); + var position = ES.ToInteger(pos); + var length = thisStr.length; + if (position < 0 || position >= length) return undefined; + var first = thisStr.charCodeAt(position); + var isEnd = (position + 1 === length); + if (first < 0xD800 || first > 0xDBFF || isEnd) return first; + var second = thisStr.charCodeAt(position + 1); + if (second < 0xDC00 || second > 0xDFFF) return first; + return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000; + } + }; + defineProperties(String.prototype, StringShims); + + var hasStringTrimBug = '\u0085'.trim().length !== 1; + if (hasStringTrimBug) { + var originalStringTrim = String.prototype.trim; + delete String.prototype.trim; + // whitespace from: http://es5.github.io/#x15.5.4.20 + // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 + var ws = [ + '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', + '\u2029\uFEFF' + ].join(''); + var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); + defineProperties(String.prototype, { + trim: function() { + if (this === undefined || this === null) { + throw new TypeError("can't convert " + this + " to object"); + } + return String(this).replace(trimRegexp, ""); + } + }); + } + + // see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator + var StringIterator = function(s) { + this._s = String(ES.CheckObjectCoercible(s)); + this._i = 0; + }; + StringIterator.prototype.next = function() { + var s = this._s, i = this._i; + if (s === undefined || i >= s.length) { + this._s = undefined; + return { value: undefined, done: true }; + } + var first = s.charCodeAt(i), second, len; + if (first < 0xD800 || first > 0xDBFF || (i+1) == s.length) { + len = 1; + } else { + second = s.charCodeAt(i+1); + len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2; + } + this._i = i + len; + return { value: s.substr(i, len), done: false }; + }; + addIterator(StringIterator.prototype); + addIterator(String.prototype, function() { + return new StringIterator(this); + }); + + if (!startsWithIsCompliant) { + // Firefox has a noncompliant startsWith implementation + String.prototype.startsWith = StringShims.startsWith; + String.prototype.endsWith = StringShims.endsWith; + } + + var ArrayShims = { + from: function(iterable) { + var mapFn = arguments.length > 1 ? arguments[1] : undefined; + + var list = ES.ToObject(iterable, 'bad iterable'); + if (mapFn !== undefined && !ES.IsCallable(mapFn)) { + throw new TypeError('Array.from: when provided, the second argument must be a function'); + } + + var hasThisArg = arguments.length > 2; + var thisArg = hasThisArg ? arguments[2] : undefined; + + var usingIterator = ES.IsIterable(list); + // does the spec really mean that Arrays should use ArrayIterator? + // https://bugs.ecmascript.org/show_bug.cgi?id=2416 + //if (Array.isArray(list)) { usingIterator=false; } + + var length; + var result, i, value; + if (usingIterator) { + i = 0; + result = ES.IsCallable(this) ? Object(new this()) : []; + var it = usingIterator ? ES.GetIterator(list) : null; + var iterationValue; + + do { + iterationValue = ES.IteratorNext(it); + if (!iterationValue.done) { + value = iterationValue.value; + if (mapFn) { + result[i] = hasThisArg ? mapFn.call(thisArg, value, i) : mapFn(value, i); + } else { + result[i] = value; + } + i += 1; + } + } while (!iterationValue.done); + length = i; + } else { + length = ES.ToLength(list.length); + result = ES.IsCallable(this) ? Object(new this(length)) : new Array(length); + for (i = 0; i < length; ++i) { + value = list[i]; + if (mapFn) { + result[i] = hasThisArg ? mapFn.call(thisArg, value, i) : mapFn(value, i); + } else { + result[i] = value; + } + } + } + + result.length = length; + return result; + }, + + of: function() { + return Array.from(arguments); + } + }; + defineProperties(Array, ArrayShims); + + var arrayFromSwallowsNegativeLengths = function () { + try { + return Array.from({ length: -1 }).length === 0; + } catch (e) { + return false; + } + }; + // Fixes a Firefox bug in v32 + // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993 + if (!arrayFromSwallowsNegativeLengths()) { + defineProperty(Array, 'from', ArrayShims.from, true); + } + + // Our ArrayIterator is private; see + // https://github.com/paulmillr/es6-shim/issues/252 + ArrayIterator = function(array, kind) { + this.i = 0; + this.array = array; + this.kind = kind; + }; + + defineProperties(ArrayIterator.prototype, { + next: function() { + var i = this.i, array = this.array; + if (!(this instanceof ArrayIterator)) { + throw new TypeError('Not an ArrayIterator'); + } + if (array !== undefined) { + var len = ES.ToLength(array.length); + for (; i < len; i++) { + var kind = this.kind; + var retval; + if (kind === "key") { + retval = i; + } else if (kind === "value") { + retval = array[i]; + } else if (kind === "entry") { + retval = [i, array[i]]; + } + this.i = i + 1; + return { value: retval, done: false }; + } + } + this.array = undefined; + return { value: undefined, done: true }; + } + }); + addIterator(ArrayIterator.prototype); + + var ArrayPrototypeShims = { + copyWithin: function(target, start) { + var end = arguments[2]; // copyWithin.length must be 2 + var o = ES.ToObject(this); + var len = ES.ToLength(o.length); + target = ES.ToInteger(target); + start = ES.ToInteger(start); + var to = target < 0 ? Math.max(len + target, 0) : Math.min(target, len); + var from = start < 0 ? Math.max(len + start, 0) : Math.min(start, len); + end = (end===undefined) ? len : ES.ToInteger(end); + var fin = end < 0 ? Math.max(len + end, 0) : Math.min(end, len); + var count = Math.min(fin - from, len - to); + var direction = 1; + if (from < to && to < (from + count)) { + direction = -1; + from += count - 1; + to += count - 1; + } + while (count > 0) { + if (_hasOwnProperty.call(o, from)) { + o[to] = o[from]; + } else { + delete o[from]; + } + from += direction; + to += direction; + count -= 1; + } + return o; + }, + + fill: function(value) { + var start = arguments.length > 1 ? arguments[1] : undefined; + var end = arguments.length > 2 ? arguments[2] : undefined; + var O = ES.ToObject(this); + var len = ES.ToLength(O.length); + start = ES.ToInteger(start === undefined ? 0 : start); + end = ES.ToInteger(end === undefined ? len : end); + + var relativeStart = start < 0 ? Math.max(len + start, 0) : Math.min(start, len); + var relativeEnd = end < 0 ? len + end : end; + + for (var i = relativeStart; i < len && i < relativeEnd; ++i) { + O[i] = value; + } + return O; + }, + + find: function find(predicate) { + var list = ES.ToObject(this); + var length = ES.ToLength(list.length); + if (!ES.IsCallable(predicate)) { + throw new TypeError('Array#find: predicate must be a function'); + } + var thisArg = arguments[1]; + for (var i = 0, value; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { return value; } + } + return undefined; + }, + + findIndex: function findIndex(predicate) { + var list = ES.ToObject(this); + var length = ES.ToLength(list.length); + if (!ES.IsCallable(predicate)) { + throw new TypeError('Array#findIndex: predicate must be a function'); + } + var thisArg = arguments[1]; + for (var i = 0; i < length; i++) { + if (predicate.call(thisArg, list[i], i, list)) { return i; } + } + return -1; + }, + + keys: function() { + return new ArrayIterator(this, "key"); + }, + + values: function() { + return new ArrayIterator(this, "value"); + }, + + entries: function() { + return new ArrayIterator(this, "entry"); + } + }; + defineProperties(Array.prototype, ArrayPrototypeShims); + addIterator(Array.prototype, function() { return this.values(); }); + // Chrome defines keys/values/entries on Array, but doesn't give us + // any way to identify its iterator. So add our own shimmed field. + if (Object.getPrototypeOf) { + addIterator(Object.getPrototypeOf([].values())); + } + + var maxSafeInteger = Math.pow(2, 53) - 1; + defineProperties(Number, { + MAX_SAFE_INTEGER: maxSafeInteger, + MIN_SAFE_INTEGER: -maxSafeInteger, + EPSILON: 2.220446049250313e-16, + + parseInt: globals.parseInt, + parseFloat: globals.parseFloat, + + isFinite: function(value) { + return typeof value === 'number' && global_isFinite(value); + }, + + isInteger: function(value) { + return Number.isFinite(value) && + ES.ToInteger(value) === value; + }, + + isSafeInteger: function(value) { + return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER; + }, + + isNaN: function(value) { + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN('foo') => true + return value !== value; + } + + }); + + // Work around bugs in Array#find and Array#findIndex -- early + // implementations skipped holes in sparse arrays. (Note that the + // implementations of find/findIndex indirectly use shimmed + // methods of Number, so this test has to happen down here.) + if (![, 1].find(function(item, idx) { return idx === 0; })) { + defineProperty(Array.prototype, 'find', ArrayPrototypeShims.find, true); + } + if ([, 1].findIndex(function(item, idx) { return idx === 0; }) !== 0) { + defineProperty(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex, true); + } + + if (supportsDescriptors) { + defineProperties(Object, { + getPropertyDescriptor: function(subject, name) { + var pd = Object.getOwnPropertyDescriptor(subject, name); + var proto = Object.getPrototypeOf(subject); + while (pd === undefined && proto !== null) { + pd = Object.getOwnPropertyDescriptor(proto, name); + proto = Object.getPrototypeOf(proto); + } + return pd; + }, + + getPropertyNames: function(subject) { + var result = Object.getOwnPropertyNames(subject); + var proto = Object.getPrototypeOf(subject); + + var addProperty = function(property) { + if (result.indexOf(property) === -1) { + result.push(property); + } + }; + + while (proto !== null) { + Object.getOwnPropertyNames(proto).forEach(addProperty); + proto = Object.getPrototypeOf(proto); + } + return result; + } + }); + + defineProperties(Object, { + // 19.1.3.1 + assign: function(target, source) { + if (!ES.TypeIsObject(target)) { + throw new TypeError('target must be an object'); + } + return Array.prototype.reduce.call(arguments, function(target, source) { + return Object.keys(Object(source)).reduce(function(target, key) { + target[key] = source[key]; + return target; + }, target); + }); + }, + + is: function(a, b) { + return ES.SameValue(a, b); + }, + + // 19.1.3.9 + // shim from https://gist.github.com/WebReflection/5593554 + setPrototypeOf: (function(Object, magic) { + var set; + + var checkArgs = function(O, proto) { + if (!ES.TypeIsObject(O)) { + throw new TypeError('cannot set prototype on a non-object'); + } + if (!(proto===null || ES.TypeIsObject(proto))) { + throw new TypeError('can only set prototype to an object or null'+proto); + } + }; + + var setPrototypeOf = function(O, proto) { + checkArgs(O, proto); + set.call(O, proto); + return O; + }; + + try { + // this works already in Firefox and Safari + set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set; + set.call({}, null); + } catch (e) { + if (Object.prototype !== {}[magic]) { + // IE < 11 cannot be shimmed + return; + } + // probably Chrome or some old Mobile stock browser + set = function(proto) { + this[magic] = proto; + }; + // please note that this will **not** work + // in those browsers that do not inherit + // __proto__ by mistake from Object.prototype + // in these cases we should probably throw an error + // or at least be informed about the issue + setPrototypeOf.polyfill = setPrototypeOf( + setPrototypeOf({}, null), + Object.prototype + ) instanceof Object; + // setPrototypeOf.polyfill === true means it works as meant + // setPrototypeOf.polyfill === false means it's not 100% reliable + // setPrototypeOf.polyfill === undefined + // or + // setPrototypeOf.polyfill == null means it's not a polyfill + // which means it works as expected + // we can even delete Object.prototype.__proto__; + } + return setPrototypeOf; + })(Object, '__proto__') + }); + } + + // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work, + // but Object.create(null) does. + if (Object.setPrototypeOf && Object.getPrototypeOf && + Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null && + Object.getPrototypeOf(Object.create(null)) === null) { + (function() { + var FAKENULL = Object.create(null); + var gpo = Object.getPrototypeOf, spo = Object.setPrototypeOf; + Object.getPrototypeOf = function(o) { + var result = gpo(o); + return result === FAKENULL ? null : result; + }; + Object.setPrototypeOf = function(o, p) { + if (p === null) { p = FAKENULL; } + return spo(o, p); + }; + Object.setPrototypeOf.polyfill = false; + })(); + } + + try { + Object.keys('foo'); + } catch (e) { + var originalObjectKeys = Object.keys; + Object.keys = function (obj) { + return originalObjectKeys(ES.ToObject(obj)); + }; + } + + var MathShims = { + acosh: function(value) { + value = Number(value); + if (Number.isNaN(value) || value < 1) return NaN; + if (value === 1) return 0; + if (value === Infinity) return value; + return Math.log(value + Math.sqrt(value * value - 1)); + }, + + asinh: function(value) { + value = Number(value); + if (value === 0 || !global_isFinite(value)) { + return value; + } + return value < 0 ? -Math.asinh(-value) : Math.log(value + Math.sqrt(value * value + 1)); + }, + + atanh: function(value) { + value = Number(value); + if (Number.isNaN(value) || value < -1 || value > 1) { + return NaN; + } + if (value === -1) return -Infinity; + if (value === 1) return Infinity; + if (value === 0) return value; + return 0.5 * Math.log((1 + value) / (1 - value)); + }, + + cbrt: function(value) { + value = Number(value); + if (value === 0) return value; + var negate = value < 0, result; + if (negate) value = -value; + result = Math.pow(value, 1/3); + return negate ? -result : result; + }, + + clz32: function(value) { + // See https://bugs.ecmascript.org/show_bug.cgi?id=2465 + value = Number(value); + var number = ES.ToUint32(value); + if (number === 0) { + return 32; + } + return 32 - (number).toString(2).length; + }, + + cosh: function(value) { + value = Number(value); + if (value === 0) return 1; // +0 or -0 + if (Number.isNaN(value)) return NaN; + if (!global_isFinite(value)) return Infinity; + if (value < 0) value = -value; + if (value > 21) return Math.exp(value) / 2; + return (Math.exp(value) + Math.exp(-value)) / 2; + }, + + expm1: function(value) { + value = Number(value); + if (value === -Infinity) return -1; + if (!global_isFinite(value) || value === 0) return value; + return Math.exp(value) - 1; + }, + + hypot: function(x, y) { + var anyNaN = false; + var allZero = true; + var anyInfinity = false; + var numbers = []; + Array.prototype.every.call(arguments, function(arg) { + var num = Number(arg); + if (Number.isNaN(num)) anyNaN = true; + else if (num === Infinity || num === -Infinity) anyInfinity = true; + else if (num !== 0) allZero = false; + if (anyInfinity) { + return false; + } else if (!anyNaN) { + numbers.push(Math.abs(num)); + } + return true; + }); + if (anyInfinity) return Infinity; + if (anyNaN) return NaN; + if (allZero) return 0; + + numbers.sort(function (a, b) { return b - a; }); + var largest = numbers[0]; + var divided = numbers.map(function (number) { return number / largest; }); + var sum = divided.reduce(function (sum, number) { return sum += number * number; }, 0); + return largest * Math.sqrt(sum); + }, + + log2: function(value) { + return Math.log(value) * Math.LOG2E; + }, + + log10: function(value) { + return Math.log(value) * Math.LOG10E; + }, + + log1p: function(value) { + value = Number(value); + if (value < -1 || Number.isNaN(value)) return NaN; + if (value === 0 || value === Infinity) return value; + if (value === -1) return -Infinity; + var result = 0; + var n = 50; + + if (value < 0 || value > 1) return Math.log(1 + value); + for (var i = 1; i < n; i++) { + if ((i % 2) === 0) { + result -= Math.pow(value, i) / i; + } else { + result += Math.pow(value, i) / i; + } + } + + return result; + }, + + sign: function(value) { + var number = +value; + if (number === 0) return number; + if (Number.isNaN(number)) return number; + return number < 0 ? -1 : 1; + }, + + sinh: function(value) { + value = Number(value); + if (!global_isFinite(value) || value === 0) return value; + return (Math.exp(value) - Math.exp(-value)) / 2; + }, + + tanh: function(value) { + value = Number(value); + if (Number.isNaN(value) || value === 0) return value; + if (value === Infinity) return 1; + if (value === -Infinity) return -1; + return (Math.exp(value) - Math.exp(-value)) / (Math.exp(value) + Math.exp(-value)); + }, + + trunc: function(value) { + var number = Number(value); + return number < 0 ? -Math.floor(-number) : Math.floor(number); + }, + + imul: function(x, y) { + // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + x = ES.ToUint32(x); + y = ES.ToUint32(y); + var ah = (x >>> 16) & 0xffff; + var al = x & 0xffff; + var bh = (y >>> 16) & 0xffff; + var bl = y & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0); + }, + + fround: function(x) { + if (x === 0 || x === Infinity || x === -Infinity || Number.isNaN(x)) { + return x; + } + var num = Number(x); + return numberConversion.toFloat32(num); + } + }; + defineProperties(Math, MathShims); + + if (Math.imul(0xffffffff, 5) !== -5) { + // Safari 6.1, at least, reports "0" for this value + Math.imul = MathShims.imul; + } + + // Promises + // Simplest possible implementation; use a 3rd-party library if you + // want the best possible speed and/or long stack traces. + var PromiseShim = (function() { + + var Promise, Promise$prototype; + + ES.IsPromise = function(promise) { + if (!ES.TypeIsObject(promise)) { + return false; + } + if (!promise._promiseConstructor) { + // _promiseConstructor is a bit more unique than _status, so we'll + // check that instead of the [[PromiseStatus]] internal field. + return false; + } + if (promise._status === undefined) { + return false; // uninitialized + } + return true; + }; + + // "PromiseCapability" in the spec is what most promise implementations + // call a "deferred". + var PromiseCapability = function(C) { + if (!ES.IsCallable(C)) { + throw new TypeError('bad promise constructor'); + } + var capability = this; + var resolver = function(resolve, reject) { + capability.resolve = resolve; + capability.reject = reject; + }; + capability.promise = ES.Construct(C, [resolver]); + // see https://bugs.ecmascript.org/show_bug.cgi?id=2478 + if (!capability.promise._es6construct) { + throw new TypeError('bad promise constructor'); + } + if (!(ES.IsCallable(capability.resolve) && + ES.IsCallable(capability.reject))) { + throw new TypeError('bad promise constructor'); + } + }; + + // find an appropriate setImmediate-alike + var setTimeout = globals.setTimeout; + var makeZeroTimeout; + if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) { + makeZeroTimeout = function() { + // from http://dbaron.org/log/20100309-faster-timeouts + var timeouts = []; + var messageName = "zero-timeout-message"; + var setZeroTimeout = function(fn) { + timeouts.push(fn); + window.postMessage(messageName, "*"); + }; + var handleMessage = function(event) { + if (event.source == window && event.data == messageName) { + event.stopPropagation(); + if (timeouts.length === 0) { return; } + var fn = timeouts.shift(); + fn(); + } + }; + window.addEventListener("message", handleMessage, true); + return setZeroTimeout; + }; + } + var makePromiseAsap = function() { + // An efficient task-scheduler based on a pre-existing Promise + // implementation, which we can use even if we override the + // global Promise below (in order to workaround bugs) + // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671 + var P = globals.Promise; + return P && P.resolve && function(task) { + return P.resolve().then(task); + }; + }; + var enqueue = ES.IsCallable(globals.setImmediate) ? + globals.setImmediate.bind(globals) : + typeof process === 'object' && process.nextTick ? process.nextTick : + makePromiseAsap() || + (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() : + function(task) { setTimeout(task, 0); }); // fallback + + var triggerPromiseReactions = function(reactions, x) { + reactions.forEach(function(reaction) { + enqueue(function() { + // PromiseReactionTask + var handler = reaction.handler; + var capability = reaction.capability; + var resolve = capability.resolve; + var reject = capability.reject; + try { + var result = handler(x); + if (result === capability.promise) { + throw new TypeError('self resolution'); + } + var updateResult = + updatePromiseFromPotentialThenable(result, capability); + if (!updateResult) { + resolve(result); + } + } catch (e) { + reject(e); + } + }); + }); + }; + + var updatePromiseFromPotentialThenable = function(x, capability) { + if (!ES.TypeIsObject(x)) { + return false; + } + var resolve = capability.resolve; + var reject = capability.reject; + try { + var then = x.then; // only one invocation of accessor + if (!ES.IsCallable(then)) { return false; } + then.call(x, resolve, reject); + } catch(e) { + reject(e); + } + return true; + }; + + var promiseResolutionHandler = function(promise, onFulfilled, onRejected){ + return function(x) { + if (x === promise) { + return onRejected(new TypeError('self resolution')); + } + var C = promise._promiseConstructor; + var capability = new PromiseCapability(C); + var updateResult = updatePromiseFromPotentialThenable(x, capability); + if (updateResult) { + return capability.promise.then(onFulfilled, onRejected); + } else { + return onFulfilled(x); + } + }; + }; + + Promise = function(resolver) { + var promise = this; + promise = emulateES6construct(promise); + if (!promise._promiseConstructor) { + // we use _promiseConstructor as a stand-in for the internal + // [[PromiseStatus]] field; it's a little more unique. + throw new TypeError('bad promise'); + } + if (promise._status !== undefined) { + throw new TypeError('promise already initialized'); + } + // see https://bugs.ecmascript.org/show_bug.cgi?id=2482 + if (!ES.IsCallable(resolver)) { + throw new TypeError('not a valid resolver'); + } + promise._status = 'unresolved'; + promise._resolveReactions = []; + promise._rejectReactions = []; + + var resolve = function(resolution) { + if (promise._status !== 'unresolved') { return; } + var reactions = promise._resolveReactions; + promise._result = resolution; + promise._resolveReactions = undefined; + promise._rejectReactions = undefined; + promise._status = 'has-resolution'; + triggerPromiseReactions(reactions, resolution); + }; + var reject = function(reason) { + if (promise._status !== 'unresolved') { return; } + var reactions = promise._rejectReactions; + promise._result = reason; + promise._resolveReactions = undefined; + promise._rejectReactions = undefined; + promise._status = 'has-rejection'; + triggerPromiseReactions(reactions, reason); + }; + try { + resolver(resolve, reject); + } catch (e) { + reject(e); + } + return promise; + }; + Promise$prototype = Promise.prototype; + defineProperties(Promise, { + '@@create': function(obj) { + var constructor = this; + // AllocatePromise + // The `obj` parameter is a hack we use for es5 + // compatibility. + var prototype = constructor.prototype || Promise$prototype; + obj = obj || create(prototype); + defineProperties(obj, { + _status: undefined, + _result: undefined, + _resolveReactions: undefined, + _rejectReactions: undefined, + _promiseConstructor: undefined + }); + obj._promiseConstructor = constructor; + return obj; + } + }); + + var _promiseAllResolver = function(index, values, capability, remaining) { + var done = false; + return function(x) { + if (done) { return; } // protect against being called multiple times + done = true; + values[index] = x; + if ((--remaining.count) === 0) { + var resolve = capability.resolve; + resolve(values); // call w/ this===undefined + } + }; + }; + + Promise.all = function(iterable) { + var C = this; + var capability = new PromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + try { + if (!ES.IsIterable(iterable)) { + throw new TypeError('bad iterable'); + } + var it = ES.GetIterator(iterable); + var values = [], remaining = { count: 1 }; + for (var index = 0; ; index++) { + var next = ES.IteratorNext(it); + if (next.done) { + break; + } + var nextPromise = C.resolve(next.value); + var resolveElement = _promiseAllResolver( + index, values, capability, remaining + ); + remaining.count++; + nextPromise.then(resolveElement, capability.reject); + } + if ((--remaining.count) === 0) { + resolve(values); // call w/ this===undefined + } + } catch (e) { + reject(e); + } + return capability.promise; + }; + + Promise.race = function(iterable) { + var C = this; + var capability = new PromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + try { + if (!ES.IsIterable(iterable)) { + throw new TypeError('bad iterable'); + } + var it = ES.GetIterator(iterable); + while (true) { + var next = ES.IteratorNext(it); + if (next.done) { + // If iterable has no items, resulting promise will never + // resolve; see: + // https://github.com/domenic/promises-unwrapping/issues/75 + // https://bugs.ecmascript.org/show_bug.cgi?id=2515 + break; + } + var nextPromise = C.resolve(next.value); + nextPromise.then(resolve, reject); + } + } catch (e) { + reject(e); + } + return capability.promise; + }; + + Promise.reject = function(reason) { + var C = this; + var capability = new PromiseCapability(C); + var reject = capability.reject; + reject(reason); // call with this===undefined + return capability.promise; + }; + + Promise.resolve = function(v) { + var C = this; + if (ES.IsPromise(v)) { + var constructor = v._promiseConstructor; + if (constructor === C) { return v; } + } + var capability = new PromiseCapability(C); + var resolve = capability.resolve; + resolve(v); // call with this===undefined + return capability.promise; + }; + + Promise.prototype['catch'] = function( onRejected ) { + return this.then(undefined, onRejected); + }; + + Promise.prototype.then = function( onFulfilled, onRejected ) { + var promise = this; + if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); } + // this.constructor not this._promiseConstructor; see + // https://bugs.ecmascript.org/show_bug.cgi?id=2513 + var C = this.constructor; + var capability = new PromiseCapability(C); + if (!ES.IsCallable(onRejected)) { + onRejected = function(e) { throw e; }; + } + if (!ES.IsCallable(onFulfilled)) { + onFulfilled = function(x) { return x; }; + } + var resolutionHandler = + promiseResolutionHandler(promise, onFulfilled, onRejected); + var resolveReaction = + { capability: capability, handler: resolutionHandler }; + var rejectReaction = + { capability: capability, handler: onRejected }; + switch (promise._status) { + case 'unresolved': + promise._resolveReactions.push(resolveReaction); + promise._rejectReactions.push(rejectReaction); + break; + case 'has-resolution': + triggerPromiseReactions([resolveReaction], promise._result); + break; + case 'has-rejection': + triggerPromiseReactions([rejectReaction], promise._result); + break; + default: + throw new TypeError('unexpected'); + } + return capability.promise; + }; + + return Promise; + })(); + // export the Promise constructor. + defineProperties(globals, { Promise: PromiseShim }); + // In Chrome 33 (and thereabouts) Promise is defined, but the + // implementation is buggy in a number of ways. Let's check subclassing + // support to see if we have a buggy implementation. + var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function(S) { + return S.resolve(42) instanceof S; + }); + var promiseIgnoresNonFunctionThenCallbacks = (function () { + try { + globals.Promise.reject(42).then(null, 5).then(null, function () {}); + return true; + } catch (ex) { + return false; + } + }()); + if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks) { + globals.Promise = PromiseShim; + } + + // Map and Set require a true ES5 environment + if (supportsDescriptors) { + + var fastkey = function fastkey(key) { + var type = typeof key; + if (type === 'string') { + return '$' + key; + } else if (type === 'number') { + // note that -0 will get coerced to "0" when used as a property key + return key; + } + return null; + }; + + var emptyObject = function emptyObject() { + // accomodate some older not-quite-ES5 browsers + return Object.create ? Object.create(null) : {}; + }; + + var collectionShims = { + Map: (function() { + + var empty = {}; + + function MapEntry(key, value) { + this.key = key; + this.value = value; + this.next = null; + this.prev = null; + } + + MapEntry.prototype.isRemoved = function() { + return this.key === empty; + }; + + function MapIterator(map, kind) { + this.head = map._head; + this.i = this.head; + this.kind = kind; + } + + MapIterator.prototype = { + next: function() { + var i = this.i, kind = this.kind, head = this.head, result; + if (this.i === undefined) { + return { value: undefined, done: true }; + } + while (i.isRemoved() && i !== head) { + // back up off of removed entries + i = i.prev; + } + // advance to next unreturned element. + while (i.next !== head) { + i = i.next; + if (!i.isRemoved()) { + if (kind === "key") { + result = i.key; + } else if (kind === "value") { + result = i.value; + } else { + result = [i.key, i.value]; + } + this.i = i; + return { value: result, done: false }; + } + } + // once the iterator is done, it is done forever. + this.i = undefined; + return { value: undefined, done: true }; + } + }; + addIterator(MapIterator.prototype); + + function Map(iterable) { + var map = this; + map = emulateES6construct(map); + if (!map._es6map) { + throw new TypeError('bad map'); + } + + var head = new MapEntry(null, null); + // circular doubly-linked list. + head.next = head.prev = head; + + defineProperties(map, { + '_head': head, + '_storage': emptyObject(), + '_size': 0 + }); + + // Optionally initialize map from iterable + if (iterable !== undefined && iterable !== null) { + var it = ES.GetIterator(iterable); + var adder = map.set; + if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); } + while (true) { + var next = ES.IteratorNext(it); + if (next.done) { break; } + var nextItem = next.value; + if (!ES.TypeIsObject(nextItem)) { + throw new TypeError('expected iterable of pairs'); + } + adder.call(map, nextItem[0], nextItem[1]); + } + } + return map; + } + var Map$prototype = Map.prototype; + defineProperties(Map, { + '@@create': function(obj) { + var constructor = this; + var prototype = constructor.prototype || Map$prototype; + obj = obj || create(prototype); + defineProperties(obj, { _es6map: true }); + return obj; + } + }); + + Object.defineProperty(Map.prototype, 'size', { + configurable: true, + enumerable: false, + get: function() { + if (typeof this._size === 'undefined') { + throw new TypeError('size method called on incompatible Map'); + } + return this._size; + } + }); + + defineProperties(Map.prototype, { + get: function(key) { + var fkey = fastkey(key); + if (fkey !== null) { + // fast O(1) path + var entry = this._storage[fkey]; + return entry ? entry.value : undefined; + } + var head = this._head, i = head; + while ((i = i.next) !== head) { + if (ES.SameValueZero(i.key, key)) { + return i.value; + } + } + return undefined; + }, + + has: function(key) { + var fkey = fastkey(key); + if (fkey !== null) { + // fast O(1) path + return typeof this._storage[fkey] !== 'undefined'; + } + var head = this._head, i = head; + while ((i = i.next) !== head) { + if (ES.SameValueZero(i.key, key)) { + return true; + } + } + return false; + }, + + set: function(key, value) { + var head = this._head, i = head, entry; + var fkey = fastkey(key); + if (fkey !== null) { + // fast O(1) path + if (typeof this._storage[fkey] !== 'undefined') { + this._storage[fkey].value = value; + return; + } else { + entry = this._storage[fkey] = new MapEntry(key, value); + i = head.prev; + // fall through + } + } + while ((i = i.next) !== head) { + if (ES.SameValueZero(i.key, key)) { + i.value = value; + return; + } + } + entry = entry || new MapEntry(key, value); + if (ES.SameValue(-0, key)) { + entry.key = +0; // coerce -0 to +0 in entry + } + entry.next = this._head; + entry.prev = this._head.prev; + entry.prev.next = entry; + entry.next.prev = entry; + this._size += 1; + }, + + 'delete': function(key) { + var head = this._head, i = head; + var fkey = fastkey(key); + if (fkey !== null) { + // fast O(1) path + if (typeof this._storage[fkey] === 'undefined') { + return false; + } + i = this._storage[fkey].prev; + delete this._storage[fkey]; + // fall through + } + while ((i = i.next) !== head) { + if (ES.SameValueZero(i.key, key)) { + i.key = i.value = empty; + i.prev.next = i.next; + i.next.prev = i.prev; + this._size -= 1; + return true; + } + } + return false; + }, + + clear: function() { + this._size = 0; + this._storage = emptyObject(); + var head = this._head, i = head, p = i.next; + while ((i = p) !== head) { + i.key = i.value = empty; + p = i.next; + i.next = i.prev = head; + } + head.next = head.prev = head; + }, + + keys: function() { + return new MapIterator(this, "key"); + }, + + values: function() { + return new MapIterator(this, "value"); + }, + + entries: function() { + return new MapIterator(this, "key+value"); + }, + + forEach: function(callback) { + var context = arguments.length > 1 ? arguments[1] : null; + var it = this.entries(); + for (var entry = it.next(); !entry.done; entry = it.next()) { + callback.call(context, entry.value[1], entry.value[0], this); + } + } + }); + addIterator(Map.prototype, function() { return this.entries(); }); + + return Map; + })(), + + Set: (function() { + // Creating a Map is expensive. To speed up the common case of + // Sets containing only string or numeric keys, we use an object + // as backing storage and lazily create a full Map only when + // required. + var SetShim = function Set(iterable) { + var set = this; + set = emulateES6construct(set); + if (!set._es6set) { + throw new TypeError('bad set'); + } + + defineProperties(set, { + '[[SetData]]': null, + '_storage': emptyObject() + }); + + // Optionally initialize map from iterable + if (iterable !== undefined && iterable !== null) { + var it = ES.GetIterator(iterable); + var adder = set.add; + if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); } + while (true) { + var next = ES.IteratorNext(it); + if (next.done) { break; } + var nextItem = next.value; + adder.call(set, nextItem); + } + } + return set; + }; + var Set$prototype = SetShim.prototype; + defineProperties(SetShim, { + '@@create': function(obj) { + var constructor = this; + var prototype = constructor.prototype || Set$prototype; + obj = obj || create(prototype); + defineProperties(obj, { _es6set: true }); + return obj; + } + }); + + // Switch from the object backing storage to a full Map. + var ensureMap = function ensureMap(set) { + if (!set['[[SetData]]']) { + var m = set['[[SetData]]'] = new collectionShims.Map(); + Object.keys(set._storage).forEach(function(k) { + // fast check for leading '$' + if (k.charCodeAt(0) === 36) { + k = k.slice(1); + } else { + k = +k; + } + m.set(k, k); + }); + set._storage = null; // free old backing storage + } + }; + + Object.defineProperty(SetShim.prototype, 'size', { + configurable: true, + enumerable: false, + get: function() { + if (typeof this._storage === 'undefined') { + // https://github.com/paulmillr/es6-shim/issues/176 + throw new TypeError('size method called on incompatible Set'); + } + ensureMap(this); + return this['[[SetData]]'].size; + } + }); + + defineProperties(SetShim.prototype, { + has: function(key) { + var fkey; + if (this._storage && (fkey = fastkey(key)) !== null) { + return !!this._storage[fkey]; + } + ensureMap(this); + return this['[[SetData]]'].has(key); + }, + + add: function(key) { + var fkey; + if (this._storage && (fkey = fastkey(key)) !== null) { + this._storage[fkey]=true; + return; + } + ensureMap(this); + return this['[[SetData]]'].set(key, key); + }, + + 'delete': function(key) { + var fkey; + if (this._storage && (fkey = fastkey(key)) !== null) { + delete this._storage[fkey]; + return; + } + ensureMap(this); + return this['[[SetData]]']['delete'](key); + }, + + clear: function() { + if (this._storage) { + this._storage = emptyObject(); + return; + } + return this['[[SetData]]'].clear(); + }, + + keys: function() { + ensureMap(this); + return this['[[SetData]]'].keys(); + }, + + values: function() { + ensureMap(this); + return this['[[SetData]]'].values(); + }, + + entries: function() { + ensureMap(this); + return this['[[SetData]]'].entries(); + }, + + forEach: function(callback) { + var context = arguments.length > 1 ? arguments[1] : null; + var entireSet = this; + ensureMap(this); + this['[[SetData]]'].forEach(function(value, key) { + callback.call(context, key, key, entireSet); + }); + } + }); + addIterator(SetShim.prototype, function() { return this.values(); }); + + return SetShim; + })() + }; + defineProperties(globals, collectionShims); + + if (globals.Map || globals.Set) { + /* + - In Firefox < 23, Map#size is a function. + - In all current Firefox, Set#entries/keys/values & Map#clear do not exist + - https://bugzilla.mozilla.org/show_bug.cgi?id=869996 + - In Firefox 24, Map and Set do not implement forEach + - In Firefox 25 at least, Map and Set are callable without "new" + */ + if ( + typeof globals.Map.prototype.clear !== 'function' || + new globals.Set().size !== 0 || + new globals.Map().size !== 0 || + typeof globals.Map.prototype.keys !== 'function' || + typeof globals.Set.prototype.keys !== 'function' || + typeof globals.Map.prototype.forEach !== 'function' || + typeof globals.Set.prototype.forEach !== 'function' || + isCallableWithoutNew(globals.Map) || + isCallableWithoutNew(globals.Set) || + !supportsSubclassing(globals.Map, function(M) { + return (new M([])) instanceof M; + }) + ) { + globals.Map = collectionShims.Map; + globals.Set = collectionShims.Set; + } + } + // Shim incomplete iterator implementations. + addIterator(Object.getPrototypeOf((new globals.Map()).keys())); + addIterator(Object.getPrototypeOf((new globals.Set()).keys())); + } + }; + + if (typeof define === 'function' && define.amd) { + define(main); // RequireJS + } else { + main(); // CommonJS and <script> + } +})(); + diff --git a/js/vendor/es6-shim/es6-shim.map b/js/vendor/es6-shim/es6-shim.map new file mode 100644 index 000000000..b782ca3ae --- /dev/null +++ b/js/vendor/es6-shim/es6-shim.map @@ -0,0 +1 @@ +{"version":3,"sources":["es6-shim.js"],"names":["undefined","isCallableWithoutNew","func","e","supportsSubclassing","C","f","Sub","apply","this","arguments","__proto__","Object","setPrototypeOf","prototype","create","constructor","value","arePropertyDescriptorsSupported","defineProperty","startsWithRejectsRegex","rejectsRegex","String","startsWith","getGlobal","Function","main","globals","global_isFinite","isFinite","supportsDescriptors","startsWithIsCompliant","_slice","Array","slice","_indexOf","indexOf","_toString","toString","_hasOwnProperty","hasOwnProperty","ArrayIterator","object","name","force","configurable","enumerable","writable","defineProperties","map","keys","forEach","method","properties","Type","$iterator$","Symbol","iterator","Set","addIterator","impl","o","isArguments","str","call","result","length","callee","emulateES6construct","ES","TypeIsObject","TypeError","_es6construct","IsCallable","CheckObjectCoercible","x","optMessage","ToObject","ToInt32","ToUint32","ToInteger","number","Number","isNaN","Math","floor","abs","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","b","SameValueZero","IsIterable","GetIterator","it","IteratorNext","next","Construct","args","obj","numberConversion","roundToEven","n","w","packIEEE754","v","ebits","fbits","bias","s","ln","i","bits","bytes","pow","Infinity","min","log","LN2","push","reverse","join","parseInt","unpackIEEE754","j","NaN","unpackFloat64","packFloat64","unpackFloat32","packFloat32","conversions","toFloat32","num","Float32Array","float32array","fromCodePoint","_","points","RangeError","fromCharCode","raw","callSite","substitutions","cooked","rawValue","literalsegments","stringElements","nextIndex","nextKey","nextSeg","nextSub","originalFromCodePoint","StringShims","repeat","times","half","thisStr","searchStr","startArg","start","max","endsWith","thisLen","posArg","pos","end","contains","searchString","position","codePointAt","first","charCodeAt","isEnd","second","hasStringTrimBug","trim","originalStringTrim","ws","trimRegexp","RegExp","replace","StringIterator","_s","_i","done","substr","ArrayShims","from","iterable","mapFn","list","hasThisArg","thisArg","usingIterator","iterationValue","of","arrayFromSwallowsNegativeLengths","array","kind","retval","ArrayPrototypeShims","copyWithin","target","to","fin","count","direction","fill","O","relativeStart","relativeEnd","find","predicate","findIndex","values","entries","getPrototypeOf","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","item","idx","getPropertyDescriptor","subject","pd","getOwnPropertyDescriptor","proto","getPropertyNames","getOwnPropertyNames","addProperty","property","assign","source","reduce","key","is","magic","set","checkArgs","polyfill","FAKENULL","gpo","spo","p","originalObjectKeys","MathShims","acosh","sqrt","asinh","atanh","cbrt","negate","clz32","cosh","exp","expm1","hypot","y","anyNaN","allZero","anyInfinity","numbers","every","arg","sort","largest","divided","sum","log2","LOG2E","log10","LOG10E","log1p","sign","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","PromiseShim","Promise","Promise$prototype","IsPromise","promise","_promiseConstructor","_status","PromiseCapability","capability","resolver","resolve","reject","setTimeout","makeZeroTimeout","window","postMessage","timeouts","messageName","setZeroTimeout","fn","handleMessage","event","data","stopPropagation","shift","addEventListener","makePromiseAsap","P","task","then","enqueue","setImmediate","bind","process","nextTick","triggerPromiseReactions","reactions","reaction","handler","updateResult","updatePromiseFromPotentialThenable","promiseResolutionHandler","onFulfilled","onRejected","_resolveReactions","_rejectReactions","resolution","_result","reason","@@create","_promiseAllResolver","index","remaining","all","nextPromise","resolveElement","race","resolutionHandler","resolveReaction","rejectReaction","promiseSupportsSubclassing","S","promiseIgnoresNonFunctionThenCallbacks","ex","fastkey","type","emptyObject","collectionShims","Map","empty","MapEntry","prev","isRemoved","MapIterator","head","_head","_es6map","_storage","_size","adder","nextItem","Map$prototype","get","fkey","entry","has","delete","clear","callback","context","SetShim","_es6set","[[SetData]]","add","Set$prototype","ensureMap","m","k","size","entireSet","M","define","amd"],"mappings":"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"}
\ No newline at end of file diff --git a/js/vendor/es6-shim/es6-shim.min.js b/js/vendor/es6-shim/es6-shim.min.js new file mode 100644 index 000000000..8971391a6 --- /dev/null +++ b/js/vendor/es6-shim/es6-shim.min.js @@ -0,0 +1,2 @@ +(function(e){"use strict";var t=function(e){try{e()}catch(t){return false}return true};var r=function(e,t){try{var r=function(){e.apply(this,arguments)};if(!r.__proto__){return false}Object.setPrototypeOf(r,e);r.prototype=Object.create(e.prototype,{constructor:{value:e}});return t(r)}catch(n){return false}};var n=function(){try{Object.defineProperty({},"x",{});return true}catch(e){return false}};var a=function(){var e=false;if(String.prototype.startsWith){try{"/a/".startsWith(/a/)}catch(t){e=true}}return e};var i=new Function("return this;");var o=function(){var o=i();var u=o.isFinite;var s=!!Object.defineProperty&&n();var f=a();var c=Array.prototype.slice;var l=String.prototype.indexOf;var h=Object.prototype.toString;var v=Object.prototype.hasOwnProperty;var p;var y=function(e,t,r,n){if(!n&&t in e)return;if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t){Object.keys(t).forEach(function(r){var n=t[r];y(e,r,n,false)})};var g=Object.create||function(e,t){function r(){}r.prototype=e;var n=new r;if(typeof t!=="undefined"){b(n,t)}return n};var m=typeof Symbol==="function"&&Symbol.iterator||"_es6shim_iterator_";if(o.Set&&typeof(new o.Set)["@@iterator"]==="function"){m="@@iterator"}var d=function(e,t){if(!t){t=function n(){return this}}var r={};r[m]=t;b(e,r);if(!e[m]&&typeof m==="symbol"){e[m]=t}};var w=function U(e){var t=h.call(e);var r=t==="[object Arguments]";if(!r){r=t!=="[object Array]"&&e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&h.call(e.callee)==="[object Function]"}return r};var j=function(e){if(!I.TypeIsObject(e))throw new TypeError("bad object");if(!e._es6construct){if(e.constructor&&I.IsCallable(e.constructor["@@create"])){e=e.constructor["@@create"](e)}b(e,{_es6construct:true})}return e};var I={CheckObjectCoercible:function(e,t){if(e==null)throw new TypeError(t||"Cannot call method on "+e);return e},TypeIsObject:function(e){return e!=null&&Object(e)===e},ToObject:function(e,t){return Object(I.CheckObjectCoercible(e,t))},IsCallable:function(e){return typeof e==="function"&&h.call(e)==="[object Function]"},ToInt32:function(e){return e>>0},ToUint32:function(e){return e>>>0},ToInteger:function(e){var t=+e;if(Number.isNaN(t))return 0;if(t===0||!Number.isFinite(t))return t;return(t>0?1:-1)*Math.floor(Math.abs(t))},ToLength:function(e){var t=I.ToInteger(e);if(t<=0)return 0;if(t>Number.MAX_SAFE_INTEGER)return Number.MAX_SAFE_INTEGER;return t},SameValue:function(e,t){if(e===t){if(e===0)return 1/e===1/t;return true}return Number.isNaN(e)&&Number.isNaN(t)},SameValueZero:function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)},IsIterable:function(t){return I.TypeIsObject(t)&&(t[m]!==e||w(t))},GetIterator:function(e){if(w(e)){return new p(e,"value")}var t=e[m]();if(!I.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!I.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},Construct:function(e,t){var r;if(I.IsCallable(e["@@create"])){r=e["@@create"]()}else{r=g(e.prototype||null)}b(r,{_es6construct:true});var n=e.apply(r,t);return I.TypeIsObject(n)?n:r}};var O=function(){function e(e){var t=Math.floor(e),r=e-t;if(r<.5){return t}if(r>.5){return t+1}return t%2?t+1:t}function t(t,r,n){var a=(1<<r-1)-1,i,o,u,s,f,c,l,h;if(t!==t){o=(1<<r)-1;u=Math.pow(2,n-1);i=0}else if(t===Infinity||t===-Infinity){o=(1<<r)-1;u=0;i=t<0?1:0}else if(t===0){o=0;u=0;i=1/t===-Infinity?1:0}else{i=t<0;t=Math.abs(t);if(t>=Math.pow(2,1-a)){o=Math.min(Math.floor(Math.log(t)/Math.LN2),1023);u=e(t/Math.pow(2,o)*Math.pow(2,n));if(u/Math.pow(2,n)>=2){o=o+1;u=1}if(o>a){o=(1<<r)-1;u=0}else{o=o+a;u=u-Math.pow(2,n)}}else{o=0;u=e(t/Math.pow(2,1-a-n))}}c=[];for(f=n;f;f-=1){c.push(u%2?1:0);u=Math.floor(u/2)}for(f=r;f;f-=1){c.push(o%2?1:0);o=Math.floor(o/2)}c.push(i?1:0);c.reverse();l=c.join("");h=[];while(l.length){h.push(parseInt(l.slice(0,8),2));l=l.slice(8)}return h}function r(e,t,r){var n=[],a,i,o,u,s,f,c,l;for(a=e.length;a;a-=1){o=e[a-1];for(i=8;i;i-=1){n.push(o%2?1:0);o=o>>1}}n.reverse();u=n.join("");s=(1<<t-1)-1;f=parseInt(u.slice(0,1),2)?-1:1;c=parseInt(u.slice(1,1+t),2);l=parseInt(u.slice(1+t),2);if(c===(1<<t)-1){return l!==0?NaN:f*Infinity}else if(c>0){return f*Math.pow(2,c-s)*(1+l/Math.pow(2,r))}else if(l!==0){return f*Math.pow(2,-(s-1))*(l/Math.pow(2,r))}else{return f<0?-0:0}}function n(e){return r(e,11,52)}function a(e){return t(e,11,52)}function i(e){return r(e,8,23)}function o(e){return t(e,8,23)}var u={toFloat32:function(e){return i(o(e))}};if(typeof Float32Array!=="undefined"){var s=new Float32Array(1);u.toFloat32=function(e){s[0]=e;return s[0]}}return u}();b(String,{fromCodePoint:function(e){var t=c.call(arguments,0,arguments.length);var r=[];var n;for(var a=0,i=t.length;a<i;a++){n=Number(t[a]);if(!I.SameValue(n,I.ToInteger(n))||n<0||n>1114111){throw new RangeError("Invalid code point "+n)}if(n<65536){r.push(String.fromCharCode(n))}else{n-=65536;r.push(String.fromCharCode((n>>10)+55296));r.push(String.fromCharCode(n%1024+56320))}}return r.join("")},raw:function(t){var r=c.call(arguments,1,arguments.length);var n=I.ToObject(t,"bad callSite");var a=n.raw;var i=I.ToObject(a,"bad raw value");var o=Object.keys(i).length;var u=I.ToLength(o);if(u===0){return""}var s=[];var f=0;var l,h,v,p;while(f<u){l=String(f);h=i[l];v=String(h);s.push(v);if(f+1>=u){break}h=r[l];if(h===e){break}p=String(h);s.push(p);f++}return s.join("")}});if(String.fromCodePoint.length!==1){var _=String.fromCodePoint;y(String,"fromCodePoint",function(e){return _.apply(this,arguments)},true)}var N={repeat:function(){var e=function(t,r){if(r<1)return"";if(r%2)return e(t,r-1)+t;var n=e(t,r/2);return n+n};return function(t){var r=String(I.CheckObjectCoercible(this));t=I.ToInteger(t);if(t<0||t===Infinity){throw new RangeError("Invalid String#repeat value")}return e(r,t)}}(),startsWith:function(t){var r=String(I.CheckObjectCoercible(this));if(h.call(t)==="[object RegExp]")throw new TypeError('Cannot call method "startsWith" with a regex');t=String(t);var n=arguments.length>1?arguments[1]:e;var a=Math.max(I.ToInteger(n),0);return r.slice(a,a+t.length)===t},endsWith:function(t){var r=String(I.CheckObjectCoercible(this));if(h.call(t)==="[object RegExp]")throw new TypeError('Cannot call method "endsWith" with a regex');t=String(t);var n=r.length;var a=arguments.length>1?arguments[1]:e;var i=a===e?n:I.ToInteger(a);var o=Math.min(Math.max(i,0),n);return r.slice(o-t.length,o)===t},contains:function(t){var r=arguments.length>1?arguments[1]:e;return l.call(this,t,r)!==-1},codePointAt:function(t){var r=String(I.CheckObjectCoercible(this));var n=I.ToInteger(t);var a=r.length;if(n<0||n>=a)return e;var i=r.charCodeAt(n);var o=n+1===a;if(i<55296||i>56319||o)return i;var u=r.charCodeAt(n+1);if(u<56320||u>57343)return i;return(i-55296)*1024+(u-56320)+65536}};b(String.prototype,N);var T="\x85".trim().length!==1;if(T){var M=String.prototype.trim;delete String.prototype.trim;var S=[" \n\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var E=new RegExp("(^["+S+"]+)|(["+S+"]+$)","g");b(String.prototype,{trim:function(){if(this===e||this===null){throw new TypeError("can't convert "+this+" to object")}return String(this).replace(E,"")}})}var x=function(e){this._s=String(I.CheckObjectCoercible(e));this._i=0};x.prototype.next=function(){var t=this._s,r=this._i;if(t===e||r>=t.length){this._s=e;return{value:e,done:true}}var n=t.charCodeAt(r),a,i;if(n<55296||n>56319||r+1==t.length){i=1}else{a=t.charCodeAt(r+1);i=a<56320||a>57343?1:2}this._i=r+i;return{value:t.substr(r,i),done:false}};d(x.prototype);d(String.prototype,function(){return new x(this)});if(!f){String.prototype.startsWith=N.startsWith;String.prototype.endsWith=N.endsWith}var C={from:function(t){var r=arguments.length>1?arguments[1]:e;var n=I.ToObject(t,"bad iterable");if(r!==e&&!I.IsCallable(r)){throw new TypeError("Array.from: when provided, the second argument must be a function")}var a=arguments.length>2;var i=a?arguments[2]:e;var o=I.IsIterable(n);var u;var s,f,c;if(o){f=0;s=I.IsCallable(this)?Object(new this):[];var l=o?I.GetIterator(n):null;var h;do{h=I.IteratorNext(l);if(!h.done){c=h.value;if(r){s[f]=a?r.call(i,c,f):r(c,f)}else{s[f]=c}f+=1}}while(!h.done);u=f}else{u=I.ToLength(n.length);s=I.IsCallable(this)?Object(new this(u)):new Array(u);for(f=0;f<u;++f){c=n[f];if(r){s[f]=a?r.call(i,c,f):r(c,f)}else{s[f]=c}}}s.length=u;return s},of:function(){return Array.from(arguments)}};b(Array,C);var k=function(){try{return Array.from({length:-1}).length===0}catch(e){return false}};if(!k()){y(Array,"from",C.from,true)}p=function(e,t){this.i=0;this.array=e;this.kind=t};b(p.prototype,{next:function(){var t=this.i,r=this.array;if(!(this instanceof p)){throw new TypeError("Not an ArrayIterator")}if(r!==e){var n=I.ToLength(r.length);for(;t<n;t++){var a=this.kind;var i;if(a==="key"){i=t}else if(a==="value"){i=r[t]}else if(a==="entry"){i=[t,r[t]]}this.i=t+1;return{value:i,done:false}}}this.array=e;return{value:e,done:true}}});d(p.prototype);var P={copyWithin:function(t,r){var n=arguments[2];var a=I.ToObject(this);var i=I.ToLength(a.length);t=I.ToInteger(t);r=I.ToInteger(r);var o=t<0?Math.max(i+t,0):Math.min(t,i);var u=r<0?Math.max(i+r,0):Math.min(r,i);n=n===e?i:I.ToInteger(n);var s=n<0?Math.max(i+n,0):Math.min(n,i);var f=Math.min(s-u,i-o);var c=1;if(u<o&&o<u+f){c=-1;u+=f-1;o+=f-1}while(f>0){if(v.call(a,u)){a[o]=a[u]}else{delete a[u]}u+=c;o+=c;f-=1}return a},fill:function(t){var r=arguments.length>1?arguments[1]:e;var n=arguments.length>2?arguments[2]:e;var a=I.ToObject(this);var i=I.ToLength(a.length);r=I.ToInteger(r===e?0:r);n=I.ToInteger(n===e?i:n);var o=r<0?Math.max(i+r,0):Math.min(r,i);var u=n<0?i+n:n;for(var s=o;s<i&&s<u;++s){a[s]=t}return a},find:function X(t){var r=I.ToObject(this);var n=I.ToLength(r.length);if(!I.IsCallable(t)){throw new TypeError("Array#find: predicate must be a function")}var a=arguments[1];for(var i=0,o;i<n;i++){o=r[i];if(t.call(a,o,i,r)){return o}}return e},findIndex:function q(e){var t=I.ToObject(this);var r=I.ToLength(t.length);if(!I.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var n=arguments[1];for(var a=0;a<r;a++){if(e.call(n,t[a],a,t)){return a}}return-1},keys:function(){return new p(this,"key")},values:function(){return new p(this,"value")},entries:function(){return new p(this,"entry")}};b(Array.prototype,P);d(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){d(Object.getPrototypeOf([].values()))}var A=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:A,MIN_SAFE_INTEGER:-A,EPSILON:2.220446049250313e-16,parseInt:o.parseInt,parseFloat:o.parseFloat,isFinite:function(e){return typeof e==="number"&&u(e)},isInteger:function(e){return Number.isFinite(e)&&I.ToInteger(e)===e},isSafeInteger:function(e){return Number.isInteger(e)&&Math.abs(e)<=Number.MAX_SAFE_INTEGER},isNaN:function(e){return e!==e}});if(![,1].find(function(e,t){return t===0})){y(Array.prototype,"find",P.find,true)}if([,1].findIndex(function(e,t){return t===0})!==0){y(Array.prototype,"findIndex",P.findIndex,true)}if(s){b(Object,{getPropertyDescriptor:function(t,r){var n=Object.getOwnPropertyDescriptor(t,r);var a=Object.getPrototypeOf(t);while(n===e&&a!==null){n=Object.getOwnPropertyDescriptor(a,r);a=Object.getPrototypeOf(a)}return n},getPropertyNames:function(e){var t=Object.getOwnPropertyNames(e);var r=Object.getPrototypeOf(e);var n=function(e){if(t.indexOf(e)===-1){t.push(e)}};while(r!==null){Object.getOwnPropertyNames(r).forEach(n);r=Object.getPrototypeOf(r)}return t}});b(Object,{assign:function(e,t){if(!I.TypeIsObject(e)){throw new TypeError("target must be an object")}return Array.prototype.reduce.call(arguments,function(e,t){return Object.keys(Object(t)).reduce(function(e,r){e[r]=t[r];return e},e)})},is:function(e,t){return I.SameValue(e,t)},setPrototypeOf:function(e,t){var r;var n=function(e,t){if(!I.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||I.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var a=function(e,t){n(e,t);r.call(e,t);return e};try{r=e.getOwnPropertyDescriptor(e.prototype,t).set;r.call({},null)}catch(i){if(e.prototype!=={}[t]){return}r=function(e){this[t]=e};a.polyfill=a(a({},null),e.prototype)instanceof e}return a}(Object,"__proto__")})}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf,r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){if(n===null){n=e}return r(t,n)};Object.setPrototypeOf.polyfill=false})()}try{Object.keys("foo")}catch(R){var F=Object.keys;Object.keys=function(e){return F(I.ToObject(e))}}var z={acosh:function(e){e=Number(e);if(Number.isNaN(e)||e<1)return NaN;if(e===1)return 0;if(e===Infinity)return e;return Math.log(e+Math.sqrt(e*e-1))},asinh:function(e){e=Number(e);if(e===0||!u(e)){return e}return e<0?-Math.asinh(-e):Math.log(e+Math.sqrt(e*e+1))},atanh:function(e){e=Number(e);if(Number.isNaN(e)||e<-1||e>1){return NaN}if(e===-1)return-Infinity;if(e===1)return Infinity;if(e===0)return e;return.5*Math.log((1+e)/(1-e))},cbrt:function(e){e=Number(e);if(e===0)return e;var t=e<0,r;if(t)e=-e;r=Math.pow(e,1/3);return t?-r:r},clz32:function(e){e=Number(e);var t=I.ToUint32(e);if(t===0){return 32}return 32-t.toString(2).length},cosh:function(e){e=Number(e);if(e===0)return 1;if(Number.isNaN(e))return NaN;if(!u(e))return Infinity;if(e<0)e=-e;if(e>21)return Math.exp(e)/2;return(Math.exp(e)+Math.exp(-e))/2},expm1:function(e){e=Number(e);if(e===-Infinity)return-1;if(!u(e)||e===0)return e;return Math.exp(e)-1},hypot:function(e,t){var r=false;var n=true;var a=false;var i=[];Array.prototype.every.call(arguments,function(e){var t=Number(e);if(Number.isNaN(t))r=true;else if(t===Infinity||t===-Infinity)a=true;else if(t!==0)n=false;if(a){return false}else if(!r){i.push(Math.abs(t))}return true});if(a)return Infinity;if(r)return NaN;if(n)return 0;i.sort(function(e,t){return t-e});var o=i[0];var u=i.map(function(e){return e/o});var s=u.reduce(function(e,t){return e+=t*t},0);return o*Math.sqrt(s)},log2:function(e){return Math.log(e)*Math.LOG2E},log10:function(e){return Math.log(e)*Math.LOG10E},log1p:function(e){e=Number(e);if(e<-1||Number.isNaN(e))return NaN;if(e===0||e===Infinity)return e;if(e===-1)return-Infinity;var t=0;var r=50;if(e<0||e>1)return Math.log(1+e);for(var n=1;n<r;n++){if(n%2===0){t-=Math.pow(e,n)/n}else{t+=Math.pow(e,n)/n}}return t},sign:function(e){var t=+e;if(t===0)return t;if(Number.isNaN(t))return t;return t<0?-1:1},sinh:function(e){e=Number(e);if(!u(e)||e===0)return e;return(Math.exp(e)-Math.exp(-e))/2},tanh:function(e){e=Number(e);if(Number.isNaN(e)||e===0)return e;if(e===Infinity)return 1;if(e===-Infinity)return-1;return(Math.exp(e)-Math.exp(-e))/(Math.exp(e)+Math.exp(-e))},trunc:function(e){var t=Number(e);return t<0?-Math.floor(-t):Math.floor(t)},imul:function(e,t){e=I.ToUint32(e);t=I.ToUint32(t);var r=e>>>16&65535;var n=e&65535;var a=t>>>16&65535;var i=t&65535;return n*i+(r*i+n*a<<16>>>0)|0},fround:function(e){if(e===0||e===Infinity||e===-Infinity||Number.isNaN(e)){return e}var t=Number(e);return O.toFloat32(t)}};b(Math,z);if(Math.imul(4294967295,5)!==-5){Math.imul=z.imul}var D=function(){var t,r;I.IsPromise=function(t){if(!I.TypeIsObject(t)){return false}if(!t._promiseConstructor){return false}if(t._status===e){return false}return true};var n=function(e){if(!I.IsCallable(e)){throw new TypeError("bad promise constructor")}var t=this;var r=function(e,r){t.resolve=e;t.reject=r};t.promise=I.Construct(e,[r]);if(!t.promise._es6construct){throw new TypeError("bad promise constructor")}if(!(I.IsCallable(t.resolve)&&I.IsCallable(t.reject))){throw new TypeError("bad promise constructor")}};var a=o.setTimeout;var i;if(typeof window!=="undefined"&&I.IsCallable(window.postMessage)){i=function(){var e=[];var t="zero-timeout-message";var r=function(r){e.push(r);window.postMessage(t,"*")};var n=function(r){if(r.source==window&&r.data==t){r.stopPropagation();if(e.length===0){return}var n=e.shift();n()}};window.addEventListener("message",n,true);return r}}var u=function(){var e=o.Promise;return e&&e.resolve&&function(t){return e.resolve().then(t)}};var s=I.IsCallable(o.setImmediate)?o.setImmediate.bind(o):typeof process==="object"&&process.nextTick?process.nextTick:u()||(I.IsCallable(i)?i():function(e){a(e,0)});var f=function(e,t){e.forEach(function(e){s(function(){var r=e.handler;var n=e.capability;var a=n.resolve;var i=n.reject;try{var o=r(t);if(o===n.promise){throw new TypeError("self resolution")}var u=c(o,n);if(!u){a(o)}}catch(s){i(s)}})})};var c=function(e,t){if(!I.TypeIsObject(e)){return false}var r=t.resolve;var n=t.reject;try{var a=e.then;if(!I.IsCallable(a)){return false}a.call(e,r,n)}catch(i){n(i)}return true};var l=function(e,t,r){return function(a){if(a===e){return r(new TypeError("self resolution"))}var i=e._promiseConstructor;var o=new n(i);var u=c(a,o);if(u){return o.promise.then(t,r)}else{return t(a)}}};t=function(t){var r=this;r=j(r);if(!r._promiseConstructor){throw new TypeError("bad promise")}if(r._status!==e){throw new TypeError("promise already initialized")}if(!I.IsCallable(t)){throw new TypeError("not a valid resolver")}r._status="unresolved";r._resolveReactions=[];r._rejectReactions=[];var n=function(t){if(r._status!=="unresolved"){return}var n=r._resolveReactions;r._result=t;r._resolveReactions=e;r._rejectReactions=e;r._status="has-resolution";f(n,t)};var a=function(t){if(r._status!=="unresolved"){return}var n=r._rejectReactions;r._result=t;r._resolveReactions=e;r._rejectReactions=e;r._status="has-rejection";f(n,t)};try{t(n,a)}catch(i){a(i)}return r};r=t.prototype;b(t,{"@@create":function(t){var n=this;var a=n.prototype||r;t=t||g(a);b(t,{_status:e,_result:e,_resolveReactions:e,_rejectReactions:e,_promiseConstructor:e});t._promiseConstructor=n;return t}});var h=function(e,t,r,n){var a=false;return function(i){if(a){return}a=true;t[e]=i;if(--n.count===0){var o=r.resolve;o(t)}}};t.all=function(e){var t=this;var r=new n(t);var a=r.resolve;var i=r.reject;try{if(!I.IsIterable(e)){throw new TypeError("bad iterable")}var o=I.GetIterator(e);var u=[],s={count:1};for(var f=0;;f++){var c=I.IteratorNext(o);if(c.done){break}var l=t.resolve(c.value);var v=h(f,u,r,s);s.count++;l.then(v,r.reject)}if(--s.count===0){a(u)}}catch(p){i(p)}return r.promise};t.race=function(e){var t=this;var r=new n(t);var a=r.resolve;var i=r.reject;try{if(!I.IsIterable(e)){throw new TypeError("bad iterable")}var o=I.GetIterator(e);while(true){var u=I.IteratorNext(o);if(u.done){break}var s=t.resolve(u.value);s.then(a,i)}}catch(f){i(f)}return r.promise};t.reject=function(e){var t=this;var r=new n(t);var a=r.reject;a(e);return r.promise};t.resolve=function(e){var t=this;if(I.IsPromise(e)){var r=e._promiseConstructor;if(r===t){return e}}var a=new n(t);var i=a.resolve;i(e);return a.promise};t.prototype["catch"]=function(t){return this.then(e,t)};t.prototype.then=function(e,t){var r=this;if(!I.IsPromise(r)){throw new TypeError("not a promise")}var a=this.constructor;var i=new n(a);if(!I.IsCallable(t)){t=function(e){throw e}}if(!I.IsCallable(e)){e=function(e){return e}}var o=l(r,e,t);var u={capability:i,handler:o};var s={capability:i,handler:t};switch(r._status){case"unresolved":r._resolveReactions.push(u);r._rejectReactions.push(s);break;case"has-resolution":f([u],r._result);break;case"has-rejection":f([s],r._result);break;default:throw new TypeError("unexpected")}return i.promise};return t}();b(o,{Promise:D});var G=r(o.Promise,function(e){return e.resolve(42)instanceof e});var L=function(){try{o.Promise.reject(42).then(null,5).then(null,function(){});return true}catch(e){return false}}();if(!G||!L){o.Promise=D}if(s){var W=function $(e){var t=typeof e;if(t==="string"){return"$"+e}else if(t==="number"){return e}return null};var V=function B(){return Object.create?Object.create(null):{}};var Z={Map:function(){var t={};function r(e,t){this.key=e;this.value=t;this.next=null;this.prev=null}r.prototype.isRemoved=function(){return this.key===t};function n(e,t){this.head=e._head;this.i=this.head;this.kind=t}n.prototype={next:function(){var t=this.i,r=this.kind,n=this.head,a;if(this.i===e){return{value:e,done:true}}while(t.isRemoved()&&t!==n){t=t.prev}while(t.next!==n){t=t.next;if(!t.isRemoved()){if(r==="key"){a=t.key}else if(r==="value"){a=t.value}else{a=[t.key,t.value]}this.i=t;return{value:a,done:false}}}this.i=e;return{value:e,done:true}}};d(n.prototype);function a(t){var n=this;n=j(n);if(!n._es6map){throw new TypeError("bad map")}var a=new r(null,null);a.next=a.prev=a;b(n,{_head:a,_storage:V(),_size:0});if(t!==e&&t!==null){var i=I.GetIterator(t);var o=n.set;if(!I.IsCallable(o)){throw new TypeError("bad map")}while(true){var u=I.IteratorNext(i);if(u.done){break}var s=u.value;if(!I.TypeIsObject(s)){throw new TypeError("expected iterable of pairs")}o.call(n,s[0],s[1])}}return n}var i=a.prototype;b(a,{"@@create":function(e){var t=this;var r=t.prototype||i;e=e||g(r);b(e,{_es6map:true});return e}});Object.defineProperty(a.prototype,"size",{configurable:true,enumerable:false,get:function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size}});b(a.prototype,{get:function(t){var r=W(t);if(r!==null){var n=this._storage[r];return n?n.value:e}var a=this._head,i=a;while((i=i.next)!==a){if(I.SameValueZero(i.key,t)){return i.value}}return e},has:function(e){var t=W(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head,n=r;while((n=n.next)!==r){if(I.SameValueZero(n.key,e)){return true}}return false},set:function(e,t){var n=this._head,a=n,i;var o=W(e);if(o!==null){if(typeof this._storage[o]!=="undefined"){this._storage[o].value=t;return}else{i=this._storage[o]=new r(e,t);a=n.prev}}while((a=a.next)!==n){if(I.SameValueZero(a.key,e)){a.value=t;return}}i=i||new r(e,t);if(I.SameValue(-0,e)){i.key=+0}i.next=this._head;i.prev=this._head.prev;i.prev.next=i;i.next.prev=i;this._size+=1},"delete":function(e){var r=this._head,n=r;var a=W(e);if(a!==null){if(typeof this._storage[a]==="undefined"){return false}n=this._storage[a].prev;delete this._storage[a]}while((n=n.next)!==r){if(I.SameValueZero(n.key,e)){n.key=n.value=t;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function(){this._size=0;this._storage=V();var e=this._head,r=e,n=r.next;while((r=n)!==e){r.key=r.value=t;n=r.next;r.next=r.prev=e}e.next=e.prev=e},keys:function(){return new n(this,"key")},values:function(){return new n(this,"value")},entries:function(){return new n(this,"key+value")},forEach:function(e){var t=arguments.length>1?arguments[1]:null;var r=this.entries();for(var n=r.next();!n.done;n=r.next()){e.call(t,n.value[1],n.value[0],this)}}});d(a.prototype,function(){return this.entries()});return a}(),Set:function(){var t=function a(t){var r=this;r=j(r);if(!r._es6set){throw new TypeError("bad set")}b(r,{"[[SetData]]":null,_storage:V()});if(t!==e&&t!==null){var n=I.GetIterator(t);var a=r.add;if(!I.IsCallable(a)){throw new TypeError("bad set")}while(true){var i=I.IteratorNext(n);if(i.done){break}var o=i.value;a.call(r,o)}}return r};var r=t.prototype;b(t,{"@@create":function(e){var t=this;var n=t.prototype||r;e=e||g(n);b(e,{_es6set:true});return e}});var n=function i(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new Z.Map;Object.keys(e._storage).forEach(function(e){if(e.charCodeAt(0)===36){e=e.slice(1)}else{e=+e}t.set(e,e)});e._storage=null}};Object.defineProperty(t.prototype,"size",{configurable:true,enumerable:false,get:function(){if(typeof this._storage==="undefined"){throw new TypeError("size method called on incompatible Set")}n(this);return this["[[SetData]]"].size}});b(t.prototype,{has:function(e){var t;if(this._storage&&(t=W(e))!==null){return!!this._storage[t]}n(this);return this["[[SetData]]"].has(e)},add:function(e){var t;if(this._storage&&(t=W(e))!==null){this._storage[t]=true;return}n(this);return this["[[SetData]]"].set(e,e)},"delete":function(e){var t;if(this._storage&&(t=W(e))!==null){delete this._storage[t];return}n(this);return this["[[SetData]]"]["delete"](e)},clear:function(){if(this._storage){this._storage=V();return}return this["[[SetData]]"].clear()},keys:function(){n(this);return this["[[SetData]]"].keys()},values:function(){n(this);return this["[[SetData]]"].values()},entries:function(){n(this);return this["[[SetData]]"].entries()},forEach:function(e){var t=arguments.length>1?arguments[1]:null;var r=this;n(this);this["[[SetData]]"].forEach(function(n,a){e.call(t,a,a,r)})}});d(t.prototype,function(){return this.values()});return t}()};b(o,Z);if(o.Map||o.Set){if(typeof o.Map.prototype.clear!=="function"||(new o.Set).size!==0||(new o.Map).size!==0||typeof o.Map.prototype.keys!=="function"||typeof o.Set.prototype.keys!=="function"||typeof o.Map.prototype.forEach!=="function"||typeof o.Set.prototype.forEach!=="function"||t(o.Map)||t(o.Set)||!r(o.Map,function(e){return new e([])instanceof e})){o.Map=Z.Map;o.Set=Z.Set}}d(Object.getPrototypeOf((new o.Map).keys()));d(Object.getPrototypeOf((new o.Set).keys()))}};if(typeof define==="function"&&define.amd){define(o)}else{o()}})(); +//# sourceMappingURL=es6-shim.map
\ No newline at end of file diff --git a/js/vendor/es6-shim/package.json b/js/vendor/es6-shim/package.json new file mode 100644 index 000000000..22134584c --- /dev/null +++ b/js/vendor/es6-shim/package.json @@ -0,0 +1,69 @@ +{ + "author": "Paul Miller (http://paulmillr.com)", + "name": "es6-shim", + "version": "0.18.0", + "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", + "keywords": [ + "ecmascript", + "harmony", + "es6", + "shim", + "promise", + "promises", + "setPrototypeOf", + "map", + "set", + "__proto__" + ], + "homepage": "https://github.com/paulmillr/es6-shim/", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/es6-shim.git" + }, + "main": "es6-shim", + "scripts": { + "test": "npm run test-shim && npm run test-sham", + "lint": "npm run lint-shim && npm run lint-sham", + "lint-shim": "jshint es6-shim.js", + "lint-sham": "jshint es6-sham.js", + "test-shim": "npm run lint-shim && mocha test/*.js test/*/*.js", + "test-sham": "npm run lint-sham && mocha test-sham/*.js", + "test-native": "jshint es6-shim.js && NO_ES6_SHIM=1 mocha test/*.js test/*/*.js", + "minify": "npm run minify-shim && npm run minify-sham", + "minify-shim": "uglifyjs es6-shim.js --comments --source-map=es6-shim.map -m -b ascii_only=true,beautify=false > es6-shim.min.js", + "minify-sham": "uglifyjs es6-sham.js --comments --source-map=es6-sham.map -m -b ascii_only=true,beautify=false > es6-sham.min.js", + "sauce": "grunt sauce" + }, + "testling": { + "html": "testling.html", + "browsers": [ + "iexplore/9.0..latest", + "firefox/10.0", + "firefox/17.0", + "firefox/22.0..latest", + "firefox/nightly", + "chrome/25.0..latest", + "chrome/canary", + "safari/5.0.5..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12.0..latest", + "android-browser/4.2..latest" + ] + }, + "dependencies": {}, + "devDependencies": { + "chai": "~1.9.1", + "es5-shim": "~4.0.3", + "grunt": "~0.4.5", + "grunt-contrib-connect": "~0.1.2", + "grunt-contrib-watch": "~0.2.0", + "grunt-saucelabs": "~8.3.1", + "jshint": "~2.5.5", + "mocha": "~1.21.4", + "promises-aplus-tests": "~2.0.5", + "promises-es6-tests": "~0.5.0", + "uglify-js": "~2.4.15" + } +} diff --git a/js/vendor/es6-shim/test-sham/index.html b/js/vendor/es6-shim/test-sham/index.html new file mode 100644 index 000000000..e83204d0f --- /dev/null +++ b/js/vendor/es6-shim/test-sham/index.html @@ -0,0 +1,22 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <title>es6-shim tests</title> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script> + <link rel="stylesheet" href="../node_modules/mocha/mocha.css" /> + <script src="../node_modules/es5-shim/es5-shim.js"></script> + <script src="../node_modules/es5-shim/es5-sham.js"></script> + <script src="../node_modules/mocha/mocha.js"></script> + <!-- note that chai uses Object.create() so needs es5-sham to be loaded --> + <script src="../node_modules/chai/chai.js"></script> + <script src="../es6-sham.js"></script> + <script src="../test/browser-setup.js"></script> + <script src="set-prototype-of.js"></script> + <script src="../test/browser-onload.js"></script> +</head> +<body> + <div id="mocha"></div> +</body> +</html> + diff --git a/js/vendor/es6-shim/test-sham/set-prototype-of.js b/js/vendor/es6-shim/test-sham/set-prototype-of.js new file mode 100644 index 000000000..d68f930fd --- /dev/null +++ b/js/vendor/es6-shim/test-sham/set-prototype-of.js @@ -0,0 +1,24 @@ +describe('Object.setPrototypeOf(o, p)', function() { + + it('changes prototype to regular objects', function() { + var obj = {a: 123}; + expect(obj instanceof Object).to.equal(true); + // sham requires assignment to work cross browser + obj = Object.setPrototypeOf(obj, null); + expect(obj instanceof Object).to.equal(false); + expect(obj.a).to.equal(123); + }); + + it('changes prototype to null objects', function() { + var obj = Object.create(null); + obj.a = 456; + expect(obj instanceof Object).to.equal(false); + expect(obj.a).to.equal(456); + // sham requires assignment to work cross browser + obj = Object.setPrototypeOf(obj, {}); + expect(obj instanceof Object).to.equal(true); + expect(obj.a).to.equal(456); + }); + +}); + diff --git a/js/vendor/es6-shim/testling.html b/js/vendor/es6-shim/testling.html new file mode 100644 index 000000000..bad3dda15 --- /dev/null +++ b/js/vendor/es6-shim/testling.html @@ -0,0 +1,35 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <title>es6-shim tests</title> + <script src="node_modules/es5-shim/es5-shim.js"></script> + <script src="node_modules/es5-shim/es5-sham.js"></script> + <script src="node_modules/mocha/mocha.js"></script> + <!-- note that chai uses Object.create() so needs es5-sham to be loaded --> + <script src="node_modules/chai/chai.js"></script> + <script src="es6-shim.js"></script> + <script>chai.config.includeStack=true; window.expect=chai.expect; window.assert=chai.assert; mocha.setup({ui:'bdd',reporter:'tap'});</script> + <script src="test/array.js"></script> + <script src="test/collections.js"></script> + <script src="test/math.js"></script> + <script src="test/number.js"></script> + <script src="test/object.js"></script> + <script src="test/promise.js"></script> + <script src="test/string.js"></script> + <script src="test/promise/all.js"></script> + <script src="test/promise/evil-promises.js"></script> +<!-- + <script src="test/promise/promises-aplus.js"></script> +--> + <script src="node_modules/promises-es6-tests/bundle/promises-es6-tests.js"></script> + <script src="test/promise/race.js"></script> + <script src="test/promise/simple.js"></script> + <script src="test/promise/subclass.js"></script> + <script>mocha.run()</script> +</head> +<body> + <div id="mocha"></div> +</body> +</html> + diff --git a/js/vendor/momentjs/.bower.json b/js/vendor/momentjs/.bower.json index e885cc6b9..b726451ed 100644 --- a/js/vendor/momentjs/.bower.json +++ b/js/vendor/momentjs/.bower.json @@ -1,6 +1,6 @@ { "name": "moment", - "version": "2.8.2", + "version": "2.8.3", "main": "moment.js", "ignore": [ "**/.*", @@ -18,13 +18,13 @@ "package.json" ], "homepage": "https://github.com/moment/moment", - "_release": "2.8.2", + "_release": "2.8.3", "_resolution": { "type": "version", - "tag": "2.8.2", - "commit": "c4c47a7793dfc116acd1356f668eb1a182e29d68" + "tag": "2.8.3", + "commit": "ea9c75e58231e8c118d2219592f5699294b790ef" }, "_source": "git://github.com/moment/moment.git", - "_target": "~2.8", + "_target": "~2.8.*", "_originalSource": "momentjs" }
\ No newline at end of file diff --git a/js/vendor/momentjs/CHANGELOG.md b/js/vendor/momentjs/CHANGELOG.md index 8aa611329..5bc167f67 100644 --- a/js/vendor/momentjs/CHANGELOG.md +++ b/js/vendor/momentjs/CHANGELOG.md @@ -1,6 +1,22 @@ Changelog ========= +### 2.8.3 + +Bugfixes: + +* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic +* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration +* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 +* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech +* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions +* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds +* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same +* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs +* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array +* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) +* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) + ### 2.8.2 Minor bugfixes: diff --git a/js/vendor/momentjs/bower.json b/js/vendor/momentjs/bower.json index 0e3a96804..68586b9d2 100644 --- a/js/vendor/momentjs/bower.json +++ b/js/vendor/momentjs/bower.json @@ -1,6 +1,6 @@ { "name": "moment", - "version": "2.8.2", + "version": "2.8.3", "main": "moment.js", "ignore": [ "**/.*", diff --git a/js/vendor/momentjs/locale/ar.js b/js/vendor/momentjs/locale/ar.js index 70b3bed24..1791a6b39 100644 --- a/js/vendor/momentjs/locale/ar.js +++ b/js/vendor/momentjs/locale/ar.js @@ -1,7 +1,8 @@ // moment.js locale configuration -// locale : Arabic (ar) -// author : Abdel Said : https://github.com/abdelsaid -// changes in months, weekdays : Ahmed Elkhatib +// Locale: Arabic (ar) +// Author: Abdel Said: https://github.com/abdelsaid +// Changes in months, weekdays: Ahmed Elkhatib +// Native plural forms: forabi https://github.com/forabi (function (factory) { if (typeof define === 'function' && define.amd) { @@ -34,11 +35,42 @@ '٨': '8', '٩': '9', '٠': '0' - }; + }, pluralForm = function (n) { + return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; + }, plurals = { + s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], + m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], + h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], + d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], + M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], + y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] + }, pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, months = [ + 'كانون الثاني يناير', + 'شباط فبراير', + 'آذار مارس', + 'نيسان أبريل', + 'أيار مايو', + 'حزيران يونيو', + 'تموز يوليو', + 'آب أغسطس', + 'أيلول سبتمبر', + 'تشرين الأول أكتوبر', + 'تشرين الثاني نوفمبر', + 'كانون الأول ديسمبر' + ]; return moment.defineLocale('ar', { - months : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), - monthsShort : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), + months : months, + monthsShort : months, weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), @@ -57,27 +89,27 @@ } }, calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime : { - future : 'في %s', + future : 'بعد %s', past : 'منذ %s', - s : 'ثوان', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' + s : pluralize('s'), + m : pluralize('m'), + mm : pluralize('m'), + h : pluralize('h'), + hh : pluralize('h'), + d : pluralize('d'), + dd : pluralize('d'), + M : pluralize('M'), + MM : pluralize('M'), + y : pluralize('y'), + yy : pluralize('y') }, preparse: function (string) { return string.replace(/[۰-۹]/g, function (match) { diff --git a/js/vendor/momentjs/locale/cs.js b/js/vendor/momentjs/locale/cs.js index 58f894528..87dec552e 100644 --- a/js/vendor/momentjs/locale/cs.js +++ b/js/vendor/momentjs/locale/cs.js @@ -86,7 +86,7 @@ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'), weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'), longDateFormat : { - LT: 'H.mm', + LT: 'H:mm', L : 'DD. MM. YYYY', LL : 'D. MMMM YYYY', LLL : 'D. MMMM YYYY LT', diff --git a/js/vendor/momentjs/min/locales.js b/js/vendor/momentjs/min/locales.js index 0106b95cd..5666d2e74 100644 --- a/js/vendor/momentjs/min/locales.js +++ b/js/vendor/momentjs/min/locales.js @@ -219,9 +219,10 @@ })); // moment.js locale configuration -// locale : Arabic (ar) -// author : Abdel Said : https://github.com/abdelsaid -// changes in months, weekdays : Ahmed Elkhatib +// Locale: Arabic (ar) +// Author: Abdel Said: https://github.com/abdelsaid +// Changes in months, weekdays: Ahmed Elkhatib +// Native plural forms: forabi https://github.com/forabi (function (factory) { if (typeof define === 'function' && define.amd) { @@ -254,11 +255,42 @@ '٨': '8', '٩': '9', '٠': '0' - }; + }, pluralForm = function (n) { + return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; + }, plurals = { + s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], + m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], + h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], + d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], + M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], + y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] + }, pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, months = [ + 'كانون الثاني يناير', + 'شباط فبراير', + 'آذار مارس', + 'نيسان أبريل', + 'أيار مايو', + 'حزيران يونيو', + 'تموز يوليو', + 'آب أغسطس', + 'أيلول سبتمبر', + 'تشرين الأول أكتوبر', + 'تشرين الثاني نوفمبر', + 'كانون الأول ديسمبر' + ]; return moment.defineLocale('ar', { - months : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), - monthsShort : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), + months : months, + monthsShort : months, weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), @@ -277,27 +309,27 @@ } }, calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime : { - future : 'في %s', + future : 'بعد %s', past : 'منذ %s', - s : 'ثوان', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' + s : pluralize('s'), + m : pluralize('m'), + mm : pluralize('m'), + h : pluralize('h'), + hh : pluralize('h'), + d : pluralize('d'), + dd : pluralize('d'), + M : pluralize('M'), + MM : pluralize('M'), + y : pluralize('y'), + yy : pluralize('y') }, preparse: function (string) { return string.replace(/[۰-۹]/g, function (match) { @@ -1269,7 +1301,7 @@ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'), weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'), longDateFormat : { - LT: 'H.mm', + LT: 'H:mm', L : 'DD. MM. YYYY', LL : 'D. MMMM YYYY', LLL : 'D. MMMM YYYY LT', diff --git a/js/vendor/momentjs/min/locales.min.js b/js/vendor/momentjs/min/locales.min.js index 1bdb43f72..e29a129cd 100644 --- a/js/vendor/momentjs/min/locales.min.js +++ b/js/vendor/momentjs/min/locales.min.js @@ -1,4 +1,4 @@ -!function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar",{months:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),monthsShort:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};return a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiem:function(a){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinal:function(a){if(0===a)return a+"-ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),accusative:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),accusative:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")},d=/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("be",{months:d,monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:e,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiem:function(a){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},c={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};return a.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কএক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"রাত":10>a?"শকাল":17>a?"দুপুর":20>a?"বিকেল":"রাত"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},c={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};return a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+e(d[c],a)}function c(a){switch(d(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function d(a){return a>9?d(a%10):a}function e(a,b){return 2===b?f(a):a}function f(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}return a.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:b,h:"un eur",hh:"%d eur",d:"un devezh",dd:b,M:"ur miz",MM:b,y:"ur bloaz",yy:c},ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a){return a>1&&5>a&&1!==~~(a/10)}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekund":"pár sekundami";case"m":return c?"minuta":e?"minutu":"minutou";case"mm":return c||e?f+(b(a)?"minuty":"minut"):f+"minutami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodin"):f+"hodinami";break;case"d":return c||e?"den":"dnem";case"dd":return c||e?f+(b(a)?"dny":"dní"):f+"dny";break;case"M":return c||e?"měsíc":"měsícem";case"MM":return c||e?f+(b(a)?"měsíce":"měsíců"):f+"měsíci";break;case"y":return c||e?"rok":"rokem";case"yy":return c||e?f+(b(a)?"roky":"let"):f+"lety"}}var d="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),e="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");return a.defineLocale("cs",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H.mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("cv",{months:"кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),monthsShort:"кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кç_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M." +!function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},d=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},e={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},f=function(a){return function(b,c){var f=d(b),g=e[a][d(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},g=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];return a.defineLocale("ar",{months:g,monthsShort:g,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:f("s"),m:f("m"),mm:f("m"),h:f("h"),hh:f("h"),d:f("d"),dd:f("d"),M:f("M"),MM:f("M"),y:f("y"),yy:f("y")},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};return a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiem:function(a){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinal:function(a){if(0===a)return a+"-ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),accusative:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),accusative:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")},d=/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("be",{months:d,monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:e,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiem:function(a){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},c={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};return a.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কএক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"রাত":10>a?"শকাল":17>a?"দুপুর":20>a?"বিকেল":"রাত"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},c={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};return a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+e(d[c],a)}function c(a){switch(d(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function d(a){return a>9?d(a%10):a}function e(a,b){return 2===b?f(a):a}function f(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}return a.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:b,h:"un eur",hh:"%d eur",d:"un devezh",dd:b,M:"ur miz",MM:b,y:"ur bloaz",yy:c},ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a){return a>1&&5>a&&1!==~~(a/10)}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekund":"pár sekundami";case"m":return c?"minuta":e?"minutu":"minutou";case"mm":return c||e?f+(b(a)?"minuty":"minut"):f+"minutami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodin"):f+"hodinami";break;case"d":return c||e?"den":"dnem";case"dd":return c||e?f+(b(a)?"dny":"dní"):f+"dny";break;case"M":return c||e?"měsíc":"měsícem";case"MM":return c||e?f+(b(a)?"měsíce":"měsíců"):f+"měsíci";break;case"y":return c||e?"rok":"rokem";case"yy":return c||e?f+(b(a)?"roky":"let"):f+"lety"}}var d="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),e="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");return a.defineLocale("cs",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("cv",{months:"кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),monthsShort:"кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кç_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M." },calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinal:"%da",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),c="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");return a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}return a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:"%d päeva",M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] LT",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] LT",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] LT",llll:"ddd, YYYY[ko] MMM D[a] LT"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},c={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(a){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,d,e){var f="";switch(d){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=c(a,e)+" "+f}function c(a,b){return 10>a?b?e[a]:d[a]:a}var d="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),e=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",d[7],d[8],d[9]];return a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D. MMMM, YYYY LT"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY LT",LLLL:"dddd, D [ב]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a+" שנים"}}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("hr",{months:"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function c(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");return a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return c.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return c.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c={nominative:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_"),accusative:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a){var b="հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_");return b[a.month()]}function d(a){var b="կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_");return b[a.day()]}return a.defineLocale("hy-am",{months:b,monthsShort:c,weekdays:d,weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., LT",LLLL:"dddd, D MMMM YYYY թ., LT"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a){return a%100===11?!0:a%10===1?!1:!0}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return c?"mínúta":"mínútu";case"mm":return b(a)?f+(c||e?"mínútur":"mínútum"):c?f+"mínúta":f+"mínútu";case"hh":return b(a)?f+(c||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case"d":return c?"dagur":e?"dag":"degi";case"dd":return b(a)?c?f+"dagar":f+(e?"daga":"dögum"):c?f+"dagur":f+(e?"dag":"degi");case"M":return c?"mánuður":e?"mánuð":"mánuði";case"MM":return b(a)?c?f+"mánuðir":f+(e?"mánuði":"mánuðum"):c?f+"mánuður":f+(e?"mánuð":"mánuði");case"y":return c||e?"ár":"ári";case"yy":return b(a)?f+(c||e?"ár":"árum"):f+(c||e?"ár":"ári")}}return a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:c,m:c,mm:c,h:"klukkustund",hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiem:function(a){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c={nominative:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),accusative:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},d=/D[oD] *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a,b){var c={nominative:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),accusative:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_")},d=/(წინა|შემდეგ)/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ka",{months:b,monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:c,weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("km",{months:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[ថ្ងៃនៈ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 LT",LLLL:"YYYY년 MMMM D일 dddd LT"},meridiem:function(a){return 12>a?"오전":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinal:"%d일",meridiemParse:/(오전|오후)/,isPM:function(a){return"오후"===a}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?d[c][0]:d[c][1]}function c(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"a "+a:"an "+a}function d(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"viru "+a:"virun "+a}function e(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return e(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return e(a)}return a/=1e3,e(a)}return a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),longDateFormat:{LT:"H:mm [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:c,past:d,s:"e puer Sekonnen",m:b,mm:"%d Minutten",h:b,hh:"%d Stonnen",d:b,dd:"%d Deeg",M:b,MM:"%d Méint",y:b,yy:"%d Joer"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function c(a,b,c,d){return b?e(c)[0]:d?e(c)[1]:e(c)[2]}function d(a){return a%10===0||a>10&&20>a}function e(a){return h[a].split("_")}function f(a,b,f,g){var h=a+" ";return 1===a?h+c(a,b,f[0],g):b?h+(d(a)?e(f)[1]:e(f)[0]):g?h+e(f)[1]:h+(d(a)?e(f)[1]:e(f)[2])}function g(a,b){var c=-1===b.indexOf("dddd HH:mm"),d=i[a.day()];return c?d:d.substring(0,d.length-2)+"į"}var h={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},i="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");return a.defineLocale("lt",{months:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:g,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], LT [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, LT [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], LT [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, LT [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:b,m:c,mm:f,h:c,hh:f,d:c,dd:f,M:c,MM:f,y:c,yy:f},ordinal:function(a){return a+"-oji" },week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d=a.split("_");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function c(a,c,e){return a+" "+b(d[e],a,c)}var d={mm:"minūti_minūtes_minūte_minūtes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mēnesi_mēnešus_mēnesis_mēneši",yy:"gadu_gadus_gads_gadi"};return a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:c,h:"stundu",hh:c,d:"dienu",dd:c,M:"mēnesi",MM:c,y:"gadu",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Во изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Во изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiem:function(a){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},c={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};return a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आइ._सो._मङ्_बु._बि._शु._श.".split("_"),longDateFormat:{LT:"Aको h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[भोली] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),c="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");return a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function c(a,c,d){var e=a+" ";switch(d){case"m":return c?"minuta":"minutę";case"mm":return e+(b(a)?"minuty":"minut");case"h":return c?"godzina":"godzinę";case"hh":return e+(b(a)?"godziny":"godzin");case"MM":return e+(b(a)?"miesiące":"miesięcy");case"yy":return e+(b(a)?"lata":"lat")}}var d="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),e="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return a.defineLocale("pl",{months:function(a,b){return/D MMMM/.test(b)?e[a.month()]:d[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:c,mm:c,h:c,hh:c,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:c,y:"rok",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}return a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:b,h:"o oră",hh:b,d:"o zi",dd:b,M:"o lună",MM:b,y:"un an",yy:b},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?c?"минута":"минуту":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ru",{months:d,monthsShort:e,weekdays:f,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:c,mm:c,h:"час",hh:c,d:"день",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a){return a>1&&5>a}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekúnd":"pár sekundami";case"m":return c?"minúta":e?"minútu":"minútou";case"mm":return c||e?f+(b(a)?"minúty":"minút"):f+"minútami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodín"):f+"hodinami";break;case"d":return c||e?"deň":"dňom";case"dd":return c||e?f+(b(a)?"dni":"dní"):f+"dňami";break;case"M":return c||e?"mesiac":"mesiacom";case"MM":return c||e?f+(b(a)?"mesiace":"mesiacov"):f+"mesiacmi";break;case"y":return c||e?"rok":"rokom";case"yy":return c||e?f+(b(a)?"roky":"rokov"):f+"rokmi"}}var d="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),e="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");return a.defineLocale("sk",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"ena minuta":"eno minuto";case"mm":return d+=1===a?"minuta":2===a?"minuti":3===a||4===a?"minute":"minut";case"h":return b?"ena ura":"eno uro";case"hh":return d+=1===a?"ura":2===a?"uri":3===a||4===a?"ure":"ur";case"dd":return d+=1===a?"dan":"dni";case"MM":return d+=1===a?"mesec":2===a?"meseca":3===a||4===a?"mesece":"mesecev";case"yy":return d+=1===a?"leto":2===a?"leti":3===a||4===a?"leta":"let"}}return a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"%s nazaj",s:"nekaj sekund",m:b,mm:b,h:b,hh:b,d:"en dan",dd:b,M:"en mesec",MM:b,y:"eno leto",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),meridiem:function(a){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"дан",dd:b.translate,M:"месец",MM:b.translate,y:"годину",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"dan",dd:b.translate,M:"mesec",MM:b.translate,y:"godinu",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":3===b?"e":"e";return a+c},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinal:function(a){return a+"வது"},meridiem:function(a){return a>=6&&10>=a?" காலை":a>=10&&14>=a?" நண்பகல்":a>=14&&18>=a?" எற்பாடு":a>=18&&20>=a?" மாலை":a>=20&&24>=a?" இரவு":a>=0&&6>=a?" வைகறை":void 0},week:{dow:0,doy:6}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiem:function(a){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง" },calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM DD, YYYY LT"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){var b={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(a){if(0===a)return a+"'ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===d?c?"хвилина":"хвилину":"h"===d?c?"година":"годину":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},d=/D[oD]? *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function f(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}return a.defineLocale("uk",{months:d,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:e,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:f("[Сьогодні "),nextDay:f("[Завтра "),lastDay:f("[Вчора "),nextWeek:f("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return f("[Минулої] dddd [").call(this);case 1:case 2:case 4:return f("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:c,mm:c,h:"годину",hh:c,d:"день",dd:c,M:"місяць",MM:c,y:"рік",yy:c},meridiem:function(a){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("uz",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"D MMMM YYYY, dddd LT"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("vi",{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("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY LT",LLLL:"dddd, D MMMM [năm] YYYY LT",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b;return 600>c?"凌晨":900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()-b.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()<b.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}})}),function(a){"function"==typeof define&&define.amd?define(["moment"],a):"object"==typeof exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b;return 900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}})});
\ No newline at end of file diff --git a/js/vendor/momentjs/min/moment-with-locales.js b/js/vendor/momentjs/min/moment-with-locales.js index 6f1dcc5df..23d06ef35 100644 --- a/js/vendor/momentjs/min/moment-with-locales.js +++ b/js/vendor/momentjs/min/moment-with-locales.js @@ -1,5 +1,5 @@ //! moment.js -//! version : 2.8.2 +//! version : 2.8.3 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com @@ -10,7 +10,7 @@ ************************************/ var moment, - VERSION = '2.8.2', + VERSION = '2.8.3', // the global-scope this is NOT the global object in Node.js globalScope = typeof global !== 'undefined' ? global : this, oldGlobalMoment, @@ -1493,6 +1493,9 @@ for (i = 0; i < config._f.length; i++) { currentScore = 0; tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } tempConfig._pf = defaultParsingFlags(); tempConfig._f = config._f[i]; makeDateFromStringAndFormat(tempConfig); @@ -1557,6 +1560,14 @@ } } + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + function makeDateFromInput(config) { var input = config._i, matched; if (input === undefined) { @@ -1568,7 +1579,9 @@ } else if (typeof input === 'string') { makeDateFromString(config); } else if (isArray(input)) { - config._a = input.slice(0); + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); dateFromConfig(config); } else if (typeof(input) === 'object') { dateFromObject(config); @@ -2123,7 +2136,7 @@ this._isUTC = false; if (keepLocalTime) { - this.add(this._d.getTimezoneOffset(), 'm'); + this.add(this._dateTzOffset(), 'm'); } } return this; @@ -2141,7 +2154,7 @@ diff : function (input, units, asFloat) { var that = makeAs(input, this), zoneDiff = (this.zone() - that.zone()) * 6e4, - diff, output; + diff, output, daysAdjust; units = normalizeUnits(units); @@ -2152,11 +2165,12 @@ output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); // adjust by taking difference in days, average number of days // and dst in the given months. - output += ((this - moment(this).startOf('month')) - - (that - moment(that).startOf('month'))) / diff; + daysAdjust = (this - moment(this).startOf('month')) - + (that - moment(that).startOf('month')); // same as above but with zones, to negate all dst - output -= ((this.zone() - moment(this).startOf('month').zone()) - - (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff; + daysAdjust -= ((this.zone() - moment(this).startOf('month').zone()) - + (that.zone() - moment(that).startOf('month').zone())) * 6e4; + output += daysAdjust / diff; if (units === 'year') { output = output / 12; } @@ -2265,18 +2279,33 @@ }, isAfter: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) > +moment(input).startOf(units); + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this > +input; + } else { + return +this.clone().startOf(units) > +moment(input).startOf(units); + } }, isBefore: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) < +moment(input).startOf(units); + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this < +input; + } else { + return +this.clone().startOf(units) < +moment(input).startOf(units); + } }, isSame: function (input, units) { - units = units || 'ms'; - return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this === +input; + } else { + return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + } }, min: deprecate( @@ -2316,7 +2345,7 @@ input = input * 60; } if (!this._isUTC && keepLocalTime) { - localAdjust = this._d.getTimezoneOffset(); + localAdjust = this._dateTzOffset(); } this._offset = input; this._isUTC = true; @@ -2334,7 +2363,7 @@ } } } else { - return this._isUTC ? offset : this._d.getTimezoneOffset(); + return this._isUTC ? offset : this._dateTzOffset(); } return this; }, @@ -2438,10 +2467,15 @@ // instance. Otherwise, it will return the locale configuration // variables for this instance. locale : function (key) { + var newLocaleData; + if (key === undefined) { return this._locale._abbr; } else { - this._locale = moment.localeData(key); + newLocaleData = moment.localeData(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } return this; } }, @@ -2452,14 +2486,19 @@ if (key === undefined) { return this.localeData(); } else { - this._locale = moment.localeData(key); - return this; + return this.locale(key); } } ), localeData : function () { return this._locale; + }, + + _dateTzOffset : function () { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return Math.round(this._d.getTimezoneOffset() / 15) * 15; } }); @@ -2657,19 +2696,21 @@ var days, months; units = normalizeUnits(units); - days = this._days + this._milliseconds / 864e5; if (units === 'month' || units === 'year') { + days = this._days + this._milliseconds / 864e5; months = this._months + daysToYears(days) * 12; return units === 'month' ? months : months / 12; } else { - days += yearsToDays(this._months / 12); + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + yearsToDays(this._months / 12); switch (units) { - case 'week': return days / 7; - case 'day': return days; - case 'hour': return days * 24; - case 'minute': return days * 24 * 60; - case 'second': return days * 24 * 60 * 60; - case 'millisecond': return days * 24 * 60 * 60 * 1000; + case 'week': return days / 7 + this._milliseconds / 6048e5; + case 'day': return days + this._milliseconds / 864e5; + case 'hour': return days * 24 + this._milliseconds / 36e5; + case 'minute': return days * 24 * 60 + this._milliseconds / 6e4; + case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds; default: throw new Error('Unknown unit ' + units); } } @@ -2973,9 +3014,10 @@ }); })); // moment.js locale configuration -// locale : Arabic (ar) -// author : Abdel Said : https://github.com/abdelsaid -// changes in months, weekdays : Ahmed Elkhatib +// Locale: Arabic (ar) +// Author: Abdel Said: https://github.com/abdelsaid +// Changes in months, weekdays: Ahmed Elkhatib +// Native plural forms: forabi https://github.com/forabi (function (factory) { factory(moment); @@ -3002,11 +3044,42 @@ '٨': '8', '٩': '9', '٠': '0' - }; + }, pluralForm = function (n) { + return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; + }, plurals = { + s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], + m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], + h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], + d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], + M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], + y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] + }, pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, months = [ + 'كانون الثاني يناير', + 'شباط فبراير', + 'آذار مارس', + 'نيسان أبريل', + 'أيار مايو', + 'حزيران يونيو', + 'تموز يوليو', + 'آب أغسطس', + 'أيلول سبتمبر', + 'تشرين الأول أكتوبر', + 'تشرين الثاني نوفمبر', + 'كانون الأول ديسمبر' + ]; return moment.defineLocale('ar', { - months : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), - monthsShort : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), + months : months, + monthsShort : months, weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), @@ -3025,27 +3098,27 @@ } }, calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime : { - future : 'في %s', + future : 'بعد %s', past : 'منذ %s', - s : 'ثوان', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' + s : pluralize('s'), + m : pluralize('m'), + mm : pluralize('m'), + h : pluralize('h'), + hh : pluralize('h'), + d : pluralize('d'), + dd : pluralize('d'), + M : pluralize('M'), + MM : pluralize('M'), + y : pluralize('y'), + yy : pluralize('y') }, preparse: function (string) { return string.replace(/[۰-۹]/g, function (match) { @@ -3954,7 +4027,7 @@ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'), weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'), longDateFormat : { - LT: 'H.mm', + LT: 'H:mm', L : 'DD. MM. YYYY', LL : 'D. MMMM YYYY', LLL : 'D. MMMM YYYY LT', diff --git a/js/vendor/momentjs/min/moment-with-locales.min.js b/js/vendor/momentjs/min/moment-with-locales.min.js index a9fdb1dbc..87d162098 100644 --- a/js/vendor/momentjs/min/moment-with-locales.min.js +++ b/js/vendor/momentjs/min/moment-with-locales.min.js @@ -1,10 +1,10 @@ //! moment.js -//! version : 2.8.2 +//! version : 2.8.3 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com -(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return yb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){sb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return m(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){pc[a]||(e(b),pc[a]=!0)}function h(a,b){return function(c){return p(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(){}function k(a,b){b!==!1&&F(a),n(this,a),this._d=new Date(+a._d)}function l(a){var b=y(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=sb.localeData(),this._bubble()}function m(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function n(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Hb.length>0)for(c in Hb)d=Hb[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function o(a){return 0>a?Math.ceil(a):Math.floor(a)}function p(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function q(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function r(a,b){var c;return b=K(b,a),a.isBefore(b)?c=q(a,b):(c=q(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function s(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=sb.duration(c,d),t(this,e,a),this}}function t(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&mb(a,"Date",lb(a,"Date")+f*c),g&&kb(a,lb(a,"Month")+g*c),d&&sb.updateOffset(a,f||g)}function u(a){return"[object Array]"===Object.prototype.toString.call(a)}function v(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function w(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&A(a[d])!==A(b[d]))&&g++;return g+f}function x(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=ic[a]||jc[b]||b}return a}function y(a){var b,d,e={};for(d in a)c(a,d)&&(b=x(d),b&&(e[b]=a[d]));return e}function z(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}sb[b]=function(e,f){var g,h,i=sb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=sb().utc().set(d,a);return i.call(sb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function A(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function B(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function C(a,b,c){return gb(sb([a,11,31+b-c]),b,c).week}function D(a){return E(a)?366:365}function E(a){return a%4===0&&a%100!==0||a%400===0}function F(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Ab]<0||a._a[Ab]>11?Ab:a._a[Bb]<1||a._a[Bb]>B(a._a[zb],a._a[Ab])?Bb:a._a[Cb]<0||a._a[Cb]>23?Cb:a._a[Db]<0||a._a[Db]>59?Db:a._a[Eb]<0||a._a[Eb]>59?Eb:a._a[Fb]<0||a._a[Fb]>999?Fb:-1,a._pf._overflowDayOfYear&&(zb>b||b>Bb)&&(b=Bb),a._pf.overflow=b)}function G(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function H(a){return a?a.toLowerCase().replace("_","-"):a}function I(a){for(var b,c,d,e,f=0;f<a.length;){for(e=H(a[f]).split("-"),b=e.length,c=H(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=J(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&w(e,c,!0)>=b-1)break;b--}f++}return null}function J(a){var b=null;if(!Gb[a]&&Ib)try{b=sb.locale(),require("./locale/"+a),sb.locale(b)}catch(c){}return Gb[a]}function K(a,b){return b._isUTC?sb(a).zone(b._offset||0):sb(a).local()}function L(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function M(a){var b,c,d=a.match(Mb);for(b=0,c=d.length;c>b;b++)d[b]=oc[d[b]]?oc[d[b]]:L(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function N(a,b){return a.isValid()?(b=O(b,a.localeData()),kc[b]||(kc[b]=M(b)),kc[b](a)):a.localeData().invalidDate()}function O(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Nb.lastIndex=0;d>=0&&Nb.test(a);)a=a.replace(Nb,c),Nb.lastIndex=0,d-=1;return a}function P(a,b){var c,d=b._strict;switch(a){case"Q":return Yb;case"DDDD":return $b;case"YYYY":case"GGGG":case"gggg":return d?_b:Qb;case"Y":case"G":case"g":return bc;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?ac:Rb;case"S":if(d)return Yb;case"SS":if(d)return Zb;case"SSS":if(d)return $b;case"DDD":return Pb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Tb;case"a":case"A":return b._locale._meridiemParse;case"X":return Wb;case"Z":case"ZZ":return Ub;case"T":return Vb;case"SSSS":return Sb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Zb:Ob;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ob;case"Do":return Xb;default:return c=new RegExp(Y(X(a.replace("\\","")),"i"))}}function Q(a){a=a||"";var b=a.match(Ub)||[],c=b[b.length-1]||[],d=(c+"").match(gc)||["-",0,0],e=+(60*d[1])+A(d[2]);return"+"===d[0]?-e:e}function R(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Ab]=3*(A(b)-1));break;case"M":case"MM":null!=b&&(e[Ab]=A(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[Ab]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Bb]=A(b));break;case"Do":null!=b&&(e[Bb]=A(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=A(b));break;case"YY":e[zb]=sb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[zb]=A(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Cb]=A(b);break;case"m":case"mm":e[Db]=A(b);break;case"s":case"ss":e[Eb]=A(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Fb]=A(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=Q(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=A(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=sb.parseTwoDigitYear(b)}}function S(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[zb],gb(sb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[zb],gb(sb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=hb(d,e,f,h,g),a._a[zb]=i.year,a._dayOfYear=i.dayOfYear}function T(a){var c,d,e,f,g=[];if(!a._d){for(e=V(a),a._w&&null==a._a[Bb]&&null==a._a[Ab]&&S(a),a._dayOfYear&&(f=b(a._a[zb],e[zb]),a._dayOfYear>D(f)&&(a._pf._overflowDayOfYear=!0),d=cb(f,0,a._dayOfYear),a._a[Ab]=d.getUTCMonth(),a._a[Bb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?cb:bb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function U(a){var b;a._d||(b=y(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],T(a))}function V(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function W(a){if(a._f===sb.ISO_8601)return void $(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=O(a._f,a._locale).match(Mb)||[],b=0;b<d.length;b++)e=d[b],c=(g.match(P(e,a))||[])[0],c&&(f=g.substr(0,g.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),oc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),R(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Cb]<12&&(a._a[Cb]+=12),a._isPm===!1&&12===a._a[Cb]&&(a._a[Cb]=0),T(a),F(a)}function X(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function Y(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;f<a._f.length;f++)g=0,b=n({},a),b._pf=d(),b._f=a._f[f],W(b),G(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));m(a,c||b)}function $(a){var b,c,d=a._i,e=cc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=ec.length;c>b;b++)if(ec[b][1].exec(d)){a._f=ec[b][0]+(e[6]||" ");break}for(b=0,c=fc.length;c>b;b++)if(fc[b][1].exec(d)){a._f+=fc[b][0];break}d.match(Ub)&&(a._f+="Z"),W(a)}else a._isValid=!1}function _(a){$(a),a._isValid===!1&&(delete a._isValid,sb.createFromInputFallback(a))}function ab(b){var c,d=b._i;d===a?b._d=new Date:v(d)?b._d=new Date(+d):null!==(c=Jb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?_(b):u(d)?(b._a=d.slice(0),T(b)):"object"==typeof d?U(b):"number"==typeof d?b._d=new Date(d):sb.createFromInputFallback(b)}function bb(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function cb(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function db(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function eb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function fb(a,b,c){var d=sb.duration(a).abs(),e=xb(d.as("s")),f=xb(d.as("m")),g=xb(d.as("h")),h=xb(d.as("d")),i=xb(d.as("M")),j=xb(d.as("y")),k=e<lc.s&&["s",e]||1===f&&["m"]||f<lc.m&&["mm",f]||1===g&&["h"]||g<lc.h&&["hh",g]||1===h&&["d"]||h<lc.d&&["dd",h]||1===i&&["M"]||i<lc.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,eb.apply({},k)}function gb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=sb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function hb(a,b,c,d,e){var f,g,h=cb(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:D(a-1)+g}}function ib(b){var c=b._i,d=b._f;return b._locale=b._locale||sb.localeData(b._l),null===c||d===a&&""===c?sb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),sb.isMoment(c)?new k(c,!0):(d?u(d)?Z(b):W(b):ab(b),new k(b)))}function jb(a,b){var c,d;if(1===b.length&&u(b[0])&&(b=b[0]),!b.length)return sb();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function kb(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),B(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function lb(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function mb(a,b,c){return"Month"===b?kb(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function nb(a,b){return function(c){return null!=c?(mb(this,a,c),sb.updateOffset(this,b),this):lb(this,a)}}function ob(a){return 400*a/146097}function pb(a){return 146097*a/400}function qb(a){sb.duration.fn[a]=function(){return this._data[a]}}function rb(a){"undefined"==typeof ender&&(tb=wb.moment,wb.moment=a?f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",sb):sb)}for(var sb,tb,ub,vb="2.8.2",wb="undefined"!=typeof global?global:this,xb=Math.round,yb=Object.prototype.hasOwnProperty,zb=0,Ab=1,Bb=2,Cb=3,Db=4,Eb=5,Fb=6,Gb={},Hb=[],Ib="undefined"!=typeof module&&module.exports,Jb=/^\/?Date\((\-?\d+)/i,Kb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Lb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Mb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Nb=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Ob=/\d\d?/,Pb=/\d{1,3}/,Qb=/\d{1,4}/,Rb=/[+\-]?\d{1,6}/,Sb=/\d+/,Tb=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ub=/Z|[\+\-]\d\d:?\d\d/gi,Vb=/T/i,Wb=/[\+\-]?\d+(\.\d{1,3})?/,Xb=/\d{1,2}/,Yb=/\d/,Zb=/\d\d/,$b=/\d{3}/,_b=/\d{4}/,ac=/[+-]?\d{6}/,bc=/[+-]?\d+/,cc=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dc="YYYY-MM-DDTHH:mm:ssZ",ec=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],fc=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],gc=/([\+\-]|\d\d)/gi,hc=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),ic={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},jc={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},kc={},lc={s:45,m:45,h:22,d:26,M:11},mc="DDD w W M D d".split(" "),nc="M D H h m s w W".split(" "),oc={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+p(Math.abs(a),6)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return p(this.weekYear(),4)},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return p(this.isoWeekYear(),4)},GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return A(this.milliseconds()/100)},SS:function(){return p(A(this.milliseconds()/10),2)},SSS:function(){return p(this.milliseconds(),3)},SSSS:function(){return p(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+":"+p(A(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+p(A(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},pc={},qc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];mc.length;)ub=mc.pop(),oc[ub+"o"]=i(oc[ub],ub);for(;nc.length;)ub=nc.pop(),oc[ub+ub]=h(oc[ub],2);oc.DDDD=h(oc.DDD,3),m(j.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=sb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=sb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return gb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),sb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),ib(g)},sb.suppressDeprecationWarnings=!1,sb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),sb.min=function(){var a=[].slice.call(arguments,0);return jb("isBefore",a)},sb.max=function(){var a=[].slice.call(arguments,0);return jb("isAfter",a)},sb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),ib(g).utc()},sb.unix=function(a){return sb(1e3*a)},sb.duration=function(a,b){var d,e,f,g,h=a,i=null;return sb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Kb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:A(i[Bb])*d,h:A(i[Cb])*d,m:A(i[Db])*d,s:A(i[Eb])*d,ms:A(i[Fb])*d}):(i=Lb.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):"object"==typeof h&&("from"in h||"to"in h)&&(g=r(sb(h.from),sb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new l(h),sb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},sb.version=vb,sb.defaultFormat=dc,sb.ISO_8601=function(){},sb.momentProperties=Hb,sb.updateOffset=function(){},sb.relativeTimeThreshold=function(b,c){return lc[b]===a?!1:c===a?lc[b]:(lc[b]=c,!0)},sb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return sb.locale(a,b)}),sb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?sb.defineLocale(a,b):sb.localeData(a),c&&(sb.duration._locale=sb._locale=c)),sb._locale._abbr},sb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Gb[a]||(Gb[a]=new j),Gb[a].set(b),sb.locale(a),Gb[a]):(delete Gb[a],null)},sb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return sb.localeData(a)}),sb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return sb._locale;if(!u(a)){if(b=J(a))return b;a=[a]}return I(a)},sb.isMoment=function(a){return a instanceof k||null!=a&&c(a,"_isAMomentObject")},sb.isDuration=function(a){return a instanceof l};for(ub=qc.length-1;ub>=0;--ub)z(qc[ub]);sb.normalizeUnits=function(a){return x(a)},sb.invalid=function(a){var b=sb.utc(0/0);return null!=a?m(b._pf,a):b._pf.userInvalidated=!0,b},sb.parseZone=function(){return sb.apply(null,arguments).parseZone()},sb.parseTwoDigitYear=function(a){return A(a)+(A(a)>68?1900:2e3)},m(sb.fn=k.prototype,{clone:function(){return sb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=sb(this).utc();return 0<a.year()&&a.year()<=9999?N(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):N(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return G(this)},isDSTShifted:function(){return this._a?this.isValid()&&w(this._a,(this._isUTC?sb.utc(this._a):sb(this._a)).toArray())>0:!1},parsingFlags:function(){return m({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._d.getTimezoneOffset(),"m")),this},format:function(a){var b=N(this,a||sb.defaultFormat);return this.localeData().postformat(b)},add:s(1,"add"),subtract:s(-1,"subtract"),diff:function(a,b,c){var d,e,f=K(a,this),g=6e4*(this.zone()-f.zone());return b=x(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-sb(this).startOf("month")-(f-sb(f).startOf("month")))/d,e-=6e4*(this.zone()-sb(this).startOf("month").zone()-(f.zone()-sb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:o(e)},from:function(a,b){return sb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(sb(),a)},calendar:function(a){var b=a||sb(),c=K(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return E(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=db(a,this.localeData()),this.add(a-b,"d")):b},month:nb("Month",!0),startOf:function(a){switch(a=x(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(a){return a=x(a),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")},isAfter:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)>+sb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+sb(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+K(a,this).startOf(b)},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=sb.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=sb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._d.getTimezoneOffset():("string"==typeof a&&(a=Q(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._d.getTimezoneOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?t(this,sb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,sb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?sb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return B(this.year(),this.month())},dayOfYear:function(a){var b=xb((sb(this).startOf("day")-sb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=gb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=gb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=gb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return C(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return C(this.year(),a.dow,a.doy)},get:function(a){return a=x(a),this[a]()},set:function(a,b){return a=x(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){return b===a?this._locale._abbr:(this._locale=sb.localeData(b),this)},lang:f("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():(this._locale=sb.localeData(b),this)}),localeData:function(){return this._locale}}),sb.fn.millisecond=sb.fn.milliseconds=nb("Milliseconds",!1),sb.fn.second=sb.fn.seconds=nb("Seconds",!1),sb.fn.minute=sb.fn.minutes=nb("Minutes",!1),sb.fn.hour=sb.fn.hours=nb("Hours",!0),sb.fn.date=nb("Date",!0),sb.fn.dates=f("dates accessor is deprecated. Use date instead.",nb("Date",!0)),sb.fn.year=nb("FullYear",!0),sb.fn.years=f("years accessor is deprecated. Use year instead.",nb("FullYear",!0)),sb.fn.days=sb.fn.day,sb.fn.months=sb.fn.month,sb.fn.weeks=sb.fn.week,sb.fn.isoWeeks=sb.fn.isoWeek,sb.fn.quarters=sb.fn.quarter,sb.fn.toJSON=sb.fn.toISOString,m(sb.duration.fn=l.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=o(d/1e3),g.seconds=a%60,b=o(a/60),g.minutes=b%60,c=o(b/60),g.hours=c%24,e+=o(c/24),h=o(ob(e)),e-=o(pb(h)),f+=o(e/30),e%=30,h+=o(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return o(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*A(this._months/12)},humanize:function(a){var b=fb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=sb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=sb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=x(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=x(a),b=this._days+this._milliseconds/864e5,"month"===a||"year"===a)return c=this._months+12*ob(b),"month"===a?c:c/12;switch(b+=pb(this._months/12),a){case"week":return b/7;case"day":return b;case"hour":return 24*b;case"minute":return 24*b*60;case"second":return 24*b*60*60;case"millisecond":return 24*b*60*60*1e3;default:throw new Error("Unknown unit "+a)}},lang:sb.fn.lang,locale:sb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}}),sb.duration.fn.toString=sb.duration.fn.toISOString;for(ub in hc)c(hc,ub)&&qb(ub.toLowerCase());sb.duration.fn.asMilliseconds=function(){return this.as("ms")},sb.duration.fn.asSeconds=function(){return this.as("s")},sb.duration.fn.asMinutes=function(){return this.as("m")},sb.duration.fn.asHours=function(){return this.as("h")},sb.duration.fn.asDays=function(){return this.as("d")},sb.duration.fn.asWeeks=function(){return this.as("weeks")},sb.duration.fn.asMonths=function(){return this.as("M")},sb.duration.fn.asYears=function(){return this.as("y")},sb.locale("en",{ordinal:function(a){var b=a%10,c=1===A(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),function(a){a(sb)}(function(a){return a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de") -},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar",{months:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),monthsShort:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){var b={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};return a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiem:function(a){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinal:function(a){if(0===a)return a+"-ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),accusative:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),accusative:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")},d=/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("be",{months:d,monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:e,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiem:function(a){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){var b={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},c={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};return a.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কএক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"রাত":10>a?"শকাল":17>a?"দুপুর":20>a?"বিকেল":"রাত"},week:{dow:0,doy:6}})}),function(a){a(sb)}(function(a){var b={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},c={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};return a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}),function(a){a(sb)}(function(b){function c(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+f(d[c],a)}function d(a){switch(e(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function e(a){return a>9?e(a%10):a}function f(a,b){return 2===b?g(a):a}function g(b){var c={m:"v",b:"v",d:"z"};return c[b.charAt(0)]===a?b:c[b.charAt(0)]+b.substring(1)}return b.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:c,h:"un eur",hh:"%d eur",d:"un devezh",dd:c,M:"ur miz",MM:c,y:"ur bloaz",yy:d},ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a){return a>1&&5>a&&1!==~~(a/10)}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekund":"pár sekundami";case"m":return c?"minuta":e?"minutu":"minutou";case"mm":return c||e?f+(b(a)?"minuty":"minut"):f+"minutami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodin"):f+"hodinami";break;case"d":return c||e?"den":"dnem";case"dd":return c||e?f+(b(a)?"dny":"dní"):f+"dny";break;case"M":return c||e?"měsíc":"měsícem";case"MM":return c||e?f+(b(a)?"měsíce":"měsíců"):f+"měsíci";break;case"y":return c||e?"rok":"rokem";case"yy":return c||e?f+(b(a)?"roky":"let"):f+"lety"}}var d="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),e="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");return a.defineLocale("cs",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H.mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("cv",{months:"кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),monthsShort:"кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кç_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}})}),function(a){a(sb)}(function(a){return a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinal:"%da",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){var b="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),c="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");return a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}return a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:"%d päeva",M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] LT",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] LT",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] LT",llll:"ddd, YYYY[ko] MMM D[a] LT"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinal:"%d.",week:{dow:1,doy:7}}) -}),function(a){a(sb)}(function(a){var b={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},c={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(a){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){function b(a,b,d,e){var f="";switch(d){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=c(a,e)+" "+f}function c(a,b){return 10>a?b?e[a]:d[a]:a}var d="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),e=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",d[7],d[8],d[9]];return a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D. MMMM, YYYY LT"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")}})}),function(a){a(sb)}(function(a){return a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY LT",LLLL:"dddd, D [ב]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a+" שנים"}}})}),function(a){a(sb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("hr",{months:"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function c(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");return a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return c.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return c.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a,b){var c={nominative:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_"),accusative:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a){var b="հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_");return b[a.month()]}function d(a){var b="կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_");return b[a.day()]}return a.defineLocale("hy-am",{months:b,monthsShort:c,weekdays:d,weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., LT",LLLL:"dddd, D MMMM YYYY թ., LT"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a){return a%100===11?!0:a%10===1?!1:!0}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return c?"mínúta":"mínútu";case"mm":return b(a)?f+(c||e?"mínútur":"mínútum"):c?f+"mínúta":f+"mínútu";case"hh":return b(a)?f+(c||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case"d":return c?"dagur":e?"dag":"degi";case"dd":return b(a)?c?f+"dagar":f+(e?"daga":"dögum"):c?f+"dagur":f+(e?"dag":"degi");case"M":return c?"mánuður":e?"mánuð":"mánuði";case"MM":return b(a)?c?f+"mánuðir":f+(e?"mánuði":"mánuðum"):c?f+"mánuður":f+(e?"mánuð":"mánuði");case"y":return c||e?"ár":"ári";case"yy":return b(a)?f+(c||e?"ár":"árum"):f+(c||e?"ár":"ári")}}return a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:c,m:c,mm:c,h:"klukkustund",hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiem:function(a){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}),function(a){a(sb)}(function(a){function b(a,b){var c={nominative:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),accusative:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},d=/D[oD] *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a,b){var c={nominative:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),accusative:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_")},d=/(წინა|შემდეგ)/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ka",{months:b,monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:c,weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("km",{months:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[ថ្ងៃនៈ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 LT",LLLL:"YYYY년 MMMM D일 dddd LT"},meridiem:function(a){return 12>a?"오전":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinal:"%d일",meridiemParse:/(오전|오후)/,isPM:function(a){return"오후"===a}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?d[c][0]:d[c][1]}function c(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"a "+a:"an "+a}function d(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"viru "+a:"virun "+a}function e(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return e(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return e(a)}return a/=1e3,e(a)}return a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),longDateFormat:{LT:"H:mm [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:c,past:d,s:"e puer Sekonnen",m:b,mm:"%d Minutten",h:b,hh:"%d Stonnen",d:b,dd:"%d Deeg",M:b,MM:"%d Méint",y:b,yy:"%d Joer"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function c(a,b,c,d){return b?e(c)[0]:d?e(c)[1]:e(c)[2]}function d(a){return a%10===0||a>10&&20>a}function e(a){return h[a].split("_")}function f(a,b,f,g){var h=a+" ";return 1===a?h+c(a,b,f[0],g):b?h+(d(a)?e(f)[1]:e(f)[0]):g?h+e(f)[1]:h+(d(a)?e(f)[1]:e(f)[2])}function g(a,b){var c=-1===b.indexOf("dddd HH:mm"),d=i[a.day()];return c?d:d.substring(0,d.length-2)+"į"}var h={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},i="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");return a.defineLocale("lt",{months:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:g,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], LT [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, LT [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], LT [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, LT [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:b,m:c,mm:f,h:c,hh:f,d:c,dd:f,M:c,MM:f,y:c,yy:f},ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d=a.split("_");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function c(a,c,e){return a+" "+b(d[e],a,c)}var d={mm:"minūti_minūtes_minūte_minūtes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mēnesi_mēnešus_mēnesis_mēneši",yy:"gadu_gadus_gads_gadi"};return a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:c,h:"stundu",hh:c,d:"dienu",dd:c,M:"mēnesi",MM:c,y:"gadu",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Во изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Во изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiem:function(a){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}})}),function(a){a(sb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}),function(a){a(sb)}(function(a){return a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){var b={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},c={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};return a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a] -})},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आइ._सो._मङ्_बु._बि._शु._श.".split("_"),longDateFormat:{LT:"Aको h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[भोली] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){var b="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),c="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");return a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function c(a,c,d){var e=a+" ";switch(d){case"m":return c?"minuta":"minutę";case"mm":return e+(b(a)?"minuty":"minut");case"h":return c?"godzina":"godzinę";case"hh":return e+(b(a)?"godziny":"godzin");case"MM":return e+(b(a)?"miesiące":"miesięcy");case"yy":return e+(b(a)?"lata":"lat")}}var d="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),e="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return a.defineLocale("pl",{months:function(a,b){return/D MMMM/.test(b)?e[a.month()]:d[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:c,mm:c,h:c,hh:c,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:c,y:"rok",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"})}),function(a){a(sb)}(function(a){return a.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}return a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:b,h:"o oră",hh:b,d:"o zi",dd:b,M:"o lună",MM:b,y:"un an",yy:b},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?c?"минута":"минуту":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ru",{months:d,monthsShort:e,weekdays:f,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:c,mm:c,h:"час",hh:c,d:"день",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){function b(a){return a>1&&5>a}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekúnd":"pár sekundami";case"m":return c?"minúta":e?"minútu":"minútou";case"mm":return c||e?f+(b(a)?"minúty":"minút"):f+"minútami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodín"):f+"hodinami";break;case"d":return c||e?"deň":"dňom";case"dd":return c||e?f+(b(a)?"dni":"dní"):f+"dňami";break;case"M":return c||e?"mesiac":"mesiacom";case"MM":return c||e?f+(b(a)?"mesiace":"mesiacov"):f+"mesiacmi";break;case"y":return c||e?"rok":"rokom";case"yy":return c||e?f+(b(a)?"roky":"rokov"):f+"rokmi"}}var d="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),e="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");return a.defineLocale("sk",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"ena minuta":"eno minuto";case"mm":return d+=1===a?"minuta":2===a?"minuti":3===a||4===a?"minute":"minut";case"h":return b?"ena ura":"eno uro";case"hh":return d+=1===a?"ura":2===a?"uri":3===a||4===a?"ure":"ur";case"dd":return d+=1===a?"dan":"dni";case"MM":return d+=1===a?"mesec":2===a?"meseca":3===a||4===a?"mesece":"mesecev";case"yy":return d+=1===a?"leto":2===a?"leti":3===a||4===a?"leta":"let"}}return a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"%s nazaj",s:"nekaj sekund",m:b,mm:b,h:b,hh:b,d:"en dan",dd:b,M:"en mesec",MM:b,y:"eno leto",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),meridiem:function(a){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){var b={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"дан",dd:b.translate,M:"месец",MM:b.translate,y:"годину",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){var b={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"dan",dd:b.translate,M:"mesec",MM:b.translate,y:"godinu",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":3===b?"e":"e";return a+c},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinal:function(a){return a+"வது"},meridiem:function(a){return a>=6&&10>=a?" காலை":a>=10&&14>=a?" நண்பகல்":a>=14&&18>=a?" எற்பாடு":a>=18&&20>=a?" மாலை":a>=20&&24>=a?" இரவு":a>=0&&6>=a?" வைகறை":void 0},week:{dow:0,doy:6}})}),function(a){a(sb)}(function(a){return a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiem:function(a){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}),function(a){a(sb)}(function(a){return a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM DD, YYYY LT"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){var b={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(a){if(0===a)return a+"'ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){return a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}),function(a){a(sb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===d?c?"хвилина":"хвилину":"h"===d?c?"година":"годину":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},d=/D[oD]? *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function f(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}return a.defineLocale("uk",{months:d,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:e,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:f("[Сьогодні "),nextDay:f("[Завтра "),lastDay:f("[Вчора "),nextWeek:f("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return f("[Минулої] dddd [").call(this);case 1:case 2:case 4:return f("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:c,mm:c,h:"годину",hh:c,d:"день",dd:c,M:"місяць",MM:c,y:"рік",yy:c},meridiem:function(a){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("uz",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"D MMMM YYYY, dddd LT"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}),function(a){a(sb)}(function(a){return a.defineLocale("vi",{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("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY LT",LLLL:"dddd, D MMMM [năm] YYYY LT",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b;return 600>c?"凌晨":900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()-b.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()<b.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm" -},sameElse:"LL"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}})}),function(a){a(sb)}(function(a){return a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b;return 900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}})}),sb.locale("en"),Ib?module.exports=sb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(wb.moment=tb),sb}),rb(!0)):rb()}).call(this);
\ No newline at end of file +(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return zb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){tb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return m(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){qc[a]||(e(b),qc[a]=!0)}function h(a,b){return function(c){return p(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(){}function k(a,b){b!==!1&&F(a),n(this,a),this._d=new Date(+a._d)}function l(a){var b=y(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=tb.localeData(),this._bubble()}function m(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function n(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ib.length>0)for(c in Ib)d=Ib[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function o(a){return 0>a?Math.ceil(a):Math.floor(a)}function p(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function q(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function r(a,b){var c;return b=K(b,a),a.isBefore(b)?c=q(a,b):(c=q(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function s(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=tb.duration(c,d),t(this,e,a),this}}function t(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&nb(a,"Date",mb(a,"Date")+f*c),g&&lb(a,mb(a,"Month")+g*c),d&&tb.updateOffset(a,f||g)}function u(a){return"[object Array]"===Object.prototype.toString.call(a)}function v(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function w(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&A(a[d])!==A(b[d]))&&g++;return g+f}function x(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=jc[a]||kc[b]||b}return a}function y(a){var b,d,e={};for(d in a)c(a,d)&&(b=x(d),b&&(e[b]=a[d]));return e}function z(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}tb[b]=function(e,f){var g,h,i=tb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=tb().utc().set(d,a);return i.call(tb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function A(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function B(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function C(a,b,c){return hb(tb([a,11,31+b-c]),b,c).week}function D(a){return E(a)?366:365}function E(a){return a%4===0&&a%100!==0||a%400===0}function F(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Bb]<0||a._a[Bb]>11?Bb:a._a[Cb]<1||a._a[Cb]>B(a._a[Ab],a._a[Bb])?Cb:a._a[Db]<0||a._a[Db]>23?Db:a._a[Eb]<0||a._a[Eb]>59?Eb:a._a[Fb]<0||a._a[Fb]>59?Fb:a._a[Gb]<0||a._a[Gb]>999?Gb:-1,a._pf._overflowDayOfYear&&(Ab>b||b>Cb)&&(b=Cb),a._pf.overflow=b)}function G(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function H(a){return a?a.toLowerCase().replace("_","-"):a}function I(a){for(var b,c,d,e,f=0;f<a.length;){for(e=H(a[f]).split("-"),b=e.length,c=H(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=J(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&w(e,c,!0)>=b-1)break;b--}f++}return null}function J(a){var b=null;if(!Hb[a]&&Jb)try{b=tb.locale(),require("./locale/"+a),tb.locale(b)}catch(c){}return Hb[a]}function K(a,b){return b._isUTC?tb(a).zone(b._offset||0):tb(a).local()}function L(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function M(a){var b,c,d=a.match(Nb);for(b=0,c=d.length;c>b;b++)d[b]=pc[d[b]]?pc[d[b]]:L(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function N(a,b){return a.isValid()?(b=O(b,a.localeData()),lc[b]||(lc[b]=M(b)),lc[b](a)):a.localeData().invalidDate()}function O(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Ob.lastIndex=0;d>=0&&Ob.test(a);)a=a.replace(Ob,c),Ob.lastIndex=0,d-=1;return a}function P(a,b){var c,d=b._strict;switch(a){case"Q":return Zb;case"DDDD":return _b;case"YYYY":case"GGGG":case"gggg":return d?ac:Rb;case"Y":case"G":case"g":return cc;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?bc:Sb;case"S":if(d)return Zb;case"SS":if(d)return $b;case"SSS":if(d)return _b;case"DDD":return Qb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ub;case"a":case"A":return b._locale._meridiemParse;case"X":return Xb;case"Z":case"ZZ":return Vb;case"T":return Wb;case"SSSS":return Tb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?$b:Pb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Pb;case"Do":return Yb;default:return c=new RegExp(Y(X(a.replace("\\","")),"i"))}}function Q(a){a=a||"";var b=a.match(Vb)||[],c=b[b.length-1]||[],d=(c+"").match(hc)||["-",0,0],e=+(60*d[1])+A(d[2]);return"+"===d[0]?-e:e}function R(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Bb]=3*(A(b)-1));break;case"M":case"MM":null!=b&&(e[Bb]=A(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[Bb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Cb]=A(b));break;case"Do":null!=b&&(e[Cb]=A(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=A(b));break;case"YY":e[Ab]=tb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ab]=A(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Db]=A(b);break;case"m":case"mm":e[Eb]=A(b);break;case"s":case"ss":e[Fb]=A(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Gb]=A(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=Q(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=A(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=tb.parseTwoDigitYear(b)}}function S(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ab],hb(tb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ab],hb(tb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ib(d,e,f,h,g),a._a[Ab]=i.year,a._dayOfYear=i.dayOfYear}function T(a){var c,d,e,f,g=[];if(!a._d){for(e=V(a),a._w&&null==a._a[Cb]&&null==a._a[Bb]&&S(a),a._dayOfYear&&(f=b(a._a[Ab],e[Ab]),a._dayOfYear>D(f)&&(a._pf._overflowDayOfYear=!0),d=db(f,0,a._dayOfYear),a._a[Bb]=d.getUTCMonth(),a._a[Cb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?db:cb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function U(a){var b;a._d||(b=y(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],T(a))}function V(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function W(a){if(a._f===tb.ISO_8601)return void $(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=O(a._f,a._locale).match(Nb)||[],b=0;b<d.length;b++)e=d[b],c=(g.match(P(e,a))||[])[0],c&&(f=g.substr(0,g.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),pc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),R(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Db]<12&&(a._a[Db]+=12),a._isPm===!1&&12===a._a[Db]&&(a._a[Db]=0),T(a),F(a)}function X(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function Y(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;f<a._f.length;f++)g=0,b=n({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._pf=d(),b._f=a._f[f],W(b),G(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));m(a,c||b)}function $(a){var b,c,d=a._i,e=dc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=fc.length;c>b;b++)if(fc[b][1].exec(d)){a._f=fc[b][0]+(e[6]||" ");break}for(b=0,c=gc.length;c>b;b++)if(gc[b][1].exec(d)){a._f+=gc[b][0];break}d.match(Vb)&&(a._f+="Z"),W(a)}else a._isValid=!1}function _(a){$(a),a._isValid===!1&&(delete a._isValid,tb.createFromInputFallback(a))}function ab(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function bb(b){var c,d=b._i;d===a?b._d=new Date:v(d)?b._d=new Date(+d):null!==(c=Kb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?_(b):u(d)?(b._a=ab(d.slice(0),function(a){return parseInt(a,10)}),T(b)):"object"==typeof d?U(b):"number"==typeof d?b._d=new Date(d):tb.createFromInputFallback(b)}function cb(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function db(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function eb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function fb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function gb(a,b,c){var d=tb.duration(a).abs(),e=yb(d.as("s")),f=yb(d.as("m")),g=yb(d.as("h")),h=yb(d.as("d")),i=yb(d.as("M")),j=yb(d.as("y")),k=e<mc.s&&["s",e]||1===f&&["m"]||f<mc.m&&["mm",f]||1===g&&["h"]||g<mc.h&&["hh",g]||1===h&&["d"]||h<mc.d&&["dd",h]||1===i&&["M"]||i<mc.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,fb.apply({},k)}function hb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=tb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ib(a,b,c,d,e){var f,g,h=db(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:D(a-1)+g}}function jb(b){var c=b._i,d=b._f;return b._locale=b._locale||tb.localeData(b._l),null===c||d===a&&""===c?tb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),tb.isMoment(c)?new k(c,!0):(d?u(d)?Z(b):W(b):bb(b),new k(b)))}function kb(a,b){var c,d;if(1===b.length&&u(b[0])&&(b=b[0]),!b.length)return tb();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function lb(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),B(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function mb(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function nb(a,b,c){return"Month"===b?lb(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function ob(a,b){return function(c){return null!=c?(nb(this,a,c),tb.updateOffset(this,b),this):mb(this,a)}}function pb(a){return 400*a/146097}function qb(a){return 146097*a/400}function rb(a){tb.duration.fn[a]=function(){return this._data[a]}}function sb(a){"undefined"==typeof ender&&(ub=xb.moment,xb.moment=a?f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",tb):tb)}for(var tb,ub,vb,wb="2.8.3",xb="undefined"!=typeof global?global:this,yb=Math.round,zb=Object.prototype.hasOwnProperty,Ab=0,Bb=1,Cb=2,Db=3,Eb=4,Fb=5,Gb=6,Hb={},Ib=[],Jb="undefined"!=typeof module&&module.exports,Kb=/^\/?Date\((\-?\d+)/i,Lb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Mb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Nb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Ob=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Pb=/\d\d?/,Qb=/\d{1,3}/,Rb=/\d{1,4}/,Sb=/[+\-]?\d{1,6}/,Tb=/\d+/,Ub=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Vb=/Z|[\+\-]\d\d:?\d\d/gi,Wb=/T/i,Xb=/[\+\-]?\d+(\.\d{1,3})?/,Yb=/\d{1,2}/,Zb=/\d/,$b=/\d\d/,_b=/\d{3}/,ac=/\d{4}/,bc=/[+-]?\d{6}/,cc=/[+-]?\d+/,dc=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ec="YYYY-MM-DDTHH:mm:ssZ",fc=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],gc=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],hc=/([\+\-]|\d\d)/gi,ic=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),jc={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},kc={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},lc={},mc={s:45,m:45,h:22,d:26,M:11},nc="DDD w W M D d".split(" "),oc="M D H h m s w W".split(" "),pc={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+p(Math.abs(a),6)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return p(this.weekYear(),4)},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return p(this.isoWeekYear(),4)},GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return A(this.milliseconds()/100)},SS:function(){return p(A(this.milliseconds()/10),2)},SSS:function(){return p(this.milliseconds(),3)},SSSS:function(){return p(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+":"+p(A(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+p(A(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},qc={},rc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];nc.length;)vb=nc.pop(),pc[vb+"o"]=i(pc[vb],vb);for(;oc.length;)vb=oc.pop(),pc[vb+vb]=h(pc[vb],2);pc.DDDD=h(pc.DDD,3),m(j.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=tb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=tb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return hb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),tb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),jb(g)},tb.suppressDeprecationWarnings=!1,tb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),tb.min=function(){var a=[].slice.call(arguments,0);return kb("isBefore",a)},tb.max=function(){var a=[].slice.call(arguments,0);return kb("isAfter",a)},tb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),jb(g).utc()},tb.unix=function(a){return tb(1e3*a)},tb.duration=function(a,b){var d,e,f,g,h=a,i=null;return tb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Lb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:A(i[Cb])*d,h:A(i[Db])*d,m:A(i[Eb])*d,s:A(i[Fb])*d,ms:A(i[Gb])*d}):(i=Mb.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):"object"==typeof h&&("from"in h||"to"in h)&&(g=r(tb(h.from),tb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new l(h),tb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},tb.version=wb,tb.defaultFormat=ec,tb.ISO_8601=function(){},tb.momentProperties=Ib,tb.updateOffset=function(){},tb.relativeTimeThreshold=function(b,c){return mc[b]===a?!1:c===a?mc[b]:(mc[b]=c,!0)},tb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return tb.locale(a,b)}),tb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?tb.defineLocale(a,b):tb.localeData(a),c&&(tb.duration._locale=tb._locale=c)),tb._locale._abbr},tb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Hb[a]||(Hb[a]=new j),Hb[a].set(b),tb.locale(a),Hb[a]):(delete Hb[a],null)},tb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return tb.localeData(a)}),tb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return tb._locale;if(!u(a)){if(b=J(a))return b;a=[a]}return I(a)},tb.isMoment=function(a){return a instanceof k||null!=a&&c(a,"_isAMomentObject")},tb.isDuration=function(a){return a instanceof l};for(vb=rc.length-1;vb>=0;--vb)z(rc[vb]);tb.normalizeUnits=function(a){return x(a)},tb.invalid=function(a){var b=tb.utc(0/0);return null!=a?m(b._pf,a):b._pf.userInvalidated=!0,b},tb.parseZone=function(){return tb.apply(null,arguments).parseZone()},tb.parseTwoDigitYear=function(a){return A(a)+(A(a)>68?1900:2e3)},m(tb.fn=k.prototype,{clone:function(){return tb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=tb(this).utc();return 0<a.year()&&a.year()<=9999?N(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):N(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return G(this)},isDSTShifted:function(){return this._a?this.isValid()&&w(this._a,(this._isUTC?tb.utc(this._a):tb(this._a)).toArray())>0:!1},parsingFlags:function(){return m({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._dateTzOffset(),"m")),this},format:function(a){var b=N(this,a||tb.defaultFormat);return this.localeData().postformat(b)},add:s(1,"add"),subtract:s(-1,"subtract"),diff:function(a,b,c){var d,e,f,g=K(a,this),h=6e4*(this.zone()-g.zone());return b=x(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+g.daysInMonth()),e=12*(this.year()-g.year())+(this.month()-g.month()),f=this-tb(this).startOf("month")-(g-tb(g).startOf("month")),f-=6e4*(this.zone()-tb(this).startOf("month").zone()-(g.zone()-tb(g).startOf("month").zone())),e+=f/d,"year"===b&&(e/=12)):(d=this-g,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-h)/864e5:"week"===b?(d-h)/6048e5:d),c?e:o(e)},from:function(a,b){return tb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(tb(),a)},calendar:function(a){var b=a||tb(),c=K(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return E(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=eb(a,this.localeData()),this.add(a-b,"d")):b},month:ob("Month",!0),startOf:function(a){switch(a=x(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(a){return a=x(a),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")},isAfter:function(a,b){return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this>+a):+this.clone().startOf(b)>+tb(a).startOf(b)},isBefore:function(a,b){return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+a>+this):+this.clone().startOf(b)<+tb(a).startOf(b)},isSame:function(a,b){return b=x(b||"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this===+a):+this.clone().startOf(b)===+K(a,this).startOf(b)},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._dateTzOffset():("string"==typeof a&&(a=Q(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateTzOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?t(this,tb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,tb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?tb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return B(this.year(),this.month())},dayOfYear:function(a){var b=yb((tb(this).startOf("day")-tb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=hb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=hb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=hb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return C(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return C(this.year(),a.dow,a.doy)},get:function(a){return a=x(a),this[a]()},set:function(a,b){return a=x(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){var c;return b===a?this._locale._abbr:(c=tb.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),tb.fn.millisecond=tb.fn.milliseconds=ob("Milliseconds",!1),tb.fn.second=tb.fn.seconds=ob("Seconds",!1),tb.fn.minute=tb.fn.minutes=ob("Minutes",!1),tb.fn.hour=tb.fn.hours=ob("Hours",!0),tb.fn.date=ob("Date",!0),tb.fn.dates=f("dates accessor is deprecated. Use date instead.",ob("Date",!0)),tb.fn.year=ob("FullYear",!0),tb.fn.years=f("years accessor is deprecated. Use year instead.",ob("FullYear",!0)),tb.fn.days=tb.fn.day,tb.fn.months=tb.fn.month,tb.fn.weeks=tb.fn.week,tb.fn.isoWeeks=tb.fn.isoWeek,tb.fn.quarters=tb.fn.quarter,tb.fn.toJSON=tb.fn.toISOString,m(tb.duration.fn=l.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=o(d/1e3),g.seconds=a%60,b=o(a/60),g.minutes=b%60,c=o(b/60),g.hours=c%24,e+=o(c/24),h=o(pb(e)),e-=o(qb(h)),f+=o(e/30),e%=30,h+=o(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return o(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*A(this._months/12)},humanize:function(a){var b=gb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=tb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=tb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=x(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=x(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*pb(b),"month"===a?c:c/12;switch(b=this._days+qb(this._months/12),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:tb.fn.lang,locale:tb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}}),tb.duration.fn.toString=tb.duration.fn.toISOString;for(vb in ic)c(ic,vb)&&rb(vb.toLowerCase());tb.duration.fn.asMilliseconds=function(){return this.as("ms")},tb.duration.fn.asSeconds=function(){return this.as("s")},tb.duration.fn.asMinutes=function(){return this.as("m")},tb.duration.fn.asHours=function(){return this.as("h")},tb.duration.fn.asDays=function(){return this.as("d")},tb.duration.fn.asWeeks=function(){return this.as("weeks")},tb.duration.fn.asMonths=function(){return this.as("M")},tb.duration.fn.asYears=function(){return this.as("y")},tb.locale("en",{ordinal:function(a){var b=a%10,c=1===A(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th"; +return a+c}}),function(a){a(tb)}(function(a){return a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){var b={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},c={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},d=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},e={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},f=function(a){return function(b,c){var f=d(b),g=e[a][d(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},g=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];return a.defineLocale("ar",{months:g,monthsShort:g,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(a){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:f("s"),m:f("m"),mm:f("m"),h:f("h"),hh:f("h"),d:f("d"),dd:f("d"),M:f("M"),MM:f("M"),y:f("y"),yy:f("y")},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){var b={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};return a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiem:function(a){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinal:function(a){if(0===a)return a+"-ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),accusative:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),accusative:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")},d=/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("be",{months:d,monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:e,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiem:function(a){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},c={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};return a.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কএক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"রাত":10>a?"শকাল":17>a?"দুপুর":20>a?"বিকেল":"রাত"},week:{dow:0,doy:6}})}),function(a){a(tb)}(function(a){var b={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},c={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};return a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}),function(a){a(tb)}(function(b){function c(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+f(d[c],a)}function d(a){switch(e(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function e(a){return a>9?e(a%10):a}function f(a,b){return 2===b?g(a):a}function g(b){var c={m:"v",b:"v",d:"z"};return c[b.charAt(0)]===a?b:c[b.charAt(0)]+b.substring(1)}return b.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:c,h:"un eur",hh:"%d eur",d:"un devezh",dd:c,M:"ur miz",MM:c,y:"ur bloaz",yy:d},ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a){return a>1&&5>a&&1!==~~(a/10)}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekund":"pár sekundami";case"m":return c?"minuta":e?"minutu":"minutou";case"mm":return c||e?f+(b(a)?"minuty":"minut"):f+"minutami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodin"):f+"hodinami";break;case"d":return c||e?"den":"dnem";case"dd":return c||e?f+(b(a)?"dny":"dní"):f+"dny";break;case"M":return c||e?"měsíc":"měsícem";case"MM":return c||e?f+(b(a)?"měsíce":"měsíců"):f+"měsíci";break;case"y":return c||e?"rok":"rokem";case"yy":return c||e?f+(b(a)?"roky":"let"):f+"lety"}}var d="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),e="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");return a.defineLocale("cs",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("cv",{months:"кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),monthsShort:"кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кç_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?d[c][0]:d[c][1]}return a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:b,mm:"%d Minuten",h:b,hh:"%d Stunden",d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}})}),function(a){a(tb)}(function(a){return a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinal:"%da",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),c="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");return a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}return a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:"%d päeva",M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}}) +}),function(a){a(tb)}(function(a){return a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] LT",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] LT",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] LT",llll:"ddd, YYYY[ko] MMM D[a] LT"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},c={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(a){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return c[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){function b(a,b,d,e){var f="";switch(d){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=c(a,e)+" "+f}function c(a,b){return 10>a?b?e[a]:d[a]:a}var d="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),e=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",d[7],d[8],d[9]];return a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D. MMMM, YYYY LT"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")}})}),function(a){a(tb)}(function(a){return a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY LT",LLLL:"dddd, D [ב]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a+" שנים"}}})}),function(a){a(tb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}return a.defineLocale("hr",{months:"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:b,mm:b,h:b,hh:b,d:"dan",dd:b,M:"mjesec",MM:b,y:"godinu",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function c(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");return a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return c.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return c.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a,b){var c={nominative:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_"),accusative:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a){var b="հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_");return b[a.month()]}function d(a){var b="կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_");return b[a.day()]}return a.defineLocale("hy-am",{months:b,monthsShort:c,weekdays:d,weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., LT",LLLL:"dddd, D MMMM YYYY թ., LT"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a){return a%100===11?!0:a%10===1?!1:!0}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return c?"mínúta":"mínútu";case"mm":return b(a)?f+(c||e?"mínútur":"mínútum"):c?f+"mínúta":f+"mínútu";case"hh":return b(a)?f+(c||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case"d":return c?"dagur":e?"dag":"degi";case"dd":return b(a)?c?f+"dagar":f+(e?"daga":"dögum"):c?f+"dagur":f+(e?"dag":"degi");case"M":return c?"mánuður":e?"mánuð":"mánuði";case"MM":return b(a)?c?f+"mánuðir":f+(e?"mánuði":"mánuðum"):c?f+"mánuður":f+(e?"mánuð":"mánuði");case"y":return c||e?"ár":"ári";case"yy":return b(a)?f+(c||e?"ár":"árum"):f+(c||e?"ár":"ári")}}return a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:c,m:c,mm:c,h:"klukkustund",hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiem:function(a){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}),function(a){a(tb)}(function(a){function b(a,b){var c={nominative:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),accusative:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},d=/D[oD] *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function c(a,b){var c={nominative:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),accusative:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_")},d=/(წინა|შემდეგ)/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ka",{months:b,monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:c,weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("km",{months:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[ថ្ងៃនៈ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 LT",LLLL:"YYYY년 MMMM D일 dddd LT"},meridiem:function(a){return 12>a?"오전":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinal:"%d일",meridiemParse:/(오전|오후)/,isPM:function(a){return"오후"===a}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?d[c][0]:d[c][1]}function c(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"a "+a:"an "+a}function d(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"viru "+a:"virun "+a}function e(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return e(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return e(a)}return a/=1e3,e(a)}return a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),longDateFormat:{LT:"H:mm [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:c,past:d,s:"e puer Sekonnen",m:b,mm:"%d Minutten",h:b,hh:"%d Stonnen",d:b,dd:"%d Deeg",M:b,MM:"%d Méint",y:b,yy:"%d Joer"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function c(a,b,c,d){return b?e(c)[0]:d?e(c)[1]:e(c)[2]}function d(a){return a%10===0||a>10&&20>a}function e(a){return h[a].split("_")}function f(a,b,f,g){var h=a+" ";return 1===a?h+c(a,b,f[0],g):b?h+(d(a)?e(f)[1]:e(f)[0]):g?h+e(f)[1]:h+(d(a)?e(f)[1]:e(f)[2])}function g(a,b){var c=-1===b.indexOf("dddd HH:mm"),d=i[a.day()];return c?d:d.substring(0,d.length-2)+"į"}var h={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},i="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");return a.defineLocale("lt",{months:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:g,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], LT [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, LT [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], LT [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, LT [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:b,m:c,mm:f,h:c,hh:f,d:c,dd:f,M:c,MM:f,y:c,yy:f},ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d=a.split("_");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function c(a,c,e){return a+" "+b(d[e],a,c)}var d={mm:"minūti_minūtes_minūte_minūtes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mēnesi_mēnešus_mēnesis_mēneši",yy:"gadu_gadus_gads_gadi"};return a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:c,h:"stundu",hh:c,d:"dienu",dd:c,M:"mēnesi",MM:c,y:"gadu",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Во изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Во изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiem:function(a){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}})}),function(a){a(tb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}),function(a){a(tb)}(function(a){return a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},c={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"}; +return a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आइ._सो._मङ्_बु._बि._शु._श.".split("_"),longDateFormat:{LT:"Aको h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[भोली] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),c="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");return a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,d){return/-MMM-/.test(d)?c[a.month()]:b[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function c(a,c,d){var e=a+" ";switch(d){case"m":return c?"minuta":"minutę";case"mm":return e+(b(a)?"minuty":"minut");case"h":return c?"godzina":"godzinę";case"hh":return e+(b(a)?"godziny":"godzin");case"MM":return e+(b(a)?"miesiące":"miesięcy");case"yy":return e+(b(a)?"lata":"lat")}}var d="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),e="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return a.defineLocale("pl",{months:function(a,b){return/D MMMM/.test(b)?e[a.month()]:d[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:c,mm:c,h:c,hh:c,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:c,y:"rok",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"})}),function(a){a(tb)}(function(a){return a.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}return a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:b,h:"o oră",hh:b,d:"o zi",dd:b,M:"o lună",MM:b,y:"un an",yy:b},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?c?"минута":"минуту":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}return a.defineLocale("ru",{months:d,monthsShort:e,weekdays:f,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:c,mm:c,h:"час",hh:c,d:"день",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){function b(a){return a>1&&5>a}function c(a,c,d,e){var f=a+" ";switch(d){case"s":return c||e?"pár sekúnd":"pár sekundami";case"m":return c?"minúta":e?"minútu":"minútou";case"mm":return c||e?f+(b(a)?"minúty":"minút"):f+"minútami";break;case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(b(a)?"hodiny":"hodín"):f+"hodinami";break;case"d":return c||e?"deň":"dňom";case"dd":return c||e?f+(b(a)?"dni":"dní"):f+"dňami";break;case"M":return c||e?"mesiac":"mesiacom";case"MM":return c||e?f+(b(a)?"mesiace":"mesiacov"):f+"mesiacmi";break;case"y":return c||e?"rok":"rokom";case"yy":return c||e?f+(b(a)?"roky":"rokov"):f+"rokmi"}}var d="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),e="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");return a.defineLocale("sk",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){function b(a,b,c){var d=a+" ";switch(c){case"m":return b?"ena minuta":"eno minuto";case"mm":return d+=1===a?"minuta":2===a?"minuti":3===a||4===a?"minute":"minut";case"h":return b?"ena ura":"eno uro";case"hh":return d+=1===a?"ura":2===a?"uri":3===a||4===a?"ure":"ur";case"dd":return d+=1===a?"dan":"dni";case"MM":return d+=1===a?"mesec":2===a?"meseca":3===a||4===a?"mesece":"mesecev";case"yy":return d+=1===a?"leto":2===a?"leti":3===a||4===a?"leta":"let"}}return a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"%s nazaj",s:"nekaj sekund",m:b,mm:b,h:b,hh:b,d:"en dan",dd:b,M:"en mesec",MM:b,y:"eno leto",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),meridiem:function(a){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinal:"%d.",week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){var b={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"дан",dd:b.translate,M:"месец",MM:b.translate,y:"годину",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){var b={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,c,d){var e=b.words[d];return 1===d.length?c?e[0]:e[1]:a+" "+b.correctGrammaticalCase(a,e)}};return a.defineLocale("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:b.translate,mm:b.translate,h:b.translate,hh:b.translate,d:"dan",dd:b.translate,M:"mesec",MM:b.translate,y:"godinu",yy:b.translate},ordinal:"%d.",week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":3===b?"e":"e";return a+c},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinal:function(a){return a+"வது"},meridiem:function(a){return a>=6&&10>=a?" காலை":a>=10&&14>=a?" நண்பகல்":a>=14&&18>=a?" எற்பாடு":a>=18&&20>=a?" மாலை":a>=20&&24>=a?" இரவு":a>=0&&6>=a?" வைகறை":void 0},week:{dow:0,doy:6}})}),function(a){a(tb)}(function(a){return a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiem:function(a){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}),function(a){a(tb)}(function(a){return a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM DD, YYYY LT"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){var b={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(a){if(0===a)return a+"'ıncı";var c=a%10,d=a%100-c,e=a>=100?100:null;return a+(b[c]||b[d]||b[e])},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){return a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}),function(a){a(tb)}(function(a){function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===d?c?"хвилина":"хвилину":"h"===d?c?"година":"годину":a+" "+b(e[d],+a)}function d(a,b){var c={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},d=/D[oD]? *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function e(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function f(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}return a.defineLocale("uk",{months:d,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:e,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:f("[Сьогодні "),nextDay:f("[Завтра "),lastDay:f("[Вчора "),nextWeek:f("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return f("[Минулої] dddd [").call(this);case 1:case 2:case 4:return f("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:c,mm:c,h:"годину",hh:c,d:"день",dd:c,M:"місяць",MM:c,y:"рік",yy:c},meridiem:function(a){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("uz",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"D MMMM YYYY, dddd LT"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}),function(a){a(tb)}(function(a){return a.defineLocale("vi",{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("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY LT",LLLL:"dddd, D MMMM [năm] YYYY LT",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinal:function(a){return a},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b; +return 600>c?"凌晨":900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()-b.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()<b.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}})}),function(a){a(tb)}(function(a){return a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(a,b){var c=100*a+b;return 900>c?"早上":1130>c?"上午":1230>c?"中午":1800>c?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}})}),tb.locale("en"),Jb?module.exports=tb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(xb.moment=ub),tb}),sb(!0)):sb()}).call(this);
\ No newline at end of file diff --git a/js/vendor/momentjs/min/moment.min.js b/js/vendor/momentjs/min/moment.min.js index 26ac5cc9d..8b54f130f 100644 --- a/js/vendor/momentjs/min/moment.min.js +++ b/js/vendor/momentjs/min/moment.min.js @@ -1,6 +1,7 @@ //! moment.js -//! version : 2.8.2 +//! version : 2.8.3 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com -(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return yb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){sb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return m(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){pc[a]||(e(b),pc[a]=!0)}function h(a,b){return function(c){return p(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(){}function k(a,b){b!==!1&&F(a),n(this,a),this._d=new Date(+a._d)}function l(a){var b=y(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=sb.localeData(),this._bubble()}function m(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function n(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Hb.length>0)for(c in Hb)d=Hb[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function o(a){return 0>a?Math.ceil(a):Math.floor(a)}function p(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function q(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function r(a,b){var c;return b=K(b,a),a.isBefore(b)?c=q(a,b):(c=q(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function s(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=sb.duration(c,d),t(this,e,a),this}}function t(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&mb(a,"Date",lb(a,"Date")+f*c),g&&kb(a,lb(a,"Month")+g*c),d&&sb.updateOffset(a,f||g)}function u(a){return"[object Array]"===Object.prototype.toString.call(a)}function v(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function w(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&A(a[d])!==A(b[d]))&&g++;return g+f}function x(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=ic[a]||jc[b]||b}return a}function y(a){var b,d,e={};for(d in a)c(a,d)&&(b=x(d),b&&(e[b]=a[d]));return e}function z(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}sb[b]=function(e,f){var g,h,i=sb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=sb().utc().set(d,a);return i.call(sb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function A(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function B(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function C(a,b,c){return gb(sb([a,11,31+b-c]),b,c).week}function D(a){return E(a)?366:365}function E(a){return a%4===0&&a%100!==0||a%400===0}function F(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Ab]<0||a._a[Ab]>11?Ab:a._a[Bb]<1||a._a[Bb]>B(a._a[zb],a._a[Ab])?Bb:a._a[Cb]<0||a._a[Cb]>23?Cb:a._a[Db]<0||a._a[Db]>59?Db:a._a[Eb]<0||a._a[Eb]>59?Eb:a._a[Fb]<0||a._a[Fb]>999?Fb:-1,a._pf._overflowDayOfYear&&(zb>b||b>Bb)&&(b=Bb),a._pf.overflow=b)}function G(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function H(a){return a?a.toLowerCase().replace("_","-"):a}function I(a){for(var b,c,d,e,f=0;f<a.length;){for(e=H(a[f]).split("-"),b=e.length,c=H(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=J(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&w(e,c,!0)>=b-1)break;b--}f++}return null}function J(a){var b=null;if(!Gb[a]&&Ib)try{b=sb.locale(),require("./locale/"+a),sb.locale(b)}catch(c){}return Gb[a]}function K(a,b){return b._isUTC?sb(a).zone(b._offset||0):sb(a).local()}function L(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function M(a){var b,c,d=a.match(Mb);for(b=0,c=d.length;c>b;b++)d[b]=oc[d[b]]?oc[d[b]]:L(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function N(a,b){return a.isValid()?(b=O(b,a.localeData()),kc[b]||(kc[b]=M(b)),kc[b](a)):a.localeData().invalidDate()}function O(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Nb.lastIndex=0;d>=0&&Nb.test(a);)a=a.replace(Nb,c),Nb.lastIndex=0,d-=1;return a}function P(a,b){var c,d=b._strict;switch(a){case"Q":return Yb;case"DDDD":return $b;case"YYYY":case"GGGG":case"gggg":return d?_b:Qb;case"Y":case"G":case"g":return bc;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?ac:Rb;case"S":if(d)return Yb;case"SS":if(d)return Zb;case"SSS":if(d)return $b;case"DDD":return Pb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Tb;case"a":case"A":return b._locale._meridiemParse;case"X":return Wb;case"Z":case"ZZ":return Ub;case"T":return Vb;case"SSSS":return Sb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Zb:Ob;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ob;case"Do":return Xb;default:return c=new RegExp(Y(X(a.replace("\\","")),"i"))}}function Q(a){a=a||"";var b=a.match(Ub)||[],c=b[b.length-1]||[],d=(c+"").match(gc)||["-",0,0],e=+(60*d[1])+A(d[2]);return"+"===d[0]?-e:e}function R(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Ab]=3*(A(b)-1));break;case"M":case"MM":null!=b&&(e[Ab]=A(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[Ab]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Bb]=A(b));break;case"Do":null!=b&&(e[Bb]=A(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=A(b));break;case"YY":e[zb]=sb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[zb]=A(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Cb]=A(b);break;case"m":case"mm":e[Db]=A(b);break;case"s":case"ss":e[Eb]=A(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Fb]=A(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=Q(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=A(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=sb.parseTwoDigitYear(b)}}function S(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[zb],gb(sb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[zb],gb(sb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=hb(d,e,f,h,g),a._a[zb]=i.year,a._dayOfYear=i.dayOfYear}function T(a){var c,d,e,f,g=[];if(!a._d){for(e=V(a),a._w&&null==a._a[Bb]&&null==a._a[Ab]&&S(a),a._dayOfYear&&(f=b(a._a[zb],e[zb]),a._dayOfYear>D(f)&&(a._pf._overflowDayOfYear=!0),d=cb(f,0,a._dayOfYear),a._a[Ab]=d.getUTCMonth(),a._a[Bb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?cb:bb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function U(a){var b;a._d||(b=y(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],T(a))}function V(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function W(a){if(a._f===sb.ISO_8601)return void $(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=O(a._f,a._locale).match(Mb)||[],b=0;b<d.length;b++)e=d[b],c=(g.match(P(e,a))||[])[0],c&&(f=g.substr(0,g.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),oc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),R(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Cb]<12&&(a._a[Cb]+=12),a._isPm===!1&&12===a._a[Cb]&&(a._a[Cb]=0),T(a),F(a)}function X(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function Y(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;f<a._f.length;f++)g=0,b=n({},a),b._pf=d(),b._f=a._f[f],W(b),G(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));m(a,c||b)}function $(a){var b,c,d=a._i,e=cc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=ec.length;c>b;b++)if(ec[b][1].exec(d)){a._f=ec[b][0]+(e[6]||" ");break}for(b=0,c=fc.length;c>b;b++)if(fc[b][1].exec(d)){a._f+=fc[b][0];break}d.match(Ub)&&(a._f+="Z"),W(a)}else a._isValid=!1}function _(a){$(a),a._isValid===!1&&(delete a._isValid,sb.createFromInputFallback(a))}function ab(b){var c,d=b._i;d===a?b._d=new Date:v(d)?b._d=new Date(+d):null!==(c=Jb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?_(b):u(d)?(b._a=d.slice(0),T(b)):"object"==typeof d?U(b):"number"==typeof d?b._d=new Date(d):sb.createFromInputFallback(b)}function bb(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function cb(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function db(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function eb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function fb(a,b,c){var d=sb.duration(a).abs(),e=xb(d.as("s")),f=xb(d.as("m")),g=xb(d.as("h")),h=xb(d.as("d")),i=xb(d.as("M")),j=xb(d.as("y")),k=e<lc.s&&["s",e]||1===f&&["m"]||f<lc.m&&["mm",f]||1===g&&["h"]||g<lc.h&&["hh",g]||1===h&&["d"]||h<lc.d&&["dd",h]||1===i&&["M"]||i<lc.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,eb.apply({},k)}function gb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=sb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function hb(a,b,c,d,e){var f,g,h=cb(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:D(a-1)+g}}function ib(b){var c=b._i,d=b._f;return b._locale=b._locale||sb.localeData(b._l),null===c||d===a&&""===c?sb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),sb.isMoment(c)?new k(c,!0):(d?u(d)?Z(b):W(b):ab(b),new k(b)))}function jb(a,b){var c,d;if(1===b.length&&u(b[0])&&(b=b[0]),!b.length)return sb();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function kb(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),B(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function lb(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function mb(a,b,c){return"Month"===b?kb(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function nb(a,b){return function(c){return null!=c?(mb(this,a,c),sb.updateOffset(this,b),this):lb(this,a)}}function ob(a){return 400*a/146097}function pb(a){return 146097*a/400}function qb(a){sb.duration.fn[a]=function(){return this._data[a]}}function rb(a){"undefined"==typeof ender&&(tb=wb.moment,wb.moment=a?f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",sb):sb)}for(var sb,tb,ub,vb="2.8.2",wb="undefined"!=typeof global?global:this,xb=Math.round,yb=Object.prototype.hasOwnProperty,zb=0,Ab=1,Bb=2,Cb=3,Db=4,Eb=5,Fb=6,Gb={},Hb=[],Ib="undefined"!=typeof module&&module.exports,Jb=/^\/?Date\((\-?\d+)/i,Kb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Lb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Mb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Nb=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Ob=/\d\d?/,Pb=/\d{1,3}/,Qb=/\d{1,4}/,Rb=/[+\-]?\d{1,6}/,Sb=/\d+/,Tb=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ub=/Z|[\+\-]\d\d:?\d\d/gi,Vb=/T/i,Wb=/[\+\-]?\d+(\.\d{1,3})?/,Xb=/\d{1,2}/,Yb=/\d/,Zb=/\d\d/,$b=/\d{3}/,_b=/\d{4}/,ac=/[+-]?\d{6}/,bc=/[+-]?\d+/,cc=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dc="YYYY-MM-DDTHH:mm:ssZ",ec=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],fc=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],gc=/([\+\-]|\d\d)/gi,hc=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),ic={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},jc={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},kc={},lc={s:45,m:45,h:22,d:26,M:11},mc="DDD w W M D d".split(" "),nc="M D H h m s w W".split(" "),oc={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+p(Math.abs(a),6)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return p(this.weekYear(),4)},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return p(this.isoWeekYear(),4)},GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return A(this.milliseconds()/100)},SS:function(){return p(A(this.milliseconds()/10),2)},SSS:function(){return p(this.milliseconds(),3)},SSSS:function(){return p(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+":"+p(A(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+p(A(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},pc={},qc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];mc.length;)ub=mc.pop(),oc[ub+"o"]=i(oc[ub],ub);for(;nc.length;)ub=nc.pop(),oc[ub+ub]=h(oc[ub],2);oc.DDDD=h(oc.DDD,3),m(j.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=sb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=sb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return gb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),sb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),ib(g)},sb.suppressDeprecationWarnings=!1,sb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),sb.min=function(){var a=[].slice.call(arguments,0);return jb("isBefore",a)},sb.max=function(){var a=[].slice.call(arguments,0);return jb("isAfter",a)},sb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),ib(g).utc()},sb.unix=function(a){return sb(1e3*a)},sb.duration=function(a,b){var d,e,f,g,h=a,i=null;return sb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Kb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:A(i[Bb])*d,h:A(i[Cb])*d,m:A(i[Db])*d,s:A(i[Eb])*d,ms:A(i[Fb])*d}):(i=Lb.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):"object"==typeof h&&("from"in h||"to"in h)&&(g=r(sb(h.from),sb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new l(h),sb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},sb.version=vb,sb.defaultFormat=dc,sb.ISO_8601=function(){},sb.momentProperties=Hb,sb.updateOffset=function(){},sb.relativeTimeThreshold=function(b,c){return lc[b]===a?!1:c===a?lc[b]:(lc[b]=c,!0)},sb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return sb.locale(a,b)}),sb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?sb.defineLocale(a,b):sb.localeData(a),c&&(sb.duration._locale=sb._locale=c)),sb._locale._abbr},sb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Gb[a]||(Gb[a]=new j),Gb[a].set(b),sb.locale(a),Gb[a]):(delete Gb[a],null)},sb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return sb.localeData(a)}),sb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return sb._locale;if(!u(a)){if(b=J(a))return b;a=[a]}return I(a)},sb.isMoment=function(a){return a instanceof k||null!=a&&c(a,"_isAMomentObject")},sb.isDuration=function(a){return a instanceof l};for(ub=qc.length-1;ub>=0;--ub)z(qc[ub]);sb.normalizeUnits=function(a){return x(a)},sb.invalid=function(a){var b=sb.utc(0/0);return null!=a?m(b._pf,a):b._pf.userInvalidated=!0,b},sb.parseZone=function(){return sb.apply(null,arguments).parseZone()},sb.parseTwoDigitYear=function(a){return A(a)+(A(a)>68?1900:2e3)},m(sb.fn=k.prototype,{clone:function(){return sb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=sb(this).utc();return 0<a.year()&&a.year()<=9999?N(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):N(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return G(this)},isDSTShifted:function(){return this._a?this.isValid()&&w(this._a,(this._isUTC?sb.utc(this._a):sb(this._a)).toArray())>0:!1},parsingFlags:function(){return m({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._d.getTimezoneOffset(),"m")),this},format:function(a){var b=N(this,a||sb.defaultFormat);return this.localeData().postformat(b)},add:s(1,"add"),subtract:s(-1,"subtract"),diff:function(a,b,c){var d,e,f=K(a,this),g=6e4*(this.zone()-f.zone());return b=x(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-sb(this).startOf("month")-(f-sb(f).startOf("month")))/d,e-=6e4*(this.zone()-sb(this).startOf("month").zone()-(f.zone()-sb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:o(e)},from:function(a,b){return sb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(sb(),a)},calendar:function(a){var b=a||sb(),c=K(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return E(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=db(a,this.localeData()),this.add(a-b,"d")):b},month:nb("Month",!0),startOf:function(a){switch(a=x(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(a){return a=x(a),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")},isAfter:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)>+sb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+sb(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+K(a,this).startOf(b)},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=sb.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=sb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._d.getTimezoneOffset():("string"==typeof a&&(a=Q(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._d.getTimezoneOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?t(this,sb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,sb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?sb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return B(this.year(),this.month())},dayOfYear:function(a){var b=xb((sb(this).startOf("day")-sb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=gb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=gb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=gb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return C(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return C(this.year(),a.dow,a.doy)},get:function(a){return a=x(a),this[a]()},set:function(a,b){return a=x(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){return b===a?this._locale._abbr:(this._locale=sb.localeData(b),this)},lang:f("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():(this._locale=sb.localeData(b),this)}),localeData:function(){return this._locale}}),sb.fn.millisecond=sb.fn.milliseconds=nb("Milliseconds",!1),sb.fn.second=sb.fn.seconds=nb("Seconds",!1),sb.fn.minute=sb.fn.minutes=nb("Minutes",!1),sb.fn.hour=sb.fn.hours=nb("Hours",!0),sb.fn.date=nb("Date",!0),sb.fn.dates=f("dates accessor is deprecated. Use date instead.",nb("Date",!0)),sb.fn.year=nb("FullYear",!0),sb.fn.years=f("years accessor is deprecated. Use year instead.",nb("FullYear",!0)),sb.fn.days=sb.fn.day,sb.fn.months=sb.fn.month,sb.fn.weeks=sb.fn.week,sb.fn.isoWeeks=sb.fn.isoWeek,sb.fn.quarters=sb.fn.quarter,sb.fn.toJSON=sb.fn.toISOString,m(sb.duration.fn=l.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=o(d/1e3),g.seconds=a%60,b=o(a/60),g.minutes=b%60,c=o(b/60),g.hours=c%24,e+=o(c/24),h=o(ob(e)),e-=o(pb(h)),f+=o(e/30),e%=30,h+=o(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return o(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*A(this._months/12)},humanize:function(a){var b=fb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=sb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=sb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=x(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=x(a),b=this._days+this._milliseconds/864e5,"month"===a||"year"===a)return c=this._months+12*ob(b),"month"===a?c:c/12;switch(b+=pb(this._months/12),a){case"week":return b/7;case"day":return b;case"hour":return 24*b;case"minute":return 24*b*60;case"second":return 24*b*60*60;case"millisecond":return 24*b*60*60*1e3;default:throw new Error("Unknown unit "+a)}},lang:sb.fn.lang,locale:sb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}}),sb.duration.fn.toString=sb.duration.fn.toISOString;for(ub in hc)c(hc,ub)&&qb(ub.toLowerCase());sb.duration.fn.asMilliseconds=function(){return this.as("ms")},sb.duration.fn.asSeconds=function(){return this.as("s")},sb.duration.fn.asMinutes=function(){return this.as("m")},sb.duration.fn.asHours=function(){return this.as("h")},sb.duration.fn.asDays=function(){return this.as("d")},sb.duration.fn.asWeeks=function(){return this.as("weeks")},sb.duration.fn.asMonths=function(){return this.as("M")},sb.duration.fn.asYears=function(){return this.as("y")},sb.locale("en",{ordinal:function(a){var b=a%10,c=1===A(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),Ib?module.exports=sb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(wb.moment=tb),sb}),rb(!0)):rb()}).call(this);
\ No newline at end of file +(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return zb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){tb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return m(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){qc[a]||(e(b),qc[a]=!0)}function h(a,b){return function(c){return p(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(){}function k(a,b){b!==!1&&F(a),n(this,a),this._d=new Date(+a._d)}function l(a){var b=y(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=tb.localeData(),this._bubble()}function m(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function n(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ib.length>0)for(c in Ib)d=Ib[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function o(a){return 0>a?Math.ceil(a):Math.floor(a)}function p(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function q(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function r(a,b){var c;return b=K(b,a),a.isBefore(b)?c=q(a,b):(c=q(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function s(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=tb.duration(c,d),t(this,e,a),this}}function t(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&nb(a,"Date",mb(a,"Date")+f*c),g&&lb(a,mb(a,"Month")+g*c),d&&tb.updateOffset(a,f||g)}function u(a){return"[object Array]"===Object.prototype.toString.call(a)}function v(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function w(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&A(a[d])!==A(b[d]))&&g++;return g+f}function x(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=jc[a]||kc[b]||b}return a}function y(a){var b,d,e={};for(d in a)c(a,d)&&(b=x(d),b&&(e[b]=a[d]));return e}function z(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}tb[b]=function(e,f){var g,h,i=tb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=tb().utc().set(d,a);return i.call(tb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function A(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function B(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function C(a,b,c){return hb(tb([a,11,31+b-c]),b,c).week}function D(a){return E(a)?366:365}function E(a){return a%4===0&&a%100!==0||a%400===0}function F(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Bb]<0||a._a[Bb]>11?Bb:a._a[Cb]<1||a._a[Cb]>B(a._a[Ab],a._a[Bb])?Cb:a._a[Db]<0||a._a[Db]>23?Db:a._a[Eb]<0||a._a[Eb]>59?Eb:a._a[Fb]<0||a._a[Fb]>59?Fb:a._a[Gb]<0||a._a[Gb]>999?Gb:-1,a._pf._overflowDayOfYear&&(Ab>b||b>Cb)&&(b=Cb),a._pf.overflow=b)}function G(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function H(a){return a?a.toLowerCase().replace("_","-"):a}function I(a){for(var b,c,d,e,f=0;f<a.length;){for(e=H(a[f]).split("-"),b=e.length,c=H(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=J(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&w(e,c,!0)>=b-1)break;b--}f++}return null}function J(a){var b=null;if(!Hb[a]&&Jb)try{b=tb.locale(),require("./locale/"+a),tb.locale(b)}catch(c){}return Hb[a]}function K(a,b){return b._isUTC?tb(a).zone(b._offset||0):tb(a).local()}function L(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function M(a){var b,c,d=a.match(Nb);for(b=0,c=d.length;c>b;b++)d[b]=pc[d[b]]?pc[d[b]]:L(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function N(a,b){return a.isValid()?(b=O(b,a.localeData()),lc[b]||(lc[b]=M(b)),lc[b](a)):a.localeData().invalidDate()}function O(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Ob.lastIndex=0;d>=0&&Ob.test(a);)a=a.replace(Ob,c),Ob.lastIndex=0,d-=1;return a}function P(a,b){var c,d=b._strict;switch(a){case"Q":return Zb;case"DDDD":return _b;case"YYYY":case"GGGG":case"gggg":return d?ac:Rb;case"Y":case"G":case"g":return cc;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?bc:Sb;case"S":if(d)return Zb;case"SS":if(d)return $b;case"SSS":if(d)return _b;case"DDD":return Qb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ub;case"a":case"A":return b._locale._meridiemParse;case"X":return Xb;case"Z":case"ZZ":return Vb;case"T":return Wb;case"SSSS":return Tb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?$b:Pb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Pb;case"Do":return Yb;default:return c=new RegExp(Y(X(a.replace("\\","")),"i"))}}function Q(a){a=a||"";var b=a.match(Vb)||[],c=b[b.length-1]||[],d=(c+"").match(hc)||["-",0,0],e=+(60*d[1])+A(d[2]);return"+"===d[0]?-e:e}function R(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Bb]=3*(A(b)-1));break;case"M":case"MM":null!=b&&(e[Bb]=A(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[Bb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Cb]=A(b));break;case"Do":null!=b&&(e[Cb]=A(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=A(b));break;case"YY":e[Ab]=tb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ab]=A(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Db]=A(b);break;case"m":case"mm":e[Eb]=A(b);break;case"s":case"ss":e[Fb]=A(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Gb]=A(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=Q(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=A(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=tb.parseTwoDigitYear(b)}}function S(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ab],hb(tb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ab],hb(tb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ib(d,e,f,h,g),a._a[Ab]=i.year,a._dayOfYear=i.dayOfYear}function T(a){var c,d,e,f,g=[];if(!a._d){for(e=V(a),a._w&&null==a._a[Cb]&&null==a._a[Bb]&&S(a),a._dayOfYear&&(f=b(a._a[Ab],e[Ab]),a._dayOfYear>D(f)&&(a._pf._overflowDayOfYear=!0),d=db(f,0,a._dayOfYear),a._a[Bb]=d.getUTCMonth(),a._a[Cb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?db:cb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function U(a){var b;a._d||(b=y(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],T(a))}function V(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function W(a){if(a._f===tb.ISO_8601)return void $(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=O(a._f,a._locale).match(Nb)||[],b=0;b<d.length;b++)e=d[b],c=(g.match(P(e,a))||[])[0],c&&(f=g.substr(0,g.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),pc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),R(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Db]<12&&(a._a[Db]+=12),a._isPm===!1&&12===a._a[Db]&&(a._a[Db]=0),T(a),F(a)}function X(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function Y(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;f<a._f.length;f++)g=0,b=n({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._pf=d(),b._f=a._f[f],W(b),G(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));m(a,c||b)}function $(a){var b,c,d=a._i,e=dc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=fc.length;c>b;b++)if(fc[b][1].exec(d)){a._f=fc[b][0]+(e[6]||" ");break}for(b=0,c=gc.length;c>b;b++)if(gc[b][1].exec(d)){a._f+=gc[b][0];break}d.match(Vb)&&(a._f+="Z"),W(a)}else a._isValid=!1}function _(a){$(a),a._isValid===!1&&(delete a._isValid,tb.createFromInputFallback(a))}function ab(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function bb(b){var c,d=b._i;d===a?b._d=new Date:v(d)?b._d=new Date(+d):null!==(c=Kb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?_(b):u(d)?(b._a=ab(d.slice(0),function(a){return parseInt(a,10)}),T(b)):"object"==typeof d?U(b):"number"==typeof d?b._d=new Date(d):tb.createFromInputFallback(b)}function cb(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function db(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function eb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function fb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function gb(a,b,c){var d=tb.duration(a).abs(),e=yb(d.as("s")),f=yb(d.as("m")),g=yb(d.as("h")),h=yb(d.as("d")),i=yb(d.as("M")),j=yb(d.as("y")),k=e<mc.s&&["s",e]||1===f&&["m"]||f<mc.m&&["mm",f]||1===g&&["h"]||g<mc.h&&["hh",g]||1===h&&["d"]||h<mc.d&&["dd",h]||1===i&&["M"]||i<mc.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,fb.apply({},k)}function hb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=tb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ib(a,b,c,d,e){var f,g,h=db(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:D(a-1)+g}}function jb(b){var c=b._i,d=b._f;return b._locale=b._locale||tb.localeData(b._l),null===c||d===a&&""===c?tb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),tb.isMoment(c)?new k(c,!0):(d?u(d)?Z(b):W(b):bb(b),new k(b)))}function kb(a,b){var c,d;if(1===b.length&&u(b[0])&&(b=b[0]),!b.length)return tb();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function lb(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),B(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function mb(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function nb(a,b,c){return"Month"===b?lb(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function ob(a,b){return function(c){return null!=c?(nb(this,a,c),tb.updateOffset(this,b),this):mb(this,a)}}function pb(a){return 400*a/146097}function qb(a){return 146097*a/400}function rb(a){tb.duration.fn[a]=function(){return this._data[a]}}function sb(a){"undefined"==typeof ender&&(ub=xb.moment,xb.moment=a?f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",tb):tb)}for(var tb,ub,vb,wb="2.8.3",xb="undefined"!=typeof global?global:this,yb=Math.round,zb=Object.prototype.hasOwnProperty,Ab=0,Bb=1,Cb=2,Db=3,Eb=4,Fb=5,Gb=6,Hb={},Ib=[],Jb="undefined"!=typeof module&&module.exports,Kb=/^\/?Date\((\-?\d+)/i,Lb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Mb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Nb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,Ob=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Pb=/\d\d?/,Qb=/\d{1,3}/,Rb=/\d{1,4}/,Sb=/[+\-]?\d{1,6}/,Tb=/\d+/,Ub=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Vb=/Z|[\+\-]\d\d:?\d\d/gi,Wb=/T/i,Xb=/[\+\-]?\d+(\.\d{1,3})?/,Yb=/\d{1,2}/,Zb=/\d/,$b=/\d\d/,_b=/\d{3}/,ac=/\d{4}/,bc=/[+-]?\d{6}/,cc=/[+-]?\d+/,dc=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ec="YYYY-MM-DDTHH:mm:ssZ",fc=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],gc=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],hc=/([\+\-]|\d\d)/gi,ic=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),jc={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},kc={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},lc={},mc={s:45,m:45,h:22,d:26,M:11},nc="DDD w W M D d".split(" "),oc="M D H h m s w W".split(" "),pc={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+p(Math.abs(a),6)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return p(this.weekYear(),4)},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return p(this.isoWeekYear(),4)},GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return A(this.milliseconds()/100)},SS:function(){return p(A(this.milliseconds()/10),2)},SSS:function(){return p(this.milliseconds(),3)},SSSS:function(){return p(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+":"+p(A(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+p(A(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},qc={},rc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];nc.length;)vb=nc.pop(),pc[vb+"o"]=i(pc[vb],vb);for(;oc.length;)vb=oc.pop(),pc[vb+vb]=h(pc[vb],2);pc.DDDD=h(pc.DDD,3),m(j.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=tb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=tb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return hb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),tb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),jb(g)},tb.suppressDeprecationWarnings=!1,tb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),tb.min=function(){var a=[].slice.call(arguments,0);return kb("isBefore",a)},tb.max=function(){var a=[].slice.call(arguments,0);return kb("isAfter",a)},tb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),jb(g).utc()},tb.unix=function(a){return tb(1e3*a)},tb.duration=function(a,b){var d,e,f,g,h=a,i=null;return tb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Lb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:A(i[Cb])*d,h:A(i[Db])*d,m:A(i[Eb])*d,s:A(i[Fb])*d,ms:A(i[Gb])*d}):(i=Mb.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):"object"==typeof h&&("from"in h||"to"in h)&&(g=r(tb(h.from),tb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new l(h),tb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},tb.version=wb,tb.defaultFormat=ec,tb.ISO_8601=function(){},tb.momentProperties=Ib,tb.updateOffset=function(){},tb.relativeTimeThreshold=function(b,c){return mc[b]===a?!1:c===a?mc[b]:(mc[b]=c,!0)},tb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return tb.locale(a,b)}),tb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?tb.defineLocale(a,b):tb.localeData(a),c&&(tb.duration._locale=tb._locale=c)),tb._locale._abbr},tb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Hb[a]||(Hb[a]=new j),Hb[a].set(b),tb.locale(a),Hb[a]):(delete Hb[a],null)},tb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return tb.localeData(a)}),tb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return tb._locale;if(!u(a)){if(b=J(a))return b;a=[a]}return I(a)},tb.isMoment=function(a){return a instanceof k||null!=a&&c(a,"_isAMomentObject")},tb.isDuration=function(a){return a instanceof l};for(vb=rc.length-1;vb>=0;--vb)z(rc[vb]);tb.normalizeUnits=function(a){return x(a)},tb.invalid=function(a){var b=tb.utc(0/0);return null!=a?m(b._pf,a):b._pf.userInvalidated=!0,b},tb.parseZone=function(){return tb.apply(null,arguments).parseZone()},tb.parseTwoDigitYear=function(a){return A(a)+(A(a)>68?1900:2e3)},m(tb.fn=k.prototype,{clone:function(){return tb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=tb(this).utc();return 0<a.year()&&a.year()<=9999?N(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):N(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return G(this)},isDSTShifted:function(){return this._a?this.isValid()&&w(this._a,(this._isUTC?tb.utc(this._a):tb(this._a)).toArray())>0:!1},parsingFlags:function(){return m({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._dateTzOffset(),"m")),this},format:function(a){var b=N(this,a||tb.defaultFormat);return this.localeData().postformat(b)},add:s(1,"add"),subtract:s(-1,"subtract"),diff:function(a,b,c){var d,e,f,g=K(a,this),h=6e4*(this.zone()-g.zone());return b=x(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+g.daysInMonth()),e=12*(this.year()-g.year())+(this.month()-g.month()),f=this-tb(this).startOf("month")-(g-tb(g).startOf("month")),f-=6e4*(this.zone()-tb(this).startOf("month").zone()-(g.zone()-tb(g).startOf("month").zone())),e+=f/d,"year"===b&&(e/=12)):(d=this-g,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-h)/864e5:"week"===b?(d-h)/6048e5:d),c?e:o(e)},from:function(a,b){return tb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(tb(),a)},calendar:function(a){var b=a||tb(),c=K(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return E(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=eb(a,this.localeData()),this.add(a-b,"d")):b},month:ob("Month",!0),startOf:function(a){switch(a=x(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(a){return a=x(a),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")},isAfter:function(a,b){return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this>+a):+this.clone().startOf(b)>+tb(a).startOf(b)},isBefore:function(a,b){return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+a>+this):+this.clone().startOf(b)<+tb(a).startOf(b)},isSame:function(a,b){return b=x(b||"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this===+a):+this.clone().startOf(b)===+K(a,this).startOf(b)},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._dateTzOffset():("string"==typeof a&&(a=Q(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateTzOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?t(this,tb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,tb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?tb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return B(this.year(),this.month())},dayOfYear:function(a){var b=yb((tb(this).startOf("day")-tb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=hb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=hb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=hb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return C(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return C(this.year(),a.dow,a.doy)},get:function(a){return a=x(a),this[a]()},set:function(a,b){return a=x(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){var c;return b===a?this._locale._abbr:(c=tb.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),tb.fn.millisecond=tb.fn.milliseconds=ob("Milliseconds",!1),tb.fn.second=tb.fn.seconds=ob("Seconds",!1),tb.fn.minute=tb.fn.minutes=ob("Minutes",!1),tb.fn.hour=tb.fn.hours=ob("Hours",!0),tb.fn.date=ob("Date",!0),tb.fn.dates=f("dates accessor is deprecated. Use date instead.",ob("Date",!0)),tb.fn.year=ob("FullYear",!0),tb.fn.years=f("years accessor is deprecated. Use year instead.",ob("FullYear",!0)),tb.fn.days=tb.fn.day,tb.fn.months=tb.fn.month,tb.fn.weeks=tb.fn.week,tb.fn.isoWeeks=tb.fn.isoWeek,tb.fn.quarters=tb.fn.quarter,tb.fn.toJSON=tb.fn.toISOString,m(tb.duration.fn=l.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=o(d/1e3),g.seconds=a%60,b=o(a/60),g.minutes=b%60,c=o(b/60),g.hours=c%24,e+=o(c/24),h=o(pb(e)),e-=o(qb(h)),f+=o(e/30),e%=30,h+=o(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return o(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*A(this._months/12)},humanize:function(a){var b=gb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=tb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=tb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=x(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=x(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*pb(b),"month"===a?c:c/12;switch(b=this._days+qb(this._months/12),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:tb.fn.lang,locale:tb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}}),tb.duration.fn.toString=tb.duration.fn.toISOString;for(vb in ic)c(ic,vb)&&rb(vb.toLowerCase());tb.duration.fn.asMilliseconds=function(){return this.as("ms")},tb.duration.fn.asSeconds=function(){return this.as("s")},tb.duration.fn.asMinutes=function(){return this.as("m")},tb.duration.fn.asHours=function(){return this.as("h")},tb.duration.fn.asDays=function(){return this.as("d")},tb.duration.fn.asWeeks=function(){return this.as("weeks")},tb.duration.fn.asMonths=function(){return this.as("M")},tb.duration.fn.asYears=function(){return this.as("y")},tb.locale("en",{ordinal:function(a){var b=a%10,c=1===A(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th"; +return a+c}}),Jb?module.exports=tb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(xb.moment=ub),tb}),sb(!0)):sb()}).call(this);
\ No newline at end of file diff --git a/js/vendor/momentjs/moment.js b/js/vendor/momentjs/moment.js index da8fb8969..d100a9c40 100644 --- a/js/vendor/momentjs/moment.js +++ b/js/vendor/momentjs/moment.js @@ -1,5 +1,5 @@ //! moment.js -//! version : 2.8.2 +//! version : 2.8.3 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com @@ -10,7 +10,7 @@ ************************************/ var moment, - VERSION = '2.8.2', + VERSION = '2.8.3', // the global-scope this is NOT the global object in Node.js globalScope = typeof global !== 'undefined' ? global : this, oldGlobalMoment, @@ -1493,6 +1493,9 @@ for (i = 0; i < config._f.length; i++) { currentScore = 0; tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } tempConfig._pf = defaultParsingFlags(); tempConfig._f = config._f[i]; makeDateFromStringAndFormat(tempConfig); @@ -1557,6 +1560,14 @@ } } + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + function makeDateFromInput(config) { var input = config._i, matched; if (input === undefined) { @@ -1568,7 +1579,9 @@ } else if (typeof input === 'string') { makeDateFromString(config); } else if (isArray(input)) { - config._a = input.slice(0); + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); dateFromConfig(config); } else if (typeof(input) === 'object') { dateFromObject(config); @@ -2123,7 +2136,7 @@ this._isUTC = false; if (keepLocalTime) { - this.add(this._d.getTimezoneOffset(), 'm'); + this.add(this._dateTzOffset(), 'm'); } } return this; @@ -2141,7 +2154,7 @@ diff : function (input, units, asFloat) { var that = makeAs(input, this), zoneDiff = (this.zone() - that.zone()) * 6e4, - diff, output; + diff, output, daysAdjust; units = normalizeUnits(units); @@ -2152,11 +2165,12 @@ output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); // adjust by taking difference in days, average number of days // and dst in the given months. - output += ((this - moment(this).startOf('month')) - - (that - moment(that).startOf('month'))) / diff; + daysAdjust = (this - moment(this).startOf('month')) - + (that - moment(that).startOf('month')); // same as above but with zones, to negate all dst - output -= ((this.zone() - moment(this).startOf('month').zone()) - - (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff; + daysAdjust -= ((this.zone() - moment(this).startOf('month').zone()) - + (that.zone() - moment(that).startOf('month').zone())) * 6e4; + output += daysAdjust / diff; if (units === 'year') { output = output / 12; } @@ -2265,18 +2279,33 @@ }, isAfter: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) > +moment(input).startOf(units); + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this > +input; + } else { + return +this.clone().startOf(units) > +moment(input).startOf(units); + } }, isBefore: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) < +moment(input).startOf(units); + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this < +input; + } else { + return +this.clone().startOf(units) < +moment(input).startOf(units); + } }, isSame: function (input, units) { - units = units || 'ms'; - return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this === +input; + } else { + return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + } }, min: deprecate( @@ -2316,7 +2345,7 @@ input = input * 60; } if (!this._isUTC && keepLocalTime) { - localAdjust = this._d.getTimezoneOffset(); + localAdjust = this._dateTzOffset(); } this._offset = input; this._isUTC = true; @@ -2334,7 +2363,7 @@ } } } else { - return this._isUTC ? offset : this._d.getTimezoneOffset(); + return this._isUTC ? offset : this._dateTzOffset(); } return this; }, @@ -2438,10 +2467,15 @@ // instance. Otherwise, it will return the locale configuration // variables for this instance. locale : function (key) { + var newLocaleData; + if (key === undefined) { return this._locale._abbr; } else { - this._locale = moment.localeData(key); + newLocaleData = moment.localeData(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } return this; } }, @@ -2452,14 +2486,19 @@ if (key === undefined) { return this.localeData(); } else { - this._locale = moment.localeData(key); - return this; + return this.locale(key); } } ), localeData : function () { return this._locale; + }, + + _dateTzOffset : function () { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return Math.round(this._d.getTimezoneOffset() / 15) * 15; } }); @@ -2657,19 +2696,21 @@ var days, months; units = normalizeUnits(units); - days = this._days + this._milliseconds / 864e5; if (units === 'month' || units === 'year') { + days = this._days + this._milliseconds / 864e5; months = this._months + daysToYears(days) * 12; return units === 'month' ? months : months / 12; } else { - days += yearsToDays(this._months / 12); + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + yearsToDays(this._months / 12); switch (units) { - case 'week': return days / 7; - case 'day': return days; - case 'hour': return days * 24; - case 'minute': return days * 24 * 60; - case 'second': return days * 24 * 60 * 60; - case 'millisecond': return days * 24 * 60 * 60 * 1000; + case 'week': return days / 7 + this._milliseconds / 6048e5; + case 'day': return days + this._milliseconds / 864e5; + case 'hour': return days * 24 + this._milliseconds / 36e5; + case 'minute': return days * 24 * 60 + this._milliseconds / 6e4; + case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds; default: throw new Error('Unknown unit ' + units); } } diff --git a/js/vendor/traceur-runtime/.bower.json b/js/vendor/traceur-runtime/.bower.json deleted file mode 100644 index 61fc26bcd..000000000 --- a/js/vendor/traceur-runtime/.bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "traceur-runtime", - "version": "0.0.60", - "main": "./traceur-runtime.js", - "ignore": [ - "node_modules", - "Gruntfile.js", - "*.json", - ".*" - ], - "homepage": "https://github.com/jmcriffey/bower-traceur-runtime", - "_release": "0.0.60", - "_resolution": { - "type": "version", - "tag": "0.0.60", - "commit": "74f6bf024d21aa5bd7d32edf5e0ee50dfe370845" - }, - "_source": "git://github.com/jmcriffey/bower-traceur-runtime.git", - "_target": "~0.0.60", - "_originalSource": "traceur-runtime" -}
\ No newline at end of file diff --git a/js/vendor/traceur-runtime/README.md b/js/vendor/traceur-runtime/README.md deleted file mode 100644 index a1150103b..000000000 --- a/js/vendor/traceur-runtime/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# bower-traceur-runtime - -This repo is for distribution on `bower`. The source for this module is in the -[main traceur repo](https://github.com/google/traceur-compiler/). -Please file issues and pull requests against that repo. - -## Install - -Install with `bower`: - -```shell -bower install traceur-runtime -``` - -Add a `<script>` to your `index.html`: - -```html -<script src="/bower_components/traceur-runtime/traceur-runtime.js"></script> -``` - -## License - -Copyright 2012 Traceur Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/js/vendor/traceur-runtime/bower.json b/js/vendor/traceur-runtime/bower.json deleted file mode 100644 index d7f81ae02..000000000 --- a/js/vendor/traceur-runtime/bower.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "traceur-runtime", - "version": "0.0.60", - "main": "./traceur-runtime.js", - "ignore": [ - "node_modules", - "Gruntfile.js", - "*.json", - ".*" - ] -} diff --git a/js/vendor/traceur-runtime/traceur-runtime.js b/js/vendor/traceur-runtime/traceur-runtime.js deleted file mode 100644 index aacdc2ff7..000000000 --- a/js/vendor/traceur-runtime/traceur-runtime.js +++ /dev/null @@ -1,2412 +0,0 @@ -(function(global) { - 'use strict'; - if (global.$traceurRuntime) { - return; - } - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $Object.defineProperties; - var $defineProperty = $Object.defineProperty; - var $freeze = $Object.freeze; - var $getOwnPropertyDescriptor = $Object.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $Object.getOwnPropertyNames; - var $keys = $Object.keys; - var $hasOwnProperty = $Object.prototype.hasOwnProperty; - var $toString = $Object.prototype.toString; - var $preventExtensions = Object.preventExtensions; - var $seal = Object.seal; - var $isExtensible = Object.isExtensible; - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var types = { - void: function voidType() {}, - any: function any() {}, - string: function string() {}, - number: function number() {}, - boolean: function boolean() {} - }; - var method = nonEnum; - var counter = 0; - function newUniqueString() { - return '__$' + Math.floor(Math.random() * 1e9) + '$' + ++counter + '$__'; - } - var symbolInternalProperty = newUniqueString(); - var symbolDescriptionProperty = newUniqueString(); - var symbolDataProperty = newUniqueString(); - var symbolValues = $create(null); - var privateNames = $create(null); - function createPrivateName() { - var s = newUniqueString(); - privateNames[s] = true; - return s; - } - function isSymbol(symbol) { - return typeof symbol === 'object' && symbol instanceof SymbolValue; - } - function typeOf(v) { - if (isSymbol(v)) - return 'symbol'; - return typeof v; - } - function Symbol(description) { - var value = new SymbolValue(description); - if (!(this instanceof Symbol)) - return value; - throw new TypeError('Symbol cannot be new\'ed'); - } - $defineProperty(Symbol.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(Symbol.prototype, 'toString', method(function() { - var symbolValue = this[symbolDataProperty]; - if (!getOption('symbols')) - return symbolValue[symbolInternalProperty]; - if (!symbolValue) - throw TypeError('Conversion from symbol to string'); - var desc = symbolValue[symbolDescriptionProperty]; - if (desc === undefined) - desc = ''; - return 'Symbol(' + desc + ')'; - })); - $defineProperty(Symbol.prototype, 'valueOf', method(function() { - var symbolValue = this[symbolDataProperty]; - if (!symbolValue) - throw TypeError('Conversion from symbol to string'); - if (!getOption('symbols')) - return symbolValue[symbolInternalProperty]; - return symbolValue; - })); - function SymbolValue(description) { - var key = newUniqueString(); - $defineProperty(this, symbolDataProperty, {value: this}); - $defineProperty(this, symbolInternalProperty, {value: key}); - $defineProperty(this, symbolDescriptionProperty, {value: description}); - freeze(this); - symbolValues[key] = this; - } - $defineProperty(SymbolValue.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(SymbolValue.prototype, 'toString', { - value: Symbol.prototype.toString, - enumerable: false - }); - $defineProperty(SymbolValue.prototype, 'valueOf', { - value: Symbol.prototype.valueOf, - enumerable: false - }); - var hashProperty = createPrivateName(); - var hashPropertyDescriptor = {value: undefined}; - var hashObjectProperties = { - hash: {value: undefined}, - self: {value: undefined} - }; - var hashCounter = 0; - function getOwnHashObject(object) { - var hashObject = object[hashProperty]; - if (hashObject && hashObject.self === object) - return hashObject; - if ($isExtensible(object)) { - hashObjectProperties.hash.value = hashCounter++; - hashObjectProperties.self.value = object; - hashPropertyDescriptor.value = $create(null, hashObjectProperties); - $defineProperty(object, hashProperty, hashPropertyDescriptor); - return hashPropertyDescriptor.value; - } - return undefined; - } - function freeze(object) { - getOwnHashObject(object); - return $freeze.apply(this, arguments); - } - function preventExtensions(object) { - getOwnHashObject(object); - return $preventExtensions.apply(this, arguments); - } - function seal(object) { - getOwnHashObject(object); - return $seal.apply(this, arguments); - } - Symbol.iterator = Symbol(); - freeze(SymbolValue.prototype); - function toProperty(name) { - if (isSymbol(name)) - return name[symbolInternalProperty]; - return name; - } - function getOwnPropertyNames(object) { - var rv = []; - var names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - if (!symbolValues[name] && !privateNames[name]) - rv.push(name); - } - return rv; - } - function getOwnPropertyDescriptor(object, name) { - return $getOwnPropertyDescriptor(object, toProperty(name)); - } - function getOwnPropertySymbols(object) { - var rv = []; - var names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var symbol = symbolValues[names[i]]; - if (symbol) - rv.push(symbol); - } - return rv; - } - function hasOwnProperty(name) { - return $hasOwnProperty.call(this, toProperty(name)); - } - function getOption(name) { - return global.traceur && global.traceur.options[name]; - } - function setProperty(object, name, value) { - var sym, - desc; - if (isSymbol(name)) { - sym = name; - name = name[symbolInternalProperty]; - } - object[name] = value; - if (sym && (desc = $getOwnPropertyDescriptor(object, name))) - $defineProperty(object, name, {enumerable: false}); - return value; - } - function defineProperty(object, name, descriptor) { - if (isSymbol(name)) { - if (descriptor.enumerable) { - descriptor = $create(descriptor, {enumerable: {value: false}}); - } - name = name[symbolInternalProperty]; - } - $defineProperty(object, name, descriptor); - return object; - } - function polyfillObject(Object) { - $defineProperty(Object, 'defineProperty', {value: defineProperty}); - $defineProperty(Object, 'getOwnPropertyNames', {value: getOwnPropertyNames}); - $defineProperty(Object, 'getOwnPropertyDescriptor', {value: getOwnPropertyDescriptor}); - $defineProperty(Object.prototype, 'hasOwnProperty', {value: hasOwnProperty}); - $defineProperty(Object, 'freeze', {value: freeze}); - $defineProperty(Object, 'preventExtensions', {value: preventExtensions}); - $defineProperty(Object, 'seal', {value: seal}); - Object.getOwnPropertySymbols = getOwnPropertySymbols; - } - function exportStar(object) { - for (var i = 1; i < arguments.length; i++) { - var names = $getOwnPropertyNames(arguments[i]); - for (var j = 0; j < names.length; j++) { - var name = names[j]; - if (privateNames[name]) - continue; - (function(mod, name) { - $defineProperty(object, name, { - get: function() { - return mod[name]; - }, - enumerable: true - }); - })(arguments[i], names[j]); - } - } - return object; - } - function isObject(x) { - return x != null && (typeof x === 'object' || typeof x === 'function'); - } - function toObject(x) { - if (x == null) - throw $TypeError(); - return $Object(x); - } - function checkObjectCoercible(argument) { - if (argument == null) { - throw new TypeError('Value cannot be converted to an Object'); - } - return argument; - } - function setupGlobals(global) { - global.Symbol = Symbol; - global.Reflect = global.Reflect || {}; - global.Reflect.global = global.Reflect.global || global; - polyfillObject(global.Object); - } - setupGlobals(global); - global.$traceurRuntime = { - createPrivateName: createPrivateName, - exportStar: exportStar, - getOwnHashObject: getOwnHashObject, - privateNames: privateNames, - setProperty: setProperty, - setupGlobals: setupGlobals, - toObject: toObject, - isObject: isObject, - toProperty: toProperty, - type: types, - typeof: typeOf, - checkObjectCoercible: checkObjectCoercible, - hasOwnProperty: function(o, p) { - return hasOwnProperty.call(o, p); - }, - defineProperties: $defineProperties, - defineProperty: $defineProperty, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - keys: $keys - }; -})(typeof global !== 'undefined' ? global : this); -(function() { - 'use strict'; - function spread() { - var rv = [], - j = 0, - iterResult; - for (var i = 0; i < arguments.length; i++) { - var valueToSpread = $traceurRuntime.checkObjectCoercible(arguments[i]); - if (typeof valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)] !== 'function') { - throw new TypeError('Cannot spread non-iterable object.'); - } - var iter = valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)](); - while (!(iterResult = iter.next()).done) { - rv[j++] = iterResult.value; - } - } - return rv; - } - $traceurRuntime.spread = spread; -})(); -(function() { - 'use strict'; - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $getOwnPropertyDescriptor = $traceurRuntime.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $traceurRuntime.getOwnPropertyNames; - var $getPrototypeOf = Object.getPrototypeOf; - function superDescriptor(homeObject, name) { - var proto = $getPrototypeOf(homeObject); - do { - var result = $getOwnPropertyDescriptor(proto, name); - if (result) - return result; - proto = $getPrototypeOf(proto); - } while (proto); - return undefined; - } - function superCall(self, homeObject, name, args) { - return superGet(self, homeObject, name).apply(self, args); - } - function superGet(self, homeObject, name) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor) { - if (!descriptor.get) - return descriptor.value; - return descriptor.get.call(self); - } - return undefined; - } - function superSet(self, homeObject, name, value) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor && descriptor.set) { - descriptor.set.call(self, value); - return value; - } - throw $TypeError("super has no setter '" + name + "'."); - } - function getDescriptors(object) { - var descriptors = {}, - name, - names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - descriptors[name] = $getOwnPropertyDescriptor(object, name); - } - return descriptors; - } - function createClass(ctor, object, staticObject, superClass) { - $defineProperty(object, 'constructor', { - value: ctor, - configurable: true, - enumerable: false, - writable: true - }); - if (arguments.length > 3) { - if (typeof superClass === 'function') - ctor.__proto__ = superClass; - ctor.prototype = $create(getProtoParent(superClass), getDescriptors(object)); - } else { - ctor.prototype = object; - } - $defineProperty(ctor, 'prototype', { - configurable: false, - writable: false - }); - return $defineProperties(ctor, getDescriptors(staticObject)); - } - function getProtoParent(superClass) { - if (typeof superClass === 'function') { - var prototype = superClass.prototype; - if ($Object(prototype) === prototype || prototype === null) - return superClass.prototype; - throw new $TypeError('super prototype must be an Object or null'); - } - if (superClass === null) - return null; - throw new $TypeError(("Super expression must either be null or a function, not " + typeof superClass + ".")); - } - function defaultSuperCall(self, homeObject, args) { - if ($getPrototypeOf(homeObject) !== null) - superCall(self, homeObject, 'constructor', args); - } - $traceurRuntime.createClass = createClass; - $traceurRuntime.defaultSuperCall = defaultSuperCall; - $traceurRuntime.superCall = superCall; - $traceurRuntime.superGet = superGet; - $traceurRuntime.superSet = superSet; -})(); -(function() { - 'use strict'; - var createPrivateName = $traceurRuntime.createPrivateName; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $create = Object.create; - var $TypeError = TypeError; - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var ST_NEWBORN = 0; - var ST_EXECUTING = 1; - var ST_SUSPENDED = 2; - var ST_CLOSED = 3; - var END_STATE = -2; - var RETHROW_STATE = -3; - function getInternalError(state) { - return new Error('Traceur compiler bug: invalid state in state machine: ' + state); - } - function GeneratorContext() { - this.state = 0; - this.GState = ST_NEWBORN; - this.storedException = undefined; - this.finallyFallThrough = undefined; - this.sent_ = undefined; - this.returnValue = undefined; - this.tryStack_ = []; - } - GeneratorContext.prototype = { - pushTry: function(catchState, finallyState) { - if (finallyState !== null) { - var finallyFallThrough = null; - for (var i = this.tryStack_.length - 1; i >= 0; i--) { - if (this.tryStack_[i].catch !== undefined) { - finallyFallThrough = this.tryStack_[i].catch; - break; - } - } - if (finallyFallThrough === null) - finallyFallThrough = RETHROW_STATE; - this.tryStack_.push({ - finally: finallyState, - finallyFallThrough: finallyFallThrough - }); - } - if (catchState !== null) { - this.tryStack_.push({catch: catchState}); - } - }, - popTry: function() { - this.tryStack_.pop(); - }, - get sent() { - this.maybeThrow(); - return this.sent_; - }, - set sent(v) { - this.sent_ = v; - }, - get sentIgnoreThrow() { - return this.sent_; - }, - maybeThrow: function() { - if (this.action === 'throw') { - this.action = 'next'; - throw this.sent_; - } - }, - end: function() { - switch (this.state) { - case END_STATE: - return this; - case RETHROW_STATE: - throw this.storedException; - default: - throw getInternalError(this.state); - } - }, - handleException: function(ex) { - this.GState = ST_CLOSED; - this.state = END_STATE; - throw ex; - } - }; - function nextOrThrow(ctx, moveNext, action, x) { - switch (ctx.GState) { - case ST_EXECUTING: - throw new Error(("\"" + action + "\" on executing generator")); - case ST_CLOSED: - if (action == 'next') { - return { - value: undefined, - done: true - }; - } - throw x; - case ST_NEWBORN: - if (action === 'throw') { - ctx.GState = ST_CLOSED; - throw x; - } - if (x !== undefined) - throw $TypeError('Sent value to newborn generator'); - case ST_SUSPENDED: - ctx.GState = ST_EXECUTING; - ctx.action = action; - ctx.sent = x; - var value = moveNext(ctx); - var done = value === ctx; - if (done) - value = ctx.returnValue; - ctx.GState = done ? ST_CLOSED : ST_SUSPENDED; - return { - value: value, - done: done - }; - } - } - var ctxName = createPrivateName(); - var moveNextName = createPrivateName(); - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - GeneratorFunction.prototype = GeneratorFunctionPrototype; - $defineProperty(GeneratorFunctionPrototype, 'constructor', nonEnum(GeneratorFunction)); - GeneratorFunctionPrototype.prototype = { - constructor: GeneratorFunctionPrototype, - next: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'next', v); - }, - throw: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'throw', v); - } - }; - $defineProperties(GeneratorFunctionPrototype.prototype, { - constructor: {enumerable: false}, - next: {enumerable: false}, - throw: {enumerable: false} - }); - Object.defineProperty(GeneratorFunctionPrototype.prototype, Symbol.iterator, nonEnum(function() { - return this; - })); - function createGeneratorInstance(innerFunction, functionObject, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new GeneratorContext(); - var object = $create(functionObject.prototype); - object[ctxName] = ctx; - object[moveNextName] = moveNext; - return object; - } - function initGeneratorFunction(functionObject) { - functionObject.prototype = $create(GeneratorFunctionPrototype.prototype); - functionObject.__proto__ = GeneratorFunctionPrototype; - return functionObject; - } - function AsyncFunctionContext() { - GeneratorContext.call(this); - this.err = undefined; - var ctx = this; - ctx.result = new Promise(function(resolve, reject) { - ctx.resolve = resolve; - ctx.reject = reject; - }); - } - AsyncFunctionContext.prototype = $create(GeneratorContext.prototype); - AsyncFunctionContext.prototype.end = function() { - switch (this.state) { - case END_STATE: - this.resolve(this.returnValue); - break; - case RETHROW_STATE: - this.reject(this.storedException); - break; - default: - this.reject(getInternalError(this.state)); - } - }; - AsyncFunctionContext.prototype.handleException = function() { - this.state = RETHROW_STATE; - }; - function asyncWrap(innerFunction, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new AsyncFunctionContext(); - ctx.createCallback = function(newState) { - return function(value) { - ctx.state = newState; - ctx.value = value; - moveNext(ctx); - }; - }; - ctx.errback = function(err) { - handleCatch(ctx, err); - moveNext(ctx); - }; - moveNext(ctx); - return ctx.result; - } - function getMoveNext(innerFunction, self) { - return function(ctx) { - while (true) { - try { - return innerFunction.call(self, ctx); - } catch (ex) { - handleCatch(ctx, ex); - } - } - }; - } - function handleCatch(ctx, ex) { - ctx.storedException = ex; - var last = ctx.tryStack_[ctx.tryStack_.length - 1]; - if (!last) { - ctx.handleException(ex); - return; - } - ctx.state = last.catch !== undefined ? last.catch : last.finally; - if (last.finallyFallThrough !== undefined) - ctx.finallyFallThrough = last.finallyFallThrough; - } - $traceurRuntime.asyncWrap = asyncWrap; - $traceurRuntime.initGeneratorFunction = initGeneratorFunction; - $traceurRuntime.createGeneratorInstance = createGeneratorInstance; -})(); -(function() { - function buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) { - var out = []; - if (opt_scheme) { - out.push(opt_scheme, ':'); - } - if (opt_domain) { - out.push('//'); - if (opt_userInfo) { - out.push(opt_userInfo, '@'); - } - out.push(opt_domain); - if (opt_port) { - out.push(':', opt_port); - } - } - if (opt_path) { - out.push(opt_path); - } - if (opt_queryData) { - out.push('?', opt_queryData); - } - if (opt_fragment) { - out.push('#', opt_fragment); - } - return out.join(''); - } - ; - var splitRe = new RegExp('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$'); - var ComponentIndex = { - SCHEME: 1, - USER_INFO: 2, - DOMAIN: 3, - PORT: 4, - PATH: 5, - QUERY_DATA: 6, - FRAGMENT: 7 - }; - function split(uri) { - return (uri.match(splitRe)); - } - function removeDotSegments(path) { - if (path === '/') - return '/'; - var leadingSlash = path[0] === '/' ? '/' : ''; - var trailingSlash = path.slice(-1) === '/' ? '/' : ''; - var segments = path.split('/'); - var out = []; - var up = 0; - for (var pos = 0; pos < segments.length; pos++) { - var segment = segments[pos]; - switch (segment) { - case '': - case '.': - break; - case '..': - if (out.length) - out.pop(); - else - up++; - break; - default: - out.push(segment); - } - } - if (!leadingSlash) { - while (up-- > 0) { - out.unshift('..'); - } - if (out.length === 0) - out.push('.'); - } - return leadingSlash + out.join('/') + trailingSlash; - } - function joinAndCanonicalizePath(parts) { - var path = parts[ComponentIndex.PATH] || ''; - path = removeDotSegments(path); - parts[ComponentIndex.PATH] = path; - return buildFromEncodedParts(parts[ComponentIndex.SCHEME], parts[ComponentIndex.USER_INFO], parts[ComponentIndex.DOMAIN], parts[ComponentIndex.PORT], parts[ComponentIndex.PATH], parts[ComponentIndex.QUERY_DATA], parts[ComponentIndex.FRAGMENT]); - } - function canonicalizeUrl(url) { - var parts = split(url); - return joinAndCanonicalizePath(parts); - } - function resolveUrl(base, url) { - var parts = split(url); - var baseParts = split(base); - if (parts[ComponentIndex.SCHEME]) { - return joinAndCanonicalizePath(parts); - } else { - parts[ComponentIndex.SCHEME] = baseParts[ComponentIndex.SCHEME]; - } - for (var i = ComponentIndex.SCHEME; i <= ComponentIndex.PORT; i++) { - if (!parts[i]) { - parts[i] = baseParts[i]; - } - } - if (parts[ComponentIndex.PATH][0] == '/') { - return joinAndCanonicalizePath(parts); - } - var path = baseParts[ComponentIndex.PATH]; - var index = path.lastIndexOf('/'); - path = path.slice(0, index + 1) + parts[ComponentIndex.PATH]; - parts[ComponentIndex.PATH] = path; - return joinAndCanonicalizePath(parts); - } - function isAbsolute(name) { - if (!name) - return false; - if (name[0] === '/') - return true; - var parts = split(name); - if (parts[ComponentIndex.SCHEME]) - return true; - return false; - } - $traceurRuntime.canonicalizeUrl = canonicalizeUrl; - $traceurRuntime.isAbsolute = isAbsolute; - $traceurRuntime.removeDotSegments = removeDotSegments; - $traceurRuntime.resolveUrl = resolveUrl; -})(); -(function(global) { - 'use strict'; - var $__2 = $traceurRuntime, - canonicalizeUrl = $__2.canonicalizeUrl, - resolveUrl = $__2.resolveUrl, - isAbsolute = $__2.isAbsolute; - var moduleInstantiators = Object.create(null); - var baseURL; - if (global.location && global.location.href) - baseURL = resolveUrl(global.location.href, './'); - else - baseURL = ''; - var UncoatedModuleEntry = function UncoatedModuleEntry(url, uncoatedModule) { - this.url = url; - this.value_ = uncoatedModule; - }; - ($traceurRuntime.createClass)(UncoatedModuleEntry, {}, {}); - var ModuleEvaluationError = function ModuleEvaluationError(erroneousModuleName, cause) { - this.message = this.constructor.name + (cause ? ': \'' + cause + '\'' : '') + ' in ' + erroneousModuleName; - }; - ($traceurRuntime.createClass)(ModuleEvaluationError, {loadedBy: function(moduleName) { - this.message += '\n loaded by ' + moduleName; - }}, {}, Error); - var UncoatedModuleInstantiator = function UncoatedModuleInstantiator(url, func) { - $traceurRuntime.superCall(this, $UncoatedModuleInstantiator.prototype, "constructor", [url, null]); - this.func = func; - }; - var $UncoatedModuleInstantiator = UncoatedModuleInstantiator; - ($traceurRuntime.createClass)(UncoatedModuleInstantiator, {getUncoatedModule: function() { - if (this.value_) - return this.value_; - try { - return this.value_ = this.func.call(global); - } catch (ex) { - if (ex instanceof ModuleEvaluationError) { - ex.loadedBy(this.url); - throw ex; - } - throw new ModuleEvaluationError(this.url, ex); - } - }}, {}, UncoatedModuleEntry); - function getUncoatedModuleInstantiator(name) { - if (!name) - return; - var url = ModuleStore.normalize(name); - return moduleInstantiators[url]; - } - ; - var moduleInstances = Object.create(null); - var liveModuleSentinel = {}; - function Module(uncoatedModule) { - var isLive = arguments[1]; - var coatedModule = Object.create(null); - Object.getOwnPropertyNames(uncoatedModule).forEach((function(name) { - var getter, - value; - if (isLive === liveModuleSentinel) { - var descr = Object.getOwnPropertyDescriptor(uncoatedModule, name); - if (descr.get) - getter = descr.get; - } - if (!getter) { - value = uncoatedModule[name]; - getter = function() { - return value; - }; - } - Object.defineProperty(coatedModule, name, { - get: getter, - enumerable: true - }); - })); - Object.preventExtensions(coatedModule); - return coatedModule; - } - var ModuleStore = { - normalize: function(name, refererName, refererAddress) { - if (typeof name !== "string") - throw new TypeError("module name must be a string, not " + typeof name); - if (isAbsolute(name)) - return canonicalizeUrl(name); - if (/[^\.]\/\.\.\//.test(name)) { - throw new Error('module name embeds /../: ' + name); - } - if (name[0] === '.' && refererName) - return resolveUrl(refererName, name); - return canonicalizeUrl(name); - }, - get: function(normalizedName) { - var m = getUncoatedModuleInstantiator(normalizedName); - if (!m) - return undefined; - var moduleInstance = moduleInstances[m.url]; - if (moduleInstance) - return moduleInstance; - moduleInstance = Module(m.getUncoatedModule(), liveModuleSentinel); - return moduleInstances[m.url] = moduleInstance; - }, - set: function(normalizedName, module) { - normalizedName = String(normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, (function() { - return module; - })); - moduleInstances[normalizedName] = module; - }, - get baseURL() { - return baseURL; - }, - set baseURL(v) { - baseURL = String(v); - }, - registerModule: function(name, func) { - var normalizedName = ModuleStore.normalize(name); - if (moduleInstantiators[normalizedName]) - throw new Error('duplicate module named ' + normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, func); - }, - bundleStore: Object.create(null), - register: function(name, deps, func) { - if (!deps || !deps.length && !func.length) { - this.registerModule(name, func); - } else { - this.bundleStore[name] = { - deps: deps, - execute: function() { - var $__0 = arguments; - var depMap = {}; - deps.forEach((function(dep, index) { - return depMap[dep] = $__0[index]; - })); - var registryEntry = func.call(this, depMap); - registryEntry.execute.call(this); - return registryEntry.exports; - } - }; - } - }, - getAnonymousModule: function(func) { - return new Module(func.call(global), liveModuleSentinel); - }, - getForTesting: function(name) { - var $__0 = this; - if (!this.testingPrefix_) { - Object.keys(moduleInstances).some((function(key) { - var m = /(traceur@[^\/]*\/)/.exec(key); - if (m) { - $__0.testingPrefix_ = m[1]; - return true; - } - })); - } - return this.get(this.testingPrefix_ + name); - } - }; - ModuleStore.set('@traceur/src/runtime/ModuleStore', new Module({ModuleStore: ModuleStore})); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - }; - $traceurRuntime.ModuleStore = ModuleStore; - global.System = { - register: ModuleStore.register.bind(ModuleStore), - get: ModuleStore.get, - set: ModuleStore.set, - normalize: ModuleStore.normalize - }; - $traceurRuntime.getModuleImpl = function(name) { - var instantiator = getUncoatedModuleInstantiator(name); - return instantiator && instantiator.getUncoatedModule(); - }; -})(typeof global !== 'undefined' ? global : this); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/utils", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/utils"; - var $ceil = Math.ceil; - var $floor = Math.floor; - var $isFinite = isFinite; - var $isNaN = isNaN; - var $pow = Math.pow; - var $min = Math.min; - var toObject = $traceurRuntime.toObject; - function toUint32(x) { - return x >>> 0; - } - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function isCallable(x) { - return typeof x === 'function'; - } - function isNumber(x) { - return typeof x === 'number'; - } - function toInteger(x) { - x = +x; - if ($isNaN(x)) - return 0; - if (x === 0 || !$isFinite(x)) - return x; - return x > 0 ? $floor(x) : $ceil(x); - } - var MAX_SAFE_LENGTH = $pow(2, 53) - 1; - function toLength(x) { - var len = toInteger(x); - return len < 0 ? 0 : $min(len, MAX_SAFE_LENGTH); - } - function checkIterable(x) { - return !isObject(x) ? undefined : x[Symbol.iterator]; - } - function isConstructor(x) { - return isCallable(x); - } - function createIteratorResultObject(value, done) { - return { - value: value, - done: done - }; - } - function maybeDefine(object, name, descr) { - if (!(name in object)) { - Object.defineProperty(object, name, descr); - } - } - function maybeDefineMethod(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: true, - enumerable: false, - writable: true - }); - } - function maybeDefineConst(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: false, - enumerable: false, - writable: false - }); - } - function maybeAddFunctions(object, functions) { - for (var i = 0; i < functions.length; i += 2) { - var name = functions[i]; - var value = functions[i + 1]; - maybeDefineMethod(object, name, value); - } - } - function maybeAddConsts(object, consts) { - for (var i = 0; i < consts.length; i += 2) { - var name = consts[i]; - var value = consts[i + 1]; - maybeDefineConst(object, name, value); - } - } - function maybeAddIterator(object, func, Symbol) { - if (!Symbol || !Symbol.iterator || object[Symbol.iterator]) - return; - if (object['@@iterator']) - func = object['@@iterator']; - Object.defineProperty(object, Symbol.iterator, { - value: func, - configurable: true, - enumerable: false, - writable: true - }); - } - var polyfills = []; - function registerPolyfill(func) { - polyfills.push(func); - } - function polyfillAll(global) { - polyfills.forEach((function(f) { - return f(global); - })); - } - return { - get toObject() { - return toObject; - }, - get toUint32() { - return toUint32; - }, - get isObject() { - return isObject; - }, - get isCallable() { - return isCallable; - }, - get isNumber() { - return isNumber; - }, - get toInteger() { - return toInteger; - }, - get toLength() { - return toLength; - }, - get checkIterable() { - return checkIterable; - }, - get isConstructor() { - return isConstructor; - }, - get createIteratorResultObject() { - return createIteratorResultObject; - }, - get maybeDefine() { - return maybeDefine; - }, - get maybeDefineMethod() { - return maybeDefineMethod; - }, - get maybeDefineConst() { - return maybeDefineConst; - }, - get maybeAddFunctions() { - return maybeAddFunctions; - }, - get maybeAddConsts() { - return maybeAddConsts; - }, - get maybeAddIterator() { - return maybeAddIterator; - }, - get registerPolyfill() { - return registerPolyfill; - }, - get polyfillAll() { - return polyfillAll; - } - }; -}); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Map", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Map"; - var $__3 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - isObject = $__3.isObject, - maybeAddIterator = $__3.maybeAddIterator, - registerPolyfill = $__3.registerPolyfill; - var getOwnHashObject = $traceurRuntime.getOwnHashObject; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - var deletedSentinel = {}; - function lookupIndex(map, key) { - if (isObject(key)) { - var hashObject = getOwnHashObject(key); - return hashObject && map.objectIndex_[hashObject.hash]; - } - if (typeof key === 'string') - return map.stringIndex_[key]; - return map.primitiveIndex_[key]; - } - function initMap(map) { - map.entries_ = []; - map.objectIndex_ = Object.create(null); - map.stringIndex_ = Object.create(null); - map.primitiveIndex_ = Object.create(null); - map.deletedCount_ = 0; - } - var Map = function Map() { - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Map called on incompatible type'); - if ($hasOwnProperty.call(this, 'entries_')) { - throw new TypeError('Map can not be reentrantly initialised'); - } - initMap(this); - if (iterable !== null && iterable !== undefined) { - for (var $__5 = iterable[Symbol.iterator](), - $__6; !($__6 = $__5.next()).done; ) { - var $__7 = $__6.value, - key = $__7[0], - value = $__7[1]; - { - this.set(key, value); - } - } - } - }; - ($traceurRuntime.createClass)(Map, { - get size() { - return this.entries_.length / 2 - this.deletedCount_; - }, - get: function(key) { - var index = lookupIndex(this, key); - if (index !== undefined) - return this.entries_[index + 1]; - }, - set: function(key, value) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index = lookupIndex(this, key); - if (index !== undefined) { - this.entries_[index + 1] = value; - } else { - index = this.entries_.length; - this.entries_[index] = key; - this.entries_[index + 1] = value; - if (objectMode) { - var hashObject = getOwnHashObject(key); - var hash = hashObject.hash; - this.objectIndex_[hash] = index; - } else if (stringMode) { - this.stringIndex_[key] = index; - } else { - this.primitiveIndex_[key] = index; - } - } - return this; - }, - has: function(key) { - return lookupIndex(this, key) !== undefined; - }, - delete: function(key) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index; - var hash; - if (objectMode) { - var hashObject = getOwnHashObject(key); - if (hashObject) { - index = this.objectIndex_[hash = hashObject.hash]; - delete this.objectIndex_[hash]; - } - } else if (stringMode) { - index = this.stringIndex_[key]; - delete this.stringIndex_[key]; - } else { - index = this.primitiveIndex_[key]; - delete this.primitiveIndex_[key]; - } - if (index !== undefined) { - this.entries_[index] = deletedSentinel; - this.entries_[index + 1] = undefined; - this.deletedCount_++; - return true; - } - return false; - }, - clear: function() { - initMap(this); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - for (var i = 0, - len = this.entries_.length; i < len; i += 2) { - var key = this.entries_[i]; - var value = this.entries_[i + 1]; - if (key === deletedSentinel) - continue; - callbackFn.call(thisArg, value, key, this); - } - }, - entries: $traceurRuntime.initGeneratorFunction(function $__8() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return [key, value]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__8, this); - }), - keys: $traceurRuntime.initGeneratorFunction(function $__9() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return key; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__9, this); - }), - values: $traceurRuntime.initGeneratorFunction(function $__10() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return value; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__10, this); - }) - }, {}); - Object.defineProperty(Map.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Map.prototype.entries - }); - function polyfillMap(global) { - var $__7 = global, - Object = $__7.Object, - Symbol = $__7.Symbol; - if (!global.Map) - global.Map = Map; - var mapPrototype = global.Map.prototype; - if (mapPrototype.entries) { - maybeAddIterator(mapPrototype, mapPrototype.entries, Symbol); - maybeAddIterator(Object.getPrototypeOf(new global.Map().entries()), function() { - return this; - }, Symbol); - } - } - registerPolyfill(polyfillMap); - return { - get Map() { - return Map; - }, - get polyfillMap() { - return polyfillMap; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Map" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Set", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Set"; - var $__11 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - isObject = $__11.isObject, - maybeAddIterator = $__11.maybeAddIterator, - registerPolyfill = $__11.registerPolyfill; - var Map = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Map").Map; - var getOwnHashObject = $traceurRuntime.getOwnHashObject; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - function initSet(set) { - set.map_ = new Map(); - } - var Set = function Set() { - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Set called on incompatible type'); - if ($hasOwnProperty.call(this, 'map_')) { - throw new TypeError('Set can not be reentrantly initialised'); - } - initSet(this); - if (iterable !== null && iterable !== undefined) { - for (var $__15 = iterable[Symbol.iterator](), - $__16; !($__16 = $__15.next()).done; ) { - var item = $__16.value; - { - this.add(item); - } - } - } - }; - ($traceurRuntime.createClass)(Set, { - get size() { - return this.map_.size; - }, - has: function(key) { - return this.map_.has(key); - }, - add: function(key) { - this.map_.set(key, key); - return this; - }, - delete: function(key) { - return this.map_.delete(key); - }, - clear: function() { - return this.map_.clear(); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - var $__13 = this; - return this.map_.forEach((function(value, key) { - callbackFn.call(thisArg, key, key, $__13); - })); - }, - values: $traceurRuntime.initGeneratorFunction(function $__18() { - var $__19, - $__20; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__19 = this.map_.keys()[Symbol.iterator](); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__20 = $__19[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__20.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__20.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__20.value; - default: - return $ctx.end(); - } - }, $__18, this); - }), - entries: $traceurRuntime.initGeneratorFunction(function $__21() { - var $__22, - $__23; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__22 = this.map_.entries()[Symbol.iterator](); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__23 = $__22[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__23.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__23.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__23.value; - default: - return $ctx.end(); - } - }, $__21, this); - }) - }, {}); - Object.defineProperty(Set.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Set.prototype.values - }); - Object.defineProperty(Set.prototype, 'keys', { - configurable: true, - writable: true, - value: Set.prototype.values - }); - function polyfillSet(global) { - var $__17 = global, - Object = $__17.Object, - Symbol = $__17.Symbol; - if (!global.Set) - global.Set = Set; - var setPrototype = global.Set.prototype; - if (setPrototype.values) { - maybeAddIterator(setPrototype, setPrototype.values, Symbol); - maybeAddIterator(Object.getPrototypeOf(new global.Set().values()), function() { - return this; - }, Symbol); - } - } - registerPolyfill(polyfillSet); - return { - get Set() { - return Set; - }, - get polyfillSet() { - return polyfillSet; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Set" + ''); -System.register("traceur-runtime@0.0.60/node_modules/rsvp/lib/rsvp/asap", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/node_modules/rsvp/lib/rsvp/asap"; - var len = 0; - function asap(callback, arg) { - queue[len] = callback; - queue[len + 1] = arg; - len += 2; - if (len === 2) { - scheduleFlush(); - } - } - var $__default = asap; - var browserGlobal = (typeof window !== 'undefined') ? window : {}; - var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; - var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; - function useNextTick() { - return function() { - process.nextTick(flush); - }; - } - function useMutationObserver() { - var iterations = 0; - var observer = new BrowserMutationObserver(flush); - var node = document.createTextNode(''); - observer.observe(node, {characterData: true}); - return function() { - node.data = (iterations = ++iterations % 2); - }; - } - function useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = flush; - return function() { - channel.port2.postMessage(0); - }; - } - function useSetTimeout() { - return function() { - setTimeout(flush, 1); - }; - } - var queue = new Array(1000); - function flush() { - for (var i = 0; i < len; i += 2) { - var callback = queue[i]; - var arg = queue[i + 1]; - callback(arg); - queue[i] = undefined; - queue[i + 1] = undefined; - } - len = 0; - } - var scheduleFlush; - if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { - scheduleFlush = useNextTick(); - } else if (BrowserMutationObserver) { - scheduleFlush = useMutationObserver(); - } else if (isWorker) { - scheduleFlush = useMessageChannel(); - } else { - scheduleFlush = useSetTimeout(); - } - return {get default() { - return $__default; - }}; -}); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Promise", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Promise"; - var async = System.get("traceur-runtime@0.0.60/node_modules/rsvp/lib/rsvp/asap").default; - var registerPolyfill = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils").registerPolyfill; - var promiseRaw = {}; - function isPromise(x) { - return x && typeof x === 'object' && x.status_ !== undefined; - } - function idResolveHandler(x) { - return x; - } - function idRejectHandler(x) { - throw x; - } - function chain(promise) { - var onResolve = arguments[1] !== (void 0) ? arguments[1] : idResolveHandler; - var onReject = arguments[2] !== (void 0) ? arguments[2] : idRejectHandler; - var deferred = getDeferred(promise.constructor); - switch (promise.status_) { - case undefined: - throw TypeError; - case 0: - promise.onResolve_.push(onResolve, deferred); - promise.onReject_.push(onReject, deferred); - break; - case +1: - promiseEnqueue(promise.value_, [onResolve, deferred]); - break; - case -1: - promiseEnqueue(promise.value_, [onReject, deferred]); - break; - } - return deferred.promise; - } - function getDeferred(C) { - if (this === $Promise) { - var promise = promiseInit(new $Promise(promiseRaw)); - return { - promise: promise, - resolve: (function(x) { - promiseResolve(promise, x); - }), - reject: (function(r) { - promiseReject(promise, r); - }) - }; - } else { - var result = {}; - result.promise = new C((function(resolve, reject) { - result.resolve = resolve; - result.reject = reject; - })); - return result; - } - } - function promiseSet(promise, status, value, onResolve, onReject) { - promise.status_ = status; - promise.value_ = value; - promise.onResolve_ = onResolve; - promise.onReject_ = onReject; - return promise; - } - function promiseInit(promise) { - return promiseSet(promise, 0, undefined, [], []); - } - var Promise = function Promise(resolver) { - if (resolver === promiseRaw) - return; - if (typeof resolver !== 'function') - throw new TypeError; - var promise = promiseInit(this); - try { - resolver((function(x) { - promiseResolve(promise, x); - }), (function(r) { - promiseReject(promise, r); - })); - } catch (e) { - promiseReject(promise, e); - } - }; - ($traceurRuntime.createClass)(Promise, { - catch: function(onReject) { - return this.then(undefined, onReject); - }, - then: function(onResolve, onReject) { - if (typeof onResolve !== 'function') - onResolve = idResolveHandler; - if (typeof onReject !== 'function') - onReject = idRejectHandler; - var that = this; - var constructor = this.constructor; - return chain(this, function(x) { - x = promiseCoerce(constructor, x); - return x === that ? onReject(new TypeError) : isPromise(x) ? x.then(onResolve, onReject) : onResolve(x); - }, onReject); - } - }, { - resolve: function(x) { - if (this === $Promise) { - if (isPromise(x)) { - return x; - } - return promiseSet(new $Promise(promiseRaw), +1, x); - } else { - return new this(function(resolve, reject) { - resolve(x); - }); - } - }, - reject: function(r) { - if (this === $Promise) { - return promiseSet(new $Promise(promiseRaw), -1, r); - } else { - return new this((function(resolve, reject) { - reject(r); - })); - } - }, - all: function(values) { - var deferred = getDeferred(this); - var resolutions = []; - try { - var count = values.length; - if (count === 0) { - deferred.resolve(resolutions); - } else { - for (var i = 0; i < values.length; i++) { - this.resolve(values[i]).then(function(i, x) { - resolutions[i] = x; - if (--count === 0) - deferred.resolve(resolutions); - }.bind(undefined, i), (function(r) { - deferred.reject(r); - })); - } - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - }, - race: function(values) { - var deferred = getDeferred(this); - try { - for (var i = 0; i < values.length; i++) { - this.resolve(values[i]).then((function(x) { - deferred.resolve(x); - }), (function(r) { - deferred.reject(r); - })); - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - } - }); - var $Promise = Promise; - var $PromiseReject = $Promise.reject; - function promiseResolve(promise, x) { - promiseDone(promise, +1, x, promise.onResolve_); - } - function promiseReject(promise, r) { - promiseDone(promise, -1, r, promise.onReject_); - } - function promiseDone(promise, status, value, reactions) { - if (promise.status_ !== 0) - return; - promiseEnqueue(value, reactions); - promiseSet(promise, status, value); - } - function promiseEnqueue(value, tasks) { - async((function() { - for (var i = 0; i < tasks.length; i += 2) { - promiseHandle(value, tasks[i], tasks[i + 1]); - } - })); - } - function promiseHandle(value, handler, deferred) { - try { - var result = handler(value); - if (result === deferred.promise) - throw new TypeError; - else if (isPromise(result)) - chain(result, deferred.resolve, deferred.reject); - else - deferred.resolve(result); - } catch (e) { - try { - deferred.reject(e); - } catch (e) {} - } - } - var thenableSymbol = '@@thenable'; - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function promiseCoerce(constructor, x) { - if (!isPromise(x) && isObject(x)) { - var then; - try { - then = x.then; - } catch (r) { - var promise = $PromiseReject.call(constructor, r); - x[thenableSymbol] = promise; - return promise; - } - if (typeof then === 'function') { - var p = x[thenableSymbol]; - if (p) { - return p; - } else { - var deferred = getDeferred(constructor); - x[thenableSymbol] = deferred.promise; - try { - then.call(x, deferred.resolve, deferred.reject); - } catch (r) { - deferred.reject(r); - } - return deferred.promise; - } - } - } - return x; - } - function polyfillPromise(global) { - if (!global.Promise) - global.Promise = Promise; - } - registerPolyfill(polyfillPromise); - return { - get Promise() { - return Promise; - }, - get polyfillPromise() { - return polyfillPromise; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Promise" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/StringIterator", [], function() { - "use strict"; - var $__29; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/StringIterator"; - var $__27 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - createIteratorResultObject = $__27.createIteratorResultObject, - isObject = $__27.isObject; - var $__30 = $traceurRuntime, - hasOwnProperty = $__30.hasOwnProperty, - toProperty = $__30.toProperty; - var iteratedString = Symbol('iteratedString'); - var stringIteratorNextIndex = Symbol('stringIteratorNextIndex'); - var StringIterator = function StringIterator() {}; - ($traceurRuntime.createClass)(StringIterator, ($__29 = {}, Object.defineProperty($__29, "next", { - value: function() { - var o = this; - if (!isObject(o) || !hasOwnProperty(o, iteratedString)) { - throw new TypeError('this must be a StringIterator object'); - } - var s = o[toProperty(iteratedString)]; - if (s === undefined) { - return createIteratorResultObject(undefined, true); - } - var position = o[toProperty(stringIteratorNextIndex)]; - var len = s.length; - if (position >= len) { - o[toProperty(iteratedString)] = undefined; - return createIteratorResultObject(undefined, true); - } - var first = s.charCodeAt(position); - var resultString; - if (first < 0xD800 || first > 0xDBFF || position + 1 === len) { - resultString = String.fromCharCode(first); - } else { - var second = s.charCodeAt(position + 1); - if (second < 0xDC00 || second > 0xDFFF) { - resultString = String.fromCharCode(first); - } else { - resultString = String.fromCharCode(first) + String.fromCharCode(second); - } - } - o[toProperty(stringIteratorNextIndex)] = position + resultString.length; - return createIteratorResultObject(resultString, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__29, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__29), {}); - function createStringIterator(string) { - var s = String(string); - var iterator = Object.create(StringIterator.prototype); - iterator[toProperty(iteratedString)] = s; - iterator[toProperty(stringIteratorNextIndex)] = 0; - return iterator; - } - return {get createStringIterator() { - return createStringIterator; - }}; -}); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/String", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/String"; - var createStringIterator = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/StringIterator").createStringIterator; - var $__32 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - maybeAddFunctions = $__32.maybeAddFunctions, - maybeAddIterator = $__32.maybeAddIterator, - registerPolyfill = $__32.registerPolyfill; - var $toString = Object.prototype.toString; - var $indexOf = String.prototype.indexOf; - var $lastIndexOf = String.prototype.lastIndexOf; - function startsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - return $indexOf.call(string, searchString, pos) == start; - } - function endsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var pos = stringLength; - if (arguments.length > 1) { - var position = arguments[1]; - if (position !== undefined) { - pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - } - } - var end = Math.min(Math.max(pos, 0), stringLength); - var start = end - searchLength; - if (start < 0) { - return false; - } - return $lastIndexOf.call(string, searchString, start) == start; - } - function contains(search) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - return $indexOf.call(string, searchString, pos) != -1; - } - function repeat(count) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var n = count ? Number(count) : 0; - if (isNaN(n)) { - n = 0; - } - if (n < 0 || n == Infinity) { - throw RangeError(); - } - if (n == 0) { - return ''; - } - var result = ''; - while (n--) { - result += string; - } - return result; - } - function codePointAt(position) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var size = string.length; - var index = position ? Number(position) : 0; - if (isNaN(index)) { - index = 0; - } - if (index < 0 || index >= size) { - return undefined; - } - var first = string.charCodeAt(index); - var second; - if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; - } - function raw(callsite) { - var raw = callsite.raw; - var len = raw.length >>> 0; - if (len === 0) - return ''; - var s = ''; - var i = 0; - while (true) { - s += raw[i]; - if (i + 1 === len) - return s; - s += arguments[++i]; - } - } - function fromCodePoint() { - var codeUnits = []; - var floor = Math.floor; - var highSurrogate; - var lowSurrogate; - var index = -1; - var length = arguments.length; - if (!length) { - return ''; - } - while (++index < length) { - var codePoint = Number(arguments[index]); - if (!isFinite(codePoint) || codePoint < 0 || codePoint > 0x10FFFF || floor(codePoint) != codePoint) { - throw RangeError('Invalid code point: ' + codePoint); - } - if (codePoint <= 0xFFFF) { - codeUnits.push(codePoint); - } else { - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xD800; - lowSurrogate = (codePoint % 0x400) + 0xDC00; - codeUnits.push(highSurrogate, lowSurrogate); - } - } - return String.fromCharCode.apply(null, codeUnits); - } - function stringPrototypeIterator() { - var o = $traceurRuntime.checkObjectCoercible(this); - var s = String(o); - return createStringIterator(s); - } - function polyfillString(global) { - var String = global.String; - maybeAddFunctions(String.prototype, ['codePointAt', codePointAt, 'contains', contains, 'endsWith', endsWith, 'startsWith', startsWith, 'repeat', repeat]); - maybeAddFunctions(String, ['fromCodePoint', fromCodePoint, 'raw', raw]); - maybeAddIterator(String.prototype, stringPrototypeIterator, Symbol); - } - registerPolyfill(polyfillString); - return { - get startsWith() { - return startsWith; - }, - get endsWith() { - return endsWith; - }, - get contains() { - return contains; - }, - get repeat() { - return repeat; - }, - get codePointAt() { - return codePointAt; - }, - get raw() { - return raw; - }, - get fromCodePoint() { - return fromCodePoint; - }, - get stringPrototypeIterator() { - return stringPrototypeIterator; - }, - get polyfillString() { - return polyfillString; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/String" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/ArrayIterator", [], function() { - "use strict"; - var $__36; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/ArrayIterator"; - var $__34 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - toObject = $__34.toObject, - toUint32 = $__34.toUint32, - createIteratorResultObject = $__34.createIteratorResultObject; - var ARRAY_ITERATOR_KIND_KEYS = 1; - var ARRAY_ITERATOR_KIND_VALUES = 2; - var ARRAY_ITERATOR_KIND_ENTRIES = 3; - var ArrayIterator = function ArrayIterator() {}; - ($traceurRuntime.createClass)(ArrayIterator, ($__36 = {}, Object.defineProperty($__36, "next", { - value: function() { - var iterator = toObject(this); - var array = iterator.iteratorObject_; - if (!array) { - throw new TypeError('Object is not an ArrayIterator'); - } - var index = iterator.arrayIteratorNextIndex_; - var itemKind = iterator.arrayIterationKind_; - var length = toUint32(array.length); - if (index >= length) { - iterator.arrayIteratorNextIndex_ = Infinity; - return createIteratorResultObject(undefined, true); - } - iterator.arrayIteratorNextIndex_ = index + 1; - if (itemKind == ARRAY_ITERATOR_KIND_VALUES) - return createIteratorResultObject(array[index], false); - if (itemKind == ARRAY_ITERATOR_KIND_ENTRIES) - return createIteratorResultObject([index, array[index]], false); - return createIteratorResultObject(index, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__36, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__36), {}); - function createArrayIterator(array, kind) { - var object = toObject(array); - var iterator = new ArrayIterator; - iterator.iteratorObject_ = object; - iterator.arrayIteratorNextIndex_ = 0; - iterator.arrayIterationKind_ = kind; - return iterator; - } - function entries() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_ENTRIES); - } - function keys() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_KEYS); - } - function values() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_VALUES); - } - return { - get entries() { - return entries; - }, - get keys() { - return keys; - }, - get values() { - return values; - } - }; -}); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Array", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Array"; - var $__37 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/ArrayIterator"), - entries = $__37.entries, - keys = $__37.keys, - values = $__37.values; - var $__38 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - checkIterable = $__38.checkIterable, - isCallable = $__38.isCallable, - isConstructor = $__38.isConstructor, - maybeAddFunctions = $__38.maybeAddFunctions, - maybeAddIterator = $__38.maybeAddIterator, - registerPolyfill = $__38.registerPolyfill, - toInteger = $__38.toInteger, - toLength = $__38.toLength, - toObject = $__38.toObject; - function from(arrLike) { - var mapFn = arguments[1]; - var thisArg = arguments[2]; - var C = this; - var items = toObject(arrLike); - var mapping = mapFn !== undefined; - var k = 0; - var arr, - len; - if (mapping && !isCallable(mapFn)) { - throw TypeError(); - } - if (checkIterable(items)) { - arr = isConstructor(C) ? new C() : []; - for (var $__39 = items[Symbol.iterator](), - $__40; !($__40 = $__39.next()).done; ) { - var item = $__40.value; - { - if (mapping) { - arr[k] = mapFn.call(thisArg, item, k); - } else { - arr[k] = item; - } - k++; - } - } - arr.length = k; - return arr; - } - len = toLength(items.length); - arr = isConstructor(C) ? new C(len) : new Array(len); - for (; k < len; k++) { - if (mapping) { - arr[k] = typeof thisArg === 'undefined' ? mapFn(items[k], k) : mapFn.call(thisArg, items[k], k); - } else { - arr[k] = items[k]; - } - } - arr.length = len; - return arr; - } - function of() { - for (var items = [], - $__41 = 0; $__41 < arguments.length; $__41++) - items[$__41] = arguments[$__41]; - var C = this; - var len = items.length; - var arr = isConstructor(C) ? new C(len) : new Array(len); - for (var k = 0; k < len; k++) { - arr[k] = items[k]; - } - arr.length = len; - return arr; - } - function fill(value) { - var start = arguments[1] !== (void 0) ? arguments[1] : 0; - var end = arguments[2]; - var object = toObject(this); - var len = toLength(object.length); - var fillStart = toInteger(start); - var fillEnd = end !== undefined ? toInteger(end) : len; - fillStart = fillStart < 0 ? Math.max(len + fillStart, 0) : Math.min(fillStart, len); - fillEnd = fillEnd < 0 ? Math.max(len + fillEnd, 0) : Math.min(fillEnd, len); - while (fillStart < fillEnd) { - object[fillStart] = value; - fillStart++; - } - return object; - } - function find(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg); - } - function findIndex(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg, true); - } - function findHelper(self, predicate) { - var thisArg = arguments[2]; - var returnIndex = arguments[3] !== (void 0) ? arguments[3] : false; - var object = toObject(self); - var len = toLength(object.length); - if (!isCallable(predicate)) { - throw TypeError(); - } - for (var i = 0; i < len; i++) { - if (i in object) { - var value = object[i]; - if (predicate.call(thisArg, value, i, object)) { - return returnIndex ? i : value; - } - } - } - return returnIndex ? -1 : undefined; - } - function polyfillArray(global) { - var $__42 = global, - Array = $__42.Array, - Object = $__42.Object, - Symbol = $__42.Symbol; - maybeAddFunctions(Array.prototype, ['entries', entries, 'keys', keys, 'values', values, 'fill', fill, 'find', find, 'findIndex', findIndex]); - maybeAddFunctions(Array, ['from', from, 'of', of]); - maybeAddIterator(Array.prototype, values, Symbol); - maybeAddIterator(Object.getPrototypeOf([].values()), function() { - return this; - }, Symbol); - } - registerPolyfill(polyfillArray); - return { - get from() { - return from; - }, - get of() { - return of; - }, - get fill() { - return fill; - }, - get find() { - return find; - }, - get findIndex() { - return findIndex; - }, - get polyfillArray() { - return polyfillArray; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Array" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Object", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Object"; - var $__43 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - maybeAddFunctions = $__43.maybeAddFunctions, - registerPolyfill = $__43.registerPolyfill; - var $__44 = $traceurRuntime, - defineProperty = $__44.defineProperty, - getOwnPropertyDescriptor = $__44.getOwnPropertyDescriptor, - getOwnPropertyNames = $__44.getOwnPropertyNames, - keys = $__44.keys, - privateNames = $__44.privateNames; - function is(left, right) { - if (left === right) - return left !== 0 || 1 / left === 1 / right; - return left !== left && right !== right; - } - function assign(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - var props = keys(source); - var p, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (privateNames[name]) - continue; - target[name] = source[name]; - } - } - return target; - } - function mixin(target, source) { - var props = getOwnPropertyNames(source); - var p, - descriptor, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (privateNames[name]) - continue; - descriptor = getOwnPropertyDescriptor(source, props[p]); - defineProperty(target, props[p], descriptor); - } - return target; - } - function polyfillObject(global) { - var Object = global.Object; - maybeAddFunctions(Object, ['assign', assign, 'is', is, 'mixin', mixin]); - } - registerPolyfill(polyfillObject); - return { - get is() { - return is; - }, - get assign() { - return assign; - }, - get mixin() { - return mixin; - }, - get polyfillObject() { - return polyfillObject; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Object" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/Number", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/Number"; - var $__46 = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils"), - isNumber = $__46.isNumber, - maybeAddConsts = $__46.maybeAddConsts, - maybeAddFunctions = $__46.maybeAddFunctions, - registerPolyfill = $__46.registerPolyfill, - toInteger = $__46.toInteger; - var $abs = Math.abs; - var $isFinite = isFinite; - var $isNaN = isNaN; - var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; - var MIN_SAFE_INTEGER = -Math.pow(2, 53) + 1; - var EPSILON = Math.pow(2, -52); - function NumberIsFinite(number) { - return isNumber(number) && $isFinite(number); - } - ; - function isInteger(number) { - return NumberIsFinite(number) && toInteger(number) === number; - } - function NumberIsNaN(number) { - return isNumber(number) && $isNaN(number); - } - ; - function isSafeInteger(number) { - if (NumberIsFinite(number)) { - var integral = toInteger(number); - if (integral === number) - return $abs(integral) <= MAX_SAFE_INTEGER; - } - return false; - } - function polyfillNumber(global) { - var Number = global.Number; - maybeAddConsts(Number, ['MAX_SAFE_INTEGER', MAX_SAFE_INTEGER, 'MIN_SAFE_INTEGER', MIN_SAFE_INTEGER, 'EPSILON', EPSILON]); - maybeAddFunctions(Number, ['isFinite', NumberIsFinite, 'isInteger', isInteger, 'isNaN', NumberIsNaN, 'isSafeInteger', isSafeInteger]); - } - registerPolyfill(polyfillNumber); - return { - get MAX_SAFE_INTEGER() { - return MAX_SAFE_INTEGER; - }, - get MIN_SAFE_INTEGER() { - return MIN_SAFE_INTEGER; - }, - get EPSILON() { - return EPSILON; - }, - get isFinite() { - return NumberIsFinite; - }, - get isInteger() { - return isInteger; - }, - get isNaN() { - return NumberIsNaN; - }, - get isSafeInteger() { - return isSafeInteger; - }, - get polyfillNumber() { - return polyfillNumber; - } - }; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/Number" + ''); -System.register("traceur-runtime@0.0.60/src/runtime/polyfills/polyfills", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.60/src/runtime/polyfills/polyfills"; - var polyfillAll = System.get("traceur-runtime@0.0.60/src/runtime/polyfills/utils").polyfillAll; - polyfillAll(this); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - polyfillAll(global); - }; - return {}; -}); -System.get("traceur-runtime@0.0.60/src/runtime/polyfills/polyfills" + ''); diff --git a/js/vendor/traceur-runtime/traceur-runtime.min.js b/js/vendor/traceur-runtime/traceur-runtime.min.js deleted file mode 100644 index ec63a545c..000000000 --- a/js/vendor/traceur-runtime/traceur-runtime.min.js +++ /dev/null @@ -1,2412 +0,0 @@ -(function(global) { - 'use strict'; - if (global.$traceurRuntime) { - return; - } - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $Object.defineProperties; - var $defineProperty = $Object.defineProperty; - var $freeze = $Object.freeze; - var $getOwnPropertyDescriptor = $Object.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $Object.getOwnPropertyNames; - var $keys = $Object.keys; - var $hasOwnProperty = $Object.prototype.hasOwnProperty; - var $toString = $Object.prototype.toString; - var $preventExtensions = Object.preventExtensions; - var $seal = Object.seal; - var $isExtensible = Object.isExtensible; - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var types = { - void: function voidType() {}, - any: function any() {}, - string: function string() {}, - number: function number() {}, - boolean: function boolean() {} - }; - var method = nonEnum; - var counter = 0; - function newUniqueString() { - return '__$' + Math.floor(Math.random() * 1e9) + '$' + ++counter + '$__'; - } - var symbolInternalProperty = newUniqueString(); - var symbolDescriptionProperty = newUniqueString(); - var symbolDataProperty = newUniqueString(); - var symbolValues = $create(null); - var privateNames = $create(null); - function createPrivateName() { - var s = newUniqueString(); - privateNames[s] = true; - return s; - } - function isSymbol(symbol) { - return typeof symbol === 'object' && symbol instanceof SymbolValue; - } - function typeOf(v) { - if (isSymbol(v)) - return 'symbol'; - return typeof v; - } - function Symbol(description) { - var value = new SymbolValue(description); - if (!(this instanceof Symbol)) - return value; - throw new TypeError('Symbol cannot be new\'ed'); - } - $defineProperty(Symbol.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(Symbol.prototype, 'toString', method(function() { - var symbolValue = this[symbolDataProperty]; - if (!getOption('symbols')) - return symbolValue[symbolInternalProperty]; - if (!symbolValue) - throw TypeError('Conversion from symbol to string'); - var desc = symbolValue[symbolDescriptionProperty]; - if (desc === undefined) - desc = ''; - return 'Symbol(' + desc + ')'; - })); - $defineProperty(Symbol.prototype, 'valueOf', method(function() { - var symbolValue = this[symbolDataProperty]; - if (!symbolValue) - throw TypeError('Conversion from symbol to string'); - if (!getOption('symbols')) - return symbolValue[symbolInternalProperty]; - return symbolValue; - })); - function SymbolValue(description) { - var key = newUniqueString(); - $defineProperty(this, symbolDataProperty, {value: this}); - $defineProperty(this, symbolInternalProperty, {value: key}); - $defineProperty(this, symbolDescriptionProperty, {value: description}); - freeze(this); - symbolValues[key] = this; - } - $defineProperty(SymbolValue.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(SymbolValue.prototype, 'toString', { - value: Symbol.prototype.toString, - enumerable: false - }); - $defineProperty(SymbolValue.prototype, 'valueOf', { - value: Symbol.prototype.valueOf, - enumerable: false - }); - var hashProperty = createPrivateName(); - var hashPropertyDescriptor = {value: undefined}; - var hashObjectProperties = { - hash: {value: undefined}, - self: {value: undefined} - }; - var hashCounter = 0; - function getOwnHashObject(object) { - var hashObject = object[hashProperty]; - if (hashObject && hashObject.self === object) - return hashObject; - if ($isExtensible(object)) { - hashObjectProperties.hash.value = hashCounter++; - hashObjectProperties.self.value = object; - hashPropertyDescriptor.value = $create(null, hashObjectProperties); - $defineProperty(object, hashProperty, hashPropertyDescriptor); - return hashPropertyDescriptor.value; - } - return undefined; - } - function freeze(object) { - getOwnHashObject(object); - return $freeze.apply(this, arguments); - } - function preventExtensions(object) { - getOwnHashObject(object); - return $preventExtensions.apply(this, arguments); - } - function seal(object) { - getOwnHashObject(object); - return $seal.apply(this, arguments); - } - Symbol.iterator = Symbol(); - freeze(SymbolValue.prototype); - function toProperty(name) { - if (isSymbol(name)) - return name[symbolInternalProperty]; - return name; - } - function getOwnPropertyNames(object) { - var rv = []; - var names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - if (!symbolValues[name] && !privateNames[name]) - rv.push(name); - } - return rv; - } - function getOwnPropertyDescriptor(object, name) { - return $getOwnPropertyDescriptor(object, toProperty(name)); - } - function getOwnPropertySymbols(object) { - var rv = []; - var names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var symbol = symbolValues[names[i]]; - if (symbol) - rv.push(symbol); - } - return rv; - } - function hasOwnProperty(name) { - return $hasOwnProperty.call(this, toProperty(name)); - } - function getOption(name) { - return global.traceur && global.traceur.options[name]; - } - function setProperty(object, name, value) { - var sym, - desc; - if (isSymbol(name)) { - sym = name; - name = name[symbolInternalProperty]; - } - object[name] = value; - if (sym && (desc = $getOwnPropertyDescriptor(object, name))) - $defineProperty(object, name, {enumerable: false}); - return value; - } - function defineProperty(object, name, descriptor) { - if (isSymbol(name)) { - if (descriptor.enumerable) { - descriptor = $create(descriptor, {enumerable: {value: false}}); - } - name = name[symbolInternalProperty]; - } - $defineProperty(object, name, descriptor); - return object; - } - function polyfillObject(Object) { - $defineProperty(Object, 'defineProperty', {value: defineProperty}); - $defineProperty(Object, 'getOwnPropertyNames', {value: getOwnPropertyNames}); - $defineProperty(Object, 'getOwnPropertyDescriptor', {value: getOwnPropertyDescriptor}); - $defineProperty(Object.prototype, 'hasOwnProperty', {value: hasOwnProperty}); - $defineProperty(Object, 'freeze', {value: freeze}); - $defineProperty(Object, 'preventExtensions', {value: preventExtensions}); - $defineProperty(Object, 'seal', {value: seal}); - Object.getOwnPropertySymbols = getOwnPropertySymbols; - } - function exportStar(object) { - for (var i = 1; i < arguments.length; i++) { - var names = $getOwnPropertyNames(arguments[i]); - for (var j = 0; j < names.length; j++) { - var name = names[j]; - if (privateNames[name]) - continue; - (function(mod, name) { - $defineProperty(object, name, { - get: function() { - return mod[name]; - }, - enumerable: true - }); - })(arguments[i], names[j]); - } - } - return object; - } - function isObject(x) { - return x != null && (typeof x === 'object' || typeof x === 'function'); - } - function toObject(x) { - if (x == null) - throw $TypeError(); - return $Object(x); - } - function checkObjectCoercible(argument) { - if (argument == null) { - throw new TypeError('Value cannot be converted to an Object'); - } - return argument; - } - function setupGlobals(global) { - global.Symbol = Symbol; - global.Reflect = global.Reflect || {}; - global.Reflect.global = global.Reflect.global || global; - polyfillObject(global.Object); - } - setupGlobals(global); - global.$traceurRuntime = { - createPrivateName: createPrivateName, - exportStar: exportStar, - getOwnHashObject: getOwnHashObject, - privateNames: privateNames, - setProperty: setProperty, - setupGlobals: setupGlobals, - toObject: toObject, - isObject: isObject, - toProperty: toProperty, - type: types, - typeof: typeOf, - checkObjectCoercible: checkObjectCoercible, - hasOwnProperty: function(o, p) { - return hasOwnProperty.call(o, p); - }, - defineProperties: $defineProperties, - defineProperty: $defineProperty, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - keys: $keys - }; -})(typeof global !== 'undefined' ? global : this); -(function() { - 'use strict'; - function spread() { - var rv = [], - j = 0, - iterResult; - for (var i = 0; i < arguments.length; i++) { - var valueToSpread = $traceurRuntime.checkObjectCoercible(arguments[i]); - if (typeof valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)] !== 'function') { - throw new TypeError('Cannot spread non-iterable object.'); - } - var iter = valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)](); - while (!(iterResult = iter.next()).done) { - rv[j++] = iterResult.value; - } - } - return rv; - } - $traceurRuntime.spread = spread; -})(); -(function() { - 'use strict'; - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $getOwnPropertyDescriptor = $traceurRuntime.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $traceurRuntime.getOwnPropertyNames; - var $getPrototypeOf = Object.getPrototypeOf; - function superDescriptor(homeObject, name) { - var proto = $getPrototypeOf(homeObject); - do { - var result = $getOwnPropertyDescriptor(proto, name); - if (result) - return result; - proto = $getPrototypeOf(proto); - } while (proto); - return undefined; - } - function superCall(self, homeObject, name, args) { - return superGet(self, homeObject, name).apply(self, args); - } - function superGet(self, homeObject, name) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor) { - if (!descriptor.get) - return descriptor.value; - return descriptor.get.call(self); - } - return undefined; - } - function superSet(self, homeObject, name, value) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor && descriptor.set) { - descriptor.set.call(self, value); - return value; - } - throw $TypeError("super has no setter '" + name + "'."); - } - function getDescriptors(object) { - var descriptors = {}, - name, - names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - descriptors[name] = $getOwnPropertyDescriptor(object, name); - } - return descriptors; - } - function createClass(ctor, object, staticObject, superClass) { - $defineProperty(object, 'constructor', { - value: ctor, - configurable: true, - enumerable: false, - writable: true - }); - if (arguments.length > 3) { - if (typeof superClass === 'function') - ctor.__proto__ = superClass; - ctor.prototype = $create(getProtoParent(superClass), getDescriptors(object)); - } else { - ctor.prototype = object; - } - $defineProperty(ctor, 'prototype', { - configurable: false, - writable: false - }); - return $defineProperties(ctor, getDescriptors(staticObject)); - } - function getProtoParent(superClass) { - if (typeof superClass === 'function') { - var prototype = superClass.prototype; - if ($Object(prototype) === prototype || prototype === null) - return superClass.prototype; - throw new $TypeError('super prototype must be an Object or null'); - } - if (superClass === null) - return null; - throw new $TypeError(("Super expression must either be null or a function, not " + typeof superClass + ".")); - } - function defaultSuperCall(self, homeObject, args) { - if ($getPrototypeOf(homeObject) !== null) - superCall(self, homeObject, 'constructor', args); - } - $traceurRuntime.createClass = createClass; - $traceurRuntime.defaultSuperCall = defaultSuperCall; - $traceurRuntime.superCall = superCall; - $traceurRuntime.superGet = superGet; - $traceurRuntime.superSet = superSet; -})(); -(function() { - 'use strict'; - var createPrivateName = $traceurRuntime.createPrivateName; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $create = Object.create; - var $TypeError = TypeError; - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var ST_NEWBORN = 0; - var ST_EXECUTING = 1; - var ST_SUSPENDED = 2; - var ST_CLOSED = 3; - var END_STATE = -2; - var RETHROW_STATE = -3; - function getInternalError(state) { - return new Error('Traceur compiler bug: invalid state in state machine: ' + state); - } - function GeneratorContext() { - this.state = 0; - this.GState = ST_NEWBORN; - this.storedException = undefined; - this.finallyFallThrough = undefined; - this.sent_ = undefined; - this.returnValue = undefined; - this.tryStack_ = []; - } - GeneratorContext.prototype = { - pushTry: function(catchState, finallyState) { - if (finallyState !== null) { - var finallyFallThrough = null; - for (var i = this.tryStack_.length - 1; i >= 0; i--) { - if (this.tryStack_[i].catch !== undefined) { - finallyFallThrough = this.tryStack_[i].catch; - break; - } - } - if (finallyFallThrough === null) - finallyFallThrough = RETHROW_STATE; - this.tryStack_.push({ - finally: finallyState, - finallyFallThrough: finallyFallThrough - }); - } - if (catchState !== null) { - this.tryStack_.push({catch: catchState}); - } - }, - popTry: function() { - this.tryStack_.pop(); - }, - get sent() { - this.maybeThrow(); - return this.sent_; - }, - set sent(v) { - this.sent_ = v; - }, - get sentIgnoreThrow() { - return this.sent_; - }, - maybeThrow: function() { - if (this.action === 'throw') { - this.action = 'next'; - throw this.sent_; - } - }, - end: function() { - switch (this.state) { - case END_STATE: - return this; - case RETHROW_STATE: - throw this.storedException; - default: - throw getInternalError(this.state); - } - }, - handleException: function(ex) { - this.GState = ST_CLOSED; - this.state = END_STATE; - throw ex; - } - }; - function nextOrThrow(ctx, moveNext, action, x) { - switch (ctx.GState) { - case ST_EXECUTING: - throw new Error(("\"" + action + "\" on executing generator")); - case ST_CLOSED: - if (action == 'next') { - return { - value: undefined, - done: true - }; - } - throw x; - case ST_NEWBORN: - if (action === 'throw') { - ctx.GState = ST_CLOSED; - throw x; - } - if (x !== undefined) - throw $TypeError('Sent value to newborn generator'); - case ST_SUSPENDED: - ctx.GState = ST_EXECUTING; - ctx.action = action; - ctx.sent = x; - var value = moveNext(ctx); - var done = value === ctx; - if (done) - value = ctx.returnValue; - ctx.GState = done ? ST_CLOSED : ST_SUSPENDED; - return { - value: value, - done: done - }; - } - } - var ctxName = createPrivateName(); - var moveNextName = createPrivateName(); - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - GeneratorFunction.prototype = GeneratorFunctionPrototype; - $defineProperty(GeneratorFunctionPrototype, 'constructor', nonEnum(GeneratorFunction)); - GeneratorFunctionPrototype.prototype = { - constructor: GeneratorFunctionPrototype, - next: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'next', v); - }, - throw: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'throw', v); - } - }; - $defineProperties(GeneratorFunctionPrototype.prototype, { - constructor: {enumerable: false}, - next: {enumerable: false}, - throw: {enumerable: false} - }); - Object.defineProperty(GeneratorFunctionPrototype.prototype, Symbol.iterator, nonEnum(function() { - return this; - })); - function createGeneratorInstance(innerFunction, functionObject, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new GeneratorContext(); - var object = $create(functionObject.prototype); - object[ctxName] = ctx; - object[moveNextName] = moveNext; - return object; - } - function initGeneratorFunction(functionObject) { - functionObject.prototype = $create(GeneratorFunctionPrototype.prototype); - functionObject.__proto__ = GeneratorFunctionPrototype; - return functionObject; - } - function AsyncFunctionContext() { - GeneratorContext.call(this); - this.err = undefined; - var ctx = this; - ctx.result = new Promise(function(resolve, reject) { - ctx.resolve = resolve; - ctx.reject = reject; - }); - } - AsyncFunctionContext.prototype = $create(GeneratorContext.prototype); - AsyncFunctionContext.prototype.end = function() { - switch (this.state) { - case END_STATE: - this.resolve(this.returnValue); - break; - case RETHROW_STATE: - this.reject(this.storedException); - break; - default: - this.reject(getInternalError(this.state)); - } - }; - AsyncFunctionContext.prototype.handleException = function() { - this.state = RETHROW_STATE; - }; - function asyncWrap(innerFunction, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new AsyncFunctionContext(); - ctx.createCallback = function(newState) { - return function(value) { - ctx.state = newState; - ctx.value = value; - moveNext(ctx); - }; - }; - ctx.errback = function(err) { - handleCatch(ctx, err); - moveNext(ctx); - }; - moveNext(ctx); - return ctx.result; - } - function getMoveNext(innerFunction, self) { - return function(ctx) { - while (true) { - try { - return innerFunction.call(self, ctx); - } catch (ex) { - handleCatch(ctx, ex); - } - } - }; - } - function handleCatch(ctx, ex) { - ctx.storedException = ex; - var last = ctx.tryStack_[ctx.tryStack_.length - 1]; - if (!last) { - ctx.handleException(ex); - return; - } - ctx.state = last.catch !== undefined ? last.catch : last.finally; - if (last.finallyFallThrough !== undefined) - ctx.finallyFallThrough = last.finallyFallThrough; - } - $traceurRuntime.asyncWrap = asyncWrap; - $traceurRuntime.initGeneratorFunction = initGeneratorFunction; - $traceurRuntime.createGeneratorInstance = createGeneratorInstance; -})(); -(function() { - function buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) { - var out = []; - if (opt_scheme) { - out.push(opt_scheme, ':'); - } - if (opt_domain) { - out.push('//'); - if (opt_userInfo) { - out.push(opt_userInfo, '@'); - } - out.push(opt_domain); - if (opt_port) { - out.push(':', opt_port); - } - } - if (opt_path) { - out.push(opt_path); - } - if (opt_queryData) { - out.push('?', opt_queryData); - } - if (opt_fragment) { - out.push('#', opt_fragment); - } - return out.join(''); - } - ; - var splitRe = new RegExp('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$'); - var ComponentIndex = { - SCHEME: 1, - USER_INFO: 2, - DOMAIN: 3, - PORT: 4, - PATH: 5, - QUERY_DATA: 6, - FRAGMENT: 7 - }; - function split(uri) { - return (uri.match(splitRe)); - } - function removeDotSegments(path) { - if (path === '/') - return '/'; - var leadingSlash = path[0] === '/' ? '/' : ''; - var trailingSlash = path.slice(-1) === '/' ? '/' : ''; - var segments = path.split('/'); - var out = []; - var up = 0; - for (var pos = 0; pos < segments.length; pos++) { - var segment = segments[pos]; - switch (segment) { - case '': - case '.': - break; - case '..': - if (out.length) - out.pop(); - else - up++; - break; - default: - out.push(segment); - } - } - if (!leadingSlash) { - while (up-- > 0) { - out.unshift('..'); - } - if (out.length === 0) - out.push('.'); - } - return leadingSlash + out.join('/') + trailingSlash; - } - function joinAndCanonicalizePath(parts) { - var path = parts[ComponentIndex.PATH] || ''; - path = removeDotSegments(path); - parts[ComponentIndex.PATH] = path; - return buildFromEncodedParts(parts[ComponentIndex.SCHEME], parts[ComponentIndex.USER_INFO], parts[ComponentIndex.DOMAIN], parts[ComponentIndex.PORT], parts[ComponentIndex.PATH], parts[ComponentIndex.QUERY_DATA], parts[ComponentIndex.FRAGMENT]); - } - function canonicalizeUrl(url) { - var parts = split(url); - return joinAndCanonicalizePath(parts); - } - function resolveUrl(base, url) { - var parts = split(url); - var baseParts = split(base); - if (parts[ComponentIndex.SCHEME]) { - return joinAndCanonicalizePath(parts); - } else { - parts[ComponentIndex.SCHEME] = baseParts[ComponentIndex.SCHEME]; - } - for (var i = ComponentIndex.SCHEME; i <= ComponentIndex.PORT; i++) { - if (!parts[i]) { - parts[i] = baseParts[i]; - } - } - if (parts[ComponentIndex.PATH][0] == '/') { - return joinAndCanonicalizePath(parts); - } - var path = baseParts[ComponentIndex.PATH]; - var index = path.lastIndexOf('/'); - path = path.slice(0, index + 1) + parts[ComponentIndex.PATH]; - parts[ComponentIndex.PATH] = path; - return joinAndCanonicalizePath(parts); - } - function isAbsolute(name) { - if (!name) - return false; - if (name[0] === '/') - return true; - var parts = split(name); - if (parts[ComponentIndex.SCHEME]) - return true; - return false; - } - $traceurRuntime.canonicalizeUrl = canonicalizeUrl; - $traceurRuntime.isAbsolute = isAbsolute; - $traceurRuntime.removeDotSegments = removeDotSegments; - $traceurRuntime.resolveUrl = resolveUrl; -})(); -(function(global) { - 'use strict'; - var $__2 = $traceurRuntime, - canonicalizeUrl = $__2.canonicalizeUrl, - resolveUrl = $__2.resolveUrl, - isAbsolute = $__2.isAbsolute; - var moduleInstantiators = Object.create(null); - var baseURL; - if (global.location && global.location.href) - baseURL = resolveUrl(global.location.href, './'); - else - baseURL = ''; - var UncoatedModuleEntry = function UncoatedModuleEntry(url, uncoatedModule) { - this.url = url; - this.value_ = uncoatedModule; - }; - ($traceurRuntime.createClass)(UncoatedModuleEntry, {}, {}); - var ModuleEvaluationError = function ModuleEvaluationError(erroneousModuleName, cause) { - this.message = this.constructor.name + (cause ? ': \'' + cause + '\'' : '') + ' in ' + erroneousModuleName; - }; - ($traceurRuntime.createClass)(ModuleEvaluationError, {loadedBy: function(moduleName) { - this.message += '\n loaded by ' + moduleName; - }}, {}, Error); - var UncoatedModuleInstantiator = function UncoatedModuleInstantiator(url, func) { - $traceurRuntime.superCall(this, $UncoatedModuleInstantiator.prototype, "constructor", [url, null]); - this.func = func; - }; - var $UncoatedModuleInstantiator = UncoatedModuleInstantiator; - ($traceurRuntime.createClass)(UncoatedModuleInstantiator, {getUncoatedModule: function() { - if (this.value_) - return this.value_; - try { - return this.value_ = this.func.call(global); - } catch (ex) { - if (ex instanceof ModuleEvaluationError) { - ex.loadedBy(this.url); - throw ex; - } - throw new ModuleEvaluationError(this.url, ex); - } - }}, {}, UncoatedModuleEntry); - function getUncoatedModuleInstantiator(name) { - if (!name) - return; - var url = ModuleStore.normalize(name); - return moduleInstantiators[url]; - } - ; - var moduleInstances = Object.create(null); - var liveModuleSentinel = {}; - function Module(uncoatedModule) { - var isLive = arguments[1]; - var coatedModule = Object.create(null); - Object.getOwnPropertyNames(uncoatedModule).forEach((function(name) { - var getter, - value; - if (isLive === liveModuleSentinel) { - var descr = Object.getOwnPropertyDescriptor(uncoatedModule, name); - if (descr.get) - getter = descr.get; - } - if (!getter) { - value = uncoatedModule[name]; - getter = function() { - return value; - }; - } - Object.defineProperty(coatedModule, name, { - get: getter, - enumerable: true - }); - })); - Object.preventExtensions(coatedModule); - return coatedModule; - } - var ModuleStore = { - normalize: function(name, refererName, refererAddress) { - if (typeof name !== "string") - throw new TypeError("module name must be a string, not " + typeof name); - if (isAbsolute(name)) - return canonicalizeUrl(name); - if (/[^\.]\/\.\.\//.test(name)) { - throw new Error('module name embeds /../: ' + name); - } - if (name[0] === '.' && refererName) - return resolveUrl(refererName, name); - return canonicalizeUrl(name); - }, - get: function(normalizedName) { - var m = getUncoatedModuleInstantiator(normalizedName); - if (!m) - return undefined; - var moduleInstance = moduleInstances[m.url]; - if (moduleInstance) - return moduleInstance; - moduleInstance = Module(m.getUncoatedModule(), liveModuleSentinel); - return moduleInstances[m.url] = moduleInstance; - }, - set: function(normalizedName, module) { - normalizedName = String(normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, (function() { - return module; - })); - moduleInstances[normalizedName] = module; - }, - get baseURL() { - return baseURL; - }, - set baseURL(v) { - baseURL = String(v); - }, - registerModule: function(name, func) { - var normalizedName = ModuleStore.normalize(name); - if (moduleInstantiators[normalizedName]) - throw new Error('duplicate module named ' + normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, func); - }, - bundleStore: Object.create(null), - register: function(name, deps, func) { - if (!deps || !deps.length && !func.length) { - this.registerModule(name, func); - } else { - this.bundleStore[name] = { - deps: deps, - execute: function() { - var $__0 = arguments; - var depMap = {}; - deps.forEach((function(dep, index) { - return depMap[dep] = $__0[index]; - })); - var registryEntry = func.call(this, depMap); - registryEntry.execute.call(this); - return registryEntry.exports; - } - }; - } - }, - getAnonymousModule: function(func) { - return new Module(func.call(global), liveModuleSentinel); - }, - getForTesting: function(name) { - var $__0 = this; - if (!this.testingPrefix_) { - Object.keys(moduleInstances).some((function(key) { - var m = /(traceur@[^\/]*\/)/.exec(key); - if (m) { - $__0.testingPrefix_ = m[1]; - return true; - } - })); - } - return this.get(this.testingPrefix_ + name); - } - }; - ModuleStore.set('@traceur/src/runtime/ModuleStore', new Module({ModuleStore: ModuleStore})); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - }; - $traceurRuntime.ModuleStore = ModuleStore; - global.System = { - register: ModuleStore.register.bind(ModuleStore), - get: ModuleStore.get, - set: ModuleStore.set, - normalize: ModuleStore.normalize - }; - $traceurRuntime.getModuleImpl = function(name) { - var instantiator = getUncoatedModuleInstantiator(name); - return instantiator && instantiator.getUncoatedModule(); - }; -})(typeof global !== 'undefined' ? global : this); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/utils", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/utils"; - var $ceil = Math.ceil; - var $floor = Math.floor; - var $isFinite = isFinite; - var $isNaN = isNaN; - var $pow = Math.pow; - var $min = Math.min; - var toObject = $traceurRuntime.toObject; - function toUint32(x) { - return x >>> 0; - } - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function isCallable(x) { - return typeof x === 'function'; - } - function isNumber(x) { - return typeof x === 'number'; - } - function toInteger(x) { - x = +x; - if ($isNaN(x)) - return 0; - if (x === 0 || !$isFinite(x)) - return x; - return x > 0 ? $floor(x) : $ceil(x); - } - var MAX_SAFE_LENGTH = $pow(2, 53) - 1; - function toLength(x) { - var len = toInteger(x); - return len < 0 ? 0 : $min(len, MAX_SAFE_LENGTH); - } - function checkIterable(x) { - return !isObject(x) ? undefined : x[Symbol.iterator]; - } - function isConstructor(x) { - return isCallable(x); - } - function createIteratorResultObject(value, done) { - return { - value: value, - done: done - }; - } - function maybeDefine(object, name, descr) { - if (!(name in object)) { - Object.defineProperty(object, name, descr); - } - } - function maybeDefineMethod(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: true, - enumerable: false, - writable: true - }); - } - function maybeDefineConst(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: false, - enumerable: false, - writable: false - }); - } - function maybeAddFunctions(object, functions) { - for (var i = 0; i < functions.length; i += 2) { - var name = functions[i]; - var value = functions[i + 1]; - maybeDefineMethod(object, name, value); - } - } - function maybeAddConsts(object, consts) { - for (var i = 0; i < consts.length; i += 2) { - var name = consts[i]; - var value = consts[i + 1]; - maybeDefineConst(object, name, value); - } - } - function maybeAddIterator(object, func, Symbol) { - if (!Symbol || !Symbol.iterator || object[Symbol.iterator]) - return; - if (object['@@iterator']) - func = object['@@iterator']; - Object.defineProperty(object, Symbol.iterator, { - value: func, - configurable: true, - enumerable: false, - writable: true - }); - } - var polyfills = []; - function registerPolyfill(func) { - polyfills.push(func); - } - function polyfillAll(global) { - polyfills.forEach((function(f) { - return f(global); - })); - } - return { - get toObject() { - return toObject; - }, - get toUint32() { - return toUint32; - }, - get isObject() { - return isObject; - }, - get isCallable() { - return isCallable; - }, - get isNumber() { - return isNumber; - }, - get toInteger() { - return toInteger; - }, - get toLength() { - return toLength; - }, - get checkIterable() { - return checkIterable; - }, - get isConstructor() { - return isConstructor; - }, - get createIteratorResultObject() { - return createIteratorResultObject; - }, - get maybeDefine() { - return maybeDefine; - }, - get maybeDefineMethod() { - return maybeDefineMethod; - }, - get maybeDefineConst() { - return maybeDefineConst; - }, - get maybeAddFunctions() { - return maybeAddFunctions; - }, - get maybeAddConsts() { - return maybeAddConsts; - }, - get maybeAddIterator() { - return maybeAddIterator; - }, - get registerPolyfill() { - return registerPolyfill; - }, - get polyfillAll() { - return polyfillAll; - } - }; -}); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Map", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Map"; - var $__3 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - isObject = $__3.isObject, - maybeAddIterator = $__3.maybeAddIterator, - registerPolyfill = $__3.registerPolyfill; - var getOwnHashObject = $traceurRuntime.getOwnHashObject; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - var deletedSentinel = {}; - function lookupIndex(map, key) { - if (isObject(key)) { - var hashObject = getOwnHashObject(key); - return hashObject && map.objectIndex_[hashObject.hash]; - } - if (typeof key === 'string') - return map.stringIndex_[key]; - return map.primitiveIndex_[key]; - } - function initMap(map) { - map.entries_ = []; - map.objectIndex_ = Object.create(null); - map.stringIndex_ = Object.create(null); - map.primitiveIndex_ = Object.create(null); - map.deletedCount_ = 0; - } - var Map = function Map() { - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Map called on incompatible type'); - if ($hasOwnProperty.call(this, 'entries_')) { - throw new TypeError('Map can not be reentrantly initialised'); - } - initMap(this); - if (iterable !== null && iterable !== undefined) { - for (var $__5 = iterable[Symbol.iterator](), - $__6; !($__6 = $__5.next()).done; ) { - var $__7 = $__6.value, - key = $__7[0], - value = $__7[1]; - { - this.set(key, value); - } - } - } - }; - ($traceurRuntime.createClass)(Map, { - get size() { - return this.entries_.length / 2 - this.deletedCount_; - }, - get: function(key) { - var index = lookupIndex(this, key); - if (index !== undefined) - return this.entries_[index + 1]; - }, - set: function(key, value) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index = lookupIndex(this, key); - if (index !== undefined) { - this.entries_[index + 1] = value; - } else { - index = this.entries_.length; - this.entries_[index] = key; - this.entries_[index + 1] = value; - if (objectMode) { - var hashObject = getOwnHashObject(key); - var hash = hashObject.hash; - this.objectIndex_[hash] = index; - } else if (stringMode) { - this.stringIndex_[key] = index; - } else { - this.primitiveIndex_[key] = index; - } - } - return this; - }, - has: function(key) { - return lookupIndex(this, key) !== undefined; - }, - delete: function(key) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index; - var hash; - if (objectMode) { - var hashObject = getOwnHashObject(key); - if (hashObject) { - index = this.objectIndex_[hash = hashObject.hash]; - delete this.objectIndex_[hash]; - } - } else if (stringMode) { - index = this.stringIndex_[key]; - delete this.stringIndex_[key]; - } else { - index = this.primitiveIndex_[key]; - delete this.primitiveIndex_[key]; - } - if (index !== undefined) { - this.entries_[index] = deletedSentinel; - this.entries_[index + 1] = undefined; - this.deletedCount_++; - return true; - } - return false; - }, - clear: function() { - initMap(this); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - for (var i = 0, - len = this.entries_.length; i < len; i += 2) { - var key = this.entries_[i]; - var value = this.entries_[i + 1]; - if (key === deletedSentinel) - continue; - callbackFn.call(thisArg, value, key, this); - } - }, - entries: $traceurRuntime.initGeneratorFunction(function $__8() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return [key, value]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__8, this); - }), - keys: $traceurRuntime.initGeneratorFunction(function $__9() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return key; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__9, this); - }), - values: $traceurRuntime.initGeneratorFunction(function $__10() { - var i, - len, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0, len = this.entries_.length; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < len) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return value; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__10, this); - }) - }, {}); - Object.defineProperty(Map.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Map.prototype.entries - }); - function polyfillMap(global) { - var $__7 = global, - Object = $__7.Object, - Symbol = $__7.Symbol; - if (!global.Map) - global.Map = Map; - var mapPrototype = global.Map.prototype; - if (mapPrototype.entries) { - maybeAddIterator(mapPrototype, mapPrototype.entries, Symbol); - maybeAddIterator(Object.getPrototypeOf(new global.Map().entries()), function() { - return this; - }, Symbol); - } - } - registerPolyfill(polyfillMap); - return { - get Map() { - return Map; - }, - get polyfillMap() { - return polyfillMap; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Map" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Set", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Set"; - var $__11 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - isObject = $__11.isObject, - maybeAddIterator = $__11.maybeAddIterator, - registerPolyfill = $__11.registerPolyfill; - var Map = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Map").Map; - var getOwnHashObject = $traceurRuntime.getOwnHashObject; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - function initSet(set) { - set.map_ = new Map(); - } - var Set = function Set() { - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Set called on incompatible type'); - if ($hasOwnProperty.call(this, 'map_')) { - throw new TypeError('Set can not be reentrantly initialised'); - } - initSet(this); - if (iterable !== null && iterable !== undefined) { - for (var $__15 = iterable[Symbol.iterator](), - $__16; !($__16 = $__15.next()).done; ) { - var item = $__16.value; - { - this.add(item); - } - } - } - }; - ($traceurRuntime.createClass)(Set, { - get size() { - return this.map_.size; - }, - has: function(key) { - return this.map_.has(key); - }, - add: function(key) { - this.map_.set(key, key); - return this; - }, - delete: function(key) { - return this.map_.delete(key); - }, - clear: function() { - return this.map_.clear(); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - var $__13 = this; - return this.map_.forEach((function(value, key) { - callbackFn.call(thisArg, key, key, $__13); - })); - }, - values: $traceurRuntime.initGeneratorFunction(function $__18() { - var $__19, - $__20; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__19 = this.map_.keys()[Symbol.iterator](); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__20 = $__19[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__20.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__20.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__20.value; - default: - return $ctx.end(); - } - }, $__18, this); - }), - entries: $traceurRuntime.initGeneratorFunction(function $__21() { - var $__22, - $__23; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__22 = this.map_.entries()[Symbol.iterator](); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__23 = $__22[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__23.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__23.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__23.value; - default: - return $ctx.end(); - } - }, $__21, this); - }) - }, {}); - Object.defineProperty(Set.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Set.prototype.values - }); - Object.defineProperty(Set.prototype, 'keys', { - configurable: true, - writable: true, - value: Set.prototype.values - }); - function polyfillSet(global) { - var $__17 = global, - Object = $__17.Object, - Symbol = $__17.Symbol; - if (!global.Set) - global.Set = Set; - var setPrototype = global.Set.prototype; - if (setPrototype.values) { - maybeAddIterator(setPrototype, setPrototype.values, Symbol); - maybeAddIterator(Object.getPrototypeOf(new global.Set().values()), function() { - return this; - }, Symbol); - } - } - registerPolyfill(polyfillSet); - return { - get Set() { - return Set; - }, - get polyfillSet() { - return polyfillSet; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Set" + ''); -System.register("traceur-runtime@0.0.61/node_modules/rsvp/lib/rsvp/asap", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/node_modules/rsvp/lib/rsvp/asap"; - var len = 0; - function asap(callback, arg) { - queue[len] = callback; - queue[len + 1] = arg; - len += 2; - if (len === 2) { - scheduleFlush(); - } - } - var $__default = asap; - var browserGlobal = (typeof window !== 'undefined') ? window : {}; - var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; - var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; - function useNextTick() { - return function() { - process.nextTick(flush); - }; - } - function useMutationObserver() { - var iterations = 0; - var observer = new BrowserMutationObserver(flush); - var node = document.createTextNode(''); - observer.observe(node, {characterData: true}); - return function() { - node.data = (iterations = ++iterations % 2); - }; - } - function useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = flush; - return function() { - channel.port2.postMessage(0); - }; - } - function useSetTimeout() { - return function() { - setTimeout(flush, 1); - }; - } - var queue = new Array(1000); - function flush() { - for (var i = 0; i < len; i += 2) { - var callback = queue[i]; - var arg = queue[i + 1]; - callback(arg); - queue[i] = undefined; - queue[i + 1] = undefined; - } - len = 0; - } - var scheduleFlush; - if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { - scheduleFlush = useNextTick(); - } else if (BrowserMutationObserver) { - scheduleFlush = useMutationObserver(); - } else if (isWorker) { - scheduleFlush = useMessageChannel(); - } else { - scheduleFlush = useSetTimeout(); - } - return {get default() { - return $__default; - }}; -}); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Promise", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Promise"; - var async = System.get("traceur-runtime@0.0.61/node_modules/rsvp/lib/rsvp/asap").default; - var registerPolyfill = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils").registerPolyfill; - var promiseRaw = {}; - function isPromise(x) { - return x && typeof x === 'object' && x.status_ !== undefined; - } - function idResolveHandler(x) { - return x; - } - function idRejectHandler(x) { - throw x; - } - function chain(promise) { - var onResolve = arguments[1] !== (void 0) ? arguments[1] : idResolveHandler; - var onReject = arguments[2] !== (void 0) ? arguments[2] : idRejectHandler; - var deferred = getDeferred(promise.constructor); - switch (promise.status_) { - case undefined: - throw TypeError; - case 0: - promise.onResolve_.push(onResolve, deferred); - promise.onReject_.push(onReject, deferred); - break; - case +1: - promiseEnqueue(promise.value_, [onResolve, deferred]); - break; - case -1: - promiseEnqueue(promise.value_, [onReject, deferred]); - break; - } - return deferred.promise; - } - function getDeferred(C) { - if (this === $Promise) { - var promise = promiseInit(new $Promise(promiseRaw)); - return { - promise: promise, - resolve: (function(x) { - promiseResolve(promise, x); - }), - reject: (function(r) { - promiseReject(promise, r); - }) - }; - } else { - var result = {}; - result.promise = new C((function(resolve, reject) { - result.resolve = resolve; - result.reject = reject; - })); - return result; - } - } - function promiseSet(promise, status, value, onResolve, onReject) { - promise.status_ = status; - promise.value_ = value; - promise.onResolve_ = onResolve; - promise.onReject_ = onReject; - return promise; - } - function promiseInit(promise) { - return promiseSet(promise, 0, undefined, [], []); - } - var Promise = function Promise(resolver) { - if (resolver === promiseRaw) - return; - if (typeof resolver !== 'function') - throw new TypeError; - var promise = promiseInit(this); - try { - resolver((function(x) { - promiseResolve(promise, x); - }), (function(r) { - promiseReject(promise, r); - })); - } catch (e) { - promiseReject(promise, e); - } - }; - ($traceurRuntime.createClass)(Promise, { - catch: function(onReject) { - return this.then(undefined, onReject); - }, - then: function(onResolve, onReject) { - if (typeof onResolve !== 'function') - onResolve = idResolveHandler; - if (typeof onReject !== 'function') - onReject = idRejectHandler; - var that = this; - var constructor = this.constructor; - return chain(this, function(x) { - x = promiseCoerce(constructor, x); - return x === that ? onReject(new TypeError) : isPromise(x) ? x.then(onResolve, onReject) : onResolve(x); - }, onReject); - } - }, { - resolve: function(x) { - if (this === $Promise) { - if (isPromise(x)) { - return x; - } - return promiseSet(new $Promise(promiseRaw), +1, x); - } else { - return new this(function(resolve, reject) { - resolve(x); - }); - } - }, - reject: function(r) { - if (this === $Promise) { - return promiseSet(new $Promise(promiseRaw), -1, r); - } else { - return new this((function(resolve, reject) { - reject(r); - })); - } - }, - all: function(values) { - var deferred = getDeferred(this); - var resolutions = []; - try { - var count = values.length; - if (count === 0) { - deferred.resolve(resolutions); - } else { - for (var i = 0; i < values.length; i++) { - this.resolve(values[i]).then(function(i, x) { - resolutions[i] = x; - if (--count === 0) - deferred.resolve(resolutions); - }.bind(undefined, i), (function(r) { - deferred.reject(r); - })); - } - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - }, - race: function(values) { - var deferred = getDeferred(this); - try { - for (var i = 0; i < values.length; i++) { - this.resolve(values[i]).then((function(x) { - deferred.resolve(x); - }), (function(r) { - deferred.reject(r); - })); - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - } - }); - var $Promise = Promise; - var $PromiseReject = $Promise.reject; - function promiseResolve(promise, x) { - promiseDone(promise, +1, x, promise.onResolve_); - } - function promiseReject(promise, r) { - promiseDone(promise, -1, r, promise.onReject_); - } - function promiseDone(promise, status, value, reactions) { - if (promise.status_ !== 0) - return; - promiseEnqueue(value, reactions); - promiseSet(promise, status, value); - } - function promiseEnqueue(value, tasks) { - async((function() { - for (var i = 0; i < tasks.length; i += 2) { - promiseHandle(value, tasks[i], tasks[i + 1]); - } - })); - } - function promiseHandle(value, handler, deferred) { - try { - var result = handler(value); - if (result === deferred.promise) - throw new TypeError; - else if (isPromise(result)) - chain(result, deferred.resolve, deferred.reject); - else - deferred.resolve(result); - } catch (e) { - try { - deferred.reject(e); - } catch (e) {} - } - } - var thenableSymbol = '@@thenable'; - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function promiseCoerce(constructor, x) { - if (!isPromise(x) && isObject(x)) { - var then; - try { - then = x.then; - } catch (r) { - var promise = $PromiseReject.call(constructor, r); - x[thenableSymbol] = promise; - return promise; - } - if (typeof then === 'function') { - var p = x[thenableSymbol]; - if (p) { - return p; - } else { - var deferred = getDeferred(constructor); - x[thenableSymbol] = deferred.promise; - try { - then.call(x, deferred.resolve, deferred.reject); - } catch (r) { - deferred.reject(r); - } - return deferred.promise; - } - } - } - return x; - } - function polyfillPromise(global) { - if (!global.Promise) - global.Promise = Promise; - } - registerPolyfill(polyfillPromise); - return { - get Promise() { - return Promise; - }, - get polyfillPromise() { - return polyfillPromise; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Promise" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/StringIterator", [], function() { - "use strict"; - var $__29; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/StringIterator"; - var $__27 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - createIteratorResultObject = $__27.createIteratorResultObject, - isObject = $__27.isObject; - var $__30 = $traceurRuntime, - hasOwnProperty = $__30.hasOwnProperty, - toProperty = $__30.toProperty; - var iteratedString = Symbol('iteratedString'); - var stringIteratorNextIndex = Symbol('stringIteratorNextIndex'); - var StringIterator = function StringIterator() {}; - ($traceurRuntime.createClass)(StringIterator, ($__29 = {}, Object.defineProperty($__29, "next", { - value: function() { - var o = this; - if (!isObject(o) || !hasOwnProperty(o, iteratedString)) { - throw new TypeError('this must be a StringIterator object'); - } - var s = o[toProperty(iteratedString)]; - if (s === undefined) { - return createIteratorResultObject(undefined, true); - } - var position = o[toProperty(stringIteratorNextIndex)]; - var len = s.length; - if (position >= len) { - o[toProperty(iteratedString)] = undefined; - return createIteratorResultObject(undefined, true); - } - var first = s.charCodeAt(position); - var resultString; - if (first < 0xD800 || first > 0xDBFF || position + 1 === len) { - resultString = String.fromCharCode(first); - } else { - var second = s.charCodeAt(position + 1); - if (second < 0xDC00 || second > 0xDFFF) { - resultString = String.fromCharCode(first); - } else { - resultString = String.fromCharCode(first) + String.fromCharCode(second); - } - } - o[toProperty(stringIteratorNextIndex)] = position + resultString.length; - return createIteratorResultObject(resultString, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__29, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__29), {}); - function createStringIterator(string) { - var s = String(string); - var iterator = Object.create(StringIterator.prototype); - iterator[toProperty(iteratedString)] = s; - iterator[toProperty(stringIteratorNextIndex)] = 0; - return iterator; - } - return {get createStringIterator() { - return createStringIterator; - }}; -}); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/String", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/String"; - var createStringIterator = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/StringIterator").createStringIterator; - var $__32 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - maybeAddFunctions = $__32.maybeAddFunctions, - maybeAddIterator = $__32.maybeAddIterator, - registerPolyfill = $__32.registerPolyfill; - var $toString = Object.prototype.toString; - var $indexOf = String.prototype.indexOf; - var $lastIndexOf = String.prototype.lastIndexOf; - function startsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - return $indexOf.call(string, searchString, pos) == start; - } - function endsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var pos = stringLength; - if (arguments.length > 1) { - var position = arguments[1]; - if (position !== undefined) { - pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - } - } - var end = Math.min(Math.max(pos, 0), stringLength); - var start = end - searchLength; - if (start < 0) { - return false; - } - return $lastIndexOf.call(string, searchString, start) == start; - } - function contains(search) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - return $indexOf.call(string, searchString, pos) != -1; - } - function repeat(count) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var n = count ? Number(count) : 0; - if (isNaN(n)) { - n = 0; - } - if (n < 0 || n == Infinity) { - throw RangeError(); - } - if (n == 0) { - return ''; - } - var result = ''; - while (n--) { - result += string; - } - return result; - } - function codePointAt(position) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var size = string.length; - var index = position ? Number(position) : 0; - if (isNaN(index)) { - index = 0; - } - if (index < 0 || index >= size) { - return undefined; - } - var first = string.charCodeAt(index); - var second; - if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; - } - function raw(callsite) { - var raw = callsite.raw; - var len = raw.length >>> 0; - if (len === 0) - return ''; - var s = ''; - var i = 0; - while (true) { - s += raw[i]; - if (i + 1 === len) - return s; - s += arguments[++i]; - } - } - function fromCodePoint() { - var codeUnits = []; - var floor = Math.floor; - var highSurrogate; - var lowSurrogate; - var index = -1; - var length = arguments.length; - if (!length) { - return ''; - } - while (++index < length) { - var codePoint = Number(arguments[index]); - if (!isFinite(codePoint) || codePoint < 0 || codePoint > 0x10FFFF || floor(codePoint) != codePoint) { - throw RangeError('Invalid code point: ' + codePoint); - } - if (codePoint <= 0xFFFF) { - codeUnits.push(codePoint); - } else { - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xD800; - lowSurrogate = (codePoint % 0x400) + 0xDC00; - codeUnits.push(highSurrogate, lowSurrogate); - } - } - return String.fromCharCode.apply(null, codeUnits); - } - function stringPrototypeIterator() { - var o = $traceurRuntime.checkObjectCoercible(this); - var s = String(o); - return createStringIterator(s); - } - function polyfillString(global) { - var String = global.String; - maybeAddFunctions(String.prototype, ['codePointAt', codePointAt, 'contains', contains, 'endsWith', endsWith, 'startsWith', startsWith, 'repeat', repeat]); - maybeAddFunctions(String, ['fromCodePoint', fromCodePoint, 'raw', raw]); - maybeAddIterator(String.prototype, stringPrototypeIterator, Symbol); - } - registerPolyfill(polyfillString); - return { - get startsWith() { - return startsWith; - }, - get endsWith() { - return endsWith; - }, - get contains() { - return contains; - }, - get repeat() { - return repeat; - }, - get codePointAt() { - return codePointAt; - }, - get raw() { - return raw; - }, - get fromCodePoint() { - return fromCodePoint; - }, - get stringPrototypeIterator() { - return stringPrototypeIterator; - }, - get polyfillString() { - return polyfillString; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/String" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/ArrayIterator", [], function() { - "use strict"; - var $__36; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/ArrayIterator"; - var $__34 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - toObject = $__34.toObject, - toUint32 = $__34.toUint32, - createIteratorResultObject = $__34.createIteratorResultObject; - var ARRAY_ITERATOR_KIND_KEYS = 1; - var ARRAY_ITERATOR_KIND_VALUES = 2; - var ARRAY_ITERATOR_KIND_ENTRIES = 3; - var ArrayIterator = function ArrayIterator() {}; - ($traceurRuntime.createClass)(ArrayIterator, ($__36 = {}, Object.defineProperty($__36, "next", { - value: function() { - var iterator = toObject(this); - var array = iterator.iteratorObject_; - if (!array) { - throw new TypeError('Object is not an ArrayIterator'); - } - var index = iterator.arrayIteratorNextIndex_; - var itemKind = iterator.arrayIterationKind_; - var length = toUint32(array.length); - if (index >= length) { - iterator.arrayIteratorNextIndex_ = Infinity; - return createIteratorResultObject(undefined, true); - } - iterator.arrayIteratorNextIndex_ = index + 1; - if (itemKind == ARRAY_ITERATOR_KIND_VALUES) - return createIteratorResultObject(array[index], false); - if (itemKind == ARRAY_ITERATOR_KIND_ENTRIES) - return createIteratorResultObject([index, array[index]], false); - return createIteratorResultObject(index, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__36, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__36), {}); - function createArrayIterator(array, kind) { - var object = toObject(array); - var iterator = new ArrayIterator; - iterator.iteratorObject_ = object; - iterator.arrayIteratorNextIndex_ = 0; - iterator.arrayIterationKind_ = kind; - return iterator; - } - function entries() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_ENTRIES); - } - function keys() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_KEYS); - } - function values() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_VALUES); - } - return { - get entries() { - return entries; - }, - get keys() { - return keys; - }, - get values() { - return values; - } - }; -}); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Array", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Array"; - var $__37 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/ArrayIterator"), - entries = $__37.entries, - keys = $__37.keys, - values = $__37.values; - var $__38 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - checkIterable = $__38.checkIterable, - isCallable = $__38.isCallable, - isConstructor = $__38.isConstructor, - maybeAddFunctions = $__38.maybeAddFunctions, - maybeAddIterator = $__38.maybeAddIterator, - registerPolyfill = $__38.registerPolyfill, - toInteger = $__38.toInteger, - toLength = $__38.toLength, - toObject = $__38.toObject; - function from(arrLike) { - var mapFn = arguments[1]; - var thisArg = arguments[2]; - var C = this; - var items = toObject(arrLike); - var mapping = mapFn !== undefined; - var k = 0; - var arr, - len; - if (mapping && !isCallable(mapFn)) { - throw TypeError(); - } - if (checkIterable(items)) { - arr = isConstructor(C) ? new C() : []; - for (var $__39 = items[Symbol.iterator](), - $__40; !($__40 = $__39.next()).done; ) { - var item = $__40.value; - { - if (mapping) { - arr[k] = mapFn.call(thisArg, item, k); - } else { - arr[k] = item; - } - k++; - } - } - arr.length = k; - return arr; - } - len = toLength(items.length); - arr = isConstructor(C) ? new C(len) : new Array(len); - for (; k < len; k++) { - if (mapping) { - arr[k] = typeof thisArg === 'undefined' ? mapFn(items[k], k) : mapFn.call(thisArg, items[k], k); - } else { - arr[k] = items[k]; - } - } - arr.length = len; - return arr; - } - function of() { - for (var items = [], - $__41 = 0; $__41 < arguments.length; $__41++) - items[$__41] = arguments[$__41]; - var C = this; - var len = items.length; - var arr = isConstructor(C) ? new C(len) : new Array(len); - for (var k = 0; k < len; k++) { - arr[k] = items[k]; - } - arr.length = len; - return arr; - } - function fill(value) { - var start = arguments[1] !== (void 0) ? arguments[1] : 0; - var end = arguments[2]; - var object = toObject(this); - var len = toLength(object.length); - var fillStart = toInteger(start); - var fillEnd = end !== undefined ? toInteger(end) : len; - fillStart = fillStart < 0 ? Math.max(len + fillStart, 0) : Math.min(fillStart, len); - fillEnd = fillEnd < 0 ? Math.max(len + fillEnd, 0) : Math.min(fillEnd, len); - while (fillStart < fillEnd) { - object[fillStart] = value; - fillStart++; - } - return object; - } - function find(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg); - } - function findIndex(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg, true); - } - function findHelper(self, predicate) { - var thisArg = arguments[2]; - var returnIndex = arguments[3] !== (void 0) ? arguments[3] : false; - var object = toObject(self); - var len = toLength(object.length); - if (!isCallable(predicate)) { - throw TypeError(); - } - for (var i = 0; i < len; i++) { - if (i in object) { - var value = object[i]; - if (predicate.call(thisArg, value, i, object)) { - return returnIndex ? i : value; - } - } - } - return returnIndex ? -1 : undefined; - } - function polyfillArray(global) { - var $__42 = global, - Array = $__42.Array, - Object = $__42.Object, - Symbol = $__42.Symbol; - maybeAddFunctions(Array.prototype, ['entries', entries, 'keys', keys, 'values', values, 'fill', fill, 'find', find, 'findIndex', findIndex]); - maybeAddFunctions(Array, ['from', from, 'of', of]); - maybeAddIterator(Array.prototype, values, Symbol); - maybeAddIterator(Object.getPrototypeOf([].values()), function() { - return this; - }, Symbol); - } - registerPolyfill(polyfillArray); - return { - get from() { - return from; - }, - get of() { - return of; - }, - get fill() { - return fill; - }, - get find() { - return find; - }, - get findIndex() { - return findIndex; - }, - get polyfillArray() { - return polyfillArray; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Array" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Object", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Object"; - var $__43 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - maybeAddFunctions = $__43.maybeAddFunctions, - registerPolyfill = $__43.registerPolyfill; - var $__44 = $traceurRuntime, - defineProperty = $__44.defineProperty, - getOwnPropertyDescriptor = $__44.getOwnPropertyDescriptor, - getOwnPropertyNames = $__44.getOwnPropertyNames, - keys = $__44.keys, - privateNames = $__44.privateNames; - function is(left, right) { - if (left === right) - return left !== 0 || 1 / left === 1 / right; - return left !== left && right !== right; - } - function assign(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - var props = keys(source); - var p, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (privateNames[name]) - continue; - target[name] = source[name]; - } - } - return target; - } - function mixin(target, source) { - var props = getOwnPropertyNames(source); - var p, - descriptor, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (privateNames[name]) - continue; - descriptor = getOwnPropertyDescriptor(source, props[p]); - defineProperty(target, props[p], descriptor); - } - return target; - } - function polyfillObject(global) { - var Object = global.Object; - maybeAddFunctions(Object, ['assign', assign, 'is', is, 'mixin', mixin]); - } - registerPolyfill(polyfillObject); - return { - get is() { - return is; - }, - get assign() { - return assign; - }, - get mixin() { - return mixin; - }, - get polyfillObject() { - return polyfillObject; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Object" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/Number", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/Number"; - var $__46 = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils"), - isNumber = $__46.isNumber, - maybeAddConsts = $__46.maybeAddConsts, - maybeAddFunctions = $__46.maybeAddFunctions, - registerPolyfill = $__46.registerPolyfill, - toInteger = $__46.toInteger; - var $abs = Math.abs; - var $isFinite = isFinite; - var $isNaN = isNaN; - var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; - var MIN_SAFE_INTEGER = -Math.pow(2, 53) + 1; - var EPSILON = Math.pow(2, -52); - function NumberIsFinite(number) { - return isNumber(number) && $isFinite(number); - } - ; - function isInteger(number) { - return NumberIsFinite(number) && toInteger(number) === number; - } - function NumberIsNaN(number) { - return isNumber(number) && $isNaN(number); - } - ; - function isSafeInteger(number) { - if (NumberIsFinite(number)) { - var integral = toInteger(number); - if (integral === number) - return $abs(integral) <= MAX_SAFE_INTEGER; - } - return false; - } - function polyfillNumber(global) { - var Number = global.Number; - maybeAddConsts(Number, ['MAX_SAFE_INTEGER', MAX_SAFE_INTEGER, 'MIN_SAFE_INTEGER', MIN_SAFE_INTEGER, 'EPSILON', EPSILON]); - maybeAddFunctions(Number, ['isFinite', NumberIsFinite, 'isInteger', isInteger, 'isNaN', NumberIsNaN, 'isSafeInteger', isSafeInteger]); - } - registerPolyfill(polyfillNumber); - return { - get MAX_SAFE_INTEGER() { - return MAX_SAFE_INTEGER; - }, - get MIN_SAFE_INTEGER() { - return MIN_SAFE_INTEGER; - }, - get EPSILON() { - return EPSILON; - }, - get isFinite() { - return NumberIsFinite; - }, - get isInteger() { - return isInteger; - }, - get isNaN() { - return NumberIsNaN; - }, - get isSafeInteger() { - return isSafeInteger; - }, - get polyfillNumber() { - return polyfillNumber; - } - }; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/Number" + ''); -System.register("traceur-runtime@0.0.61/src/runtime/polyfills/polyfills", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.61/src/runtime/polyfills/polyfills"; - var polyfillAll = System.get("traceur-runtime@0.0.61/src/runtime/polyfills/utils").polyfillAll; - polyfillAll(this); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - polyfillAll(global); - }; - return {}; -}); -System.get("traceur-runtime@0.0.61/src/runtime/polyfills/polyfills" + ''); diff --git a/js/vendor/traceur-runtime/traceur-runtime.min.map b/js/vendor/traceur-runtime/traceur-runtime.min.map deleted file mode 100644 index 8548cb027..000000000 --- a/js/vendor/traceur-runtime/traceur-runtime.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"traceur-runtime.min.js","sources":["traceur-runtime.js"],"names":["global","nonEnum","value","configurable","enumerable","writable","newUniqueString","Math","floor","random","counter","createPrivateName","s","privateNames","isSymbol","symbol","SymbolValue","typeOf","v","Symbol","description","this","TypeError","key","$defineProperty","symbolDataProperty","symbolInternalProperty","symbolDescriptionProperty","freeze","symbolValues","getOwnHashObject","object","hashObject","hashProperty","self","$isExtensible","hashObjectProperties","hash","hashCounter","hashPropertyDescriptor","$create","undefined","$freeze","apply","arguments","preventExtensions","$preventExtensions","seal","$seal","toProperty","name","getOwnPropertyNames","rv","names","$getOwnPropertyNames","i","length","push","getOwnPropertyDescriptor","$getOwnPropertyDescriptor","getOwnPropertySymbols","hasOwnProperty","$hasOwnProperty","call","getOption","traceur","options","setProperty","sym","desc","defineProperty","descriptor","polyfillObject","Object","prototype","exportStar","j","mod","get","isObject","x","toObject","$TypeError","$Object","checkObjectCoercible","argument","setupGlobals","Reflect","$traceurRuntime","create","$defineProperties","defineProperties","$keys","keys","toString","isExtensible","types","void","any","string","number","boolean","method","symbolValue","valueOf","iterator","type","typeof","o","p","spread","iterResult","valueToSpread","iter","next","done","superDescriptor","homeObject","proto","$getPrototypeOf","result","superCall","args","superGet","superSet","set","getDescriptors","descriptors","createClass","ctor","staticObject","superClass","__proto__","getProtoParent","defaultSuperCall","getPrototypeOf","getInternalError","state","Error","GeneratorContext","GState","ST_NEWBORN","storedException","finallyFallThrough","sent_","returnValue","tryStack_","nextOrThrow","ctx","moveNext","action","ST_EXECUTING","ST_CLOSED","ST_SUSPENDED","sent","GeneratorFunction","GeneratorFunctionPrototype","createGeneratorInstance","innerFunction","functionObject","getMoveNext","ctxName","moveNextName","initGeneratorFunction","AsyncFunctionContext","err","Promise","resolve","reject","asyncWrap","createCallback","newState","errback","handleCatch","ex","last","catch","finally","handleException","END_STATE","RETHROW_STATE","pushTry","catchState","finallyState","popTry","pop",{"end":{"file":"traceur-runtime.js","comments_before":[],"nlb":false,"endpos":14011,"pos":14007,"col":8,"line":432,"value":"sent","type":"name"},"start":{"file":"traceur-runtime.js","comments_before":[],"nlb":false,"endpos":14011,"pos":14007,"col":8,"line":432,"value":"sent","type":"name"},"name":"sent"},"maybeThrow","sentIgnoreThrow","end","constructor","throw","buildFromEncodedParts","opt_scheme","opt_userInfo","opt_domain","opt_port","opt_path","opt_queryData","opt_fragment","out","join","split","uri","match","splitRe","removeDotSegments","path","leadingSlash","trailingSlash","slice","segments","up","pos","segment","unshift","joinAndCanonicalizePath","parts","ComponentIndex","PATH","SCHEME","USER_INFO","DOMAIN","PORT","QUERY_DATA","FRAGMENT","canonicalizeUrl","url","resolveUrl","base","baseParts","index","lastIndexOf","isAbsolute","RegExp","getUncoatedModuleInstantiator","ModuleStore","normalize","moduleInstantiators","Module","uncoatedModule","isLive","coatedModule","forEach","getter","liveModuleSentinel","descr","baseURL","$__2","location","href","UncoatedModuleEntry","value_","ModuleEvaluationError","erroneousModuleName","cause","message","loadedBy","moduleName","UncoatedModuleInstantiator","func","$UncoatedModuleInstantiator","getUncoatedModule","moduleInstances","refererName","test","normalizedName","m","moduleInstance","module","String","registerModule","bundleStore","register","deps","execute","$__0","depMap","dep","registryEntry","exports","getAnonymousModule","getForTesting","testingPrefix_","some","exec","System","bind","getModuleImpl","instantiator","toUint32","isCallable","isNumber","toInteger","$isNaN","$isFinite","$floor","$ceil","toLength","len","$min","MAX_SAFE_LENGTH","checkIterable","isConstructor","createIteratorResultObject","maybeDefine","maybeDefineMethod","maybeDefineConst","maybeAddFunctions","functions","maybeAddConsts","consts","maybeAddIterator","registerPolyfill","polyfills","polyfillAll","f","ceil","isFinite","isNaN","$pow","pow","min","lookupIndex","map","objectIndex_","stringIndex_","primitiveIndex_","initMap","entries_","deletedCount_","polyfillMap","$__7","Map","mapPrototype","entries","$__3","deletedSentinel","iterable","$__6","$__5","size","objectMode","stringMode","has","delete","clear","callbackFn","thisArg","$__8","$ctx","$__9","values","$__10","initSet","map_","polyfillSet","$__17","Set","setPrototype","$__11","$__16","$__15","item","add","$__13","$__18","$__19","$__20","$__21","$__22","$__23","asap","callback","arg","queue","scheduleFlush","useNextTick","process","nextTick","flush","useMutationObserver","iterations","observer","BrowserMutationObserver","node","document","createTextNode","observe","characterData","data","useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","useSetTimeout","setTimeout","$__default","browserGlobal","window","MutationObserver","WebKitMutationObserver","isWorker","Uint8ClampedArray","importScripts","Array","isPromise","status_","idResolveHandler","idRejectHandler","chain","promise","onResolve","onReject","deferred","getDeferred","onResolve_","onReject_","promiseEnqueue","C","$Promise","promiseInit","promiseRaw","promiseResolve","r","promiseReject","promiseSet","status","promiseDone","reactions","tasks","async","promiseHandle","handler","e","promiseCoerce","then","$PromiseReject","thenableSymbol","polyfillPromise","default","resolver","that","all","resolutions","count","race","createStringIterator","StringIterator","iteratedString","stringIteratorNextIndex","$__29","$__27","$__30","position","resultString","first","charCodeAt","fromCharCode","second","startsWith","search","$toString","stringLength","searchString","Number","start","max","$indexOf","endsWith","searchLength","$lastIndexOf","contains","repeat","n","Infinity","RangeError","codePointAt","raw","callsite","fromCodePoint","highSurrogate","lowSurrogate","codeUnits","codePoint","stringPrototypeIterator","polyfillString","$__32","indexOf","createArrayIterator","array","kind","ArrayIterator","iteratorObject_","arrayIteratorNextIndex_","arrayIterationKind_","ARRAY_ITERATOR_KIND_ENTRIES","ARRAY_ITERATOR_KIND_KEYS","ARRAY_ITERATOR_KIND_VALUES","$__36","$__34","itemKind","from","arrLike","arr","mapFn","items","mapping","k","$__40","$__39","of","$__41","fill","fillStart","fillEnd","find","predicate","findHelper","findIndex","returnIndex","polyfillArray","$__42","$__37","$__38","is","left","right","assign","target","source","props","mixin","$__43","$__44","NumberIsFinite","isInteger","NumberIsNaN","isSafeInteger","integral","$abs","MAX_SAFE_INTEGER","polyfillNumber","MIN_SAFE_INTEGER","EPSILON","$__46","abs"],"mappings":"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"}
\ No newline at end of file |