summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--js/Gruntfile.js25
-rw-r--r--js/app/App.js2
-rw-r--r--js/app/Config.js18
-rw-r--r--js/app/Run.js54
-rw-r--r--js/bower.json2
-rw-r--r--js/build/app.js2746
-rw-r--r--js/build/app.min.js2
-rw-r--r--js/controller/AppController.js3
-rw-r--r--js/controller/ContentController.js52
-rw-r--r--js/controller/NavigationController.js70
-rw-r--r--js/controller/SettingsController.js12
-rw-r--r--js/directive/AppNavigationEntryUtils.js16
-rw-r--r--js/directive/NewsAudio.js15
-rw-r--r--js/directive/NewsAutoFocus.js4
-rw-r--r--js/directive/NewsBindUnsafeHtml.js6
-rw-r--r--js/directive/NewsDraggable.js6
-rw-r--r--js/directive/NewsDroppable.js10
-rw-r--r--js/directive/NewsFocus.js10
-rw-r--r--js/directive/NewsReadFile.js12
-rw-r--r--js/directive/NewsScroll.js45
-rw-r--r--js/directive/NewsStopPropagation.js8
-rw-r--r--js/directive/NewsTimeout.js10
-rw-r--r--js/directive/NewsTitleUnreadCount.js10
-rw-r--r--js/directive/NewsTriggerClick.js6
-rw-r--r--js/filter/TrustUrl.js4
-rw-r--r--js/filter/UnreadCountFormatter.js4
-rw-r--r--js/gui/KeyboardShortcuts.js64
-rw-r--r--js/karma.conf.js19
-rw-r--r--js/package.json6
-rw-r--r--js/service/FeedResource.js305
-rw-r--r--js/service/FolderResource.js133
-rw-r--r--js/service/ItemResource.js199
-rw-r--r--js/service/Loading.js4
-rw-r--r--js/service/Publisher.js31
-rw-r--r--js/service/Resource.js117
-rw-r--r--js/service/SettingsResource.js22
-rw-r--r--js/utility/Iterators.js70
-rw-r--r--js/vendor/es6-shim/.bower.json41
-rw-r--r--js/vendor/es6-shim/CHANGELOG.md163
-rw-r--r--js/vendor/es6-shim/Gruntfile.js98
-rw-r--r--js/vendor/es6-shim/README.md221
-rw-r--r--js/vendor/es6-shim/bower.json29
-rw-r--r--js/vendor/es6-shim/component.json23
-rw-r--r--js/vendor/es6-shim/es6-sham.js106
-rw-r--r--js/vendor/es6-shim/es6-sham.map1
-rw-r--r--js/vendor/es6-shim/es6-sham.min.js2
-rw-r--r--js/vendor/es6-shim/es6-shim.js1928
-rw-r--r--js/vendor/es6-shim/es6-shim.map1
-rw-r--r--js/vendor/es6-shim/es6-shim.min.js2
-rw-r--r--js/vendor/es6-shim/package.json69
-rw-r--r--js/vendor/es6-shim/test-sham/index.html22
-rw-r--r--js/vendor/es6-shim/test-sham/set-prototype-of.js24
-rw-r--r--js/vendor/es6-shim/testling.html35
-rw-r--r--js/vendor/momentjs/.bower.json10
-rw-r--r--js/vendor/momentjs/CHANGELOG.md16
-rw-r--r--js/vendor/momentjs/bower.json2
-rw-r--r--js/vendor/momentjs/locale/ar.js78
-rw-r--r--js/vendor/momentjs/locale/cs.js2
-rw-r--r--js/vendor/momentjs/min/locales.js80
-rw-r--r--js/vendor/momentjs/min/locales.min.js2
-rw-r--r--js/vendor/momentjs/min/moment-with-locales.js177
-rw-r--r--js/vendor/momentjs/min/moment-with-locales.min.js12
-rw-r--r--js/vendor/momentjs/min/moment.min.js5
-rw-r--r--js/vendor/momentjs/moment.js97
-rw-r--r--js/vendor/traceur-runtime/.bower.json21
-rw-r--r--js/vendor/traceur-runtime/README.md35
-rw-r--r--js/vendor/traceur-runtime/bower.json11
-rw-r--r--js/vendor/traceur-runtime/traceur-runtime.js2412
-rw-r--r--js/vendor/traceur-runtime/traceur-runtime.min.js2412
-rw-r--r--js/vendor/traceur-runtime/traceur-runtime.min.map1
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