diff --git a/app.js b/app.js index 8cf9030..6dce1b2 100644 --- a/app.js +++ b/app.js @@ -2,208 +2,257 @@ import commonApi from "./utils/https/common" App({ onLaunch: function (options) { - if(options.query.authCode){ - wx.setStorageSync('authCode', options.query.authCode) - } - else { - wx.removeStorageSync('authCode') + // 用异步处理 + if (options.query.authCode) { + //wx.setStorageSync('authCode', options.query.authCode) + wx.setStorage('authCode', options.query.authCode) + } else { + //wx.removeStorageSync('authCode') + wx.removeStorage('authCode') } this.updateApp() - let rect = wx.getSystemInfoSync(); - this.globalData.safeBottom = rect.safeArea?(rect.safeArea.bottom - rect.safeArea.height):0 - // 获取uuid - commonApi._post("browse/get_uuid",{}).then(res=>{ - // console.log('uuid',res); - this.globalData.uuid = res.data.uuid; - wx.setStorageSync('uuid', res.data.uuid) - }) - // 获取前端配置文件 - commonApi._post("pbservice/Other/getClientConfig", { - unique_key: "wechatxcx" - }).then(res => { - let data = JSON.parse(res.data); - data.isTest = data.isTest36?true:false; - this.globalData.configJson = data - }) + this.globalData.appLaunchFlag = false + this.globalData.isCartBuy = false + }, - // 获取用户信息 - // wx.getSetting({ - // success: res => { - // if (res.authSetting['scope.userInfo']) { - // // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 - // wx.getUserInfo({ - // success: res => { - // // 可以将 res 发送给后台解码出 unionId - // this.globalData.userInfo = res.userInfo + onShow: function () { + // onshow 从后台打开会多次执行 用flag判断 + console.log("执行App onShow") + if (this.globalData.appLaunchFlag) return + console.log("执行App onShow2") + this.globalData.appLaunchFlag = true + // 缓存systemInfo + let systemInfo = wx.getSystemInfoSync(); + this.globalData.safeBottom = systemInfo.safeArea ? (systemInfo.safeArea.bottom - systemInfo.safeArea.height) : 0 + wx.setStorage('systemInfo', systemInfo) + let rect = wx.getMenuButtonBoundingClientRect(); + wx.setStorage("rect", rect) - // // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 - // // 所以此处加入 callback 以防止这种情况 - // if (this.userInfoReadyCallback) { - // this.userInfoReadyCallback(res) - // } - // } - // }) - // } - // } - // }) - this.getShareCategoryId() + + // 获取uuid + commonApi._post("browse/get_uuid", {}).then(res => { + // console.log('uuid',res); + this.globalData.uuid = res.data.uuid; + wx.setStorageSync('uuid', res.data.uuid) + }) + // 获取前端配置文件 + commonApi._post("pbservice/Other/getClientConfig", {unique_key: "wechatxcx"}).then(res => { + let data = JSON.parse(res.data); + data.isTest = data.isTest159? true : false; + data.indexSeason = null + this.globalData.configJson = data + }).then(() => { + // 获取ui配置文件 在首页调用 + // commonApi._post("adv/get_home_ui", {type_id: 3}).then(res => { + // let obj = {} + // res.data.content.forEach(item => { + // obj[item.id] = item.image + // }); + // this.globalData.configJson.indexSeason = obj + // this.globalData.loadIndexSeason = true + // }) + }) + this.getShareCategoryId() }, + // 更新提示 - updateApp:function(){ + updateApp: function () { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { wx.showLoading({ - title:'更新下载中...', + title: '更新下载中...', }) } }) updateManager.onUpdateReady(function () { wx.hideLoading(); wx.showModal({ - title:'更新提示', - content:'新版本已经准备好,是否重启应用?', - success:function (res) { + title: '更新提示', + content: '新版本已经准备好,是否重启应用?', + success: function (res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() } } }) - + }) updateManager.onUpdateFailed(function () { // 新的版本下载失败 wx.hideLoading(); - wx.showToast({ title:'下载失败...', icon:"none" }); + wx.showToast({ + title: '下载失败...', + icon: "none" + }); }) }, - getShareCategoryId:function(){ - commonApi._post("share/getShareList",{}).then(res=>{ + getShareCategoryId: function () { + commonApi._post("share/getShareList", {}).then(res => { let CategoryIds = {} - res.data.map(item=>{ + res.data.map(item => { CategoryIds[item.mini] = item.id; }) this.globalData.CategoryIds = CategoryIds; this.overShare(); }) }, + //app.js + convertHtmlToText: function (inputText) { + var returnText = "" + inputText; + returnText = returnText.replace(/<\/div>/ig, '\r\n'); + returnText = returnText.replace(/<\/li>/ig, '\r\n'); + returnText = returnText.replace(/
  • /ig, ' * '); + returnText = returnText.replace(/<\/ul>/ig, '\r\n'); + //-- remove BR tags and replace them with line break + returnText = returnText.replace(//g, "\r\n"); + + //-- remove P and A tags but preserve what's inside of them + returnText = returnText.replace(//g, "\r\n"); + returnText = returnText.replace(/(.*?)<\/a>/g, " $2 ($1)"); + + //-- remove all inside SCRIPT and STYLE tags + returnText = returnText.replace(/[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/g, ""); + returnText = returnText.replace(/[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/g, ""); + //-- remove all else + returnText = returnText.replace(/<(?:.|\s)*?>/g, ""); + + //-- get rid of more than 2 multiple line breaks: + returnText = returnText.replace(/(?:(?:\r\n|\r|\n)\s*){2,}/g, "\r\n\r\n"); + + //-- get rid of more than 2 spaces: + returnText = returnText.replace(/ +(?= )/g, ''); + + //-- get rid of html-encoded characters: + returnText = returnText.replace(/ /g, " "); + returnText = returnText.replace(/&/g, "&"); + returnText = returnText.replace(/"/g, '\''); + returnText = returnText.replace(/</g, '<'); + returnText = returnText.replace(/>/g, '>'); + // returnText = returnText.replace(/img/g, 'image'); + + return returnText; + }, //重写分享方法 overShare: function () { //监听路由切换 //间接实现全局设置分享内容 let that = this; wx.onAppRoute(function (res) { - //获取加载的页面 - let pages = getCurrentPages(), - //获取当前页面的对象 - view = pages[pages.length - 1]; - if(view && view.options && view.options.category_id){ - that.globalData.category_id = view.options.category_id; - commonApi._post("share/share",{ - id:view.options.category_id, - url:view.route - }).then(res=>{ - console.log(res) - }) - } - let category_id = that.globalData.CategoryIds[view.route] || null; - if(view.route.indexOf('bike/index')!=-1 && !category_id){ - category_id = that.globalData.CategoryIds[view.route+'?type='+view.options.type] + //获取加载的页面 + let pages = getCurrentPages(), + //获取当前页面的对象 + view = pages[pages.length - 1]; + if (view && view.options && view.options.category_id) { + that.globalData.category_id = view.options.category_id; + commonApi._post("share/share", { + id: view.options.category_id, + url: view.route + }).then(res => { + console.log(res) + }) + } + let category_id = that.globalData.CategoryIds[view.route] || null; + if (view.route.indexOf('bike/index') != -1 && !category_id) { + category_id = that.globalData.CategoryIds[view.route + '?type=' + view.options.type] + } + if (category_id) { + view.options = view.options ? view.options : {}; + let str = []; + for (let i in view.options) { + str.push(i + '=' + view.options[i]) } - if (category_id) { - view.options = view.options?view.options:{}; - let str=[]; - for(let i in view.options){ - str.push(i+'='+view.options[i]) - } - str = str.join("&"); - view.onShareAppMessage = function () { - //你的分享配置 - return { - path: view.route+'?'+str+'&category_id='+category_id - }; - } + str = str.join("&"); + view.onShareAppMessage = function () { + //你的分享配置 + return { + path: view.route + '?' + str + '&category_id=' + category_id + }; } + } }) -}, + }, globalData: { - CategoryIds:{},//分享出去的页面id - category_id:"",//分享进来的参数 - from:"",// 是否是从其他小程序跳转过来的 如果是从其他小程序跳转的话 会记录 - uuid:null,// 设备唯一uuid + appLaunchFlag: false, // App onLaunch执行结束 + menuRoute: '/pages/index/index', + CategoryIds: {}, //分享出去的页面id + category_id: "", //分享进来的参数 + from: "", // 是否是从其他小程序跳转过来的 如果是从其他小程序跳转的话 会记录 + uuid: null, // 设备唯一uuid // 苏州市政府的经纬度 - latitude:"31.297401",//纬度 - longitude:"120.585639",//经度 + latitude: "31.297401", //纬度 + longitude: "120.585639", //经度 userInfo: null, - couponInfo:null, - mapKey:"DEUBZ-GG7RR-UZDWR-WXZD3-TARU5-4TB42", - safeBottom:0, - product:null, - postProduct:[], - ticketProduct:[], - index: 0, - createDate: null, - list: null, - productPrice: 0, - ticketPrice: 0, - productState:{ - "WAIT_PAYMENT":"待付款", - "WAIT_CONFIRM":"待确认", - "WAIT_POST":"待发货", - "WAIT_USE":"待出行", - 'WAIT_DELIVERY':'待收货', - 'WAIT_COMMENT':'待评价', - "NEED_REFUND":"退款退货", + couponInfo: null, + mapKey: "DEUBZ-GG7RR-UZDWR-WXZD3-TARU5-4TB42", + safeBottom: 0, + product: null, + postProduct: [], + ticketProduct: [], + index: 0, + createDate: null, + list: null, + productPrice: 0, + ticketPrice: 0, + productState: { + "WAIT_PAYMENT": "待付款", + "WAIT_CONFIRM": "待确认", + "WAIT_POST": "待发货", + "WAIT_USE": "待出行", + 'WAIT_DELIVERY': '待收货', + 'WAIT_COMMENT': '待评价', + "NEED_REFUND": "退款退货", "CLOSED": "已取消", "PAID": "已支付", - "WAIT_REFUND":"待退款", - "REFUND":"已退款", - "COMPLETED":"已完成", - "EXPIRED":"已过期/已失效", - "REFUNDING":"退款中" , - "TICKET_ERROR":"出票失败", - "REFUND_FAIL":"退订失败" + "WAIT_REFUND": "待退款", + "REFUND": "已退款", + "COMPLETED": "已完成", + "EXPIRED": "已过期/已失效", + "REFUNDING": "退款中", + "TICKET_ERROR": "出票失败", + "REFUND_FAIL": "退订失败" }, - orderState:{ - "UNPAID":"待付款", + orderState: { + "UNPAID": "待付款", // "WAIT_PAYMENT":"待付款", // "WAIT_CONFIRM":"待确认", // "WAIT_POST":"待发货", // "WAIT_USE":"待出行", // 'WAIT_DELIVERY':'待收货', - 'WAIT_COMMENT':'待评价', + 'WAIT_COMMENT': '待评价', // "NEED_REFUND":"退款退货", "CLOSED": "已取消", "PAID": "已支付", - "WAIT_REFUND":"待退款", - "REFUND":"已退款", - "COMPLETED":"已完成", + "WAIT_REFUND": "待退款", + "REFUND": "已退款", + "COMPLETED": "已完成", // "EXPIRED":"已过期/已失效", - "REFUNDING":"退款中" , - 'REFUND_REFUSE':'退款拒绝', - 'REFUND_ERROR':'退款异常', - 'OFFLINE_REFUND':'线下退款完成', - 'OFFLINE_WAIT':'线下退款处理中' + "REFUNDING": "退款中", + 'REFUND_REFUSE': '退款拒绝', + 'REFUND_ERROR': '退款异常', + 'OFFLINE_REFUND': '线下退款完成', + 'OFFLINE_WAIT': '线下退款处理中' }, - codeState:['未使用','已使用','已失效','已取消'], - weburl:"", - pay_methods:{ - NONE:"无需支付", - WEIXIN:"微信支付", - JIANSHEYINHANG:"建行支付", - ZHIFUBAO:"支付宝支付" + codeState: ['未使用', '已使用', '已失效', '已取消'], + weburl: "", + pay_methods: { + NONE: "无需支付", + WEIXIN: "微信支付", + JIANSHEYINHANG: "建行支付", + ZHIFUBAO: "支付宝支付" }, - kjId:null, - gp_id:null, - team_id:null, - retailId:"", - configJson:null, - prizeId:null, - loginPageEvent:{ + kjId: null, + gp_id: null, + team_id: null, + retailId: "", + configJson: null, + prizeId: null, + loginPageEvent: { "pages/list/message/index": 'message_login_' - } + }, + loadIndexSeason:false } }) \ No newline at end of file diff --git a/app.json b/app.json index 23d26ac..2e942eb 100644 --- a/app.json +++ b/app.json @@ -2,6 +2,7 @@ "pages": [ "pages/index/index", "pages/map/index", + "pages/pbService/aiHelpYou/index", "pages/search/index", "pages/search/list/index", "pages/login/index", @@ -104,6 +105,7 @@ "pages/list/movieticket/list/seats/index", "pages/list/movieticket/list/cinema/index", "pages/list/movieticket/list/ticket/index", + "pages/list/movieticket/list/web/index", "pages/list/movieticket/list/info/index", "pages/list/theatre/index", "pages/list/card/index", @@ -159,12 +161,6 @@ "pages/activity/redlist/index", "pages/activity/subway/index", "pages/activity/tenscenic/index", - "pages/activity/huawei/index", - "pages/activity/huawei/form/index", - "pages/activity/huawei/result/index", - "pages/activity/huawei/upload/index", - "pages/activity/huawei/uploadres/index", - "pages/activity/huawei/list/index", "pages/kj/index", "pages/kj/his/index", "pages/kj/info/index", @@ -176,20 +172,59 @@ "pages/culture/index", "pages/culture/info/index", "pages/user/logout/index", - "pages/order/orderList/index", - "pages/user/linkman/add/index", - "pages/user/address/add/index", - "pages/user/linkman/index", - "pages/user/userPrivacy/index", - "pages/user/personalInfo/index" - - + "pages/order/orderList/index", + "pages/user/linkman/add/index", + "pages/user/address/add/index", + "pages/user/linkman/index", + "pages/user/userPrivacy/index", + "pages/user/personalInfo/index", + "pages/info/luggageInfo/index", + "pages/order/WineSceneOrder/index", + "pages/order/showOrderNew/index", + "pages/user/order/showOrderInfo/index", + "pages/user/suggest/suggest" + ], + "subpackages": [ + { + "root": "subPackages", + "pages": [ + "indexs/index", + "index/index", + "techanNew/index", + "techanCart/index", + "feiyiNew/index", + "postSearch/index", + "gwcOrder/index", + "indexGQ/index", + "transferPage/transferPage", + "password/overview/overview", + "password/setting/setting", + "goods/oneCardTour/info/index", + "feiyiNew/CGCIndex/index", + "feiyiNew/CGCLetter/index", + "feiyiNew/CGCTime/index", + "foodListNew/index", + "foodNew/index", + "goods/memberCard/index", + "techanNew/selfPickPoint/index" + ] + }, + { + "root": "subPackageCheckPoint", + "pages": [ + "pages/index/index", + "pages/scopemap/index", + "pages/detailsmap/index", + "pages/content/index", + "pages/web/index" + ] + } ], "plugins": { - "live-player-plugin": { - "version": "1.3.5", - "provider": "wx2b03c6e691cd7370" - } + "live-player-plugin": { + "version": "1.3.5", + "provider": "wx2b03c6e691cd7370" + } }, "requiredPrivateInfos": [ "getLocation", @@ -208,29 +243,37 @@ "navigationBarTextStyle": "black", "navigationStyle": "custom" }, + "lazyCodeLoading": "requiredComponents", "style": "v2", "sitemapLocation": "sitemap.json", "tabBar": { - "color": "#999", - "selectedColor": "#0B898E", + "color": "#000000", + "selectedColor": "#CE3B2B", "borderStyle": "white", "list": [ { "pagePath": "pages/index/index", - "iconPath": "/images/home.png", - "selectedIconPath": "/images/homeSel.png", - "text": "首页" + "iconPath": "/images/index.png", + "selectedIconPath": "/images/index_seld.png", + "text": "首页", + "shareTimeline": true + }, + { + "pagePath": "pages/pbService/aiHelpYou/index", + "iconPath": "/images/ai.png", + "selectedIconPath": "/images/ai_seld.png", + "text": "AI" }, { "pagePath": "pages/map/index", "iconPath": "/images/map.png", - "selectedIconPath": "/images/mapSeld.png", + "selectedIconPath": "/images/map_seld.png", "text": "图游" }, { "pagePath": "pages/user/user", "iconPath": "/images/user.png", - "selectedIconPath": "/images/userSel.png", + "selectedIconPath": "/images/user_seld.png", "text": "我的" } ] diff --git a/app.miniapp.json b/app.miniapp.json new file mode 100644 index 0000000..234a021 --- /dev/null +++ b/app.miniapp.json @@ -0,0 +1,5 @@ +{ + "adapteByMiniprogram": { + "userName": "gh_b55e177a4069" + } +} diff --git a/app.wxss b/app.wxss index 6469318..4e78857 100644 --- a/app.wxss +++ b/app.wxss @@ -1,5 +1,19 @@ /**app.wxss**/ @import './iconfont/iconfont.wxss'; +@import "./utils/wxParse/wxParse.wxss"; + +/* 公祭日置灰 需手动发布 */ +/* page::before{ + content: ""; + width: 100vw; + height: 100vh; + position: fixed; + inset: 0; + backdrop-filter: grayscale(100%); + pointer-events: none; + z-index: 99999; +} */ + .container { height: 100%; display: flex; @@ -31,7 +45,7 @@ page{ position: relative; z-index: 1; width: 80%; - max-height: 1000rpx; + max-height: 1200rpx; background: white; border-radius: 12rpx; overflow-y: auto; @@ -110,7 +124,7 @@ page{ text-overflow: ellipsis; } .sz-xcx-fwb-img { - max-width: 100%; + max-width: 100% !important; height: auto; object-fit: cover; } @@ -137,4 +151,32 @@ page{ background-size: 100% 100%; background-repeat: no-repeat; margin: 0 auto; -} \ No newline at end of file +} + +.no-scrollbar::-webkit-scrollbar{ + display: none; + width: 0; + height: 0; +} + +.flex-1{ + flex: 1; +} +.w-1rpx{ + width: 1rpx; +} +.h-1rpx{ + height: 1rpx; +} +.flex-shrink-0{ + flex-shrink: 0; +} + +.hidden{ + opacity: 0; + display: none; +} + +/* page { + filter: grayscale(100%); +} */ \ No newline at end of file diff --git a/images/ai.png b/images/ai.png new file mode 100644 index 0000000..d915543 Binary files /dev/null and b/images/ai.png differ diff --git a/images/ai_seld.png b/images/ai_seld.png new file mode 100644 index 0000000..6076a4b Binary files /dev/null and b/images/ai_seld.png differ diff --git a/images/empty.png b/images/empty.png deleted file mode 100755 index 7be0cc6..0000000 Binary files a/images/empty.png and /dev/null differ diff --git a/images/empty2.png b/images/empty2.png deleted file mode 100755 index fb4ec04..0000000 Binary files a/images/empty2.png and /dev/null differ diff --git a/images/home.png b/images/home.png deleted file mode 100755 index 0911ce1..0000000 Binary files a/images/home.png and /dev/null differ diff --git a/images/homeSel.png b/images/homeSel.png deleted file mode 100755 index 718704c..0000000 Binary files a/images/homeSel.png and /dev/null differ diff --git a/images/index.png b/images/index.png new file mode 100644 index 0000000..c8d5d3e Binary files /dev/null and b/images/index.png differ diff --git a/images/index_seld.png b/images/index_seld.png new file mode 100644 index 0000000..34a2ff8 Binary files /dev/null and b/images/index_seld.png differ diff --git a/images/map.png b/images/map.png index 2099fe7..9638f97 100755 Binary files a/images/map.png and b/images/map.png differ diff --git a/images/mapSeld.png b/images/mapSeld.png deleted file mode 100755 index e52c619..0000000 Binary files a/images/mapSeld.png and /dev/null differ diff --git a/images/map_seld.png b/images/map_seld.png new file mode 100644 index 0000000..16acbfe Binary files /dev/null and b/images/map_seld.png differ diff --git a/images/place1.png b/images/place1.png index 0c65781..a8f4016 100755 Binary files a/images/place1.png and b/images/place1.png differ diff --git a/images/place2.png b/images/place2.png index 0bf09ad..c0d693f 100755 Binary files a/images/place2.png and b/images/place2.png differ diff --git a/images/place3.jpg b/images/place3.jpg deleted file mode 100644 index 2c6200e..0000000 Binary files a/images/place3.jpg and /dev/null differ diff --git a/images/user.png b/images/user.png index 1f0b66e..ecdcef5 100755 Binary files a/images/user.png and b/images/user.png differ diff --git a/images/userSel.png b/images/userSel.png deleted file mode 100755 index 12c5867..0000000 Binary files a/images/userSel.png and /dev/null differ diff --git a/images/user_seld.png b/images/user_seld.png new file mode 100644 index 0000000..f536a35 Binary files /dev/null and b/images/user_seld.png differ diff --git a/images/video.png b/images/video.png deleted file mode 100755 index 95db4b2..0000000 Binary files a/images/video.png and /dev/null differ diff --git a/images/videoSeld.png b/images/videoSeld.png deleted file mode 100755 index ac80d82..0000000 Binary files a/images/videoSeld.png and /dev/null differ diff --git a/miniprogram_npm/chinese-workday/index.js b/miniprogram_npm/chinese-workday/index.js new file mode 100644 index 0000000..8e75567 --- /dev/null +++ b/miniprogram_npm/chinese-workday/index.js @@ -0,0 +1,326 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1739326742649, function(require, module, exports) { +// from +// - 2018 https://www.gov.cn/zhengce/content/2017-11/30/content_5243579.htm +// - 2019 https://www.gov.cn/zhengce/content/2018-12/06/content_5346276.htm +// - 2019调整 https://www.gov.cn/zhengce/content/2019-03/22/content_5375877.htm +// - 2020 https://www.gov.cn/zhengce/content/2019-11/21/content_5454164.htm +// - 2021 https://www.gov.cn/zhengce/content/2020-11/25/content_5564127.htm +// - 2022 https://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm +// - 2023 https://www.gov.cn/zhengce/zhengceku/2022-12/08/content_5730844.htm +// - 2024 https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm + + +module.exports = { + isWorkday: isWorkday, + isHoliday: isHoliday, + getFestival: getFestival, + isAddtionalWorkday: isAddtionalWorkday, +}; + +var HOLIDAYS = { + "2018-02-15": "春节", + "2018-02-16": "春节", + "2018-02-17": "春节", + "2018-02-18": "春节", + "2018-02-19": "春节", + "2018-02-20": "春节", + "2018-02-21": "春节", + "2018-04-05": "清明节", + "2018-04-06": "清明节", + "2018-04-07": "清明节", + "2018-04-29": "劳动节", + "2018-04-30": "劳动节", + "2018-05-01": "劳动节", + "2018-06-18": "端午节", + "2018-09-24": "中秋节", + "2018-10-01": "国庆节", + "2018-10-02": "国庆节", + "2018-10-03": "国庆节", + "2018-10-04": "国庆节", + "2018-10-05": "国庆节", + "2018-10-06": "国庆节", + "2018-10-07": "国庆节", + "2018-12-30": "元旦", + "2018-12-31": "元旦", + "2019-01-01": "元旦", + "2019-02-04": "春节", + "2019-02-05": "春节", + "2019-02-06": "春节", + "2019-02-07": "春节", + "2019-02-08": "春节", + "2019-02-09": "春节", + "2019-02-10": "春节", + "2019-04-05": "清明节", + "2019-04-06": "清明节", + "2019-04-07": "清明节", + "2019-05-01": "劳动节", + "2019-05-02": "劳动节", + "2019-05-03": "劳动节", + "2019-05-04": "劳动节", + "2019-06-07": "端午节", + "2019-06-08": "端午节", + "2019-06-09": "端午节", + "2019-09-13": "中秋节", + "2019-09-14": "中秋节", + "2019-09-15": "中秋节", + "2019-10-01": "国庆节", + "2019-10-02": "国庆节", + "2019-10-03": "国庆节", + "2019-10-04": "国庆节", + "2019-10-05": "国庆节", + "2019-10-06": "国庆节", + "2019-10-07": "国庆节", + "2020-01-01": "元旦", + "2020-01-24": "春节", + "2020-01-25": "春节", + "2020-01-26": "春节", + "2020-01-27": "春节", + "2020-01-28": "春节", + "2020-01-29": "春节", + "2020-01-30": "春节", + "2020-04-04": "清明节", + "2020-04-05": "清明节", + "2020-04-06": "清明节", + "2020-05-01": "劳动节", + "2020-05-02": "劳动节", + "2020-05-03": "劳动节", + "2020-05-04": "劳动节", + "2020-05-05": "劳动节", + "2020-06-25": "端午节", + "2020-06-26": "端午节", + "2020-06-27": "端午节", + "2020-10-01": "国庆节", + "2020-10-02": "国庆节", + "2020-10-03": "国庆节", + "2020-10-04": "国庆节", + "2020-10-05": "国庆节", + "2020-10-06": "国庆节", + "2020-10-07": "国庆节", + "2020-10-08": "国庆节", + "2021-01-01": "元旦", + "2021-02-11": "春节", + "2021-02-12": "春节", + "2021-02-13": "春节", + "2021-02-14": "春节", + "2021-02-15": "春节", + "2021-02-16": "春节", + "2021-02-17": "春节", + "2021-04-03": "清明节", + "2021-04-04": "清明节", + "2021-04-05": "清明节", + "2021-05-01": "劳动节", + "2021-05-02": "劳动节", + "2021-05-03": "劳动节", + "2021-05-04": "劳动节", + "2021-05-05": "劳动节", + "2021-06-12": "端午节", + "2021-06-13": "端午节", + "2021-06-14": "端午节", + "2021-09-19": "中秋节", + "2021-09-20": "中秋节", + "2021-09-21": "中秋节", + "2021-10-01": "国庆节", + "2021-10-02": "国庆节", + "2021-10-03": "国庆节", + "2021-10-04": "国庆节", + "2021-10-05": "国庆节", + "2021-10-06": "国庆节", + "2021-10-07": "国庆节", + "2022-01-01": "元旦", + "2022-01-02": "元旦", + "2022-01-03": "元旦", + "2022-01-31": "春节", + "2022-02-01": "春节", + "2022-02-02": "春节", + "2022-02-03": "春节", + "2022-02-04": "春节", + "2022-02-05": "春节", + "2022-02-06": "春节", + "2022-04-03": "清明节", + "2022-04-04": "清明节", + "2022-04-05": "清明节", + "2022-04-30": "劳动节", + "2022-05-01": "劳动节", + "2022-05-02": "劳动节", + "2022-05-03": "劳动节", + "2022-05-04": "劳动节", + "2022-06-03": "端午节", + "2022-06-04": "端午节", + "2022-06-05": "端午节", + "2022-09-10": "中秋节", + "2022-09-11": "中秋节", + "2022-09-12": "中秋节", + "2022-10-01": "国庆节", + "2022-10-02": "国庆节", + "2022-10-03": "国庆节", + "2022-10-04": "国庆节", + "2022-10-05": "国庆节", + "2022-10-06": "国庆节", + "2022-10-07": "国庆节", + "2022-12-31": "元旦", + "2023-01-01": "元旦", + "2023-01-02": "元旦", + "2023-01-21": "春节", + "2023-01-22": "春节", + "2023-01-23": "春节", + "2023-01-24": "春节", + "2023-01-25": "春节", + "2023-01-26": "春节", + "2023-01-27": "春节", + "2023-04-05": "清明节", + "2023-04-29": "劳动节", + "2023-04-30": "劳动节", + "2023-05-01": "劳动节", + "2023-05-02": "劳动节", + "2023-05-03": "劳动节", + "2023-06-22": "端午节", + "2023-06-23": "端午节", + "2023-06-24": "端午节", + "2023-09-29": "中秋节", + "2023-09-30": "中秋节", + "2023-10-01": "国庆节", + "2023-10-02": "国庆节", + "2023-10-03": "国庆节", + "2023-10-04": "国庆节", + "2023-10-05": "国庆节", + "2023-10-06": "国庆节", + "2024-01-01": "元旦", + "2024-02-10": "春节", + "2024-02-11": "春节", + "2024-02-12": "春节", + "2024-02-13": "春节", + "2024-02-14": "春节", + "2024-02-15": "春节", + "2024-02-16": "春节", + "2024-02-17": "春节", + "2024-04-04": "清明节", + "2024-04-05": "清明节", + "2024-04-06": "清明节", + "2024-05-01": "劳动节", + "2024-05-02": "劳动节", + "2024-05-03": "劳动节", + "2024-05-04": "劳动节", + "2024-05-05": "劳动节", + "2024-06-10": "端午节", + "2024-09-15": "中秋节", + "2024-09-16": "中秋节", + "2024-09-17": "中秋节", + "2024-10-01": "国庆节", + "2024-10-02": "国庆节", + "2024-10-03": "国庆节", + "2024-10-04": "国庆节", + "2024-10-05": "国庆节", + "2024-10-06": "国庆节", + "2024-10-07": "国庆节", +}; + +var WEEKENDS_WORKDAY = { + "2018-02-11": "补春节", + "2018-02-24": "补春节", + "2018-04-08": "补清明节", + "2018-04-28": "补劳动节", + "2018-09-29": "补国庆节", + "2018-09-30": "补国庆节", + "2018-12-29": "补元旦", + "2019-02-02": "补春节", + "2019-02-03": "补春节", + "2019-04-28": "补劳动节", + "2019-05-05": "补劳动节", + "2019-09-29": "补国庆节", + "2019-10-12": "补国庆节", + "2020-01-19": "补春节", + "2020-02-01": "补春节", + "2020-04-26": "补劳动节", + "2020-05-09": "补劳动节", + "2020-06-28": "补端午节", + "2020-09-27": "补国庆节", + "2020-10-10": "补国庆节", + "2021-02-07": "补春节", + "2021-02-20": "补春节", + "2021-04-25": "补劳动节", + "2021-05-08": "补劳动节", + "2021-09-18": "补中秋节", + "2021-09-26": "补国庆节", + "2021-10-09": "补国庆节", + "2022-01-29": "补春节", + "2022-01-30": "补春节", + "2022-04-02": "补清明节", + "2022-04-24": "补劳动节", + "2022-05-07": "补劳动节", + "2022-10-08": "补国庆节", + "2022-10-09": "补国庆节", + "2023-01-28": "补春节", + "2023-01-29": "补春节", + "2023-04-23": "补劳动节", + "2023-05-06": "补劳动节", + "2023-06-25": "补端午节", + "2023-10-07": "补国庆节", + "2023-10-08": "补国庆节", + "2024-02-04": "补春节", + "2024-02-18": "补春节", + "2024-04-07": "补清明节", + "2024-04-28": "补劳动节", + "2024-05-11": "补劳动节", + "2024-09-14": "补中秋节", + "2024-09-29": "补国庆节", + "2024-10-12": "补国庆节", +}; + +function isWorkday(day) { + var fd = formatDate(day); + if (WEEKENDS_WORKDAY[fd.date]) { + return true; + } else if (HOLIDAYS[fd.date]) { + return false; + } + return !fd.weekends; +} + +function isHoliday(day) { + return !isWorkday(day); +} + +function isAddtionalWorkday(day) { + var fd = formatDate(day); + return !!WEEKENDS_WORKDAY[fd.date]; +} + +function getFestival(day) { + var fd = formatDate(day); + if (WEEKENDS_WORKDAY[fd.date]) { + return WEEKENDS_WORKDAY[fd.date]; + } else if (HOLIDAYS[fd.date]) { + return HOLIDAYS[fd.date] + } + return fd.weekends ? '周末' : '工作日'; +} + +function formatDate(day) { + var d = new Date(day), + month = "" + (d.getMonth() + 1), + day = "" + d.getDate(), + year = d.getFullYear(); + if (month.length < 2) { + month = "0" + month + }; + if (day.length < 2) { + day = "0" + day + }; + + return { + date: [year, month, day].join("-"), + weekends: [0, 6].indexOf(d.getDay()) > -1 + }; +} + +}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) +return __REQUIRE__(1739326742649); +})() +//miniprogram-npm-outsideDeps=[] +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/miniprogram_npm/chinese-workday/index.js.map b/miniprogram_npm/chinese-workday/index.js.map new file mode 100644 index 0000000..68c6f33 --- /dev/null +++ b/miniprogram_npm/chinese-workday/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["// from\r\n// - 2018 https://www.gov.cn/zhengce/content/2017-11/30/content_5243579.htm\r\n// - 2019 https://www.gov.cn/zhengce/content/2018-12/06/content_5346276.htm\r\n// - 2019调整 https://www.gov.cn/zhengce/content/2019-03/22/content_5375877.htm\r\n// - 2020 https://www.gov.cn/zhengce/content/2019-11/21/content_5454164.htm\r\n// - 2021 https://www.gov.cn/zhengce/content/2020-11/25/content_5564127.htm\r\n// - 2022 https://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm\r\n// - 2023 https://www.gov.cn/zhengce/zhengceku/2022-12/08/content_5730844.htm\r\n// - 2024 https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm\r\n\r\n\r\nmodule.exports = {\r\n isWorkday: isWorkday,\r\n isHoliday: isHoliday,\r\n getFestival: getFestival,\r\n isAddtionalWorkday: isAddtionalWorkday,\r\n};\r\n\r\nvar HOLIDAYS = {\r\n \"2018-02-15\": \"春节\",\r\n \"2018-02-16\": \"春节\",\r\n \"2018-02-17\": \"春节\",\r\n \"2018-02-18\": \"春节\",\r\n \"2018-02-19\": \"春节\",\r\n \"2018-02-20\": \"春节\",\r\n \"2018-02-21\": \"春节\",\r\n \"2018-04-05\": \"清明节\",\r\n \"2018-04-06\": \"清明节\",\r\n \"2018-04-07\": \"清明节\",\r\n \"2018-04-29\": \"劳动节\",\r\n \"2018-04-30\": \"劳动节\",\r\n \"2018-05-01\": \"劳动节\",\r\n \"2018-06-18\": \"端午节\",\r\n \"2018-09-24\": \"中秋节\",\r\n \"2018-10-01\": \"国庆节\",\r\n \"2018-10-02\": \"国庆节\",\r\n \"2018-10-03\": \"国庆节\",\r\n \"2018-10-04\": \"国庆节\",\r\n \"2018-10-05\": \"国庆节\",\r\n \"2018-10-06\": \"国庆节\",\r\n \"2018-10-07\": \"国庆节\",\r\n \"2018-12-30\": \"元旦\",\r\n \"2018-12-31\": \"元旦\",\r\n \"2019-01-01\": \"元旦\",\r\n \"2019-02-04\": \"春节\",\r\n \"2019-02-05\": \"春节\",\r\n \"2019-02-06\": \"春节\",\r\n \"2019-02-07\": \"春节\",\r\n \"2019-02-08\": \"春节\",\r\n \"2019-02-09\": \"春节\",\r\n \"2019-02-10\": \"春节\",\r\n \"2019-04-05\": \"清明节\",\r\n \"2019-04-06\": \"清明节\",\r\n \"2019-04-07\": \"清明节\",\r\n \"2019-05-01\": \"劳动节\",\r\n \"2019-05-02\": \"劳动节\",\r\n \"2019-05-03\": \"劳动节\",\r\n \"2019-05-04\": \"劳动节\",\r\n \"2019-06-07\": \"端午节\",\r\n \"2019-06-08\": \"端午节\",\r\n \"2019-06-09\": \"端午节\",\r\n \"2019-09-13\": \"中秋节\",\r\n \"2019-09-14\": \"中秋节\",\r\n \"2019-09-15\": \"中秋节\",\r\n \"2019-10-01\": \"国庆节\",\r\n \"2019-10-02\": \"国庆节\",\r\n \"2019-10-03\": \"国庆节\",\r\n \"2019-10-04\": \"国庆节\",\r\n \"2019-10-05\": \"国庆节\",\r\n \"2019-10-06\": \"国庆节\",\r\n \"2019-10-07\": \"国庆节\",\r\n \"2020-01-01\": \"元旦\",\r\n \"2020-01-24\": \"春节\",\r\n \"2020-01-25\": \"春节\",\r\n \"2020-01-26\": \"春节\",\r\n \"2020-01-27\": \"春节\",\r\n \"2020-01-28\": \"春节\",\r\n \"2020-01-29\": \"春节\",\r\n \"2020-01-30\": \"春节\",\r\n \"2020-04-04\": \"清明节\",\r\n \"2020-04-05\": \"清明节\",\r\n \"2020-04-06\": \"清明节\",\r\n \"2020-05-01\": \"劳动节\",\r\n \"2020-05-02\": \"劳动节\",\r\n \"2020-05-03\": \"劳动节\",\r\n \"2020-05-04\": \"劳动节\",\r\n \"2020-05-05\": \"劳动节\",\r\n \"2020-06-25\": \"端午节\",\r\n \"2020-06-26\": \"端午节\",\r\n \"2020-06-27\": \"端午节\",\r\n \"2020-10-01\": \"国庆节\",\r\n \"2020-10-02\": \"国庆节\",\r\n \"2020-10-03\": \"国庆节\",\r\n \"2020-10-04\": \"国庆节\",\r\n \"2020-10-05\": \"国庆节\",\r\n \"2020-10-06\": \"国庆节\",\r\n \"2020-10-07\": \"国庆节\",\r\n \"2020-10-08\": \"国庆节\",\r\n \"2021-01-01\": \"元旦\",\r\n \"2021-02-11\": \"春节\",\r\n \"2021-02-12\": \"春节\",\r\n \"2021-02-13\": \"春节\",\r\n \"2021-02-14\": \"春节\",\r\n \"2021-02-15\": \"春节\",\r\n \"2021-02-16\": \"春节\",\r\n \"2021-02-17\": \"春节\",\r\n \"2021-04-03\": \"清明节\",\r\n \"2021-04-04\": \"清明节\",\r\n \"2021-04-05\": \"清明节\",\r\n \"2021-05-01\": \"劳动节\",\r\n \"2021-05-02\": \"劳动节\",\r\n \"2021-05-03\": \"劳动节\",\r\n \"2021-05-04\": \"劳动节\",\r\n \"2021-05-05\": \"劳动节\",\r\n \"2021-06-12\": \"端午节\",\r\n \"2021-06-13\": \"端午节\",\r\n \"2021-06-14\": \"端午节\",\r\n \"2021-09-19\": \"中秋节\",\r\n \"2021-09-20\": \"中秋节\",\r\n \"2021-09-21\": \"中秋节\",\r\n \"2021-10-01\": \"国庆节\",\r\n \"2021-10-02\": \"国庆节\",\r\n \"2021-10-03\": \"国庆节\",\r\n \"2021-10-04\": \"国庆节\",\r\n \"2021-10-05\": \"国庆节\",\r\n \"2021-10-06\": \"国庆节\",\r\n \"2021-10-07\": \"国庆节\",\r\n \"2022-01-01\": \"元旦\",\r\n \"2022-01-02\": \"元旦\",\r\n \"2022-01-03\": \"元旦\",\r\n \"2022-01-31\": \"春节\",\r\n \"2022-02-01\": \"春节\",\r\n \"2022-02-02\": \"春节\",\r\n \"2022-02-03\": \"春节\",\r\n \"2022-02-04\": \"春节\",\r\n \"2022-02-05\": \"春节\",\r\n \"2022-02-06\": \"春节\",\r\n \"2022-04-03\": \"清明节\",\r\n \"2022-04-04\": \"清明节\",\r\n \"2022-04-05\": \"清明节\",\r\n \"2022-04-30\": \"劳动节\",\r\n \"2022-05-01\": \"劳动节\",\r\n \"2022-05-02\": \"劳动节\",\r\n \"2022-05-03\": \"劳动节\",\r\n \"2022-05-04\": \"劳动节\",\r\n \"2022-06-03\": \"端午节\",\r\n \"2022-06-04\": \"端午节\",\r\n \"2022-06-05\": \"端午节\",\r\n \"2022-09-10\": \"中秋节\",\r\n \"2022-09-11\": \"中秋节\",\r\n \"2022-09-12\": \"中秋节\",\r\n \"2022-10-01\": \"国庆节\",\r\n \"2022-10-02\": \"国庆节\",\r\n \"2022-10-03\": \"国庆节\",\r\n \"2022-10-04\": \"国庆节\",\r\n \"2022-10-05\": \"国庆节\",\r\n \"2022-10-06\": \"国庆节\",\r\n \"2022-10-07\": \"国庆节\",\r\n \"2022-12-31\": \"元旦\",\r\n \"2023-01-01\": \"元旦\",\r\n \"2023-01-02\": \"元旦\",\r\n \"2023-01-21\": \"春节\",\r\n \"2023-01-22\": \"春节\",\r\n \"2023-01-23\": \"春节\",\r\n \"2023-01-24\": \"春节\",\r\n \"2023-01-25\": \"春节\",\r\n \"2023-01-26\": \"春节\",\r\n \"2023-01-27\": \"春节\",\r\n \"2023-04-05\": \"清明节\",\r\n \"2023-04-29\": \"劳动节\",\r\n \"2023-04-30\": \"劳动节\",\r\n \"2023-05-01\": \"劳动节\",\r\n \"2023-05-02\": \"劳动节\",\r\n \"2023-05-03\": \"劳动节\",\r\n \"2023-06-22\": \"端午节\",\r\n \"2023-06-23\": \"端午节\",\r\n \"2023-06-24\": \"端午节\",\r\n \"2023-09-29\": \"中秋节\",\r\n \"2023-09-30\": \"中秋节\",\r\n \"2023-10-01\": \"国庆节\",\r\n \"2023-10-02\": \"国庆节\",\r\n \"2023-10-03\": \"国庆节\",\r\n \"2023-10-04\": \"国庆节\",\r\n \"2023-10-05\": \"国庆节\",\r\n \"2023-10-06\": \"国庆节\",\r\n \"2024-01-01\": \"元旦\",\r\n \"2024-02-10\": \"春节\",\r\n \"2024-02-11\": \"春节\",\r\n \"2024-02-12\": \"春节\",\r\n \"2024-02-13\": \"春节\",\r\n \"2024-02-14\": \"春节\",\r\n \"2024-02-15\": \"春节\",\r\n \"2024-02-16\": \"春节\",\r\n \"2024-02-17\": \"春节\",\r\n \"2024-04-04\": \"清明节\",\r\n \"2024-04-05\": \"清明节\",\r\n \"2024-04-06\": \"清明节\",\r\n \"2024-05-01\": \"劳动节\",\r\n \"2024-05-02\": \"劳动节\",\r\n \"2024-05-03\": \"劳动节\",\r\n \"2024-05-04\": \"劳动节\",\r\n \"2024-05-05\": \"劳动节\",\r\n \"2024-06-10\": \"端午节\",\r\n \"2024-09-15\": \"中秋节\",\r\n \"2024-09-16\": \"中秋节\",\r\n \"2024-09-17\": \"中秋节\",\r\n \"2024-10-01\": \"国庆节\",\r\n \"2024-10-02\": \"国庆节\",\r\n \"2024-10-03\": \"国庆节\",\r\n \"2024-10-04\": \"国庆节\",\r\n \"2024-10-05\": \"国庆节\",\r\n \"2024-10-06\": \"国庆节\",\r\n \"2024-10-07\": \"国庆节\",\r\n};\r\n\r\nvar WEEKENDS_WORKDAY = {\r\n \"2018-02-11\": \"补春节\",\r\n \"2018-02-24\": \"补春节\",\r\n \"2018-04-08\": \"补清明节\",\r\n \"2018-04-28\": \"补劳动节\",\r\n \"2018-09-29\": \"补国庆节\",\r\n \"2018-09-30\": \"补国庆节\",\r\n \"2018-12-29\": \"补元旦\",\r\n \"2019-02-02\": \"补春节\",\r\n \"2019-02-03\": \"补春节\",\r\n \"2019-04-28\": \"补劳动节\",\r\n \"2019-05-05\": \"补劳动节\",\r\n \"2019-09-29\": \"补国庆节\",\r\n \"2019-10-12\": \"补国庆节\",\r\n \"2020-01-19\": \"补春节\",\r\n \"2020-02-01\": \"补春节\",\r\n \"2020-04-26\": \"补劳动节\",\r\n \"2020-05-09\": \"补劳动节\",\r\n \"2020-06-28\": \"补端午节\",\r\n \"2020-09-27\": \"补国庆节\",\r\n \"2020-10-10\": \"补国庆节\",\r\n \"2021-02-07\": \"补春节\",\r\n \"2021-02-20\": \"补春节\", \r\n \"2021-04-25\": \"补劳动节\", \r\n \"2021-05-08\": \"补劳动节\", \r\n \"2021-09-18\": \"补中秋节\", \r\n \"2021-09-26\": \"补国庆节\", \r\n \"2021-10-09\": \"补国庆节\", \r\n \"2022-01-29\": \"补春节\",\r\n \"2022-01-30\": \"补春节\",\r\n \"2022-04-02\": \"补清明节\",\r\n \"2022-04-24\": \"补劳动节\", \r\n \"2022-05-07\": \"补劳动节\", \r\n \"2022-10-08\": \"补国庆节\", \r\n \"2022-10-09\": \"补国庆节\", \r\n \"2023-01-28\": \"补春节\",\r\n \"2023-01-29\": \"补春节\",\r\n \"2023-04-23\": \"补劳动节\", \r\n \"2023-05-06\": \"补劳动节\", \r\n \"2023-06-25\": \"补端午节\", \r\n \"2023-10-07\": \"补国庆节\", \r\n \"2023-10-08\": \"补国庆节\", \r\n \"2024-02-04\": \"补春节\",\r\n \"2024-02-18\": \"补春节\",\r\n \"2024-04-07\": \"补清明节\", \r\n \"2024-04-28\": \"补劳动节\", \r\n \"2024-05-11\": \"补劳动节\", \r\n \"2024-09-14\": \"补中秋节\", \r\n \"2024-09-29\": \"补国庆节\", \r\n \"2024-10-12\": \"补国庆节\", \r\n};\r\n\r\nfunction isWorkday(day) {\r\n var fd = formatDate(day);\r\n if (WEEKENDS_WORKDAY[fd.date]) {\r\n return true;\r\n } else if (HOLIDAYS[fd.date]) {\r\n return false;\r\n }\r\n return !fd.weekends;\r\n}\r\n\r\nfunction isHoliday(day) {\r\n return !isWorkday(day);\r\n}\r\n\r\nfunction isAddtionalWorkday(day) {\r\n var fd = formatDate(day);\r\n return !!WEEKENDS_WORKDAY[fd.date];\r\n}\r\n\r\nfunction getFestival(day) {\r\n var fd = formatDate(day);\r\n if (WEEKENDS_WORKDAY[fd.date]) {\r\n return WEEKENDS_WORKDAY[fd.date];\r\n } else if (HOLIDAYS[fd.date]) {\r\n return HOLIDAYS[fd.date]\r\n }\r\n return fd.weekends ? '周末' : '工作日';\r\n}\r\n\r\nfunction formatDate(day) {\r\n var d = new Date(day),\r\n month = \"\" + (d.getMonth() + 1),\r\n day = \"\" + d.getDate(),\r\n year = d.getFullYear();\r\n if (month.length < 2) {\r\n month = \"0\" + month\r\n };\r\n if (day.length < 2) {\r\n day = \"0\" + day\r\n };\r\n\r\n return {\r\n date: [year, month, day].join(\"-\"),\r\n weekends: [0, 6].indexOf(d.getDay()) > -1\r\n };\r\n}\r\n"]} \ No newline at end of file diff --git a/miniprogram_npm/crypto-js/index.js b/miniprogram_npm/crypto-js/index.js new file mode 100644 index 0000000..4d77465 --- /dev/null +++ b/miniprogram_npm/crypto-js/index.js @@ -0,0 +1,7365 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1739326742650, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS; + +})); +}, function(modId) {var map = {"./core":1739326742651,"./x64-core":1739326742652,"./lib-typedarrays":1739326742653,"./enc-utf16":1739326742654,"./enc-base64":1739326742655,"./enc-base64url":1739326742656,"./md5":1739326742657,"./sha1":1739326742658,"./sha256":1739326742659,"./sha224":1739326742660,"./sha512":1739326742661,"./sha384":1739326742662,"./sha3":1739326742663,"./ripemd160":1739326742664,"./hmac":1739326742665,"./pbkdf2":1739326742666,"./evpkdf":1739326742667,"./cipher-core":1739326742668,"./mode-cfb":1739326742669,"./mode-ctr":1739326742670,"./mode-ctr-gladman":1739326742671,"./mode-ofb":1739326742672,"./mode-ecb":1739326742673,"./pad-ansix923":1739326742674,"./pad-iso10126":1739326742675,"./pad-iso97971":1739326742676,"./pad-zeropadding":1739326742677,"./pad-nopadding":1739326742678,"./format-hex":1739326742679,"./aes":1739326742680,"./tripledes":1739326742681,"./rc4":1739326742682,"./rabbit":1739326742683,"./rabbit-legacy":1739326742684,"./blowfish":1739326742685}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742651, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } + else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(); + } +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof global !== 'undefined' && global.crypto) { + crypto = global.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && typeof require === 'function') { + try { + crypto = require('crypto'); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + return CryptoJS; + +})); +}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742652, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); + }()); + + + return CryptoJS; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742653, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; + }()); + + + return CryptoJS.lib.WordArray; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742654, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } + }()); + + + return CryptoJS.enc.Utf16; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742655, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742656, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64url encoding strategy. + */ + var Base64url = C_enc.Base64url = { + /** + * Converts a word array to a Base64url string. + * + * @param {WordArray} wordArray The word array. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {string} The Base64url string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); + */ + stringify: function (wordArray, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = urlSafe ? this._safe_map : this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64url string to a word array. + * + * @param {string} base64Str The Base64url string. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64url.parse(base64String); + */ + parse: function (base64Str, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + + // Shortcuts + var base64StrLength = base64Str.length; + var map = urlSafe ? this._safe_map : this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64url; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742657, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + return CryptoJS.MD5; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742658, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + return CryptoJS.SHA1; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742659, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + return CryptoJS.SHA256; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742660, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); + }()); + + + return CryptoJS.SHA224; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./sha256":1739326742659}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742661, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + var Wil; + var Wih; + + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + Wih = Wi.high = M[offset + i * 2] | 0; + Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + Wil = gamma0l + Wi7l; + Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + Wil = Wil + gamma1l; + Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + Wil = Wil + Wi16l; + Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); + }()); + + + return CryptoJS.SHA512; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./x64-core":1739326742652}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742662, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); + }()); + + + return CryptoJS.SHA384; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./x64-core":1739326742652,"./sha512":1739326742661}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742663, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + var tMsw; + var tLsw; + + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); + }(Math)); + + + return CryptoJS.SHA3; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./x64-core":1739326742652}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742664, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); + }(Math)); + + + return CryptoJS.RIPEMD160; + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742665, function(require, module, exports) { +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + +})); +}, function(modId) { var map = {"./core":1739326742651}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742666, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA256 + * @property {number} iterations The number of iterations to perform. Default: 250000 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA256, + iterations: 250000 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.PBKDF2; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./sha256":1739326742659,"./hmac":1739326742665}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742667, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha1", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.EvpKDF; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./sha1":1739326742658,"./hmac":1739326742665}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742668, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./evpkdf")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./evpkdf"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + +})); +}, function(modId) { var map = {"./core":1739326742651,"./evpkdf":1739326742667}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742669, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher Feedback block mode. + */ + CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + var keystream; + + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; + }()); + + + return CryptoJS.mode.CFB; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742670, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Counter block mode. + */ + CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; + }()); + + + return CryptoJS.mode.CTR; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742671, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ + CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; + }()); + + + + + return CryptoJS.mode.CTRGladman; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742672, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + return CryptoJS.mode.OFB; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742673, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Electronic Codebook block mode. + */ + CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }()); + + + return CryptoJS.mode.ECB; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742674, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ANSI X.923 padding strategy. + */ + CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Ansix923; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742675, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO 10126 padding strategy. + */ + CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Iso10126; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742676, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO/IEC 9797-1 Padding Method 2. + */ + CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } + }; + + + return CryptoJS.pad.Iso97971; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742677, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + for (var i = data.sigBytes - 1; i >= 0; i--) { + if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + data.sigBytes = i + 1; + break; + } + } + } + }; + + + return CryptoJS.pad.ZeroPadding; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742678, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * A noop padding strategy. + */ + CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } + }; + + + return CryptoJS.pad.NoPadding; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742679, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; + }()); + + + return CryptoJS.format.Hex; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742680, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + return CryptoJS.AES; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742681, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + // Make sure the key length is valid (64, 128 or >= 192 bit) + if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { + throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); + } + + // Extend the key according to the keying options defined in 3DES standard + var key1 = keyWords.slice(0, 2); + var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); + var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(key1)); + this._des2 = DES.createEncryptor(WordArray.create(key2)); + this._des3 = DES.createEncryptor(WordArray.create(key3)); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); + }()); + + + return CryptoJS.TripleDES; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742682, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); + }()); + + + return CryptoJS.RC4; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742683, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); + }()); + + + return CryptoJS.Rabbit; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742684, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); + }()); + + + return CryptoJS.RabbitLegacy; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +__DEFINE__(1739326742685, function(require, module, exports) { +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + const N = 16; + + //Origin pbox and sbox, derived from PI + const ORIG_P = [ + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B + ]; + + const ORIG_S = [ + [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ], + [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ], + [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ], + [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ] + ]; + + var BLOWFISH_CTX = { + pbox: [], + sbox: [] + } + + function F(ctx, x){ + let a = (x >> 24) & 0xFF; + let b = (x >> 16) & 0xFF; + let c = (x >> 8) & 0xFF; + let d = x & 0xFF; + + let y = ctx.sbox[0][a] + ctx.sbox[1][b]; + y = y ^ ctx.sbox[2][c]; + y = y + ctx.sbox[3][d]; + + return y; + } + + function BlowFish_Encrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = 0; i < N; ++i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[N]; + Xl = Xl ^ ctx.pbox[N + 1]; + + return {left: Xl, right: Xr}; + } + + function BlowFish_Decrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = N + 1; i > 1; --i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[1]; + Xl = Xl ^ ctx.pbox[0]; + + return {left: Xl, right: Xr}; + } + + /** + * Initialization ctx's pbox and sbox. + * + * @param {Object} ctx The object has pbox and sbox. + * @param {Array} key An array of 32-bit words. + * @param {int} keysize The length of the key. + * + * @example + * + * BlowFishInit(BLOWFISH_CTX, key, 128/32); + */ + function BlowFishInit(ctx, key, keysize) + { + for(let Row = 0; Row < 4; Row++) + { + ctx.sbox[Row] = []; + for(let Col = 0; Col < 256; Col++) + { + ctx.sbox[Row][Col] = ORIG_S[Row][Col]; + } + } + + let keyIndex = 0; + for(let index = 0; index < N + 2; index++) + { + ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; + keyIndex++; + if(keyIndex >= keysize) + { + keyIndex = 0; + } + } + + let Data1 = 0; + let Data2 = 0; + let res = 0; + for(let i = 0; i < N + 2; i += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.pbox[i] = Data1; + ctx.pbox[i + 1] = Data2; + } + + for(let i = 0; i < 4; i++) + { + for(let j = 0; j < 256; j += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.sbox[i][j] = Data1; + ctx.sbox[i][j + 1] = Data2; + } + } + + return true; + } + + /** + * Blowfish block cipher algorithm. + */ + var Blowfish = C_algo.Blowfish = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + //Initialization pbox and sbox + BlowFishInit(BLOWFISH_CTX, keyWords, keySize); + }, + + encryptBlock: function (M, offset) { + var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + decryptBlock: function (M, offset) { + var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + blockSize: 64/32, + + keySize: 128/32, + + ivSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); + */ + C.Blowfish = BlockCipher._createHelper(Blowfish); + }()); + + + return CryptoJS.Blowfish; + +})); +}, function(modId) { var map = {"./core":1739326742651,"./enc-base64":1739326742655,"./md5":1739326742657,"./evpkdf":1739326742667,"./cipher-core":1739326742668}; return __REQUIRE__(map[modId], modId); }) +return __REQUIRE__(1739326742650); +})() +//miniprogram-npm-outsideDeps=["crypto"] +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/miniprogram_npm/crypto-js/index.js.map b/miniprogram_npm/crypto-js/index.js.map new file mode 100644 index 0000000..1a16ff5 --- /dev/null +++ b/miniprogram_npm/crypto-js/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js","core.js","x64-core.js","lib-typedarrays.js","enc-utf16.js","enc-base64.js","enc-base64url.js","md5.js","sha1.js","sha256.js","sha224.js","sha512.js","sha384.js","sha3.js","ripemd160.js","hmac.js","pbkdf2.js","evpkdf.js","cipher-core.js","mode-cfb.js","mode-ctr.js","mode-ctr-gladman.js","mode-ofb.js","mode-ecb.js","pad-ansix923.js","pad-iso10126.js","pad-iso97971.js","pad-zeropadding.js","pad-nopadding.js","format-hex.js","aes.js","tripledes.js","rc4.js","rabbit.js","rabbit-legacy.js","blowfish.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA,AENA;ADIA,ADGA,AENA;ADIA,ADGA,AENA;ADIA,ADGA,AGTA,ADGA;ADIA,ADGA,AGTA,ADGA;ADIA,ADGA,AGTA,ADGA;ADIA,AGTA,AJYA,AGTA,ADGA;ADIA,AGTA,AJYA,AGTA,ADGA;ADIA,AGTA,AJYA,AGTA,ADGA;ADIA,AIZA,ADGA,AJYA,AGTA,ADGA;ADIA,AIZA,ADGA,AJYA,AGTA,ADGA;ADIA,AIZA,ADGA,AJYA,AGTA,ADGA;ADIA,AIZA,ACHA,AFMA,ADGA,ADGA;ADIA,AIZA,ACHA,AFMA,ADGA,ADGA;ADIA,AIZA,ACHA,AFMA,ADGA,ADGA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ALeA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ALeA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ALeA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ANkBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ANkBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ANkBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ACHA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ACHA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,ACHA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,APqBA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AENA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AENA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AENA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AGTA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AGTA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AGTA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,ACHA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,ADGA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AOrBA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AWjCA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;ADIA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AS3BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AHSA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AHSA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AHSA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,ACHA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,ACHA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,ACHA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AJYA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AENA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AENA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AENA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,ANkBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ARwBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ARwBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ARwBA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,AT2BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,AT2BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,AT2BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AV8BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AV8BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AV8BA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,ACHA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,ACHA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,ACHA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,AZoCA,AIZA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AFMA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;AgB/CA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AT2BA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AFMA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AgBhDA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AgBhDA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AgBhDA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AiBnDA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AiBnDA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AiBnDA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AZoCA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AGTA,ADGA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,AENA,ADGA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,AENA,ADGA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,ACHA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,ACHA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,ACHA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ADGA,AENA,AENA,ACHA,ACHA,ACHA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ACHA,AENA,ACHA,AENA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,ADGA,ADGA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ACHA,AENA,AGTA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AGTA,AGTA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,AMlBA,AXiCA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,AYpCA,AENA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AIZA,ACHA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AYpCA,Ad0CA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AFMA,AavCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AWjCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AWjCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AWjCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AWjCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AKfA,AWjCA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ANkBA,ACHA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,Ac1CA,ALeA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AgBhDA,AFMA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,Ac1CA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,Ac1CA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,Ac1CA,ARwBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,AS3BA,AkBtDA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ALeA,AIZA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,ADGA,AlBsDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AMlBA,A2BjFA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AiCnGA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AiCnGA,ADGA,AnByDA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AiCnGA,ApB4DA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AavCA,ADGA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA,A7BuFA;A4BnFA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;ADIA,AKfA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AFMA,AoB5DA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,AYpCA,AkBtDA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AIXA,AjBmDA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AjBmDA,A8B1FA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA,AavCA;AbwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":[";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\troot.CryptoJS = factory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\treturn CryptoJS;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory();\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\troot.CryptoJS = factory();\r\n\t}\r\n}(this, function () {\r\n\r\n\t/*globals window, global, require*/\r\n\r\n\t/**\r\n\t * CryptoJS core components.\r\n\t */\r\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\r\n\r\n\t var crypto;\r\n\r\n\t // Native crypto from window (Browser)\r\n\t if (typeof window !== 'undefined' && window.crypto) {\r\n\t crypto = window.crypto;\r\n\t }\r\n\r\n\t // Native crypto in web worker (Browser)\r\n\t if (typeof self !== 'undefined' && self.crypto) {\r\n\t crypto = self.crypto;\r\n\t }\r\n\r\n\t // Native crypto from worker\r\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\r\n\t crypto = globalThis.crypto;\r\n\t }\r\n\r\n\t // Native (experimental IE 11) crypto from window (Browser)\r\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\r\n\t crypto = window.msCrypto;\r\n\t }\r\n\r\n\t // Native crypto from global (NodeJS)\r\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\r\n\t crypto = global.crypto;\r\n\t }\r\n\r\n\t // Native crypto import via require (NodeJS)\r\n\t if (!crypto && typeof require === 'function') {\r\n\t try {\r\n\t crypto = require('crypto');\r\n\t } catch (err) {}\r\n\t }\r\n\r\n\t /*\r\n\t * Cryptographically secure pseudorandom number generator\r\n\t *\r\n\t * As Math.random() is cryptographically not safe to use\r\n\t */\r\n\t var cryptoSecureRandomInt = function () {\r\n\t if (crypto) {\r\n\t // Use getRandomValues method (Browser)\r\n\t if (typeof crypto.getRandomValues === 'function') {\r\n\t try {\r\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\r\n\t } catch (err) {}\r\n\t }\r\n\r\n\t // Use randomBytes method (NodeJS)\r\n\t if (typeof crypto.randomBytes === 'function') {\r\n\t try {\r\n\t return crypto.randomBytes(4).readInt32LE();\r\n\t } catch (err) {}\r\n\t }\r\n\t }\r\n\r\n\t throw new Error('Native crypto module could not be used to get secure random number.');\r\n\t };\r\n\r\n\t /*\r\n\t * Local polyfill of Object.create\r\n\r\n\t */\r\n\t var create = Object.create || (function () {\r\n\t function F() {}\r\n\r\n\t return function (obj) {\r\n\t var subtype;\r\n\r\n\t F.prototype = obj;\r\n\r\n\t subtype = new F();\r\n\r\n\t F.prototype = null;\r\n\r\n\t return subtype;\r\n\t };\r\n\t }());\r\n\r\n\t /**\r\n\t * CryptoJS namespace.\r\n\t */\r\n\t var C = {};\r\n\r\n\t /**\r\n\t * Library namespace.\r\n\t */\r\n\t var C_lib = C.lib = {};\r\n\r\n\t /**\r\n\t * Base object for prototypal inheritance.\r\n\t */\r\n\t var Base = C_lib.Base = (function () {\r\n\r\n\r\n\t return {\r\n\t /**\r\n\t * Creates a new object that inherits from this object.\r\n\t *\r\n\t * @param {Object} overrides Properties to copy into the new object.\r\n\t *\r\n\t * @return {Object} The new object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var MyType = CryptoJS.lib.Base.extend({\r\n\t * field: 'value',\r\n\t *\r\n\t * method: function () {\r\n\t * }\r\n\t * });\r\n\t */\r\n\t extend: function (overrides) {\r\n\t // Spawn\r\n\t var subtype = create(this);\r\n\r\n\t // Augment\r\n\t if (overrides) {\r\n\t subtype.mixIn(overrides);\r\n\t }\r\n\r\n\t // Create default initializer\r\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\r\n\t subtype.init = function () {\r\n\t subtype.$super.init.apply(this, arguments);\r\n\t };\r\n\t }\r\n\r\n\t // Initializer's prototype is the subtype object\r\n\t subtype.init.prototype = subtype;\r\n\r\n\t // Reference supertype\r\n\t subtype.$super = this;\r\n\r\n\t return subtype;\r\n\t },\r\n\r\n\t /**\r\n\t * Extends this object and runs the init method.\r\n\t * Arguments to create() will be passed to init().\r\n\t *\r\n\t * @return {Object} The new object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var instance = MyType.create();\r\n\t */\r\n\t create: function () {\r\n\t var instance = this.extend();\r\n\t instance.init.apply(instance, arguments);\r\n\r\n\t return instance;\r\n\t },\r\n\r\n\t /**\r\n\t * Initializes a newly created object.\r\n\t * Override this method to add some logic when your objects are created.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var MyType = CryptoJS.lib.Base.extend({\r\n\t * init: function () {\r\n\t * // ...\r\n\t * }\r\n\t * });\r\n\t */\r\n\t init: function () {\r\n\t },\r\n\r\n\t /**\r\n\t * Copies properties into this object.\r\n\t *\r\n\t * @param {Object} properties The properties to mix in.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * MyType.mixIn({\r\n\t * field: 'value'\r\n\t * });\r\n\t */\r\n\t mixIn: function (properties) {\r\n\t for (var propertyName in properties) {\r\n\t if (properties.hasOwnProperty(propertyName)) {\r\n\t this[propertyName] = properties[propertyName];\r\n\t }\r\n\t }\r\n\r\n\t // IE won't copy toString using the loop above\r\n\t if (properties.hasOwnProperty('toString')) {\r\n\t this.toString = properties.toString;\r\n\t }\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a copy of this object.\r\n\t *\r\n\t * @return {Object} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = instance.clone();\r\n\t */\r\n\t clone: function () {\r\n\t return this.init.prototype.extend(this);\r\n\t }\r\n\t };\r\n\t }());\r\n\r\n\t /**\r\n\t * An array of 32-bit words.\r\n\t *\r\n\t * @property {Array} words The array of 32-bit words.\r\n\t * @property {number} sigBytes The number of significant bytes in this word array.\r\n\t */\r\n\t var WordArray = C_lib.WordArray = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created word array.\r\n\t *\r\n\t * @param {Array} words (Optional) An array of 32-bit words.\r\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.lib.WordArray.create();\r\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\r\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\r\n\t */\r\n\t init: function (words, sigBytes) {\r\n\t words = this.words = words || [];\r\n\r\n\t if (sigBytes != undefined) {\r\n\t this.sigBytes = sigBytes;\r\n\t } else {\r\n\t this.sigBytes = words.length * 4;\r\n\t }\r\n\t },\r\n\r\n\t /**\r\n\t * Converts this word array to a string.\r\n\t *\r\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\r\n\t *\r\n\t * @return {string} The stringified word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var string = wordArray + '';\r\n\t * var string = wordArray.toString();\r\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\r\n\t */\r\n\t toString: function (encoder) {\r\n\t return (encoder || Hex).stringify(this);\r\n\t },\r\n\r\n\t /**\r\n\t * Concatenates a word array to this word array.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array to append.\r\n\t *\r\n\t * @return {WordArray} This word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * wordArray1.concat(wordArray2);\r\n\t */\r\n\t concat: function (wordArray) {\r\n\t // Shortcuts\r\n\t var thisWords = this.words;\r\n\t var thatWords = wordArray.words;\r\n\t var thisSigBytes = this.sigBytes;\r\n\t var thatSigBytes = wordArray.sigBytes;\r\n\r\n\t // Clamp excess bits\r\n\t this.clamp();\r\n\r\n\t // Concat\r\n\t if (thisSigBytes % 4) {\r\n\t // Copy one byte at a time\r\n\t for (var i = 0; i < thatSigBytes; i++) {\r\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\r\n\t }\r\n\t } else {\r\n\t // Copy one word at a time\r\n\t for (var j = 0; j < thatSigBytes; j += 4) {\r\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\r\n\t }\r\n\t }\r\n\t this.sigBytes += thatSigBytes;\r\n\r\n\t // Chainable\r\n\t return this;\r\n\t },\r\n\r\n\t /**\r\n\t * Removes insignificant bits.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * wordArray.clamp();\r\n\t */\r\n\t clamp: function () {\r\n\t // Shortcuts\r\n\t var words = this.words;\r\n\t var sigBytes = this.sigBytes;\r\n\r\n\t // Clamp\r\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\r\n\t words.length = Math.ceil(sigBytes / 4);\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a copy of this word array.\r\n\t *\r\n\t * @return {WordArray} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = wordArray.clone();\r\n\t */\r\n\t clone: function () {\r\n\t var clone = Base.clone.call(this);\r\n\t clone.words = this.words.slice(0);\r\n\r\n\t return clone;\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a word array filled with random bytes.\r\n\t *\r\n\t * @param {number} nBytes The number of random bytes to generate.\r\n\t *\r\n\t * @return {WordArray} The random word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\r\n\t */\r\n\t random: function (nBytes) {\r\n\t var words = [];\r\n\r\n\t for (var i = 0; i < nBytes; i += 4) {\r\n\t words.push(cryptoSecureRandomInt());\r\n\t }\r\n\r\n\t return new WordArray.init(words, nBytes);\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Encoder namespace.\r\n\t */\r\n\t var C_enc = C.enc = {};\r\n\r\n\t /**\r\n\t * Hex encoding strategy.\r\n\t */\r\n\t var Hex = C_enc.Hex = {\r\n\t /**\r\n\t * Converts a word array to a hex string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The hex string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\r\n\t // Convert\r\n\t var hexChars = [];\r\n\t for (var i = 0; i < sigBytes; i++) {\r\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n\t hexChars.push((bite >>> 4).toString(16));\r\n\t hexChars.push((bite & 0x0f).toString(16));\r\n\t }\r\n\r\n\t return hexChars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a hex string to a word array.\r\n\t *\r\n\t * @param {string} hexStr The hex string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\r\n\t */\r\n\t parse: function (hexStr) {\r\n\t // Shortcut\r\n\t var hexStrLength = hexStr.length;\r\n\r\n\t // Convert\r\n\t var words = [];\r\n\t for (var i = 0; i < hexStrLength; i += 2) {\r\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\r\n\t }\r\n\r\n\t return new WordArray.init(words, hexStrLength / 2);\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * Latin1 encoding strategy.\r\n\t */\r\n\t var Latin1 = C_enc.Latin1 = {\r\n\t /**\r\n\t * Converts a word array to a Latin1 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The Latin1 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\r\n\t // Convert\r\n\t var latin1Chars = [];\r\n\t for (var i = 0; i < sigBytes; i++) {\r\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n\t latin1Chars.push(String.fromCharCode(bite));\r\n\t }\r\n\r\n\t return latin1Chars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a Latin1 string to a word array.\r\n\t *\r\n\t * @param {string} latin1Str The Latin1 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\r\n\t */\r\n\t parse: function (latin1Str) {\r\n\t // Shortcut\r\n\t var latin1StrLength = latin1Str.length;\r\n\r\n\t // Convert\r\n\t var words = [];\r\n\t for (var i = 0; i < latin1StrLength; i++) {\r\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\r\n\t }\r\n\r\n\t return new WordArray.init(words, latin1StrLength);\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * UTF-8 encoding strategy.\r\n\t */\r\n\t var Utf8 = C_enc.Utf8 = {\r\n\t /**\r\n\t * Converts a word array to a UTF-8 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-8 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t try {\r\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\r\n\t } catch (e) {\r\n\t throw new Error('Malformed UTF-8 data');\r\n\t }\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a UTF-8 string to a word array.\r\n\t *\r\n\t * @param {string} utf8Str The UTF-8 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\r\n\t */\r\n\t parse: function (utf8Str) {\r\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * Abstract buffered block algorithm template.\r\n\t *\r\n\t * The property blockSize must be implemented in a concrete subtype.\r\n\t *\r\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\r\n\t */\r\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\r\n\t /**\r\n\t * Resets this block algorithm's data buffer to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * bufferedBlockAlgorithm.reset();\r\n\t */\r\n\t reset: function () {\r\n\t // Initial values\r\n\t this._data = new WordArray.init();\r\n\t this._nDataBytes = 0;\r\n\t },\r\n\r\n\t /**\r\n\t * Adds new data to this block algorithm's buffer.\r\n\t *\r\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * bufferedBlockAlgorithm._append('data');\r\n\t * bufferedBlockAlgorithm._append(wordArray);\r\n\t */\r\n\t _append: function (data) {\r\n\t // Convert string to WordArray, else assume WordArray already\r\n\t if (typeof data == 'string') {\r\n\t data = Utf8.parse(data);\r\n\t }\r\n\r\n\t // Append\r\n\t this._data.concat(data);\r\n\t this._nDataBytes += data.sigBytes;\r\n\t },\r\n\r\n\t /**\r\n\t * Processes available data blocks.\r\n\t *\r\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\r\n\t *\r\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\r\n\t *\r\n\t * @return {WordArray} The processed data.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var processedData = bufferedBlockAlgorithm._process();\r\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\r\n\t */\r\n\t _process: function (doFlush) {\r\n\t var processedWords;\r\n\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\t var dataSigBytes = data.sigBytes;\r\n\t var blockSize = this.blockSize;\r\n\t var blockSizeBytes = blockSize * 4;\r\n\r\n\t // Count blocks ready\r\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\r\n\t if (doFlush) {\r\n\t // Round up to include partial blocks\r\n\t nBlocksReady = Math.ceil(nBlocksReady);\r\n\t } else {\r\n\t // Round down to include only full blocks,\r\n\t // less the number of blocks that must remain in the buffer\r\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\r\n\t }\r\n\r\n\t // Count words ready\r\n\t var nWordsReady = nBlocksReady * blockSize;\r\n\r\n\t // Count bytes ready\r\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\r\n\r\n\t // Process blocks\r\n\t if (nWordsReady) {\r\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\r\n\t // Perform concrete-algorithm logic\r\n\t this._doProcessBlock(dataWords, offset);\r\n\t }\r\n\r\n\t // Remove processed words\r\n\t processedWords = dataWords.splice(0, nWordsReady);\r\n\t data.sigBytes -= nBytesReady;\r\n\t }\r\n\r\n\t // Return processed words\r\n\t return new WordArray.init(processedWords, nBytesReady);\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a copy of this object.\r\n\t *\r\n\t * @return {Object} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = bufferedBlockAlgorithm.clone();\r\n\t */\r\n\t clone: function () {\r\n\t var clone = Base.clone.call(this);\r\n\t clone._data = this._data.clone();\r\n\r\n\t return clone;\r\n\t },\r\n\r\n\t _minBufferSize: 0\r\n\t });\r\n\r\n\t /**\r\n\t * Abstract hasher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\r\n\t */\r\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t */\r\n\t cfg: Base.extend(),\r\n\r\n\t /**\r\n\t * Initializes a newly created hasher.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hasher = CryptoJS.algo.SHA256.create();\r\n\t */\r\n\t init: function (cfg) {\r\n\t // Apply config defaults\r\n\t this.cfg = this.cfg.extend(cfg);\r\n\r\n\t // Set initial values\r\n\t this.reset();\r\n\t },\r\n\r\n\t /**\r\n\t * Resets this hasher to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hasher.reset();\r\n\t */\r\n\t reset: function () {\r\n\t // Reset data buffer\r\n\t BufferedBlockAlgorithm.reset.call(this);\r\n\r\n\t // Perform concrete-hasher logic\r\n\t this._doReset();\r\n\t },\r\n\r\n\t /**\r\n\t * Updates this hasher with a message.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate The message to append.\r\n\t *\r\n\t * @return {Hasher} This hasher.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hasher.update('message');\r\n\t * hasher.update(wordArray);\r\n\t */\r\n\t update: function (messageUpdate) {\r\n\t // Append\r\n\t this._append(messageUpdate);\r\n\r\n\t // Update the hash\r\n\t this._process();\r\n\r\n\t // Chainable\r\n\t return this;\r\n\t },\r\n\r\n\t /**\r\n\t * Finalizes the hash computation.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = hasher.finalize();\r\n\t * var hash = hasher.finalize('message');\r\n\t * var hash = hasher.finalize(wordArray);\r\n\t */\r\n\t finalize: function (messageUpdate) {\r\n\t // Final message update\r\n\t if (messageUpdate) {\r\n\t this._append(messageUpdate);\r\n\t }\r\n\r\n\t // Perform concrete-hasher logic\r\n\t var hash = this._doFinalize();\r\n\r\n\t return hash;\r\n\t },\r\n\r\n\t blockSize: 512/32,\r\n\r\n\t /**\r\n\t * Creates a shortcut function to a hasher's object interface.\r\n\t *\r\n\t * @param {Hasher} hasher The hasher to create a helper for.\r\n\t *\r\n\t * @return {Function} The shortcut function.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\r\n\t */\r\n\t _createHelper: function (hasher) {\r\n\t return function (message, cfg) {\r\n\t return new hasher.init(cfg).finalize(message);\r\n\t };\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\r\n\t *\r\n\t * @return {Function} The shortcut function.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\r\n\t */\r\n\t _createHmacHelper: function (hasher) {\r\n\t return function (message, key) {\r\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\r\n\t };\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Algorithm namespace.\r\n\t */\r\n\t var C_algo = C.algo = {};\r\n\r\n\t return C;\r\n\t}(Math));\r\n\r\n\r\n\treturn CryptoJS;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function (undefined) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Base = C_lib.Base;\r\n\t var X32WordArray = C_lib.WordArray;\r\n\r\n\t /**\r\n\t * x64 namespace.\r\n\t */\r\n\t var C_x64 = C.x64 = {};\r\n\r\n\t /**\r\n\t * A 64-bit word.\r\n\t */\r\n\t var X64Word = C_x64.Word = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created 64-bit word.\r\n\t *\r\n\t * @param {number} high The high 32 bits.\r\n\t * @param {number} low The low 32 bits.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\r\n\t */\r\n\t init: function (high, low) {\r\n\t this.high = high;\r\n\t this.low = low;\r\n\t }\r\n\r\n\t /**\r\n\t * Bitwise NOTs this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after negating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var negated = x64Word.not();\r\n\t */\r\n\t // not: function () {\r\n\t // var high = ~this.high;\r\n\t // var low = ~this.low;\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Bitwise ANDs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to AND with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after ANDing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var anded = x64Word.and(anotherX64Word);\r\n\t */\r\n\t // and: function (word) {\r\n\t // var high = this.high & word.high;\r\n\t // var low = this.low & word.low;\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Bitwise ORs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to OR with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after ORing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ored = x64Word.or(anotherX64Word);\r\n\t */\r\n\t // or: function (word) {\r\n\t // var high = this.high | word.high;\r\n\t // var low = this.low | word.low;\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Bitwise XORs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to XOR with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after XORing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var xored = x64Word.xor(anotherX64Word);\r\n\t */\r\n\t // xor: function (word) {\r\n\t // var high = this.high ^ word.high;\r\n\t // var low = this.low ^ word.low;\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Shifts this word n bits to the left.\r\n\t *\r\n\t * @param {number} n The number of bits to shift.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after shifting.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var shifted = x64Word.shiftL(25);\r\n\t */\r\n\t // shiftL: function (n) {\r\n\t // if (n < 32) {\r\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\r\n\t // var low = this.low << n;\r\n\t // } else {\r\n\t // var high = this.low << (n - 32);\r\n\t // var low = 0;\r\n\t // }\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Shifts this word n bits to the right.\r\n\t *\r\n\t * @param {number} n The number of bits to shift.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after shifting.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var shifted = x64Word.shiftR(7);\r\n\t */\r\n\t // shiftR: function (n) {\r\n\t // if (n < 32) {\r\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\r\n\t // var high = this.high >>> n;\r\n\t // } else {\r\n\t // var low = this.high >>> (n - 32);\r\n\t // var high = 0;\r\n\t // }\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // },\r\n\r\n\t /**\r\n\t * Rotates this word n bits to the left.\r\n\t *\r\n\t * @param {number} n The number of bits to rotate.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after rotating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var rotated = x64Word.rotL(25);\r\n\t */\r\n\t // rotL: function (n) {\r\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\r\n\t // },\r\n\r\n\t /**\r\n\t * Rotates this word n bits to the right.\r\n\t *\r\n\t * @param {number} n The number of bits to rotate.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after rotating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var rotated = x64Word.rotR(7);\r\n\t */\r\n\t // rotR: function (n) {\r\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\r\n\t // },\r\n\r\n\t /**\r\n\t * Adds this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to add with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after adding.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var added = x64Word.add(anotherX64Word);\r\n\t */\r\n\t // add: function (word) {\r\n\t // var low = (this.low + word.low) | 0;\r\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\r\n\t // var high = (this.high + word.high + carry) | 0;\r\n\r\n\t // return X64Word.create(high, low);\r\n\t // }\r\n\t });\r\n\r\n\t /**\r\n\t * An array of 64-bit words.\r\n\t *\r\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\r\n\t * @property {number} sigBytes The number of significant bytes in this word array.\r\n\t */\r\n\t var X64WordArray = C_x64.WordArray = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created word array.\r\n\t *\r\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\r\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create();\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create([\r\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\r\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\r\n\t * ]);\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create([\r\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\r\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\r\n\t * ], 10);\r\n\t */\r\n\t init: function (words, sigBytes) {\r\n\t words = this.words = words || [];\r\n\r\n\t if (sigBytes != undefined) {\r\n\t this.sigBytes = sigBytes;\r\n\t } else {\r\n\t this.sigBytes = words.length * 8;\r\n\t }\r\n\t },\r\n\r\n\t /**\r\n\t * Converts this 64-bit word array to a 32-bit word array.\r\n\t *\r\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var x32WordArray = x64WordArray.toX32();\r\n\t */\r\n\t toX32: function () {\r\n\t // Shortcuts\r\n\t var x64Words = this.words;\r\n\t var x64WordsLength = x64Words.length;\r\n\r\n\t // Convert\r\n\t var x32Words = [];\r\n\t for (var i = 0; i < x64WordsLength; i++) {\r\n\t var x64Word = x64Words[i];\r\n\t x32Words.push(x64Word.high);\r\n\t x32Words.push(x64Word.low);\r\n\t }\r\n\r\n\t return X32WordArray.create(x32Words, this.sigBytes);\r\n\t },\r\n\r\n\t /**\r\n\t * Creates a copy of this word array.\r\n\t *\r\n\t * @return {X64WordArray} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = x64WordArray.clone();\r\n\t */\r\n\t clone: function () {\r\n\t var clone = Base.clone.call(this);\r\n\r\n\t // Clone \"words\" array\r\n\t var words = clone.words = this.words.slice(0);\r\n\r\n\t // Clone each X64Word object\r\n\t var wordsLength = words.length;\r\n\t for (var i = 0; i < wordsLength; i++) {\r\n\t words[i] = words[i].clone();\r\n\t }\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Check if typed arrays are supported\r\n\t if (typeof ArrayBuffer != 'function') {\r\n\t return;\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\r\n\t // Reference original init\r\n\t var superInit = WordArray.init;\r\n\r\n\t // Augment WordArray.init to handle typed arrays\r\n\t var subInit = WordArray.init = function (typedArray) {\r\n\t // Convert buffers to uint8\r\n\t if (typedArray instanceof ArrayBuffer) {\r\n\t typedArray = new Uint8Array(typedArray);\r\n\t }\r\n\r\n\t // Convert other array views to uint8\r\n\t if (\r\n\t typedArray instanceof Int8Array ||\r\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\r\n\t typedArray instanceof Int16Array ||\r\n\t typedArray instanceof Uint16Array ||\r\n\t typedArray instanceof Int32Array ||\r\n\t typedArray instanceof Uint32Array ||\r\n\t typedArray instanceof Float32Array ||\r\n\t typedArray instanceof Float64Array\r\n\t ) {\r\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\r\n\t }\r\n\r\n\t // Handle Uint8Array\r\n\t if (typedArray instanceof Uint8Array) {\r\n\t // Shortcut\r\n\t var typedArrayByteLength = typedArray.byteLength;\r\n\r\n\t // Extract bytes\r\n\t var words = [];\r\n\t for (var i = 0; i < typedArrayByteLength; i++) {\r\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\r\n\t }\r\n\r\n\t // Initialize this word array\r\n\t superInit.call(this, words, typedArrayByteLength);\r\n\t } else {\r\n\t // Else call normal init\r\n\t superInit.apply(this, arguments);\r\n\t }\r\n\t };\r\n\r\n\t subInit.prototype = WordArray;\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.lib.WordArray;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_enc = C.enc;\r\n\r\n\t /**\r\n\t * UTF-16 BE encoding strategy.\r\n\t */\r\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\r\n\t /**\r\n\t * Converts a word array to a UTF-16 BE string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-16 BE string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\r\n\t // Convert\r\n\t var utf16Chars = [];\r\n\t for (var i = 0; i < sigBytes; i += 2) {\r\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\r\n\t utf16Chars.push(String.fromCharCode(codePoint));\r\n\t }\r\n\r\n\t return utf16Chars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a UTF-16 BE string to a word array.\r\n\t *\r\n\t * @param {string} utf16Str The UTF-16 BE string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\r\n\t */\r\n\t parse: function (utf16Str) {\r\n\t // Shortcut\r\n\t var utf16StrLength = utf16Str.length;\r\n\r\n\t // Convert\r\n\t var words = [];\r\n\t for (var i = 0; i < utf16StrLength; i++) {\r\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\r\n\t }\r\n\r\n\t return WordArray.create(words, utf16StrLength * 2);\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * UTF-16 LE encoding strategy.\r\n\t */\r\n\t C_enc.Utf16LE = {\r\n\t /**\r\n\t * Converts a word array to a UTF-16 LE string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-16 LE string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\r\n\t // Convert\r\n\t var utf16Chars = [];\r\n\t for (var i = 0; i < sigBytes; i += 2) {\r\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\r\n\t utf16Chars.push(String.fromCharCode(codePoint));\r\n\t }\r\n\r\n\t return utf16Chars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a UTF-16 LE string to a word array.\r\n\t *\r\n\t * @param {string} utf16Str The UTF-16 LE string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\r\n\t */\r\n\t parse: function (utf16Str) {\r\n\t // Shortcut\r\n\t var utf16StrLength = utf16Str.length;\r\n\r\n\t // Convert\r\n\t var words = [];\r\n\t for (var i = 0; i < utf16StrLength; i++) {\r\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\r\n\t }\r\n\r\n\t return WordArray.create(words, utf16StrLength * 2);\r\n\t }\r\n\t };\r\n\r\n\t function swapEndian(word) {\r\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\r\n\t }\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.enc.Utf16;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_enc = C.enc;\r\n\r\n\t /**\r\n\t * Base64 encoding strategy.\r\n\t */\r\n\t var Base64 = C_enc.Base64 = {\r\n\t /**\r\n\t * Converts a word array to a Base64 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The Base64 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray) {\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\t var map = this._map;\r\n\r\n\t // Clamp excess bits\r\n\t wordArray.clamp();\r\n\r\n\t // Convert\r\n\t var base64Chars = [];\r\n\t for (var i = 0; i < sigBytes; i += 3) {\r\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\r\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\r\n\r\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\r\n\r\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\r\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\r\n\t }\r\n\t }\r\n\r\n\t // Add padding\r\n\t var paddingChar = map.charAt(64);\r\n\t if (paddingChar) {\r\n\t while (base64Chars.length % 4) {\r\n\t base64Chars.push(paddingChar);\r\n\t }\r\n\t }\r\n\r\n\t return base64Chars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a Base64 string to a word array.\r\n\t *\r\n\t * @param {string} base64Str The Base64 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\r\n\t */\r\n\t parse: function (base64Str) {\r\n\t // Shortcuts\r\n\t var base64StrLength = base64Str.length;\r\n\t var map = this._map;\r\n\t var reverseMap = this._reverseMap;\r\n\r\n\t if (!reverseMap) {\r\n\t reverseMap = this._reverseMap = [];\r\n\t for (var j = 0; j < map.length; j++) {\r\n\t reverseMap[map.charCodeAt(j)] = j;\r\n\t }\r\n\t }\r\n\r\n\t // Ignore padding\r\n\t var paddingChar = map.charAt(64);\r\n\t if (paddingChar) {\r\n\t var paddingIndex = base64Str.indexOf(paddingChar);\r\n\t if (paddingIndex !== -1) {\r\n\t base64StrLength = paddingIndex;\r\n\t }\r\n\t }\r\n\r\n\t // Convert\r\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\r\n\r\n\t },\r\n\r\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\r\n\t };\r\n\r\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\r\n\t var words = [];\r\n\t var nBytes = 0;\r\n\t for (var i = 0; i < base64StrLength; i++) {\r\n\t if (i % 4) {\r\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\r\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\r\n\t var bitsCombined = bits1 | bits2;\r\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\r\n\t nBytes++;\r\n\t }\r\n\t }\r\n\t return WordArray.create(words, nBytes);\r\n\t }\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.enc.Base64;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_enc = C.enc;\r\n\r\n\t /**\r\n\t * Base64url encoding strategy.\r\n\t */\r\n\t var Base64url = C_enc.Base64url = {\r\n\t /**\r\n\t * Converts a word array to a Base64url string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @param {boolean} urlSafe Whether to use url safe\r\n\t *\r\n\t * @return {string} The Base64url string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\r\n\t */\r\n\t stringify: function (wordArray, urlSafe) {\r\n\t if (urlSafe === undefined) {\r\n\t urlSafe = true\r\n\t }\r\n\t // Shortcuts\r\n\t var words = wordArray.words;\r\n\t var sigBytes = wordArray.sigBytes;\r\n\t var map = urlSafe ? this._safe_map : this._map;\r\n\r\n\t // Clamp excess bits\r\n\t wordArray.clamp();\r\n\r\n\t // Convert\r\n\t var base64Chars = [];\r\n\t for (var i = 0; i < sigBytes; i += 3) {\r\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\r\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\r\n\r\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\r\n\r\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\r\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\r\n\t }\r\n\t }\r\n\r\n\t // Add padding\r\n\t var paddingChar = map.charAt(64);\r\n\t if (paddingChar) {\r\n\t while (base64Chars.length % 4) {\r\n\t base64Chars.push(paddingChar);\r\n\t }\r\n\t }\r\n\r\n\t return base64Chars.join('');\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a Base64url string to a word array.\r\n\t *\r\n\t * @param {string} base64Str The Base64url string.\r\n\t *\r\n\t * @param {boolean} urlSafe Whether to use url safe\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\r\n\t */\r\n\t parse: function (base64Str, urlSafe) {\r\n\t if (urlSafe === undefined) {\r\n\t urlSafe = true\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var base64StrLength = base64Str.length;\r\n\t var map = urlSafe ? this._safe_map : this._map;\r\n\t var reverseMap = this._reverseMap;\r\n\r\n\t if (!reverseMap) {\r\n\t reverseMap = this._reverseMap = [];\r\n\t for (var j = 0; j < map.length; j++) {\r\n\t reverseMap[map.charCodeAt(j)] = j;\r\n\t }\r\n\t }\r\n\r\n\t // Ignore padding\r\n\t var paddingChar = map.charAt(64);\r\n\t if (paddingChar) {\r\n\t var paddingIndex = base64Str.indexOf(paddingChar);\r\n\t if (paddingIndex !== -1) {\r\n\t base64StrLength = paddingIndex;\r\n\t }\r\n\t }\r\n\r\n\t // Convert\r\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\r\n\r\n\t },\r\n\r\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\r\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\r\n\t };\r\n\r\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\r\n\t var words = [];\r\n\t var nBytes = 0;\r\n\t for (var i = 0; i < base64StrLength; i++) {\r\n\t if (i % 4) {\r\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\r\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\r\n\t var bitsCombined = bits1 | bits2;\r\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\r\n\t nBytes++;\r\n\t }\r\n\t }\r\n\t return WordArray.create(words, nBytes);\r\n\t }\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.enc.Base64url;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function (Math) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Constants table\r\n\t var T = [];\r\n\r\n\t // Compute constants\r\n\t (function () {\r\n\t for (var i = 0; i < 64; i++) {\r\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\r\n\t }\r\n\t }());\r\n\r\n\t /**\r\n\t * MD5 hash algorithm.\r\n\t */\r\n\t var MD5 = C_algo.MD5 = Hasher.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new WordArray.init([\r\n\t 0x67452301, 0xefcdab89,\r\n\t 0x98badcfe, 0x10325476\r\n\t ]);\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Swap endian\r\n\t for (var i = 0; i < 16; i++) {\r\n\t // Shortcuts\r\n\t var offset_i = offset + i;\r\n\t var M_offset_i = M[offset_i];\r\n\r\n\t M[offset_i] = (\r\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var H = this._hash.words;\r\n\r\n\t var M_offset_0 = M[offset + 0];\r\n\t var M_offset_1 = M[offset + 1];\r\n\t var M_offset_2 = M[offset + 2];\r\n\t var M_offset_3 = M[offset + 3];\r\n\t var M_offset_4 = M[offset + 4];\r\n\t var M_offset_5 = M[offset + 5];\r\n\t var M_offset_6 = M[offset + 6];\r\n\t var M_offset_7 = M[offset + 7];\r\n\t var M_offset_8 = M[offset + 8];\r\n\t var M_offset_9 = M[offset + 9];\r\n\t var M_offset_10 = M[offset + 10];\r\n\t var M_offset_11 = M[offset + 11];\r\n\t var M_offset_12 = M[offset + 12];\r\n\t var M_offset_13 = M[offset + 13];\r\n\t var M_offset_14 = M[offset + 14];\r\n\t var M_offset_15 = M[offset + 15];\r\n\r\n\t // Working variables\r\n\t var a = H[0];\r\n\t var b = H[1];\r\n\t var c = H[2];\r\n\t var d = H[3];\r\n\r\n\t // Computation\r\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\r\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\r\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\r\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\r\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\r\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\r\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\r\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\r\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\r\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\r\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\r\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\r\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\r\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\r\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\r\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\r\n\r\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\r\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\r\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\r\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\r\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\r\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\r\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\r\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\r\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\r\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\r\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\r\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\r\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\r\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\r\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\r\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\r\n\r\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\r\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\r\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\r\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\r\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\r\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\r\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\r\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\r\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\r\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\r\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\r\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\r\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\r\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\r\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\r\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\r\n\r\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\r\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\r\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\r\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\r\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\r\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\r\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\r\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\r\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\r\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\r\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\r\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\r\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\r\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\r\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\r\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\r\n\r\n\t // Intermediate hash value\r\n\t H[0] = (H[0] + a) | 0;\r\n\t H[1] = (H[1] + b) | 0;\r\n\t H[2] = (H[2] + c) | 0;\r\n\t H[3] = (H[3] + d) | 0;\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\r\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\r\n\t var nBitsTotalL = nBitsTotal;\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\r\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\r\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\r\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\r\n\t );\r\n\r\n\t data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Shortcuts\r\n\t var hash = this._hash;\r\n\t var H = hash.words;\r\n\r\n\t // Swap endian\r\n\t for (var i = 0; i < 4; i++) {\r\n\t // Shortcut\r\n\t var H_i = H[i];\r\n\r\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n\t }\r\n\r\n\t // Return final computed hash\r\n\t return hash;\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\t clone._hash = this._hash.clone();\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\r\n\t function FF(a, b, c, d, x, s, t) {\r\n\t var n = a + ((b & c) | (~b & d)) + x + t;\r\n\t return ((n << s) | (n >>> (32 - s))) + b;\r\n\t }\r\n\r\n\t function GG(a, b, c, d, x, s, t) {\r\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\r\n\t return ((n << s) | (n >>> (32 - s))) + b;\r\n\t }\r\n\r\n\t function HH(a, b, c, d, x, s, t) {\r\n\t var n = a + (b ^ c ^ d) + x + t;\r\n\t return ((n << s) | (n >>> (32 - s))) + b;\r\n\t }\r\n\r\n\t function II(a, b, c, d, x, s, t) {\r\n\t var n = a + (c ^ (b | ~d)) + x + t;\r\n\t return ((n << s) | (n >>> (32 - s))) + b;\r\n\t }\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.MD5('message');\r\n\t * var hash = CryptoJS.MD5(wordArray);\r\n\t */\r\n\t C.MD5 = Hasher._createHelper(MD5);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacMD5(message, key);\r\n\t */\r\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\r\n\t}(Math));\r\n\r\n\r\n\treturn CryptoJS.MD5;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Reusable object\r\n\t var W = [];\r\n\r\n\t /**\r\n\t * SHA-1 hash algorithm.\r\n\t */\r\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new WordArray.init([\r\n\t 0x67452301, 0xefcdab89,\r\n\t 0x98badcfe, 0x10325476,\r\n\t 0xc3d2e1f0\r\n\t ]);\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcut\r\n\t var H = this._hash.words;\r\n\r\n\t // Working variables\r\n\t var a = H[0];\r\n\t var b = H[1];\r\n\t var c = H[2];\r\n\t var d = H[3];\r\n\t var e = H[4];\r\n\r\n\t // Computation\r\n\t for (var i = 0; i < 80; i++) {\r\n\t if (i < 16) {\r\n\t W[i] = M[offset + i] | 0;\r\n\t } else {\r\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n\t W[i] = (n << 1) | (n >>> 31);\r\n\t }\r\n\r\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\r\n\t if (i < 20) {\r\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\r\n\t } else if (i < 40) {\r\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\r\n\t } else if (i < 60) {\r\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\r\n\t } else /* if (i < 80) */ {\r\n\t t += (b ^ c ^ d) - 0x359d3e2a;\r\n\t }\r\n\r\n\t e = d;\r\n\t d = c;\r\n\t c = (b << 30) | (b >>> 2);\r\n\t b = a;\r\n\t a = t;\r\n\t }\r\n\r\n\t // Intermediate hash value\r\n\t H[0] = (H[0] + a) | 0;\r\n\t H[1] = (H[1] + b) | 0;\r\n\t H[2] = (H[2] + c) | 0;\r\n\t H[3] = (H[3] + d) | 0;\r\n\t H[4] = (H[4] + e) | 0;\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\r\n\t data.sigBytes = dataWords.length * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Return final computed hash\r\n\t return this._hash;\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\t clone._hash = this._hash.clone();\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA1('message');\r\n\t * var hash = CryptoJS.SHA1(wordArray);\r\n\t */\r\n\t C.SHA1 = Hasher._createHelper(SHA1);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\r\n\t */\r\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.SHA1;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function (Math) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Initialization and round constants tables\r\n\t var H = [];\r\n\t var K = [];\r\n\r\n\t // Compute constants\r\n\t (function () {\r\n\t function isPrime(n) {\r\n\t var sqrtN = Math.sqrt(n);\r\n\t for (var factor = 2; factor <= sqrtN; factor++) {\r\n\t if (!(n % factor)) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\r\n\t return true;\r\n\t }\r\n\r\n\t function getFractionalBits(n) {\r\n\t return ((n - (n | 0)) * 0x100000000) | 0;\r\n\t }\r\n\r\n\t var n = 2;\r\n\t var nPrime = 0;\r\n\t while (nPrime < 64) {\r\n\t if (isPrime(n)) {\r\n\t if (nPrime < 8) {\r\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\r\n\t }\r\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\r\n\r\n\t nPrime++;\r\n\t }\r\n\r\n\t n++;\r\n\t }\r\n\t }());\r\n\r\n\t // Reusable object\r\n\t var W = [];\r\n\r\n\t /**\r\n\t * SHA-256 hash algorithm.\r\n\t */\r\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new WordArray.init(H.slice(0));\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcut\r\n\t var H = this._hash.words;\r\n\r\n\t // Working variables\r\n\t var a = H[0];\r\n\t var b = H[1];\r\n\t var c = H[2];\r\n\t var d = H[3];\r\n\t var e = H[4];\r\n\t var f = H[5];\r\n\t var g = H[6];\r\n\t var h = H[7];\r\n\r\n\t // Computation\r\n\t for (var i = 0; i < 64; i++) {\r\n\t if (i < 16) {\r\n\t W[i] = M[offset + i] | 0;\r\n\t } else {\r\n\t var gamma0x = W[i - 15];\r\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\r\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\r\n\t (gamma0x >>> 3);\r\n\r\n\t var gamma1x = W[i - 2];\r\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\r\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\r\n\t (gamma1x >>> 10);\r\n\r\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\r\n\t }\r\n\r\n\t var ch = (e & f) ^ (~e & g);\r\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\r\n\r\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\r\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\r\n\r\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\r\n\t var t2 = sigma0 + maj;\r\n\r\n\t h = g;\r\n\t g = f;\r\n\t f = e;\r\n\t e = (d + t1) | 0;\r\n\t d = c;\r\n\t c = b;\r\n\t b = a;\r\n\t a = (t1 + t2) | 0;\r\n\t }\r\n\r\n\t // Intermediate hash value\r\n\t H[0] = (H[0] + a) | 0;\r\n\t H[1] = (H[1] + b) | 0;\r\n\t H[2] = (H[2] + c) | 0;\r\n\t H[3] = (H[3] + d) | 0;\r\n\t H[4] = (H[4] + e) | 0;\r\n\t H[5] = (H[5] + f) | 0;\r\n\t H[6] = (H[6] + g) | 0;\r\n\t H[7] = (H[7] + h) | 0;\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\r\n\t data.sigBytes = dataWords.length * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Return final computed hash\r\n\t return this._hash;\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\t clone._hash = this._hash.clone();\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA256('message');\r\n\t * var hash = CryptoJS.SHA256(wordArray);\r\n\t */\r\n\t C.SHA256 = Hasher._createHelper(SHA256);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\r\n\t */\r\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\r\n\t}(Math));\r\n\r\n\r\n\treturn CryptoJS.SHA256;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./sha256\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_algo = C.algo;\r\n\t var SHA256 = C_algo.SHA256;\r\n\r\n\t /**\r\n\t * SHA-224 hash algorithm.\r\n\t */\r\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new WordArray.init([\r\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\r\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\r\n\t ]);\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t var hash = SHA256._doFinalize.call(this);\r\n\r\n\t hash.sigBytes -= 4;\r\n\r\n\t return hash;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA224('message');\r\n\t * var hash = CryptoJS.SHA224(wordArray);\r\n\t */\r\n\t C.SHA224 = SHA256._createHelper(SHA224);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\r\n\t */\r\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.SHA224;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_x64 = C.x64;\r\n\t var X64Word = C_x64.Word;\r\n\t var X64WordArray = C_x64.WordArray;\r\n\t var C_algo = C.algo;\r\n\r\n\t function X64Word_create() {\r\n\t return X64Word.create.apply(X64Word, arguments);\r\n\t }\r\n\r\n\t // Constants\r\n\t var K = [\r\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\r\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\r\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\r\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\r\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\r\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\r\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\r\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\r\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\r\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\r\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\r\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\r\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\r\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\r\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\r\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\r\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\r\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\r\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\r\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\r\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\r\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\r\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\r\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\r\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\r\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\r\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\r\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\r\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\r\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\r\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\r\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\r\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\r\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\r\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\r\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\r\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\r\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\r\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\r\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\r\n\t ];\r\n\r\n\t // Reusable objects\r\n\t var W = [];\r\n\t (function () {\r\n\t for (var i = 0; i < 80; i++) {\r\n\t W[i] = X64Word_create();\r\n\t }\r\n\t }());\r\n\r\n\t /**\r\n\t * SHA-512 hash algorithm.\r\n\t */\r\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new X64WordArray.init([\r\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\r\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\r\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\r\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\r\n\t ]);\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcuts\r\n\t var H = this._hash.words;\r\n\r\n\t var H0 = H[0];\r\n\t var H1 = H[1];\r\n\t var H2 = H[2];\r\n\t var H3 = H[3];\r\n\t var H4 = H[4];\r\n\t var H5 = H[5];\r\n\t var H6 = H[6];\r\n\t var H7 = H[7];\r\n\r\n\t var H0h = H0.high;\r\n\t var H0l = H0.low;\r\n\t var H1h = H1.high;\r\n\t var H1l = H1.low;\r\n\t var H2h = H2.high;\r\n\t var H2l = H2.low;\r\n\t var H3h = H3.high;\r\n\t var H3l = H3.low;\r\n\t var H4h = H4.high;\r\n\t var H4l = H4.low;\r\n\t var H5h = H5.high;\r\n\t var H5l = H5.low;\r\n\t var H6h = H6.high;\r\n\t var H6l = H6.low;\r\n\t var H7h = H7.high;\r\n\t var H7l = H7.low;\r\n\r\n\t // Working variables\r\n\t var ah = H0h;\r\n\t var al = H0l;\r\n\t var bh = H1h;\r\n\t var bl = H1l;\r\n\t var ch = H2h;\r\n\t var cl = H2l;\r\n\t var dh = H3h;\r\n\t var dl = H3l;\r\n\t var eh = H4h;\r\n\t var el = H4l;\r\n\t var fh = H5h;\r\n\t var fl = H5l;\r\n\t var gh = H6h;\r\n\t var gl = H6l;\r\n\t var hh = H7h;\r\n\t var hl = H7l;\r\n\r\n\t // Rounds\r\n\t for (var i = 0; i < 80; i++) {\r\n\t var Wil;\r\n\t var Wih;\r\n\r\n\t // Shortcut\r\n\t var Wi = W[i];\r\n\r\n\t // Extend message\r\n\t if (i < 16) {\r\n\t Wih = Wi.high = M[offset + i * 2] | 0;\r\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\r\n\t } else {\r\n\t // Gamma0\r\n\t var gamma0x = W[i - 15];\r\n\t var gamma0xh = gamma0x.high;\r\n\t var gamma0xl = gamma0x.low;\r\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\r\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\r\n\r\n\t // Gamma1\r\n\t var gamma1x = W[i - 2];\r\n\t var gamma1xh = gamma1x.high;\r\n\t var gamma1xl = gamma1x.low;\r\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\r\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\r\n\r\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\r\n\t var Wi7 = W[i - 7];\r\n\t var Wi7h = Wi7.high;\r\n\t var Wi7l = Wi7.low;\r\n\r\n\t var Wi16 = W[i - 16];\r\n\t var Wi16h = Wi16.high;\r\n\t var Wi16l = Wi16.low;\r\n\r\n\t Wil = gamma0l + Wi7l;\r\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\r\n\t Wil = Wil + gamma1l;\r\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\r\n\t Wil = Wil + Wi16l;\r\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\r\n\r\n\t Wi.high = Wih;\r\n\t Wi.low = Wil;\r\n\t }\r\n\r\n\t var chh = (eh & fh) ^ (~eh & gh);\r\n\t var chl = (el & fl) ^ (~el & gl);\r\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\r\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\r\n\r\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\r\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\r\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\r\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\r\n\r\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\r\n\t var Ki = K[i];\r\n\t var Kih = Ki.high;\r\n\t var Kil = Ki.low;\r\n\r\n\t var t1l = hl + sigma1l;\r\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\r\n\t var t1l = t1l + chl;\r\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\r\n\t var t1l = t1l + Kil;\r\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\r\n\t var t1l = t1l + Wil;\r\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\r\n\r\n\t // t2 = sigma0 + maj\r\n\t var t2l = sigma0l + majl;\r\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\r\n\r\n\t // Update working variables\r\n\t hh = gh;\r\n\t hl = gl;\r\n\t gh = fh;\r\n\t gl = fl;\r\n\t fh = eh;\r\n\t fl = el;\r\n\t el = (dl + t1l) | 0;\r\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\r\n\t dh = ch;\r\n\t dl = cl;\r\n\t ch = bh;\r\n\t cl = bl;\r\n\t bh = ah;\r\n\t bl = al;\r\n\t al = (t1l + t2l) | 0;\r\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\r\n\t }\r\n\r\n\t // Intermediate hash value\r\n\t H0l = H0.low = (H0l + al);\r\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\r\n\t H1l = H1.low = (H1l + bl);\r\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\r\n\t H2l = H2.low = (H2l + cl);\r\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\r\n\t H3l = H3.low = (H3l + dl);\r\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\r\n\t H4l = H4.low = (H4l + el);\r\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\r\n\t H5l = H5.low = (H5l + fl);\r\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\r\n\t H6l = H6.low = (H6l + gl);\r\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\r\n\t H7l = H7.low = (H7l + hl);\r\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\r\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\r\n\t data.sigBytes = dataWords.length * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Convert hash to 32-bit word array before returning\r\n\t var hash = this._hash.toX32();\r\n\r\n\t // Return final computed hash\r\n\t return hash;\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\t clone._hash = this._hash.clone();\r\n\r\n\t return clone;\r\n\t },\r\n\r\n\t blockSize: 1024/32\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA512('message');\r\n\t * var hash = CryptoJS.SHA512(wordArray);\r\n\t */\r\n\t C.SHA512 = Hasher._createHelper(SHA512);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\r\n\t */\r\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.SHA512;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_x64 = C.x64;\r\n\t var X64Word = C_x64.Word;\r\n\t var X64WordArray = C_x64.WordArray;\r\n\t var C_algo = C.algo;\r\n\t var SHA512 = C_algo.SHA512;\r\n\r\n\t /**\r\n\t * SHA-384 hash algorithm.\r\n\t */\r\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\r\n\t _doReset: function () {\r\n\t this._hash = new X64WordArray.init([\r\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\r\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\r\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\r\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\r\n\t ]);\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t var hash = SHA512._doFinalize.call(this);\r\n\r\n\t hash.sigBytes -= 16;\r\n\r\n\t return hash;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA384('message');\r\n\t * var hash = CryptoJS.SHA384(wordArray);\r\n\t */\r\n\t C.SHA384 = SHA512._createHelper(SHA384);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\r\n\t */\r\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.SHA384;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function (Math) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_x64 = C.x64;\r\n\t var X64Word = C_x64.Word;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Constants tables\r\n\t var RHO_OFFSETS = [];\r\n\t var PI_INDEXES = [];\r\n\t var ROUND_CONSTANTS = [];\r\n\r\n\t // Compute Constants\r\n\t (function () {\r\n\t // Compute rho offset constants\r\n\t var x = 1, y = 0;\r\n\t for (var t = 0; t < 24; t++) {\r\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\r\n\r\n\t var newX = y % 5;\r\n\t var newY = (2 * x + 3 * y) % 5;\r\n\t x = newX;\r\n\t y = newY;\r\n\t }\r\n\r\n\t // Compute pi index constants\r\n\t for (var x = 0; x < 5; x++) {\r\n\t for (var y = 0; y < 5; y++) {\r\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\r\n\t }\r\n\t }\r\n\r\n\t // Compute round constants\r\n\t var LFSR = 0x01;\r\n\t for (var i = 0; i < 24; i++) {\r\n\t var roundConstantMsw = 0;\r\n\t var roundConstantLsw = 0;\r\n\r\n\t for (var j = 0; j < 7; j++) {\r\n\t if (LFSR & 0x01) {\r\n\t var bitPosition = (1 << j) - 1;\r\n\t if (bitPosition < 32) {\r\n\t roundConstantLsw ^= 1 << bitPosition;\r\n\t } else /* if (bitPosition >= 32) */ {\r\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\r\n\t }\r\n\t }\r\n\r\n\t // Compute next LFSR\r\n\t if (LFSR & 0x80) {\r\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\r\n\t LFSR = (LFSR << 1) ^ 0x71;\r\n\t } else {\r\n\t LFSR <<= 1;\r\n\t }\r\n\t }\r\n\r\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\r\n\t }\r\n\t }());\r\n\r\n\t // Reusable objects for temporary values\r\n\t var T = [];\r\n\t (function () {\r\n\t for (var i = 0; i < 25; i++) {\r\n\t T[i] = X64Word.create();\r\n\t }\r\n\t }());\r\n\r\n\t /**\r\n\t * SHA-3 hash algorithm.\r\n\t */\r\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} outputLength\r\n\t * The desired number of bits in the output hash.\r\n\t * Only values permitted are: 224, 256, 384, 512.\r\n\t * Default: 512\r\n\t */\r\n\t cfg: Hasher.cfg.extend({\r\n\t outputLength: 512\r\n\t }),\r\n\r\n\t _doReset: function () {\r\n\t var state = this._state = []\r\n\t for (var i = 0; i < 25; i++) {\r\n\t state[i] = new X64Word.init();\r\n\t }\r\n\r\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcuts\r\n\t var state = this._state;\r\n\t var nBlockSizeLanes = this.blockSize / 2;\r\n\r\n\t // Absorb\r\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\r\n\t // Shortcuts\r\n\t var M2i = M[offset + 2 * i];\r\n\t var M2i1 = M[offset + 2 * i + 1];\r\n\r\n\t // Swap endian\r\n\t M2i = (\r\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\r\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t M2i1 = (\r\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\r\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\r\n\t );\r\n\r\n\t // Absorb message into state\r\n\t var lane = state[i];\r\n\t lane.high ^= M2i1;\r\n\t lane.low ^= M2i;\r\n\t }\r\n\r\n\t // Rounds\r\n\t for (var round = 0; round < 24; round++) {\r\n\t // Theta\r\n\t for (var x = 0; x < 5; x++) {\r\n\t // Mix column lanes\r\n\t var tMsw = 0, tLsw = 0;\r\n\t for (var y = 0; y < 5; y++) {\r\n\t var lane = state[x + 5 * y];\r\n\t tMsw ^= lane.high;\r\n\t tLsw ^= lane.low;\r\n\t }\r\n\r\n\t // Temporary values\r\n\t var Tx = T[x];\r\n\t Tx.high = tMsw;\r\n\t Tx.low = tLsw;\r\n\t }\r\n\t for (var x = 0; x < 5; x++) {\r\n\t // Shortcuts\r\n\t var Tx4 = T[(x + 4) % 5];\r\n\t var Tx1 = T[(x + 1) % 5];\r\n\t var Tx1Msw = Tx1.high;\r\n\t var Tx1Lsw = Tx1.low;\r\n\r\n\t // Mix surrounding columns\r\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\r\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\r\n\t for (var y = 0; y < 5; y++) {\r\n\t var lane = state[x + 5 * y];\r\n\t lane.high ^= tMsw;\r\n\t lane.low ^= tLsw;\r\n\t }\r\n\t }\r\n\r\n\t // Rho Pi\r\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\r\n\t var tMsw;\r\n\t var tLsw;\r\n\r\n\t // Shortcuts\r\n\t var lane = state[laneIndex];\r\n\t var laneMsw = lane.high;\r\n\t var laneLsw = lane.low;\r\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\r\n\r\n\t // Rotate lanes\r\n\t if (rhoOffset < 32) {\r\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\r\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\r\n\t } else /* if (rhoOffset >= 32) */ {\r\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\r\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\r\n\t }\r\n\r\n\t // Transpose lanes\r\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\r\n\t TPiLane.high = tMsw;\r\n\t TPiLane.low = tLsw;\r\n\t }\r\n\r\n\t // Rho pi at x = y = 0\r\n\t var T0 = T[0];\r\n\t var state0 = state[0];\r\n\t T0.high = state0.high;\r\n\t T0.low = state0.low;\r\n\r\n\t // Chi\r\n\t for (var x = 0; x < 5; x++) {\r\n\t for (var y = 0; y < 5; y++) {\r\n\t // Shortcuts\r\n\t var laneIndex = x + 5 * y;\r\n\t var lane = state[laneIndex];\r\n\t var TLane = T[laneIndex];\r\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\r\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\r\n\r\n\t // Mix rows\r\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\r\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\r\n\t }\r\n\t }\r\n\r\n\t // Iota\r\n\t var lane = state[0];\r\n\t var roundConstant = ROUND_CONSTANTS[round];\r\n\t lane.high ^= roundConstant.high;\r\n\t lane.low ^= roundConstant.low;\r\n\t }\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\t var blockSizeBits = this.blockSize * 32;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\r\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\r\n\t data.sigBytes = dataWords.length * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Shortcuts\r\n\t var state = this._state;\r\n\t var outputLengthBytes = this.cfg.outputLength / 8;\r\n\t var outputLengthLanes = outputLengthBytes / 8;\r\n\r\n\t // Squeeze\r\n\t var hashWords = [];\r\n\t for (var i = 0; i < outputLengthLanes; i++) {\r\n\t // Shortcuts\r\n\t var lane = state[i];\r\n\t var laneMsw = lane.high;\r\n\t var laneLsw = lane.low;\r\n\r\n\t // Swap endian\r\n\t laneMsw = (\r\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\r\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t laneLsw = (\r\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\r\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\r\n\t );\r\n\r\n\t // Squeeze state to retrieve hash\r\n\t hashWords.push(laneLsw);\r\n\t hashWords.push(laneMsw);\r\n\t }\r\n\r\n\t // Return final computed hash\r\n\t return new WordArray.init(hashWords, outputLengthBytes);\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\r\n\t var state = clone._state = this._state.slice(0);\r\n\t for (var i = 0; i < 25; i++) {\r\n\t state[i] = state[i].clone();\r\n\t }\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA3('message');\r\n\t * var hash = CryptoJS.SHA3(wordArray);\r\n\t */\r\n\t C.SHA3 = Hasher._createHelper(SHA3);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\r\n\t */\r\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\r\n\t}(Math));\r\n\r\n\r\n\treturn CryptoJS.SHA3;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/** @preserve\r\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\r\n\r\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n\r\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n\r\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\t*/\r\n\r\n\t(function (Math) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var Hasher = C_lib.Hasher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Constants table\r\n\t var _zl = WordArray.create([\r\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\r\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\r\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\r\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\r\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\r\n\t var _zr = WordArray.create([\r\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\r\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\r\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\r\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\r\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\r\n\t var _sl = WordArray.create([\r\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\r\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\r\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\r\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\r\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\r\n\t var _sr = WordArray.create([\r\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\r\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\r\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\r\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\r\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\r\n\r\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\r\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\r\n\r\n\t /**\r\n\t * RIPEMD160 hash algorithm.\r\n\t */\r\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\r\n\t _doReset: function () {\r\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\r\n\t // Swap endian\r\n\t for (var i = 0; i < 16; i++) {\r\n\t // Shortcuts\r\n\t var offset_i = offset + i;\r\n\t var M_offset_i = M[offset_i];\r\n\r\n\t // Swap\r\n\t M[offset_i] = (\r\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t }\r\n\t // Shortcut\r\n\t var H = this._hash.words;\r\n\t var hl = _hl.words;\r\n\t var hr = _hr.words;\r\n\t var zl = _zl.words;\r\n\t var zr = _zr.words;\r\n\t var sl = _sl.words;\r\n\t var sr = _sr.words;\r\n\r\n\t // Working variables\r\n\t var al, bl, cl, dl, el;\r\n\t var ar, br, cr, dr, er;\r\n\r\n\t ar = al = H[0];\r\n\t br = bl = H[1];\r\n\t cr = cl = H[2];\r\n\t dr = dl = H[3];\r\n\t er = el = H[4];\r\n\t // Computation\r\n\t var t;\r\n\t for (var i = 0; i < 80; i += 1) {\r\n\t t = (al + M[offset+zl[i]])|0;\r\n\t if (i<16){\r\n\t\t t += f1(bl,cl,dl) + hl[0];\r\n\t } else if (i<32) {\r\n\t\t t += f2(bl,cl,dl) + hl[1];\r\n\t } else if (i<48) {\r\n\t\t t += f3(bl,cl,dl) + hl[2];\r\n\t } else if (i<64) {\r\n\t\t t += f4(bl,cl,dl) + hl[3];\r\n\t } else {// if (i<80) {\r\n\t\t t += f5(bl,cl,dl) + hl[4];\r\n\t }\r\n\t t = t|0;\r\n\t t = rotl(t,sl[i]);\r\n\t t = (t+el)|0;\r\n\t al = el;\r\n\t el = dl;\r\n\t dl = rotl(cl, 10);\r\n\t cl = bl;\r\n\t bl = t;\r\n\r\n\t t = (ar + M[offset+zr[i]])|0;\r\n\t if (i<16){\r\n\t\t t += f5(br,cr,dr) + hr[0];\r\n\t } else if (i<32) {\r\n\t\t t += f4(br,cr,dr) + hr[1];\r\n\t } else if (i<48) {\r\n\t\t t += f3(br,cr,dr) + hr[2];\r\n\t } else if (i<64) {\r\n\t\t t += f2(br,cr,dr) + hr[3];\r\n\t } else {// if (i<80) {\r\n\t\t t += f1(br,cr,dr) + hr[4];\r\n\t }\r\n\t t = t|0;\r\n\t t = rotl(t,sr[i]) ;\r\n\t t = (t+er)|0;\r\n\t ar = er;\r\n\t er = dr;\r\n\t dr = rotl(cr, 10);\r\n\t cr = br;\r\n\t br = t;\r\n\t }\r\n\t // Intermediate hash value\r\n\t t = (H[1] + cl + dr)|0;\r\n\t H[1] = (H[2] + dl + er)|0;\r\n\t H[2] = (H[3] + el + ar)|0;\r\n\t H[3] = (H[4] + al + br)|0;\r\n\t H[4] = (H[0] + bl + cr)|0;\r\n\t H[0] = t;\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t // Shortcuts\r\n\t var data = this._data;\r\n\t var dataWords = data.words;\r\n\r\n\t var nBitsTotal = this._nDataBytes * 8;\r\n\t var nBitsLeft = data.sigBytes * 8;\r\n\r\n\t // Add padding\r\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\r\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\r\n\t );\r\n\t data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n\t // Hash final blocks\r\n\t this._process();\r\n\r\n\t // Shortcuts\r\n\t var hash = this._hash;\r\n\t var H = hash.words;\r\n\r\n\t // Swap endian\r\n\t for (var i = 0; i < 5; i++) {\r\n\t // Shortcut\r\n\t var H_i = H[i];\r\n\r\n\t // Swap\r\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n\t }\r\n\r\n\t // Return final computed hash\r\n\t return hash;\r\n\t },\r\n\r\n\t clone: function () {\r\n\t var clone = Hasher.clone.call(this);\r\n\t clone._hash = this._hash.clone();\r\n\r\n\t return clone;\r\n\t }\r\n\t });\r\n\r\n\r\n\t function f1(x, y, z) {\r\n\t return ((x) ^ (y) ^ (z));\r\n\r\n\t }\r\n\r\n\t function f2(x, y, z) {\r\n\t return (((x)&(y)) | ((~x)&(z)));\r\n\t }\r\n\r\n\t function f3(x, y, z) {\r\n\t return (((x) | (~(y))) ^ (z));\r\n\t }\r\n\r\n\t function f4(x, y, z) {\r\n\t return (((x) & (z)) | ((y)&(~(z))));\r\n\t }\r\n\r\n\t function f5(x, y, z) {\r\n\t return ((x) ^ ((y) |(~(z))));\r\n\r\n\t }\r\n\r\n\t function rotl(x,n) {\r\n\t return (x<>>(32-n));\r\n\t }\r\n\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.RIPEMD160('message');\r\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\r\n\t */\r\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\r\n\t */\r\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\r\n\t}(Math));\r\n\r\n\r\n\treturn CryptoJS.RIPEMD160;\r\n\r\n}));",";(function (root, factory) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Base = C_lib.Base;\r\n\t var C_enc = C.enc;\r\n\t var Utf8 = C_enc.Utf8;\r\n\t var C_algo = C.algo;\r\n\r\n\t /**\r\n\t * HMAC algorithm.\r\n\t */\r\n\t var HMAC = C_algo.HMAC = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created HMAC.\r\n\t *\r\n\t * @param {Hasher} hasher The hash algorithm to use.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\r\n\t */\r\n\t init: function (hasher, key) {\r\n\t // Init hasher\r\n\t hasher = this._hasher = new hasher.init();\r\n\r\n\t // Convert string to WordArray, else assume WordArray already\r\n\t if (typeof key == 'string') {\r\n\t key = Utf8.parse(key);\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var hasherBlockSize = hasher.blockSize;\r\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\r\n\r\n\t // Allow arbitrary length keys\r\n\t if (key.sigBytes > hasherBlockSizeBytes) {\r\n\t key = hasher.finalize(key);\r\n\t }\r\n\r\n\t // Clamp excess bits\r\n\t key.clamp();\r\n\r\n\t // Clone key for inner and outer pads\r\n\t var oKey = this._oKey = key.clone();\r\n\t var iKey = this._iKey = key.clone();\r\n\r\n\t // Shortcuts\r\n\t var oKeyWords = oKey.words;\r\n\t var iKeyWords = iKey.words;\r\n\r\n\t // XOR keys with pad constants\r\n\t for (var i = 0; i < hasherBlockSize; i++) {\r\n\t oKeyWords[i] ^= 0x5c5c5c5c;\r\n\t iKeyWords[i] ^= 0x36363636;\r\n\t }\r\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\r\n\r\n\t // Set initial values\r\n\t this.reset();\r\n\t },\r\n\r\n\t /**\r\n\t * Resets this HMAC to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hmacHasher.reset();\r\n\t */\r\n\t reset: function () {\r\n\t // Shortcut\r\n\t var hasher = this._hasher;\r\n\r\n\t // Reset\r\n\t hasher.reset();\r\n\t hasher.update(this._iKey);\r\n\t },\r\n\r\n\t /**\r\n\t * Updates this HMAC with a message.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate The message to append.\r\n\t *\r\n\t * @return {HMAC} This HMAC instance.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hmacHasher.update('message');\r\n\t * hmacHasher.update(wordArray);\r\n\t */\r\n\t update: function (messageUpdate) {\r\n\t this._hasher.update(messageUpdate);\r\n\r\n\t // Chainable\r\n\t return this;\r\n\t },\r\n\r\n\t /**\r\n\t * Finalizes the HMAC computation.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = hmacHasher.finalize();\r\n\t * var hmac = hmacHasher.finalize('message');\r\n\t * var hmac = hmacHasher.finalize(wordArray);\r\n\t */\r\n\t finalize: function (messageUpdate) {\r\n\t // Shortcut\r\n\t var hasher = this._hasher;\r\n\r\n\t // Compute HMAC\r\n\t var innerHash = hasher.finalize(messageUpdate);\r\n\t hasher.reset();\r\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\r\n\r\n\t return hmac;\r\n\t }\r\n\t });\r\n\t}());\r\n\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Base = C_lib.Base;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_algo = C.algo;\r\n\t var SHA256 = C_algo.SHA256;\r\n\t var HMAC = C_algo.HMAC;\r\n\r\n\t /**\r\n\t * Password-Based Key Derivation Function 2 algorithm.\r\n\t */\r\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\r\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\r\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\r\n\t */\r\n\t cfg: Base.extend({\r\n\t keySize: 128/32,\r\n\t hasher: SHA256,\r\n\t iterations: 250000\r\n\t }),\r\n\r\n\t /**\r\n\t * Initializes a newly created key derivation function.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\r\n\t */\r\n\t init: function (cfg) {\r\n\t this.cfg = this.cfg.extend(cfg);\r\n\t },\r\n\r\n\t /**\r\n\t * Computes the Password-Based Key Derivation Function 2.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = kdf.compute(password, salt);\r\n\t */\r\n\t compute: function (password, salt) {\r\n\t // Shortcut\r\n\t var cfg = this.cfg;\r\n\r\n\t // Init HMAC\r\n\t var hmac = HMAC.create(cfg.hasher, password);\r\n\r\n\t // Initial values\r\n\t var derivedKey = WordArray.create();\r\n\t var blockIndex = WordArray.create([0x00000001]);\r\n\r\n\t // Shortcuts\r\n\t var derivedKeyWords = derivedKey.words;\r\n\t var blockIndexWords = blockIndex.words;\r\n\t var keySize = cfg.keySize;\r\n\t var iterations = cfg.iterations;\r\n\r\n\t // Generate key\r\n\t while (derivedKeyWords.length < keySize) {\r\n\t var block = hmac.update(salt).finalize(blockIndex);\r\n\t hmac.reset();\r\n\r\n\t // Shortcuts\r\n\t var blockWords = block.words;\r\n\t var blockWordsLength = blockWords.length;\r\n\r\n\t // Iterations\r\n\t var intermediate = block;\r\n\t for (var i = 1; i < iterations; i++) {\r\n\t intermediate = hmac.finalize(intermediate);\r\n\t hmac.reset();\r\n\r\n\t // Shortcut\r\n\t var intermediateWords = intermediate.words;\r\n\r\n\t // XOR intermediate with block\r\n\t for (var j = 0; j < blockWordsLength; j++) {\r\n\t blockWords[j] ^= intermediateWords[j];\r\n\t }\r\n\t }\r\n\r\n\t derivedKey.concat(block);\r\n\t blockIndexWords[0]++;\r\n\t }\r\n\t derivedKey.sigBytes = keySize * 4;\r\n\r\n\t return derivedKey;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Computes the Password-Based Key Derivation Function 2.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = CryptoJS.PBKDF2(password, salt);\r\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\r\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\r\n\t */\r\n\t C.PBKDF2 = function (password, salt, cfg) {\r\n\t return PBKDF2.create(cfg).compute(password, salt);\r\n\t };\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.PBKDF2;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Base = C_lib.Base;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var C_algo = C.algo;\r\n\t var MD5 = C_algo.MD5;\r\n\r\n\t /**\r\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\r\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\r\n\t */\r\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\r\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\r\n\t * @property {number} iterations The number of iterations to perform. Default: 1\r\n\t */\r\n\t cfg: Base.extend({\r\n\t keySize: 128/32,\r\n\t hasher: MD5,\r\n\t iterations: 1\r\n\t }),\r\n\r\n\t /**\r\n\t * Initializes a newly created key derivation function.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\r\n\t */\r\n\t init: function (cfg) {\r\n\t this.cfg = this.cfg.extend(cfg);\r\n\t },\r\n\r\n\t /**\r\n\t * Derives a key from a password.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = kdf.compute(password, salt);\r\n\t */\r\n\t compute: function (password, salt) {\r\n\t var block;\r\n\r\n\t // Shortcut\r\n\t var cfg = this.cfg;\r\n\r\n\t // Init hasher\r\n\t var hasher = cfg.hasher.create();\r\n\r\n\t // Initial values\r\n\t var derivedKey = WordArray.create();\r\n\r\n\t // Shortcuts\r\n\t var derivedKeyWords = derivedKey.words;\r\n\t var keySize = cfg.keySize;\r\n\t var iterations = cfg.iterations;\r\n\r\n\t // Generate key\r\n\t while (derivedKeyWords.length < keySize) {\r\n\t if (block) {\r\n\t hasher.update(block);\r\n\t }\r\n\t block = hasher.update(password).finalize(salt);\r\n\t hasher.reset();\r\n\r\n\t // Iterations\r\n\t for (var i = 1; i < iterations; i++) {\r\n\t block = hasher.finalize(block);\r\n\t hasher.reset();\r\n\t }\r\n\r\n\t derivedKey.concat(block);\r\n\t }\r\n\t derivedKey.sigBytes = keySize * 4;\r\n\r\n\t return derivedKey;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Derives a key from a password.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = CryptoJS.EvpKDF(password, salt);\r\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\r\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\r\n\t */\r\n\t C.EvpKDF = function (password, salt, cfg) {\r\n\t return EvpKDF.create(cfg).compute(password, salt);\r\n\t };\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.EvpKDF;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Cipher core components.\r\n\t */\r\n\tCryptoJS.lib.Cipher || (function (undefined) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var Base = C_lib.Base;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\r\n\t var C_enc = C.enc;\r\n\t var Utf8 = C_enc.Utf8;\r\n\t var Base64 = C_enc.Base64;\r\n\t var C_algo = C.algo;\r\n\t var EvpKDF = C_algo.EvpKDF;\r\n\r\n\t /**\r\n\t * Abstract base cipher template.\r\n\t *\r\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\r\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\r\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\r\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\r\n\t */\r\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {WordArray} iv The IV to use for this operation.\r\n\t */\r\n\t cfg: Base.extend(),\r\n\r\n\t /**\r\n\t * Creates this cipher in encryption mode.\r\n\t *\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {Cipher} A cipher instance.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\r\n\t */\r\n\t createEncryptor: function (key, cfg) {\r\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\r\n\t },\r\n\r\n\t /**\r\n\t * Creates this cipher in decryption mode.\r\n\t *\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {Cipher} A cipher instance.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\r\n\t */\r\n\t createDecryptor: function (key, cfg) {\r\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\r\n\t },\r\n\r\n\t /**\r\n\t * Initializes a newly created cipher.\r\n\t *\r\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\r\n\t */\r\n\t init: function (xformMode, key, cfg) {\r\n\t // Apply config defaults\r\n\t this.cfg = this.cfg.extend(cfg);\r\n\r\n\t // Store transform mode and key\r\n\t this._xformMode = xformMode;\r\n\t this._key = key;\r\n\r\n\t // Set initial values\r\n\t this.reset();\r\n\t },\r\n\r\n\t /**\r\n\t * Resets this cipher to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * cipher.reset();\r\n\t */\r\n\t reset: function () {\r\n\t // Reset data buffer\r\n\t BufferedBlockAlgorithm.reset.call(this);\r\n\r\n\t // Perform concrete-cipher logic\r\n\t this._doReset();\r\n\t },\r\n\r\n\t /**\r\n\t * Adds data to be encrypted or decrypted.\r\n\t *\r\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\r\n\t *\r\n\t * @return {WordArray} The data after processing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var encrypted = cipher.process('data');\r\n\t * var encrypted = cipher.process(wordArray);\r\n\t */\r\n\t process: function (dataUpdate) {\r\n\t // Append\r\n\t this._append(dataUpdate);\r\n\r\n\t // Process available blocks\r\n\t return this._process();\r\n\t },\r\n\r\n\t /**\r\n\t * Finalizes the encryption or decryption process.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\r\n\t *\r\n\t * @return {WordArray} The data after final processing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var encrypted = cipher.finalize();\r\n\t * var encrypted = cipher.finalize('data');\r\n\t * var encrypted = cipher.finalize(wordArray);\r\n\t */\r\n\t finalize: function (dataUpdate) {\r\n\t // Final data update\r\n\t if (dataUpdate) {\r\n\t this._append(dataUpdate);\r\n\t }\r\n\r\n\t // Perform concrete-cipher logic\r\n\t var finalProcessedData = this._doFinalize();\r\n\r\n\t return finalProcessedData;\r\n\t },\r\n\r\n\t keySize: 128/32,\r\n\r\n\t ivSize: 128/32,\r\n\r\n\t _ENC_XFORM_MODE: 1,\r\n\r\n\t _DEC_XFORM_MODE: 2,\r\n\r\n\t /**\r\n\t * Creates shortcut functions to a cipher's object interface.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher to create a helper for.\r\n\t *\r\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\r\n\t */\r\n\t _createHelper: (function () {\r\n\t function selectCipherStrategy(key) {\r\n\t if (typeof key == 'string') {\r\n\t return PasswordBasedCipher;\r\n\t } else {\r\n\t return SerializableCipher;\r\n\t }\r\n\t }\r\n\r\n\t return function (cipher) {\r\n\t return {\r\n\t encrypt: function (message, key, cfg) {\r\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\r\n\t },\r\n\r\n\t decrypt: function (ciphertext, key, cfg) {\r\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\r\n\t }\r\n\t };\r\n\t };\r\n\t }())\r\n\t });\r\n\r\n\t /**\r\n\t * Abstract base stream cipher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\r\n\t */\r\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\r\n\t _doFinalize: function () {\r\n\t // Process partial blocks\r\n\t var finalProcessedBlocks = this._process(!!'flush');\r\n\r\n\t return finalProcessedBlocks;\r\n\t },\r\n\r\n\t blockSize: 1\r\n\t });\r\n\r\n\t /**\r\n\t * Mode namespace.\r\n\t */\r\n\t var C_mode = C.mode = {};\r\n\r\n\t /**\r\n\t * Abstract base block cipher mode template.\r\n\t */\r\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\r\n\t /**\r\n\t * Creates this mode for encryption.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\r\n\t */\r\n\t createEncryptor: function (cipher, iv) {\r\n\t return this.Encryptor.create(cipher, iv);\r\n\t },\r\n\r\n\t /**\r\n\t * Creates this mode for decryption.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\r\n\t */\r\n\t createDecryptor: function (cipher, iv) {\r\n\t return this.Decryptor.create(cipher, iv);\r\n\t },\r\n\r\n\t /**\r\n\t * Initializes a newly created mode.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\r\n\t */\r\n\t init: function (cipher, iv) {\r\n\t this._cipher = cipher;\r\n\t this._iv = iv;\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Cipher Block Chaining mode.\r\n\t */\r\n\t var CBC = C_mode.CBC = (function () {\r\n\t /**\r\n\t * Abstract base CBC mode.\r\n\t */\r\n\t var CBC = BlockCipherMode.extend();\r\n\r\n\t /**\r\n\t * CBC encryptor.\r\n\t */\r\n\t CBC.Encryptor = CBC.extend({\r\n\t /**\r\n\t * Processes the data block at offset.\r\n\t *\r\n\t * @param {Array} words The data words to operate on.\r\n\t * @param {number} offset The offset where the block starts.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * mode.processBlock(data.words, offset);\r\n\t */\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher;\r\n\t var blockSize = cipher.blockSize;\r\n\r\n\t // XOR and encrypt\r\n\t xorBlock.call(this, words, offset, blockSize);\r\n\t cipher.encryptBlock(words, offset);\r\n\r\n\t // Remember this block to use with next block\r\n\t this._prevBlock = words.slice(offset, offset + blockSize);\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * CBC decryptor.\r\n\t */\r\n\t CBC.Decryptor = CBC.extend({\r\n\t /**\r\n\t * Processes the data block at offset.\r\n\t *\r\n\t * @param {Array} words The data words to operate on.\r\n\t * @param {number} offset The offset where the block starts.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * mode.processBlock(data.words, offset);\r\n\t */\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher;\r\n\t var blockSize = cipher.blockSize;\r\n\r\n\t // Remember this block to use with next block\r\n\t var thisBlock = words.slice(offset, offset + blockSize);\r\n\r\n\t // Decrypt and XOR\r\n\t cipher.decryptBlock(words, offset);\r\n\t xorBlock.call(this, words, offset, blockSize);\r\n\r\n\t // This block becomes the previous block\r\n\t this._prevBlock = thisBlock;\r\n\t }\r\n\t });\r\n\r\n\t function xorBlock(words, offset, blockSize) {\r\n\t var block;\r\n\r\n\t // Shortcut\r\n\t var iv = this._iv;\r\n\r\n\t // Choose mixing block\r\n\t if (iv) {\r\n\t block = iv;\r\n\r\n\t // Remove IV for subsequent blocks\r\n\t this._iv = undefined;\r\n\t } else {\r\n\t block = this._prevBlock;\r\n\t }\r\n\r\n\t // XOR blocks\r\n\t for (var i = 0; i < blockSize; i++) {\r\n\t words[offset + i] ^= block[i];\r\n\t }\r\n\t }\r\n\r\n\t return CBC;\r\n\t }());\r\n\r\n\t /**\r\n\t * Padding namespace.\r\n\t */\r\n\t var C_pad = C.pad = {};\r\n\r\n\t /**\r\n\t * PKCS #5/7 padding strategy.\r\n\t */\r\n\t var Pkcs7 = C_pad.Pkcs7 = {\r\n\t /**\r\n\t * Pads data using the algorithm defined in PKCS #5/7.\r\n\t *\r\n\t * @param {WordArray} data The data to pad.\r\n\t * @param {number} blockSize The multiple that the data should be padded to.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\r\n\t */\r\n\t pad: function (data, blockSize) {\r\n\t // Shortcut\r\n\t var blockSizeBytes = blockSize * 4;\r\n\r\n\t // Count padding bytes\r\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\r\n\r\n\t // Create padding word\r\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\r\n\r\n\t // Create padding\r\n\t var paddingWords = [];\r\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\r\n\t paddingWords.push(paddingWord);\r\n\t }\r\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\r\n\r\n\t // Add padding\r\n\t data.concat(padding);\r\n\t },\r\n\r\n\t /**\r\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\r\n\t *\r\n\t * @param {WordArray} data The data to unpad.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\r\n\t */\r\n\t unpad: function (data) {\r\n\t // Get number of padding bytes from last byte\r\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n\t // Remove padding\r\n\t data.sigBytes -= nPaddingBytes;\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * Abstract base block cipher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\r\n\t */\r\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {Mode} mode The block mode to use. Default: CBC\r\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\r\n\t */\r\n\t cfg: Cipher.cfg.extend({\r\n\t mode: CBC,\r\n\t padding: Pkcs7\r\n\t }),\r\n\r\n\t reset: function () {\r\n\t var modeCreator;\r\n\r\n\t // Reset cipher\r\n\t Cipher.reset.call(this);\r\n\r\n\t // Shortcuts\r\n\t var cfg = this.cfg;\r\n\t var iv = cfg.iv;\r\n\t var mode = cfg.mode;\r\n\r\n\t // Reset block mode\r\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\r\n\t modeCreator = mode.createEncryptor;\r\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n\t modeCreator = mode.createDecryptor;\r\n\t // Keep at least one block in the buffer for unpadding\r\n\t this._minBufferSize = 1;\r\n\t }\r\n\r\n\t if (this._mode && this._mode.__creator == modeCreator) {\r\n\t this._mode.init(this, iv && iv.words);\r\n\t } else {\r\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\r\n\t this._mode.__creator = modeCreator;\r\n\t }\r\n\t },\r\n\r\n\t _doProcessBlock: function (words, offset) {\r\n\t this._mode.processBlock(words, offset);\r\n\t },\r\n\r\n\t _doFinalize: function () {\r\n\t var finalProcessedBlocks;\r\n\r\n\t // Shortcut\r\n\t var padding = this.cfg.padding;\r\n\r\n\t // Finalize\r\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\r\n\t // Pad data\r\n\t padding.pad(this._data, this.blockSize);\r\n\r\n\t // Process final blocks\r\n\t finalProcessedBlocks = this._process(!!'flush');\r\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n\t // Process final blocks\r\n\t finalProcessedBlocks = this._process(!!'flush');\r\n\r\n\t // Unpad data\r\n\t padding.unpad(finalProcessedBlocks);\r\n\t }\r\n\r\n\t return finalProcessedBlocks;\r\n\t },\r\n\r\n\t blockSize: 128/32\r\n\t });\r\n\r\n\t /**\r\n\t * A collection of cipher parameters.\r\n\t *\r\n\t * @property {WordArray} ciphertext The raw ciphertext.\r\n\t * @property {WordArray} key The key to this ciphertext.\r\n\t * @property {WordArray} iv The IV used in the ciphering operation.\r\n\t * @property {WordArray} salt The salt used with a key derivation function.\r\n\t * @property {Cipher} algorithm The cipher algorithm.\r\n\t * @property {Mode} mode The block mode used in the ciphering operation.\r\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\r\n\t * @property {number} blockSize The block size of the cipher.\r\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\r\n\t */\r\n\t var CipherParams = C_lib.CipherParams = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created cipher params object.\r\n\t *\r\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\r\n\t * ciphertext: ciphertextWordArray,\r\n\t * key: keyWordArray,\r\n\t * iv: ivWordArray,\r\n\t * salt: saltWordArray,\r\n\t * algorithm: CryptoJS.algo.AES,\r\n\t * mode: CryptoJS.mode.CBC,\r\n\t * padding: CryptoJS.pad.PKCS7,\r\n\t * blockSize: 4,\r\n\t * formatter: CryptoJS.format.OpenSSL\r\n\t * });\r\n\t */\r\n\t init: function (cipherParams) {\r\n\t this.mixIn(cipherParams);\r\n\t },\r\n\r\n\t /**\r\n\t * Converts this cipher params object to a string.\r\n\t *\r\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\r\n\t *\r\n\t * @return {string} The stringified cipher params.\r\n\t *\r\n\t * @throws Error If neither the formatter nor the default formatter is set.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var string = cipherParams + '';\r\n\t * var string = cipherParams.toString();\r\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\r\n\t */\r\n\t toString: function (formatter) {\r\n\t return (formatter || this.formatter).stringify(this);\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Format namespace.\r\n\t */\r\n\t var C_format = C.format = {};\r\n\r\n\t /**\r\n\t * OpenSSL formatting strategy.\r\n\t */\r\n\t var OpenSSLFormatter = C_format.OpenSSL = {\r\n\t /**\r\n\t * Converts a cipher params object to an OpenSSL-compatible string.\r\n\t *\r\n\t * @param {CipherParams} cipherParams The cipher params object.\r\n\t *\r\n\t * @return {string} The OpenSSL-compatible string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\r\n\t */\r\n\t stringify: function (cipherParams) {\r\n\t var wordArray;\r\n\r\n\t // Shortcuts\r\n\t var ciphertext = cipherParams.ciphertext;\r\n\t var salt = cipherParams.salt;\r\n\r\n\t // Format\r\n\t if (salt) {\r\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\r\n\t } else {\r\n\t wordArray = ciphertext;\r\n\t }\r\n\r\n\t return wordArray.toString(Base64);\r\n\t },\r\n\r\n\t /**\r\n\t * Converts an OpenSSL-compatible string to a cipher params object.\r\n\t *\r\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\r\n\t *\r\n\t * @return {CipherParams} The cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\r\n\t */\r\n\t parse: function (openSSLStr) {\r\n\t var salt;\r\n\r\n\t // Parse base64\r\n\t var ciphertext = Base64.parse(openSSLStr);\r\n\r\n\t // Shortcut\r\n\t var ciphertextWords = ciphertext.words;\r\n\r\n\t // Test for salt\r\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\r\n\t // Extract salt\r\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\r\n\r\n\t // Remove salt from ciphertext\r\n\t ciphertextWords.splice(0, 4);\r\n\t ciphertext.sigBytes -= 16;\r\n\t }\r\n\r\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\r\n\t */\r\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\r\n\t */\r\n\t cfg: Base.extend({\r\n\t format: OpenSSLFormatter\r\n\t }),\r\n\r\n\t /**\r\n\t * Encrypts a message.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {WordArray|string} message The message to encrypt.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t */\r\n\t encrypt: function (cipher, message, key, cfg) {\r\n\t // Apply config defaults\r\n\t cfg = this.cfg.extend(cfg);\r\n\r\n\t // Encrypt\r\n\t var encryptor = cipher.createEncryptor(key, cfg);\r\n\t var ciphertext = encryptor.finalize(message);\r\n\r\n\t // Shortcut\r\n\t var cipherCfg = encryptor.cfg;\r\n\r\n\t // Create and return serializable cipher params\r\n\t return CipherParams.create({\r\n\t ciphertext: ciphertext,\r\n\t key: key,\r\n\t iv: cipherCfg.iv,\r\n\t algorithm: cipher,\r\n\t mode: cipherCfg.mode,\r\n\t padding: cipherCfg.padding,\r\n\t blockSize: cipher.blockSize,\r\n\t formatter: cfg.format\r\n\t });\r\n\t },\r\n\r\n\t /**\r\n\t * Decrypts serialized ciphertext.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {WordArray} The plaintext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t */\r\n\t decrypt: function (cipher, ciphertext, key, cfg) {\r\n\t // Apply config defaults\r\n\t cfg = this.cfg.extend(cfg);\r\n\r\n\t // Convert string to CipherParams\r\n\t ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n\t // Decrypt\r\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\r\n\r\n\t return plaintext;\r\n\t },\r\n\r\n\t /**\r\n\t * Converts serialized ciphertext to CipherParams,\r\n\t * else assumed CipherParams already and returns ciphertext unchanged.\r\n\t *\r\n\t * @param {CipherParams|string} ciphertext The ciphertext.\r\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\r\n\t *\r\n\t * @return {CipherParams} The unserialized ciphertext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\r\n\t */\r\n\t _parse: function (ciphertext, format) {\r\n\t if (typeof ciphertext == 'string') {\r\n\t return format.parse(ciphertext, this);\r\n\t } else {\r\n\t return ciphertext;\r\n\t }\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Key derivation function namespace.\r\n\t */\r\n\t var C_kdf = C.kdf = {};\r\n\r\n\t /**\r\n\t * OpenSSL key derivation function.\r\n\t */\r\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\r\n\t /**\r\n\t * Derives a key and IV from a password.\r\n\t *\r\n\t * @param {string} password The password to derive from.\r\n\t * @param {number} keySize The size in words of the key to generate.\r\n\t * @param {number} ivSize The size in words of the IV to generate.\r\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\r\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\r\n\t */\r\n\t execute: function (password, keySize, ivSize, salt, hasher) {\r\n\t // Generate random salt\r\n\t if (!salt) {\r\n\t salt = WordArray.random(64/8);\r\n\t }\r\n\r\n\t // Derive key and IV\r\n\t if (!hasher) {\r\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\r\n\t } else {\r\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\r\n\t }\r\n\r\n\r\n\t // Separate key and IV\r\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\r\n\t key.sigBytes = keySize * 4;\r\n\r\n\t // Return params\r\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\r\n\t }\r\n\t };\r\n\r\n\t /**\r\n\t * A serializable cipher wrapper that derives the key from a password,\r\n\t * and returns ciphertext as a serializable cipher params object.\r\n\t */\r\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\r\n\t */\r\n\t cfg: SerializableCipher.cfg.extend({\r\n\t kdf: OpenSSLKdf\r\n\t }),\r\n\r\n\t /**\r\n\t * Encrypts a message using a password.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {WordArray|string} message The message to encrypt.\r\n\t * @param {string} password The password.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\r\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t */\r\n\t encrypt: function (cipher, message, password, cfg) {\r\n\t // Apply config defaults\r\n\t cfg = this.cfg.extend(cfg);\r\n\r\n\t // Derive key and other params\r\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\r\n\r\n\t // Add IV to config\r\n\t cfg.iv = derivedParams.iv;\r\n\r\n\t // Encrypt\r\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\r\n\r\n\t // Mix in derived params\r\n\t ciphertext.mixIn(derivedParams);\r\n\r\n\t return ciphertext;\r\n\t },\r\n\r\n\t /**\r\n\t * Decrypts serialized ciphertext using a password.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n\t * @param {string} password The password.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {WordArray} The plaintext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t */\r\n\t decrypt: function (cipher, ciphertext, password, cfg) {\r\n\t // Apply config defaults\r\n\t cfg = this.cfg.extend(cfg);\r\n\r\n\t // Convert string to CipherParams\r\n\t ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n\t // Derive key and other params\r\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\r\n\r\n\t // Add IV to config\r\n\t cfg.iv = derivedParams.iv;\r\n\r\n\t // Decrypt\r\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\r\n\r\n\t return plaintext;\r\n\t }\r\n\t });\r\n\t}());\r\n\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Cipher Feedback block mode.\r\n\t */\r\n\tCryptoJS.mode.CFB = (function () {\r\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n\t CFB.Encryptor = CFB.extend({\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher;\r\n\t var blockSize = cipher.blockSize;\r\n\r\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\r\n\r\n\t // Remember this block to use with next block\r\n\t this._prevBlock = words.slice(offset, offset + blockSize);\r\n\t }\r\n\t });\r\n\r\n\t CFB.Decryptor = CFB.extend({\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher;\r\n\t var blockSize = cipher.blockSize;\r\n\r\n\t // Remember this block to use with next block\r\n\t var thisBlock = words.slice(offset, offset + blockSize);\r\n\r\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\r\n\r\n\t // This block becomes the previous block\r\n\t this._prevBlock = thisBlock;\r\n\t }\r\n\t });\r\n\r\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\r\n\t var keystream;\r\n\r\n\t // Shortcut\r\n\t var iv = this._iv;\r\n\r\n\t // Generate keystream\r\n\t if (iv) {\r\n\t keystream = iv.slice(0);\r\n\r\n\t // Remove IV for subsequent blocks\r\n\t this._iv = undefined;\r\n\t } else {\r\n\t keystream = this._prevBlock;\r\n\t }\r\n\t cipher.encryptBlock(keystream, 0);\r\n\r\n\t // Encrypt\r\n\t for (var i = 0; i < blockSize; i++) {\r\n\t words[offset + i] ^= keystream[i];\r\n\t }\r\n\t }\r\n\r\n\t return CFB;\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.mode.CFB;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Counter block mode.\r\n\t */\r\n\tCryptoJS.mode.CTR = (function () {\r\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n\t var Encryptor = CTR.Encryptor = CTR.extend({\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher\r\n\t var blockSize = cipher.blockSize;\r\n\t var iv = this._iv;\r\n\t var counter = this._counter;\r\n\r\n\t // Generate keystream\r\n\t if (iv) {\r\n\t counter = this._counter = iv.slice(0);\r\n\r\n\t // Remove IV for subsequent blocks\r\n\t this._iv = undefined;\r\n\t }\r\n\t var keystream = counter.slice(0);\r\n\t cipher.encryptBlock(keystream, 0);\r\n\r\n\t // Increment counter\r\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\r\n\r\n\t // Encrypt\r\n\t for (var i = 0; i < blockSize; i++) {\r\n\t words[offset + i] ^= keystream[i];\r\n\t }\r\n\t }\r\n\t });\r\n\r\n\t CTR.Decryptor = Encryptor;\r\n\r\n\t return CTR;\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.mode.CTR;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/** @preserve\r\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n\t * derived from CryptoJS.mode.CTR\r\n\t * Jan Hruby jhruby.web@gmail.com\r\n\t */\r\n\tCryptoJS.mode.CTRGladman = (function () {\r\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n\t\tfunction incWord(word)\r\n\t\t{\r\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\r\n\t\t\tvar b1 = (word >> 16)&0xff;\r\n\t\t\tvar b2 = (word >> 8)&0xff;\r\n\t\t\tvar b3 = word & 0xff;\r\n\r\n\t\t\tif (b1 === 0xff) // overflow b1\r\n\t\t\t{\r\n\t\t\tb1 = 0;\r\n\t\t\tif (b2 === 0xff)\r\n\t\t\t{\r\n\t\t\t\tb2 = 0;\r\n\t\t\t\tif (b3 === 0xff)\r\n\t\t\t\t{\r\n\t\t\t\t\tb3 = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t++b3;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t++b2;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t++b1;\r\n\t\t\t}\r\n\r\n\t\t\tword = 0;\r\n\t\t\tword += (b1 << 16);\r\n\t\t\tword += (b2 << 8);\r\n\t\t\tword += b3;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\tword += (0x01 << 24);\r\n\t\t\t}\r\n\t\t\treturn word;\r\n\t\t}\r\n\r\n\t\tfunction incCounter(counter)\r\n\t\t{\r\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\r\n\t\t\t{\r\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\r\n\t\t\t\tcounter[1] = incWord(counter[1]);\r\n\t\t\t}\r\n\t\t\treturn counter;\r\n\t\t}\r\n\r\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher\r\n\t var blockSize = cipher.blockSize;\r\n\t var iv = this._iv;\r\n\t var counter = this._counter;\r\n\r\n\t // Generate keystream\r\n\t if (iv) {\r\n\t counter = this._counter = iv.slice(0);\r\n\r\n\t // Remove IV for subsequent blocks\r\n\t this._iv = undefined;\r\n\t }\r\n\r\n\t\t\t\tincCounter(counter);\r\n\r\n\t\t\t\tvar keystream = counter.slice(0);\r\n\t cipher.encryptBlock(keystream, 0);\r\n\r\n\t // Encrypt\r\n\t for (var i = 0; i < blockSize; i++) {\r\n\t words[offset + i] ^= keystream[i];\r\n\t }\r\n\t }\r\n\t });\r\n\r\n\t CTRGladman.Decryptor = Encryptor;\r\n\r\n\t return CTRGladman;\r\n\t}());\r\n\r\n\r\n\r\n\r\n\treturn CryptoJS.mode.CTRGladman;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Output Feedback block mode.\r\n\t */\r\n\tCryptoJS.mode.OFB = (function () {\r\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n\t var Encryptor = OFB.Encryptor = OFB.extend({\r\n\t processBlock: function (words, offset) {\r\n\t // Shortcuts\r\n\t var cipher = this._cipher\r\n\t var blockSize = cipher.blockSize;\r\n\t var iv = this._iv;\r\n\t var keystream = this._keystream;\r\n\r\n\t // Generate keystream\r\n\t if (iv) {\r\n\t keystream = this._keystream = iv.slice(0);\r\n\r\n\t // Remove IV for subsequent blocks\r\n\t this._iv = undefined;\r\n\t }\r\n\t cipher.encryptBlock(keystream, 0);\r\n\r\n\t // Encrypt\r\n\t for (var i = 0; i < blockSize; i++) {\r\n\t words[offset + i] ^= keystream[i];\r\n\t }\r\n\t }\r\n\t });\r\n\r\n\t OFB.Decryptor = Encryptor;\r\n\r\n\t return OFB;\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.mode.OFB;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Electronic Codebook block mode.\r\n\t */\r\n\tCryptoJS.mode.ECB = (function () {\r\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n\t ECB.Encryptor = ECB.extend({\r\n\t processBlock: function (words, offset) {\r\n\t this._cipher.encryptBlock(words, offset);\r\n\t }\r\n\t });\r\n\r\n\t ECB.Decryptor = ECB.extend({\r\n\t processBlock: function (words, offset) {\r\n\t this._cipher.decryptBlock(words, offset);\r\n\t }\r\n\t });\r\n\r\n\t return ECB;\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.mode.ECB;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * ANSI X.923 padding strategy.\r\n\t */\r\n\tCryptoJS.pad.AnsiX923 = {\r\n\t pad: function (data, blockSize) {\r\n\t // Shortcuts\r\n\t var dataSigBytes = data.sigBytes;\r\n\t var blockSizeBytes = blockSize * 4;\r\n\r\n\t // Count padding bytes\r\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\r\n\r\n\t // Compute last byte position\r\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\r\n\r\n\t // Pad\r\n\t data.clamp();\r\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\r\n\t data.sigBytes += nPaddingBytes;\r\n\t },\r\n\r\n\t unpad: function (data) {\r\n\t // Get number of padding bytes from last byte\r\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n\t // Remove padding\r\n\t data.sigBytes -= nPaddingBytes;\r\n\t }\r\n\t};\r\n\r\n\r\n\treturn CryptoJS.pad.Ansix923;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * ISO 10126 padding strategy.\r\n\t */\r\n\tCryptoJS.pad.Iso10126 = {\r\n\t pad: function (data, blockSize) {\r\n\t // Shortcut\r\n\t var blockSizeBytes = blockSize * 4;\r\n\r\n\t // Count padding bytes\r\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\r\n\r\n\t // Pad\r\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\r\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\r\n\t },\r\n\r\n\t unpad: function (data) {\r\n\t // Get number of padding bytes from last byte\r\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n\t // Remove padding\r\n\t data.sigBytes -= nPaddingBytes;\r\n\t }\r\n\t};\r\n\r\n\r\n\treturn CryptoJS.pad.Iso10126;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * ISO/IEC 9797-1 Padding Method 2.\r\n\t */\r\n\tCryptoJS.pad.Iso97971 = {\r\n\t pad: function (data, blockSize) {\r\n\t // Add 0x80 byte\r\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\r\n\r\n\t // Zero pad the rest\r\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\r\n\t },\r\n\r\n\t unpad: function (data) {\r\n\t // Remove zero padding\r\n\t CryptoJS.pad.ZeroPadding.unpad(data);\r\n\r\n\t // Remove one more byte -- the 0x80 byte\r\n\t data.sigBytes--;\r\n\t }\r\n\t};\r\n\r\n\r\n\treturn CryptoJS.pad.Iso97971;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * Zero padding strategy.\r\n\t */\r\n\tCryptoJS.pad.ZeroPadding = {\r\n\t pad: function (data, blockSize) {\r\n\t // Shortcut\r\n\t var blockSizeBytes = blockSize * 4;\r\n\r\n\t // Pad\r\n\t data.clamp();\r\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\r\n\t },\r\n\r\n\t unpad: function (data) {\r\n\t // Shortcut\r\n\t var dataWords = data.words;\r\n\r\n\t // Unpad\r\n\t var i = data.sigBytes - 1;\r\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\r\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\r\n\t data.sigBytes = i + 1;\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t};\r\n\r\n\r\n\treturn CryptoJS.pad.ZeroPadding;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t/**\r\n\t * A noop padding strategy.\r\n\t */\r\n\tCryptoJS.pad.NoPadding = {\r\n\t pad: function () {\r\n\t },\r\n\r\n\t unpad: function () {\r\n\t }\r\n\t};\r\n\r\n\r\n\treturn CryptoJS.pad.NoPadding;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function (undefined) {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var CipherParams = C_lib.CipherParams;\r\n\t var C_enc = C.enc;\r\n\t var Hex = C_enc.Hex;\r\n\t var C_format = C.format;\r\n\r\n\t var HexFormatter = C_format.Hex = {\r\n\t /**\r\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\r\n\t *\r\n\t * @param {CipherParams} cipherParams The cipher params object.\r\n\t *\r\n\t * @return {string} The hexadecimally encoded string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\r\n\t */\r\n\t stringify: function (cipherParams) {\r\n\t return cipherParams.ciphertext.toString(Hex);\r\n\t },\r\n\r\n\t /**\r\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\r\n\t *\r\n\t * @param {string} input The hexadecimally encoded string.\r\n\t *\r\n\t * @return {CipherParams} The cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\r\n\t */\r\n\t parse: function (input) {\r\n\t var ciphertext = Hex.parse(input);\r\n\t return CipherParams.create({ ciphertext: ciphertext });\r\n\t }\r\n\t };\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.format.Hex;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var BlockCipher = C_lib.BlockCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Lookup tables\r\n\t var SBOX = [];\r\n\t var INV_SBOX = [];\r\n\t var SUB_MIX_0 = [];\r\n\t var SUB_MIX_1 = [];\r\n\t var SUB_MIX_2 = [];\r\n\t var SUB_MIX_3 = [];\r\n\t var INV_SUB_MIX_0 = [];\r\n\t var INV_SUB_MIX_1 = [];\r\n\t var INV_SUB_MIX_2 = [];\r\n\t var INV_SUB_MIX_3 = [];\r\n\r\n\t // Compute lookup tables\r\n\t (function () {\r\n\t // Compute double table\r\n\t var d = [];\r\n\t for (var i = 0; i < 256; i++) {\r\n\t if (i < 128) {\r\n\t d[i] = i << 1;\r\n\t } else {\r\n\t d[i] = (i << 1) ^ 0x11b;\r\n\t }\r\n\t }\r\n\r\n\t // Walk GF(2^8)\r\n\t var x = 0;\r\n\t var xi = 0;\r\n\t for (var i = 0; i < 256; i++) {\r\n\t // Compute sbox\r\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\r\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\r\n\t SBOX[x] = sx;\r\n\t INV_SBOX[sx] = x;\r\n\r\n\t // Compute multiplication\r\n\t var x2 = d[x];\r\n\t var x4 = d[x2];\r\n\t var x8 = d[x4];\r\n\r\n\t // Compute sub bytes, mix columns tables\r\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\r\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\r\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\r\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\r\n\t SUB_MIX_3[x] = t;\r\n\r\n\t // Compute inv sub bytes, inv mix columns tables\r\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\r\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\r\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\r\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\r\n\t INV_SUB_MIX_3[sx] = t;\r\n\r\n\t // Compute next counter\r\n\t if (!x) {\r\n\t x = xi = 1;\r\n\t } else {\r\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\r\n\t xi ^= d[d[xi]];\r\n\t }\r\n\t }\r\n\t }());\r\n\r\n\t // Precomputed Rcon lookup\r\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\r\n\r\n\t /**\r\n\t * AES block cipher algorithm.\r\n\t */\r\n\t var AES = C_algo.AES = BlockCipher.extend({\r\n\t _doReset: function () {\r\n\t var t;\r\n\r\n\t // Skip reset of nRounds has been set before and key did not change\r\n\t if (this._nRounds && this._keyPriorReset === this._key) {\r\n\t return;\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var key = this._keyPriorReset = this._key;\r\n\t var keyWords = key.words;\r\n\t var keySize = key.sigBytes / 4;\r\n\r\n\t // Compute number of rounds\r\n\t var nRounds = this._nRounds = keySize + 6;\r\n\r\n\t // Compute number of key schedule rows\r\n\t var ksRows = (nRounds + 1) * 4;\r\n\r\n\t // Compute key schedule\r\n\t var keySchedule = this._keySchedule = [];\r\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\r\n\t if (ksRow < keySize) {\r\n\t keySchedule[ksRow] = keyWords[ksRow];\r\n\t } else {\r\n\t t = keySchedule[ksRow - 1];\r\n\r\n\t if (!(ksRow % keySize)) {\r\n\t // Rot word\r\n\t t = (t << 8) | (t >>> 24);\r\n\r\n\t // Sub word\r\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n\r\n\t // Mix Rcon\r\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\r\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\r\n\t // Sub word\r\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n\t }\r\n\r\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\r\n\t }\r\n\t }\r\n\r\n\t // Compute inv key schedule\r\n\t var invKeySchedule = this._invKeySchedule = [];\r\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\r\n\t var ksRow = ksRows - invKsRow;\r\n\r\n\t if (invKsRow % 4) {\r\n\t var t = keySchedule[ksRow];\r\n\t } else {\r\n\t var t = keySchedule[ksRow - 4];\r\n\t }\r\n\r\n\t if (invKsRow < 4 || ksRow <= 4) {\r\n\t invKeySchedule[invKsRow] = t;\r\n\t } else {\r\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\r\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\r\n\t }\r\n\t }\r\n\t },\r\n\r\n\t encryptBlock: function (M, offset) {\r\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\r\n\t },\r\n\r\n\t decryptBlock: function (M, offset) {\r\n\t // Swap 2nd and 4th rows\r\n\t var t = M[offset + 1];\r\n\t M[offset + 1] = M[offset + 3];\r\n\t M[offset + 3] = t;\r\n\r\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\r\n\r\n\t // Inv swap 2nd and 4th rows\r\n\t var t = M[offset + 1];\r\n\t M[offset + 1] = M[offset + 3];\r\n\t M[offset + 3] = t;\r\n\t },\r\n\r\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\r\n\t // Shortcut\r\n\t var nRounds = this._nRounds;\r\n\r\n\t // Get input, add round key\r\n\t var s0 = M[offset] ^ keySchedule[0];\r\n\t var s1 = M[offset + 1] ^ keySchedule[1];\r\n\t var s2 = M[offset + 2] ^ keySchedule[2];\r\n\t var s3 = M[offset + 3] ^ keySchedule[3];\r\n\r\n\t // Key schedule row counter\r\n\t var ksRow = 4;\r\n\r\n\t // Rounds\r\n\t for (var round = 1; round < nRounds; round++) {\r\n\t // Shift rows, sub bytes, mix columns, add round key\r\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\r\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\r\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\r\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\r\n\r\n\t // Update state\r\n\t s0 = t0;\r\n\t s1 = t1;\r\n\t s2 = t2;\r\n\t s3 = t3;\r\n\t }\r\n\r\n\t // Shift rows, sub bytes, add round key\r\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\r\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\r\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\r\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\r\n\r\n\t // Set output\r\n\t M[offset] = t0;\r\n\t M[offset + 1] = t1;\r\n\t M[offset + 2] = t2;\r\n\t M[offset + 3] = t3;\r\n\t },\r\n\r\n\t keySize: 256/32\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.AES = BlockCipher._createHelper(AES);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.AES;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var WordArray = C_lib.WordArray;\r\n\t var BlockCipher = C_lib.BlockCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Permuted Choice 1 constants\r\n\t var PC1 = [\r\n\t 57, 49, 41, 33, 25, 17, 9, 1,\r\n\t 58, 50, 42, 34, 26, 18, 10, 2,\r\n\t 59, 51, 43, 35, 27, 19, 11, 3,\r\n\t 60, 52, 44, 36, 63, 55, 47, 39,\r\n\t 31, 23, 15, 7, 62, 54, 46, 38,\r\n\t 30, 22, 14, 6, 61, 53, 45, 37,\r\n\t 29, 21, 13, 5, 28, 20, 12, 4\r\n\t ];\r\n\r\n\t // Permuted Choice 2 constants\r\n\t var PC2 = [\r\n\t 14, 17, 11, 24, 1, 5,\r\n\t 3, 28, 15, 6, 21, 10,\r\n\t 23, 19, 12, 4, 26, 8,\r\n\t 16, 7, 27, 20, 13, 2,\r\n\t 41, 52, 31, 37, 47, 55,\r\n\t 30, 40, 51, 45, 33, 48,\r\n\t 44, 49, 39, 56, 34, 53,\r\n\t 46, 42, 50, 36, 29, 32\r\n\t ];\r\n\r\n\t // Cumulative bit shift constants\r\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\r\n\r\n\t // SBOXes and round permutation constants\r\n\t var SBOX_P = [\r\n\t {\r\n\t 0x0: 0x808200,\r\n\t 0x10000000: 0x8000,\r\n\t 0x20000000: 0x808002,\r\n\t 0x30000000: 0x2,\r\n\t 0x40000000: 0x200,\r\n\t 0x50000000: 0x808202,\r\n\t 0x60000000: 0x800202,\r\n\t 0x70000000: 0x800000,\r\n\t 0x80000000: 0x202,\r\n\t 0x90000000: 0x800200,\r\n\t 0xa0000000: 0x8200,\r\n\t 0xb0000000: 0x808000,\r\n\t 0xc0000000: 0x8002,\r\n\t 0xd0000000: 0x800002,\r\n\t 0xe0000000: 0x0,\r\n\t 0xf0000000: 0x8202,\r\n\t 0x8000000: 0x0,\r\n\t 0x18000000: 0x808202,\r\n\t 0x28000000: 0x8202,\r\n\t 0x38000000: 0x8000,\r\n\t 0x48000000: 0x808200,\r\n\t 0x58000000: 0x200,\r\n\t 0x68000000: 0x808002,\r\n\t 0x78000000: 0x2,\r\n\t 0x88000000: 0x800200,\r\n\t 0x98000000: 0x8200,\r\n\t 0xa8000000: 0x808000,\r\n\t 0xb8000000: 0x800202,\r\n\t 0xc8000000: 0x800002,\r\n\t 0xd8000000: 0x8002,\r\n\t 0xe8000000: 0x202,\r\n\t 0xf8000000: 0x800000,\r\n\t 0x1: 0x8000,\r\n\t 0x10000001: 0x2,\r\n\t 0x20000001: 0x808200,\r\n\t 0x30000001: 0x800000,\r\n\t 0x40000001: 0x808002,\r\n\t 0x50000001: 0x8200,\r\n\t 0x60000001: 0x200,\r\n\t 0x70000001: 0x800202,\r\n\t 0x80000001: 0x808202,\r\n\t 0x90000001: 0x808000,\r\n\t 0xa0000001: 0x800002,\r\n\t 0xb0000001: 0x8202,\r\n\t 0xc0000001: 0x202,\r\n\t 0xd0000001: 0x800200,\r\n\t 0xe0000001: 0x8002,\r\n\t 0xf0000001: 0x0,\r\n\t 0x8000001: 0x808202,\r\n\t 0x18000001: 0x808000,\r\n\t 0x28000001: 0x800000,\r\n\t 0x38000001: 0x200,\r\n\t 0x48000001: 0x8000,\r\n\t 0x58000001: 0x800002,\r\n\t 0x68000001: 0x2,\r\n\t 0x78000001: 0x8202,\r\n\t 0x88000001: 0x8002,\r\n\t 0x98000001: 0x800202,\r\n\t 0xa8000001: 0x202,\r\n\t 0xb8000001: 0x808200,\r\n\t 0xc8000001: 0x800200,\r\n\t 0xd8000001: 0x0,\r\n\t 0xe8000001: 0x8200,\r\n\t 0xf8000001: 0x808002\r\n\t },\r\n\t {\r\n\t 0x0: 0x40084010,\r\n\t 0x1000000: 0x4000,\r\n\t 0x2000000: 0x80000,\r\n\t 0x3000000: 0x40080010,\r\n\t 0x4000000: 0x40000010,\r\n\t 0x5000000: 0x40084000,\r\n\t 0x6000000: 0x40004000,\r\n\t 0x7000000: 0x10,\r\n\t 0x8000000: 0x84000,\r\n\t 0x9000000: 0x40004010,\r\n\t 0xa000000: 0x40000000,\r\n\t 0xb000000: 0x84010,\r\n\t 0xc000000: 0x80010,\r\n\t 0xd000000: 0x0,\r\n\t 0xe000000: 0x4010,\r\n\t 0xf000000: 0x40080000,\r\n\t 0x800000: 0x40004000,\r\n\t 0x1800000: 0x84010,\r\n\t 0x2800000: 0x10,\r\n\t 0x3800000: 0x40004010,\r\n\t 0x4800000: 0x40084010,\r\n\t 0x5800000: 0x40000000,\r\n\t 0x6800000: 0x80000,\r\n\t 0x7800000: 0x40080010,\r\n\t 0x8800000: 0x80010,\r\n\t 0x9800000: 0x0,\r\n\t 0xa800000: 0x4000,\r\n\t 0xb800000: 0x40080000,\r\n\t 0xc800000: 0x40000010,\r\n\t 0xd800000: 0x84000,\r\n\t 0xe800000: 0x40084000,\r\n\t 0xf800000: 0x4010,\r\n\t 0x10000000: 0x0,\r\n\t 0x11000000: 0x40080010,\r\n\t 0x12000000: 0x40004010,\r\n\t 0x13000000: 0x40084000,\r\n\t 0x14000000: 0x40080000,\r\n\t 0x15000000: 0x10,\r\n\t 0x16000000: 0x84010,\r\n\t 0x17000000: 0x4000,\r\n\t 0x18000000: 0x4010,\r\n\t 0x19000000: 0x80000,\r\n\t 0x1a000000: 0x80010,\r\n\t 0x1b000000: 0x40000010,\r\n\t 0x1c000000: 0x84000,\r\n\t 0x1d000000: 0x40004000,\r\n\t 0x1e000000: 0x40000000,\r\n\t 0x1f000000: 0x40084010,\r\n\t 0x10800000: 0x84010,\r\n\t 0x11800000: 0x80000,\r\n\t 0x12800000: 0x40080000,\r\n\t 0x13800000: 0x4000,\r\n\t 0x14800000: 0x40004000,\r\n\t 0x15800000: 0x40084010,\r\n\t 0x16800000: 0x10,\r\n\t 0x17800000: 0x40000000,\r\n\t 0x18800000: 0x40084000,\r\n\t 0x19800000: 0x40000010,\r\n\t 0x1a800000: 0x40004010,\r\n\t 0x1b800000: 0x80010,\r\n\t 0x1c800000: 0x0,\r\n\t 0x1d800000: 0x4010,\r\n\t 0x1e800000: 0x40080010,\r\n\t 0x1f800000: 0x84000\r\n\t },\r\n\t {\r\n\t 0x0: 0x104,\r\n\t 0x100000: 0x0,\r\n\t 0x200000: 0x4000100,\r\n\t 0x300000: 0x10104,\r\n\t 0x400000: 0x10004,\r\n\t 0x500000: 0x4000004,\r\n\t 0x600000: 0x4010104,\r\n\t 0x700000: 0x4010000,\r\n\t 0x800000: 0x4000000,\r\n\t 0x900000: 0x4010100,\r\n\t 0xa00000: 0x10100,\r\n\t 0xb00000: 0x4010004,\r\n\t 0xc00000: 0x4000104,\r\n\t 0xd00000: 0x10000,\r\n\t 0xe00000: 0x4,\r\n\t 0xf00000: 0x100,\r\n\t 0x80000: 0x4010100,\r\n\t 0x180000: 0x4010004,\r\n\t 0x280000: 0x0,\r\n\t 0x380000: 0x4000100,\r\n\t 0x480000: 0x4000004,\r\n\t 0x580000: 0x10000,\r\n\t 0x680000: 0x10004,\r\n\t 0x780000: 0x104,\r\n\t 0x880000: 0x4,\r\n\t 0x980000: 0x100,\r\n\t 0xa80000: 0x4010000,\r\n\t 0xb80000: 0x10104,\r\n\t 0xc80000: 0x10100,\r\n\t 0xd80000: 0x4000104,\r\n\t 0xe80000: 0x4010104,\r\n\t 0xf80000: 0x4000000,\r\n\t 0x1000000: 0x4010100,\r\n\t 0x1100000: 0x10004,\r\n\t 0x1200000: 0x10000,\r\n\t 0x1300000: 0x4000100,\r\n\t 0x1400000: 0x100,\r\n\t 0x1500000: 0x4010104,\r\n\t 0x1600000: 0x4000004,\r\n\t 0x1700000: 0x0,\r\n\t 0x1800000: 0x4000104,\r\n\t 0x1900000: 0x4000000,\r\n\t 0x1a00000: 0x4,\r\n\t 0x1b00000: 0x10100,\r\n\t 0x1c00000: 0x4010000,\r\n\t 0x1d00000: 0x104,\r\n\t 0x1e00000: 0x10104,\r\n\t 0x1f00000: 0x4010004,\r\n\t 0x1080000: 0x4000000,\r\n\t 0x1180000: 0x104,\r\n\t 0x1280000: 0x4010100,\r\n\t 0x1380000: 0x0,\r\n\t 0x1480000: 0x10004,\r\n\t 0x1580000: 0x4000100,\r\n\t 0x1680000: 0x100,\r\n\t 0x1780000: 0x4010004,\r\n\t 0x1880000: 0x10000,\r\n\t 0x1980000: 0x4010104,\r\n\t 0x1a80000: 0x10104,\r\n\t 0x1b80000: 0x4000004,\r\n\t 0x1c80000: 0x4000104,\r\n\t 0x1d80000: 0x4010000,\r\n\t 0x1e80000: 0x4,\r\n\t 0x1f80000: 0x10100\r\n\t },\r\n\t {\r\n\t 0x0: 0x80401000,\r\n\t 0x10000: 0x80001040,\r\n\t 0x20000: 0x401040,\r\n\t 0x30000: 0x80400000,\r\n\t 0x40000: 0x0,\r\n\t 0x50000: 0x401000,\r\n\t 0x60000: 0x80000040,\r\n\t 0x70000: 0x400040,\r\n\t 0x80000: 0x80000000,\r\n\t 0x90000: 0x400000,\r\n\t 0xa0000: 0x40,\r\n\t 0xb0000: 0x80001000,\r\n\t 0xc0000: 0x80400040,\r\n\t 0xd0000: 0x1040,\r\n\t 0xe0000: 0x1000,\r\n\t 0xf0000: 0x80401040,\r\n\t 0x8000: 0x80001040,\r\n\t 0x18000: 0x40,\r\n\t 0x28000: 0x80400040,\r\n\t 0x38000: 0x80001000,\r\n\t 0x48000: 0x401000,\r\n\t 0x58000: 0x80401040,\r\n\t 0x68000: 0x0,\r\n\t 0x78000: 0x80400000,\r\n\t 0x88000: 0x1000,\r\n\t 0x98000: 0x80401000,\r\n\t 0xa8000: 0x400000,\r\n\t 0xb8000: 0x1040,\r\n\t 0xc8000: 0x80000000,\r\n\t 0xd8000: 0x400040,\r\n\t 0xe8000: 0x401040,\r\n\t 0xf8000: 0x80000040,\r\n\t 0x100000: 0x400040,\r\n\t 0x110000: 0x401000,\r\n\t 0x120000: 0x80000040,\r\n\t 0x130000: 0x0,\r\n\t 0x140000: 0x1040,\r\n\t 0x150000: 0x80400040,\r\n\t 0x160000: 0x80401000,\r\n\t 0x170000: 0x80001040,\r\n\t 0x180000: 0x80401040,\r\n\t 0x190000: 0x80000000,\r\n\t 0x1a0000: 0x80400000,\r\n\t 0x1b0000: 0x401040,\r\n\t 0x1c0000: 0x80001000,\r\n\t 0x1d0000: 0x400000,\r\n\t 0x1e0000: 0x40,\r\n\t 0x1f0000: 0x1000,\r\n\t 0x108000: 0x80400000,\r\n\t 0x118000: 0x80401040,\r\n\t 0x128000: 0x0,\r\n\t 0x138000: 0x401000,\r\n\t 0x148000: 0x400040,\r\n\t 0x158000: 0x80000000,\r\n\t 0x168000: 0x80001040,\r\n\t 0x178000: 0x40,\r\n\t 0x188000: 0x80000040,\r\n\t 0x198000: 0x1000,\r\n\t 0x1a8000: 0x80001000,\r\n\t 0x1b8000: 0x80400040,\r\n\t 0x1c8000: 0x1040,\r\n\t 0x1d8000: 0x80401000,\r\n\t 0x1e8000: 0x400000,\r\n\t 0x1f8000: 0x401040\r\n\t },\r\n\t {\r\n\t 0x0: 0x80,\r\n\t 0x1000: 0x1040000,\r\n\t 0x2000: 0x40000,\r\n\t 0x3000: 0x20000000,\r\n\t 0x4000: 0x20040080,\r\n\t 0x5000: 0x1000080,\r\n\t 0x6000: 0x21000080,\r\n\t 0x7000: 0x40080,\r\n\t 0x8000: 0x1000000,\r\n\t 0x9000: 0x20040000,\r\n\t 0xa000: 0x20000080,\r\n\t 0xb000: 0x21040080,\r\n\t 0xc000: 0x21040000,\r\n\t 0xd000: 0x0,\r\n\t 0xe000: 0x1040080,\r\n\t 0xf000: 0x21000000,\r\n\t 0x800: 0x1040080,\r\n\t 0x1800: 0x21000080,\r\n\t 0x2800: 0x80,\r\n\t 0x3800: 0x1040000,\r\n\t 0x4800: 0x40000,\r\n\t 0x5800: 0x20040080,\r\n\t 0x6800: 0x21040000,\r\n\t 0x7800: 0x20000000,\r\n\t 0x8800: 0x20040000,\r\n\t 0x9800: 0x0,\r\n\t 0xa800: 0x21040080,\r\n\t 0xb800: 0x1000080,\r\n\t 0xc800: 0x20000080,\r\n\t 0xd800: 0x21000000,\r\n\t 0xe800: 0x1000000,\r\n\t 0xf800: 0x40080,\r\n\t 0x10000: 0x40000,\r\n\t 0x11000: 0x80,\r\n\t 0x12000: 0x20000000,\r\n\t 0x13000: 0x21000080,\r\n\t 0x14000: 0x1000080,\r\n\t 0x15000: 0x21040000,\r\n\t 0x16000: 0x20040080,\r\n\t 0x17000: 0x1000000,\r\n\t 0x18000: 0x21040080,\r\n\t 0x19000: 0x21000000,\r\n\t 0x1a000: 0x1040000,\r\n\t 0x1b000: 0x20040000,\r\n\t 0x1c000: 0x40080,\r\n\t 0x1d000: 0x20000080,\r\n\t 0x1e000: 0x0,\r\n\t 0x1f000: 0x1040080,\r\n\t 0x10800: 0x21000080,\r\n\t 0x11800: 0x1000000,\r\n\t 0x12800: 0x1040000,\r\n\t 0x13800: 0x20040080,\r\n\t 0x14800: 0x20000000,\r\n\t 0x15800: 0x1040080,\r\n\t 0x16800: 0x80,\r\n\t 0x17800: 0x21040000,\r\n\t 0x18800: 0x40080,\r\n\t 0x19800: 0x21040080,\r\n\t 0x1a800: 0x0,\r\n\t 0x1b800: 0x21000000,\r\n\t 0x1c800: 0x1000080,\r\n\t 0x1d800: 0x40000,\r\n\t 0x1e800: 0x20040000,\r\n\t 0x1f800: 0x20000080\r\n\t },\r\n\t {\r\n\t 0x0: 0x10000008,\r\n\t 0x100: 0x2000,\r\n\t 0x200: 0x10200000,\r\n\t 0x300: 0x10202008,\r\n\t 0x400: 0x10002000,\r\n\t 0x500: 0x200000,\r\n\t 0x600: 0x200008,\r\n\t 0x700: 0x10000000,\r\n\t 0x800: 0x0,\r\n\t 0x900: 0x10002008,\r\n\t 0xa00: 0x202000,\r\n\t 0xb00: 0x8,\r\n\t 0xc00: 0x10200008,\r\n\t 0xd00: 0x202008,\r\n\t 0xe00: 0x2008,\r\n\t 0xf00: 0x10202000,\r\n\t 0x80: 0x10200000,\r\n\t 0x180: 0x10202008,\r\n\t 0x280: 0x8,\r\n\t 0x380: 0x200000,\r\n\t 0x480: 0x202008,\r\n\t 0x580: 0x10000008,\r\n\t 0x680: 0x10002000,\r\n\t 0x780: 0x2008,\r\n\t 0x880: 0x200008,\r\n\t 0x980: 0x2000,\r\n\t 0xa80: 0x10002008,\r\n\t 0xb80: 0x10200008,\r\n\t 0xc80: 0x0,\r\n\t 0xd80: 0x10202000,\r\n\t 0xe80: 0x202000,\r\n\t 0xf80: 0x10000000,\r\n\t 0x1000: 0x10002000,\r\n\t 0x1100: 0x10200008,\r\n\t 0x1200: 0x10202008,\r\n\t 0x1300: 0x2008,\r\n\t 0x1400: 0x200000,\r\n\t 0x1500: 0x10000000,\r\n\t 0x1600: 0x10000008,\r\n\t 0x1700: 0x202000,\r\n\t 0x1800: 0x202008,\r\n\t 0x1900: 0x0,\r\n\t 0x1a00: 0x8,\r\n\t 0x1b00: 0x10200000,\r\n\t 0x1c00: 0x2000,\r\n\t 0x1d00: 0x10002008,\r\n\t 0x1e00: 0x10202000,\r\n\t 0x1f00: 0x200008,\r\n\t 0x1080: 0x8,\r\n\t 0x1180: 0x202000,\r\n\t 0x1280: 0x200000,\r\n\t 0x1380: 0x10000008,\r\n\t 0x1480: 0x10002000,\r\n\t 0x1580: 0x2008,\r\n\t 0x1680: 0x10202008,\r\n\t 0x1780: 0x10200000,\r\n\t 0x1880: 0x10202000,\r\n\t 0x1980: 0x10200008,\r\n\t 0x1a80: 0x2000,\r\n\t 0x1b80: 0x202008,\r\n\t 0x1c80: 0x200008,\r\n\t 0x1d80: 0x0,\r\n\t 0x1e80: 0x10000000,\r\n\t 0x1f80: 0x10002008\r\n\t },\r\n\t {\r\n\t 0x0: 0x100000,\r\n\t 0x10: 0x2000401,\r\n\t 0x20: 0x400,\r\n\t 0x30: 0x100401,\r\n\t 0x40: 0x2100401,\r\n\t 0x50: 0x0,\r\n\t 0x60: 0x1,\r\n\t 0x70: 0x2100001,\r\n\t 0x80: 0x2000400,\r\n\t 0x90: 0x100001,\r\n\t 0xa0: 0x2000001,\r\n\t 0xb0: 0x2100400,\r\n\t 0xc0: 0x2100000,\r\n\t 0xd0: 0x401,\r\n\t 0xe0: 0x100400,\r\n\t 0xf0: 0x2000000,\r\n\t 0x8: 0x2100001,\r\n\t 0x18: 0x0,\r\n\t 0x28: 0x2000401,\r\n\t 0x38: 0x2100400,\r\n\t 0x48: 0x100000,\r\n\t 0x58: 0x2000001,\r\n\t 0x68: 0x2000000,\r\n\t 0x78: 0x401,\r\n\t 0x88: 0x100401,\r\n\t 0x98: 0x2000400,\r\n\t 0xa8: 0x2100000,\r\n\t 0xb8: 0x100001,\r\n\t 0xc8: 0x400,\r\n\t 0xd8: 0x2100401,\r\n\t 0xe8: 0x1,\r\n\t 0xf8: 0x100400,\r\n\t 0x100: 0x2000000,\r\n\t 0x110: 0x100000,\r\n\t 0x120: 0x2000401,\r\n\t 0x130: 0x2100001,\r\n\t 0x140: 0x100001,\r\n\t 0x150: 0x2000400,\r\n\t 0x160: 0x2100400,\r\n\t 0x170: 0x100401,\r\n\t 0x180: 0x401,\r\n\t 0x190: 0x2100401,\r\n\t 0x1a0: 0x100400,\r\n\t 0x1b0: 0x1,\r\n\t 0x1c0: 0x0,\r\n\t 0x1d0: 0x2100000,\r\n\t 0x1e0: 0x2000001,\r\n\t 0x1f0: 0x400,\r\n\t 0x108: 0x100400,\r\n\t 0x118: 0x2000401,\r\n\t 0x128: 0x2100001,\r\n\t 0x138: 0x1,\r\n\t 0x148: 0x2000000,\r\n\t 0x158: 0x100000,\r\n\t 0x168: 0x401,\r\n\t 0x178: 0x2100400,\r\n\t 0x188: 0x2000001,\r\n\t 0x198: 0x2100000,\r\n\t 0x1a8: 0x0,\r\n\t 0x1b8: 0x2100401,\r\n\t 0x1c8: 0x100401,\r\n\t 0x1d8: 0x400,\r\n\t 0x1e8: 0x2000400,\r\n\t 0x1f8: 0x100001\r\n\t },\r\n\t {\r\n\t 0x0: 0x8000820,\r\n\t 0x1: 0x20000,\r\n\t 0x2: 0x8000000,\r\n\t 0x3: 0x20,\r\n\t 0x4: 0x20020,\r\n\t 0x5: 0x8020820,\r\n\t 0x6: 0x8020800,\r\n\t 0x7: 0x800,\r\n\t 0x8: 0x8020000,\r\n\t 0x9: 0x8000800,\r\n\t 0xa: 0x20800,\r\n\t 0xb: 0x8020020,\r\n\t 0xc: 0x820,\r\n\t 0xd: 0x0,\r\n\t 0xe: 0x8000020,\r\n\t 0xf: 0x20820,\r\n\t 0x80000000: 0x800,\r\n\t 0x80000001: 0x8020820,\r\n\t 0x80000002: 0x8000820,\r\n\t 0x80000003: 0x8000000,\r\n\t 0x80000004: 0x8020000,\r\n\t 0x80000005: 0x20800,\r\n\t 0x80000006: 0x20820,\r\n\t 0x80000007: 0x20,\r\n\t 0x80000008: 0x8000020,\r\n\t 0x80000009: 0x820,\r\n\t 0x8000000a: 0x20020,\r\n\t 0x8000000b: 0x8020800,\r\n\t 0x8000000c: 0x0,\r\n\t 0x8000000d: 0x8020020,\r\n\t 0x8000000e: 0x8000800,\r\n\t 0x8000000f: 0x20000,\r\n\t 0x10: 0x20820,\r\n\t 0x11: 0x8020800,\r\n\t 0x12: 0x20,\r\n\t 0x13: 0x800,\r\n\t 0x14: 0x8000800,\r\n\t 0x15: 0x8000020,\r\n\t 0x16: 0x8020020,\r\n\t 0x17: 0x20000,\r\n\t 0x18: 0x0,\r\n\t 0x19: 0x20020,\r\n\t 0x1a: 0x8020000,\r\n\t 0x1b: 0x8000820,\r\n\t 0x1c: 0x8020820,\r\n\t 0x1d: 0x20800,\r\n\t 0x1e: 0x820,\r\n\t 0x1f: 0x8000000,\r\n\t 0x80000010: 0x20000,\r\n\t 0x80000011: 0x800,\r\n\t 0x80000012: 0x8020020,\r\n\t 0x80000013: 0x20820,\r\n\t 0x80000014: 0x20,\r\n\t 0x80000015: 0x8020000,\r\n\t 0x80000016: 0x8000000,\r\n\t 0x80000017: 0x8000820,\r\n\t 0x80000018: 0x8020820,\r\n\t 0x80000019: 0x8000020,\r\n\t 0x8000001a: 0x8000800,\r\n\t 0x8000001b: 0x0,\r\n\t 0x8000001c: 0x20800,\r\n\t 0x8000001d: 0x820,\r\n\t 0x8000001e: 0x20020,\r\n\t 0x8000001f: 0x8020800\r\n\t }\r\n\t ];\r\n\r\n\t // Masks that select the SBOX input\r\n\t var SBOX_MASK = [\r\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\r\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\r\n\t ];\r\n\r\n\t /**\r\n\t * DES block cipher algorithm.\r\n\t */\r\n\t var DES = C_algo.DES = BlockCipher.extend({\r\n\t _doReset: function () {\r\n\t // Shortcuts\r\n\t var key = this._key;\r\n\t var keyWords = key.words;\r\n\r\n\t // Select 56 bits according to PC1\r\n\t var keyBits = [];\r\n\t for (var i = 0; i < 56; i++) {\r\n\t var keyBitPos = PC1[i] - 1;\r\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\r\n\t }\r\n\r\n\t // Assemble 16 subkeys\r\n\t var subKeys = this._subKeys = [];\r\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\r\n\t // Create subkey\r\n\t var subKey = subKeys[nSubKey] = [];\r\n\r\n\t // Shortcut\r\n\t var bitShift = BIT_SHIFTS[nSubKey];\r\n\r\n\t // Select 48 bits according to PC2\r\n\t for (var i = 0; i < 24; i++) {\r\n\t // Select from the left 28 key bits\r\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\r\n\r\n\t // Select from the right 28 key bits\r\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\r\n\t }\r\n\r\n\t // Since each subkey is applied to an expanded 32-bit input,\r\n\t // the subkey can be broken into 8 values scaled to 32-bits,\r\n\t // which allows the key to be used without expansion\r\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\r\n\t for (var i = 1; i < 7; i++) {\r\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\r\n\t }\r\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\r\n\t }\r\n\r\n\t // Compute inverse subkeys\r\n\t var invSubKeys = this._invSubKeys = [];\r\n\t for (var i = 0; i < 16; i++) {\r\n\t invSubKeys[i] = subKeys[15 - i];\r\n\t }\r\n\t },\r\n\r\n\t encryptBlock: function (M, offset) {\r\n\t this._doCryptBlock(M, offset, this._subKeys);\r\n\t },\r\n\r\n\t decryptBlock: function (M, offset) {\r\n\t this._doCryptBlock(M, offset, this._invSubKeys);\r\n\t },\r\n\r\n\t _doCryptBlock: function (M, offset, subKeys) {\r\n\t // Get input\r\n\t this._lBlock = M[offset];\r\n\t this._rBlock = M[offset + 1];\r\n\r\n\t // Initial permutation\r\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\r\n\t exchangeLR.call(this, 16, 0x0000ffff);\r\n\t exchangeRL.call(this, 2, 0x33333333);\r\n\t exchangeRL.call(this, 8, 0x00ff00ff);\r\n\t exchangeLR.call(this, 1, 0x55555555);\r\n\r\n\t // Rounds\r\n\t for (var round = 0; round < 16; round++) {\r\n\t // Shortcuts\r\n\t var subKey = subKeys[round];\r\n\t var lBlock = this._lBlock;\r\n\t var rBlock = this._rBlock;\r\n\r\n\t // Feistel function\r\n\t var f = 0;\r\n\t for (var i = 0; i < 8; i++) {\r\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\r\n\t }\r\n\t this._lBlock = rBlock;\r\n\t this._rBlock = lBlock ^ f;\r\n\t }\r\n\r\n\t // Undo swap from last round\r\n\t var t = this._lBlock;\r\n\t this._lBlock = this._rBlock;\r\n\t this._rBlock = t;\r\n\r\n\t // Final permutation\r\n\t exchangeLR.call(this, 1, 0x55555555);\r\n\t exchangeRL.call(this, 8, 0x00ff00ff);\r\n\t exchangeRL.call(this, 2, 0x33333333);\r\n\t exchangeLR.call(this, 16, 0x0000ffff);\r\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\r\n\r\n\t // Set output\r\n\t M[offset] = this._lBlock;\r\n\t M[offset + 1] = this._rBlock;\r\n\t },\r\n\r\n\t keySize: 64/32,\r\n\r\n\t ivSize: 64/32,\r\n\r\n\t blockSize: 64/32\r\n\t });\r\n\r\n\t // Swap bits across the left and right words\r\n\t function exchangeLR(offset, mask) {\r\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\r\n\t this._rBlock ^= t;\r\n\t this._lBlock ^= t << offset;\r\n\t }\r\n\r\n\t function exchangeRL(offset, mask) {\r\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\r\n\t this._lBlock ^= t;\r\n\t this._rBlock ^= t << offset;\r\n\t }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.DES = BlockCipher._createHelper(DES);\r\n\r\n\t /**\r\n\t * Triple-DES block cipher algorithm.\r\n\t */\r\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\r\n\t _doReset: function () {\r\n\t // Shortcuts\r\n\t var key = this._key;\r\n\t var keyWords = key.words;\r\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\r\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\r\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\r\n\t }\r\n\r\n\t // Extend the key according to the keying options defined in 3DES standard\r\n\t var key1 = keyWords.slice(0, 2);\r\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\r\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\r\n\r\n\t // Create DES instances\r\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\r\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\r\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\r\n\t },\r\n\r\n\t encryptBlock: function (M, offset) {\r\n\t this._des1.encryptBlock(M, offset);\r\n\t this._des2.decryptBlock(M, offset);\r\n\t this._des3.encryptBlock(M, offset);\r\n\t },\r\n\r\n\t decryptBlock: function (M, offset) {\r\n\t this._des3.decryptBlock(M, offset);\r\n\t this._des2.encryptBlock(M, offset);\r\n\t this._des1.decryptBlock(M, offset);\r\n\t },\r\n\r\n\t keySize: 192/32,\r\n\r\n\t ivSize: 64/32,\r\n\r\n\t blockSize: 64/32\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.TripleDES;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var StreamCipher = C_lib.StreamCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t /**\r\n\t * RC4 stream cipher algorithm.\r\n\t */\r\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\r\n\t _doReset: function () {\r\n\t // Shortcuts\r\n\t var key = this._key;\r\n\t var keyWords = key.words;\r\n\t var keySigBytes = key.sigBytes;\r\n\r\n\t // Init sbox\r\n\t var S = this._S = [];\r\n\t for (var i = 0; i < 256; i++) {\r\n\t S[i] = i;\r\n\t }\r\n\r\n\t // Key setup\r\n\t for (var i = 0, j = 0; i < 256; i++) {\r\n\t var keyByteIndex = i % keySigBytes;\r\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\r\n\r\n\t j = (j + S[i] + keyByte) % 256;\r\n\r\n\t // Swap\r\n\t var t = S[i];\r\n\t S[i] = S[j];\r\n\t S[j] = t;\r\n\t }\r\n\r\n\t // Counters\r\n\t this._i = this._j = 0;\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t M[offset] ^= generateKeystreamWord.call(this);\r\n\t },\r\n\r\n\t keySize: 256/32,\r\n\r\n\t ivSize: 0\r\n\t });\r\n\r\n\t function generateKeystreamWord() {\r\n\t // Shortcuts\r\n\t var S = this._S;\r\n\t var i = this._i;\r\n\t var j = this._j;\r\n\r\n\t // Generate keystream word\r\n\t var keystreamWord = 0;\r\n\t for (var n = 0; n < 4; n++) {\r\n\t i = (i + 1) % 256;\r\n\t j = (j + S[i]) % 256;\r\n\r\n\t // Swap\r\n\t var t = S[i];\r\n\t S[i] = S[j];\r\n\t S[j] = t;\r\n\r\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\r\n\t }\r\n\r\n\t // Update counters\r\n\t this._i = i;\r\n\t this._j = j;\r\n\r\n\t return keystreamWord;\r\n\t }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.RC4 = StreamCipher._createHelper(RC4);\r\n\r\n\t /**\r\n\t * Modified RC4 stream cipher algorithm.\r\n\t */\r\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} drop The number of keystream words to drop. Default 192\r\n\t */\r\n\t cfg: RC4.cfg.extend({\r\n\t drop: 192\r\n\t }),\r\n\r\n\t _doReset: function () {\r\n\t RC4._doReset.call(this);\r\n\r\n\t // Drop\r\n\t for (var i = this.cfg.drop; i > 0; i--) {\r\n\t generateKeystreamWord.call(this);\r\n\t }\r\n\t }\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.RC4;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var StreamCipher = C_lib.StreamCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Reusable objects\r\n\t var S = [];\r\n\t var C_ = [];\r\n\t var G = [];\r\n\r\n\t /**\r\n\t * Rabbit stream cipher algorithm\r\n\t */\r\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\r\n\t _doReset: function () {\r\n\t // Shortcuts\r\n\t var K = this._key.words;\r\n\t var iv = this.cfg.iv;\r\n\r\n\t // Swap endian\r\n\t for (var i = 0; i < 4; i++) {\r\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\r\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\r\n\t }\r\n\r\n\t // Generate initial state values\r\n\t var X = this._X = [\r\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\r\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\r\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\r\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\r\n\t ];\r\n\r\n\t // Generate initial counter values\r\n\t var C = this._C = [\r\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\r\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\r\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\r\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\r\n\t ];\r\n\r\n\t // Carry bit\r\n\t this._b = 0;\r\n\r\n\t // Iterate the system four times\r\n\t for (var i = 0; i < 4; i++) {\r\n\t nextState.call(this);\r\n\t }\r\n\r\n\t // Modify the counters\r\n\t for (var i = 0; i < 8; i++) {\r\n\t C[i] ^= X[(i + 4) & 7];\r\n\t }\r\n\r\n\t // IV setup\r\n\t if (iv) {\r\n\t // Shortcuts\r\n\t var IV = iv.words;\r\n\t var IV_0 = IV[0];\r\n\t var IV_1 = IV[1];\r\n\r\n\t // Generate four subvectors\r\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\r\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\r\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\r\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\r\n\r\n\t // Modify counter values\r\n\t C[0] ^= i0;\r\n\t C[1] ^= i1;\r\n\t C[2] ^= i2;\r\n\t C[3] ^= i3;\r\n\t C[4] ^= i0;\r\n\t C[5] ^= i1;\r\n\t C[6] ^= i2;\r\n\t C[7] ^= i3;\r\n\r\n\t // Iterate the system four times\r\n\t for (var i = 0; i < 4; i++) {\r\n\t nextState.call(this);\r\n\t }\r\n\t }\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcut\r\n\t var X = this._X;\r\n\r\n\t // Iterate the system\r\n\t nextState.call(this);\r\n\r\n\t // Generate four keystream words\r\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\r\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\r\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\r\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\r\n\r\n\t for (var i = 0; i < 4; i++) {\r\n\t // Swap endian\r\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\r\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\r\n\r\n\t // Encrypt\r\n\t M[offset + i] ^= S[i];\r\n\t }\r\n\t },\r\n\r\n\t blockSize: 128/32,\r\n\r\n\t ivSize: 64/32\r\n\t });\r\n\r\n\t function nextState() {\r\n\t // Shortcuts\r\n\t var X = this._X;\r\n\t var C = this._C;\r\n\r\n\t // Save old counter values\r\n\t for (var i = 0; i < 8; i++) {\r\n\t C_[i] = C[i];\r\n\t }\r\n\r\n\t // Calculate new counter values\r\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\r\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\r\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\r\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\r\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\r\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\r\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\r\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\r\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\r\n\r\n\t // Calculate the g-values\r\n\t for (var i = 0; i < 8; i++) {\r\n\t var gx = X[i] + C[i];\r\n\r\n\t // Construct high and low argument for squaring\r\n\t var ga = gx & 0xffff;\r\n\t var gb = gx >>> 16;\r\n\r\n\t // Calculate high and low result of squaring\r\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\r\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\r\n\r\n\t // High XOR low\r\n\t G[i] = gh ^ gl;\r\n\t }\r\n\r\n\t // Calculate new state values\r\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\r\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\r\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\r\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\r\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\r\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\r\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\r\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\r\n\t }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.Rabbit;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var StreamCipher = C_lib.StreamCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t // Reusable objects\r\n\t var S = [];\r\n\t var C_ = [];\r\n\t var G = [];\r\n\r\n\t /**\r\n\t * Rabbit stream cipher algorithm.\r\n\t *\r\n\t * This is a legacy version that neglected to convert the key to little-endian.\r\n\t * This error doesn't affect the cipher's security,\r\n\t * but it does affect its compatibility with other implementations.\r\n\t */\r\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\r\n\t _doReset: function () {\r\n\t // Shortcuts\r\n\t var K = this._key.words;\r\n\t var iv = this.cfg.iv;\r\n\r\n\t // Generate initial state values\r\n\t var X = this._X = [\r\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\r\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\r\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\r\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\r\n\t ];\r\n\r\n\t // Generate initial counter values\r\n\t var C = this._C = [\r\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\r\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\r\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\r\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\r\n\t ];\r\n\r\n\t // Carry bit\r\n\t this._b = 0;\r\n\r\n\t // Iterate the system four times\r\n\t for (var i = 0; i < 4; i++) {\r\n\t nextState.call(this);\r\n\t }\r\n\r\n\t // Modify the counters\r\n\t for (var i = 0; i < 8; i++) {\r\n\t C[i] ^= X[(i + 4) & 7];\r\n\t }\r\n\r\n\t // IV setup\r\n\t if (iv) {\r\n\t // Shortcuts\r\n\t var IV = iv.words;\r\n\t var IV_0 = IV[0];\r\n\t var IV_1 = IV[1];\r\n\r\n\t // Generate four subvectors\r\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\r\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\r\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\r\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\r\n\r\n\t // Modify counter values\r\n\t C[0] ^= i0;\r\n\t C[1] ^= i1;\r\n\t C[2] ^= i2;\r\n\t C[3] ^= i3;\r\n\t C[4] ^= i0;\r\n\t C[5] ^= i1;\r\n\t C[6] ^= i2;\r\n\t C[7] ^= i3;\r\n\r\n\t // Iterate the system four times\r\n\t for (var i = 0; i < 4; i++) {\r\n\t nextState.call(this);\r\n\t }\r\n\t }\r\n\t },\r\n\r\n\t _doProcessBlock: function (M, offset) {\r\n\t // Shortcut\r\n\t var X = this._X;\r\n\r\n\t // Iterate the system\r\n\t nextState.call(this);\r\n\r\n\t // Generate four keystream words\r\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\r\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\r\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\r\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\r\n\r\n\t for (var i = 0; i < 4; i++) {\r\n\t // Swap endian\r\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\r\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\r\n\r\n\t // Encrypt\r\n\t M[offset + i] ^= S[i];\r\n\t }\r\n\t },\r\n\r\n\t blockSize: 128/32,\r\n\r\n\t ivSize: 64/32\r\n\t });\r\n\r\n\t function nextState() {\r\n\t // Shortcuts\r\n\t var X = this._X;\r\n\t var C = this._C;\r\n\r\n\t // Save old counter values\r\n\t for (var i = 0; i < 8; i++) {\r\n\t C_[i] = C[i];\r\n\t }\r\n\r\n\t // Calculate new counter values\r\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\r\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\r\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\r\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\r\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\r\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\r\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\r\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\r\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\r\n\r\n\t // Calculate the g-values\r\n\t for (var i = 0; i < 8; i++) {\r\n\t var gx = X[i] + C[i];\r\n\r\n\t // Construct high and low argument for squaring\r\n\t var ga = gx & 0xffff;\r\n\t var gb = gx >>> 16;\r\n\r\n\t // Calculate high and low result of squaring\r\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\r\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\r\n\r\n\t // High XOR low\r\n\t G[i] = gh ^ gl;\r\n\t }\r\n\r\n\t // Calculate new state values\r\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\r\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\r\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\r\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\r\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\r\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\r\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\r\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\r\n\t }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.RabbitLegacy;\r\n\r\n}));",";(function (root, factory, undef) {\r\n\tif (typeof exports === \"object\") {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\r\n\t}\r\n\telse if (typeof define === \"function\" && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\r\n\t}\r\n\telse {\r\n\t\t// Global (browser)\r\n\t\tfactory(root.CryptoJS);\r\n\t}\r\n}(this, function (CryptoJS) {\r\n\r\n\t(function () {\r\n\t // Shortcuts\r\n\t var C = CryptoJS;\r\n\t var C_lib = C.lib;\r\n\t var BlockCipher = C_lib.BlockCipher;\r\n\t var C_algo = C.algo;\r\n\r\n\t const N = 16;\r\n\r\n\t //Origin pbox and sbox, derived from PI\r\n\t const ORIG_P = [\r\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\r\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\r\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\r\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\r\n\t 0x9216D5D9, 0x8979FB1B\r\n\t ];\r\n\r\n\t const ORIG_S = [\r\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\r\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\r\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\r\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\r\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\r\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\r\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\r\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\r\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\r\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\r\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\r\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\r\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\r\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\r\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\r\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\r\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\r\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\r\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\r\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\r\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\r\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\r\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\r\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\r\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\r\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\r\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\r\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\r\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\r\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\r\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\r\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\r\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\r\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\r\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\r\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\r\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\r\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\r\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\r\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\r\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\r\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\r\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\r\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\r\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\r\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\r\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\r\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\r\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\r\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\r\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\r\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\r\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\r\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\r\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\r\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\r\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\r\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\r\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\r\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\r\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\r\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\r\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\r\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\r\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\r\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\r\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\r\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\r\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\r\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\r\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\r\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\r\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\r\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\r\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\r\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\r\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\r\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\r\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\r\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\r\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\r\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\r\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\r\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\r\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\r\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\r\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\r\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\r\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\r\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\r\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\r\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\r\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\r\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\r\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\r\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\r\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\r\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\r\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\r\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\r\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\r\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\r\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\r\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\r\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\r\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\r\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\r\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\r\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\r\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\r\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\r\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\r\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\r\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\r\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\r\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\r\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\r\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\r\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\r\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\r\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\r\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\r\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\r\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\r\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\r\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\r\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\r\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\r\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\r\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\r\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\r\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\r\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\r\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\r\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\r\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\r\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\r\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\r\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\r\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\r\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\r\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\r\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\r\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\r\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\r\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\r\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\r\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\r\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\r\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\r\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\r\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\r\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\r\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\r\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\r\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\r\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\r\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\r\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\r\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\r\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\r\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\r\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\r\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\r\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\r\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\r\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\r\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\r\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\r\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\r\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\r\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\r\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\r\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\r\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\r\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\r\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\r\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\r\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\r\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\r\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\r\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\r\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\r\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\r\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\r\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\r\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\r\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\r\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\r\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\r\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\r\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\r\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\r\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\r\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\r\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\r\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\r\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\r\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\r\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\r\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\r\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\r\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\r\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\r\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\r\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\r\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\r\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\r\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\r\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\r\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\r\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\r\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\r\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\r\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\r\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\r\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\r\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\r\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\r\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\r\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\r\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\r\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\r\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\r\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\r\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\r\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\r\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\r\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\r\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\r\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\r\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\r\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\r\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\r\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\r\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\r\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\r\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\r\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\r\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\r\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\r\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\r\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\r\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\r\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\r\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\r\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\r\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\r\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\r\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\r\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\r\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\r\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\r\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\r\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\r\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\r\n\t ];\r\n\r\n\t var BLOWFISH_CTX = {\r\n\t pbox: [],\r\n\t sbox: []\r\n\t }\r\n\r\n\t function F(ctx, x){\r\n\t let a = (x >> 24) & 0xFF;\r\n\t let b = (x >> 16) & 0xFF;\r\n\t let c = (x >> 8) & 0xFF;\r\n\t let d = x & 0xFF;\r\n\r\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\r\n\t y = y ^ ctx.sbox[2][c];\r\n\t y = y + ctx.sbox[3][d];\r\n\r\n\t return y;\r\n\t }\r\n\r\n\t function BlowFish_Encrypt(ctx, left, right){\r\n\t let Xl = left;\r\n\t let Xr = right;\r\n\t let temp;\r\n\r\n\t for(let i = 0; i < N; ++i){\r\n\t Xl = Xl ^ ctx.pbox[i];\r\n\t Xr = F(ctx, Xl) ^ Xr;\r\n\r\n\t temp = Xl;\r\n\t Xl = Xr;\r\n\t Xr = temp;\r\n\t }\r\n\r\n\t temp = Xl;\r\n\t Xl = Xr;\r\n\t Xr = temp;\r\n\r\n\t Xr = Xr ^ ctx.pbox[N];\r\n\t Xl = Xl ^ ctx.pbox[N + 1];\r\n\r\n\t return {left: Xl, right: Xr};\r\n\t }\r\n\r\n\t function BlowFish_Decrypt(ctx, left, right){\r\n\t let Xl = left;\r\n\t let Xr = right;\r\n\t let temp;\r\n\r\n\t for(let i = N + 1; i > 1; --i){\r\n\t Xl = Xl ^ ctx.pbox[i];\r\n\t Xr = F(ctx, Xl) ^ Xr;\r\n\r\n\t temp = Xl;\r\n\t Xl = Xr;\r\n\t Xr = temp;\r\n\t }\r\n\r\n\t temp = Xl;\r\n\t Xl = Xr;\r\n\t Xr = temp;\r\n\r\n\t Xr = Xr ^ ctx.pbox[1];\r\n\t Xl = Xl ^ ctx.pbox[0];\r\n\r\n\t return {left: Xl, right: Xr};\r\n\t }\r\n\r\n\t /**\r\n\t * Initialization ctx's pbox and sbox.\r\n\t *\r\n\t * @param {Object} ctx The object has pbox and sbox.\r\n\t * @param {Array} key An array of 32-bit words.\r\n\t * @param {int} keysize The length of the key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\r\n\t */\r\n\t function BlowFishInit(ctx, key, keysize)\r\n\t {\r\n\t for(let Row = 0; Row < 4; Row++)\r\n\t {\r\n\t ctx.sbox[Row] = [];\r\n\t for(let Col = 0; Col < 256; Col++)\r\n\t {\r\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\r\n\t }\r\n\t }\r\n\r\n\t let keyIndex = 0;\r\n\t for(let index = 0; index < N + 2; index++)\r\n\t {\r\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\r\n\t keyIndex++;\r\n\t if(keyIndex >= keysize)\r\n\t {\r\n\t keyIndex = 0;\r\n\t }\r\n\t }\r\n\r\n\t let Data1 = 0;\r\n\t let Data2 = 0;\r\n\t let res = 0;\r\n\t for(let i = 0; i < N + 2; i += 2)\r\n\t {\r\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\r\n\t Data1 = res.left;\r\n\t Data2 = res.right;\r\n\t ctx.pbox[i] = Data1;\r\n\t ctx.pbox[i + 1] = Data2;\r\n\t }\r\n\r\n\t for(let i = 0; i < 4; i++)\r\n\t {\r\n\t for(let j = 0; j < 256; j += 2)\r\n\t {\r\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\r\n\t Data1 = res.left;\r\n\t Data2 = res.right;\r\n\t ctx.sbox[i][j] = Data1;\r\n\t ctx.sbox[i][j + 1] = Data2;\r\n\t }\r\n\t }\r\n\r\n\t return true;\r\n\t }\r\n\r\n\t /**\r\n\t * Blowfish block cipher algorithm.\r\n\t */\r\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\r\n\t _doReset: function () {\r\n\t // Skip reset of nRounds has been set before and key did not change\r\n\t if (this._keyPriorReset === this._key) {\r\n\t return;\r\n\t }\r\n\r\n\t // Shortcuts\r\n\t var key = this._keyPriorReset = this._key;\r\n\t var keyWords = key.words;\r\n\t var keySize = key.sigBytes / 4;\r\n\r\n\t //Initialization pbox and sbox\r\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\r\n\t },\r\n\r\n\t encryptBlock: function (M, offset) {\r\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\r\n\t M[offset] = res.left;\r\n\t M[offset + 1] = res.right;\r\n\t },\r\n\r\n\t decryptBlock: function (M, offset) {\r\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\r\n\t M[offset] = res.left;\r\n\t M[offset + 1] = res.right;\r\n\t },\r\n\r\n\t blockSize: 64/32,\r\n\r\n\t keySize: 128/32,\r\n\r\n\t ivSize: 64/32\r\n\t });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\r\n\t */\r\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\r\n\t}());\r\n\r\n\r\n\treturn CryptoJS.Blowfish;\r\n\r\n}));"]} \ No newline at end of file diff --git a/miniprogram_npm/dayjs/index.js b/miniprogram_npm/dayjs/index.js new file mode 100644 index 0000000..eca51af --- /dev/null +++ b/miniprogram_npm/dayjs/index.js @@ -0,0 +1,13 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1739326742686, function(require, module, exports) { +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) false +isHoliday('2022-10-01') +// => true +isAddtionalWorkday('2022-01-29') +// => true +getFestival('2022-10-01') +// => 国庆节 +``` + +[travis-image]: https://travis-ci.org/yize/chinese-workday.svg?branch=master +[travis-url]: https://travis-ci.org/yize/chinese-workday + +**Note**: Since 2018 diff --git a/node_modules/chinese-workday/index.d.ts b/node_modules/chinese-workday/index.d.ts new file mode 100644 index 0000000..b252d4d --- /dev/null +++ b/node_modules/chinese-workday/index.d.ts @@ -0,0 +1,5 @@ +export interface ChineseWorkday{ + isWorkday(day: string | Date): boolean; + isHoliday(day: string | Date): boolean; + getFestival(day: string | Date): string; +} diff --git a/node_modules/chinese-workday/index.js b/node_modules/chinese-workday/index.js new file mode 100644 index 0000000..191851b --- /dev/null +++ b/node_modules/chinese-workday/index.js @@ -0,0 +1,313 @@ +// from +// - 2018 https://www.gov.cn/zhengce/content/2017-11/30/content_5243579.htm +// - 2019 https://www.gov.cn/zhengce/content/2018-12/06/content_5346276.htm +// - 2019调整 https://www.gov.cn/zhengce/content/2019-03/22/content_5375877.htm +// - 2020 https://www.gov.cn/zhengce/content/2019-11/21/content_5454164.htm +// - 2021 https://www.gov.cn/zhengce/content/2020-11/25/content_5564127.htm +// - 2022 https://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm +// - 2023 https://www.gov.cn/zhengce/zhengceku/2022-12/08/content_5730844.htm +// - 2024 https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm +"use strict"; + +module.exports = { + isWorkday: isWorkday, + isHoliday: isHoliday, + getFestival: getFestival, + isAddtionalWorkday: isAddtionalWorkday, +}; + +var HOLIDAYS = { + "2018-02-15": "春节", + "2018-02-16": "春节", + "2018-02-17": "春节", + "2018-02-18": "春节", + "2018-02-19": "春节", + "2018-02-20": "春节", + "2018-02-21": "春节", + "2018-04-05": "清明节", + "2018-04-06": "清明节", + "2018-04-07": "清明节", + "2018-04-29": "劳动节", + "2018-04-30": "劳动节", + "2018-05-01": "劳动节", + "2018-06-18": "端午节", + "2018-09-24": "中秋节", + "2018-10-01": "国庆节", + "2018-10-02": "国庆节", + "2018-10-03": "国庆节", + "2018-10-04": "国庆节", + "2018-10-05": "国庆节", + "2018-10-06": "国庆节", + "2018-10-07": "国庆节", + "2018-12-30": "元旦", + "2018-12-31": "元旦", + "2019-01-01": "元旦", + "2019-02-04": "春节", + "2019-02-05": "春节", + "2019-02-06": "春节", + "2019-02-07": "春节", + "2019-02-08": "春节", + "2019-02-09": "春节", + "2019-02-10": "春节", + "2019-04-05": "清明节", + "2019-04-06": "清明节", + "2019-04-07": "清明节", + "2019-05-01": "劳动节", + "2019-05-02": "劳动节", + "2019-05-03": "劳动节", + "2019-05-04": "劳动节", + "2019-06-07": "端午节", + "2019-06-08": "端午节", + "2019-06-09": "端午节", + "2019-09-13": "中秋节", + "2019-09-14": "中秋节", + "2019-09-15": "中秋节", + "2019-10-01": "国庆节", + "2019-10-02": "国庆节", + "2019-10-03": "国庆节", + "2019-10-04": "国庆节", + "2019-10-05": "国庆节", + "2019-10-06": "国庆节", + "2019-10-07": "国庆节", + "2020-01-01": "元旦", + "2020-01-24": "春节", + "2020-01-25": "春节", + "2020-01-26": "春节", + "2020-01-27": "春节", + "2020-01-28": "春节", + "2020-01-29": "春节", + "2020-01-30": "春节", + "2020-04-04": "清明节", + "2020-04-05": "清明节", + "2020-04-06": "清明节", + "2020-05-01": "劳动节", + "2020-05-02": "劳动节", + "2020-05-03": "劳动节", + "2020-05-04": "劳动节", + "2020-05-05": "劳动节", + "2020-06-25": "端午节", + "2020-06-26": "端午节", + "2020-06-27": "端午节", + "2020-10-01": "国庆节", + "2020-10-02": "国庆节", + "2020-10-03": "国庆节", + "2020-10-04": "国庆节", + "2020-10-05": "国庆节", + "2020-10-06": "国庆节", + "2020-10-07": "国庆节", + "2020-10-08": "国庆节", + "2021-01-01": "元旦", + "2021-02-11": "春节", + "2021-02-12": "春节", + "2021-02-13": "春节", + "2021-02-14": "春节", + "2021-02-15": "春节", + "2021-02-16": "春节", + "2021-02-17": "春节", + "2021-04-03": "清明节", + "2021-04-04": "清明节", + "2021-04-05": "清明节", + "2021-05-01": "劳动节", + "2021-05-02": "劳动节", + "2021-05-03": "劳动节", + "2021-05-04": "劳动节", + "2021-05-05": "劳动节", + "2021-06-12": "端午节", + "2021-06-13": "端午节", + "2021-06-14": "端午节", + "2021-09-19": "中秋节", + "2021-09-20": "中秋节", + "2021-09-21": "中秋节", + "2021-10-01": "国庆节", + "2021-10-02": "国庆节", + "2021-10-03": "国庆节", + "2021-10-04": "国庆节", + "2021-10-05": "国庆节", + "2021-10-06": "国庆节", + "2021-10-07": "国庆节", + "2022-01-01": "元旦", + "2022-01-02": "元旦", + "2022-01-03": "元旦", + "2022-01-31": "春节", + "2022-02-01": "春节", + "2022-02-02": "春节", + "2022-02-03": "春节", + "2022-02-04": "春节", + "2022-02-05": "春节", + "2022-02-06": "春节", + "2022-04-03": "清明节", + "2022-04-04": "清明节", + "2022-04-05": "清明节", + "2022-04-30": "劳动节", + "2022-05-01": "劳动节", + "2022-05-02": "劳动节", + "2022-05-03": "劳动节", + "2022-05-04": "劳动节", + "2022-06-03": "端午节", + "2022-06-04": "端午节", + "2022-06-05": "端午节", + "2022-09-10": "中秋节", + "2022-09-11": "中秋节", + "2022-09-12": "中秋节", + "2022-10-01": "国庆节", + "2022-10-02": "国庆节", + "2022-10-03": "国庆节", + "2022-10-04": "国庆节", + "2022-10-05": "国庆节", + "2022-10-06": "国庆节", + "2022-10-07": "国庆节", + "2022-12-31": "元旦", + "2023-01-01": "元旦", + "2023-01-02": "元旦", + "2023-01-21": "春节", + "2023-01-22": "春节", + "2023-01-23": "春节", + "2023-01-24": "春节", + "2023-01-25": "春节", + "2023-01-26": "春节", + "2023-01-27": "春节", + "2023-04-05": "清明节", + "2023-04-29": "劳动节", + "2023-04-30": "劳动节", + "2023-05-01": "劳动节", + "2023-05-02": "劳动节", + "2023-05-03": "劳动节", + "2023-06-22": "端午节", + "2023-06-23": "端午节", + "2023-06-24": "端午节", + "2023-09-29": "中秋节", + "2023-09-30": "中秋节", + "2023-10-01": "国庆节", + "2023-10-02": "国庆节", + "2023-10-03": "国庆节", + "2023-10-04": "国庆节", + "2023-10-05": "国庆节", + "2023-10-06": "国庆节", + "2024-01-01": "元旦", + "2024-02-10": "春节", + "2024-02-11": "春节", + "2024-02-12": "春节", + "2024-02-13": "春节", + "2024-02-14": "春节", + "2024-02-15": "春节", + "2024-02-16": "春节", + "2024-02-17": "春节", + "2024-04-04": "清明节", + "2024-04-05": "清明节", + "2024-04-06": "清明节", + "2024-05-01": "劳动节", + "2024-05-02": "劳动节", + "2024-05-03": "劳动节", + "2024-05-04": "劳动节", + "2024-05-05": "劳动节", + "2024-06-10": "端午节", + "2024-09-15": "中秋节", + "2024-09-16": "中秋节", + "2024-09-17": "中秋节", + "2024-10-01": "国庆节", + "2024-10-02": "国庆节", + "2024-10-03": "国庆节", + "2024-10-04": "国庆节", + "2024-10-05": "国庆节", + "2024-10-06": "国庆节", + "2024-10-07": "国庆节", +}; + +var WEEKENDS_WORKDAY = { + "2018-02-11": "补春节", + "2018-02-24": "补春节", + "2018-04-08": "补清明节", + "2018-04-28": "补劳动节", + "2018-09-29": "补国庆节", + "2018-09-30": "补国庆节", + "2018-12-29": "补元旦", + "2019-02-02": "补春节", + "2019-02-03": "补春节", + "2019-04-28": "补劳动节", + "2019-05-05": "补劳动节", + "2019-09-29": "补国庆节", + "2019-10-12": "补国庆节", + "2020-01-19": "补春节", + "2020-02-01": "补春节", + "2020-04-26": "补劳动节", + "2020-05-09": "补劳动节", + "2020-06-28": "补端午节", + "2020-09-27": "补国庆节", + "2020-10-10": "补国庆节", + "2021-02-07": "补春节", + "2021-02-20": "补春节", + "2021-04-25": "补劳动节", + "2021-05-08": "补劳动节", + "2021-09-18": "补中秋节", + "2021-09-26": "补国庆节", + "2021-10-09": "补国庆节", + "2022-01-29": "补春节", + "2022-01-30": "补春节", + "2022-04-02": "补清明节", + "2022-04-24": "补劳动节", + "2022-05-07": "补劳动节", + "2022-10-08": "补国庆节", + "2022-10-09": "补国庆节", + "2023-01-28": "补春节", + "2023-01-29": "补春节", + "2023-04-23": "补劳动节", + "2023-05-06": "补劳动节", + "2023-06-25": "补端午节", + "2023-10-07": "补国庆节", + "2023-10-08": "补国庆节", + "2024-02-04": "补春节", + "2024-02-18": "补春节", + "2024-04-07": "补清明节", + "2024-04-28": "补劳动节", + "2024-05-11": "补劳动节", + "2024-09-14": "补中秋节", + "2024-09-29": "补国庆节", + "2024-10-12": "补国庆节", +}; + +function isWorkday(day) { + var fd = formatDate(day); + if (WEEKENDS_WORKDAY[fd.date]) { + return true; + } else if (HOLIDAYS[fd.date]) { + return false; + } + return !fd.weekends; +} + +function isHoliday(day) { + return !isWorkday(day); +} + +function isAddtionalWorkday(day) { + var fd = formatDate(day); + return !!WEEKENDS_WORKDAY[fd.date]; +} + +function getFestival(day) { + var fd = formatDate(day); + if (WEEKENDS_WORKDAY[fd.date]) { + return WEEKENDS_WORKDAY[fd.date]; + } else if (HOLIDAYS[fd.date]) { + return HOLIDAYS[fd.date] + } + return fd.weekends ? '周末' : '工作日'; +} + +function formatDate(day) { + var d = new Date(day), + month = "" + (d.getMonth() + 1), + day = "" + d.getDate(), + year = d.getFullYear(); + if (month.length < 2) { + month = "0" + month + }; + if (day.length < 2) { + day = "0" + day + }; + + return { + date: [year, month, day].join("-"), + weekends: [0, 6].indexOf(d.getDay()) > -1 + }; +} diff --git a/node_modules/chinese-workday/package.json b/node_modules/chinese-workday/package.json new file mode 100644 index 0000000..f3fc91c --- /dev/null +++ b/node_modules/chinese-workday/package.json @@ -0,0 +1,62 @@ +{ + "_from": "chinese-workday", + "_id": "chinese-workday@1.10.0", + "_inBundle": false, + "_integrity": "sha512-wHar+6Qd/lPDHYHdnCrb1ZJvj8Kjyy3lPrjQEqtlWqw9TRlRLTWnPUi/esB5OJFbEedYGJEP5o5zrrp4wLBCVA==", + "_location": "/chinese-workday", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "chinese-workday", + "name": "chinese-workday", + "escapedName": "chinese-workday", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmmirror.com/chinese-workday/-/chinese-workday-1.10.0.tgz", + "_shasum": "a20d0c75681a3e856d2fd81ca0904386614c6fb0", + "_spec": "chinese-workday", + "_where": "C:\\Users\\Administrator\\Desktop\\jundaosuzhou_wechatxcx", + "author": { + "name": "yize.shc@gmail.com" + }, + "bugs": { + "url": "https://github.com/yize/chinese-workday/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "中国工作日", + "devDependencies": { + "jest": "^23.6.0" + }, + "homepage": "https://github.com/yize/chinese-workday#readme", + "keywords": [ + "workday", + "chinese-workday", + "工作日", + "非节假日", + "节假日", + "2019", + "2020", + "2021", + "2022", + "2023" + ], + "license": "MIT", + "main": "index.js", + "name": "chinese-workday", + "repository": { + "type": "git", + "url": "git+https://github.com/yize/chinese-workday.git" + }, + "scripts": { + "test": "jest" + }, + "version": "1.10.0" +} diff --git a/node_modules/chinese-workday/test.js b/node_modules/chinese-workday/test.js new file mode 100644 index 0000000..a0bef28 --- /dev/null +++ b/node_modules/chinese-workday/test.js @@ -0,0 +1,37 @@ +var ww = require('./index'); +// const { isWorkday, isHoliday, getFestival, isAddtionalWorkday } = require('./index'); +var isWorkday = ww.isWorkday; +var isHoliday = ww.isHoliday; +var getFestival = ww.getFestival; +var isAddtionalWorkday = ww.isAddtionalWorkday; + +test('isWorkday', function () { + expect(isWorkday('2018-10-07')).toBe(false); + expect(isWorkday('2018-10-08')).toBe(true); + expect(isWorkday('2018-10-21')).toBe(false); +}); + +test('isHoliday', function () { + expect(isHoliday('2018-10-07')).toBe(true); + expect(isHoliday('2018-10-08')).toBe(false); + expect(isHoliday('2018-10-21')).toBe(true); +}); + +test('isAddtionalWorkday', function () { + expect(isAddtionalWorkday('2019-02-02')).toBe(true); + expect(isAddtionalWorkday('2019-02-01')).toBe(false); +}); + +test('getFestival', function () { + expect(getFestival('2018-02-11')).toBe('补春节'); + expect(getFestival('2018-10-07')).toBe('国庆节'); + expect(getFestival('2018-10-08')).toBe('工作日'); + expect(getFestival('2018-10-21')).toBe('周末'); +}); + +test('dateformat', function () { + expect(isWorkday('2018/10/08')).toBe(true); + expect(isWorkday(1538981142948)).toBe(true); + expect(isWorkday('2018-10-07')).toBe(false); + expect(isWorkday()).toBe(true); +}) \ No newline at end of file diff --git a/node_modules/crypto-js/CONTRIBUTING.md b/node_modules/crypto-js/CONTRIBUTING.md new file mode 100644 index 0000000..09bf774 --- /dev/null +++ b/node_modules/crypto-js/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# Contribution + +# Git Flow + +The crypto-js project uses [git flow](https://github.com/nvie/gitflow) to manage branches. +Do your changes on the `develop` or even better on a `feature/*` branch. Don't do any changes on the `master` branch. + +# Pull request + +Target your pull request on `develop` branch. Other pull request won't be accepted. + +# How to build + +1. Clone + +2. Run + + ```sh + npm install + ``` + +3. Run + + ```sh + npm run build + ``` + +4. Check `build` folder \ No newline at end of file diff --git a/node_modules/crypto-js/LICENSE b/node_modules/crypto-js/LICENSE new file mode 100644 index 0000000..b0828e5 --- /dev/null +++ b/node_modules/crypto-js/LICENSE @@ -0,0 +1,24 @@ +# License + +[The MIT License (MIT)](http://opensource.org/licenses/MIT) + +Copyright (c) 2009-2013 Jeff Mott +Copyright (c) 2013-2016 Evan Vosberg + +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. diff --git a/node_modules/crypto-js/README.md b/node_modules/crypto-js/README.md new file mode 100644 index 0000000..6a9bcdf --- /dev/null +++ b/node_modules/crypto-js/README.md @@ -0,0 +1,275 @@ +# crypto-js + +JavaScript library of crypto standards. + +## Discontinued + +Active development of CryptoJS has been discontinued. This library is no longer maintained. + +Nowadays, NodeJS and modern browsers have a native `Crypto` module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since `Math.random()` is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native `crypto` module. + +## Node.js (Install) + +Requirements: + +- Node.js +- npm (Node.js package manager) + +```bash +npm install crypto-js +``` + +### Usage + +ES6 import for typical API call signing use case: + +```javascript +import sha256 from 'crypto-js/sha256'; +import hmacSHA512 from 'crypto-js/hmac-sha512'; +import Base64 from 'crypto-js/enc-base64'; + +const message, nonce, path, privateKey; // ... +const hashDigest = sha256(nonce + message); +const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey)); +``` + +Modular include: + +```javascript +var AES = require("crypto-js/aes"); +var SHA256 = require("crypto-js/sha256"); +... +console.log(SHA256("Message")); +``` + +Including all libraries, for access to extra methods: + +```javascript +var CryptoJS = require("crypto-js"); +console.log(CryptoJS.HmacSHA1("Message", "Key")); +``` + +## Client (browser) + +Requirements: + +- Node.js +- Bower (package manager for frontend) + +```bash +bower install crypto-js +``` + +### Usage + +Modular include: + +```javascript +require.config({ + packages: [ + { + name: 'crypto-js', + location: 'path-to/bower_components/crypto-js', + main: 'index' + } + ] +}); + +require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) { + console.log(SHA256("Message")); +}); +``` + +Including all libraries, for access to extra methods: + +```javascript +// Above-mentioned will work or use this simple form +require.config({ + paths: { + 'crypto-js': 'path-to/bower_components/crypto-js/crypto-js' + } +}); + +require(["crypto-js"], function (CryptoJS) { + console.log(CryptoJS.HmacSHA1("Message", "Key")); +}); +``` + +### Usage without RequireJS + +```html + + +``` + +## API + +See: https://cryptojs.gitbook.io/docs/ + +### AES Encryption + +#### Plain text encryption + +```javascript +var CryptoJS = require("crypto-js"); + +// Encrypt +var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString(); + +// Decrypt +var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); +var originalText = bytes.toString(CryptoJS.enc.Utf8); + +console.log(originalText); // 'my message' +``` + +#### Object encryption + +```javascript +var CryptoJS = require("crypto-js"); + +var data = [{id: 1}, {id: 2}] + +// Encrypt +var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString(); + +// Decrypt +var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); +var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); + +console.log(decryptedData); // [{id: 1}, {id: 2}] +``` + +### List of modules + + +- ```crypto-js/core``` +- ```crypto-js/x64-core``` +- ```crypto-js/lib-typedarrays``` + +--- + +- ```crypto-js/md5``` +- ```crypto-js/sha1``` +- ```crypto-js/sha256``` +- ```crypto-js/sha224``` +- ```crypto-js/sha512``` +- ```crypto-js/sha384``` +- ```crypto-js/sha3``` +- ```crypto-js/ripemd160``` + +--- + +- ```crypto-js/hmac-md5``` +- ```crypto-js/hmac-sha1``` +- ```crypto-js/hmac-sha256``` +- ```crypto-js/hmac-sha224``` +- ```crypto-js/hmac-sha512``` +- ```crypto-js/hmac-sha384``` +- ```crypto-js/hmac-sha3``` +- ```crypto-js/hmac-ripemd160``` + +--- + +- ```crypto-js/pbkdf2``` + +--- + +- ```crypto-js/aes``` +- ```crypto-js/tripledes``` +- ```crypto-js/rc4``` +- ```crypto-js/rabbit``` +- ```crypto-js/rabbit-legacy``` +- ```crypto-js/evpkdf``` + +--- + +- ```crypto-js/format-openssl``` +- ```crypto-js/format-hex``` + +--- + +- ```crypto-js/enc-latin1``` +- ```crypto-js/enc-utf8``` +- ```crypto-js/enc-hex``` +- ```crypto-js/enc-utf16``` +- ```crypto-js/enc-base64``` + +--- + +- ```crypto-js/mode-cfb``` +- ```crypto-js/mode-ctr``` +- ```crypto-js/mode-ctr-gladman``` +- ```crypto-js/mode-ofb``` +- ```crypto-js/mode-ecb``` + +--- + +- ```crypto-js/pad-pkcs7``` +- ```crypto-js/pad-ansix923``` +- ```crypto-js/pad-iso10126``` +- ```crypto-js/pad-iso97971``` +- ```crypto-js/pad-zeropadding``` +- ```crypto-js/pad-nopadding``` + + +## Release notes + +### 4.2.0 + +Change default hash algorithm and iteration's for PBKDF2 to prevent weak security by using the default configuration. + +Custom KDF Hasher + +Blowfish support + +### 4.1.1 + +Fix module order in bundled release. + +Include the browser field in the released package.json. + +### 4.1.0 + +Added url safe variant of base64 encoding. [357](https://github.com/brix/crypto-js/pull/357) + +Avoid webpack to add crypto-browser package. [364](https://github.com/brix/crypto-js/pull/364) + +### 4.0.0 + +This is an update including breaking changes for some environments. + +In this version `Math.random()` has been replaced by the random methods of the native crypto module. + +For this reason CryptoJS might not run in some JavaScript environments without native crypto module. Such as IE 10 or before or React Native. + +### 3.3.0 + +Rollback, `3.3.0` is the same as `3.1.9-1`. + +The move of using native secure crypto module will be shifted to a new `4.x.x` version. As it is a breaking change the impact is too big for a minor release. + +### 3.2.1 + +The usage of the native crypto module has been fixed. The import and access of the native crypto module has been improved. + +### 3.2.0 + +In this version `Math.random()` has been replaced by the random methods of the native crypto module. + +For this reason CryptoJS might does not run in some JavaScript environments without native crypto module. Such as IE 10 or before. + +If it's absolute required to run CryptoJS in such an environment, stay with `3.1.x` version. Encrypting and decrypting stays compatible. But keep in mind `3.1.x` versions still use `Math.random()` which is cryptographically not secure, as it's not random enough. + +This version came along with `CRITICAL` `BUG`. + +DO NOT USE THIS VERSION! Please, go for a newer version! + +### 3.1.x + +The `3.1.x` are based on the original CryptoJS, wrapped in CommonJS modules. + + diff --git a/node_modules/crypto-js/aes.js b/node_modules/crypto-js/aes.js new file mode 100644 index 0000000..166e3ea --- /dev/null +++ b/node_modules/crypto-js/aes.js @@ -0,0 +1,234 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + return CryptoJS.AES; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/blowfish.js b/node_modules/crypto-js/blowfish.js new file mode 100644 index 0000000..149812f --- /dev/null +++ b/node_modules/crypto-js/blowfish.js @@ -0,0 +1,471 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + const N = 16; + + //Origin pbox and sbox, derived from PI + const ORIG_P = [ + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B + ]; + + const ORIG_S = [ + [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ], + [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ], + [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ], + [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ] + ]; + + var BLOWFISH_CTX = { + pbox: [], + sbox: [] + } + + function F(ctx, x){ + let a = (x >> 24) & 0xFF; + let b = (x >> 16) & 0xFF; + let c = (x >> 8) & 0xFF; + let d = x & 0xFF; + + let y = ctx.sbox[0][a] + ctx.sbox[1][b]; + y = y ^ ctx.sbox[2][c]; + y = y + ctx.sbox[3][d]; + + return y; + } + + function BlowFish_Encrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = 0; i < N; ++i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[N]; + Xl = Xl ^ ctx.pbox[N + 1]; + + return {left: Xl, right: Xr}; + } + + function BlowFish_Decrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = N + 1; i > 1; --i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[1]; + Xl = Xl ^ ctx.pbox[0]; + + return {left: Xl, right: Xr}; + } + + /** + * Initialization ctx's pbox and sbox. + * + * @param {Object} ctx The object has pbox and sbox. + * @param {Array} key An array of 32-bit words. + * @param {int} keysize The length of the key. + * + * @example + * + * BlowFishInit(BLOWFISH_CTX, key, 128/32); + */ + function BlowFishInit(ctx, key, keysize) + { + for(let Row = 0; Row < 4; Row++) + { + ctx.sbox[Row] = []; + for(let Col = 0; Col < 256; Col++) + { + ctx.sbox[Row][Col] = ORIG_S[Row][Col]; + } + } + + let keyIndex = 0; + for(let index = 0; index < N + 2; index++) + { + ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; + keyIndex++; + if(keyIndex >= keysize) + { + keyIndex = 0; + } + } + + let Data1 = 0; + let Data2 = 0; + let res = 0; + for(let i = 0; i < N + 2; i += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.pbox[i] = Data1; + ctx.pbox[i + 1] = Data2; + } + + for(let i = 0; i < 4; i++) + { + for(let j = 0; j < 256; j += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.sbox[i][j] = Data1; + ctx.sbox[i][j + 1] = Data2; + } + } + + return true; + } + + /** + * Blowfish block cipher algorithm. + */ + var Blowfish = C_algo.Blowfish = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + //Initialization pbox and sbox + BlowFishInit(BLOWFISH_CTX, keyWords, keySize); + }, + + encryptBlock: function (M, offset) { + var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + decryptBlock: function (M, offset) { + var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + blockSize: 64/32, + + keySize: 128/32, + + ivSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); + */ + C.Blowfish = BlockCipher._createHelper(Blowfish); + }()); + + + return CryptoJS.Blowfish; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/bower.json b/node_modules/crypto-js/bower.json new file mode 100644 index 0000000..4dee617 --- /dev/null +++ b/node_modules/crypto-js/bower.json @@ -0,0 +1,39 @@ +{ + "name": "crypto-js", + "version": "4.2.0", + "description": "JavaScript library of crypto standards.", + "license": "MIT", + "homepage": "http://github.com/brix/crypto-js", + "repository": { + "type": "git", + "url": "http://github.com/brix/crypto-js.git" + }, + "keywords": [ + "security", + "crypto", + "Hash", + "MD5", + "SHA1", + "SHA-1", + "SHA256", + "SHA-256", + "RC4", + "Rabbit", + "AES", + "DES", + "PBKDF2", + "HMAC", + "OFB", + "CFB", + "CTR", + "CBC", + "Base64", + "Base64url" + ], + "main": "index.js", + "dependencies": {}, + "browser": { + "crypto": false + }, + "ignore": [] +} diff --git a/node_modules/crypto-js/cipher-core.js b/node_modules/crypto-js/cipher-core.js new file mode 100644 index 0000000..903f462 --- /dev/null +++ b/node_modules/crypto-js/cipher-core.js @@ -0,0 +1,895 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./evpkdf")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./evpkdf"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/core.js b/node_modules/crypto-js/core.js new file mode 100644 index 0000000..e3a498b --- /dev/null +++ b/node_modules/crypto-js/core.js @@ -0,0 +1,807 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } + else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(); + } +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof global !== 'undefined' && global.crypto) { + crypto = global.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && typeof require === 'function') { + try { + crypto = require('crypto'); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/crypto-js.js b/node_modules/crypto-js/crypto-js.js new file mode 100644 index 0000000..958ee53 --- /dev/null +++ b/node_modules/crypto-js/crypto-js.js @@ -0,0 +1,6657 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } + else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(); + } +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof global !== 'undefined' && global.crypto) { + crypto = global.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && typeof require === 'function') { + try { + crypto = require('crypto'); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); + }()); + + + (function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64url encoding strategy. + */ + var Base64url = C_enc.Base64url = { + /** + * Converts a word array to a Base64url string. + * + * @param {WordArray} wordArray The word array. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {string} The Base64url string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); + */ + stringify: function (wordArray, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = urlSafe ? this._safe_map : this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64url string to a word array. + * + * @param {string} base64Str The Base64url string. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64url.parse(base64String); + */ + parse: function (base64Str, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + + // Shortcuts + var base64StrLength = base64Str.length; + var map = urlSafe ? this._safe_map : this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + var Wil; + var Wih; + + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + Wih = Wi.high = M[offset + i * 2] | 0; + Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + Wil = gamma0l + Wi7l; + Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + Wil = Wil + gamma1l; + Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + Wil = Wil + Wi16l; + Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + var tMsw; + var tLsw; + + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); + }(Math)); + + + /** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA256 + * @property {number} iterations The number of iterations to perform. Default: 250000 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA256, + iterations: 250000 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + + /** + * Cipher Feedback block mode. + */ + CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + var keystream; + + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; + }()); + + + /** + * Counter block mode. + */ + CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; + }()); + + + /** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ + CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; + }()); + + + + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + /** + * Electronic Codebook block mode. + */ + CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }()); + + + /** + * ANSI X.923 padding strategy. + */ + CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + /** + * ISO 10126 padding strategy. + */ + CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + /** + * ISO/IEC 9797-1 Padding Method 2. + */ + CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } + }; + + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + for (var i = data.sigBytes - 1; i >= 0; i--) { + if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + data.sigBytes = i + 1; + break; + } + } + } + }; + + + /** + * A noop padding strategy. + */ + CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } + }; + + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + // Make sure the key length is valid (64, 128 or >= 192 bit) + if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { + throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); + } + + // Extend the key according to the keying options defined in 3DES standard + var key1 = keyWords.slice(0, 2); + var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); + var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(key1)); + this._des2 = DES.createEncryptor(WordArray.create(key2)); + this._des3 = DES.createEncryptor(WordArray.create(key3)); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + const N = 16; + + //Origin pbox and sbox, derived from PI + const ORIG_P = [ + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B + ]; + + const ORIG_S = [ + [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ], + [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ], + [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ], + [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ] + ]; + + var BLOWFISH_CTX = { + pbox: [], + sbox: [] + } + + function F(ctx, x){ + let a = (x >> 24) & 0xFF; + let b = (x >> 16) & 0xFF; + let c = (x >> 8) & 0xFF; + let d = x & 0xFF; + + let y = ctx.sbox[0][a] + ctx.sbox[1][b]; + y = y ^ ctx.sbox[2][c]; + y = y + ctx.sbox[3][d]; + + return y; + } + + function BlowFish_Encrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = 0; i < N; ++i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[N]; + Xl = Xl ^ ctx.pbox[N + 1]; + + return {left: Xl, right: Xr}; + } + + function BlowFish_Decrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = N + 1; i > 1; --i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[1]; + Xl = Xl ^ ctx.pbox[0]; + + return {left: Xl, right: Xr}; + } + + /** + * Initialization ctx's pbox and sbox. + * + * @param {Object} ctx The object has pbox and sbox. + * @param {Array} key An array of 32-bit words. + * @param {int} keysize The length of the key. + * + * @example + * + * BlowFishInit(BLOWFISH_CTX, key, 128/32); + */ + function BlowFishInit(ctx, key, keysize) + { + for(let Row = 0; Row < 4; Row++) + { + ctx.sbox[Row] = []; + for(let Col = 0; Col < 256; Col++) + { + ctx.sbox[Row][Col] = ORIG_S[Row][Col]; + } + } + + let keyIndex = 0; + for(let index = 0; index < N + 2; index++) + { + ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; + keyIndex++; + if(keyIndex >= keysize) + { + keyIndex = 0; + } + } + + let Data1 = 0; + let Data2 = 0; + let res = 0; + for(let i = 0; i < N + 2; i += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.pbox[i] = Data1; + ctx.pbox[i + 1] = Data2; + } + + for(let i = 0; i < 4; i++) + { + for(let j = 0; j < 256; j += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.sbox[i][j] = Data1; + ctx.sbox[i][j + 1] = Data2; + } + } + + return true; + } + + /** + * Blowfish block cipher algorithm. + */ + var Blowfish = C_algo.Blowfish = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + //Initialization pbox and sbox + BlowFishInit(BLOWFISH_CTX, keyWords, keySize); + }, + + encryptBlock: function (M, offset) { + var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + decryptBlock: function (M, offset) { + var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + blockSize: 64/32, + + keySize: 128/32, + + ivSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); + */ + C.Blowfish = BlockCipher._createHelper(Blowfish); + }()); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/docs/QuickStartGuide.wiki b/node_modules/crypto-js/docs/QuickStartGuide.wiki new file mode 100644 index 0000000..2bee35d --- /dev/null +++ b/node_modules/crypto-js/docs/QuickStartGuide.wiki @@ -0,0 +1,470 @@ + + +---- + += Quick-start Guide = + +== Hashers == + +=== The Hasher Algorithms === + +==== MD5 ==== + +MD5 is a widely used hash function. It's been used in a variety of security applications and is also commonly used to check the integrity of files. Though, MD5 is not collision resistant, and it isn't suitable for applications like SSL certificates or digital signatures that rely on this property. + +{{{ + + +}}} + +==== SHA-1 ==== + +The SHA hash functions were designed by the National Security Agency (NSA). SHA-1 is the most established of the existing SHA hash functions, and it's used in a variety of security applications and protocols. Though, SHA-1's collision resistance has been weakening as new attacks are discovered or improved. + +{{{ + + +}}} + +==== SHA-2 ==== + +SHA-256 is one of the four variants in the SHA-2 set. It isn't as widely used as SHA-1, though it appears to provide much better security. + +{{{ + + +}}} + +SHA-512 is largely identical to SHA-256 but operates on 64-bit words rather than 32. + +{{{ + + +}}} + +CryptoJS also supports SHA-224 and SHA-384, which are largely identical but truncated versions of SHA-256 and SHA-512 respectively. + +==== SHA-3 ==== + +SHA-3 is the winner of a five-year competition to select a new cryptographic hash algorithm where 64 competing designs were evaluated. + +{{{ + + +}}} + +SHA-3 can be configured to output hash lengths of one of 224, 256, 384, or 512 bits. The default is 512 bits. + +{{{ + + +}}} + +==== RIPEMD-160 ==== + +{{{ + + +}}} + +=== The Hasher Input === + +The hash algorithms accept either strings or instances of CryptoJS.lib.WordArray. A WordArray object represents an array of 32-bit words. When you pass a string, it's automatically converted to a WordArray encoded as UTF-8. + +=== The Hasher Output === + +The hash you get back isn't a string yet. It's a WordArray object. When you use a WordArray object in a string context, it's automatically converted to a hex string. + +{{{ + + +}}} + +You can convert a WordArray object to other formats by explicitly calling the toString method and passing an encoder. + +{{{ + + + +}}} + +=== Progressive Hashing === + +{{{ + + +}}} + +== HMAC == + +Keyed-hash message authentication codes (HMAC) is a mechanism for message authentication using cryptographic hash functions. + +HMAC can be used in combination with any iterated cryptographic hash function. + +{{{ + + + + + +}}} + +=== Progressive HMAC Hashing === + +{{{ + + +}}} + +== PBKDF2 == + +PBKDF2 is a password-based key derivation function. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required. + +A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack. + +{{{ + + +}}} + +== Ciphers == + +=== The Cipher Algorithms === + +==== AES ==== + +The Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated. + +{{{ + + +}}} + +CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key. + +==== DES, Triple DES ==== + +DES is a previously dominant algorithm for encryption, and was published as an official Federal Information Processing Standard (FIPS). DES is now considered to be insecure due to the small key size. + +{{{ + + +}}} + +Triple DES applies DES three times to each block to increase the key size. The algorithm is believed to be secure in this form. + +{{{ + + +}}} + +==== Rabbit ==== + +Rabbit is a high-performance stream cipher and a finalist in the eSTREAM Portfolio. It is one of the four designs selected after a 3 1/2-year process where 22 designs were evaluated. + +{{{ + + +}}} + +==== RC4, RC4Drop ==== + +RC4 is a widely-used stream cipher. It's used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security. + +{{{ + + +}}} + +It was discovered that the first few bytes of keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop. + +By default, 192 words (768 bytes) are dropped, but you can configure the algorithm to drop any number of words. + +{{{ + + +}}} + +=== Custom Key and IV === + +{{{ + + +}}} + +=== Block Modes and Padding === + +{{{ + + + + +}}} + +CryptoJS supports the following modes: + + * CBC (the default) + * CFB + * CTR + * OFB + * ECB + +And CryptoJS supports the following padding schemes: + + * Pkcs7 (the default) + * Iso97971 + * AnsiX923 + * Iso10126 + * ZeroPadding + * NoPadding + +=== The Cipher Input === + +For the plaintext message, the cipher algorithms accept either strings or instances of CryptoJS.lib.WordArray. + +For the key, when you pass a string, it's treated as a passphrase and used to derive an actual key and IV. Or you can pass a WordArray that represents the actual key. If you pass the actual key, you must also pass the actual IV. + +For the ciphertext, the cipher algorithms accept either strings or instances of CryptoJS.lib.CipherParams. A CipherParams object represents a collection of parameters such as the IV, a salt, and the raw ciphertext itself. When you pass a string, it's automatically converted to a CipherParams object according to a configurable format strategy. + +=== The Cipher Output === + +The plaintext you get back after decryption is a WordArray object. See Hashers' Output for more detail. + +The ciphertext you get back after encryption isn't a string yet. It's a CipherParams object. A CipherParams object gives you access to all the parameters used during encryption. When you use a CipherParams object in a string context, it's automatically converted to a string according to a format strategy. The default is an OpenSSL-compatible format. + +{{{ + + +}}} + +You can define your own formats in order to be compatible with other crypto implementations. A format is an object with two methods—stringify and parse—that converts between CipherParams objects and ciphertext strings. + +Here's how you might write a JSON formatter: + +{{{ + + +}}} + +=== Progressive Ciphering === + +{{{ + + +}}} + +=== Interoperability === + +==== With OpenSSL ==== + +Encrypt with OpenSSL: + +{{{ +openssl enc -aes-256-cbc -in infile -out outfile -pass pass:"Secret Passphrase" -e -base64 +}}} + +Decrypt with CryptoJS: + +{{{ + + +}}} + +== Encoders == + +CryptoJS can convert from encoding formats such as Base64, Latin1 or Hex to WordArray objects and vica versa. + +{{{ + + + + +}}} \ No newline at end of file diff --git a/node_modules/crypto-js/enc-base64.js b/node_modules/crypto-js/enc-base64.js new file mode 100644 index 0000000..0ffcd53 --- /dev/null +++ b/node_modules/crypto-js/enc-base64.js @@ -0,0 +1,136 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-base64url.js b/node_modules/crypto-js/enc-base64url.js new file mode 100644 index 0000000..af682e3 --- /dev/null +++ b/node_modules/crypto-js/enc-base64url.js @@ -0,0 +1,148 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64url encoding strategy. + */ + var Base64url = C_enc.Base64url = { + /** + * Converts a word array to a Base64url string. + * + * @param {WordArray} wordArray The word array. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {string} The Base64url string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); + */ + stringify: function (wordArray, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = urlSafe ? this._safe_map : this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64url string to a word array. + * + * @param {string} base64Str The Base64url string. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64url.parse(base64String); + */ + parse: function (base64Str, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + + // Shortcuts + var base64StrLength = base64Str.length; + var map = urlSafe ? this._safe_map : this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64url; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-hex.js b/node_modules/crypto-js/enc-hex.js new file mode 100644 index 0000000..88161ff --- /dev/null +++ b/node_modules/crypto-js/enc-hex.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Hex; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-latin1.js b/node_modules/crypto-js/enc-latin1.js new file mode 100644 index 0000000..ade56dc --- /dev/null +++ b/node_modules/crypto-js/enc-latin1.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Latin1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-utf16.js b/node_modules/crypto-js/enc-utf16.js new file mode 100644 index 0000000..7de6245 --- /dev/null +++ b/node_modules/crypto-js/enc-utf16.js @@ -0,0 +1,149 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } + }()); + + + return CryptoJS.enc.Utf16; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-utf8.js b/node_modules/crypto-js/enc-utf8.js new file mode 100644 index 0000000..e7a251d --- /dev/null +++ b/node_modules/crypto-js/enc-utf8.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Utf8; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/evpkdf.js b/node_modules/crypto-js/evpkdf.js new file mode 100644 index 0000000..578974a --- /dev/null +++ b/node_modules/crypto-js/evpkdf.js @@ -0,0 +1,134 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha1", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.EvpKDF; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/format-hex.js b/node_modules/crypto-js/format-hex.js new file mode 100644 index 0000000..2e9a861 --- /dev/null +++ b/node_modules/crypto-js/format-hex.js @@ -0,0 +1,66 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; + }()); + + + return CryptoJS.format.Hex; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/format-openssl.js b/node_modules/crypto-js/format-openssl.js new file mode 100644 index 0000000..3373edc --- /dev/null +++ b/node_modules/crypto-js/format-openssl.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.format.OpenSSL; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-md5.js b/node_modules/crypto-js/hmac-md5.js new file mode 100644 index 0000000..ad7a90a --- /dev/null +++ b/node_modules/crypto-js/hmac-md5.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./md5", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacMD5; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-ripemd160.js b/node_modules/crypto-js/hmac-ripemd160.js new file mode 100644 index 0000000..73d55a7 --- /dev/null +++ b/node_modules/crypto-js/hmac-ripemd160.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./ripemd160", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacRIPEMD160; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha1.js b/node_modules/crypto-js/hmac-sha1.js new file mode 100644 index 0000000..0b570cb --- /dev/null +++ b/node_modules/crypto-js/hmac-sha1.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha1", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha224.js b/node_modules/crypto-js/hmac-sha224.js new file mode 100644 index 0000000..3778863 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha224.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./sha224", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA224; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha256.js b/node_modules/crypto-js/hmac-sha256.js new file mode 100644 index 0000000..33b0c9f --- /dev/null +++ b/node_modules/crypto-js/hmac-sha256.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA256; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha3.js b/node_modules/crypto-js/hmac-sha3.js new file mode 100644 index 0000000..1248804 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha3.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha3", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA3; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha384.js b/node_modules/crypto-js/hmac-sha384.js new file mode 100644 index 0000000..0036e2b --- /dev/null +++ b/node_modules/crypto-js/hmac-sha384.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA384; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha512.js b/node_modules/crypto-js/hmac-sha512.js new file mode 100644 index 0000000..c1005b6 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha512.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA512; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac.js b/node_modules/crypto-js/hmac.js new file mode 100644 index 0000000..8c09851 --- /dev/null +++ b/node_modules/crypto-js/hmac.js @@ -0,0 +1,143 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/index.js b/node_modules/crypto-js/index.js new file mode 100644 index 0000000..b696646 --- /dev/null +++ b/node_modules/crypto-js/index.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/lib-typedarrays.js b/node_modules/crypto-js/lib-typedarrays.js new file mode 100644 index 0000000..264b210 --- /dev/null +++ b/node_modules/crypto-js/lib-typedarrays.js @@ -0,0 +1,76 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; + }()); + + + return CryptoJS.lib.WordArray; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/md5.js b/node_modules/crypto-js/md5.js new file mode 100644 index 0000000..72fce03 --- /dev/null +++ b/node_modules/crypto-js/md5.js @@ -0,0 +1,268 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + return CryptoJS.MD5; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-cfb.js b/node_modules/crypto-js/mode-cfb.js new file mode 100644 index 0000000..444c9cb --- /dev/null +++ b/node_modules/crypto-js/mode-cfb.js @@ -0,0 +1,80 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher Feedback block mode. + */ + CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + var keystream; + + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; + }()); + + + return CryptoJS.mode.CFB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ctr-gladman.js b/node_modules/crypto-js/mode-ctr-gladman.js new file mode 100644 index 0000000..bbc5687 --- /dev/null +++ b/node_modules/crypto-js/mode-ctr-gladman.js @@ -0,0 +1,116 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ + CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; + }()); + + + + + return CryptoJS.mode.CTRGladman; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ctr.js b/node_modules/crypto-js/mode-ctr.js new file mode 100644 index 0000000..c3d470a --- /dev/null +++ b/node_modules/crypto-js/mode-ctr.js @@ -0,0 +1,58 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Counter block mode. + */ + CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; + }()); + + + return CryptoJS.mode.CTR; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ecb.js b/node_modules/crypto-js/mode-ecb.js new file mode 100644 index 0000000..ff06921 --- /dev/null +++ b/node_modules/crypto-js/mode-ecb.js @@ -0,0 +1,40 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Electronic Codebook block mode. + */ + CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }()); + + + return CryptoJS.mode.ECB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ofb.js b/node_modules/crypto-js/mode-ofb.js new file mode 100644 index 0000000..c01314c --- /dev/null +++ b/node_modules/crypto-js/mode-ofb.js @@ -0,0 +1,54 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + return CryptoJS.mode.OFB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/package.json b/node_modules/crypto-js/package.json new file mode 100644 index 0000000..32d39df --- /dev/null +++ b/node_modules/crypto-js/package.json @@ -0,0 +1,71 @@ +{ + "_from": "crypto-js", + "_id": "crypto-js@4.2.0", + "_inBundle": false, + "_integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "_location": "/crypto-js", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "crypto-js", + "name": "crypto-js", + "escapedName": "crypto-js", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "_shasum": "4d931639ecdfd12ff80e8186dba6af2c2e856631", + "_spec": "crypto-js", + "_where": "D:\\Project\\project_wenlv\\jundaosuzhou_wechatxcx", + "author": { + "name": "Evan Vosberg", + "url": "http://github.com/evanvosberg" + }, + "browser": { + "crypto": false + }, + "bugs": { + "url": "https://github.com/brix/crypto-js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "JavaScript library of crypto standards.", + "homepage": "http://github.com/brix/crypto-js", + "keywords": [ + "security", + "crypto", + "Hash", + "MD5", + "SHA1", + "SHA-1", + "SHA256", + "SHA-256", + "RC4", + "Rabbit", + "AES", + "DES", + "PBKDF2", + "HMAC", + "OFB", + "CFB", + "CTR", + "CBC", + "Base64", + "Base64url" + ], + "license": "MIT", + "main": "index.js", + "name": "crypto-js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/brix/crypto-js.git" + }, + "version": "4.2.0" +} diff --git a/node_modules/crypto-js/pad-ansix923.js b/node_modules/crypto-js/pad-ansix923.js new file mode 100644 index 0000000..f01f21e --- /dev/null +++ b/node_modules/crypto-js/pad-ansix923.js @@ -0,0 +1,49 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ANSI X.923 padding strategy. + */ + CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Ansix923; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-iso10126.js b/node_modules/crypto-js/pad-iso10126.js new file mode 100644 index 0000000..6e2aefd --- /dev/null +++ b/node_modules/crypto-js/pad-iso10126.js @@ -0,0 +1,44 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO 10126 padding strategy. + */ + CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Iso10126; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-iso97971.js b/node_modules/crypto-js/pad-iso97971.js new file mode 100644 index 0000000..41049b4 --- /dev/null +++ b/node_modules/crypto-js/pad-iso97971.js @@ -0,0 +1,40 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO/IEC 9797-1 Padding Method 2. + */ + CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } + }; + + + return CryptoJS.pad.Iso97971; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-nopadding.js b/node_modules/crypto-js/pad-nopadding.js new file mode 100644 index 0000000..c7787c9 --- /dev/null +++ b/node_modules/crypto-js/pad-nopadding.js @@ -0,0 +1,30 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * A noop padding strategy. + */ + CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } + }; + + + return CryptoJS.pad.NoPadding; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-pkcs7.js b/node_modules/crypto-js/pad-pkcs7.js new file mode 100644 index 0000000..3555168 --- /dev/null +++ b/node_modules/crypto-js/pad-pkcs7.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.pad.Pkcs7; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-zeropadding.js b/node_modules/crypto-js/pad-zeropadding.js new file mode 100644 index 0000000..a1a459e --- /dev/null +++ b/node_modules/crypto-js/pad-zeropadding.js @@ -0,0 +1,47 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + for (var i = data.sigBytes - 1; i >= 0; i--) { + if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + data.sigBytes = i + 1; + break; + } + } + } + }; + + + return CryptoJS.pad.ZeroPadding; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pbkdf2.js b/node_modules/crypto-js/pbkdf2.js new file mode 100644 index 0000000..6850934 --- /dev/null +++ b/node_modules/crypto-js/pbkdf2.js @@ -0,0 +1,145 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA256 + * @property {number} iterations The number of iterations to perform. Default: 250000 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA256, + iterations: 250000 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.PBKDF2; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rabbit-legacy.js b/node_modules/crypto-js/rabbit-legacy.js new file mode 100644 index 0000000..e118b6b --- /dev/null +++ b/node_modules/crypto-js/rabbit-legacy.js @@ -0,0 +1,190 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); + }()); + + + return CryptoJS.RabbitLegacy; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rabbit.js b/node_modules/crypto-js/rabbit.js new file mode 100644 index 0000000..1b06833 --- /dev/null +++ b/node_modules/crypto-js/rabbit.js @@ -0,0 +1,192 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); + }()); + + + return CryptoJS.Rabbit; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rc4.js b/node_modules/crypto-js/rc4.js new file mode 100644 index 0000000..0e4bdff --- /dev/null +++ b/node_modules/crypto-js/rc4.js @@ -0,0 +1,139 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); + }()); + + + return CryptoJS.RC4; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/ripemd160.js b/node_modules/crypto-js/ripemd160.js new file mode 100644 index 0000000..24feb47 --- /dev/null +++ b/node_modules/crypto-js/ripemd160.js @@ -0,0 +1,267 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); + }(Math)); + + + return CryptoJS.RIPEMD160; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha1.js b/node_modules/crypto-js/sha1.js new file mode 100644 index 0000000..6691149 --- /dev/null +++ b/node_modules/crypto-js/sha1.js @@ -0,0 +1,150 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + return CryptoJS.SHA1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha224.js b/node_modules/crypto-js/sha224.js new file mode 100644 index 0000000..d8ce988 --- /dev/null +++ b/node_modules/crypto-js/sha224.js @@ -0,0 +1,80 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); + }()); + + + return CryptoJS.SHA224; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha256.js b/node_modules/crypto-js/sha256.js new file mode 100644 index 0000000..de2d7fc --- /dev/null +++ b/node_modules/crypto-js/sha256.js @@ -0,0 +1,199 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + return CryptoJS.SHA256; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha3.js b/node_modules/crypto-js/sha3.js new file mode 100644 index 0000000..34ad86c --- /dev/null +++ b/node_modules/crypto-js/sha3.js @@ -0,0 +1,326 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + var tMsw; + var tLsw; + + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); + }(Math)); + + + return CryptoJS.SHA3; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha384.js b/node_modules/crypto-js/sha384.js new file mode 100644 index 0000000..a0b95bf --- /dev/null +++ b/node_modules/crypto-js/sha384.js @@ -0,0 +1,83 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); + }()); + + + return CryptoJS.SHA384; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha512.js b/node_modules/crypto-js/sha512.js new file mode 100644 index 0000000..d274ab0 --- /dev/null +++ b/node_modules/crypto-js/sha512.js @@ -0,0 +1,326 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + var Wil; + var Wih; + + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + Wih = Wi.high = M[offset + i * 2] | 0; + Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + Wil = gamma0l + Wi7l; + Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + Wil = Wil + gamma1l; + Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + Wil = Wil + Wi16l; + Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); + }()); + + + return CryptoJS.SHA512; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/tripledes.js b/node_modules/crypto-js/tripledes.js new file mode 100644 index 0000000..1a92477 --- /dev/null +++ b/node_modules/crypto-js/tripledes.js @@ -0,0 +1,779 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + // Make sure the key length is valid (64, 128 or >= 192 bit) + if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { + throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); + } + + // Extend the key according to the keying options defined in 3DES standard + var key1 = keyWords.slice(0, 2); + var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); + var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(key1)); + this._des2 = DES.createEncryptor(WordArray.create(key2)); + this._des3 = DES.createEncryptor(WordArray.create(key3)); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); + }()); + + + return CryptoJS.TripleDES; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/x64-core.js b/node_modules/crypto-js/x64-core.js new file mode 100644 index 0000000..57dcc14 --- /dev/null +++ b/node_modules/crypto-js/x64-core.js @@ -0,0 +1,304 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); + }()); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/dayjs/.editorconfig b/node_modules/dayjs/.editorconfig new file mode 100644 index 0000000..d4d73cf --- /dev/null +++ b/node_modules/dayjs/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_size = 2 diff --git a/node_modules/dayjs/CHANGELOG.md b/node_modules/dayjs/CHANGELOG.md new file mode 100644 index 0000000..1447804 --- /dev/null +++ b/node_modules/dayjs/CHANGELOG.md @@ -0,0 +1,919 @@ +## [1.11.10](https://github.com/iamkun/dayjs/compare/v1.11.9...v1.11.10) (2023-09-19) + + +### Bug Fixes + +* Add Korean Day of Month with ordinal ([#2395](https://github.com/iamkun/dayjs/issues/2395)) ([dd55ee2](https://github.com/iamkun/dayjs/commit/dd55ee2aadd1009242235e47d558bbf028827896)) +* change back fa locale to the Gregorian calendar equivalent ([#2411](https://github.com/iamkun/dayjs/issues/2411)) ([95e9458](https://github.com/iamkun/dayjs/commit/95e9458b221fe35e59ee4a160a5db247313a68fb)) +* duration plugin - MILLISECONDS_A_MONTH const calculation ([#2362](https://github.com/iamkun/dayjs/issues/2362)) ([f0a0b54](https://github.com/iamkun/dayjs/commit/f0a0b546b074b3b511c2319a1ce83d412894b91f)) +* duration plugin getter get result 0 instead of undefined ([#2369](https://github.com/iamkun/dayjs/issues/2369)) ([061aa7e](https://github.com/iamkun/dayjs/commit/061aa7ed6c31696974665fc9b11a74d30841ebed)) +* fix isDayjs check logic ([#2383](https://github.com/iamkun/dayjs/issues/2383)) ([5f3f878](https://github.com/iamkun/dayjs/commit/5f3f8786c796cd432fe6bcb6966a810daea89203)) +* fix timezone plugin to get correct locale setting ([#2420](https://github.com/iamkun/dayjs/issues/2420)) ([4f45012](https://github.com/iamkun/dayjs/commit/4f4501256fa1bc72128aae1d841bbd782df86aed)) +* **locale:** add meridiem in `ar` locale ([#2418](https://github.com/iamkun/dayjs/issues/2418)) ([361be5c](https://github.com/iamkun/dayjs/commit/361be5c7c628614ee833d710acbe154a598b904d)) +* round durations to millisecond precision for ISO string ([#2367](https://github.com/iamkun/dayjs/issues/2367)) ([890a17a](https://github.com/iamkun/dayjs/commit/890a17a8d8ddd43c7c8b806e3afc7b27f3288d27)) +* sub-second precisions need to be rounded at the seconds field to avoid adding floats ([#2377](https://github.com/iamkun/dayjs/issues/2377)) ([a9d7d03](https://github.com/iamkun/dayjs/commit/a9d7d0398d22ebd4bfc3812ca0134a97606d54d9)) +* update $x logic to avoid plugin error ([#2429](https://github.com/iamkun/dayjs/issues/2429)) ([2254635](https://github.com/iamkun/dayjs/commit/22546357f30924fcff3b3ffa14fd04be21f97a5e)) +* Update Slovenian locale for relative time ([#2396](https://github.com/iamkun/dayjs/issues/2396)) ([5470a15](https://github.com/iamkun/dayjs/commit/5470a15e437fac803797363063b24f3ba3bd5299)) +* update uzbek language translation ([#2327](https://github.com/iamkun/dayjs/issues/2327)) ([0a91056](https://github.com/iamkun/dayjs/commit/0a910564d76dc7c128da8e0d85d8e11ebdb5660b)) + +## [1.11.9](https://github.com/iamkun/dayjs/compare/v1.11.8...v1.11.9) (2023-07-01) + + +### Bug Fixes + +* Add null to min and max plugin return type ([#2355](https://github.com/iamkun/dayjs/issues/2355)) ([62d9042](https://github.com/iamkun/dayjs/commit/62d9042eb84b78d78324694ccbeaad1679d37e68)) +* check if null passed to objectSupport parser ([#2175](https://github.com/iamkun/dayjs/issues/2175)) ([013968f](https://github.com/iamkun/dayjs/commit/013968f609c32e2269df69b4dd1feb2e8e1e035a)) +* dayjs.diff improve performance ([#2244](https://github.com/iamkun/dayjs/issues/2244)) ([33c80e1](https://github.com/iamkun/dayjs/commit/33c80e14cf14f70ceb4f54639e266cd70a3c3996)) +* dayjs(null) throws error, not return dayjs object as invalid date ([#2334](https://github.com/iamkun/dayjs/issues/2334)) ([c79e2f5](https://github.com/iamkun/dayjs/commit/c79e2f5d03eef5660b1f13385b69c0c9668d2f98)) +* objectSupport plugin causes an error when null is passed to dayjs function (closes [#2277](https://github.com/iamkun/dayjs/issues/2277)) ([#2342](https://github.com/iamkun/dayjs/issues/2342)) ([89bf31c](https://github.com/iamkun/dayjs/commit/89bf31ce0a36dcfc892029dc019d85d3654cf5fb)) +* Optimize format method ([#2313](https://github.com/iamkun/dayjs/issues/2313)) ([1fe1b1d](https://github.com/iamkun/dayjs/commit/1fe1b1d9a214d3b8c9f267b432801424a493f1c4)) +* update Duration plugin add/subtract take into account days in month ([#2337](https://github.com/iamkun/dayjs/issues/2337)) ([3b1060f](https://github.com/iamkun/dayjs/commit/3b1060f92183ab3a3c49289c2d87fbdd34c1eacc)) +* update MinMax plugin 1. ignore the 'null' in args 2. return the only one arg ([#2330](https://github.com/iamkun/dayjs/issues/2330)) ([3c2c6ee](https://github.com/iamkun/dayjs/commit/3c2c6ee4db00bbb43a7a3bb0b56bc0d0f03daddc)) + +## [1.11.8](https://github.com/iamkun/dayjs/compare/v1.11.7...v1.11.8) (2023-06-02) + + +### Bug Fixes + +* .format add padding to 'YYYY' ([#2231](https://github.com/iamkun/dayjs/issues/2231)) ([00c223b](https://github.com/iamkun/dayjs/commit/00c223b7e92970d07557133994fcb225a6d4c960)) +* Added .valueOf method to Duration class ([#2226](https://github.com/iamkun/dayjs/issues/2226)) ([9b4fcfd](https://github.com/iamkun/dayjs/commit/9b4fcfde35b39693894be1821b6c7222fac98657)) +* timezone type mark `date` parameter as optional ([#2222](https://github.com/iamkun/dayjs/issues/2222)) ([b87aa0e](https://github.com/iamkun/dayjs/commit/b87aa0ed9a748c478a66ef48230cd1d6350d7b8a)) +* type file first parameter date is optional in isSame(), isBefore(), isAfter() ([#2272](https://github.com/iamkun/dayjs/issues/2272)) ([4d56f3e](https://github.com/iamkun/dayjs/commit/4d56f3eb2b3770879d60f824590bf1b32f237d47)) + +## [1.11.7](https://github.com/iamkun/dayjs/compare/v1.11.6...v1.11.7) (2022-12-06) + + +### Bug Fixes + +* Add locale (zh-tw) meridiem ([#2149](https://github.com/iamkun/dayjs/issues/2149)) ([1e9ba76](https://github.com/iamkun/dayjs/commit/1e9ba761ff4e3f2759106dfe1aa9054d5826451c)) +* update fa locale ([#2151](https://github.com/iamkun/dayjs/issues/2151)) ([1c26732](https://github.com/iamkun/dayjs/commit/1c267321a1a01b4947e1482bac67d67ebc7c3dfa)) + +## [1.11.6](https://github.com/iamkun/dayjs/compare/v1.11.5...v1.11.6) (2022-10-21) + + +### Bug Fixes + +* add BigIntSupport plugin ([#2087](https://github.com/iamkun/dayjs/issues/2087)) ([f6dce48](https://github.com/iamkun/dayjs/commit/f6dce48a9e39677718b087867d9fd901d5078155)) +* Fix objectSupport collides with Duration plugin - issue [#2027](https://github.com/iamkun/dayjs/issues/2027) ([#2038](https://github.com/iamkun/dayjs/issues/2038)) ([c9370ea](https://github.com/iamkun/dayjs/commit/c9370ea96bf420439ee7eaa4146e8ed643160312)) + +## [1.11.5](https://github.com/iamkun/dayjs/compare/v1.11.4...v1.11.5) (2022-08-12) + + +### Bug Fixes + +* ordinal for nl not working ([#2011](https://github.com/iamkun/dayjs/issues/2011)) ([c93c85e](https://github.com/iamkun/dayjs/commit/c93c85eaa11564a1aae2d823480a417812c01bf4)) +* wrong ordinal for french locale ([#2010](https://github.com/iamkun/dayjs/issues/2010)) ([dd192a7](https://github.com/iamkun/dayjs/commit/dd192a72fc5d26ce56481e89b0c1ccf5f939be0c)) + +## [1.11.4](https://github.com/iamkun/dayjs/compare/v1.11.3...v1.11.4) (2022-07-19) + + +### Bug Fixes + +* correct past property in ku (kurdish) locale ([#1916](https://github.com/iamkun/dayjs/issues/1916)) ([74e82b9](https://github.com/iamkun/dayjs/commit/74e82b9da5ec8b90361fc27ac7c8b63faf354502)) +* fix French [fr] local ordinal ([#1932](https://github.com/iamkun/dayjs/issues/1932)) ([8f09834](https://github.com/iamkun/dayjs/commit/8f09834a88b8e7f8353c6e7473d4711596890a8c)) +* fix objectSupport plugin ConfigTypeMap type ([#1441](https://github.com/iamkun/dayjs/issues/1441)) ([#1990](https://github.com/iamkun/dayjs/issues/1990)) ([fd51fe4](https://github.com/iamkun/dayjs/commit/fd51fe4f7fa799d8c598343e71fa59299ec4cf93)) +* fix type error to add ordianl property in InstanceLocaleDataReturn and GlobalLocaleDataReturn types ([#1931](https://github.com/iamkun/dayjs/issues/1931)) ([526f0ae](https://github.com/iamkun/dayjs/commit/526f0ae549ffbeeb9ef1099ca23964791fc59743)) +* update locale ar-* meridiem function ([#1954](https://github.com/iamkun/dayjs/issues/1954)) ([3d31611](https://github.com/iamkun/dayjs/commit/3d316117f04362d31f4e8bd349620b8414ce5d0c)) +* zh-tw / zh-hk locale ordinal error ([#1976](https://github.com/iamkun/dayjs/issues/1976)) ([0a1bd08](https://github.com/iamkun/dayjs/commit/0a1bd08e736be7d4e378aaca280caa6543f8066d)) + +## [1.11.3](https://github.com/iamkun/dayjs/compare/v1.11.2...v1.11.3) (2022-06-06) + + +### Bug Fixes + +* customParseFormat plugin to parse comma as a separator character ([#1913](https://github.com/iamkun/dayjs/issues/1913)) ([41b1405](https://github.com/iamkun/dayjs/commit/41b1405971e099431211ae6c2a100cd797da4427)) +* update Dutch [nl] locale ordinal ([#1908](https://github.com/iamkun/dayjs/issues/1908)) ([5da98f8](https://github.com/iamkun/dayjs/commit/5da98f8085d2d2847d79e38c795082703a14f24b)) + +## [1.11.2](https://github.com/iamkun/dayjs/compare/v1.11.1...v1.11.2) (2022-05-06) + + +### Bug Fixes + +* add OpUnitType (week) to quarterOfYear startOf/endOf types ([#1865](https://github.com/iamkun/dayjs/issues/1865)) ([400bc3e](https://github.com/iamkun/dayjs/commit/400bc3e8915e0c58e7abbfd3a1235364b1abaf3e)) +* Fix type issue with ManipulateType ([#1864](https://github.com/iamkun/dayjs/issues/1864)) ([d033dfc](https://github.com/iamkun/dayjs/commit/d033dfcfc1d2ced39b2733898e8d85ad5984c9e9)) +* fix UTC plugin .valueOf not taking DST into account ([#1448](https://github.com/iamkun/dayjs/issues/1448)) ([27d1c50](https://github.com/iamkun/dayjs/commit/27d1c506100ae6624f258c21cc06b24768ced733)) + +## [1.11.1](https://github.com/iamkun/dayjs/compare/v1.11.0...v1.11.1) (2022-04-15) + + +### Bug Fixes + +* add Bengali (Bangladesh) [bn-bd] locale ([#1806](https://github.com/iamkun/dayjs/issues/1806)) ([840ed76](https://github.com/iamkun/dayjs/commit/840ed76eedc085afefc4dedd05f31d44196b63b0)) +* refactor replace deprecated String.prototype.substr() ([#1836](https://github.com/iamkun/dayjs/issues/1836)) ([627fa39](https://github.com/iamkun/dayjs/commit/627fa393e4daf83c92431162dbe18534b23fcbae)) +* Update German [de] locale, adds the abbreviations for month including a . in the end, as in September -> Sept. ([#1831](https://github.com/iamkun/dayjs/issues/1831)) ([4e2802c](https://github.com/iamkun/dayjs/commit/4e2802cc3bec2941ffb737a15fb531c90951eafe)) +* update Italian (Switzerland) [it-ch] locale relativeTime ([#1829](https://github.com/iamkun/dayjs/issues/1829)) ([8e6d11d](https://github.com/iamkun/dayjs/commit/8e6d11d053393d97bee1ba411adb2d82de1a58c4)) +* update Kurdish [ku] locale strings and formatted output contains non-standard kurdish characters ([#1848](https://github.com/iamkun/dayjs/issues/1848)) ([a597d0b](https://github.com/iamkun/dayjs/commit/a597d0b1b8dd28e626f8c59d326622088f7b51e7)) +* update locale bo [Tibetan]: corrected the orders in formats ([#1823](https://github.com/iamkun/dayjs/issues/1823)) ([e790516](https://github.com/iamkun/dayjs/commit/e79051617af6787358f6c9b5443d987b8b53a9e1)) + +# [1.11.0](https://github.com/iamkun/dayjs/compare/v1.10.8...v1.11.0) (2022-03-14) + + +### Bug Fixes + +* Add Kirundi (rn) locale ([#1793](https://github.com/iamkun/dayjs/issues/1793)) ([74e5247](https://github.com/iamkun/dayjs/commit/74e5247227a779fffde39bdfcd1ee19911496709)) +* add missing date shorthand D type definition ([#1752](https://github.com/iamkun/dayjs/issues/1752)) ([b045baf](https://github.com/iamkun/dayjs/commit/b045baf1646a81f7e4f446f355d02d5fb0ef4aa7)) +* Add relative time to Galician (gl) and fix ordinals ([#1800](https://github.com/iamkun/dayjs/issues/1800)) ([dcbf170](https://github.com/iamkun/dayjs/commit/dcbf1708400624addfbddbc71e0f6a9ac15fa961)) +* update German locales (de-at, de-ch) ([#1775](https://github.com/iamkun/dayjs/issues/1775)) ([f9055a7](https://github.com/iamkun/dayjs/commit/f9055a77bf3d84c575e5fcf99e21611138ba64d7)) +* update Icelandic [is] locale relativeTime config ([#1796](https://github.com/iamkun/dayjs/issues/1796)) ([76f9e17](https://github.com/iamkun/dayjs/commit/76f9e1756de7e99c01e471dab30ea074b9ec9629)) +* Update index.d.ts note ([#1716](https://github.com/iamkun/dayjs/issues/1716)) ([5a108ff](https://github.com/iamkun/dayjs/commit/5a108ff3159c53fd270ea7638f33c35c934d6457)) +* Update locale German [de] monthsShort ([#1746](https://github.com/iamkun/dayjs/issues/1746)) ([4a7b7d0](https://github.com/iamkun/dayjs/commit/4a7b7d07c885bb9338514c234dbb708e24e9863e)) +* update meridiem function to Kurdish (ku) locale ([#1725](https://github.com/iamkun/dayjs/issues/1725)) ([efd3904](https://github.com/iamkun/dayjs/commit/efd3904ff8cbf0a4fc064911dda76fc86b669f7b)) +* update updateLocal plugin typescript types ([#1692](https://github.com/iamkun/dayjs/issues/1692)) ([c7a3f73](https://github.com/iamkun/dayjs/commit/c7a3f73064dbb63b4d365b2ad4c792f075f4d8d8)) + + +### Features + +* Fallback to language only locale + support uppercase locales ([#1524](https://github.com/iamkun/dayjs/issues/1524)) ([9138dc2](https://github.com/iamkun/dayjs/commit/9138dc28206875372da4fb74c64716437cd11b95)) + +## [1.10.8](https://github.com/iamkun/dayjs/compare/v1.10.7...v1.10.8) (2022-02-28) + + +### Bug Fixes + +* set locale pt, pt-br correct weekdays and months ([#1697](https://github.com/iamkun/dayjs/issues/1697)) ([e019301](https://github.com/iamkun/dayjs/commit/e01930171c8235f58a114236f146086428f99569)) + +## [1.10.7](https://github.com/iamkun/dayjs/compare/v1.10.6...v1.10.7) (2021-09-10) + + +### Bug Fixes + +* Add Spanish (Mexico) [es-mx] locale ([#1614](https://github.com/iamkun/dayjs/issues/1614)) ([3393f2a](https://github.com/iamkun/dayjs/commit/3393f2ad55346d55902683a2e31c6f253d96c8c2)) +* Add Arabic (Iraq) [ar-iq] locale ([#1627](https://github.com/iamkun/dayjs/issues/1627)) ([b5a1391](https://github.com/iamkun/dayjs/commit/b5a1391011b247d08863d291542db5937b23b427)) +* add format object type to type file ([#1572](https://github.com/iamkun/dayjs/issues/1572)) ([5a79cc6](https://github.com/iamkun/dayjs/commit/5a79cc6408e825d9e123629eb44fc19c996d7751)) +* duration plugin when parsing duration from ISO string, set missing components to 0 instead of NaN ([#1611](https://github.com/iamkun/dayjs/issues/1611)) ([252585b](https://github.com/iamkun/dayjs/commit/252585b4b2bd59508150e21bb994908a9d78f9b0)) +* narrow type for `add` and `subtract` ([#1576](https://github.com/iamkun/dayjs/issues/1576)) ([1686962](https://github.com/iamkun/dayjs/commit/16869621b1a42563064dbf87f80c1ebfd74c1188)) +* update customParseFormat plugin strict x X parsing ([#1571](https://github.com/iamkun/dayjs/issues/1571)) ([08adda5](https://github.com/iamkun/dayjs/commit/08adda54edbcca38601f57841921d0f87f84e49e)) +* update Lithuanian [lt] locale spelling for single month ([#1609](https://github.com/iamkun/dayjs/issues/1609)) ([255dc54](https://github.com/iamkun/dayjs/commit/255dc54d9295de135a9037ce6ca13cae4bfd2cfb)) +* Update Norwegian Bokmål [nb] local yearStart 4 ([#1608](https://github.com/iamkun/dayjs/issues/1608)) ([7a8467c](https://github.com/iamkun/dayjs/commit/7a8467c0b7d59821f7e19d4a6973bcda8e4c19b1)) +* update plugin advancedFormat `isValid` validation ([#1566](https://github.com/iamkun/dayjs/issues/1566)) ([755fc8b](https://github.com/iamkun/dayjs/commit/755fc8bb1c532eb991459f180eee81367d12016c)) +* update Sinhalese [si] locale month name ([#1475](https://github.com/iamkun/dayjs/issues/1475)) ([63de2a8](https://github.com/iamkun/dayjs/commit/63de2a8b7dcd7e68c132c85d88572d4c9d296907)) +* update utcOffset plugin type file ([#1604](https://github.com/iamkun/dayjs/issues/1604)) ([f68e4b1](https://github.com/iamkun/dayjs/commit/f68e4b1a29fc33542f74cde10ec6d9fb045ca37e)) + +## [1.10.6](https://github.com/iamkun/dayjs/compare/v1.10.5...v1.10.6) (2021-07-06) + + +### Bug Fixes + +* add invalid date string override ([#1465](https://github.com/iamkun/dayjs/issues/1465)) ([#1470](https://github.com/iamkun/dayjs/issues/1470)) ([06f88f4](https://github.com/iamkun/dayjs/commit/06f88f425828b1ce96b737332d25145a95a4ee9d)) +* add sv-fi Finland Swedish locale ([#1522](https://github.com/iamkun/dayjs/issues/1522)) ([8e32164](https://github.com/iamkun/dayjs/commit/8e32164855cff724642e24c37a631eb4c4d760c8)) +* customParseFormat support parsing X x timestamp ([#1567](https://github.com/iamkun/dayjs/issues/1567)) ([eb087f5](https://github.com/iamkun/dayjs/commit/eb087f52861313b8dd8a5c1b77858665ec72859e)) +* dayjs ConfigTypeMap add null & undefined ([#1560](https://github.com/iamkun/dayjs/issues/1560)) ([b5e40e6](https://github.com/iamkun/dayjs/commit/b5e40e6f16abeaea6a0facfa466d20aefaa8a444)) +* Fix DayOfYear plugin when using BadMutable plugin ([#1511](https://github.com/iamkun/dayjs/issues/1511)) ([0b0c6a3](https://github.com/iamkun/dayjs/commit/0b0c6a31ec9c0aff991b0e8dd6eed116201274cc)) +* Implement ordinal in Bulgarian translation (fixes [#1501](https://github.com/iamkun/dayjs/issues/1501)) ([#1502](https://github.com/iamkun/dayjs/issues/1502)) ([b728da5](https://github.com/iamkun/dayjs/commit/b728da5ed9ed08210004ed20ce5fcd52a92de7da)) +* more strict delimiter in REGEX_PARSE ([#1555](https://github.com/iamkun/dayjs/issues/1555)) ([bfdab5c](https://github.com/iamkun/dayjs/commit/bfdab5c0d45a5736b68e8e1b1354fc021e05f607)) +* parameter type ([#1549](https://github.com/iamkun/dayjs/issues/1549)) ([f369844](https://github.com/iamkun/dayjs/commit/f369844dd69d253c4c7cbf68150939db3db233be)) +* update customParseFormat plugin to custom two-digit year parse function ([#1421](https://github.com/iamkun/dayjs/issues/1421)) ([bb5df55](https://github.com/iamkun/dayjs/commit/bb5df55cd3975dc7638b8f4e762afa470b6620f7)) +* update names of weekdays and months in Bulgarian [bg] to lowercase ([#1438](https://github.com/iamkun/dayjs/issues/1438)) ([b246210](https://github.com/iamkun/dayjs/commit/b24621091fec9cf6704de21e4b323f6f0c4abbf1)) +* update type file `.diff` ([#1505](https://github.com/iamkun/dayjs/issues/1505)) ([6508494](https://github.com/iamkun/dayjs/commit/6508494a4e62977b4397baaeef293d1bcf3c7235)) +* update UTC plugin type file for strict parsing ([#1443](https://github.com/iamkun/dayjs/issues/1443)) ([b4f28df](https://github.com/iamkun/dayjs/commit/b4f28df219fe63202dffdbeeaec5677c4d2c9111)) + +## [1.10.5](https://github.com/iamkun/dayjs/compare/v1.10.4...v1.10.5) (2021-05-26) + + +### Bug Fixes + +* add meridiem in ar locales ([#1375](https://github.com/iamkun/dayjs/issues/1375)) ([319f616](https://github.com/iamkun/dayjs/commit/319f616e572a03b984013d04d1b3a18ffd5b1190)) +* Added Zulu support to customParseFormat ([#1359](https://github.com/iamkun/dayjs/issues/1359)) ([1138a3f](https://github.com/iamkun/dayjs/commit/1138a3f0a76592c6d72fb86c4399e133fa41e2ec)) +* fix Bengali [bn] locale monthsShort error ([a0e6c0c](https://github.com/iamkun/dayjs/commit/a0e6c0cf3e1828020dfa11432c6716990f6ed5e0)) +* fix missing types for ArraySupport plugin ([#1401](https://github.com/iamkun/dayjs/issues/1401)) ([b1abdc4](https://github.com/iamkun/dayjs/commit/b1abdc40ee6c9d18ff46c311a114e0755677ea6f)) +* fix Ukrainian [uk] locale ([#1463](https://github.com/iamkun/dayjs/issues/1463)) ([0fdac93](https://github.com/iamkun/dayjs/commit/0fdac93ff2531542301b76952be9b084b2e2dfa0)) +* hotfix for `Duration` types ([#1357](https://github.com/iamkun/dayjs/issues/1357)) ([855b7b3](https://github.com/iamkun/dayjs/commit/855b7b3d049a3903794f91db3419f167c00dabd2)), closes [#1354](https://github.com/iamkun/dayjs/issues/1354) +* timezone plugin DST error ([#1352](https://github.com/iamkun/dayjs/issues/1352)) ([71bed15](https://github.com/iamkun/dayjs/commit/71bed155edf32bff24379930ac684fc783538d8f)) +* Update duration plugin change string to number ([#1394](https://github.com/iamkun/dayjs/issues/1394)) ([e1546d1](https://github.com/iamkun/dayjs/commit/e1546d1a0cdb97ae92cf11efe61d94707af6a3a3)) +* update Duration plugin to support no-argument ([#1400](https://github.com/iamkun/dayjs/issues/1400)) ([8d9a5ae](https://github.com/iamkun/dayjs/commit/8d9a5ae0749e1b4e76babd4deeaa3b1d9776c29b)) +* Update Finnish [fi] locale to set yearStart ([#1378](https://github.com/iamkun/dayjs/issues/1378)) ([f3370bd](https://github.com/iamkun/dayjs/commit/f3370bda4e435118f714c8a7daf5c88cfc4b69ba)) +* update Russian [ru] locale meridiem and unit tests ([#1403](https://github.com/iamkun/dayjs/issues/1403)) ([f10f39d](https://github.com/iamkun/dayjs/commit/f10f39de7db70244a3c35e4a421090a12972457b)) +* update Russian [ru] locale yearStart config ([#1372](https://github.com/iamkun/dayjs/issues/1372)) ([5052515](https://github.com/iamkun/dayjs/commit/5052515fe35b2444201ef8ef87220b1876a94d0a)) +* update Slovenian [sl] locale to set correct ordinal ([#1386](https://github.com/iamkun/dayjs/issues/1386)) ([cb4f746](https://github.com/iamkun/dayjs/commit/cb4f74633b3020d6dbf19548c8cb13613dafca18)) +* update Spanish [es] locale to change month names to lowercase ([#1414](https://github.com/iamkun/dayjs/issues/1414)) ([9c20e77](https://github.com/iamkun/dayjs/commit/9c20e77caf7b1b5eccf418175203b198d4e29535)) +* update Swedish [sv] locale to set correct yearStart ([#1385](https://github.com/iamkun/dayjs/issues/1385)) ([66c5935](https://github.com/iamkun/dayjs/commit/66c59354964ef456bcd5f6152819618f44978082)) +* update UTC plugin to support string argument like +HH:mm ([#1395](https://github.com/iamkun/dayjs/issues/1395)) ([656127c](https://github.com/iamkun/dayjs/commit/656127cc44eda50923a1ac755602863fc32b9e69)) + +## [1.10.4](https://github.com/iamkun/dayjs/compare/v1.10.3...v1.10.4) (2021-01-22) + + +### Bug Fixes + +* Correct handling negative duration ([#1317](https://github.com/iamkun/dayjs/issues/1317)) ([3f5c085](https://github.com/iamkun/dayjs/commit/3f5c085608182472f20b84766b10949945663e44)) +* Improve `Duration` types ([#1338](https://github.com/iamkun/dayjs/issues/1338)) ([4aca4b1](https://github.com/iamkun/dayjs/commit/4aca4b1b584a15de1146d929f95c944594032f20)) +* parse a string for MMM month format with underscore delimiter ([#1349](https://github.com/iamkun/dayjs/issues/1349)) ([82ef9a3](https://github.com/iamkun/dayjs/commit/82ef9a304f06287ac0a14c4da9a7fe6152b5fec9)) +* Update Bengali [bn] locale ([#1329](https://github.com/iamkun/dayjs/issues/1329)) ([02d96ec](https://github.com/iamkun/dayjs/commit/02d96ec7189f62d6ef8987135919cbb5ceff20a6)) +* update locale Portuguese [pt] yearStart ([#1345](https://github.com/iamkun/dayjs/issues/1345)) ([5c785d5](https://github.com/iamkun/dayjs/commit/5c785d528cc08811638d7cbfc7fc158d67b32d75)) +* update Polish [pl] locale yearStart ([#1348](https://github.com/iamkun/dayjs/issues/1348)) ([e93e6b8](https://github.com/iamkun/dayjs/commit/e93e6b8ffa61036b26382f1763e3864d4a7d5df5)) +* Update Slovenian [sl] relativeTime locale ([#1333](https://github.com/iamkun/dayjs/issues/1333)) ([fe5f1d0](https://github.com/iamkun/dayjs/commit/fe5f1d0afbe57b70339e268047e6c3028ca3d59b)) + +## [1.10.3](https://github.com/iamkun/dayjs/compare/v1.10.2...v1.10.3) (2021-01-09) + + +### Bug Fixes + +* fix customParseFormat plugin strict mode parse meridiem bug ([#1321](https://github.com/iamkun/dayjs/issues/1321)) ([e49eeef](https://github.com/iamkun/dayjs/commit/e49eeefbe8acb36419d36ca2e7ed8bc152f73ac1)) +* fix weekYear plugin missing locale bug ([#1319](https://github.com/iamkun/dayjs/issues/1319)) ([344bdc0](https://github.com/iamkun/dayjs/commit/344bdc0eed6843edb05723dc7853a41833d88f08)), closes [#1304](https://github.com/iamkun/dayjs/issues/1304) +* update advancedFormat plugin to add format options for iso week and weekyear ([#1309](https://github.com/iamkun/dayjs/issues/1309)) ([2c54c64](https://github.com/iamkun/dayjs/commit/2c54c6441871a175ac9b95e41e4cd075dbac10cb)) +* update devHelper to add dev warning setting locale before loading ([c5cc893](https://github.com/iamkun/dayjs/commit/c5cc89355e1e206ca72433c19c40cb528690b04f)) +* update German [de] locale yearStart ([1858df8](https://github.com/iamkun/dayjs/commit/1858df8008de56570680723df89b36a8cbc970ef)), closes [#1264](https://github.com/iamkun/dayjs/issues/1264) + +## [1.10.2](https://github.com/iamkun/dayjs/compare/v1.10.1...v1.10.2) (2021-01-05) + + +### Bug Fixes + +* fix parse regex bug ([#1307](https://github.com/iamkun/dayjs/issues/1307)) ([db2b6a5](https://github.com/iamkun/dayjs/commit/db2b6a5ea8e70f9fda645d113ca33495aa96b616)), closes [#1305](https://github.com/iamkun/dayjs/issues/1305) +* remove module entry in package.json to revert 1.10.1 change ([#1314](https://github.com/iamkun/dayjs/issues/1314)) ([824dcb8](https://github.com/iamkun/dayjs/commit/824dcb8dfcccf14f64b6a2741a00fcdfe53dcd98)) +* update devHelper add warning "passing Year as a Number will be parsed as a Unix timestamp" ([#1315](https://github.com/iamkun/dayjs/issues/1315)) ([b0dda31](https://github.com/iamkun/dayjs/commit/b0dda3139e25441ab4e7c1f4f192dee0ecce6ef8)) + +## [1.10.1](https://github.com/iamkun/dayjs/compare/v1.10.0...v1.10.1) (2021-01-03) + + +### Bug Fixes + +* fix typescript type error UnitTypeLongPlural ([#1302](https://github.com/iamkun/dayjs/issues/1302)) ([bfaabe4](https://github.com/iamkun/dayjs/commit/bfaabe4f398c11564eca6cda7c8aded22e1b231a)), closes [#1300](https://github.com/iamkun/dayjs/issues/1300) + +# [1.10.0](https://github.com/iamkun/dayjs/compare/v1.9.8...v1.10.0) (2021-01-03) + + +### Bug Fixes + +* add ordinal to localeData plugin ([#1266](https://github.com/iamkun/dayjs/issues/1266)) ([fd229fa](https://github.com/iamkun/dayjs/commit/fd229fa5bd26bcba810e2535eb937ea8d99106c2)) +* add preParsePostFormat plugin & update Arabic [ar] locale ([#1255](https://github.com/iamkun/dayjs/issues/1255)) ([f2e4790](https://github.com/iamkun/dayjs/commit/f2e479006a9a49bc0917f8620101d40ac645f7f2)) +* add type support for plural forms of units ([#1289](https://github.com/iamkun/dayjs/issues/1289)) ([de49bb1](https://github.com/iamkun/dayjs/commit/de49bb100badfb92b9a5933cc568841f340a923f)) +* escape last period to match only milliseconds ([#1239](https://github.com/iamkun/dayjs/issues/1239)) ([#1295](https://github.com/iamkun/dayjs/issues/1295)) ([64037e6](https://github.com/iamkun/dayjs/commit/64037e6a8cf303dcfd2b954f309bd9691f87fffc)) + + +### Features + +* add ES6 Module Support, package.json module point to "esm/index.js" ([#1298](https://github.com/iamkun/dayjs/issues/1298)) ([f63375d](https://github.com/iamkun/dayjs/commit/f63375dea89becbd3bb2bb8ea7289c58c752bfed)), closes [#598](https://github.com/iamkun/dayjs/issues/598) [#313](https://github.com/iamkun/dayjs/issues/313) + +## [1.9.8](https://github.com/iamkun/dayjs/compare/v1.9.7...v1.9.8) (2020-12-27) + + +### Bug Fixes + +* fix Ukrainian [uk] locale typo ([1605cc0](https://github.com/iamkun/dayjs/commit/1605cc0f6fe0e9c46a92d529bc9cd6e130432337)) +* update Hebrew [he] locale for double units ([#1287](https://github.com/iamkun/dayjs/issues/1287)) ([1c4b0da](https://github.com/iamkun/dayjs/commit/1c4b0da1468522e59dc9ee646d10dd2b31477d99)) +* update zh locale meridiem "noon" ([0e7ff3d](https://github.com/iamkun/dayjs/commit/0e7ff3dd29ca3aed85cb76dfcb8298d326e26542)) +* update zh-cn locale definition of noon ([#1278](https://github.com/iamkun/dayjs/issues/1278)) ([d5930b9](https://github.com/iamkun/dayjs/commit/d5930b96ff884f4176ca3fcb1bc95e8f1ec75c71)) + +## [1.9.7](https://github.com/iamkun/dayjs/compare/v1.9.6...v1.9.7) (2020-12-05) + + +### Bug Fixes + +* add duration.format to format a Duration ([#1202](https://github.com/iamkun/dayjs/issues/1202)) ([9a859a1](https://github.com/iamkun/dayjs/commit/9a859a147ba223a1eeff0f2bb6f33d97e0ccc6c7)) +* Add function handling for relativeTime.future and relativeTime.past ([#1197](https://github.com/iamkun/dayjs/issues/1197)) ([ef1979c](https://github.com/iamkun/dayjs/commit/ef1979ce85c61fe2d759ef3c37cb6aaf2358094f)) +* avoid install installed plugin ([#1214](https://github.com/iamkun/dayjs/issues/1214)) ([a92eb6c](https://github.com/iamkun/dayjs/commit/a92eb6c4dc1437ec920e69484d52984f5921a8ea)) +* avoid memory leak after installing a plugin too many times ([b8d2e32](https://github.com/iamkun/dayjs/commit/b8d2e32a9eb59661a7ed6200daa070687becaebd)) +* fix diff bug when UTC plugin enabled ([#1201](https://github.com/iamkun/dayjs/issues/1201)) ([9544ed2](https://github.com/iamkun/dayjs/commit/9544ed2a6c466b8308d26b33a388a6737435a1f4)), closes [#1200](https://github.com/iamkun/dayjs/issues/1200) +* fix startOf/endOf bug in timezone plugin ([#1229](https://github.com/iamkun/dayjs/issues/1229)) ([eb5fbc4](https://github.com/iamkun/dayjs/commit/eb5fbc4c7d1b62a8615d2f263b404a9515d8e15c)) +* fix utc plugin diff edge case ([#1187](https://github.com/iamkun/dayjs/issues/1187)) ([971b3d4](https://github.com/iamkun/dayjs/commit/971b3d40b4c9403165138f1034e2223cd97c3abf)) +* update customParseFormat plugin to parse 2-digit offset ([#1209](https://github.com/iamkun/dayjs/issues/1209)) ([b56936a](https://github.com/iamkun/dayjs/commit/b56936ab77b8f6289a1b77d49307b495c4bf9f91)), closes [#1205](https://github.com/iamkun/dayjs/issues/1205) +* Update timezone plugin type definition ([#1221](https://github.com/iamkun/dayjs/issues/1221)) ([34cfb92](https://github.com/iamkun/dayjs/commit/34cfb920b9653ad44d4b31fe49e533692a3ce01b)) + +## [1.9.6](https://github.com/iamkun/dayjs/compare/v1.9.5...v1.9.6) (2020-11-10) + + +### Bug Fixes + +* fix customParseFormat plugin parsing date bug ([#1198](https://github.com/iamkun/dayjs/issues/1198)) ([50f05ad](https://github.com/iamkun/dayjs/commit/50f05ad3addf27827c5657ae7519514e40d9faec)), closes [#1194](https://github.com/iamkun/dayjs/issues/1194) +* Update lv (Latvian) locale relative time ([#1192](https://github.com/iamkun/dayjs/issues/1192)) ([6d6c684](https://github.com/iamkun/dayjs/commit/6d6c6841b13ba4f7e69de92caf132a3592c5253a)) + +## [1.9.5](https://github.com/iamkun/dayjs/compare/v1.9.4...v1.9.5) (2020-11-05) + + +### Bug Fixes + +* customParseFormat plugin supports parsing localizedFormats ([#1110](https://github.com/iamkun/dayjs/issues/1110)) ([402b603](https://github.com/iamkun/dayjs/commit/402b603aa3ee4199786950bc88b3fdc6b527aa35)) +* fix customParseFormat plugin parse meridiem bug ([#1169](https://github.com/iamkun/dayjs/issues/1169)) ([9e8f8d9](https://github.com/iamkun/dayjs/commit/9e8f8d96c69d557f4d267f42567c25ae9e7ab227)), closes [#1168](https://github.com/iamkun/dayjs/issues/1168) +* fix devHelper error in umd bundle in browser ([#1165](https://github.com/iamkun/dayjs/issues/1165)) ([d11b5ee](https://github.com/iamkun/dayjs/commit/d11b5ee7dc11af671355f65ccda00f6ba42cc725)) +* fix utc plugin diff bug in DST ([#1171](https://github.com/iamkun/dayjs/issues/1171)) ([f8da3fe](https://github.com/iamkun/dayjs/commit/f8da3fe7e50c84c0502bf5be0b364910922dbd79)), closes [#1097](https://github.com/iamkun/dayjs/issues/1097) [#1021](https://github.com/iamkun/dayjs/issues/1021) +* isoWeek plugin type ([#1177](https://github.com/iamkun/dayjs/issues/1177)) ([c3d0436](https://github.com/iamkun/dayjs/commit/c3d0436b06f74989e3a2c751a5d170f8072c4aad)) +* update localeData plugin to support meridiem ([#1174](https://github.com/iamkun/dayjs/issues/1174)) ([fdb09e4](https://github.com/iamkun/dayjs/commit/fdb09e4074cc7e8f6196846f18d3566c1f9e8fcd)), closes [#1172](https://github.com/iamkun/dayjs/issues/1172) +* update timezone plugin parse Date instance / timestamp logic & remove useless test ([#1183](https://github.com/iamkun/dayjs/issues/1183)) ([a7f858b](https://github.com/iamkun/dayjs/commit/a7f858bb70ad81f718ba35c479e84b54eace48b2)) + +## [1.9.4](https://github.com/iamkun/dayjs/compare/v1.9.3...v1.9.4) (2020-10-23) + + +### Bug Fixes + +* Add descriptions to types ([#1148](https://github.com/iamkun/dayjs/issues/1148)) ([9a407a1](https://github.com/iamkun/dayjs/commit/9a407a140b089345a387d1aceab4d0d1635229c7)) +* add devHelper plugin ([#1163](https://github.com/iamkun/dayjs/issues/1163)) ([de49dc8](https://github.com/iamkun/dayjs/commit/de49dc80c83b85de4170571b64412bd60ada221b)) +* Fix Hungarian (hu) locale ([#1112](https://github.com/iamkun/dayjs/issues/1112)) ([ab13754](https://github.com/iamkun/dayjs/commit/ab13754f43c5033dacaa0eb2042dc4ab1a7a2754)) +* fix minMax plugin parsing empty array bug ([#1062](https://github.com/iamkun/dayjs/issues/1062)) ([368108b](https://github.com/iamkun/dayjs/commit/368108bc6d5cb1542f711b8eba722bd4dfaab0cd)) +* update adding/subtracting Duration from Dayjs object ([#1156](https://github.com/iamkun/dayjs/issues/1156)) ([f861aca](https://github.com/iamkun/dayjs/commit/f861acac3e83e28d3a4a96312c71119fd6b544fc)) +* update en-NZ locale to use proper ordinal formatting function ([#1143](https://github.com/iamkun/dayjs/issues/1143)) ([fcdbc58](https://github.com/iamkun/dayjs/commit/fcdbc5880710456a29b2bacf250542230bf48b99)) +* update localeData plugin type ([#1116](https://github.com/iamkun/dayjs/issues/1116)) ([ee5a4ec](https://github.com/iamkun/dayjs/commit/ee5a4ec41edddfb57d103c35182dc635c9264a10)) +* update timezone plugin to support custom parse format ([#1160](https://github.com/iamkun/dayjs/issues/1160)) ([48cbf31](https://github.com/iamkun/dayjs/commit/48cbf3118ba5427de428777c2e025896db654f2e)), closes [#1159](https://github.com/iamkun/dayjs/issues/1159) +* update timezone plugin to support keepLocalTime ([#1161](https://github.com/iamkun/dayjs/issues/1161)) ([1d429e5](https://github.com/iamkun/dayjs/commit/1d429e5fe4467ebddcf81b43cf6f36e5e3be944c)), closes [#1149](https://github.com/iamkun/dayjs/issues/1149) + +## [1.9.3](https://github.com/iamkun/dayjs/compare/v1.9.2...v1.9.3) (2020-10-13) + + +### Bug Fixes + +* fix localizedFormat export error ([#1133](https://github.com/iamkun/dayjs/issues/1133)) ([deecd6a](https://github.com/iamkun/dayjs/commit/deecd6ab8a2f4173ee7046f6b568b41fd2677531)), closes [#1132](https://github.com/iamkun/dayjs/issues/1132) + +## [1.9.2](https://github.com/iamkun/dayjs/compare/v1.9.1...v1.9.2) (2020-10-13) + + +### Bug Fixes + +* add arraySupport plugin ([#1129](https://github.com/iamkun/dayjs/issues/1129)) ([be505c2](https://github.com/iamkun/dayjs/commit/be505c2c540261027342cecc55d8919a3d18d893)) +* export type of duration plugin ([#1094](https://github.com/iamkun/dayjs/issues/1094)) ([2c92e71](https://github.com/iamkun/dayjs/commit/2c92e71bf55d09601120cdf433da7a19cc8abff6)) +* Fix LocaleData plugin longDateFormat lowercase error ([#1101](https://github.com/iamkun/dayjs/issues/1101)) ([7937ccd](https://github.com/iamkun/dayjs/commit/7937ccdeac47d094a60e65ebb62a6020b81c46f4)) +* Fix objectSupport plugin bug in UTC ([#1107](https://github.com/iamkun/dayjs/issues/1107)) ([fe90bb6](https://github.com/iamkun/dayjs/commit/fe90bb6944f2ff1969ca975954d303b449dfa95b)), closes [#1105](https://github.com/iamkun/dayjs/issues/1105) +* fix Serbian locale grammar (sr, sr-cyrl) ([#1108](https://github.com/iamkun/dayjs/issues/1108)) ([cc87eff](https://github.com/iamkun/dayjs/commit/cc87eff8b75b0d86ce0956516319d402bccae6c0)) +* Fix typo for "monday" in arabic ([#1067](https://github.com/iamkun/dayjs/issues/1067)) ([2e1e426](https://github.com/iamkun/dayjs/commit/2e1e42650124f30282dc4d710798d576b928f1c7)) +* support dayjs.add(Duration), dayjs.subtract(Duration) ([#1099](https://github.com/iamkun/dayjs/issues/1099)) ([b1a0294](https://github.com/iamkun/dayjs/commit/b1a02942c5238203aaa04ce9a074c73742324ab7)) +* update Breton [br] locale relativeTime config ([#1103](https://github.com/iamkun/dayjs/issues/1103)) ([b038bfd](https://github.com/iamkun/dayjs/commit/b038bfdb128889d677c95534d2be29cc30c9e72f)) +* update Catalan [ca] locale ordinal ([73da380](https://github.com/iamkun/dayjs/commit/73da38024c8b550bdcfbe3ff7e578e742c7aecf2)) +* update German [de] locale relativeTime config ([#1109](https://github.com/iamkun/dayjs/issues/1109)) ([f6e771b](https://github.com/iamkun/dayjs/commit/f6e771b70f93d19ebb12e6b794aa4628a1796248)) +* update localeData plugin to add longDateFormat to global localeData ([#1106](https://github.com/iamkun/dayjs/issues/1106)) ([16937d1](https://github.com/iamkun/dayjs/commit/16937d16e053b8c1d4a607622fa2fdbfd9809832)) +* Update objectSupport plugin to return current date time while parsing empty object ([f56783e](https://github.com/iamkun/dayjs/commit/f56783e14d8cf50916b015e7188b23bb6fbca839)) + +## [1.9.1](https://github.com/iamkun/dayjs/compare/v1.9.0...v1.9.1) (2020-09-28) + + +### Bug Fixes + +* Fix objectSupport plugin to get the correct result (zero-based month) ([#1089](https://github.com/iamkun/dayjs/issues/1089)) ([f95ac15](https://github.com/iamkun/dayjs/commit/f95ac15a4577ae5a3d1ce353872a2cd9fc454bc2)) + +# [1.9.0](https://github.com/iamkun/dayjs/compare/v1.8.36...v1.9.0) (2020-09-28) + + +### Bug Fixes + +* Add `setDefault` typing to timezone.d.ts ([#1057](https://github.com/iamkun/dayjs/issues/1057)) ([c0f0886](https://github.com/iamkun/dayjs/commit/c0f088620f17260e6e3ebce7697d561b5623f5f3)) +* fix DST bug in utc plugin ([#1053](https://github.com/iamkun/dayjs/issues/1053)) ([3d73543](https://github.com/iamkun/dayjs/commit/3d7354361f042ced1176d91f9ae9edffe6173425)) +* Fix optional type for timezone plugin ([#1081](https://github.com/iamkun/dayjs/issues/1081)) ([a6ebcf2](https://github.com/iamkun/dayjs/commit/a6ebcf283a83273562dce5663155e3b3a12ea9a5)), closes [#1079](https://github.com/iamkun/dayjs/issues/1079) +* Fix timezone plugin conversion bug ([#1073](https://github.com/iamkun/dayjs/issues/1073)) ([16816a3](https://github.com/iamkun/dayjs/commit/16816a31ff43220aca9d1d179df6b729182abb55)) +* update duration plugin type file ([#1065](https://github.com/iamkun/dayjs/issues/1065)) ([94af9af](https://github.com/iamkun/dayjs/commit/94af9af27c5bc182cbb24f1845e561dd1d82d776)) +* update timezone plugin to support getting offset name e.g. EST ([#1069](https://github.com/iamkun/dayjs/issues/1069)) ([cbb755e](https://github.com/iamkun/dayjs/commit/cbb755e5c68d49c5678291f3ce832b32831a056e)) +* update utc plugin to support keepLocalTime `.utc(true)` ([#1080](https://github.com/iamkun/dayjs/issues/1080)) ([5ce4e0d](https://github.com/iamkun/dayjs/commit/5ce4e0d2f552f3645262537ff7afdc946f5a7e72)) + + +### Features + +* Correct casing for en-sg locale name ([#1048](https://github.com/iamkun/dayjs/issues/1048)) ([2edaddc](https://github.com/iamkun/dayjs/commit/2edaddc22a7eb914f915531f389766217acd7034)) + +## [1.8.36](https://github.com/iamkun/dayjs/compare/v1.8.35...v1.8.36) (2020-09-17) + + +### Bug Fixes + +* Add Amharic (am) locale ([#1046](https://github.com/iamkun/dayjs/issues/1046)) ([cdc49a1](https://github.com/iamkun/dayjs/commit/cdc49a1911c74b7ea96ed222f42796d53715cfed)) +* Export Duration type in duration plugin ([#1043](https://github.com/iamkun/dayjs/issues/1043)) ([0f20c3a](https://github.com/iamkun/dayjs/commit/0f20c3ac75d9ac1026a15a7bb343d3a150d9b30f)) +* Fix duration plugin parsing milliseconds bug ([#1042](https://github.com/iamkun/dayjs/issues/1042)) ([fe2301b](https://github.com/iamkun/dayjs/commit/fe2301b22318886aaa89ed1620e0a118e98c2b8a)) +* Timezone plugin set default timezone ([#1033](https://github.com/iamkun/dayjs/issues/1033)) ([0c2050a](https://github.com/iamkun/dayjs/commit/0c2050a152da708b01edd6150a5013f642b14576)) +* Timezone plugin should have the same behavior in latest ICU version ([#1032](https://github.com/iamkun/dayjs/issues/1032)) ([de31592](https://github.com/iamkun/dayjs/commit/de315921575cc50c38464b27d0338e30a54d8e2a)) +* Update Finnish (fi) locale ([#963](https://github.com/iamkun/dayjs/issues/963)) ([cf8b6a0](https://github.com/iamkun/dayjs/commit/cf8b6a096f24b54cbdb95675ac386d8ac85ea616)) +* Update Polish (pl) , Hungarian (hr) and Lithuanian (lt) localization ([#1045](https://github.com/iamkun/dayjs/issues/1045)) ([638fd39](https://github.com/iamkun/dayjs/commit/638fd394fc24f4188390faf387da6b156e7c6320)) + +## [1.8.35](https://github.com/iamkun/dayjs/compare/v1.8.34...v1.8.35) (2020-09-02) + + +### Bug Fixes + +* Fix BadMutable plugin bug in .diff ([#1023](https://github.com/iamkun/dayjs/issues/1023)) ([40ab6d9](https://github.com/iamkun/dayjs/commit/40ab6d9a53e8047cfca63c611c25dd045372d021)) +* fix LocaleData plugin to support instance.weekdays() API ([#1019](https://github.com/iamkun/dayjs/issues/1019)) ([a09d259](https://github.com/iamkun/dayjs/commit/a09d259a407b81d1cb6bb5623fad551c775d8674)), closes [#1017](https://github.com/iamkun/dayjs/issues/1017) +* Update Dutch (nl) locale to set correct yearStart ([1533a2c](https://github.com/iamkun/dayjs/commit/1533a2cc1475270032da2d87b19fc3d62327e6e3)) + +## [1.8.34](https://github.com/iamkun/dayjs/compare/v1.8.33...v1.8.34) (2020-08-20) + + +### Bug Fixes + +* Fix Timezone plugin to preserve milliseconds while changing timezone ([#1003](https://github.com/iamkun/dayjs/issues/1003)) ([5f446ed](https://github.com/iamkun/dayjs/commit/5f446eda770fa97e895c81a8195b3ba5d082cef0)), closes [#1002](https://github.com/iamkun/dayjs/issues/1002) +* support parsing unlimited decimals of millisecond ([#1010](https://github.com/iamkun/dayjs/issues/1010)) ([d1bdd36](https://github.com/iamkun/dayjs/commit/d1bdd36a56e3d1786523a180e3fc18068f609135)), closes [#544](https://github.com/iamkun/dayjs/issues/544) +* update Duration plugin to support global locale ([#1008](https://github.com/iamkun/dayjs/issues/1008)) ([1c49c83](https://github.com/iamkun/dayjs/commit/1c49c83e79811eede13db6372b5d65db598aee77)), closes [#1007](https://github.com/iamkun/dayjs/issues/1007) + +## [1.8.33](https://github.com/iamkun/dayjs/compare/v1.8.32...v1.8.33) (2020-08-10) + + +### Bug Fixes + +* Add PluralGetSet plugin for plural getters/setters ([#996](https://github.com/iamkun/dayjs/issues/996)) ([f76e3ce](https://github.com/iamkun/dayjs/commit/f76e3ce2fbe5d3e9ed9121086baf55eb0cc4d355)) +* Add typescript type defs in esm build ([#985](https://github.com/iamkun/dayjs/issues/985)) ([50e3b3c](https://github.com/iamkun/dayjs/commit/50e3b3c6719cb0b4ec6eff394dacd63d5db8f253)) +* Fix isoWeek Plugin cal bug in UTC mode ([#993](https://github.com/iamkun/dayjs/issues/993)) ([f2e5f32](https://github.com/iamkun/dayjs/commit/f2e5f327aaf12b4572296ec6e107ecc05fcf76e7)) +* Fix Timezone plugin parsing js date, Day.js object, timestamp bug && update type file ([#994](https://github.com/iamkun/dayjs/issues/994)) ([22f3d49](https://github.com/iamkun/dayjs/commit/22f3d49405da98db6da56d1673eebcd01b57554b)), closes [#992](https://github.com/iamkun/dayjs/issues/992) [#989](https://github.com/iamkun/dayjs/issues/989) +* Fix Timezone plugin UTCOffset rounding bug ([#987](https://github.com/iamkun/dayjs/issues/987)) ([b07182b](https://github.com/iamkun/dayjs/commit/b07182bbdf5aef7f6bf1e88fcd38432e2b8ee465)), closes [#986](https://github.com/iamkun/dayjs/issues/986) +* Fix UTC plugin bug while comparing an utc instance to a local one ([#995](https://github.com/iamkun/dayjs/issues/995)) ([747c0fb](https://github.com/iamkun/dayjs/commit/747c0fb4eba6353755b5dad3417fd8d5a408c378)) +* Update pt-br locale weekStart 0 ([#984](https://github.com/iamkun/dayjs/issues/984)) ([0f881c1](https://github.com/iamkun/dayjs/commit/0f881c18efb02b9d0ba7f76cba92bb504226fa95)) + +## [1.8.32](https://github.com/iamkun/dayjs/compare/v1.8.31...v1.8.32) (2020-08-04) + + +### Bug Fixes + +* Add Experimental Timezone Plugin ([#974](https://github.com/iamkun/dayjs/issues/974)) ([e69caba](https://github.com/iamkun/dayjs/commit/e69caba1b0957241a855aa0ae38db899fa2c3795)) +* fix parse date string error e.g. '2020/9/30' ([#980](https://github.com/iamkun/dayjs/issues/980)) ([231790d](https://github.com/iamkun/dayjs/commit/231790da62af0494732960c2c50d86ae9bf63ec6)), closes [#979](https://github.com/iamkun/dayjs/issues/979) +* update monthDiff function to get more accurate results ([19e8a7f](https://github.com/iamkun/dayjs/commit/19e8a7f2f7582b717f49d446822e39603694433c)) +* Update UTC plugin to support keepLocalTime ([#973](https://github.com/iamkun/dayjs/issues/973)) ([9f488e5](https://github.com/iamkun/dayjs/commit/9f488e5aca92f0b4c2951459436829d79f86d8d7)) + +## [1.8.31](https://github.com/iamkun/dayjs/compare/v1.8.30...v1.8.31) (2020-07-29) + + +### Bug Fixes + +* Rollback LocalePresetType to string ([#968](https://github.com/iamkun/dayjs/issues/968)) ([b342bd3](https://github.com/iamkun/dayjs/commit/b342bd3d84987d6c7587a0c4590d614fb0e670d7)) +* Update Regex to parse 'YYYY' correctly ([#969](https://github.com/iamkun/dayjs/issues/969)) ([70c1239](https://github.com/iamkun/dayjs/commit/70c123990dcc6bd479fa2b5d7f9985127872a826)) + +## [1.8.30](https://github.com/iamkun/dayjs/compare/v1.8.29...v1.8.30) (2020-07-22) + + +### Bug Fixes + +* Add Haitian Creole (ht) and Spanish Puerto Rico (es-pr) locale configs ([#958](https://github.com/iamkun/dayjs/issues/958)) ([b2642e2](https://github.com/iamkun/dayjs/commit/b2642e2d1f87734a34808c66e5176cb18bc0414d)) +* Fix UTC plugin wrong hour bug while adding month or year ([#957](https://github.com/iamkun/dayjs/issues/957)) ([28ae070](https://github.com/iamkun/dayjs/commit/28ae070024ff26685c88ce4cc8747307e86923c9)) +* Update French (fr) locale to set correct yearStart ([14ab808](https://github.com/iamkun/dayjs/commit/14ab808a7b7e226f2eb2cbe894916a18ed5d967d)), closes [#956](https://github.com/iamkun/dayjs/issues/956) + +## [1.8.29](https://github.com/iamkun/dayjs/compare/v1.8.28...v1.8.29) (2020-07-02) + + +### Bug Fixes + +* Duration plugin supports parse ISO string with week (W) ([#950](https://github.com/iamkun/dayjs/issues/950)) ([f0fc12a](https://github.com/iamkun/dayjs/commit/f0fc12adadcab53fb0577ad8f5e2f1cf784fd8f5)) +* LocaleData plugin supports locale order ([#938](https://github.com/iamkun/dayjs/issues/938)) ([62f429d](https://github.com/iamkun/dayjs/commit/62f429db73a0a069b1267231dea172b85f4b90e3)), closes [#936](https://github.com/iamkun/dayjs/issues/936) +* Update type definition to support array format ([#945](https://github.com/iamkun/dayjs/issues/945)) ([81d4740](https://github.com/iamkun/dayjs/commit/81d4740511d47e34f891b21afeb0449ef8a28688)), closes [#944](https://github.com/iamkun/dayjs/issues/944) +* Update type definition to support strict mode ([#951](https://github.com/iamkun/dayjs/issues/951)) ([8d54f3f](https://github.com/iamkun/dayjs/commit/8d54f3f7d4d161e72c767fa09699e70a2b3d681c)) + +## [1.8.28](https://github.com/iamkun/dayjs/compare/v1.8.27...v1.8.28) (2020-05-28) + + +### Bug Fixes + +* Fix CustomParseFormat plugin month index error ([#918](https://github.com/iamkun/dayjs/issues/918)) ([fa2ec7f](https://github.com/iamkun/dayjs/commit/fa2ec7fcb980dcd2c7498dafe2f9ca2e52d735cf)), closes [#915](https://github.com/iamkun/dayjs/issues/915) +* Update Ukrainian (uk) locale monthFormat and monthStandalone ([#899](https://github.com/iamkun/dayjs/issues/899)) ([a08756e](https://github.com/iamkun/dayjs/commit/a08756e80bd1d7126fca28c5ad9e382613fc86c4)) + +## [1.8.27](https://github.com/iamkun/dayjs/compare/v1.8.26...v1.8.27) (2020-05-14) + + +### Bug Fixes + +* Add Kinyarwanda (rw) locale ([#903](https://github.com/iamkun/dayjs/issues/903)) ([f355235](https://github.com/iamkun/dayjs/commit/f355235a836540d77880959fb1b614c87e9f7b3e)) +* Add plugin objectSupport ([#887](https://github.com/iamkun/dayjs/issues/887)) ([52dfb13](https://github.com/iamkun/dayjs/commit/52dfb13a6b84f0a753cc5761192b92416f440961)) +* Add Turkmen (tk) locale ([#893](https://github.com/iamkun/dayjs/issues/893)) ([a9ca8dc](https://github.com/iamkun/dayjs/commit/a9ca8dcbbd0964c5b9abb4e8a2d620c983cf091a)) +* Fix CustomParseFormat plugin set locale error ([#896](https://github.com/iamkun/dayjs/issues/896)) ([8035c8a](https://github.com/iamkun/dayjs/commit/8035c8a760549b631252252718db3cdc4ab2f68f)) +* Fix locale month function bug ([#908](https://github.com/iamkun/dayjs/issues/908)) ([bf347c3](https://github.com/iamkun/dayjs/commit/bf347c36e401f50727fb5afcc537497b54b90d6b)) +* Update CustomParseFormat plugin to support Array formats ([#906](https://github.com/iamkun/dayjs/issues/906)) ([97856c6](https://github.com/iamkun/dayjs/commit/97856c603ef5fbbeb1cf8a42387479e56a77dbe8)) + +## [1.8.26](https://github.com/iamkun/dayjs/compare/v1.8.25...v1.8.26) (2020-04-30) + + +### Bug Fixes + +* Fix Duration plugin `.toISOString` format bug ([#889](https://github.com/iamkun/dayjs/issues/889)) ([058d624](https://github.com/iamkun/dayjs/commit/058d624808fd2be024ae846bcb2e03885f39b556)), closes [#888](https://github.com/iamkun/dayjs/issues/888) +* Fix WeekOfYear plugin bug while using BadMutable plugin ([#884](https://github.com/iamkun/dayjs/issues/884)) ([2977438](https://github.com/iamkun/dayjs/commit/2977438458542573a4500e21f7ba5d1f8442960e)) +* Update CustomParseFormat plugin strict mode ([#882](https://github.com/iamkun/dayjs/issues/882)) ([db642ac](https://github.com/iamkun/dayjs/commit/db642ac73e52e00d8c41546b2935c9e691cf66e0)) +* Update RelativeTime plugin default config ([#883](https://github.com/iamkun/dayjs/issues/883)) ([0606f42](https://github.com/iamkun/dayjs/commit/0606f425aef8ccbfc3da3e43cba368130603b0cc)) + +## [1.8.25](https://github.com/iamkun/dayjs/compare/v1.8.24...v1.8.25) (2020-04-21) + + +### Bug Fixes + +* Fix CustomParseFormat plugin of parsing only YYYY / YYYY-MM bug ([#873](https://github.com/iamkun/dayjs/issues/873)) ([3cea04d](https://github.com/iamkun/dayjs/commit/3cea04d33d54d44bbdd3d026b5c7f67ebf176116)), closes [#849](https://github.com/iamkun/dayjs/issues/849) +* Fix Duration plugin get seconds ([#867](https://github.com/iamkun/dayjs/issues/867)) ([62b092d](https://github.com/iamkun/dayjs/commit/62b092d9f9a3db5506ef01f798bdf211f163f53f)) +* Fix type definition of locale ([9790b85](https://github.com/iamkun/dayjs/commit/9790b853e6113243a7f4a81dd12c6509e406a102)) +* Fix UTC plugin startOf, endOf bug ([#872](https://github.com/iamkun/dayjs/issues/872)) ([4141084](https://github.com/iamkun/dayjs/commit/4141084ba96d35cadcda3f1e661bf1d0f6c8e4de)), closes [#809](https://github.com/iamkun/dayjs/issues/809) [#808](https://github.com/iamkun/dayjs/issues/808) + +## [1.8.24](https://github.com/iamkun/dayjs/compare/v1.8.23...v1.8.24) (2020-04-10) + + +### Bug Fixes + +* Add config option to RelativeTime plugin ([#851](https://github.com/iamkun/dayjs/issues/851)) ([bd24034](https://github.com/iamkun/dayjs/commit/bd24034b95bfc656024b75ef3f3c986708845fed)) +* add Duration plugin ([#858](https://github.com/iamkun/dayjs/issues/858)) ([d568273](https://github.com/iamkun/dayjs/commit/d568273223199ca0497f238e2cc3a8d3dcf32d0f)) +* Add en-in, en-tt locales ([#855](https://github.com/iamkun/dayjs/issues/855)) ([c39fb96](https://github.com/iamkun/dayjs/commit/c39fb96e2a9102c14b004c14a6c073af9d266f2f)) +* add isToday, isTomorrow, isYesterday plugins ([#857](https://github.com/iamkun/dayjs/issues/857)) ([fc08ab6](https://github.com/iamkun/dayjs/commit/fc08ab68f8a28269802deeab9d6b0473b92cdc51)) +* Add option callback to Calendar plugin ([#839](https://github.com/iamkun/dayjs/issues/839)) ([b25be90](https://github.com/iamkun/dayjs/commit/b25be9094325295310c8fc5e617fb058be8a5f68)) +* Fix monthsShort for locale fr ([#862](https://github.com/iamkun/dayjs/issues/862)) ([d2de9a0](https://github.com/iamkun/dayjs/commit/d2de9a0b44b830038ed0094f79bfd40726311f2a)) +* Update Breton locale (br) meridiem config ([#856](https://github.com/iamkun/dayjs/issues/856)) ([a2a6672](https://github.com/iamkun/dayjs/commit/a2a66720abb788a8f1cffbfd0929b35579f29c72)) +* Update Ukrainian (uk) locale relative time ([#842](https://github.com/iamkun/dayjs/issues/842)) ([578bc1a](https://github.com/iamkun/dayjs/commit/578bc1a23c6e737783bbac3da12c0ed5d1edcf82)) + +## [1.8.23](https://github.com/iamkun/dayjs/compare/v1.8.22...v1.8.23) (2020-03-16) + + +### Bug Fixes + +* Add Chinese (zh) locale ([f9b8945](https://github.com/iamkun/dayjs/commit/f9b89453166d8b53d33b1d7eefd9942022552e6e)) +* Fix IsoWeek plugin typescript definition ([#828](https://github.com/iamkun/dayjs/issues/828)) ([30aab0c](https://github.com/iamkun/dayjs/commit/30aab0c7bce85dfac0ae208a891def30f88b5cb4)) +* Update Arabic (ar) locale relative time ([#836](https://github.com/iamkun/dayjs/issues/836)) ([14044c6](https://github.com/iamkun/dayjs/commit/14044c6fda1229e3f0e5473d3f886bd79589b15f)) +* Update Slovak (sk) locale, Czech (cs) locale ([#833](https://github.com/iamkun/dayjs/issues/833)) ([f0d451f](https://github.com/iamkun/dayjs/commit/f0d451f795e9ebf752cd854d51b25b11de2343a3)) +* Update Thai (th) locale relativeTime ([#826](https://github.com/iamkun/dayjs/issues/826)) ([63b7c03](https://github.com/iamkun/dayjs/commit/63b7c03a6dbb0507d60776e8bad6cccde3828b88)), closes [#816](https://github.com/iamkun/dayjs/issues/816) + +## [1.8.22](https://github.com/iamkun/dayjs/compare/v1.8.21...v1.8.22) (2020-03-08) + + +### Bug Fixes + +* Add IsoWeek plugin ([#811](https://github.com/iamkun/dayjs/issues/811)) ([28a2207](https://github.com/iamkun/dayjs/commit/28a2207ef9849afbac15dd29267b2e7a09cd3c16)) +* Fix unsupported locale fallback to previous one ([#819](https://github.com/iamkun/dayjs/issues/819)) ([4868715](https://github.com/iamkun/dayjs/commit/48687152cf5bee6a4c1b8ceea4bda8b9bab9be10)) + +## [1.8.21](https://github.com/iamkun/dayjs/compare/v1.8.20...v1.8.21) (2020-02-26) + + +### Bug Fixes + +* Set + Get accept 'D' as the short version of 'date' ([#795](https://github.com/iamkun/dayjs/issues/795)) ([523c038](https://github.com/iamkun/dayjs/commit/523c03880fa8bbad83214494ad02cd606cdb8b30)) +* Update DayOfYear plugin type ([#799](https://github.com/iamkun/dayjs/issues/799)) ([5809652](https://github.com/iamkun/dayjs/commit/5809652e40245b7759827d9bf317abdcfa75a330)) +* Update fi (Finnish) locale relativeTime ([#797](https://github.com/iamkun/dayjs/issues/797)) ([4a470fb](https://github.com/iamkun/dayjs/commit/4a470fbd6fef9e051727d0f26d53cc050b85935d)) + +## [1.8.20](https://github.com/iamkun/dayjs/compare/v1.8.19...v1.8.20) (2020-02-04) + + +### Bug Fixes + +* Add Bislama Locale (bi) ([#780](https://github.com/iamkun/dayjs/issues/780)) ([9ac6ab4](https://github.com/iamkun/dayjs/commit/9ac6ab481bc883dd4ecc02caab12c8b2fc218a42)) +* Fix weekOfYear plugin to support yearStart locale for better week number result ([#769](https://github.com/iamkun/dayjs/issues/769)) ([f00db36](https://github.com/iamkun/dayjs/commit/f00db36e70bc7beaca1abadeb30a9b1fbb3261ee)) +* Update et (Estonian) locale relativeTime ([#790](https://github.com/iamkun/dayjs/issues/790)) ([d8e0f45](https://github.com/iamkun/dayjs/commit/d8e0f45f6cd2d5e5704b9797929227454c92d1a5)) +* Update LocaleData plugin to support dayjs.localeData().weekdays() API ([287fed6](https://github.com/iamkun/dayjs/commit/287fed6db9eb4fd979b4861aca4dacbd32422533)), closes [#779](https://github.com/iamkun/dayjs/issues/779) +* Update LocaleData plugin to support dayjs.months dayjs.weekdays API ([144c2ae](https://github.com/iamkun/dayjs/commit/144c2ae6e15fbf89e3acd7c8cb9e237c5f6e1348)), closes [#779](https://github.com/iamkun/dayjs/issues/779) +* Update pl locale fusional config ([d372475](https://github.com/iamkun/dayjs/commit/d3724758bb27d5b17587b995ba14e7e80dcd1151)) + +## [1.8.19](https://github.com/iamkun/dayjs/compare/v1.8.18...v1.8.19) (2020-01-06) + + +### Bug Fixes + +* Add UpdateLocale plugin to update a locale's properties ([#766](https://github.com/iamkun/dayjs/issues/766)) ([82ce2ba](https://github.com/iamkun/dayjs/commit/82ce2ba8d7e402e40f6d005d400eb5356a0b0633)) +* Fix CustomParseFormat Plugin 'YYYY-MM' use first day of the month ([ba709ec](https://github.com/iamkun/dayjs/commit/ba709eca86a71ae648bc68bf67d9abdc229198d4)), closes [#761](https://github.com/iamkun/dayjs/issues/761) +* Fix CustomParseFormat Plugin to set correct locale ([66ce23f](https://github.com/iamkun/dayjs/commit/66ce23f2e18c5506e8f1a7ef20d3483a4df80087)) +* Fix WeekOfYear Plugin wrong calender week number bug ([79b86db](https://github.com/iamkun/dayjs/commit/79b86dbbf3cfd3f1e2165b3d479a7061ad1b6925)), closes [#760](https://github.com/iamkun/dayjs/issues/760) +* Update RelativeTime plugin to support function to make additional processing ([#767](https://github.com/iamkun/dayjs/issues/767)) ([4bd9250](https://github.com/iamkun/dayjs/commit/4bd9250fbe7131e2fddfb5fa1b3350e8c2262ca9)) +* Update ru, uk, cs locale to support relativeTime with plural ([3f080f7](https://github.com/iamkun/dayjs/commit/3f080f7d6bfdc4018cbb7c4d0112ff1ead4ef6b8)) + +## [1.8.18](https://github.com/iamkun/dayjs/compare/v1.8.17...v1.8.18) (2019-12-18) + + +### Bug Fixes + +* Add missing locale type definition ([#716](https://github.com/iamkun/dayjs/issues/716)) ([cde5d0b](https://github.com/iamkun/dayjs/commit/cde5d0b91be7b2f5f3098de4aa0b9a4f0f28ea5c)) +* Fix .locale() handel unsupported locale ([78ec173](https://github.com/iamkun/dayjs/commit/78ec173fcecc1299516ab7b44f4554d431b4b2fd)) +* Update Italian locale (it) ([#727](https://github.com/iamkun/dayjs/issues/727)) ([5b53e98](https://github.com/iamkun/dayjs/commit/5b53e98c0a3ba0eb9573a9c77caeb907439be9e7)) +* Update locale (fa) ([#733](https://github.com/iamkun/dayjs/issues/733)) ([9ad2e47](https://github.com/iamkun/dayjs/commit/9ad2e47e0569b23991bb0d5578f49c792c12df08)) +* Update locale (zh-cn) ([#706](https://github.com/iamkun/dayjs/issues/706)) ([e31e544](https://github.com/iamkun/dayjs/commit/e31e54414fb90e1f54da13a117748ba37f52645d)) +* Update locale (zh-cn) meridiem ([#735](https://github.com/iamkun/dayjs/issues/735)) ([15d1b81](https://github.com/iamkun/dayjs/commit/15d1b813e7faf5a1f9d1ea6fc673fd27ac49d8b1)) +* Update LocaleData plugin to support dayjs().longDateFormat() ([#734](https://github.com/iamkun/dayjs/issues/734)) ([aa0f210](https://github.com/iamkun/dayjs/commit/aa0f210a1e3c4f6aba61c3b96f9eb445b43a33f0)), closes [#680](https://github.com/iamkun/dayjs/issues/680) +* Update Mongolian (mn) locale relativeTime ([#753](https://github.com/iamkun/dayjs/issues/753)) ([6d51435](https://github.com/iamkun/dayjs/commit/6d51435092c0c94d8e50256d3f0f058cdd15febe)) +* Update Swedish locale (sv) fix ordinal error ([#745](https://github.com/iamkun/dayjs/issues/745)) ([49670d5](https://github.com/iamkun/dayjs/commit/49670d5ae31e4e21636cc5a8bfe35fef0f6d9e4a)), closes [#743](https://github.com/iamkun/dayjs/issues/743) + +## [1.8.17](https://github.com/iamkun/dayjs/compare/v1.8.16...v1.8.17) (2019-11-06) + + +### Bug Fixes + +* Fix set utcOffset in utc mode ([d148115](https://github.com/iamkun/dayjs/commit/d148115dad8f1a5afc0a64e9b8163dfeba4616b6)) +* Update advancedFormat plugin to support w ww wo week tokens … ([#678](https://github.com/iamkun/dayjs/issues/678)) ([26cfa63](https://github.com/iamkun/dayjs/commit/26cfa63a524b803f7966dac5464f9cbf8f63387e)), closes [#676](https://github.com/iamkun/dayjs/issues/676) +* Update ka locale weekdays ([f8ca3d4](https://github.com/iamkun/dayjs/commit/f8ca3d4ba1d3cbe41613d3909c0627935a51a0c4)) +* Update nb locale ([#679](https://github.com/iamkun/dayjs/issues/679)) ([1063b0e](https://github.com/iamkun/dayjs/commit/1063b0e1b5c19a1354d233cc0f21438e7073233a)) +* Update Polish locale (pl)([#713](https://github.com/iamkun/dayjs/issues/713)) ([30d2f02](https://github.com/iamkun/dayjs/commit/30d2f026b47188833a4f44fee4bab52467d4a718)) +* Update Ukrainian locale (uk) ([#710](https://github.com/iamkun/dayjs/issues/710)) ([360161c](https://github.com/iamkun/dayjs/commit/360161cac75f597fdd51d9d1ff138601282a1b4b)) +* UTC plugin set utcOffset value ([#668](https://github.com/iamkun/dayjs/issues/668)) ([8877883](https://github.com/iamkun/dayjs/commit/88778838e71dd309e79cd1a8094d5bea36ca3390)) + +## [1.8.16](https://github.com/iamkun/dayjs/compare/v1.8.15...v1.8.16) (2019-08-27) + + +### Bug Fixes + +* Fix relativeTime Plugin .FromNow() result error in UTC mode ([a385d5c](https://github.com/iamkun/dayjs/commit/a385d5c)) +* Handle locale in WeekOfYear plugin ([#658](https://github.com/iamkun/dayjs/issues/658)) ([0e45b0a](https://github.com/iamkun/dayjs/commit/0e45b0a)) +* LocaleData plugin returns all months and weekdays data when pas no argument ([#645](https://github.com/iamkun/dayjs/issues/645)) ([95e70b4](https://github.com/iamkun/dayjs/commit/95e70b4)) +* Return null in toJSON if not valid ([#633](https://github.com/iamkun/dayjs/issues/633)) ([19affc8](https://github.com/iamkun/dayjs/commit/19affc8)) +* Update Danish (da) locale ([#626](https://github.com/iamkun/dayjs/issues/626)) ([ac2ec77](https://github.com/iamkun/dayjs/commit/ac2ec77)) +* Update Korean locale meridiem ([#642](https://github.com/iamkun/dayjs/issues/642)) ([b457146](https://github.com/iamkun/dayjs/commit/b457146)) +* update Occitan locale Catalan locale ([#630](https://github.com/iamkun/dayjs/issues/630)) ([fef135e](https://github.com/iamkun/dayjs/commit/fef135e)) +* update pt-br locale ([#628](https://github.com/iamkun/dayjs/issues/628)) ([ccf596d](https://github.com/iamkun/dayjs/commit/ccf596d)) +* Update weekdaysShort to some locale files ([#643](https://github.com/iamkun/dayjs/issues/643)) ([cc1f15f](https://github.com/iamkun/dayjs/commit/cc1f15f)) + +## [1.8.15](https://github.com/iamkun/dayjs/compare/v1.8.14...v1.8.15) (2019-07-08) + + +### Bug Fixes + +* Fix dayjs.locale() returns current global locale ([#602](https://github.com/iamkun/dayjs/issues/602)) ([790cd1a](https://github.com/iamkun/dayjs/commit/790cd1a)) +* Fix incorrect Thai locale translation of July ([#607](https://github.com/iamkun/dayjs/issues/607)) ([43cbfd3](https://github.com/iamkun/dayjs/commit/43cbfd3)) +* Lowercase french locale months and weekdays ([#615](https://github.com/iamkun/dayjs/issues/615)) ([e5a257c](https://github.com/iamkun/dayjs/commit/e5a257c)) +* Type - Export Ls object to query all available locales ([#623](https://github.com/iamkun/dayjs/issues/623)) ([f6bfae0](https://github.com/iamkun/dayjs/commit/f6bfae0)) +* Update nb (Norsk Bokmål) locale ([#604](https://github.com/iamkun/dayjs/issues/604)) ([907f5c9](https://github.com/iamkun/dayjs/commit/907f5c9)) +* Update types of `.diff` API ([#617](https://github.com/iamkun/dayjs/issues/617)) ([f0f43d2](https://github.com/iamkun/dayjs/commit/f0f43d2)) + +## [1.8.14](https://github.com/iamkun/dayjs/compare/v1.8.13...v1.8.14) (2019-05-07) + + +### Bug Fixes + +* Fix `.format` API returns UTC offset when value is 0 bug ([b254964](https://github.com/iamkun/dayjs/commit/b254964)) +* Fix QuarterOfYear plugin bug ([#591](https://github.com/iamkun/dayjs/issues/591)) ([434f774](https://github.com/iamkun/dayjs/commit/434f774)) +* Fix UTC plugin add day DST bug ([#590](https://github.com/iamkun/dayjs/issues/590)) ([86cd839](https://github.com/iamkun/dayjs/commit/86cd839)) + +## [1.8.13](https://github.com/iamkun/dayjs/compare/v1.8.12...v1.8.13) (2019-04-26) + + +### Bug Fixes + +* Add missing relativeTime and formats for some locales ([#560](https://github.com/iamkun/dayjs/issues/560)) ([96b917e](https://github.com/iamkun/dayjs/commit/96b917e)) +* Add weekday (locale aware day of the week) plugin ([#569](https://github.com/iamkun/dayjs/issues/569)) ([9007cc5](https://github.com/iamkun/dayjs/commit/9007cc5)), closes [#559](https://github.com/iamkun/dayjs/issues/559) +* Allow customizing "am" / "pm" strings with locale meridiem function ([#580](https://github.com/iamkun/dayjs/issues/580)) ([576e93e](https://github.com/iamkun/dayjs/commit/576e93e)), closes [#578](https://github.com/iamkun/dayjs/issues/578) +* Fix `.add` day/week decimal rouding bug ([800f6c9](https://github.com/iamkun/dayjs/commit/800f6c9)) +* Fix `.diff` type definition error ([#565](https://github.com/iamkun/dayjs/issues/565)) ([c4921ae](https://github.com/iamkun/dayjs/commit/c4921ae)), closes [#561](https://github.com/iamkun/dayjs/issues/561) +* Fix CustomParseFormat plugin bug ([#568](https://github.com/iamkun/dayjs/issues/568)) ([1f5a9db](https://github.com/iamkun/dayjs/commit/1f5a9db)), closes [#555](https://github.com/iamkun/dayjs/issues/555) +* Fix relativeTime plugin Math.round bug ([40bea40](https://github.com/iamkun/dayjs/commit/40bea40)) +* skip square brackets in buddhistEra, advancedFormat plugins ([#556](https://github.com/iamkun/dayjs/issues/556)) ([9279718](https://github.com/iamkun/dayjs/commit/9279718)), closes [#554](https://github.com/iamkun/dayjs/issues/554) +* Update Indonesian locale([#574](https://github.com/iamkun/dayjs/issues/574)) ([0aa7143](https://github.com/iamkun/dayjs/commit/0aa7143)) +* Update locale month to support both array and function ([#581](https://github.com/iamkun/dayjs/issues/581)) ([b6599d3](https://github.com/iamkun/dayjs/commit/b6599d3)) +* Update LocalizedFormat plugin lowercase formats logic ([#557](https://github.com/iamkun/dayjs/issues/557)) ([d409304](https://github.com/iamkun/dayjs/commit/d409304)) + +## [1.8.12](https://github.com/iamkun/dayjs/compare/v1.8.11...v1.8.12) (2019-04-02) + + +### Bug Fixes + +* Add .get API ([7318797](https://github.com/iamkun/dayjs/commit/7318797)) +* Add 79 locales ([#541](https://github.com/iamkun/dayjs/issues/541)) ([f75a125](https://github.com/iamkun/dayjs/commit/f75a125)) +* Add Calendar plugin ([d1b9cf9](https://github.com/iamkun/dayjs/commit/d1b9cf9)) +* Add isoWeeksInYear plugin ([2db8631](https://github.com/iamkun/dayjs/commit/2db8631)) +* Add Occitan (oc-lnc) locale file ([#551](https://github.com/iamkun/dayjs/issues/551)) ([c30b715](https://github.com/iamkun/dayjs/commit/c30b715)) +* Add plugin minMax to sopport .max .min ([2870a23](https://github.com/iamkun/dayjs/commit/2870a23)) +* Fix set Month Year error in last day of the month ([d058f4a](https://github.com/iamkun/dayjs/commit/d058f4a)) +* Update ko locale weekdaysShort ([#543](https://github.com/iamkun/dayjs/issues/543)) ([317fd3e](https://github.com/iamkun/dayjs/commit/317fd3e)) +* Update localizedFormat plugin to support lowercase localizable formats (l, ll, lll, llll) ([#546](https://github.com/iamkun/dayjs/issues/546)) ([f2b5ebf](https://github.com/iamkun/dayjs/commit/f2b5ebf)) + +## [1.8.11](https://github.com/iamkun/dayjs/compare/v1.8.10...v1.8.11) (2019-03-21) + + +### Bug Fixes + +* Add .add('quarter') .startOf('quarter') through plugin quarterOfYear ([dde39e9](https://github.com/iamkun/dayjs/commit/dde39e9)), closes [#537](https://github.com/iamkun/dayjs/issues/537) [#531](https://github.com/iamkun/dayjs/issues/531) +* Add locale support for Azerbaijani language (az) ([#535](https://github.com/iamkun/dayjs/issues/535)) ([eeb20fa](https://github.com/iamkun/dayjs/commit/eeb20fa)) +* Correct typescript definition `add` ([22a249c](https://github.com/iamkun/dayjs/commit/22a249c)), closes [#531](https://github.com/iamkun/dayjs/issues/531) +* Fix CustomParseFormat plugin formatting bug ([#536](https://github.com/iamkun/dayjs/issues/536)) ([8578546](https://github.com/iamkun/dayjs/commit/8578546)), closes [#533](https://github.com/iamkun/dayjs/issues/533) +* Update pt locale ([#538](https://github.com/iamkun/dayjs/issues/538)) ([1ac9e1e](https://github.com/iamkun/dayjs/commit/1ac9e1e)) + +## [1.8.10](https://github.com/iamkun/dayjs/compare/v1.8.9...v1.8.10) (2019-03-10) + + +### Bug Fixes + +* **locale:** Add nepali (ne) locale ([#524](https://github.com/iamkun/dayjs/issues/524)) ([bdbec01](https://github.com/iamkun/dayjs/commit/bdbec01)) +* Add WeekYear plugin ([a892608](https://github.com/iamkun/dayjs/commit/a892608)) +* API .locale() with no argument should return current locale name string ([8d63d88](https://github.com/iamkun/dayjs/commit/8d63d88)) +* CustomParseFormat correct parse HH:mm:ss with only one digit like 0:12:10 ([600d547](https://github.com/iamkun/dayjs/commit/600d547)) +* CustomParseFormat plugin parse Do format string ([bf27fda](https://github.com/iamkun/dayjs/commit/bf27fda)), closes [#522](https://github.com/iamkun/dayjs/issues/522) +* Expand setters like .year(2000) .hour(12) ([ac532a0](https://github.com/iamkun/dayjs/commit/ac532a0)) +* Move toObject, toArray API to separate plugin from core ([40a3431](https://github.com/iamkun/dayjs/commit/40a3431)) + +## [1.8.9](https://github.com/iamkun/dayjs/compare/v1.8.8...v1.8.9) (2019-03-06) + + +### Features + +* Add UTC mode with UTC plugin ([#517](https://github.com/iamkun/dayjs/issues/517)) ([caf335c](https://github.com/iamkun/dayjs/commit/caf335c)) + +> For plugin developers: Please note, we have changed the name of some method in `Utils` in order to reduce the file size. ([#517](https://github.com/iamkun/dayjs/issues/517)) ([detail](https://github.com/iamkun/dayjs/pull/517/files#diff-2b4ca49d4bb0a774c4d4c1672d7aa781R46)) + +### Bug Fixes + +* Add locale de-AT ([#515](https://github.com/iamkun/dayjs/issues/515)) ([d93f7b6](https://github.com/iamkun/dayjs/commit/d93f7b6)) +* Add locale zh-hk ([#516](https://github.com/iamkun/dayjs/issues/516)) ([5fc05a6](https://github.com/iamkun/dayjs/commit/5fc05a6)) + +## [1.8.8](https://github.com/iamkun/dayjs/compare/v1.8.7...v1.8.8) (2019-02-25) + + +### Bug Fixes + +* Update relativeTime plugin type definition ([de56f2c](https://github.com/iamkun/dayjs/commit/de56f2c)) + +## [1.8.7](https://github.com/iamkun/dayjs/compare/v1.8.6...v1.8.7) (2019-02-24) + + +### Bug Fixes + +* Add plugin type definitions ([#418](https://github.com/iamkun/dayjs/issues/418)) ([361d437](https://github.com/iamkun/dayjs/commit/361d437)) +* Add Swahili locale ([#508](https://github.com/iamkun/dayjs/issues/508)) ([b9cee84](https://github.com/iamkun/dayjs/commit/b9cee84)) +* Parse month string 'MMMM MMM (February, Feb)' in customParseFormat ([#457](https://github.com/iamkun/dayjs/issues/457)) ([f343206](https://github.com/iamkun/dayjs/commit/f343206)) +* Update declaration file .diff .isBefore .isSame .isAfter ([#496](https://github.com/iamkun/dayjs/issues/496)) ([4523275](https://github.com/iamkun/dayjs/commit/4523275)) +* Word orders corrections for locale 'fa' ([#491](https://github.com/iamkun/dayjs/issues/491)) ([56050c2](https://github.com/iamkun/dayjs/commit/56050c2)) + +## [1.8.6](https://github.com/iamkun/dayjs/compare/v1.8.5...v1.8.6) (2019-02-14) + + +### Bug Fixes + +* Add Bahasa Melayu (Malaysia) locale ([#485](https://github.com/iamkun/dayjs/issues/485)) ([cb208b0](https://github.com/iamkun/dayjs/commit/cb208b0)) +* Copy & export built-in en locale to /locale folder as a separate file ([a7e05e0](https://github.com/iamkun/dayjs/commit/a7e05e0)) +* Fix bug in customParseFormat plugin while month(MM) is '01' ([9884ca5](https://github.com/iamkun/dayjs/commit/9884ca5)), closes [#494](https://github.com/iamkun/dayjs/issues/494) +* Fix startOf week bug while week start is not Sunday ([5eaf77b](https://github.com/iamkun/dayjs/commit/5eaf77b)) +* Implemented isBetween inclusivity ([#464](https://github.com/iamkun/dayjs/issues/464)) ([af2f4f1](https://github.com/iamkun/dayjs/commit/af2f4f1)) +* Update Swedish and Finnish locales ([#488](https://github.com/iamkun/dayjs/issues/488)) ([f142082](https://github.com/iamkun/dayjs/commit/f142082)) +* Fix commonJS require ES Module bug in webpack4 ([23f9f3d](https://github.com/iamkun/dayjs/commit/23f9f3d)), check [#492](https://github.com/iamkun/dayjs/issues/492) + +> Get access to ESM code with `import dayjs from 'dayjs/esm'` + +## [1.8.5](https://github.com/iamkun/dayjs/compare/v1.8.4...v1.8.5) (2019-02-07) + + +### Bug Fixes + +* Add en-gb locale ([#478](https://github.com/iamkun/dayjs/issues/478)) ([508c3a7](https://github.com/iamkun/dayjs/commit/508c3a7)) +* **module:** transpile everything except ES6 modules in the 'module' entrypoint ([#477](https://github.com/iamkun/dayjs/issues/477)) ([#480](https://github.com/iamkun/dayjs/issues/480)) ([#482](https://github.com/iamkun/dayjs/issues/482)) ([767017d](https://github.com/iamkun/dayjs/commit/767017d)) +* update customParseFormat plugin support hh:mm ([54947cc](https://github.com/iamkun/dayjs/commit/54947cc)), closes [#484](https://github.com/iamkun/dayjs/issues/484) +* Update module in package.json ([5c5a7a0](https://github.com/iamkun/dayjs/commit/5c5a7a0)) + +## [1.8.4](https://github.com/iamkun/dayjs/compare/v1.8.3...v1.8.4) (2019-02-05) + +* Allow set start day of week in locale && Allow set week in weekOfYear plugin ([1295591](https://github.com/iamkun/dayjs/commit/1295591)) +### Bug Fixes +* update all locale files with correct week start ([5b03412](https://github.com/iamkun/dayjs/commit/5b03412)) +* update es es-do locale adding weekStart && update weekStart test ([66e42ec](https://github.com/iamkun/dayjs/commit/66e42ec)) +* Revert default export ([b00da1b](https://github.com/iamkun/dayjs/commit/b00da1b)) + +## [1.8.3](https://github.com/iamkun/dayjs/compare/v1.8.2...v1.8.3) (2019-02-04) + + +### Bug Fixes + +* fix ios safari YYYY-MM-DD HH:mm parse BUG ([e02ae82](https://github.com/iamkun/dayjs/commit/e02ae82)), closes [#254](https://github.com/iamkun/dayjs/issues/254) + +## [1.8.2](https://github.com/iamkun/dayjs/compare/v1.8.1...v1.8.2) (2019-02-02) + + +### Bug Fixes + +* Add missing czech language locale ([#461](https://github.com/iamkun/dayjs/issues/461)) ([7e04004](https://github.com/iamkun/dayjs/commit/7e04004)) +* Add utcOffset api method and fix calculating diff error in DST ([#453](https://github.com/iamkun/dayjs/issues/453)) ([ce2e30e](https://github.com/iamkun/dayjs/commit/ce2e30e)) +* Fix it locale error ([#458](https://github.com/iamkun/dayjs/issues/458)) ([f6d9a64](https://github.com/iamkun/dayjs/commit/f6d9a64)) +* Add DayOfYear plugin (#454) +* Fix es locale monthsShort error + +## [1.8.1](https://github.com/iamkun/dayjs/compare/v1.8.0...v1.8.1) (2019-02-02) + +* Add LocalizedFormat plugin supplying format like LTS, LT, LLLL + +* update declaration File with default export (#278) +> From v1.8.1, in TypeScript Project, just `import from dayjs from 'dayjs'` +* add ES2015 module support (#451) + +### Performance Improvements + +* **format:** reuse matches instead of created when replacing ([#441](https://github.com/iamkun/dayjs/issues/441)) ([10b79d8](https://github.com/iamkun/dayjs/commit/10b79d8)) + +# [1.8.0](https://github.com/iamkun/dayjs/compare/v1.7.8...v1.8.0) (2019-01-14) + + +### Features + +* add CustomParseFormat plugin and QuarterOfYear plugin ([#450](https://github.com/iamkun/dayjs/issues/450)) ([8f6f63c](https://github.com/iamkun/dayjs/commit/8f6f63c)) + +## [1.7.8](https://github.com/iamkun/dayjs/compare/v1.7.7...v1.7.8) (2018-12-13) + + +### Feature + +* update isSame isBefore isAfter supports units ([fd65464](https://github.com/iamkun/dayjs/commit/fd65464)) + +* add greek lithuanian locales + +## [1.7.7](https://github.com/iamkun/dayjs/compare/v1.7.6...v1.7.7) (2018-09-26) + + +### Bug Fixes + +* **DST:** fix daylight saving time DST bug && add test ([#354](https://github.com/iamkun/dayjs/issues/354)) ([6fca6d5](https://github.com/iamkun/dayjs/commit/6fca6d5)) + +## [1.7.6](https://github.com/iamkun/dayjs/compare/v1.7.5...v1.7.6) (2018-09-25) + + +### Bug Fixes + +* **add dayjs.unix:** add dayjs.unix to parse timestamp in seconds && locale update ([5711c5e](https://github.com/iamkun/dayjs/commit/5711c5e)) + +## [1.7.5](https://github.com/iamkun/dayjs/compare/v1.7.4...v1.7.5) (2018-08-10) + + +### Bug Fixes + +* add isBetween API & update ([b5fc3d1](https://github.com/iamkun/dayjs/commit/b5fc3d1)) + +## [1.7.4](https://github.com/iamkun/dayjs/compare/v1.7.3...v1.7.4) (2018-07-11) + + +### Bug Fixes + +* update set week logic ([60b6325](https://github.com/iamkun/dayjs/commit/60b6325)), closes [#276](https://github.com/iamkun/dayjs/issues/276) + +## [1.7.3](https://github.com/iamkun/dayjs/compare/v1.7.2...v1.7.3) (2018-07-10) + + +### Bug Fixes + +* **locale-nl:** set correct weekdays and months ([6d089d7](https://github.com/iamkun/dayjs/commit/6d089d7)) + +## [1.7.2](https://github.com/iamkun/dayjs/compare/v1.7.1...v1.7.2) (2018-07-04) + + +### Bug Fixes + +* DEPRECATED isLeapYear, use IsLeapYear plugin instead ([e2e5116](https://github.com/iamkun/dayjs/commit/e2e5116)) + +## [1.7.1](https://github.com/iamkun/dayjs/compare/v1.7.0...v1.7.1) (2018-07-03) + + +### Bug Fixes + +* fix week() error near the end of the year ([fa03689](https://github.com/iamkun/dayjs/commit/fa03689)) + +# [1.7.0](https://github.com/iamkun/dayjs/compare/v1.6.10...v1.7.0) (2018-07-02) + + +### Features + +* Added method `.week()` to retrieve week of the year ([e1c1b1c](https://github.com/iamkun/dayjs/commit/e1c1b1c)) +* Updated Japanese locae + +## [1.6.10](https://github.com/iamkun/dayjs/compare/v1.6.9...v1.6.10) (2018-06-25) + + +### Bug Fixes + +* Add relative locales to russian language ([c7e9898](https://github.com/iamkun/dayjs/commit/c7e9898)), closes [#256](https://github.com/iamkun/dayjs/issues/256) + +## [1.6.9](https://github.com/iamkun/dayjs/compare/v1.6.8...v1.6.9) (2018-06-14) + + +### Bug Fixes + +* add isDayjs => boolean API ([6227c8b](https://github.com/iamkun/dayjs/commit/6227c8b)) + +## [1.6.8](https://github.com/iamkun/dayjs/compare/v1.6.7...v1.6.8) (2018-06-14) + + +### Bug Fixes + +* fix Advanced format bug in zh-cn ([0c07874](https://github.com/iamkun/dayjs/commit/0c07874)), closes [#242](https://github.com/iamkun/dayjs/issues/242) + +## [1.6.7](https://github.com/iamkun/dayjs/compare/v1.6.6...v1.6.7) (2018-06-11) + + +### Bug Fixes + +* fix id locale ([1ebbeb8](https://github.com/iamkun/dayjs/commit/1ebbeb8)), closes [#234](https://github.com/iamkun/dayjs/issues/234) + + +## [1.6.6](https://github.com/iamkun/dayjs/compare/v1.6.5...v1.6.6) (2018-06-06) + + +### Bug Fixes + +* format API update and locale file update ([5ca48f0](https://github.com/iamkun/dayjs/commit/5ca48f0)), closes [#228](https://github.com/iamkun/dayjs/issues/228) + + +## [1.6.5](https://github.com/iamkun/dayjs/compare/v1.6.4...v1.6.5) (2018-05-31) + + +### Bug Fixes + +* bugfix, utils update and locale file update ([ebcb6d5](https://github.com/iamkun/dayjs/commit/ebcb6d5)), closes [#214](https://github.com/iamkun/dayjs/issues/214) + + +## [1.6.4](https://github.com/iamkun/dayjs/compare/v1.6.3...v1.6.4) (2018-05-25) + + +### Bug Fixes + +* add RelativeTime plugin and locale file update ([c1fbbca](https://github.com/iamkun/dayjs/commit/c1fbbca)), closes [#198](https://github.com/iamkun/dayjs/issues/198) + + +## [1.6.3](https://github.com/iamkun/dayjs/compare/v1.6.2...v1.6.3) (2018-05-21) + + +### Bug Fixes + +* Changing locales locally is immutable from this release ([2cce729](https://github.com/iamkun/dayjs/commit/2cce729)), closes [#182](https://github.com/iamkun/dayjs/issues/182) +* instance locale change should be immutable ([84597c9](https://github.com/iamkun/dayjs/commit/84597c9)) +* Add more locales +* english ordinal fix + + +## [1.6.2](https://github.com/iamkun/dayjs/compare/v1.6.1...v1.6.2) (2018-05-18) + + +### Bug Fixes + +* change-log update && test new npm release ([aa49cba](https://github.com/iamkun/dayjs/commit/aa49cba)), closes [#163](https://github.com/iamkun/dayjs/issues/163) + + +## [1.6.1](https://github.com/iamkun/dayjs/compare/v1.6.0...v1.6.1) (2018-05-18) + + +### Bug Fixes + +* Add German, Brazilian Portuguese locales +* add() & parse() bug fix & add locale de, pt-br ([bf1331e](https://github.com/iamkun/dayjs/commit/bf1331e)) + + +# [1.6.0](https://github.com/iamkun/dayjs/compare/v1.5.24...v1.6.0) (2018-05-15) + + +### Features + +* Locale && Plugin ([2342c55](https://github.com/iamkun/dayjs/commit/2342c55)), closes [#141](https://github.com/iamkun/dayjs/issues/141) diff --git a/node_modules/dayjs/LICENSE b/node_modules/dayjs/LICENSE new file mode 100644 index 0000000..caf9315 --- /dev/null +++ b/node_modules/dayjs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018-present, iamkun + +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. diff --git a/node_modules/dayjs/README.md b/node_modules/dayjs/README.md new file mode 100644 index 0000000..3e514dc --- /dev/null +++ b/node_modules/dayjs/README.md @@ -0,0 +1,149 @@ +English | [简体中文](./docs/zh-cn/README.zh-CN.md) | [日本語](./docs/ja/README-ja.md) | [Português Brasileiro](./docs/pt-br/README-pt-br.md) | [한국어](./docs/ko/README-ko.md) | [Español (España)](./docs/es-es/README-es-es.md) | [Русский](./docs/ru/README-ru.md) | [Türkçe](./docs/tr/README-tr.md) | [සිංහල](./docs/si/README-si.md) | [עברית](./docs/he/README-he.md) + +

    Day.js

    +

    Fast 2kB alternative to Moment.js with the same modern API

    +

    + Gzip Size + NPM Version + Build Status + Codecov + License +
    + + Sauce Test Status + +

    + +> Day.js is a minimalist JavaScript library that parses, validates, manipulates, and displays dates and times for modern browsers with a largely Moment.js-compatible API. If you use Moment.js, you already know how to use Day.js. + +```js +dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss'); +``` + +* 🕒 Familiar Moment.js API & patterns +* 💪 Immutable +* 🔥 Chainable +* 🌐 I18n support +* 📦 2kb mini library +* 👫 All browsers supported + +--- + +## Getting Started + +### Documentation + +You can find more details, API, and other docs on [day.js.org](https://day.js.org/) website. + +### Installation + +```console +npm install dayjs --save +``` + +📚[Installation Guide](https://day.js.org/docs/en/installation/installation) + +### API + +It's easy to use Day.js APIs to parse, validate, manipulate, and display dates and times. + +```javascript +dayjs('2018-08-08') // parse + +dayjs().format('{YYYY} MM-DDTHH:mm:ss SSS [Z] A') // display + +dayjs().set('month', 3).month() // get & set + +dayjs().add(1, 'year') // manipulate + +dayjs().isBefore(dayjs()) // query +``` + +📚[API Reference](https://day.js.org/docs/en/parse/parse) + +### I18n + +Day.js has great support for internationalization. + +But none of them will be included in your build unless you use it. + +```javascript +import 'dayjs/locale/es' // load on demand + +dayjs.locale('es') // use Spanish locale globally + +dayjs('2018-05-05').locale('zh-cn').format() // use Chinese Simplified locale in a specific instance +``` + +📚[Internationalization](https://day.js.org/docs/en/i18n/i18n) + +### Plugin + +A plugin is an independent module that can be added to Day.js to extend functionality or add new features. + +```javascript +import advancedFormat from 'dayjs/plugin/advancedFormat' // load on demand + +dayjs.extend(advancedFormat) // use plugin + +dayjs().format('Q Do k kk X x') // more available formats +``` + +📚[Plugin List](https://day.js.org/docs/en/plugin/plugin) + +## Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. + +[[Become a sponsor via Github](https://github.com/sponsors/iamkun/)] [[Become a sponsor via OpenCollective](https://opencollective.com/dayjs#sponsor)] + + + + +         + + + +         + + + +         + + + +         + +         + +         + +         + + +## Contributors + +This project exists thanks to all the people who contribute. + +Please give us a 💖 star 💖 to support us. Thank you. + +And thank you to all our backers! 🙏 + + + + + +
    + + +## License + +Day.js is licensed under a [MIT License](./LICENSE). diff --git a/node_modules/dayjs/dayjs.min.js b/node_modules/dayjs/dayjs.min.js new file mode 100644 index 0000000..61916d8 --- /dev/null +++ b/node_modules/dayjs/dayjs.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) + +export = dayjs; + +declare function dayjs (date?: dayjs.ConfigType): dayjs.Dayjs + +declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, strict?: boolean): dayjs.Dayjs + +declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, locale?: string, strict?: boolean): dayjs.Dayjs + +declare namespace dayjs { + interface ConfigTypeMap { + default: string | number | Date | Dayjs | null | undefined + } + + export type ConfigType = ConfigTypeMap[keyof ConfigTypeMap] + + export interface FormatObject { locale?: string, format?: string, utc?: boolean } + + export type OptionType = FormatObject | string | string[] + + export type UnitTypeShort = 'd' | 'D' | 'M' | 'y' | 'h' | 'm' | 's' | 'ms' + + export type UnitTypeLong = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'date' + + export type UnitTypeLongPlural = 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' | 'dates' + + export type UnitType = UnitTypeLong | UnitTypeLongPlural | UnitTypeShort; + + export type OpUnitType = UnitType | "week" | "weeks" | 'w'; + export type QUnitType = UnitType | "quarter" | "quarters" | 'Q'; + export type ManipulateType = Exclude; + class Dayjs { + constructor (config?: ConfigType) + /** + * All Day.js objects are immutable. Still, `dayjs#clone` can create a clone of the current object if you need one. + * ``` + * dayjs().clone()// => Dayjs + * dayjs(dayjs('2019-01-25')) // passing a Dayjs object to a constructor will also clone it + * ``` + * Docs: https://day.js.org/docs/en/parse/dayjs-clone + */ + clone(): Dayjs + /** + * This returns a `boolean` indicating whether the Day.js object contains a valid date or not. + * ``` + * dayjs().isValid()// => boolean + * ``` + * Docs: https://day.js.org/docs/en/parse/is-valid + */ + isValid(): boolean + /** + * Get the year. + * ``` + * dayjs().year()// => 2020 + * ``` + * Docs: https://day.js.org/docs/en/get-set/year + */ + year(): number + /** + * Set the year. + * ``` + * dayjs().year(2000)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/year + */ + year(value: number): Dayjs + /** + * Get the month. + * + * Months are zero indexed, so January is month 0. + * ``` + * dayjs().month()// => 0-11 + * ``` + * Docs: https://day.js.org/docs/en/get-set/month + */ + month(): number + /** + * Set the month. + * + * Months are zero indexed, so January is month 0. + * + * Accepts numbers from 0 to 11. If the range is exceeded, it will bubble up to the next year. + * ``` + * dayjs().month(0)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/month + */ + month(value: number): Dayjs + /** + * Get the date of the month. + * ``` + * dayjs().date()// => 1-31 + * ``` + * Docs: https://day.js.org/docs/en/get-set/date + */ + date(): number + /** + * Set the date of the month. + * + * Accepts numbers from 1 to 31. If the range is exceeded, it will bubble up to the next months. + * ``` + * dayjs().date(1)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/date + */ + date(value: number): Dayjs + /** + * Get the day of the week. + * + * Returns numbers from 0 (Sunday) to 6 (Saturday). + * ``` + * dayjs().day()// 0-6 + * ``` + * Docs: https://day.js.org/docs/en/get-set/day + */ + day(): number + /** + * Set the day of the week. + * + * Accepts numbers from 0 (Sunday) to 6 (Saturday). If the range is exceeded, it will bubble up to next weeks. + * ``` + * dayjs().day(0)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/day + */ + day(value: number): Dayjs + /** + * Get the hour. + * ``` + * dayjs().hour()// => 0-23 + * ``` + * Docs: https://day.js.org/docs/en/get-set/hour + */ + hour(): number + /** + * Set the hour. + * + * Accepts numbers from 0 to 23. If the range is exceeded, it will bubble up to the next day. + * ``` + * dayjs().hour(12)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/hour + */ + hour(value: number): Dayjs + /** + * Get the minutes. + * ``` + * dayjs().minute()// => 0-59 + * ``` + * Docs: https://day.js.org/docs/en/get-set/minute + */ + minute(): number + /** + * Set the minutes. + * + * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next hour. + * ``` + * dayjs().minute(59)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/minute + */ + minute(value: number): Dayjs + /** + * Get the seconds. + * ``` + * dayjs().second()// => 0-59 + * ``` + * Docs: https://day.js.org/docs/en/get-set/second + */ + second(): number + /** + * Set the seconds. + * + * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next minutes. + * ``` + * dayjs().second(1)// Dayjs + * ``` + */ + second(value: number): Dayjs + /** + * Get the milliseconds. + * ``` + * dayjs().millisecond()// => 0-999 + * ``` + * Docs: https://day.js.org/docs/en/get-set/millisecond + */ + millisecond(): number + /** + * Set the milliseconds. + * + * Accepts numbers from 0 to 999. If the range is exceeded, it will bubble up to the next seconds. + * ``` + * dayjs().millisecond(1)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/millisecond + */ + millisecond(value: number): Dayjs + /** + * Generic setter, accepting unit as first argument, and value as second, returns a new instance with the applied changes. + * + * In general: + * ``` + * dayjs().set(unit, value) === dayjs()[unit](value) + * ``` + * Units are case insensitive, and support plural and short forms. + * ``` + * dayjs().set('date', 1) + * dayjs().set('month', 3) // April + * dayjs().set('second', 30) + * ``` + * Docs: https://day.js.org/docs/en/get-set/set + */ + set(unit: UnitType, value: number): Dayjs + /** + * String getter, returns the corresponding information getting from Day.js object. + * + * In general: + * ``` + * dayjs().get(unit) === dayjs()[unit]() + * ``` + * Units are case insensitive, and support plural and short forms. + * ``` + * dayjs().get('year') + * dayjs().get('month') // start 0 + * dayjs().get('date') + * ``` + * Docs: https://day.js.org/docs/en/get-set/get + */ + get(unit: UnitType): number + /** + * Returns a cloned Day.js object with a specified amount of time added. + * ``` + * dayjs().add(7, 'day')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/add + */ + add(value: number, unit?: ManipulateType): Dayjs + /** + * Returns a cloned Day.js object with a specified amount of time subtracted. + * ``` + * dayjs().subtract(7, 'year')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/subtract + */ + subtract(value: number, unit?: ManipulateType): Dayjs + /** + * Returns a cloned Day.js object and set it to the start of a unit of time. + * ``` + * dayjs().startOf('year')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/start-of + */ + startOf(unit: OpUnitType): Dayjs + /** + * Returns a cloned Day.js object and set it to the end of a unit of time. + * ``` + * dayjs().endOf('month')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/end-of + */ + endOf(unit: OpUnitType): Dayjs + /** + * Get the formatted date according to the string of tokens passed in. + * + * To escape characters, wrap them in square brackets (e.g. [MM]). + * ``` + * dayjs().format()// => current date in ISO8601, without fraction seconds e.g. '2020-04-02T08:02:17-05:00' + * dayjs('2019-01-25').format('[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z]')// 'YYYYescape 2019-01-25T00:00:00-02:00Z' + * dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019' + * ``` + * Docs: https://day.js.org/docs/en/display/format + */ + format(template?: string): string + /** + * This indicates the difference between two date-time in the specified unit. + * + * To get the difference in milliseconds, use `dayjs#diff` + * ``` + * const date1 = dayjs('2019-01-25') + * const date2 = dayjs('2018-06-05') + * date1.diff(date2) // 20214000000 default milliseconds + * date1.diff() // milliseconds to current time + * ``` + * + * To get the difference in another unit of measurement, pass that measurement as the second argument. + * ``` + * const date1 = dayjs('2019-01-25') + * date1.diff('2018-06-05', 'month') // 7 + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/display/difference + */ + diff(date?: ConfigType, unit?: QUnitType | OpUnitType, float?: boolean): number + /** + * This returns the number of **milliseconds** since the Unix Epoch of the Day.js object. + * ``` + * dayjs('2019-01-25').valueOf() // 1548381600000 + * +dayjs(1548381600000) // 1548381600000 + * ``` + * To get a Unix timestamp (the number of seconds since the epoch) from a Day.js object, you should use Unix Timestamp `dayjs#unix()`. + * + * Docs: https://day.js.org/docs/en/display/unix-timestamp-milliseconds + */ + valueOf(): number + /** + * This returns the Unix timestamp (the number of **seconds** since the Unix Epoch) of the Day.js object. + * ``` + * dayjs('2019-01-25').unix() // 1548381600 + * ``` + * This value is floored to the nearest second, and does not include a milliseconds component. + * + * Docs: https://day.js.org/docs/en/display/unix-timestamp + */ + unix(): number + /** + * Get the number of days in the current month. + * ``` + * dayjs('2019-01-25').daysInMonth() // 31 + * ``` + * Docs: https://day.js.org/docs/en/display/days-in-month + */ + daysInMonth(): number + /** + * To get a copy of the native `Date` object parsed from the Day.js object use `dayjs#toDate`. + * ``` + * dayjs('2019-01-25').toDate()// => Date + * ``` + */ + toDate(): Date + /** + * To serialize as an ISO 8601 string. + * ``` + * dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z' + * ``` + * Docs: https://day.js.org/docs/en/display/as-json + */ + toJSON(): string + /** + * To format as an ISO 8601 string. + * ``` + * dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z' + * ``` + * Docs: https://day.js.org/docs/en/display/as-iso-string + */ + toISOString(): string + /** + * Returns a string representation of the date. + * ``` + * dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT' + * ``` + * Docs: https://day.js.org/docs/en/display/as-string + */ + toString(): string + /** + * Get the UTC offset in minutes. + * ``` + * dayjs().utcOffset() + * ``` + * Docs: https://day.js.org/docs/en/manipulate/utc-offset + */ + utcOffset(): number + /** + * This indicates whether the Day.js object is before the other supplied date-time. + * ``` + * dayjs().isBefore(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isBefore('2011-01-01', 'year')// => boolean + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/query/is-before + */ + isBefore(date?: ConfigType, unit?: OpUnitType): boolean + /** + * This indicates whether the Day.js object is the same as the other supplied date-time. + * ``` + * dayjs().isSame(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isSame('2011-01-01', 'year')// => boolean + * ``` + * Docs: https://day.js.org/docs/en/query/is-same + */ + isSame(date?: ConfigType, unit?: OpUnitType): boolean + /** + * This indicates whether the Day.js object is after the other supplied date-time. + * ``` + * dayjs().isAfter(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isAfter('2011-01-01', 'year')// => boolean + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/query/is-after + */ + isAfter(date?: ConfigType, unit?: OpUnitType): boolean + + locale(): string + + locale(preset: string | ILocale, object?: Partial): Dayjs + } + + export type PluginFunc = (option: T, c: typeof Dayjs, d: typeof dayjs) => void + + export function extend(plugin: PluginFunc, option?: T): Dayjs + + export function locale(preset?: string | ILocale, object?: Partial, isLocal?: boolean): string + + export function isDayjs(d: any): d is Dayjs + + export function unix(t: number): Dayjs + + const Ls : { [key: string] : ILocale } +} diff --git a/node_modules/dayjs/esm/index.js b/node_modules/dayjs/esm/index.js new file mode 100644 index 0000000..a82986b --- /dev/null +++ b/node_modules/dayjs/esm/index.js @@ -0,0 +1,541 @@ +import * as C from './constant'; +import en from './locale/en'; +import U from './utils'; +var L = 'en'; // global locale + +var Ls = {}; // global loaded locale + +Ls[L] = en; +var IS_DAYJS = '$isDayjsObject'; // eslint-disable-next-line no-use-before-define + +var isDayjs = function isDayjs(d) { + return d instanceof Dayjs || !!(d && d[IS_DAYJS]); +}; + +var parseLocale = function parseLocale(preset, object, isLocal) { + var l; + if (!preset) return L; + + if (typeof preset === 'string') { + var presetLower = preset.toLowerCase(); + + if (Ls[presetLower]) { + l = presetLower; + } + + if (object) { + Ls[presetLower] = object; + l = presetLower; + } + + var presetSplit = preset.split('-'); + + if (!l && presetSplit.length > 1) { + return parseLocale(presetSplit[0]); + } + } else { + var name = preset.name; + Ls[name] = preset; + l = name; + } + + if (!isLocal && l) L = l; + return l || !isLocal && L; +}; + +var dayjs = function dayjs(date, c) { + if (isDayjs(date)) { + return date.clone(); + } // eslint-disable-next-line no-nested-ternary + + + var cfg = typeof c === 'object' ? c : {}; + cfg.date = date; + cfg.args = arguments; // eslint-disable-line prefer-rest-params + + return new Dayjs(cfg); // eslint-disable-line no-use-before-define +}; + +var wrapper = function wrapper(date, instance) { + return dayjs(date, { + locale: instance.$L, + utc: instance.$u, + x: instance.$x, + $offset: instance.$offset // todo: refactor; do not use this.$offset in you code + + }); +}; + +var Utils = U; // for plugin use + +Utils.l = parseLocale; +Utils.i = isDayjs; +Utils.w = wrapper; + +var parseDate = function parseDate(cfg) { + var date = cfg.date, + utc = cfg.utc; + if (date === null) return new Date(NaN); // null is invalid + + if (Utils.u(date)) return new Date(); // today + + if (date instanceof Date) return new Date(date); + + if (typeof date === 'string' && !/Z$/i.test(date)) { + var d = date.match(C.REGEX_PARSE); + + if (d) { + var m = d[2] - 1 || 0; + var ms = (d[7] || '0').substring(0, 3); + + if (utc) { + return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms)); + } + + return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); + } + } + + return new Date(date); // everything else +}; + +var Dayjs = /*#__PURE__*/function () { + function Dayjs(cfg) { + this.$L = parseLocale(cfg.locale, null, true); + this.parse(cfg); // for plugin + + this.$x = this.$x || cfg.x || {}; + this[IS_DAYJS] = true; + } + + var _proto = Dayjs.prototype; + + _proto.parse = function parse(cfg) { + this.$d = parseDate(cfg); + this.init(); + }; + + _proto.init = function init() { + var $d = this.$d; + this.$y = $d.getFullYear(); + this.$M = $d.getMonth(); + this.$D = $d.getDate(); + this.$W = $d.getDay(); + this.$H = $d.getHours(); + this.$m = $d.getMinutes(); + this.$s = $d.getSeconds(); + this.$ms = $d.getMilliseconds(); + } // eslint-disable-next-line class-methods-use-this + ; + + _proto.$utils = function $utils() { + return Utils; + }; + + _proto.isValid = function isValid() { + return !(this.$d.toString() === C.INVALID_DATE_STRING); + }; + + _proto.isSame = function isSame(that, units) { + var other = dayjs(that); + return this.startOf(units) <= other && other <= this.endOf(units); + }; + + _proto.isAfter = function isAfter(that, units) { + return dayjs(that) < this.startOf(units); + }; + + _proto.isBefore = function isBefore(that, units) { + return this.endOf(units) < dayjs(that); + }; + + _proto.$g = function $g(input, get, set) { + if (Utils.u(input)) return this[get]; + return this.set(set, input); + }; + + _proto.unix = function unix() { + return Math.floor(this.valueOf() / 1000); + }; + + _proto.valueOf = function valueOf() { + // timezone(hour) * 60 * 60 * 1000 => ms + return this.$d.getTime(); + }; + + _proto.startOf = function startOf(units, _startOf) { + var _this = this; + + // startOf -> endOf + var isStartOf = !Utils.u(_startOf) ? _startOf : true; + var unit = Utils.p(units); + + var instanceFactory = function instanceFactory(d, m) { + var ins = Utils.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this); + return isStartOf ? ins : ins.endOf(C.D); + }; + + var instanceFactorySet = function instanceFactorySet(method, slice) { + var argumentStart = [0, 0, 0, 0]; + var argumentEnd = [23, 59, 59, 999]; + return Utils.w(_this.toDate()[method].apply( // eslint-disable-line prefer-spread + _this.toDate('s'), (isStartOf ? argumentStart : argumentEnd).slice(slice)), _this); + }; + + var $W = this.$W, + $M = this.$M, + $D = this.$D; + var utcPad = "set" + (this.$u ? 'UTC' : ''); + + switch (unit) { + case C.Y: + return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11); + + case C.M: + return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1); + + case C.W: + { + var weekStart = this.$locale().weekStart || 0; + var gap = ($W < weekStart ? $W + 7 : $W) - weekStart; + return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M); + } + + case C.D: + case C.DATE: + return instanceFactorySet(utcPad + "Hours", 0); + + case C.H: + return instanceFactorySet(utcPad + "Minutes", 1); + + case C.MIN: + return instanceFactorySet(utcPad + "Seconds", 2); + + case C.S: + return instanceFactorySet(utcPad + "Milliseconds", 3); + + default: + return this.clone(); + } + }; + + _proto.endOf = function endOf(arg) { + return this.startOf(arg, false); + }; + + _proto.$set = function $set(units, _int) { + var _C$D$C$DATE$C$M$C$Y$C; + + // private set + var unit = Utils.p(units); + var utcPad = "set" + (this.$u ? 'UTC' : ''); + var name = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[C.D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[C.DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[C.M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[C.Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[C.H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[C.MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[C.S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[C.MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit]; + var arg = unit === C.D ? this.$D + (_int - this.$W) : _int; + + if (unit === C.M || unit === C.Y) { + // clone is for badMutable plugin + var date = this.clone().set(C.DATE, 1); + date.$d[name](arg); + date.init(); + this.$d = date.set(C.DATE, Math.min(this.$D, date.daysInMonth())).$d; + } else if (name) this.$d[name](arg); + + this.init(); + return this; + }; + + _proto.set = function set(string, _int2) { + return this.clone().$set(string, _int2); + }; + + _proto.get = function get(unit) { + return this[Utils.p(unit)](); + }; + + _proto.add = function add(number, units) { + var _this2 = this, + _C$MIN$C$H$C$S$unit; + + number = Number(number); // eslint-disable-line no-param-reassign + + var unit = Utils.p(units); + + var instanceFactorySet = function instanceFactorySet(n) { + var d = dayjs(_this2); + return Utils.w(d.date(d.date() + Math.round(n * number)), _this2); + }; + + if (unit === C.M) { + return this.set(C.M, this.$M + number); + } + + if (unit === C.Y) { + return this.set(C.Y, this.$y + number); + } + + if (unit === C.D) { + return instanceFactorySet(1); + } + + if (unit === C.W) { + return instanceFactorySet(7); + } + + var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[C.MIN] = C.MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[C.H] = C.MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[C.S] = C.MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit] || 1; // ms + + var nextTimeStamp = this.$d.getTime() + number * step; + return Utils.w(nextTimeStamp, this); + }; + + _proto.subtract = function subtract(number, string) { + return this.add(number * -1, string); + }; + + _proto.format = function format(formatStr) { + var _this3 = this; + + var locale = this.$locale(); + if (!this.isValid()) return locale.invalidDate || C.INVALID_DATE_STRING; + var str = formatStr || C.FORMAT_DEFAULT; + var zoneStr = Utils.z(this); + var $H = this.$H, + $m = this.$m, + $M = this.$M; + var weekdays = locale.weekdays, + months = locale.months, + meridiem = locale.meridiem; + + var getShort = function getShort(arr, index, full, length) { + return arr && (arr[index] || arr(_this3, str)) || full[index].slice(0, length); + }; + + var get$H = function get$H(num) { + return Utils.s($H % 12 || 12, num, '0'); + }; + + var meridiemFunc = meridiem || function (hour, minute, isLowercase) { + var m = hour < 12 ? 'AM' : 'PM'; + return isLowercase ? m.toLowerCase() : m; + }; + + var matches = function matches(match) { + switch (match) { + case 'YY': + return String(_this3.$y).slice(-2); + + case 'YYYY': + return Utils.s(_this3.$y, 4, '0'); + + case 'M': + return $M + 1; + + case 'MM': + return Utils.s($M + 1, 2, '0'); + + case 'MMM': + return getShort(locale.monthsShort, $M, months, 3); + + case 'MMMM': + return getShort(months, $M); + + case 'D': + return _this3.$D; + + case 'DD': + return Utils.s(_this3.$D, 2, '0'); + + case 'd': + return String(_this3.$W); + + case 'dd': + return getShort(locale.weekdaysMin, _this3.$W, weekdays, 2); + + case 'ddd': + return getShort(locale.weekdaysShort, _this3.$W, weekdays, 3); + + case 'dddd': + return weekdays[_this3.$W]; + + case 'H': + return String($H); + + case 'HH': + return Utils.s($H, 2, '0'); + + case 'h': + return get$H(1); + + case 'hh': + return get$H(2); + + case 'a': + return meridiemFunc($H, $m, true); + + case 'A': + return meridiemFunc($H, $m, false); + + case 'm': + return String($m); + + case 'mm': + return Utils.s($m, 2, '0'); + + case 's': + return String(_this3.$s); + + case 'ss': + return Utils.s(_this3.$s, 2, '0'); + + case 'SSS': + return Utils.s(_this3.$ms, 3, '0'); + + case 'Z': + return zoneStr; + // 'ZZ' logic below + + default: + break; + } + + return null; + }; + + return str.replace(C.REGEX_FORMAT, function (match, $1) { + return $1 || matches(match) || zoneStr.replace(':', ''); + }); // 'ZZ' + }; + + _proto.utcOffset = function utcOffset() { + // Because a bug at FF24, we're rounding the timezone offset around 15 minutes + // https://github.com/moment/moment/pull/1871 + return -Math.round(this.$d.getTimezoneOffset() / 15) * 15; + }; + + _proto.diff = function diff(input, units, _float) { + var _this4 = this; + + var unit = Utils.p(units); + var that = dayjs(input); + var zoneDelta = (that.utcOffset() - this.utcOffset()) * C.MILLISECONDS_A_MINUTE; + var diff = this - that; + + var getMonth = function getMonth() { + return Utils.m(_this4, that); + }; + + var result; + + switch (unit) { + case C.Y: + result = getMonth() / 12; + break; + + case C.M: + result = getMonth(); + break; + + case C.Q: + result = getMonth() / 3; + break; + + case C.W: + result = (diff - zoneDelta) / C.MILLISECONDS_A_WEEK; + break; + + case C.D: + result = (diff - zoneDelta) / C.MILLISECONDS_A_DAY; + break; + + case C.H: + result = diff / C.MILLISECONDS_A_HOUR; + break; + + case C.MIN: + result = diff / C.MILLISECONDS_A_MINUTE; + break; + + case C.S: + result = diff / C.MILLISECONDS_A_SECOND; + break; + + default: + result = diff; // milliseconds + + break; + } + + return _float ? result : Utils.a(result); + }; + + _proto.daysInMonth = function daysInMonth() { + return this.endOf(C.M).$D; + }; + + _proto.$locale = function $locale() { + // get locale object + return Ls[this.$L]; + }; + + _proto.locale = function locale(preset, object) { + if (!preset) return this.$L; + var that = this.clone(); + var nextLocaleName = parseLocale(preset, object, true); + if (nextLocaleName) that.$L = nextLocaleName; + return that; + }; + + _proto.clone = function clone() { + return Utils.w(this.$d, this); + }; + + _proto.toDate = function toDate() { + return new Date(this.valueOf()); + }; + + _proto.toJSON = function toJSON() { + return this.isValid() ? this.toISOString() : null; + }; + + _proto.toISOString = function toISOString() { + // ie 8 return + // new Dayjs(this.valueOf() + this.$d.getTimezoneOffset() * 60000) + // .format('YYYY-MM-DDTHH:mm:ss.SSS[Z]') + return this.$d.toISOString(); + }; + + _proto.toString = function toString() { + return this.$d.toUTCString(); + }; + + return Dayjs; +}(); + +var proto = Dayjs.prototype; +dayjs.prototype = proto; +[['$ms', C.MS], ['$s', C.S], ['$m', C.MIN], ['$H', C.H], ['$W', C.D], ['$M', C.M], ['$y', C.Y], ['$D', C.DATE]].forEach(function (g) { + proto[g[1]] = function (input) { + return this.$g(input, g[0], g[1]); + }; +}); + +dayjs.extend = function (plugin, option) { + if (!plugin.$i) { + // install plugin only once + plugin(option, Dayjs, dayjs); + plugin.$i = true; + } + + return dayjs; +}; + +dayjs.locale = parseLocale; +dayjs.isDayjs = isDayjs; + +dayjs.unix = function (timestamp) { + return dayjs(timestamp * 1e3); +}; + +dayjs.en = Ls[L]; +dayjs.Ls = Ls; +dayjs.p = {}; +export default dayjs; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/af.js b/node_modules/dayjs/esm/locale/af.js new file mode 100644 index 0000000..ce0c285 --- /dev/null +++ b/node_modules/dayjs/esm/locale/af.js @@ -0,0 +1,39 @@ +// Afrikaans [af] +import dayjs from '../index'; +var locale = { + name: 'af', + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), + weekStart: 1, + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/am.js b/node_modules/dayjs/esm/locale/am.js new file mode 100644 index 0000000..cf25510 --- /dev/null +++ b/node_modules/dayjs/esm/locale/am.js @@ -0,0 +1,40 @@ +// Amharic [am] +import dayjs from '../index'; +var locale = { + name: 'am', + weekdays: 'እሑድ_ሰኞ_ማክሰኞ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ'.split('_'), + weekdaysShort: 'እሑድ_ሰኞ_ማክሰ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ'.split('_'), + weekdaysMin: 'እሑ_ሰኞ_ማክ_ረቡ_ሐሙ_አር_ቅዳ'.split('_'), + months: 'ጃንዋሪ_ፌብሯሪ_ማርች_ኤፕሪል_ሜይ_ጁን_ጁላይ_ኦገስት_ሴፕቴምበር_ኦክቶበር_ኖቬምበር_ዲሴምበር'.split('_'), + monthsShort: 'ጃንዋ_ፌብሯ_ማርች_ኤፕሪ_ሜይ_ጁን_ጁላይ_ኦገስ_ሴፕቴ_ኦክቶ_ኖቬም_ዲሴም'.split('_'), + weekStart: 1, + yearStart: 4, + relativeTime: { + future: 'በ%s', + past: '%s በፊት', + s: 'ጥቂት ሰከንዶች', + m: 'አንድ ደቂቃ', + mm: '%d ደቂቃዎች', + h: 'አንድ ሰዓት', + hh: '%d ሰዓታት', + d: 'አንድ ቀን', + dd: '%d ቀናት', + M: 'አንድ ወር', + MM: '%d ወራት', + y: 'አንድ ዓመት', + yy: '%d ዓመታት' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM D ፣ YYYY', + LLL: 'MMMM D ፣ YYYY HH:mm', + LLLL: 'dddd ፣ MMMM D ፣ YYYY HH:mm' + }, + ordinal: function ordinal(n) { + return n + "\u129B"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-dz.js b/node_modules/dayjs/esm/locale/ar-dz.js new file mode 100644 index 0000000..3ecc04f --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-dz.js @@ -0,0 +1,41 @@ +// Arabic (Algeria) [ar-dz] +import dayjs from '../index'; +var locale = { + name: 'ar-dz', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysMin: 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-iq.js b/node_modules/dayjs/esm/locale/ar-iq.js new file mode 100644 index 0000000..dfe31bf --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-iq.js @@ -0,0 +1,42 @@ +// Arabic (Iraq) [ar-iq] +import dayjs from '../index'; +var locale = { + name: 'ar-iq', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول'.split('_'), + weekStart: 1, + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-kw.js b/node_modules/dayjs/esm/locale/ar-kw.js new file mode 100644 index 0000000..73bf90a --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-kw.js @@ -0,0 +1,41 @@ +// Arabic (Kuwait) [ar-kw] +import dayjs from '../index'; +var locale = { + name: 'ar-kw', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-ly.js b/node_modules/dayjs/esm/locale/ar-ly.js new file mode 100644 index 0000000..5caa869 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-ly.js @@ -0,0 +1,27 @@ +// Arabic (Lybia) [ar-ly] +import dayjs from '../index'; +var locale = { + name: 'ar-ly', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekStart: 6, + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/‏M/‏YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-ma.js b/node_modules/dayjs/esm/locale/ar-ma.js new file mode 100644 index 0000000..ed6dfef --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-ma.js @@ -0,0 +1,42 @@ +// Arabic (Morocco) [ar-ma] +import dayjs from '../index'; +var locale = { + name: 'ar-ma', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekStart: 6, + weekdaysShort: 'احد_إثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-sa.js b/node_modules/dayjs/esm/locale/ar-sa.js new file mode 100644 index 0000000..8eb9687 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-sa.js @@ -0,0 +1,41 @@ +// Arabic (Saudi Arabia) [ar-sa] +import dayjs from '../index'; +var locale = { + name: 'ar-sa', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar-tn.js b/node_modules/dayjs/esm/locale/ar-tn.js new file mode 100644 index 0000000..3c1f2b0 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar-tn.js @@ -0,0 +1,42 @@ +// Arabic (Tunisia) [ar-tn] +import dayjs from '../index'; +var locale = { + name: 'ar-tn', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekStart: 1, + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ar.js b/node_modules/dayjs/esm/locale/ar.js new file mode 100644 index 0000000..78b99b8 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ar.js @@ -0,0 +1,77 @@ +// Arabic [ar] +import dayjs from '../index'; +var months = 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'); +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠' +}; +var numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' +}; +var locale = { + name: 'ar', + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + months: months, + monthsShort: months, + weekStart: 6, + meridiem: function meridiem(hour) { + return hour > 12 ? 'م' : 'ص'; + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: 'ثانية واحدة', + m: 'دقيقة واحدة', + mm: '%d دقائق', + h: 'ساعة واحدة', + hh: '%d ساعات', + d: 'يوم واحد', + dd: '%d أيام', + M: 'شهر واحد', + MM: '%d أشهر', + y: 'عام واحد', + yy: '%d أعوام' + }, + preparse: function preparse(string) { + return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function postformat(string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }).replace(/,/g, '،'); + }, + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/‏M/‏YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/az.js b/node_modules/dayjs/esm/locale/az.js new file mode 100644 index 0000000..3505c8a --- /dev/null +++ b/node_modules/dayjs/esm/locale/az.js @@ -0,0 +1,39 @@ +// Azerbaijani [az] +import dayjs from '../index'; +var locale = { + name: 'az', + 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('_'), + 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('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm' + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + 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' + }, + ordinal: function ordinal(n) { + return n; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/be.js b/node_modules/dayjs/esm/locale/be.js new file mode 100644 index 0000000..5642e39 --- /dev/null +++ b/node_modules/dayjs/esm/locale/be.js @@ -0,0 +1,24 @@ +// Belarusian [be] +import dayjs from '../index'; +var locale = { + name: 'be', + weekdays: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), + months: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), + weekStart: 1, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bg.js b/node_modules/dayjs/esm/locale/bg.js new file mode 100644 index 0000000..e60a2a3 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bg.js @@ -0,0 +1,55 @@ +// Bulgarian [bg] +import dayjs from '../index'; +var locale = { + name: 'bg', + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), + monthsShort: 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekStart: 1, + ordinal: function ordinal(n) { + var last2Digits = n % 100; + + if (last2Digits > 10 && last2Digits < 20) { + return n + "-\u0442\u0438"; + } + + var lastDigit = n % 10; + + if (lastDigit === 1) { + return n + "-\u0432\u0438"; + } else if (lastDigit === 2) { + return n + "-\u0440\u0438"; + } else if (lastDigit === 7 || lastDigit === 8) { + return n + "-\u043C\u0438"; + } + + return n + "-\u0442\u0438"; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm' + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bi.js b/node_modules/dayjs/esm/locale/bi.js new file mode 100644 index 0000000..6230f25 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bi.js @@ -0,0 +1,39 @@ +// Bislama [bi] +import dayjs from '../index'; +var locale = { + name: 'bi', + weekdays: 'Sande_Mande_Tusde_Wenesde_Tosde_Fraede_Sarade'.split('_'), + months: 'Januari_Februari_Maj_Eprel_Mei_Jun_Julae_Okis_Septemba_Oktoba_Novemba_Disemba'.split('_'), + weekStart: 1, + weekdaysShort: 'San_Man_Tus_Wen_Tos_Frae_Sar'.split('_'), + monthsShort: 'Jan_Feb_Maj_Epr_Mai_Jun_Jul_Oki_Sep_Okt_Nov_Dis'.split('_'), + weekdaysMin: 'San_Ma_Tu_We_To_Fr_Sar'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + relativeTime: { + future: 'lo %s', + past: '%s bifo', + s: 'sam seken', + m: 'wan minit', + mm: '%d minit', + h: 'wan haoa', + hh: '%d haoa', + d: 'wan dei', + dd: '%d dei', + M: 'wan manis', + MM: '%d manis', + y: 'wan yia', + yy: '%d yia' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bm.js b/node_modules/dayjs/esm/locale/bm.js new file mode 100644 index 0000000..0d61093 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bm.js @@ -0,0 +1,39 @@ +// Bambara [bm] +import dayjs from '../index'; +var locale = { + name: 'bm', + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'), + weekStart: 1, + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm' + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bn-bd.js b/node_modules/dayjs/esm/locale/bn-bd.js new file mode 100644 index 0000000..f13b660 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bn-bd.js @@ -0,0 +1,81 @@ +// Bengali (Bangladesh) [bn-bd] +import dayjs from '../index'; +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০' +}; +var numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0' +}; +var locale = { + name: 'bn-bd', + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), + weekStart: 0, + preparse: function preparse(string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function postformat(string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + ordinal: function ordinal(n) { + var s = ['ই', 'লা', 'রা', 'ঠা', 'শে']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + }, + formats: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY খ্রিস্টাব্দ', + LL: 'D MMMM YYYY খ্রিস্টাব্দ', + LLL: 'D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়' + }, + meridiem: function meridiem(hour) { + return ( + /* eslint-disable no-nested-ternary */ + hour < 4 ? 'রাত' : hour < 6 ? 'ভোর' : hour < 12 ? 'সকাল' : hour < 15 ? 'দুপুর' : hour < 18 ? 'বিকাল' : hour < 20 ? 'সন্ধ্যা' : 'রাত' + ); + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bn.js b/node_modules/dayjs/esm/locale/bn.js new file mode 100644 index 0000000..25fc170 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bn.js @@ -0,0 +1,72 @@ +// Bengali [bn] +import dayjs from '../index'; +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০' +}; +var numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0' +}; +var locale = { + name: 'bn', + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), + preparse: function preparse(string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function postformat(string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়' + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bo.js b/node_modules/dayjs/esm/locale/bo.js new file mode 100644 index 0000000..fce3344 --- /dev/null +++ b/node_modules/dayjs/esm/locale/bo.js @@ -0,0 +1,38 @@ +// Tibetan [bo] +import dayjs from '../index'; +var locale = { + name: 'bo', + weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + weekdaysMin: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), + monthsShort: 'ཟླ་དང་པོ_ཟླ་གཉིས་པ_ཟླ་གསུམ་པ_ཟླ་བཞི་པ_ཟླ་ལྔ་པ_ཟླ་དྲུག་པ_ཟླ་བདུན་པ_ཟླ་བརྒྱད་པ_ཟླ་དགུ་པ_ཟླ་བཅུ་པ_ཟླ་བཅུ་གཅིག་པ_ཟླ་བཅུ་གཉིས་པ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm' + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔོན་ལ་', + s: 'ཏོག་ཙམ་', + m: 'སྐར་མ་གཅིག་', + mm: 'སྐར་མ་ %d', + h: 'ཆུ་ཚོད་གཅིག་', + hh: 'ཆུ་ཚོད་ %d', + d: 'ཉིན་གཅིག་', + dd: 'ཉིན་ %d', + M: 'ཟླ་བ་གཅིག་', + MM: 'ཟླ་བ་ %d', + y: 'ལོ་གཅིག་', + yy: 'ལོ་ %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/br.js b/node_modules/dayjs/esm/locale/br.js new file mode 100644 index 0000000..d18b4fe --- /dev/null +++ b/node_modules/dayjs/esm/locale/br.js @@ -0,0 +1,93 @@ +// Breton [br] +import dayjs from '../index'; + +function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + + return number; +} + +function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z' + }; + return mutationTable[text.charAt(0)] + text.substring(1); +} + +function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + + return text; +} + +function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh' + }; + return number + " " + mutation(format[key], number); +} + +function specialMutationForYears(number) { + /* istanbul ignore next line */ + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + " bloaz"; + + default: + return number + " vloaz"; + } +} + +var locale = { + name: 'br', + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), + weekStart: 1, + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h[e]mm A', + LTS: 'h[e]mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY h[e]mm A', + LLLL: 'dddd, D [a viz] MMMM YYYY h[e]mm A' + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears + }, + meridiem: function meridiem(hour) { + return hour < 12 ? 'a.m.' : 'g.m.'; + } // a-raok merenn | goude merenn + +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/bs.js b/node_modules/dayjs/esm/locale/bs.js new file mode 100644 index 0000000..328a1fe --- /dev/null +++ b/node_modules/dayjs/esm/locale/bs.js @@ -0,0 +1,24 @@ +// Bosnian [bs] +import dayjs from '../index'; +var locale = { + name: 'bs', + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), + weekStart: 1, + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ca.js b/node_modules/dayjs/esm/locale/ca.js new file mode 100644 index 0000000..94fc0b9 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ca.js @@ -0,0 +1,44 @@ +// Catalan [ca] +import dayjs from '../index'; +var locale = { + name: 'ca', + 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('_'), + months: 'Gener_Febrer_Març_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre'.split('_'), + monthsShort: 'Gen._Febr._Març_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.'.split('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY, H:mm', + llll: 'ddd D MMM YYYY, H:mm' + }, + relativeTime: { + future: 'd\'aquí %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: function ordinal(n) { + var ord; + if (n === 1 || n === 3) ord = 'r';else if (n === 2) ord = 'n';else if (n === 4) ord = 't';else ord = 'è'; + return "" + n + ord; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/cs.js b/node_modules/dayjs/esm/locale/cs.js new file mode 100644 index 0000000..165b662 --- /dev/null +++ b/node_modules/dayjs/esm/locale/cs.js @@ -0,0 +1,120 @@ +// Czech [cs] +import dayjs from '../index'; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; // eslint-disable-line +} +/* eslint-disable */ + + +function translate(number, withoutSuffix, key, isFuture) { + var result = number + " "; + + switch (key) { + case 's': + // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + + case 'm': + // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + + case 'mm': + // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } + + return result + "minutami"; + + case 'h': + // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + + case 'hh': + // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } + + return result + "hodinami"; + + case 'd': + // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + + case 'dd': + // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } + + return result + "dny"; + + case 'M': + // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + + case 'MM': + // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } + + return result + "m\u011Bs\xEDci"; + + case 'y': + // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + + case 'yy': + // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } + + return result + "lety"; + } +} +/* eslint-enable */ + + +var locale = { + name: 'cs', + 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('_'), + months: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'), + monthsShort: 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + weekStart: 1, + yearStart: 4, + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY' + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/cv.js b/node_modules/dayjs/esm/locale/cv.js new file mode 100644 index 0000000..7dc41f7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/cv.js @@ -0,0 +1,24 @@ +// Chuvash [cv] +import dayjs from '../index'; +var locale = { + name: 'cv', + weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), + weekStart: 1, + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/cy.js b/node_modules/dayjs/esm/locale/cy.js new file mode 100644 index 0000000..63e6c33 --- /dev/null +++ b/node_modules/dayjs/esm/locale/cy.js @@ -0,0 +1,39 @@ +// Welsh [cy] +import dayjs from '../index'; +var locale = { + name: 'cy', + weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), + weekStart: 1, + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/da.js b/node_modules/dayjs/esm/locale/da.js new file mode 100644 index 0000000..38fd134 --- /dev/null +++ b/node_modules/dayjs/esm/locale/da.js @@ -0,0 +1,39 @@ +// Danish [da] +import dayjs from '../index'; +var locale = { + name: 'da', + 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('_'), + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.'.split('_'), + weekStart: 1, + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/de-at.js b/node_modules/dayjs/esm/locale/de-at.js new file mode 100644 index 0000000..e109d97 --- /dev/null +++ b/node_modules/dayjs/esm/locale/de-at.js @@ -0,0 +1,63 @@ +// German (Austria) [de-at] +import dayjs from '../index'; +var texts = { + s: 'ein paar Sekunden', + m: ['eine Minute', 'einer Minute'], + mm: '%d Minuten', + h: ['eine Stunde', 'einer Stunde'], + hh: '%d Stunden', + d: ['ein Tag', 'einem Tag'], + dd: ['%d Tage', '%d Tagen'], + M: ['ein Monat', 'einem Monat'], + MM: ['%d Monate', '%d Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: ['%d Jahre', '%d Jahren'] +}; + +function relativeTimeFormatter(number, withoutSuffix, key) { + var l = texts[key]; + + if (Array.isArray(l)) { + l = l[withoutSuffix ? 0 : 1]; + } + + return l.replace('%d', number); +} + +var locale = { + name: 'de-at', + 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('_'), + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + formats: { + LTS: 'HH:mm:ss', + LT: 'HH:mm', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/de-ch.js b/node_modules/dayjs/esm/locale/de-ch.js new file mode 100644 index 0000000..1ffbbf7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/de-ch.js @@ -0,0 +1,63 @@ +// German (Switzerland) [de-ch] +import dayjs from '../index'; +var texts = { + s: 'ein paar Sekunden', + m: ['eine Minute', 'einer Minute'], + mm: '%d Minuten', + h: ['eine Stunde', 'einer Stunde'], + hh: '%d Stunden', + d: ['ein Tag', 'einem Tag'], + dd: ['%d Tage', '%d Tagen'], + M: ['ein Monat', 'einem Monat'], + MM: ['%d Monate', '%d Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: ['%d Jahre', '%d Jahren'] +}; + +function relativeTimeFormatter(number, withoutSuffix, key) { + var l = texts[key]; + + if (Array.isArray(l)) { + l = l[withoutSuffix ? 0 : 1]; + } + + return l.replace('%d', number); +} + +var locale = { + name: 'de-ch', + 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('_'), + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/de.js b/node_modules/dayjs/esm/locale/de.js new file mode 100644 index 0000000..8ccd483 --- /dev/null +++ b/node_modules/dayjs/esm/locale/de.js @@ -0,0 +1,64 @@ +// German [de] +import dayjs from '../index'; +var texts = { + s: 'ein paar Sekunden', + m: ['eine Minute', 'einer Minute'], + mm: '%d Minuten', + h: ['eine Stunde', 'einer Stunde'], + hh: '%d Stunden', + d: ['ein Tag', 'einem Tag'], + dd: ['%d Tage', '%d Tagen'], + M: ['ein Monat', 'einem Monat'], + MM: ['%d Monate', '%d Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: ['%d Jahre', '%d Jahren'] +}; + +function relativeTimeFormatter(number, withoutSuffix, key) { + var l = texts[key]; + + if (Array.isArray(l)) { + l = l[withoutSuffix ? 0 : 1]; + } + + return l.replace('%d', number); +} + +var locale = { + name: 'de', + 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('_'), + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + yearStart: 4, + formats: { + LTS: 'HH:mm:ss', + LT: 'HH:mm', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/dv.js b/node_modules/dayjs/esm/locale/dv.js new file mode 100644 index 0000000..8943fdd --- /dev/null +++ b/node_modules/dayjs/esm/locale/dv.js @@ -0,0 +1,39 @@ +// Maldivian [dv] +import dayjs from '../index'; +var locale = { + name: 'dv', + weekdays: 'އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު'.split('_'), + months: 'ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު'.split('_'), + weekStart: 7, + weekdaysShort: 'އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު'.split('_'), + monthsShort: 'ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު'.split('_'), + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/el.js b/node_modules/dayjs/esm/locale/el.js new file mode 100644 index 0000000..2aa9917 --- /dev/null +++ b/node_modules/dayjs/esm/locale/el.js @@ -0,0 +1,39 @@ +// Greek [el] +import dayjs from '../index'; +var locale = { + name: 'el', + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + months: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαι_Ιουν_Ιουλ_Αυγ_Σεπτ_Οκτ_Νοε_Δεκ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + weekStart: 1, + relativeTime: { + future: 'σε %s', + past: 'πριν %s', + s: 'μερικά δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένα μήνα', + MM: '%d μήνες', + y: 'ένα χρόνο', + yy: '%d χρόνια' + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-au.js b/node_modules/dayjs/esm/locale/en-au.js new file mode 100644 index 0000000..f9dde03 --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-au.js @@ -0,0 +1,39 @@ +// English (Australia) [en-au] +import dayjs from '../index'; +var locale = { + name: 'en-au', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekStart: 1, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-ca.js b/node_modules/dayjs/esm/locale/en-ca.js new file mode 100644 index 0000000..8e416c9 --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-ca.js @@ -0,0 +1,38 @@ +// English (Canada) [en-ca] +import dayjs from '../index'; +var locale = { + name: 'en-ca', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-gb.js b/node_modules/dayjs/esm/locale/en-gb.js new file mode 100644 index 0000000..f979b44 --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-gb.js @@ -0,0 +1,42 @@ +// English (United Kingdom) [en-gb] +import dayjs from '../index'; +var locale = { + name: 'en-gb', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + 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' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + ordinal: function ordinal(n) { + var s = ['th', 'st', 'nd', 'rd']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-ie.js b/node_modules/dayjs/esm/locale/en-ie.js new file mode 100644 index 0000000..8098d2f --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-ie.js @@ -0,0 +1,39 @@ +// English (Ireland) [en-ie] +import dayjs from '../index'; +var locale = { + name: 'en-ie', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekStart: 1, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-il.js b/node_modules/dayjs/esm/locale/en-il.js new file mode 100644 index 0000000..56c241a --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-il.js @@ -0,0 +1,38 @@ +// English (Israel) [en-il] +import dayjs from '../index'; +var locale = { + name: 'en-il', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-in.js b/node_modules/dayjs/esm/locale/en-in.js new file mode 100644 index 0000000..7ccb206 --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-in.js @@ -0,0 +1,42 @@ +// English (India) [en-in] +import dayjs from '../index'; +var locale = { + name: 'en-in', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + 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' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + ordinal: function ordinal(n) { + var s = ['th', 'st', 'nd', 'rd']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-nz.js b/node_modules/dayjs/esm/locale/en-nz.js new file mode 100644 index 0000000..08c562e --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-nz.js @@ -0,0 +1,41 @@ +// English (New Zealand) [en-nz] +import dayjs from '../index'; +var locale = { + name: 'en-nz', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekStart: 1, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + var s = ['th', 'st', 'nd', 'rd']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-sg.js b/node_modules/dayjs/esm/locale/en-sg.js new file mode 100644 index 0000000..3c5edce --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-sg.js @@ -0,0 +1,39 @@ +// English (Singapore) [en-sg] +import dayjs from '../index'; +var locale = { + name: 'en-sg', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + weekStart: 1, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en-tt.js b/node_modules/dayjs/esm/locale/en-tt.js new file mode 100644 index 0000000..ef47eeb --- /dev/null +++ b/node_modules/dayjs/esm/locale/en-tt.js @@ -0,0 +1,42 @@ +// English (Trinidad & Tobago) [en-tt] +import dayjs from '../index'; +var locale = { + name: 'en-tt', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + 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' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + ordinal: function ordinal(n) { + var s = ['th', 'st', 'nd', 'rd']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/en.js b/node_modules/dayjs/esm/locale/en.js new file mode 100644 index 0000000..8ba6107 --- /dev/null +++ b/node_modules/dayjs/esm/locale/en.js @@ -0,0 +1,12 @@ +// English [en] +// We don't need weekdaysShort, weekdaysMin, monthsShort in en.js locale +export default { + name: 'en', + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + ordinal: function ordinal(n) { + var s = ['th', 'st', 'nd', 'rd']; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + } +}; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/eo.js b/node_modules/dayjs/esm/locale/eo.js new file mode 100644 index 0000000..e62599a --- /dev/null +++ b/node_modules/dayjs/esm/locale/eo.js @@ -0,0 +1,39 @@ +// Esperanto [eo] +import dayjs from '../index'; +var locale = { + name: 'eo', + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'), + weekStart: 1, + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D[-a de] MMMM, YYYY', + LLL: 'D[-a de] MMMM, YYYY HH:mm', + LLLL: 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' + }, + relativeTime: { + future: 'post %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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/es-do.js b/node_modules/dayjs/esm/locale/es-do.js new file mode 100644 index 0000000..09410cf --- /dev/null +++ b/node_modules/dayjs/esm/locale/es-do.js @@ -0,0 +1,39 @@ +// Spanish (Dominican Republic) [es-do] +import dayjs from '../index'; +var locale = { + name: 'es-do', + 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('_'), + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + weekStart: 1, + 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: function ordinal(n) { + return n + "\xBA"; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/es-mx.js b/node_modules/dayjs/esm/locale/es-mx.js new file mode 100644 index 0000000..0207f83 --- /dev/null +++ b/node_modules/dayjs/esm/locale/es-mx.js @@ -0,0 +1,38 @@ +// Spanish (Mexico) [es-mx] +import dayjs from '../index'; +var locale = { + name: 'es-mx', + 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('_'), + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + 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: function ordinal(n) { + return n + "\xBA"; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/es-pr.js b/node_modules/dayjs/esm/locale/es-pr.js new file mode 100644 index 0000000..5edc359 --- /dev/null +++ b/node_modules/dayjs/esm/locale/es-pr.js @@ -0,0 +1,39 @@ +// Spanish (Puerto Rico) [es-PR] +import dayjs from '../index'; +var locale = { + name: 'es-pr', + monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + 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('_'), + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + weekStart: 1, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' + }, + 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: function ordinal(n) { + return n + "\xBA"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/es-us.js b/node_modules/dayjs/esm/locale/es-us.js new file mode 100644 index 0000000..f9b01a0 --- /dev/null +++ b/node_modules/dayjs/esm/locale/es-us.js @@ -0,0 +1,38 @@ +// Spanish (United States) [es-us] +import dayjs from '../index'; +var locale = { + name: 'es-us', + 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('_'), + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + 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: function ordinal(n) { + return n + "\xBA"; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/es.js b/node_modules/dayjs/esm/locale/es.js new file mode 100644 index 0000000..84bdfbe --- /dev/null +++ b/node_modules/dayjs/esm/locale/es.js @@ -0,0 +1,39 @@ +// Spanish [es] +import dayjs from '../index'; +var locale = { + name: 'es', + monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + 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('_'), + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' + }, + 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: function ordinal(n) { + return n + "\xBA"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/et.js b/node_modules/dayjs/esm/locale/et.js new file mode 100644 index 0000000..7f7c5ff --- /dev/null +++ b/node_modules/dayjs/esm/locale/et.js @@ -0,0 +1,65 @@ +// Estonian [et] +import dayjs from '../index'; + +function relativeTimeWithTense(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: ['%d minuti', '%d minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: ['%d tunni', '%d tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: ['%d kuu', '%d kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: ['%d aasta', '%d aastat'] + }; + + if (withoutSuffix) { + return (format[key][2] ? format[key][2] : format[key][1]).replace('%d', number); + } + + return (isFuture ? format[key][0] : format[key][1]).replace('%d', number); +} + +var locale = { + name: 'et', + // Estonian + weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), + // Note weekdays are not capitalized in Estonian + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + // There is no short form of weekdays in Estonian except this 1 letter format so it is used for both 'weekdaysShort' and 'weekdaysMin' + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), + // Note month names are not capitalized in Estonian + monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: relativeTimeWithTense, + m: relativeTimeWithTense, + mm: relativeTimeWithTense, + h: relativeTimeWithTense, + hh: relativeTimeWithTense, + d: relativeTimeWithTense, + dd: '%d päeva', + M: relativeTimeWithTense, + MM: relativeTimeWithTense, + y: relativeTimeWithTense, + yy: relativeTimeWithTense + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/eu.js b/node_modules/dayjs/esm/locale/eu.js new file mode 100644 index 0000000..5cb73d0 --- /dev/null +++ b/node_modules/dayjs/esm/locale/eu.js @@ -0,0 +1,43 @@ +// Basque [eu] +import dayjs from '../index'; +var locale = { + name: 'eu', + weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), + weekStart: 1, + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fa.js b/node_modules/dayjs/esm/locale/fa.js new file mode 100644 index 0000000..089459e --- /dev/null +++ b/node_modules/dayjs/esm/locale/fa.js @@ -0,0 +1,39 @@ +// Persian [fa] +import dayjs from '../index'; +var locale = { + name: 'fa', + weekdays: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split('_'), + weekdaysShort: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekStart: 6, + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fi.js b/node_modules/dayjs/esm/locale/fi.js new file mode 100644 index 0000000..1ded894 --- /dev/null +++ b/node_modules/dayjs/esm/locale/fi.js @@ -0,0 +1,88 @@ +// Finnish [fi] +import dayjs from '../index'; + +function relativeTimeFormatter(number, withoutSuffix, key, isFuture) { + var past = { + s: 'muutama sekunti', + m: 'minuutti', + mm: '%d minuuttia', + h: 'tunti', + hh: '%d tuntia', + d: 'päivä', + dd: '%d päivää', + M: 'kuukausi', + MM: '%d kuukautta', + y: 'vuosi', + yy: '%d vuotta', + numbers: 'nolla_yksi_kaksi_kolme_neljä_viisi_kuusi_seitsemän_kahdeksan_yhdeksän'.split('_') + }; + var future = { + s: 'muutaman sekunnin', + m: 'minuutin', + mm: '%d minuutin', + h: 'tunnin', + hh: '%d tunnin', + d: 'päivän', + dd: '%d päivän', + M: 'kuukauden', + MM: '%d kuukauden', + y: 'vuoden', + yy: '%d vuoden', + numbers: 'nollan_yhden_kahden_kolmen_neljän_viiden_kuuden_seitsemän_kahdeksan_yhdeksän'.split('_') + }; + var words = isFuture && !withoutSuffix ? future : past; + var result = words[key]; + + if (number < 10) { + return result.replace('%d', words.numbers[number]); + } + + return result.replace('%d', number); +} + +var locale = { + name: 'fi', + // Finnish + weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), + // Note weekdays are not capitalized in Finnish + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + // There is no short form of weekdays in Finnish except this 2 letter format so it is used for both 'weekdaysShort' and 'weekdaysMin' + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), + // Note month names are not capitalized in Finnish + monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + yearStart: 4, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + }, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM[ta] YYYY', + LLL: 'D. MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, D. MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'D. MMM YYYY', + lll: 'D. MMM YYYY, [klo] HH.mm', + llll: 'ddd, D. MMM YYYY, [klo] HH.mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fo.js b/node_modules/dayjs/esm/locale/fo.js new file mode 100644 index 0000000..07c3761 --- /dev/null +++ b/node_modules/dayjs/esm/locale/fo.js @@ -0,0 +1,39 @@ +// Faroese [fo] +import dayjs from '../index'; +var locale = { + name: 'fo', + weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + weekStart: 1, + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm' + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fr-ca.js b/node_modules/dayjs/esm/locale/fr-ca.js new file mode 100644 index 0000000..688d695 --- /dev/null +++ b/node_modules/dayjs/esm/locale/fr-ca.js @@ -0,0 +1,38 @@ +// French (Canada) [fr-ca] +import dayjs from '../index'; +var locale = { + name: 'fr-ca', + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fr-ch.js b/node_modules/dayjs/esm/locale/fr-ch.js new file mode 100644 index 0000000..593dba8 --- /dev/null +++ b/node_modules/dayjs/esm/locale/fr-ch.js @@ -0,0 +1,39 @@ +// French (Switzerland) [fr-ch] +import dayjs from '../index'; +var locale = { + name: 'fr-ch', + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + weekStart: 1, + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fr.js b/node_modules/dayjs/esm/locale/fr.js new file mode 100644 index 0000000..b31c11d --- /dev/null +++ b/node_modules/dayjs/esm/locale/fr.js @@ -0,0 +1,41 @@ +// French [fr] +import dayjs from '../index'; +var locale = { + name: 'fr', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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 ordinal(n) { + var o = n === 1 ? 'er' : ''; + return "" + n + o; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/fy.js b/node_modules/dayjs/esm/locale/fy.js new file mode 100644 index 0000000..4b9f9de --- /dev/null +++ b/node_modules/dayjs/esm/locale/fy.js @@ -0,0 +1,39 @@ +// Frisian [fy] +import dayjs from '../index'; +var locale = { + name: 'fy', + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), + monthsShort: 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + weekStart: 1, + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ga.js b/node_modules/dayjs/esm/locale/ga.js new file mode 100644 index 0000000..8cdfa9f --- /dev/null +++ b/node_modules/dayjs/esm/locale/ga.js @@ -0,0 +1,39 @@ +// Irish or Irish Gaelic [ga] +import dayjs from '../index'; +var locale = { + name: 'ga', + weekdays: 'Dé Domhnaigh_Dé Luain_Dé Máirt_Dé Céadaoin_Déardaoin_Dé hAoine_Dé Satharn'.split('_'), + months: 'Eanáir_Feabhra_Márta_Aibreán_Bealtaine_Méitheamh_Iúil_Lúnasa_Meán Fómhair_Deaireadh Fómhair_Samhain_Nollaig'.split('_'), + weekStart: 1, + weekdaysShort: 'Dom_Lua_Mái_Céa_Déa_hAo_Sat'.split('_'), + monthsShort: 'Eaná_Feab_Márt_Aibr_Beal_Méit_Iúil_Lúna_Meán_Deai_Samh_Noll'.split('_'), + weekdaysMin: 'Do_Lu_Má_Ce_Dé_hA_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d mí', + y: 'bliain', + yy: '%d bliain' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/gd.js b/node_modules/dayjs/esm/locale/gd.js new file mode 100644 index 0000000..fcf62cd --- /dev/null +++ b/node_modules/dayjs/esm/locale/gd.js @@ -0,0 +1,39 @@ +// Scottish Gaelic [gd] +import dayjs from '../index'; +var locale = { + name: 'gd', + weekdays: 'Didòmhnaich_Diluain_Dimàirt_Diciadain_Diardaoin_Dihaoine_Disathairne'.split('_'), + months: 'Am Faoilleach_An Gearran_Am Màrt_An Giblean_An Cèitean_An t-Ògmhios_An t-Iuchar_An Lùnastal_An t-Sultain_An Dàmhair_An t-Samhain_An Dùbhlachd'.split('_'), + weekStart: 1, + weekdaysShort: 'Did_Dil_Dim_Dic_Dia_Dih_Dis'.split('_'), + monthsShort: 'Faoi_Gear_Màrt_Gibl_Cèit_Ògmh_Iuch_Lùn_Sult_Dàmh_Samh_Dùbh'.split('_'), + weekdaysMin: 'Dò_Lu_Mà_Ci_Ar_Ha_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/gl.js b/node_modules/dayjs/esm/locale/gl.js new file mode 100644 index 0000000..23d687f --- /dev/null +++ b/node_modules/dayjs/esm/locale/gl.js @@ -0,0 +1,39 @@ +// Galician [gl] +import dayjs from '../index'; +var locale = { + name: 'gl', + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'), + weekStart: 1, + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + ordinal: function ordinal(n) { + return n + "\xBA"; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' + }, + relativeTime: { + future: 'en %s', + past: 'fai %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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/gom-latn.js b/node_modules/dayjs/esm/locale/gom-latn.js new file mode 100644 index 0000000..d621f5b --- /dev/null +++ b/node_modules/dayjs/esm/locale/gom-latn.js @@ -0,0 +1,25 @@ +// Konkani Latin script [gom-latn] +import dayjs from '../index'; +var locale = { + name: 'gom-latn', + weekdays: "Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split('_'), + months: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), + weekStart: 1, + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/gu.js b/node_modules/dayjs/esm/locale/gu.js new file mode 100644 index 0000000..e05f44b --- /dev/null +++ b/node_modules/dayjs/esm/locale/gu.js @@ -0,0 +1,38 @@ +// Gujarati [gu] +import dayjs from '../index'; +var locale = { + name: 'gu', + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'), + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે' + }, + relativeTime: { + future: '%s મા', + past: '%s પેહલા', + s: 'અમુક પળો', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/he.js b/node_modules/dayjs/esm/locale/he.js new file mode 100644 index 0000000..a8868ff --- /dev/null +++ b/node_modules/dayjs/esm/locale/he.js @@ -0,0 +1,78 @@ +// Hebrew [he] +import dayjs from '../index'; +var texts = { + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: '%d שעות', + hh2: 'שעתיים', + d: 'יום', + dd: '%d ימים', + dd2: 'יומיים', + M: 'חודש', + MM: '%d חודשים', + MM2: 'חודשיים', + y: 'שנה', + yy: '%d שנים', + yy2: 'שנתיים' +}; + +function relativeTimeFormatter(number, withoutSuffix, key) { + var text = texts[key + (number === 2 ? '2' : '')] || texts[key]; + return text.replace('%d', number); +} + +var locale = { + name: 'he', + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א׳_ב׳_ג׳_ד׳_ה׳_ו_ש׳'.split('_'), + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), + monthsShort: 'ינו_פבר_מרץ_אפר_מאי_יונ_יול_אוג_ספט_אוק_נוב_דצמ'.split('_'), + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + }, + ordinal: function ordinal(n) { + return n; + }, + format: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/hi.js b/node_modules/dayjs/esm/locale/hi.js new file mode 100644 index 0000000..e877ed6 --- /dev/null +++ b/node_modules/dayjs/esm/locale/hi.js @@ -0,0 +1,38 @@ +// Hindi [hi] +import dayjs from '../index'; +var locale = { + name: 'hi', + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे' + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/hr.js b/node_modules/dayjs/esm/locale/hr.js new file mode 100644 index 0000000..a760fe3 --- /dev/null +++ b/node_modules/dayjs/esm/locale/hr.js @@ -0,0 +1,53 @@ +// Croatian [hr] +import dayjs from '../index'; +var monthFormat = 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'); +var monthStandalone = 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'); +var MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/; + +var months = function months(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()]; + } + + return monthStandalone[dayjsInstance.month()]; +}; + +months.s = monthStandalone; +months.f = monthFormat; +var locale = { + name: 'hr', + 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('_'), + months: months, + monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'sekunda', + m: 'minuta', + mm: '%d minuta', + h: 'sat', + hh: '%d sati', + d: 'dan', + dd: '%d dana', + M: 'mjesec', + MM: '%d mjeseci', + y: 'godina', + yy: '%d godine' + }, + ordinal: function ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ht.js b/node_modules/dayjs/esm/locale/ht.js new file mode 100644 index 0000000..896739e --- /dev/null +++ b/node_modules/dayjs/esm/locale/ht.js @@ -0,0 +1,38 @@ +// Haitian Creole (Haiti) [ht] +import dayjs from '../index'; +var locale = { + name: 'ht', + weekdays: 'dimanch_lendi_madi_mèkredi_jedi_vandredi_samdi'.split('_'), + months: 'janvye_fevriye_mas_avril_me_jen_jiyè_out_septanm_oktòb_novanm_desanm'.split('_'), + weekdaysShort: 'dim._len._mad._mèk._jed._van._sam.'.split('_'), + monthsShort: 'jan._fev._mas_avr._me_jen_jiyè._out_sept._okt._nov._des.'.split('_'), + weekdaysMin: 'di_le_ma_mè_je_va_sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'nan %s', + past: 'sa gen %s', + s: 'kèk segond', + m: 'yon minit', + mm: '%d minit', + h: 'inèdtan', + hh: '%d zè', + d: 'yon jou', + dd: '%d jou', + M: 'yon mwa', + MM: '%d mwa', + y: 'yon ane', + yy: '%d ane' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/hu.js b/node_modules/dayjs/esm/locale/hu.js new file mode 100644 index 0000000..18df6e4 --- /dev/null +++ b/node_modules/dayjs/esm/locale/hu.js @@ -0,0 +1,61 @@ +// Hungarian [hu] +import dayjs from '../index'; +var locale = { + name: 'hu', + 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('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + relativeTime: { + future: '%s múlva', + past: '%s', + s: function s(_, _s, ___, isFuture) { + return "n\xE9h\xE1ny m\xE1sodperc" + (isFuture || _s ? '' : 'e'); + }, + m: function m(_, s, ___, isFuture) { + return "egy perc" + (isFuture || s ? '' : 'e'); + }, + mm: function mm(n, s, ___, isFuture) { + return n + " perc" + (isFuture || s ? '' : 'e'); + }, + h: function h(_, s, ___, isFuture) { + return "egy " + (isFuture || s ? 'óra' : 'órája'); + }, + hh: function hh(n, s, ___, isFuture) { + return n + " " + (isFuture || s ? 'óra' : 'órája'); + }, + d: function d(_, s, ___, isFuture) { + return "egy " + (isFuture || s ? 'nap' : 'napja'); + }, + dd: function dd(n, s, ___, isFuture) { + return n + " " + (isFuture || s ? 'nap' : 'napja'); + }, + M: function M(_, s, ___, isFuture) { + return "egy " + (isFuture || s ? 'hónap' : 'hónapja'); + }, + MM: function MM(n, s, ___, isFuture) { + return n + " " + (isFuture || s ? 'hónap' : 'hónapja'); + }, + y: function y(_, s, ___, isFuture) { + return "egy " + (isFuture || s ? 'év' : 'éve'); + }, + yy: function yy(n, s, ___, isFuture) { + return n + " " + (isFuture || s ? 'év' : 'éve'); + } + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/hy-am.js b/node_modules/dayjs/esm/locale/hy-am.js new file mode 100644 index 0000000..937f2be --- /dev/null +++ b/node_modules/dayjs/esm/locale/hy-am.js @@ -0,0 +1,39 @@ +// Armenian [hy-am] +import dayjs from '../index'; +var locale = { + name: 'hy-am', + weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), + months: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), + weekStart: 1, + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm' + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/id.js b/node_modules/dayjs/esm/locale/id.js new file mode 100644 index 0000000..f743a12 --- /dev/null +++ b/node_modules/dayjs/esm/locale/id.js @@ -0,0 +1,39 @@ +// Indonesian [id] +import dayjs from '../index'; +var locale = { + name: 'id', + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + weekStart: 1, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + 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' + }, + ordinal: function ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/index.d.ts b/node_modules/dayjs/esm/locale/index.d.ts new file mode 100644 index 0000000..beb0d36 --- /dev/null +++ b/node_modules/dayjs/esm/locale/index.d.ts @@ -0,0 +1,11 @@ +/// + +declare module 'dayjs/esm/locale/*' { + namespace locale { + interface Locale extends ILocale {} + } + + const locale: locale.Locale + + export = locale +} diff --git a/node_modules/dayjs/esm/locale/is.js b/node_modules/dayjs/esm/locale/is.js new file mode 100644 index 0000000..22d8121 --- /dev/null +++ b/node_modules/dayjs/esm/locale/is.js @@ -0,0 +1,68 @@ +// Icelandic [is] +import dayjs from '../index'; +var texts = { + s: ['nokkrar sekúndur', 'nokkrar sekúndur', 'nokkrum sekúndum'], + m: ['mínúta', 'mínútu', 'mínútu'], + mm: ['mínútur', 'mínútur', 'mínútum'], + h: ['klukkustund', 'klukkustund', 'klukkustund'], + hh: ['klukkustundir', 'klukkustundir', 'klukkustundum'], + d: ['dagur', 'dag', 'degi'], + dd: ['dagar', 'daga', 'dögum'], + M: ['mánuður', 'mánuð', 'mánuði'], + MM: ['mánuðir', 'mánuði', 'mánuðum'], + y: ['ár', 'ár', 'ári'], + yy: ['ár', 'ár', 'árum'] +}; + +function resolveTemplate(key, number, isFuture, withoutSuffix) { + var suffixIndex = isFuture ? 1 : 2; + var index = withoutSuffix ? 0 : suffixIndex; + var keyShouldBeSingular = key.length === 2 && number % 10 === 1; + var correctedKey = keyShouldBeSingular ? key[0] : key; + var unitText = texts[correctedKey]; + var text = unitText[index]; + return key.length === 1 ? text : "%d " + text; +} + +function relativeTimeFormatter(number, withoutSuffix, key, isFuture) { + var template = resolveTemplate(key, number, isFuture, withoutSuffix); + return template.replace('%d', number); +} + +var locale = { + name: 'is', + weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'), + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'), + weekStart: 1, + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm' + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: relativeTimeFormatter, + m: relativeTimeFormatter, + mm: relativeTimeFormatter, + h: relativeTimeFormatter, + hh: relativeTimeFormatter, + d: relativeTimeFormatter, + dd: relativeTimeFormatter, + M: relativeTimeFormatter, + MM: relativeTimeFormatter, + y: relativeTimeFormatter, + yy: relativeTimeFormatter + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/it-ch.js b/node_modules/dayjs/esm/locale/it-ch.js new file mode 100644 index 0000000..cfbb94d --- /dev/null +++ b/node_modules/dayjs/esm/locale/it-ch.js @@ -0,0 +1,39 @@ +// Italian (Switzerland) [it-ch] +import dayjs from '../index'; +var locale = { + name: 'it-ch', + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), + weekStart: 1, + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'tra %s', + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/it.js b/node_modules/dayjs/esm/locale/it.js new file mode 100644 index 0000000..e8d2490 --- /dev/null +++ b/node_modules/dayjs/esm/locale/it.js @@ -0,0 +1,39 @@ +// Italian [it] +import dayjs from '../index'; +var locale = { + name: 'it', + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), + weekStart: 1, + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'qualche secondo', + 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: function ordinal(n) { + return n + "\xBA"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ja.js b/node_modules/dayjs/esm/locale/ja.js new file mode 100644 index 0000000..6568e13 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ja.js @@ -0,0 +1,45 @@ +// Japanese [ja] +import dayjs from '../index'; +var locale = { + name: 'ja', + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "\u65E5"; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm' + }, + meridiem: function meridiem(hour) { + return hour < 12 ? '午前' : '午後'; + }, + 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年' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/jv.js b/node_modules/dayjs/esm/locale/jv.js new file mode 100644 index 0000000..81a3f66 --- /dev/null +++ b/node_modules/dayjs/esm/locale/jv.js @@ -0,0 +1,39 @@ +// Javanese [jv] +import dayjs from '../index'; +var locale = { + name: 'jv', + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), + weekStart: 1, + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ka.js b/node_modules/dayjs/esm/locale/ka.js new file mode 100644 index 0000000..381fffa --- /dev/null +++ b/node_modules/dayjs/esm/locale/ka.js @@ -0,0 +1,39 @@ +// Georgian [ka] +import dayjs from '../index'; +var locale = { + name: 'ka', + weekdays: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekStart: 1, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + relativeTime: { + future: '%s შემდეგ', + past: '%s წინ', + s: 'წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათის', + d: 'დღეს', + dd: '%d დღის განმავლობაში', + M: 'თვის', + MM: '%d თვის', + y: 'წელი', + yy: '%d წლის' + }, + ordinal: function ordinal(n) { + return n; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/kk.js b/node_modules/dayjs/esm/locale/kk.js new file mode 100644 index 0000000..f2ca045 --- /dev/null +++ b/node_modules/dayjs/esm/locale/kk.js @@ -0,0 +1,39 @@ +// Kazakh [kk] +import dayjs from '../index'; +var locale = { + name: 'kk', + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekStart: 1, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл' + }, + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/km.js b/node_modules/dayjs/esm/locale/km.js new file mode 100644 index 0000000..7fd185b --- /dev/null +++ b/node_modules/dayjs/esm/locale/km.js @@ -0,0 +1,39 @@ +// Cambodian [km] +import dayjs from '../index'; +var locale = { + name: 'km', + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + weekStart: 1, + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/kn.js b/node_modules/dayjs/esm/locale/kn.js new file mode 100644 index 0000000..b9ca9b9 --- /dev/null +++ b/node_modules/dayjs/esm/locale/kn.js @@ -0,0 +1,38 @@ +// Kannada [kn] +import dayjs from '../index'; +var locale = { + name: 'kn', + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm' + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ko.js b/node_modules/dayjs/esm/locale/ko.js new file mode 100644 index 0000000..cfad49d --- /dev/null +++ b/node_modules/dayjs/esm/locale/ko.js @@ -0,0 +1,45 @@ +// Korean [ko] +import dayjs from '../index'; +var locale = { + name: 'ko', + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "\uC77C"; + }, + formats: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm' + }, + meridiem: function meridiem(hour) { + return hour < 12 ? '오전' : '오후'; + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ku.js b/node_modules/dayjs/esm/locale/ku.js new file mode 100644 index 0000000..e56664e --- /dev/null +++ b/node_modules/dayjs/esm/locale/ku.js @@ -0,0 +1,77 @@ +// Kurdish [ku] +import dayjs from '../index'; +export var englishToArabicNumbersMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠' +}; +var arabicToEnglishNumbersMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' +}; +var months = ['کانوونی دووەم', 'شوبات', 'ئادار', 'نیسان', 'ئایار', 'حوزەیران', 'تەممووز', 'ئاب', 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', 'کانوونی یەکەم']; +var locale = { + name: 'ku', + months: months, + monthsShort: months, + weekdays: 'یەکشەممە_دووشەممە_سێشەممە_چوارشەممە_پێنجشەممە_هەینی_شەممە'.split('_'), + weekdaysShort: 'یەکشەم_دووشەم_سێشەم_چوارشەم_پێنجشەم_هەینی_شەممە'.split('_'), + weekStart: 6, + weekdaysMin: 'ی_د_س_چ_پ_هـ_ش'.split('_'), + preparse: function preparse(string) { + return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return arabicToEnglishNumbersMap[match]; + }).replace(/،/g, ','); + }, + postformat: function postformat(string) { + return string.replace(/\d/g, function (match) { + return englishToArabicNumbersMap[match]; + }).replace(/,/g, '،'); + }, + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + meridiem: function meridiem(hour) { + return hour < 12 ? 'پ.ن' : 'د.ن'; + }, + relativeTime: { + future: 'لە %s', + past: 'لەمەوپێش %s', + s: 'چەند چرکەیەک', + m: 'یەک خولەک', + mm: '%d خولەک', + h: 'یەک کاتژمێر', + hh: '%d کاتژمێر', + d: 'یەک ڕۆژ', + dd: '%d ڕۆژ', + M: 'یەک مانگ', + MM: '%d مانگ', + y: 'یەک ساڵ', + yy: '%d ساڵ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ky.js b/node_modules/dayjs/esm/locale/ky.js new file mode 100644 index 0000000..fd04477 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ky.js @@ -0,0 +1,39 @@ +// Kyrgyz [ky] +import dayjs from '../index'; +var locale = { + name: 'ky', + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + weekStart: 1, + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/lb.js b/node_modules/dayjs/esm/locale/lb.js new file mode 100644 index 0000000..21ef4aa --- /dev/null +++ b/node_modules/dayjs/esm/locale/lb.js @@ -0,0 +1,24 @@ +// Luxembourgish [lb] +import dayjs from '../index'; +var locale = { + name: 'lb', + weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + weekStart: 1, + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/lo.js b/node_modules/dayjs/esm/locale/lo.js new file mode 100644 index 0000000..7732ec4 --- /dev/null +++ b/node_modules/dayjs/esm/locale/lo.js @@ -0,0 +1,38 @@ +// Lao [lo] +import dayjs from '../index'; +var locale = { + name: 'lo', + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm' + }, + 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 ປີ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/lt.js b/node_modules/dayjs/esm/locale/lt.js new file mode 100644 index 0000000..cb46ca9 --- /dev/null +++ b/node_modules/dayjs/esm/locale/lt.js @@ -0,0 +1,70 @@ +// Lithuanian [lt] +import dayjs from '../index'; +var monthFormat = 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'); +var monthStandalone = 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'); // eslint-disable-next-line no-useless-escape + +var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/; + +var months = function months(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()]; + } + + return monthStandalone[dayjsInstance.month()]; +}; + +months.s = monthStandalone; +months.f = monthFormat; +var locale = { + name: 'lt', + weekdays: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), + weekdaysShort: 'sek_pir_ant_tre_ket_pen_šeš'.split('_'), + weekdaysMin: 's_p_a_t_k_pn_š'.split('_'), + months: months, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + relativeTime: { + future: 'už %s', + past: 'prieš %s', + s: 'kelias sekundes', + m: 'minutę', + mm: '%d minutes', + h: 'valandą', + hh: '%d valandas', + d: 'dieną', + dd: '%d dienas', + M: 'mėnesį', + MM: '%d mėnesius', + y: 'metus', + yy: '%d metus' + }, + format: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/lv.js b/node_modules/dayjs/esm/locale/lv.js new file mode 100644 index 0000000..4b18a61 --- /dev/null +++ b/node_modules/dayjs/esm/locale/lv.js @@ -0,0 +1,39 @@ +// Latvian [lv] +import dayjs from '../index'; +var locale = { + name: 'lv', + weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'), + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), + weekStart: 1, + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm' + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: 'dažām sekundēm', + m: 'minūtes', + mm: '%d minūtēm', + h: 'stundas', + hh: '%d stundām', + d: 'dienas', + dd: '%d dienām', + M: 'mēneša', + MM: '%d mēnešiem', + y: 'gada', + yy: '%d gadiem' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/me.js b/node_modules/dayjs/esm/locale/me.js new file mode 100644 index 0000000..465c0ff --- /dev/null +++ b/node_modules/dayjs/esm/locale/me.js @@ -0,0 +1,24 @@ +// Montenegrin [me] +import dayjs from '../index'; +var locale = { + name: 'me', + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), + weekStart: 1, + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/mi.js b/node_modules/dayjs/esm/locale/mi.js new file mode 100644 index 0000000..3b56f0e --- /dev/null +++ b/node_modules/dayjs/esm/locale/mi.js @@ -0,0 +1,39 @@ +// Maori [mi] +import dayjs from '../index'; +var locale = { + name: 'mi', + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), + weekStart: 1, + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm' + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/mk.js b/node_modules/dayjs/esm/locale/mk.js new file mode 100644 index 0000000..8522c26 --- /dev/null +++ b/node_modules/dayjs/esm/locale/mk.js @@ -0,0 +1,39 @@ +// Macedonian [mk] +import dayjs from '../index'; +var locale = { + name: 'mk', + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), + weekStart: 1, + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm' + }, + relativeTime: { + future: 'после %s', + past: 'пред %s', + s: 'неколку секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + M: 'месец', + MM: '%d месеци', + y: 'година', + yy: '%d години' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ml.js b/node_modules/dayjs/esm/locale/ml.js new file mode 100644 index 0000000..bfcc277 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ml.js @@ -0,0 +1,38 @@ +// Malayalam [ml] +import dayjs from '../index'; +var locale = { + name: 'ml', + weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു' + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/mn.js b/node_modules/dayjs/esm/locale/mn.js new file mode 100644 index 0000000..d93cae2 --- /dev/null +++ b/node_modules/dayjs/esm/locale/mn.js @@ -0,0 +1,38 @@ +// Mongolian [mn] +import dayjs from '../index'; +var locale = { + name: 'mn', + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm' + }, + relativeTime: { + future: '%s', + past: '%s', + s: 'саяхан', + m: 'м', + mm: '%dм', + h: '1ц', + hh: '%dц', + d: '1ө', + dd: '%dө', + M: '1с', + MM: '%dс', + y: '1ж', + yy: '%dж' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/mr.js b/node_modules/dayjs/esm/locale/mr.js new file mode 100644 index 0000000..9eac8a7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/mr.js @@ -0,0 +1,23 @@ +// Marathi [mr] +import dayjs from '../index'; +var locale = { + name: 'mr', + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ms-my.js b/node_modules/dayjs/esm/locale/ms-my.js new file mode 100644 index 0000000..5138219 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ms-my.js @@ -0,0 +1,39 @@ +// Malay [ms-my] +import dayjs from '../index'; +var locale = { + name: 'ms-my', + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), + weekStart: 1, + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ms.js b/node_modules/dayjs/esm/locale/ms.js new file mode 100644 index 0000000..86349f3 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ms.js @@ -0,0 +1,39 @@ +// Malay [ms] +import dayjs from '../index'; +var locale = { + name: 'ms', + 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('_'), + 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('_'), + weekStart: 1, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH.mm', + LLLL: 'dddd, D MMMM YYYY HH.mm' + }, + 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' + }, + ordinal: function ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/mt.js b/node_modules/dayjs/esm/locale/mt.js new file mode 100644 index 0000000..9c90953 --- /dev/null +++ b/node_modules/dayjs/esm/locale/mt.js @@ -0,0 +1,39 @@ +// Maltese (Malta) [mt] +import dayjs from '../index'; +var locale = { + name: 'mt', + weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'), + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'), + weekStart: 1, + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/my.js b/node_modules/dayjs/esm/locale/my.js new file mode 100644 index 0000000..73b2633 --- /dev/null +++ b/node_modules/dayjs/esm/locale/my.js @@ -0,0 +1,39 @@ +// Burmese [my] +import dayjs from '../index'; +var locale = { + name: 'my', + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), + weekStart: 1, + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/nb.js b/node_modules/dayjs/esm/locale/nb.js new file mode 100644 index 0000000..1d7b1eb --- /dev/null +++ b/node_modules/dayjs/esm/locale/nb.js @@ -0,0 +1,40 @@ +// Norwegian Bokmål [nb] +import dayjs from '../index'; +var locale = { + name: 'nb', + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' + }, + relativeTime: { + future: 'om %s', + past: '%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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ne.js b/node_modules/dayjs/esm/locale/ne.js new file mode 100644 index 0000000..4f5a004 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ne.js @@ -0,0 +1,40 @@ +// Nepalese [ne] +import dayjs from '../index'; +var locale = { + name: 'ne', + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मे_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), + monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), + relativeTime: { + future: '%s पछि', + past: '%s अघि', + s: 'सेकेन्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'घन्टा', + hh: '%d घन्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक वर्ष', + yy: '%d वर्ष' + }, + ordinal: function ordinal(n) { + return ("" + n).replace(/\d/g, function (i) { + return '०१२३४५६७८९'[i]; + }); + }, + formats: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/nl-be.js b/node_modules/dayjs/esm/locale/nl-be.js new file mode 100644 index 0000000..51465b7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/nl-be.js @@ -0,0 +1,39 @@ +// Dutch (Belgium) [nl-be] +import dayjs from '../index'; +var locale = { + name: 'nl-be', + weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), + monthsShort: 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + weekStart: 1, + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/nl.js b/node_modules/dayjs/esm/locale/nl.js new file mode 100644 index 0000000..ee1ac74 --- /dev/null +++ b/node_modules/dayjs/esm/locale/nl.js @@ -0,0 +1,40 @@ +// Dutch [nl] +import dayjs from '../index'; +var locale = { + name: 'nl', + 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('_'), + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), + monthsShort: 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + ordinal: function ordinal(n) { + return "[" + n + (n === 1 || n === 8 || n >= 20 ? 'ste' : 'de') + "]"; + }, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + m: 'een minuut', + mm: '%d minuten', + h: 'een uur', + hh: '%d uur', + d: 'een dag', + dd: '%d dagen', + M: 'een maand', + MM: '%d maanden', + y: 'een jaar', + yy: '%d jaar' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/nn.js b/node_modules/dayjs/esm/locale/nn.js new file mode 100644 index 0000000..43767a4 --- /dev/null +++ b/node_modules/dayjs/esm/locale/nn.js @@ -0,0 +1,39 @@ +// Nynorsk [nn] +import dayjs from '../index'; +var locale = { + name: 'nn', + 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_la'.split('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + relativeTime: { + future: 'om %s', + past: 'for %s sidan', + s: 'nokre sekund', + m: 'eitt minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + M: 'ein månad', + MM: '%d månadar', + y: 'eitt år', + yy: '%d år' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/oc-lnc.js b/node_modules/dayjs/esm/locale/oc-lnc.js new file mode 100644 index 0000000..91e2f0d --- /dev/null +++ b/node_modules/dayjs/esm/locale/oc-lnc.js @@ -0,0 +1,39 @@ +// Occitan, lengadocian dialecte [oc-lnc] +import dayjs from '../index'; +var locale = { + name: 'oc-lnc', + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'), + weekdaysShort: 'Dg_Dl_Dm_Dc_Dj_Dv_Ds'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + months: 'genièr_febrièr_març_abrial_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'), + monthsShort: 'gen_feb_març_abr_mai_junh_julh_ago_set_oct_nov_dec'.split('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm' + }, + relativeTime: { + future: 'd\'aquí %s', + past: 'fa %s', + s: 'unas segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans' + }, + ordinal: function ordinal(n) { + return n + "\xBA"; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/pa-in.js b/node_modules/dayjs/esm/locale/pa-in.js new file mode 100644 index 0000000..624a852 --- /dev/null +++ b/node_modules/dayjs/esm/locale/pa-in.js @@ -0,0 +1,38 @@ +// Punjabi (India) [pa-in] +import dayjs from '../index'; +var locale = { + name: 'pa-in', + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/pl.js b/node_modules/dayjs/esm/locale/pl.js new file mode 100644 index 0000000..368b2a5 --- /dev/null +++ b/node_modules/dayjs/esm/locale/pl.js @@ -0,0 +1,87 @@ +// Polish [pl] +import dayjs from '../index'; + +function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; // eslint-disable-line +} +/* eslint-disable */ + + +function translate(number, withoutSuffix, key) { + var result = number + " "; + + switch (key) { + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } +} +/* eslint-enable */ + + +var monthFormat = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); +var monthStandalone = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'); +var MONTHS_IN_FORMAT = /D MMMM/; + +var months = function months(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()]; + } + + return monthStandalone[dayjsInstance.month()]; +}; + +months.s = monthStandalone; +months.f = monthFormat; +var locale = { + name: 'pl', + weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + months: months, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + weekStart: 1, + yearStart: 4, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/pt-br.js b/node_modules/dayjs/esm/locale/pt-br.js new file mode 100644 index 0000000..0635cd8 --- /dev/null +++ b/node_modules/dayjs/esm/locale/pt-br.js @@ -0,0 +1,38 @@ +// Portuguese (Brazil) [pt-br] +import dayjs from '../index'; +var locale = { + name: 'pt-br', + 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: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "\xBA"; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/pt.js b/node_modules/dayjs/esm/locale/pt.js new file mode 100644 index 0000000..cba2331 --- /dev/null +++ b/node_modules/dayjs/esm/locale/pt.js @@ -0,0 +1,40 @@ +// Portuguese [pt] +import dayjs from '../index'; +var locale = { + name: 'pt', + weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sab'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sa'.split('_'), + 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('_'), + ordinal: function ordinal(n) { + return n + "\xBA"; + }, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'alguns 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/rn.js b/node_modules/dayjs/esm/locale/rn.js new file mode 100644 index 0000000..21b3cdb --- /dev/null +++ b/node_modules/dayjs/esm/locale/rn.js @@ -0,0 +1,39 @@ +// Kirundi [rn] +import dayjs from '../index'; +var locale = { + name: 'rn', + weekdays: 'Ku wa Mungu_Ku wa Mbere_Ku wa Kabiri_Ku wa Gatatu_Ku wa Kane_Ku wa Gatanu_Ku wa Gatandatu'.split('_'), + weekdaysShort: 'Kngu_Kmbr_Kbri_Ktat_Kkan_Ktan_Kdat'.split('_'), + weekdaysMin: 'K7_K1_K2_K3_K4_K5_K6'.split('_'), + months: 'Nzero_Ruhuhuma_Ntwarante_Ndamukiza_Rusama_Ruhenshi_Mukakaro_Myandagaro_Nyakanga_Gitugutu_Munyonyo_Kigarama'.split('_'), + monthsShort: 'Nzer_Ruhuh_Ntwar_Ndam_Rus_Ruhen_Muk_Myand_Nyak_Git_Muny_Kig'.split('_'), + weekStart: 1, + ordinal: function ordinal(n) { + return n; + }, + relativeTime: { + future: 'mu %s', + past: '%s', + s: 'amasegonda', + m: 'Umunota', + mm: '%d iminota', + h: 'isaha', + hh: '%d amasaha', + d: 'Umunsi', + dd: '%d iminsi', + M: 'ukwezi', + MM: '%d amezi', + y: 'umwaka', + yy: '%d imyaka' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ro.js b/node_modules/dayjs/esm/locale/ro.js new file mode 100644 index 0000000..93ef6bf --- /dev/null +++ b/node_modules/dayjs/esm/locale/ro.js @@ -0,0 +1,39 @@ +// Romanian [ro] +import dayjs from '../index'; +var locale = { + name: 'ro', + 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('_'), + 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('_'), + weekStart: 1, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm' + }, + relativeTime: { + future: 'peste %s', + past: 'acum %s', + s: 'câteva secunde', + m: 'un minut', + mm: '%d minute', + h: 'o oră', + hh: '%d ore', + d: 'o zi', + dd: '%d zile', + M: 'o lună', + MM: '%d luni', + y: 'un an', + yy: '%d ani' + }, + ordinal: function ordinal(n) { + return n; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ru.js b/node_modules/dayjs/esm/locale/ru.js new file mode 100644 index 0000000..fbb1b35 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ru.js @@ -0,0 +1,99 @@ +// Russian [ru] +import dayjs from '../index'; +var monthFormat = 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'); +var monthStandalone = 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'); +var monthShortFormat = 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'); +var monthShortStandalone = 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_'); +var MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; // eslint-disable-line +} + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет' + }; + + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } + + return number + " " + plural(format[key], +number); +} + +var months = function months(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()]; + } + + return monthStandalone[dayjsInstance.month()]; +}; + +months.s = monthStandalone; +months.f = monthFormat; + +var monthsShort = function monthsShort(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthShortFormat[dayjsInstance.month()]; + } + + return monthShortStandalone[dayjsInstance.month()]; +}; + +monthsShort.s = monthShortStandalone; +monthsShort.f = monthShortFormat; +var locale = { + name: 'ru', + weekdays: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), + weekdaysShort: 'вск_пнд_втр_срд_чтв_птн_сбт'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + months: months, + monthsShort: monthsShort, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm' + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural + }, + ordinal: function ordinal(n) { + return n; + }, + meridiem: function meridiem(hour) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } + + return 'вечера'; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/rw.js b/node_modules/dayjs/esm/locale/rw.js new file mode 100644 index 0000000..1e53ac7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/rw.js @@ -0,0 +1,35 @@ +// Kinyarwanda (Rwanda) [rw] +import dayjs from '../index'; +var locale = { + name: 'rw', + weekdays: 'Ku Cyumweru_Kuwa Mbere_Kuwa Kabiri_Kuwa Gatatu_Kuwa Kane_Kuwa Gatanu_Kuwa Gatandatu'.split('_'), + months: 'Mutarama_Gashyantare_Werurwe_Mata_Gicurasi_Kamena_Nyakanga_Kanama_Nzeri_Ukwakira_Ugushyingo_Ukuboza'.split('_'), + relativeTime: { + future: 'mu %s', + past: '%s', + s: 'amasegonda', + m: 'Umunota', + mm: '%d iminota', + h: 'isaha', + hh: '%d amasaha', + d: 'Umunsi', + dd: '%d iminsi', + M: 'ukwezi', + MM: '%d amezi', + y: 'umwaka', + yy: '%d imyaka' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + ordinal: function ordinal(n) { + return n; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sd.js b/node_modules/dayjs/esm/locale/sd.js new file mode 100644 index 0000000..a429f8d --- /dev/null +++ b/node_modules/dayjs/esm/locale/sd.js @@ -0,0 +1,39 @@ +// Sindhi [sd] +import dayjs from '../index'; +var locale = { + name: 'sd', + weekdays: 'آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر'.split('_'), + months: 'جنوري_فيبروري_مارچ_اپريل_مئي_جون_جولاءِ_آگسٽ_سيپٽمبر_آڪٽوبر_نومبر_ڊسمبر'.split('_'), + weekStart: 1, + weekdaysShort: 'آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر'.split('_'), + monthsShort: 'جنوري_فيبروري_مارچ_اپريل_مئي_جون_جولاءِ_آگسٽ_سيپٽمبر_آڪٽوبر_نومبر_ڊسمبر'.split('_'), + weekdaysMin: 'آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm' + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/se.js b/node_modules/dayjs/esm/locale/se.js new file mode 100644 index 0000000..691099c --- /dev/null +++ b/node_modules/dayjs/esm/locale/se.js @@ -0,0 +1,39 @@ +// Northern Sami [se] +import dayjs from '../index'; +var locale = { + name: 'se', + weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), + weekStart: 1, + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/si.js b/node_modules/dayjs/esm/locale/si.js new file mode 100644 index 0000000..89b67bf --- /dev/null +++ b/node_modules/dayjs/esm/locale/si.js @@ -0,0 +1,38 @@ +// Sinhalese [si] +import dayjs from '../index'; +var locale = { + name: 'si', + weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), + months: 'දුරුතු_නවම්_මැදින්_බක්_වෙසක්_පොසොන්_ඇසළ_නිකිණි_බිනර_වප්_ඉල්_උඳුවප්'.split('_'), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + monthsShort: 'දුරු_නව_මැදි_බක්_වෙස_පොසො_ඇස_නිකි_බින_වප්_ඉල්_උඳු'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + m: 'විනාඩිය', + mm: 'විනාඩි %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sk.js b/node_modules/dayjs/esm/locale/sk.js new file mode 100644 index 0000000..222401f --- /dev/null +++ b/node_modules/dayjs/esm/locale/sk.js @@ -0,0 +1,121 @@ +// Slovak [sk] +import dayjs from '../index'; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; // eslint-disable-line +} +/* eslint-disable */ + + +function translate(number, withoutSuffix, key, isFuture) { + var result = number + " "; + + switch (key) { + case 's': + // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + + case 'm': + // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + + case 'mm': + // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } + + return result + "min\xFAtami"; + + case 'h': + // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + + case 'hh': + // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } + + return result + "hodinami"; + + case 'd': + // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + + case 'dd': + // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } + + return result + "d\u0148ami"; + + case 'M': + // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + + case 'MM': + // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } + + return result + "mesiacmi"; + + case 'y': + // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + + case 'yy': + // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } + + return result + "rokmi"; + } +} +/* eslint-enable */ + + +var locale = { + name: 'sk', + 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('_'), + months: 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'), + monthsShort: 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'), + weekStart: 1, + yearStart: 4, + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY' + }, + relativeTime: { + future: 'za %s', + // Should be `o %s` (change when moment/moment#5408 is fixed) + past: 'pred %s', + s: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sl.js b/node_modules/dayjs/esm/locale/sl.js new file mode 100644 index 0000000..e3c5839 --- /dev/null +++ b/node_modules/dayjs/esm/locale/sl.js @@ -0,0 +1,141 @@ +// Slovenian [sl] +import dayjs from '../index'; + +function dual(n) { + return n % 100 == 2; // eslint-disable-line +} + +function threeFour(n) { + return n % 100 == 3 || n % 100 == 4; // eslint-disable-line +} +/* eslint-disable */ + + +function translate(number, withoutSuffix, key, isFuture) { + var result = number + " "; + + switch (key) { + case 's': + // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; + + case 'm': + // a minute / in a minute / a minute ago + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + + case 'mm': + // 9 minutes / in 9 minutes / 9 minutes ago + if (dual(number)) { + return result + (withoutSuffix || isFuture ? 'minuti' : 'minutama'); + } + + if (threeFour(number)) { + return result + (withoutSuffix || isFuture ? 'minute' : 'minutami'); + } + + return result + (withoutSuffix || isFuture ? 'minut' : 'minutami'); + + case 'h': + // an hour / in an hour / an hour ago + return withoutSuffix ? 'ena ura' : isFuture ? 'eno uro' : 'eno uro'; + + case 'hh': + // 9 hours / in 9 hours / 9 hours ago + if (dual(number)) { + return result + (withoutSuffix || isFuture ? 'uri' : 'urama'); + } + + if (threeFour(number)) { + return result + (withoutSuffix || isFuture ? 'ure' : 'urami'); + } + + return result + (withoutSuffix || isFuture ? 'ur' : 'urami'); + + case 'd': + // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + + case 'dd': + // 9 days / in 9 days / 9 days ago + if (dual(number)) { + return result + (withoutSuffix || isFuture ? 'dneva' : 'dnevoma'); + } + + return result + (withoutSuffix || isFuture ? 'dni' : 'dnevi'); + + case 'M': + // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + + case 'MM': + // 9 months / in 9 months / 9 months ago + if (dual(number)) { + // 2 minutes / in 2 minutes + return result + (withoutSuffix || isFuture ? 'meseca' : 'mesecema'); + } + + if (threeFour(number)) { + return result + (withoutSuffix || isFuture ? 'mesece' : 'meseci'); + } + + return result + (withoutSuffix || isFuture ? 'mesecev' : 'meseci'); + + case 'y': + // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + + case 'yy': + // 9 years / in 9 years / 9 years ago + if (dual(number)) { + // 2 minutes / in 2 minutes + return result + (withoutSuffix || isFuture ? 'leti' : 'letoma'); + } + + if (threeFour(number)) { + return result + (withoutSuffix || isFuture ? 'leta' : 'leti'); + } + + return result + (withoutSuffix || isFuture ? 'let' : 'leti'); + } +} +/* eslint-enable */ + + +var locale = { + name: 'sl', + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'), + weekStart: 1, + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + l: 'D. M. YYYY' + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sq.js b/node_modules/dayjs/esm/locale/sq.js new file mode 100644 index 0000000..625b701 --- /dev/null +++ b/node_modules/dayjs/esm/locale/sq.js @@ -0,0 +1,39 @@ +// Albanian [sq] +import dayjs from '../index'; +var locale = { + name: 'sq', + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), + weekStart: 1, + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sr-cyrl.js b/node_modules/dayjs/esm/locale/sr-cyrl.js new file mode 100644 index 0000000..2e40d51 --- /dev/null +++ b/node_modules/dayjs/esm/locale/sr-cyrl.js @@ -0,0 +1,74 @@ +// Serbian Cyrillic [sr-cyrl] +import dayjs from '../index'; +var translator = { + words: { + m: ['један минут', 'једног минута'], + mm: ['%d минут', '%d минута', '%d минута'], + h: ['један сат', 'једног сата'], + hh: ['%d сат', '%d сата', '%d сати'], + d: ['један дан', 'једног дана'], + dd: ['%d дан', '%d дана', '%d дана'], + M: ['један месец', 'једног месеца'], + MM: ['%d месец', '%d месеца', '%d месеци'], + y: ['једну годину', 'једне године'], + yy: ['%d годину', '%d године', '%d година'] + }, + correctGrammarCase: function correctGrammarCase(number, wordKey) { + if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + + return wordKey[2]; + }, + relativeTimeFormatter: function relativeTimeFormatter(number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key]; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + var word = translator.correctGrammarCase(number, wordKey); // Nominativ + + if (key === 'yy' && withoutSuffix && word === '%d годину') return number + " \u0433\u043E\u0434\u0438\u043D\u0430"; + return word.replace('%d', number); + } +}; +var locale = { + name: 'sr-cyrl', + weekdays: 'Недеља_Понедељак_Уторак_Среда_Четвртак_Петак_Субота'.split('_'), + weekdaysShort: 'Нед._Пон._Уто._Сре._Чет._Пет._Суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + months: 'Јануар_Фебруар_Март_Април_Мај_Јун_Јул_Август_Септембар_Октобар_Новембар_Децембар'.split('_'), + monthsShort: 'Јан._Феб._Мар._Апр._Мај_Јун_Јул_Авг._Сеп._Окт._Нов._Дец.'.split('_'), + weekStart: 1, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + m: translator.relativeTimeFormatter, + mm: translator.relativeTimeFormatter, + h: translator.relativeTimeFormatter, + hh: translator.relativeTimeFormatter, + d: translator.relativeTimeFormatter, + dd: translator.relativeTimeFormatter, + M: translator.relativeTimeFormatter, + MM: translator.relativeTimeFormatter, + y: translator.relativeTimeFormatter, + yy: translator.relativeTimeFormatter + }, + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sr.js b/node_modules/dayjs/esm/locale/sr.js new file mode 100644 index 0000000..f5174ce --- /dev/null +++ b/node_modules/dayjs/esm/locale/sr.js @@ -0,0 +1,74 @@ +// Serbian [sr] +import dayjs from '../index'; +var translator = { + words: { + m: ['jedan minut', 'jednog minuta'], + mm: ['%d minut', '%d minuta', '%d minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['%d sat', '%d sata', '%d sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['%d dan', '%d dana', '%d dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['%d mesec', '%d meseca', '%d meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['%d godinu', '%d godine', '%d godina'] + }, + correctGrammarCase: function correctGrammarCase(number, wordKey) { + if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + + return wordKey[2]; + }, + relativeTimeFormatter: function relativeTimeFormatter(number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key]; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + var word = translator.correctGrammarCase(number, wordKey); // Nominativ + + if (key === 'yy' && withoutSuffix && word === '%d godinu') return number + " godina"; + return word.replace('%d', number); + } +}; +var locale = { + name: 'sr', + weekdays: 'Nedelja_Ponedeljak_Utorak_Sreda_Četvrtak_Petak_Subota'.split('_'), + weekdaysShort: 'Ned._Pon._Uto._Sre._Čet._Pet._Sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + months: 'Januar_Februar_Mart_April_Maj_Jun_Jul_Avgust_Septembar_Oktobar_Novembar_Decembar'.split('_'), + monthsShort: 'Jan._Feb._Mar._Apr._Maj_Jun_Jul_Avg._Sep._Okt._Nov._Dec.'.split('_'), + weekStart: 1, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + m: translator.relativeTimeFormatter, + mm: translator.relativeTimeFormatter, + h: translator.relativeTimeFormatter, + hh: translator.relativeTimeFormatter, + d: translator.relativeTimeFormatter, + dd: translator.relativeTimeFormatter, + M: translator.relativeTimeFormatter, + MM: translator.relativeTimeFormatter, + y: translator.relativeTimeFormatter, + yy: translator.relativeTimeFormatter + }, + ordinal: function ordinal(n) { + return n + "."; + }, + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ss.js b/node_modules/dayjs/esm/locale/ss.js new file mode 100644 index 0000000..4354a48 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ss.js @@ -0,0 +1,39 @@ +// siSwati [ss] +import dayjs from '../index'; +var locale = { + name: 'ss', + weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), + weekStart: 1, + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sv-fi.js b/node_modules/dayjs/esm/locale/sv-fi.js new file mode 100644 index 0000000..a18977f --- /dev/null +++ b/node_modules/dayjs/esm/locale/sv-fi.js @@ -0,0 +1,46 @@ +// Finland Swedish [sv-fi] +import dayjs from '../index'; +var locale = { + name: 'sv-fi', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + ordinal: function ordinal(n) { + var b = n % 10; + var o = b === 1 || b === 2 ? 'a' : 'e'; + return "[" + n + o + "]"; + }, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY, [kl.] HH.mm', + LLLL: 'dddd, D. MMMM YYYY, [kl.] HH.mm', + l: 'D.M.YYYY', + ll: 'D. MMM YYYY', + lll: 'D. MMM YYYY, [kl.] HH.mm', + llll: 'ddd, D. MMM YYYY, [kl.] HH.mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sv.js b/node_modules/dayjs/esm/locale/sv.js new file mode 100644 index 0000000..2563ee7 --- /dev/null +++ b/node_modules/dayjs/esm/locale/sv.js @@ -0,0 +1,44 @@ +// Swedish [sv] +import dayjs from '../index'; +var locale = { + name: 'sv', + 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('_'), + 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('_'), + weekStart: 1, + yearStart: 4, + ordinal: function ordinal(n) { + var b = n % 10; + var o = b === 1 || b === 2 ? 'a' : 'e'; + return "[" + n + o + "]"; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/sw.js b/node_modules/dayjs/esm/locale/sw.js new file mode 100644 index 0000000..287bf33 --- /dev/null +++ b/node_modules/dayjs/esm/locale/sw.js @@ -0,0 +1,39 @@ +// Swahili [sw] +import dayjs from '../index'; +var locale = { + name: 'sw', + weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekStart: 1, + ordinal: function ordinal(n) { + return n; + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'masiku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d' + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ta.js b/node_modules/dayjs/esm/locale/ta.js new file mode 100644 index 0000000..6df25f8 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ta.js @@ -0,0 +1,38 @@ +// Tamil [ta] +import dayjs from '../index'; +var locale = { + name: 'ta', + weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), + monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm' + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/te.js b/node_modules/dayjs/esm/locale/te.js new file mode 100644 index 0000000..392a247 --- /dev/null +++ b/node_modules/dayjs/esm/locale/te.js @@ -0,0 +1,38 @@ +// Telugu [te] +import dayjs from '../index'; +var locale = { + name: 'te', + weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm' + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tet.js b/node_modules/dayjs/esm/locale/tet.js new file mode 100644 index 0000000..ff83eea --- /dev/null +++ b/node_modules/dayjs/esm/locale/tet.js @@ -0,0 +1,39 @@ +// Tetun Dili (East Timor) [tet] +import dayjs from '../index'; +var locale = { + name: 'tet', + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), + weekStart: 1, + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'minutu balun', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tg.js b/node_modules/dayjs/esm/locale/tg.js new file mode 100644 index 0000000..536df0b --- /dev/null +++ b/node_modules/dayjs/esm/locale/tg.js @@ -0,0 +1,39 @@ +// Tajik [tg] +import dayjs from '../index'; +var locale = { + name: 'tg', + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'), + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), + weekStart: 1, + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/th.js b/node_modules/dayjs/esm/locale/th.js new file mode 100644 index 0000000..5cbcdf2 --- /dev/null +++ b/node_modules/dayjs/esm/locale/th.js @@ -0,0 +1,38 @@ +// Thai [th] +import dayjs from '../index'; +var locale = { + name: 'th', + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), + monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), + formats: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm' + }, + 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 ปี' + }, + ordinal: function ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tk.js b/node_modules/dayjs/esm/locale/tk.js new file mode 100644 index 0000000..93390f1 --- /dev/null +++ b/node_modules/dayjs/esm/locale/tk.js @@ -0,0 +1,39 @@ +// Turkmen [tk] +import dayjs from '../index'; +var locale = { + name: 'tk', + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekStart: 1, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl' + }, + ordinal: function ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tl-ph.js b/node_modules/dayjs/esm/locale/tl-ph.js new file mode 100644 index 0000000..0fa84f3 --- /dev/null +++ b/node_modules/dayjs/esm/locale/tl-ph.js @@ -0,0 +1,39 @@ +// Tagalog (Philippines) [tl-ph] +import dayjs from '../index'; +var locale = { + name: 'tl-ph', + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), + weekStart: 1, + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tlh.js b/node_modules/dayjs/esm/locale/tlh.js new file mode 100644 index 0000000..30f52fe --- /dev/null +++ b/node_modules/dayjs/esm/locale/tlh.js @@ -0,0 +1,24 @@ +// Klingon [tlh] +import dayjs from '../index'; +var locale = { + name: 'tlh', + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), + weekStart: 1, + weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), + weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tr.js b/node_modules/dayjs/esm/locale/tr.js new file mode 100644 index 0000000..e7fe24f --- /dev/null +++ b/node_modules/dayjs/esm/locale/tr.js @@ -0,0 +1,39 @@ +// Turkish [tr] +import dayjs from '../index'; +var locale = { + name: 'tr', + 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('_'), + 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('_'), + weekStart: 1, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + 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 ordinal(n) { + return n + "."; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/types.d.ts b/node_modules/dayjs/esm/locale/types.d.ts new file mode 100644 index 0000000..2c24a64 --- /dev/null +++ b/node_modules/dayjs/esm/locale/types.d.ts @@ -0,0 +1,33 @@ +declare interface ILocale { + name: string + weekdays?: string[] + months?: string[] + weekStart?: number + weekdaysShort?: string[] + monthsShort?: string[] + weekdaysMin?: string[] + ordinal?: (n: number) => number | string + formats: Partial<{ + LT: string + LTS: string + L: string + LL: string + LLL: string + LLLL: string + }> + relativeTime: Partial<{ + future: string + past: string + s: string + m: string + mm: string + h: string + hh: string + d: string + dd: string + M: string + MM: string + y: string + yy: string + }> +} diff --git a/node_modules/dayjs/esm/locale/tzl.js b/node_modules/dayjs/esm/locale/tzl.js new file mode 100644 index 0000000..9fa0cd2 --- /dev/null +++ b/node_modules/dayjs/esm/locale/tzl.js @@ -0,0 +1,24 @@ +// Talossan [tzl] +import dayjs from '../index'; +var locale = { + name: 'tzl', + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), + weekStart: 1, + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tzm-latn.js b/node_modules/dayjs/esm/locale/tzm-latn.js new file mode 100644 index 0000000..e5ac6af --- /dev/null +++ b/node_modules/dayjs/esm/locale/tzm-latn.js @@ -0,0 +1,39 @@ +// Central Atlas Tamazight Latin [tzm-latn] +import dayjs from '../index'; +var locale = { + name: 'tzm-latn', + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + weekStart: 6, + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/tzm.js b/node_modules/dayjs/esm/locale/tzm.js new file mode 100644 index 0000000..d94a6c0 --- /dev/null +++ b/node_modules/dayjs/esm/locale/tzm.js @@ -0,0 +1,39 @@ +// Central Atlas Tamazight [tzm] +import dayjs from '../index'; +var locale = { + name: 'tzm', + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + weekStart: 6, + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ug-cn.js b/node_modules/dayjs/esm/locale/ug-cn.js new file mode 100644 index 0000000..d3d6392 --- /dev/null +++ b/node_modules/dayjs/esm/locale/ug-cn.js @@ -0,0 +1,39 @@ +// Uyghur (China) [ug-cn] +import dayjs from '../index'; +var locale = { + name: 'ug-cn', + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'), + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'), + weekStart: 1, + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm' + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/uk.js b/node_modules/dayjs/esm/locale/uk.js new file mode 100644 index 0000000..3c70b13 --- /dev/null +++ b/node_modules/dayjs/esm/locale/uk.js @@ -0,0 +1,77 @@ +// Ukrainian [uk] +import dayjs from '../index'; +var monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'); +var monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'); +var MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; // eslint-disable-line +} + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років' + }; + + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } + + return number + " " + plural(format[key], +number); +} + +var months = function months(dayjsInstance, format) { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()]; + } + + return monthStandalone[dayjsInstance.month()]; +}; + +months.s = monthStandalone; +months.f = monthFormat; +var locale = { + name: 'uk', + weekdays: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), + weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + months: months, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + weekStart: 1, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural + }, + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/ur.js b/node_modules/dayjs/esm/locale/ur.js new file mode 100644 index 0000000..7464c1e --- /dev/null +++ b/node_modules/dayjs/esm/locale/ur.js @@ -0,0 +1,39 @@ +// Urdu [ur] +import dayjs from '../index'; +var locale = { + name: 'ur', + weekdays: 'اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ'.split('_'), + months: 'جنوری_فروری_مارچ_اپریل_مئی_جون_جولائی_اگست_ستمبر_اکتوبر_نومبر_دسمبر'.split('_'), + weekStart: 1, + weekdaysShort: 'اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ'.split('_'), + monthsShort: 'جنوری_فروری_مارچ_اپریل_مئی_جون_جولائی_اگست_ستمبر_اکتوبر_نومبر_دسمبر'.split('_'), + weekdaysMin: 'اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm' + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/uz-latn.js b/node_modules/dayjs/esm/locale/uz-latn.js new file mode 100644 index 0000000..befdfee --- /dev/null +++ b/node_modules/dayjs/esm/locale/uz-latn.js @@ -0,0 +1,39 @@ +// Uzbek Latin [uz-latn] +import dayjs from '../index'; +var locale = { + name: 'uz-latn', + weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), + weekStart: 1, + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm' + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: '%s oldin', + s: 'soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/uz.js b/node_modules/dayjs/esm/locale/uz.js new file mode 100644 index 0000000..4433263 --- /dev/null +++ b/node_modules/dayjs/esm/locale/uz.js @@ -0,0 +1,39 @@ +// Uzbek [uz] +import dayjs from '../index'; +var locale = { + name: 'uz', + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), + weekStart: 1, + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm' + }, + relativeTime: { + future: 'Якин %s ичида', + past: '%s олдин', + s: 'фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/vi.js b/node_modules/dayjs/esm/locale/vi.js new file mode 100644 index 0000000..f55cc73 --- /dev/null +++ b/node_modules/dayjs/esm/locale/vi.js @@ -0,0 +1,43 @@ +// Vietnamese [vi] +import dayjs from '../index'; +var locale = { + name: 'vi', + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), + 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('_'), + weekStart: 1, + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm' + }, + 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' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/x-pseudo.js b/node_modules/dayjs/esm/locale/x-pseudo.js new file mode 100644 index 0000000..ceb6782 --- /dev/null +++ b/node_modules/dayjs/esm/locale/x-pseudo.js @@ -0,0 +1,39 @@ +// Pseudo [x-pseudo] +import dayjs from '../index'; +var locale = { + name: 'x-pseudo', + weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), + weekStart: 1, + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/yo.js b/node_modules/dayjs/esm/locale/yo.js new file mode 100644 index 0000000..1f79468 --- /dev/null +++ b/node_modules/dayjs/esm/locale/yo.js @@ -0,0 +1,39 @@ +// Yoruba Nigeria [yo] +import dayjs from '../index'; +var locale = { + name: 'yo', + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), + weekStart: 1, + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + ordinal: function ordinal(n) { + return n; + }, + formats: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A' + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/zh-cn.js b/node_modules/dayjs/esm/locale/zh-cn.js new file mode 100644 index 0000000..1a7ebf4 --- /dev/null +++ b/node_modules/dayjs/esm/locale/zh-cn.js @@ -0,0 +1,67 @@ +// Chinese (China) [zh-cn] +import dayjs from '../index'; +var locale = { + name: 'zh-cn', + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + ordinal: function ordinal(number, period) { + switch (period) { + case 'W': + return number + "\u5468"; + + default: + return number + "\u65E5"; + } + }, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm' + }, + 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 年' + }, + meridiem: function meridiem(hour, minute) { + var hm = hour * 100 + minute; + + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1100) { + return '上午'; + } else if (hm < 1300) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } + + return '晚上'; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/zh-hk.js b/node_modules/dayjs/esm/locale/zh-hk.js new file mode 100644 index 0000000..3896747 --- /dev/null +++ b/node_modules/dayjs/esm/locale/zh-hk.js @@ -0,0 +1,44 @@ +// Chinese (Hong Kong) [zh-hk] +import dayjs from '../index'; +var locale = { + name: 'zh-hk', + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + ordinal: function ordinal(number, period) { + switch (period) { + case 'W': + return number + "\u9031"; + + default: + return number + "\u65E5"; + } + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm' + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + m: '一分鐘', + mm: '%d 分鐘', + h: '一小時', + hh: '%d 小時', + d: '一天', + dd: '%d 天', + M: '一個月', + MM: '%d 個月', + y: '一年', + yy: '%d 年' + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/zh-tw.js b/node_modules/dayjs/esm/locale/zh-tw.js new file mode 100644 index 0000000..ada89ee --- /dev/null +++ b/node_modules/dayjs/esm/locale/zh-tw.js @@ -0,0 +1,65 @@ +// Chinese (Taiwan) [zh-tw] +import dayjs from '../index'; +var locale = { + name: 'zh-tw', + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + ordinal: function ordinal(number, period) { + switch (period) { + case 'W': + return number + "\u9031"; + + default: + return number + "\u65E5"; + } + }, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm' + }, + 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 年' + }, + meridiem: function meridiem(hour, minute) { + var hm = hour * 100 + minute; + + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1100) { + return '上午'; + } else if (hm < 1300) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } + + return '晚上'; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/locale/zh.js b/node_modules/dayjs/esm/locale/zh.js new file mode 100644 index 0000000..b98ab70 --- /dev/null +++ b/node_modules/dayjs/esm/locale/zh.js @@ -0,0 +1,67 @@ +// Chinese [zh] +import dayjs from '../index'; +var locale = { + name: 'zh', + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + ordinal: function ordinal(number, period) { + switch (period) { + case 'W': + return number + "\u5468"; + + default: + return number + "\u65E5"; + } + }, + weekStart: 1, + yearStart: 4, + formats: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm' + }, + 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 年' + }, + meridiem: function meridiem(hour, minute) { + var hm = hour * 100 + minute; + + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1100) { + return '上午'; + } else if (hm < 1300) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } + + return '晚上'; + } +}; +dayjs.locale(locale, null, true); +export default locale; \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/advancedFormat/index.d.ts b/node_modules/dayjs/esm/plugin/advancedFormat/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/advancedFormat/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/advancedFormat/index.js b/node_modules/dayjs/esm/plugin/advancedFormat/index.js new file mode 100644 index 0000000..f45e4e0 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/advancedFormat/index.js @@ -0,0 +1,66 @@ +import { FORMAT_DEFAULT } from '../../constant'; +export default (function (o, c) { + // locale needed later + var proto = c.prototype; + var oldFormat = proto.format; + + proto.format = function (formatStr) { + var _this = this; + + var locale = this.$locale(); + + if (!this.isValid()) { + return oldFormat.bind(this)(formatStr); + } + + var utils = this.$utils(); + var str = formatStr || FORMAT_DEFAULT; + var result = str.replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function (match) { + switch (match) { + case 'Q': + return Math.ceil((_this.$M + 1) / 3); + + case 'Do': + return locale.ordinal(_this.$D); + + case 'gggg': + return _this.weekYear(); + + case 'GGGG': + return _this.isoWeekYear(); + + case 'wo': + return locale.ordinal(_this.week(), 'W'); + // W for week + + case 'w': + case 'ww': + return utils.s(_this.week(), match === 'w' ? 1 : 2, '0'); + + case 'W': + case 'WW': + return utils.s(_this.isoWeek(), match === 'W' ? 1 : 2, '0'); + + case 'k': + case 'kk': + return utils.s(String(_this.$H === 0 ? 24 : _this.$H), match === 'k' ? 1 : 2, '0'); + + case 'X': + return Math.floor(_this.$d.getTime() / 1000); + + case 'x': + return _this.$d.getTime(); + + case 'z': + return "[" + _this.offsetName() + "]"; + + case 'zzz': + return "[" + _this.offsetName('long') + "]"; + + default: + return match; + } + }); + return oldFormat.bind(this)(result); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/arraySupport/index.d.ts b/node_modules/dayjs/esm/plugin/arraySupport/index.d.ts new file mode 100644 index 0000000..30f8d9c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/arraySupport/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare module 'dayjs/esm' { + interface ConfigTypeMap { + arraySupport: [number?, number?, number?, number?, number?, number?, number?] + } +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/arraySupport/index.js b/node_modules/dayjs/esm/plugin/arraySupport/index.js new file mode 100644 index 0000000..c7edc79 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/arraySupport/index.js @@ -0,0 +1,33 @@ +export default (function (o, c, dayjs) { + var proto = c.prototype; + + var parseDate = function parseDate(cfg) { + var date = cfg.date, + utc = cfg.utc; + + if (Array.isArray(date)) { + if (utc) { + if (!date.length) { + return new Date(); + } + + return new Date(Date.UTC.apply(null, date)); + } + + if (date.length === 1) { + return dayjs(String(date[0])).toDate(); + } + + return new (Function.prototype.bind.apply(Date, [null].concat(date)))(); + } + + return date; + }; + + var oldParse = proto.parse; + + proto.parse = function (cfg) { + cfg.date = parseDate.bind(this)(cfg); + oldParse.bind(this)(cfg); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/badMutable/index.d.ts b/node_modules/dayjs/esm/plugin/badMutable/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/badMutable/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/badMutable/index.js b/node_modules/dayjs/esm/plugin/badMutable/index.js new file mode 100644 index 0000000..679edee --- /dev/null +++ b/node_modules/dayjs/esm/plugin/badMutable/index.js @@ -0,0 +1,61 @@ +export default (function (o, c) { + // locale needed later + var proto = c.prototype; + + proto.$g = function (input, get, set) { + if (this.$utils().u(input)) return this[get]; + return this.$set(set, input); + }; + + proto.set = function (string, _int) { + return this.$set(string, _int); + }; + + var oldStartOf = proto.startOf; + + proto.startOf = function (units, startOf) { + this.$d = oldStartOf.bind(this)(units, startOf).toDate(); + this.init(); + return this; + }; + + var oldAdd = proto.add; + + proto.add = function (number, units) { + this.$d = oldAdd.bind(this)(number, units).toDate(); + this.init(); + return this; + }; + + var oldLocale = proto.locale; + + proto.locale = function (preset, object) { + if (!preset) return this.$L; + this.$L = oldLocale.bind(this)(preset, object).$L; + return this; + }; + + var oldDaysInMonth = proto.daysInMonth; + + proto.daysInMonth = function () { + return oldDaysInMonth.bind(this.clone())(); + }; + + var oldIsSame = proto.isSame; + + proto.isSame = function (that, units) { + return oldIsSame.bind(this.clone())(that, units); + }; + + var oldIsBefore = proto.isBefore; + + proto.isBefore = function (that, units) { + return oldIsBefore.bind(this.clone())(that, units); + }; + + var oldIsAfter = proto.isAfter; + + proto.isAfter = function (that, units) { + return oldIsAfter.bind(this.clone())(that, units); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/bigIntSupport/index.d.ts b/node_modules/dayjs/esm/plugin/bigIntSupport/index.d.ts new file mode 100644 index 0000000..0829ead --- /dev/null +++ b/node_modules/dayjs/esm/plugin/bigIntSupport/index.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs/esm' + +declare module 'dayjs/esm' { + interface ConfigTypeMap { + bigIntSupport: BigInt + } + export function unix(t: BigInt): Dayjs +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/bigIntSupport/index.js b/node_modules/dayjs/esm/plugin/bigIntSupport/index.js new file mode 100644 index 0000000..fa93982 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/bigIntSupport/index.js @@ -0,0 +1,32 @@ +// eslint-disable-next-line valid-typeof +var isBigInt = function isBigInt(num) { + return typeof num === 'bigint'; +}; + +export default (function (o, c, dayjs) { + var proto = c.prototype; + + var parseDate = function parseDate(cfg) { + var date = cfg.date; + + if (isBigInt(date)) { + return Number(date); + } + + return date; + }; + + var oldParse = proto.parse; + + proto.parse = function (cfg) { + cfg.date = parseDate.bind(this)(cfg); + oldParse.bind(this)(cfg); + }; + + var oldUnix = dayjs.unix; + + dayjs.unix = function (timestamp) { + var ts = isBigInt(timestamp) ? Number(timestamp) : timestamp; + return oldUnix(ts); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/buddhistEra/index.d.ts b/node_modules/dayjs/esm/plugin/buddhistEra/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/buddhistEra/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/buddhistEra/index.js b/node_modules/dayjs/esm/plugin/buddhistEra/index.js new file mode 100644 index 0000000..76ce44c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/buddhistEra/index.js @@ -0,0 +1,21 @@ +import { FORMAT_DEFAULT } from '../../constant'; +export default (function (o, c) { + // locale needed later + var proto = c.prototype; + var oldFormat = proto.format; // extend en locale here + + proto.format = function (formatStr) { + var _this = this; + + var yearBias = 543; + var str = formatStr || FORMAT_DEFAULT; + var result = str.replace(/(\[[^\]]+])|BBBB|BB/g, function (match, a) { + var _this$$utils; + + var year = String(_this.$y + yearBias); + var args = match === 'BB' ? [year.slice(-2), 2] : [year, 4]; + return a || (_this$$utils = _this.$utils()).s.apply(_this$$utils, args.concat(['0'])); + }); + return oldFormat.bind(this)(result); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/calendar/index.d.ts b/node_modules/dayjs/esm/plugin/calendar/index.d.ts new file mode 100644 index 0000000..42bff4b --- /dev/null +++ b/node_modules/dayjs/esm/plugin/calendar/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + calendar(referenceTime?: ConfigType, formats?: object): string + } +} diff --git a/node_modules/dayjs/esm/plugin/calendar/index.js b/node_modules/dayjs/esm/plugin/calendar/index.js new file mode 100644 index 0000000..9abf1e9 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/calendar/index.js @@ -0,0 +1,32 @@ +export default (function (o, c, d) { + var LT = 'h:mm A'; + var L = 'MM/DD/YYYY'; + var calendarFormat = { + lastDay: "[Yesterday at] " + LT, + sameDay: "[Today at] " + LT, + nextDay: "[Tomorrow at] " + LT, + nextWeek: "dddd [at] " + LT, + lastWeek: "[Last] dddd [at] " + LT, + sameElse: L + }; + var proto = c.prototype; + + proto.calendar = function (referenceTime, formats) { + var format = formats || this.$locale().calendar || calendarFormat; + var referenceStartOfDay = d(referenceTime || undefined).startOf('d'); + var diff = this.diff(referenceStartOfDay, 'd', true); + var sameElse = 'sameElse'; + /* eslint-disable no-nested-ternary */ + + var retVal = diff < -6 ? sameElse : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : sameElse; + /* eslint-enable no-nested-ternary */ + + var currentFormat = format[retVal] || calendarFormat[retVal]; + + if (typeof currentFormat === 'function') { + return currentFormat.call(this, d()); + } + + return this.format(currentFormat); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/customParseFormat/index.d.ts b/node_modules/dayjs/esm/plugin/customParseFormat/index.d.ts new file mode 100644 index 0000000..7da585e --- /dev/null +++ b/node_modules/dayjs/esm/plugin/customParseFormat/index.d.ts @@ -0,0 +1,8 @@ +import { PluginFunc } from 'dayjs/esm' + +declare interface PluginOptions { + parseTwoDigitYear?: (yearString: string) => number +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/customParseFormat/index.js b/node_modules/dayjs/esm/plugin/customParseFormat/index.js new file mode 100644 index 0000000..1fd5936 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/customParseFormat/index.js @@ -0,0 +1,320 @@ +import { u } from '../localizedFormat/utils'; +var formattingTokens = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g; +var match1 = /\d/; // 0 - 9 + +var match2 = /\d\d/; // 00 - 99 + +var match3 = /\d{3}/; // 000 - 999 + +var match4 = /\d{4}/; // 0000 - 9999 + +var match1to2 = /\d\d?/; // 0 - 99 + +var matchSigned = /[+-]?\d+/; // -inf - inf + +var matchOffset = /[+-]\d\d:?(\d\d)?|Z/; // +00:00 -00:00 +0000 or -0000 +00 or Z + +var matchWord = /\d*[^-_:/,()\s\d]+/; // Word + +var locale = {}; + +var parseTwoDigitYear = function parseTwoDigitYear(input) { + input = +input; + return input + (input > 68 ? 1900 : 2000); +}; + +function offsetFromString(string) { + if (!string) return 0; + if (string === 'Z') return 0; + var parts = string.match(/([+-]|\d\d)/g); + var minutes = +(parts[1] * 60) + (+parts[2] || 0); + return minutes === 0 ? 0 : parts[0] === '+' ? -minutes : minutes; // eslint-disable-line no-nested-ternary +} + +var addInput = function addInput(property) { + return function (input) { + this[property] = +input; + }; +}; + +var zoneExpressions = [matchOffset, function (input) { + var zone = this.zone || (this.zone = {}); + zone.offset = offsetFromString(input); +}]; + +var getLocalePart = function getLocalePart(name) { + var part = locale[name]; + return part && (part.indexOf ? part : part.s.concat(part.f)); +}; + +var meridiemMatch = function meridiemMatch(input, isLowerCase) { + var isAfternoon; + var _locale = locale, + meridiem = _locale.meridiem; + + if (!meridiem) { + isAfternoon = input === (isLowerCase ? 'pm' : 'PM'); + } else { + for (var i = 1; i <= 24; i += 1) { + // todo: fix input === meridiem(i, 0, isLowerCase) + if (input.indexOf(meridiem(i, 0, isLowerCase)) > -1) { + isAfternoon = i > 12; + break; + } + } + } + + return isAfternoon; +}; + +var expressions = { + A: [matchWord, function (input) { + this.afternoon = meridiemMatch(input, false); + }], + a: [matchWord, function (input) { + this.afternoon = meridiemMatch(input, true); + }], + S: [match1, function (input) { + this.milliseconds = +input * 100; + }], + SS: [match2, function (input) { + this.milliseconds = +input * 10; + }], + SSS: [match3, function (input) { + this.milliseconds = +input; + }], + s: [match1to2, addInput('seconds')], + ss: [match1to2, addInput('seconds')], + m: [match1to2, addInput('minutes')], + mm: [match1to2, addInput('minutes')], + H: [match1to2, addInput('hours')], + h: [match1to2, addInput('hours')], + HH: [match1to2, addInput('hours')], + hh: [match1to2, addInput('hours')], + D: [match1to2, addInput('day')], + DD: [match2, addInput('day')], + Do: [matchWord, function (input) { + var _locale2 = locale, + ordinal = _locale2.ordinal; + + var _input$match = input.match(/\d+/); + + this.day = _input$match[0]; + if (!ordinal) return; + + for (var i = 1; i <= 31; i += 1) { + if (ordinal(i).replace(/\[|\]/g, '') === input) { + this.day = i; + } + } + }], + M: [match1to2, addInput('month')], + MM: [match2, addInput('month')], + MMM: [matchWord, function (input) { + var months = getLocalePart('months'); + var monthsShort = getLocalePart('monthsShort'); + var matchIndex = (monthsShort || months.map(function (_) { + return _.slice(0, 3); + })).indexOf(input) + 1; + + if (matchIndex < 1) { + throw new Error(); + } + + this.month = matchIndex % 12 || matchIndex; + }], + MMMM: [matchWord, function (input) { + var months = getLocalePart('months'); + var matchIndex = months.indexOf(input) + 1; + + if (matchIndex < 1) { + throw new Error(); + } + + this.month = matchIndex % 12 || matchIndex; + }], + Y: [matchSigned, addInput('year')], + YY: [match2, function (input) { + this.year = parseTwoDigitYear(input); + }], + YYYY: [match4, addInput('year')], + Z: zoneExpressions, + ZZ: zoneExpressions +}; + +function correctHours(time) { + var afternoon = time.afternoon; + + if (afternoon !== undefined) { + var hours = time.hours; + + if (afternoon) { + if (hours < 12) { + time.hours += 12; + } + } else if (hours === 12) { + time.hours = 0; + } + + delete time.afternoon; + } +} + +function makeParser(format) { + format = u(format, locale && locale.formats); + var array = format.match(formattingTokens); + var length = array.length; + + for (var i = 0; i < length; i += 1) { + var token = array[i]; + var parseTo = expressions[token]; + var regex = parseTo && parseTo[0]; + var parser = parseTo && parseTo[1]; + + if (parser) { + array[i] = { + regex: regex, + parser: parser + }; + } else { + array[i] = token.replace(/^\[|\]$/g, ''); + } + } + + return function (input) { + var time = {}; + + for (var _i = 0, start = 0; _i < length; _i += 1) { + var _token = array[_i]; + + if (typeof _token === 'string') { + start += _token.length; + } else { + var _regex = _token.regex, + _parser = _token.parser; + var part = input.slice(start); + + var match = _regex.exec(part); + + var value = match[0]; + + _parser.call(time, value); + + input = input.replace(value, ''); + } + } + + correctHours(time); + return time; + }; +} + +var parseFormattedInput = function parseFormattedInput(input, format, utc) { + try { + if (['x', 'X'].indexOf(format) > -1) return new Date((format === 'X' ? 1000 : 1) * input); + var parser = makeParser(format); + + var _parser2 = parser(input), + year = _parser2.year, + month = _parser2.month, + day = _parser2.day, + hours = _parser2.hours, + minutes = _parser2.minutes, + seconds = _parser2.seconds, + milliseconds = _parser2.milliseconds, + zone = _parser2.zone; + + var now = new Date(); + var d = day || (!year && !month ? now.getDate() : 1); + var y = year || now.getFullYear(); + var M = 0; + + if (!(year && !month)) { + M = month > 0 ? month - 1 : now.getMonth(); + } + + var h = hours || 0; + var m = minutes || 0; + var s = seconds || 0; + var ms = milliseconds || 0; + + if (zone) { + return new Date(Date.UTC(y, M, d, h, m, s, ms + zone.offset * 60 * 1000)); + } + + if (utc) { + return new Date(Date.UTC(y, M, d, h, m, s, ms)); + } + + return new Date(y, M, d, h, m, s, ms); + } catch (e) { + return new Date(''); // Invalid Date + } +}; + +export default (function (o, C, d) { + d.p.customParseFormat = true; + + if (o && o.parseTwoDigitYear) { + parseTwoDigitYear = o.parseTwoDigitYear; + } + + var proto = C.prototype; + var oldParse = proto.parse; + + proto.parse = function (cfg) { + var date = cfg.date, + utc = cfg.utc, + args = cfg.args; + this.$u = utc; + var format = args[1]; + + if (typeof format === 'string') { + var isStrictWithoutLocale = args[2] === true; + var isStrictWithLocale = args[3] === true; + var isStrict = isStrictWithoutLocale || isStrictWithLocale; + var pl = args[2]; + + if (isStrictWithLocale) { + pl = args[2]; + } + + locale = this.$locale(); + + if (!isStrictWithoutLocale && pl) { + locale = d.Ls[pl]; + } + + this.$d = parseFormattedInput(date, format, utc); + this.init(); + if (pl && pl !== true) this.$L = this.locale(pl).$L; // use != to treat + // input number 1410715640579 and format string '1410715640579' equal + // eslint-disable-next-line eqeqeq + + if (isStrict && date != this.format(format)) { + this.$d = new Date(''); + } // reset global locale to make parallel unit test + + + locale = {}; + } else if (format instanceof Array) { + var len = format.length; + + for (var i = 1; i <= len; i += 1) { + args[1] = format[i - 1]; + var result = d.apply(this, args); + + if (result.isValid()) { + this.$d = result.$d; + this.$L = result.$L; + this.init(); + break; + } + + if (i === len) this.$d = new Date(''); + } + } else { + oldParse.call(this, cfg); + } + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/dayOfYear/index.d.ts b/node_modules/dayjs/esm/plugin/dayOfYear/index.d.ts new file mode 100644 index 0000000..4b9601e --- /dev/null +++ b/node_modules/dayjs/esm/plugin/dayOfYear/index.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + dayOfYear(): number + dayOfYear(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/esm/plugin/dayOfYear/index.js b/node_modules/dayjs/esm/plugin/dayOfYear/index.js new file mode 100644 index 0000000..0cb1158 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/dayOfYear/index.js @@ -0,0 +1,9 @@ +export default (function (o, c, d) { + var proto = c.prototype; + + proto.dayOfYear = function (input) { + // d(this) is for badMutable + var dayOfYear = Math.round((d(this).startOf('day') - d(this).startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'day'); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/devHelper/index.d.ts b/node_modules/dayjs/esm/plugin/devHelper/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/devHelper/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/devHelper/index.js b/node_modules/dayjs/esm/plugin/devHelper/index.js new file mode 100644 index 0000000..9e2af82 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/devHelper/index.js @@ -0,0 +1,38 @@ +/* eslint-disable no-console */ +export default (function (o, c, d) { + /* istanbul ignore next line */ + if (!process || process.env.NODE_ENV !== 'production') { + var proto = c.prototype; + var oldParse = proto.parse; + + proto.parse = function (cfg) { + var date = cfg.date; + + if (typeof date === 'string' && date.length === 13) { + console.warn("To parse a Unix timestamp like " + date + ", you should pass it as a Number. https://day.js.org/docs/en/parse/unix-timestamp-milliseconds"); + } + + if (typeof date === 'number' && String(date).length === 4) { + console.warn("Guessing you may want to parse the Year " + date + ", you should pass it as a String " + date + ", not a Number. Otherwise, " + date + " will be treated as a Unix timestamp"); + } + + if (cfg.args.length >= 2 && !d.p.customParseFormat) { + console.warn("To parse a date-time string like " + date + " using the given format, you should enable customParseFormat plugin first. https://day.js.org/docs/en/parse/string-format"); + } + + return oldParse.bind(this)(cfg); + }; + + var oldLocale = d.locale; + + d.locale = function (preset, object, isLocal) { + if (typeof object === 'undefined' && typeof preset === 'string') { + if (!d.Ls[preset]) { + console.warn("Guessing you may want to use locale " + preset + ", you have to load it before using it. https://day.js.org/docs/en/i18n/loading-into-nodejs"); + } + } + + return oldLocale(preset, object, isLocal); + }; + } +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/duration/index.d.ts b/node_modules/dayjs/esm/plugin/duration/index.d.ts new file mode 100644 index 0000000..dc974a5 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/duration/index.d.ts @@ -0,0 +1,88 @@ +import { PluginFunc } from 'dayjs/esm' +import { OpUnitType, UnitTypeLongPlural } from 'dayjs/esm'; + +declare const plugin: PluginFunc +export as namespace plugin; +export = plugin + +declare namespace plugin { + /** + * @deprecated Please use more strict types + */ + type DurationInputType = string | number | object + /** + * @deprecated Please use more strict types + */ + type DurationAddType = number | object | Duration + + type DurationUnitsObjectType = Partial<{ + [unit in Exclude | "weeks"]: number + }>; + type DurationUnitType = Exclude + type CreateDurationType = + ((units: DurationUnitsObjectType) => Duration) + & ((time: number, unit?: DurationUnitType) => Duration) + & ((ISO_8601: string) => Duration) + type AddDurationType = CreateDurationType & ((duration: Duration) => Duration) + + interface Duration { + new (input: string | number | object, unit?: string, locale?: string): Duration + + clone(): Duration + + humanize(withSuffix?: boolean): string + + milliseconds(): number + asMilliseconds(): number + + seconds(): number + asSeconds(): number + + minutes(): number + asMinutes(): number + + hours(): number + asHours(): number + + days(): number + asDays(): number + + weeks(): number + asWeeks(): number + + months(): number + asMonths(): number + + years(): number + asYears(): number + + as(unit: DurationUnitType): number + + get(unit: DurationUnitType): number + + add: AddDurationType + + subtract: AddDurationType + + toJSON(): string + + toISOString(): string + + format(formatStr?: string): string + + locale(locale: string): Duration + } +} + +declare module 'dayjs/esm' { + interface Dayjs { + add(duration: plugin.Duration): Dayjs + subtract(duration: plugin.Duration): Dayjs + } + + /** + * @param time If unit is not present, time treated as number of milliseconds + */ + export const duration: plugin.CreateDurationType; + export function isDuration(d: any): d is plugin.Duration +} \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/duration/index.js b/node_modules/dayjs/esm/plugin/duration/index.js new file mode 100644 index 0000000..a241d4b --- /dev/null +++ b/node_modules/dayjs/esm/plugin/duration/index.js @@ -0,0 +1,356 @@ +import { MILLISECONDS_A_DAY, MILLISECONDS_A_HOUR, MILLISECONDS_A_MINUTE, MILLISECONDS_A_SECOND, MILLISECONDS_A_WEEK, REGEX_FORMAT } from '../../constant'; +var MILLISECONDS_A_YEAR = MILLISECONDS_A_DAY * 365; +var MILLISECONDS_A_MONTH = MILLISECONDS_A_YEAR / 12; +var durationRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; +var unitToMS = { + years: MILLISECONDS_A_YEAR, + months: MILLISECONDS_A_MONTH, + days: MILLISECONDS_A_DAY, + hours: MILLISECONDS_A_HOUR, + minutes: MILLISECONDS_A_MINUTE, + seconds: MILLISECONDS_A_SECOND, + milliseconds: 1, + weeks: MILLISECONDS_A_WEEK +}; + +var isDuration = function isDuration(d) { + return d instanceof Duration; +}; // eslint-disable-line no-use-before-define + + +var $d; +var $u; + +var wrapper = function wrapper(input, instance, unit) { + return new Duration(input, unit, instance.$l); +}; // eslint-disable-line no-use-before-define + + +var prettyUnit = function prettyUnit(unit) { + return $u.p(unit) + "s"; +}; + +var isNegative = function isNegative(number) { + return number < 0; +}; + +var roundNumber = function roundNumber(number) { + return isNegative(number) ? Math.ceil(number) : Math.floor(number); +}; + +var absolute = function absolute(number) { + return Math.abs(number); +}; + +var getNumberUnitFormat = function getNumberUnitFormat(number, unit) { + if (!number) { + return { + negative: false, + format: '' + }; + } + + if (isNegative(number)) { + return { + negative: true, + format: "" + absolute(number) + unit + }; + } + + return { + negative: false, + format: "" + number + unit + }; +}; + +var Duration = /*#__PURE__*/function () { + function Duration(input, unit, locale) { + var _this = this; + + this.$d = {}; + this.$l = locale; + + if (input === undefined) { + this.$ms = 0; + this.parseFromMilliseconds(); + } + + if (unit) { + return wrapper(input * unitToMS[prettyUnit(unit)], this); + } + + if (typeof input === 'number') { + this.$ms = input; + this.parseFromMilliseconds(); + return this; + } + + if (typeof input === 'object') { + Object.keys(input).forEach(function (k) { + _this.$d[prettyUnit(k)] = input[k]; + }); + this.calMilliseconds(); + return this; + } + + if (typeof input === 'string') { + var d = input.match(durationRegex); + + if (d) { + var properties = d.slice(2); + var numberD = properties.map(function (value) { + return value != null ? Number(value) : 0; + }); + this.$d.years = numberD[0]; + this.$d.months = numberD[1]; + this.$d.weeks = numberD[2]; + this.$d.days = numberD[3]; + this.$d.hours = numberD[4]; + this.$d.minutes = numberD[5]; + this.$d.seconds = numberD[6]; + this.calMilliseconds(); + return this; + } + } + + return this; + } + + var _proto = Duration.prototype; + + _proto.calMilliseconds = function calMilliseconds() { + var _this2 = this; + + this.$ms = Object.keys(this.$d).reduce(function (total, unit) { + return total + (_this2.$d[unit] || 0) * unitToMS[unit]; + }, 0); + }; + + _proto.parseFromMilliseconds = function parseFromMilliseconds() { + var $ms = this.$ms; + this.$d.years = roundNumber($ms / MILLISECONDS_A_YEAR); + $ms %= MILLISECONDS_A_YEAR; + this.$d.months = roundNumber($ms / MILLISECONDS_A_MONTH); + $ms %= MILLISECONDS_A_MONTH; + this.$d.days = roundNumber($ms / MILLISECONDS_A_DAY); + $ms %= MILLISECONDS_A_DAY; + this.$d.hours = roundNumber($ms / MILLISECONDS_A_HOUR); + $ms %= MILLISECONDS_A_HOUR; + this.$d.minutes = roundNumber($ms / MILLISECONDS_A_MINUTE); + $ms %= MILLISECONDS_A_MINUTE; + this.$d.seconds = roundNumber($ms / MILLISECONDS_A_SECOND); + $ms %= MILLISECONDS_A_SECOND; + this.$d.milliseconds = $ms; + }; + + _proto.toISOString = function toISOString() { + var Y = getNumberUnitFormat(this.$d.years, 'Y'); + var M = getNumberUnitFormat(this.$d.months, 'M'); + var days = +this.$d.days || 0; + + if (this.$d.weeks) { + days += this.$d.weeks * 7; + } + + var D = getNumberUnitFormat(days, 'D'); + var H = getNumberUnitFormat(this.$d.hours, 'H'); + var m = getNumberUnitFormat(this.$d.minutes, 'M'); + var seconds = this.$d.seconds || 0; + + if (this.$d.milliseconds) { + seconds += this.$d.milliseconds / 1000; + seconds = Math.round(seconds * 1000) / 1000; + } + + var S = getNumberUnitFormat(seconds, 'S'); + var negativeMode = Y.negative || M.negative || D.negative || H.negative || m.negative || S.negative; + var T = H.format || m.format || S.format ? 'T' : ''; + var P = negativeMode ? '-' : ''; + var result = P + "P" + Y.format + M.format + D.format + T + H.format + m.format + S.format; + return result === 'P' || result === '-P' ? 'P0D' : result; + }; + + _proto.toJSON = function toJSON() { + return this.toISOString(); + }; + + _proto.format = function format(formatStr) { + var str = formatStr || 'YYYY-MM-DDTHH:mm:ss'; + var matches = { + Y: this.$d.years, + YY: $u.s(this.$d.years, 2, '0'), + YYYY: $u.s(this.$d.years, 4, '0'), + M: this.$d.months, + MM: $u.s(this.$d.months, 2, '0'), + D: this.$d.days, + DD: $u.s(this.$d.days, 2, '0'), + H: this.$d.hours, + HH: $u.s(this.$d.hours, 2, '0'), + m: this.$d.minutes, + mm: $u.s(this.$d.minutes, 2, '0'), + s: this.$d.seconds, + ss: $u.s(this.$d.seconds, 2, '0'), + SSS: $u.s(this.$d.milliseconds, 3, '0') + }; + return str.replace(REGEX_FORMAT, function (match, $1) { + return $1 || String(matches[match]); + }); + }; + + _proto.as = function as(unit) { + return this.$ms / unitToMS[prettyUnit(unit)]; + }; + + _proto.get = function get(unit) { + var base = this.$ms; + var pUnit = prettyUnit(unit); + + if (pUnit === 'milliseconds') { + base %= 1000; + } else if (pUnit === 'weeks') { + base = roundNumber(base / unitToMS[pUnit]); + } else { + base = this.$d[pUnit]; + } + + return base || 0; // a === 0 will be true on both 0 and -0 + }; + + _proto.add = function add(input, unit, isSubtract) { + var another; + + if (unit) { + another = input * unitToMS[prettyUnit(unit)]; + } else if (isDuration(input)) { + another = input.$ms; + } else { + another = wrapper(input, this).$ms; + } + + return wrapper(this.$ms + another * (isSubtract ? -1 : 1), this); + }; + + _proto.subtract = function subtract(input, unit) { + return this.add(input, unit, true); + }; + + _proto.locale = function locale(l) { + var that = this.clone(); + that.$l = l; + return that; + }; + + _proto.clone = function clone() { + return wrapper(this.$ms, this); + }; + + _proto.humanize = function humanize(withSuffix) { + return $d().add(this.$ms, 'ms').locale(this.$l).fromNow(!withSuffix); + }; + + _proto.valueOf = function valueOf() { + return this.asMilliseconds(); + }; + + _proto.milliseconds = function milliseconds() { + return this.get('milliseconds'); + }; + + _proto.asMilliseconds = function asMilliseconds() { + return this.as('milliseconds'); + }; + + _proto.seconds = function seconds() { + return this.get('seconds'); + }; + + _proto.asSeconds = function asSeconds() { + return this.as('seconds'); + }; + + _proto.minutes = function minutes() { + return this.get('minutes'); + }; + + _proto.asMinutes = function asMinutes() { + return this.as('minutes'); + }; + + _proto.hours = function hours() { + return this.get('hours'); + }; + + _proto.asHours = function asHours() { + return this.as('hours'); + }; + + _proto.days = function days() { + return this.get('days'); + }; + + _proto.asDays = function asDays() { + return this.as('days'); + }; + + _proto.weeks = function weeks() { + return this.get('weeks'); + }; + + _proto.asWeeks = function asWeeks() { + return this.as('weeks'); + }; + + _proto.months = function months() { + return this.get('months'); + }; + + _proto.asMonths = function asMonths() { + return this.as('months'); + }; + + _proto.years = function years() { + return this.get('years'); + }; + + _proto.asYears = function asYears() { + return this.as('years'); + }; + + return Duration; +}(); + +var manipulateDuration = function manipulateDuration(date, duration, k) { + return date.add(duration.years() * k, 'y').add(duration.months() * k, 'M').add(duration.days() * k, 'd').add(duration.hours() * k, 'h').add(duration.minutes() * k, 'm').add(duration.seconds() * k, 's').add(duration.milliseconds() * k, 'ms'); +}; + +export default (function (option, Dayjs, dayjs) { + $d = dayjs; + $u = dayjs().$utils(); + + dayjs.duration = function (input, unit) { + var $l = dayjs.locale(); + return wrapper(input, { + $l: $l + }, unit); + }; + + dayjs.isDuration = isDuration; + var oldAdd = Dayjs.prototype.add; + var oldSubtract = Dayjs.prototype.subtract; + + Dayjs.prototype.add = function (value, unit) { + if (isDuration(value)) { + return manipulateDuration(this, value, 1); + } + + return oldAdd.bind(this)(value, unit); + }; + + Dayjs.prototype.subtract = function (value, unit) { + if (isDuration(value)) { + return manipulateDuration(this, value, -1); + } + + return oldSubtract.bind(this)(value, unit); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isBetween/index.d.ts b/node_modules/dayjs/esm/plugin/isBetween/index.d.ts new file mode 100644 index 0000000..1c62711 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isBetween/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isBetween(a: ConfigType, b: ConfigType, c?: OpUnitType | null, d?: '()' | '[]' | '[)' | '(]'): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isBetween/index.js b/node_modules/dayjs/esm/plugin/isBetween/index.js new file mode 100644 index 0000000..2182a89 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isBetween/index.js @@ -0,0 +1,10 @@ +export default (function (o, c, d) { + c.prototype.isBetween = function (a, b, u, i) { + var dA = d(a); + var dB = d(b); + i = i || '()'; + var dAi = i[0] === '('; + var dBi = i[1] === ')'; + return (dAi ? this.isAfter(dA, u) : !this.isBefore(dA, u)) && (dBi ? this.isBefore(dB, u) : !this.isAfter(dB, u)) || (dAi ? this.isBefore(dA, u) : !this.isAfter(dA, u)) && (dBi ? this.isAfter(dB, u) : !this.isBefore(dB, u)); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isLeapYear/index.d.ts b/node_modules/dayjs/esm/plugin/isLeapYear/index.d.ts new file mode 100644 index 0000000..627ec5a --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isLeapYear/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isLeapYear(): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isLeapYear/index.js b/node_modules/dayjs/esm/plugin/isLeapYear/index.js new file mode 100644 index 0000000..bf1309d --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isLeapYear/index.js @@ -0,0 +1,7 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.isLeapYear = function () { + return this.$y % 4 === 0 && this.$y % 100 !== 0 || this.$y % 400 === 0; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isMoment/index.d.ts b/node_modules/dayjs/esm/plugin/isMoment/index.d.ts new file mode 100644 index 0000000..6e3a69f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isMoment/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + + export function isMoment(input: any): boolean + +} diff --git a/node_modules/dayjs/esm/plugin/isMoment/index.js b/node_modules/dayjs/esm/plugin/isMoment/index.js new file mode 100644 index 0000000..48c8a89 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isMoment/index.js @@ -0,0 +1,5 @@ +export default (function (o, c, f) { + f.isMoment = function (input) { + return f.isDayjs(input); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isSameOrAfter/index.d.ts b/node_modules/dayjs/esm/plugin/isSameOrAfter/index.d.ts new file mode 100644 index 0000000..7b6d239 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isSameOrAfter/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isSameOrAfter(date?: ConfigType, unit?: OpUnitType): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isSameOrAfter/index.js b/node_modules/dayjs/esm/plugin/isSameOrAfter/index.js new file mode 100644 index 0000000..6a5c56f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isSameOrAfter/index.js @@ -0,0 +1,5 @@ +export default (function (o, c) { + c.prototype.isSameOrAfter = function (that, units) { + return this.isSame(that, units) || this.isAfter(that, units); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isSameOrBefore/index.d.ts b/node_modules/dayjs/esm/plugin/isSameOrBefore/index.d.ts new file mode 100644 index 0000000..7ec009f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isSameOrBefore/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isSameOrBefore(date?: ConfigType, unit?: OpUnitType): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isSameOrBefore/index.js b/node_modules/dayjs/esm/plugin/isSameOrBefore/index.js new file mode 100644 index 0000000..18d526a --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isSameOrBefore/index.js @@ -0,0 +1,5 @@ +export default (function (o, c) { + c.prototype.isSameOrBefore = function (that, units) { + return this.isSame(that, units) || this.isBefore(that, units); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isToday/index.d.ts b/node_modules/dayjs/esm/plugin/isToday/index.d.ts new file mode 100644 index 0000000..8d55da8 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isToday/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isToday(): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isToday/index.js b/node_modules/dayjs/esm/plugin/isToday/index.js new file mode 100644 index 0000000..93b36c8 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isToday/index.js @@ -0,0 +1,9 @@ +export default (function (o, c, d) { + var proto = c.prototype; + + proto.isToday = function () { + var comparisonTemplate = 'YYYY-MM-DD'; + var now = d(); + return this.format(comparisonTemplate) === now.format(comparisonTemplate); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isTomorrow/index.d.ts b/node_modules/dayjs/esm/plugin/isTomorrow/index.d.ts new file mode 100644 index 0000000..7652237 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isTomorrow/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isTomorrow(): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isTomorrow/index.js b/node_modules/dayjs/esm/plugin/isTomorrow/index.js new file mode 100644 index 0000000..8cc7238 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isTomorrow/index.js @@ -0,0 +1,9 @@ +export default (function (o, c, d) { + var proto = c.prototype; + + proto.isTomorrow = function () { + var comparisonTemplate = 'YYYY-MM-DD'; + var tomorrow = d().add(1, 'day'); + return this.format(comparisonTemplate) === tomorrow.format(comparisonTemplate); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isYesterday/index.d.ts b/node_modules/dayjs/esm/plugin/isYesterday/index.d.ts new file mode 100644 index 0000000..f4370dc --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isYesterday/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isYesterday(): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isYesterday/index.js b/node_modules/dayjs/esm/plugin/isYesterday/index.js new file mode 100644 index 0000000..fa55373 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isYesterday/index.js @@ -0,0 +1,9 @@ +export default (function (o, c, d) { + var proto = c.prototype; + + proto.isYesterday = function () { + var comparisonTemplate = 'YYYY-MM-DD'; + var yesterday = d().subtract(1, 'day'); + return this.format(comparisonTemplate) === yesterday.format(comparisonTemplate); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isoWeek/index.d.ts b/node_modules/dayjs/esm/plugin/isoWeek/index.d.ts new file mode 100644 index 0000000..6e6a75a --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isoWeek/index.d.ts @@ -0,0 +1,27 @@ +import { PluginFunc, OpUnitType, ConfigType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +type ISOUnitType = OpUnitType | 'isoWeek'; + +declare module 'dayjs/esm' { + interface Dayjs { + isoWeekYear(): number + isoWeek(): number + isoWeek(value: number): Dayjs + + isoWeekday(): number + isoWeekday(value: number): Dayjs + + startOf(unit: ISOUnitType): Dayjs + + endOf(unit: ISOUnitType): Dayjs + + isSame(date?: ConfigType, unit?: ISOUnitType): boolean + + isBefore(date?: ConfigType, unit?: ISOUnitType): boolean + + isAfter(date?: ConfigType, unit?: ISOUnitType): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/isoWeek/index.js b/node_modules/dayjs/esm/plugin/isoWeek/index.js new file mode 100644 index 0000000..289ea7c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isoWeek/index.js @@ -0,0 +1,57 @@ +import { D, W, Y } from '../../constant'; +var isoWeekPrettyUnit = 'isoweek'; +export default (function (o, c, d) { + var getYearFirstThursday = function getYearFirstThursday(year, isUtc) { + var yearFirstDay = (isUtc ? d.utc : d)().year(year).startOf(Y); + var addDiffDays = 4 - yearFirstDay.isoWeekday(); + + if (yearFirstDay.isoWeekday() > 4) { + addDiffDays += 7; + } + + return yearFirstDay.add(addDiffDays, D); + }; + + var getCurrentWeekThursday = function getCurrentWeekThursday(ins) { + return ins.add(4 - ins.isoWeekday(), D); + }; + + var proto = c.prototype; + + proto.isoWeekYear = function () { + var nowWeekThursday = getCurrentWeekThursday(this); + return nowWeekThursday.year(); + }; + + proto.isoWeek = function (week) { + if (!this.$utils().u(week)) { + return this.add((week - this.isoWeek()) * 7, D); + } + + var nowWeekThursday = getCurrentWeekThursday(this); + var diffWeekThursday = getYearFirstThursday(this.isoWeekYear(), this.$u); + return nowWeekThursday.diff(diffWeekThursday, W) + 1; + }; + + proto.isoWeekday = function (week) { + if (!this.$utils().u(week)) { + return this.day(this.day() % 7 ? week : week - 7); + } + + return this.day() || 7; + }; + + var oldStartOf = proto.startOf; + + proto.startOf = function (units, startOf) { + var utils = this.$utils(); + var isStartOf = !utils.u(startOf) ? startOf : true; + var unit = utils.p(units); + + if (unit === isoWeekPrettyUnit) { + return isStartOf ? this.date(this.date() - (this.isoWeekday() - 1)).startOf('day') : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf('day'); + } + + return oldStartOf.bind(this)(units, startOf); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.d.ts b/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.d.ts new file mode 100644 index 0000000..986360f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + isoWeeksInYear(): number + } +} diff --git a/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.js b/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.js new file mode 100644 index 0000000..7161894 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.js @@ -0,0 +1,15 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.isoWeeksInYear = function () { + var isLeapYear = this.isLeapYear(); + var last = this.endOf('y'); + var day = last.day(); + + if (day === 4 || isLeapYear && day === 5) { + return 53; + } + + return 52; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/localeData/index.d.ts b/node_modules/dayjs/esm/plugin/localeData/index.d.ts new file mode 100644 index 0000000..9f8762e --- /dev/null +++ b/node_modules/dayjs/esm/plugin/localeData/index.d.ts @@ -0,0 +1,44 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + type WeekdayNames = [string, string, string, string, string, string, string]; + type MonthNames = [string, string, string, string, string, string, string, string, string, string, string, string]; + + interface InstanceLocaleDataReturn { + firstDayOfWeek(): number; + weekdays(instance?: Dayjs): WeekdayNames; + weekdaysShort(instance?: Dayjs): WeekdayNames; + weekdaysMin(instance?: Dayjs): WeekdayNames; + months(instance?: Dayjs): MonthNames; + monthsShort(instance?: Dayjs): MonthNames; + longDateFormat(format: string): string; + meridiem(hour?: number, minute?: number, isLower?: boolean): string; + ordinal(n: number): string + } + + interface GlobalLocaleDataReturn { + firstDayOfWeek(): number; + weekdays(): WeekdayNames; + weekdaysShort(): WeekdayNames; + weekdaysMin(): WeekdayNames; + months(): MonthNames; + monthsShort(): MonthNames; + longDateFormat(format: string): string; + meridiem(hour?: number, minute?: number, isLower?: boolean): string; + ordinal(n: number): string + } + + interface Dayjs { + localeData(): InstanceLocaleDataReturn; + } + + export function weekdays(localOrder?: boolean): WeekdayNames; + export function weekdaysShort(localOrder?: boolean): WeekdayNames; + export function weekdaysMin(localOrder?: boolean): WeekdayNames; + export function monthsShort(): MonthNames; + export function months(): MonthNames; + export function localeData(): GlobalLocaleDataReturn; +} diff --git a/node_modules/dayjs/esm/plugin/localeData/index.js b/node_modules/dayjs/esm/plugin/localeData/index.js new file mode 100644 index 0000000..c48d92c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/localeData/index.js @@ -0,0 +1,114 @@ +import { t } from '../localizedFormat/utils'; +export default (function (o, c, dayjs) { + // locale needed later + var proto = c.prototype; + + var getLocalePart = function getLocalePart(part) { + return part && (part.indexOf ? part : part.s); + }; + + var getShort = function getShort(ins, target, full, num, localeOrder) { + var locale = ins.name ? ins : ins.$locale(); + var targetLocale = getLocalePart(locale[target]); + var fullLocale = getLocalePart(locale[full]); + var result = targetLocale || fullLocale.map(function (f) { + return f.slice(0, num); + }); + if (!localeOrder) return result; + var weekStart = locale.weekStart; + return result.map(function (_, index) { + return result[(index + (weekStart || 0)) % 7]; + }); + }; + + var getDayjsLocaleObject = function getDayjsLocaleObject() { + return dayjs.Ls[dayjs.locale()]; + }; + + var getLongDateFormat = function getLongDateFormat(l, format) { + return l.formats[format] || t(l.formats[format.toUpperCase()]); + }; + + var localeData = function localeData() { + var _this = this; + + return { + months: function months(instance) { + return instance ? instance.format('MMMM') : getShort(_this, 'months'); + }, + monthsShort: function monthsShort(instance) { + return instance ? instance.format('MMM') : getShort(_this, 'monthsShort', 'months', 3); + }, + firstDayOfWeek: function firstDayOfWeek() { + return _this.$locale().weekStart || 0; + }, + weekdays: function weekdays(instance) { + return instance ? instance.format('dddd') : getShort(_this, 'weekdays'); + }, + weekdaysMin: function weekdaysMin(instance) { + return instance ? instance.format('dd') : getShort(_this, 'weekdaysMin', 'weekdays', 2); + }, + weekdaysShort: function weekdaysShort(instance) { + return instance ? instance.format('ddd') : getShort(_this, 'weekdaysShort', 'weekdays', 3); + }, + longDateFormat: function longDateFormat(format) { + return getLongDateFormat(_this.$locale(), format); + }, + meridiem: this.$locale().meridiem, + ordinal: this.$locale().ordinal + }; + }; + + proto.localeData = function () { + return localeData.bind(this)(); + }; + + dayjs.localeData = function () { + var localeObject = getDayjsLocaleObject(); + return { + firstDayOfWeek: function firstDayOfWeek() { + return localeObject.weekStart || 0; + }, + weekdays: function weekdays() { + return dayjs.weekdays(); + }, + weekdaysShort: function weekdaysShort() { + return dayjs.weekdaysShort(); + }, + weekdaysMin: function weekdaysMin() { + return dayjs.weekdaysMin(); + }, + months: function months() { + return dayjs.months(); + }, + monthsShort: function monthsShort() { + return dayjs.monthsShort(); + }, + longDateFormat: function longDateFormat(format) { + return getLongDateFormat(localeObject, format); + }, + meridiem: localeObject.meridiem, + ordinal: localeObject.ordinal + }; + }; + + dayjs.months = function () { + return getShort(getDayjsLocaleObject(), 'months'); + }; + + dayjs.monthsShort = function () { + return getShort(getDayjsLocaleObject(), 'monthsShort', 'months', 3); + }; + + dayjs.weekdays = function (localeOrder) { + return getShort(getDayjsLocaleObject(), 'weekdays', null, null, localeOrder); + }; + + dayjs.weekdaysShort = function (localeOrder) { + return getShort(getDayjsLocaleObject(), 'weekdaysShort', 'weekdays', 3, localeOrder); + }; + + dayjs.weekdaysMin = function (localeOrder) { + return getShort(getDayjsLocaleObject(), 'weekdaysMin', 'weekdays', 2, localeOrder); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/localizedFormat/index.d.ts b/node_modules/dayjs/esm/plugin/localizedFormat/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/localizedFormat/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/localizedFormat/index.js b/node_modules/dayjs/esm/plugin/localizedFormat/index.js new file mode 100644 index 0000000..9defb1f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/localizedFormat/index.js @@ -0,0 +1,20 @@ +import { FORMAT_DEFAULT } from '../../constant'; +import { u, englishFormats } from './utils'; +export default (function (o, c, d) { + var proto = c.prototype; + var oldFormat = proto.format; + d.en.formats = englishFormats; + + proto.format = function (formatStr) { + if (formatStr === void 0) { + formatStr = FORMAT_DEFAULT; + } + + var _this$$locale = this.$locale(), + _this$$locale$formats = _this$$locale.formats, + formats = _this$$locale$formats === void 0 ? {} : _this$$locale$formats; + + var result = u(formatStr, formats); + return oldFormat.call(this, result); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/localizedFormat/utils.js b/node_modules/dayjs/esm/plugin/localizedFormat/utils.js new file mode 100644 index 0000000..1f48eff --- /dev/null +++ b/node_modules/dayjs/esm/plugin/localizedFormat/utils.js @@ -0,0 +1,20 @@ +// eslint-disable-next-line import/prefer-default-export +export var t = function t(format) { + return format.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function (_, a, b) { + return a || b.slice(1); + }); +}; +export var englishFormats = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A' +}; +export var u = function u(formatStr, formats) { + return formatStr.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function (_, a, b) { + var B = b && b.toUpperCase(); + return a || formats[b] || englishFormats[b] || t(formats[B]); + }); +}; \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/minMax/index.d.ts b/node_modules/dayjs/esm/plugin/minMax/index.d.ts new file mode 100644 index 0000000..143370c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/minMax/index.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + export function max(dayjs: Dayjs[]): Dayjs | null + export function max(...dayjs: Dayjs[]): Dayjs | null + export function min(dayjs: Dayjs[]): Dayjs | null + export function min(...dayjs: Dayjs[]): Dayjs | null +} diff --git a/node_modules/dayjs/esm/plugin/minMax/index.js b/node_modules/dayjs/esm/plugin/minMax/index.js new file mode 100644 index 0000000..0fd68e9 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/minMax/index.js @@ -0,0 +1,39 @@ +export default (function (o, c, d) { + var sortBy = function sortBy(method, dates) { + if (!dates || !dates.length || dates.length === 1 && !dates[0] || dates.length === 1 && Array.isArray(dates[0]) && !dates[0].length) { + return null; + } + + if (dates.length === 1 && dates[0].length > 0) { + var _dates = dates; + dates = _dates[0]; + } + + dates = dates.filter(function (date) { + return date; + }); + var result; + var _dates2 = dates; + result = _dates2[0]; + + for (var i = 1; i < dates.length; i += 1) { + if (!dates[i].isValid() || dates[i][method](result)) { + result = dates[i]; + } + } + + return result; + }; + + d.max = function () { + var args = [].slice.call(arguments, 0); // eslint-disable-line prefer-rest-params + + return sortBy('isAfter', args); + }; + + d.min = function () { + var args = [].slice.call(arguments, 0); // eslint-disable-line prefer-rest-params + + return sortBy('isBefore', args); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/objectSupport/index.d.ts b/node_modules/dayjs/esm/plugin/objectSupport/index.d.ts new file mode 100644 index 0000000..03b8b7c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/objectSupport/index.d.ts @@ -0,0 +1,48 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + set(argument: object): Dayjs + add(argument: object): Dayjs + subtract(argument: object): Dayjs + } + + interface ConfigTypeMap { + objectSupport: { + years?: number | string; + year?: number | string; + y?: number | string; + + months?: number | string; + month?: number | string; + M?: number | string; + + days?: number | string; + day?: number | string; + d?: number | string; + + dates?: number | string; + date?: number | string; + D?: number | string; + + hours?: number | string; + hour?: number | string; + h?: number | string; + + minutes?: number | string; + minute?: number | string; + m?: number | string; + + seconds?: number | string; + second?: number | string; + s?: number | string; + + milliseconds?: number | string; + millisecond?: number | string; + ms?: number | string; + } + } +} diff --git a/node_modules/dayjs/esm/plugin/objectSupport/index.js b/node_modules/dayjs/esm/plugin/objectSupport/index.js new file mode 100644 index 0000000..61636e7 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/objectSupport/index.js @@ -0,0 +1,97 @@ +export default (function (o, c, dayjs) { + var proto = c.prototype; + + var isObject = function isObject(obj) { + return obj !== null && !(obj instanceof Date) && !(obj instanceof Array) && !proto.$utils().u(obj) && obj.constructor.name === 'Object'; + }; + + var prettyUnit = function prettyUnit(u) { + var unit = proto.$utils().p(u); + return unit === 'date' ? 'day' : unit; + }; + + var parseDate = function parseDate(cfg) { + var date = cfg.date, + utc = cfg.utc; + var $d = {}; + + if (isObject(date)) { + if (!Object.keys(date).length) { + return new Date(); + } + + var now = utc ? dayjs.utc() : dayjs(); + Object.keys(date).forEach(function (k) { + $d[prettyUnit(k)] = date[k]; + }); + var d = $d.day || (!$d.year && !($d.month >= 0) ? now.date() : 1); + var y = $d.year || now.year(); + var M = $d.month >= 0 ? $d.month : !$d.year && !$d.day ? now.month() : 0; // eslint-disable-line no-nested-ternary,max-len + + var h = $d.hour || 0; + var m = $d.minute || 0; + var s = $d.second || 0; + var ms = $d.millisecond || 0; + + if (utc) { + return new Date(Date.UTC(y, M, d, h, m, s, ms)); + } + + return new Date(y, M, d, h, m, s, ms); + } + + return date; + }; + + var oldParse = proto.parse; + + proto.parse = function (cfg) { + cfg.date = parseDate.bind(this)(cfg); + oldParse.bind(this)(cfg); + }; + + var oldSet = proto.set; + var oldAdd = proto.add; + var oldSubtract = proto.subtract; + + var callObject = function callObject(call, argument, string, offset) { + if (offset === void 0) { + offset = 1; + } + + var keys = Object.keys(argument); + var chain = this; + keys.forEach(function (key) { + chain = call.bind(chain)(argument[key] * offset, key); + }); + return chain; + }; + + proto.set = function (unit, value) { + value = value === undefined ? unit : value; + + if (unit.constructor.name === 'Object') { + return callObject.bind(this)(function (i, s) { + return oldSet.bind(this)(s, i); + }, value, unit); + } + + return oldSet.bind(this)(unit, value); + }; + + proto.add = function (value, unit) { + if (value.constructor.name === 'Object') { + return callObject.bind(this)(oldAdd, value, unit); + } + + return oldAdd.bind(this)(value, unit); + }; + + proto.subtract = function (value, unit) { + if (value.constructor.name === 'Object') { + return callObject.bind(this)(oldAdd, value, unit, -1); + } + + return oldSubtract.bind(this)(value, unit); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/pluralGetSet/index.d.ts b/node_modules/dayjs/esm/plugin/pluralGetSet/index.d.ts new file mode 100644 index 0000000..7ef7167 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/pluralGetSet/index.d.ts @@ -0,0 +1,44 @@ +import { PluginFunc, UnitType, ConfigType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + years(): number + + years(value: number): Dayjs + + months(): number + + months(value: number): Dayjs + + dates(): number + + dates(value: number): Dayjs + + weeks(): number + + weeks(value: number): Dayjs + + days(): number + + days(value: number): Dayjs + + hours(): number + + hours(value: number): Dayjs + + minutes(): number + + minutes(value: number): Dayjs + + seconds(): number + + seconds(value: number): Dayjs + + milliseconds(): number + + milliseconds(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/esm/plugin/pluralGetSet/index.js b/node_modules/dayjs/esm/plugin/pluralGetSet/index.js new file mode 100644 index 0000000..d8214d6 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/pluralGetSet/index.js @@ -0,0 +1,7 @@ +export default (function (o, c) { + var proto = c.prototype; + var pluralAliases = ['milliseconds', 'seconds', 'minutes', 'hours', 'days', 'weeks', 'isoWeeks', 'months', 'quarters', 'years', 'dates']; + pluralAliases.forEach(function (alias) { + proto[alias] = proto[alias.replace(/s$/, '')]; + }); +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/preParsePostFormat/index.d.ts b/node_modules/dayjs/esm/plugin/preParsePostFormat/index.d.ts new file mode 100644 index 0000000..a17c896 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/preParsePostFormat/index.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/esm/plugin/preParsePostFormat/index.js b/node_modules/dayjs/esm/plugin/preParsePostFormat/index.js new file mode 100644 index 0000000..7654ccb --- /dev/null +++ b/node_modules/dayjs/esm/plugin/preParsePostFormat/index.js @@ -0,0 +1,40 @@ +// Plugin template from https://day.js.org/docs/en/plugin/plugin +export default (function (option, dayjsClass) { + var oldParse = dayjsClass.prototype.parse; + + dayjsClass.prototype.parse = function (cfg) { + if (typeof cfg.date === 'string') { + var locale = this.$locale(); + cfg.date = locale && locale.preparse ? locale.preparse(cfg.date) : cfg.date; + } // original parse result + + + return oldParse.bind(this)(cfg); + }; // // overriding existing API + // // e.g. extend dayjs().format() + + + var oldFormat = dayjsClass.prototype.format; + + dayjsClass.prototype.format = function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + // original format result + var result = oldFormat.call.apply(oldFormat, [this].concat(args)); // return modified result + + var locale = this.$locale(); + return locale && locale.postformat ? locale.postformat(result) : result; + }; + + var oldFromTo = dayjsClass.prototype.fromToBase; + + if (oldFromTo) { + dayjsClass.prototype.fromToBase = function (input, withoutSuffix, instance, isFrom) { + var locale = this.$locale() || instance.$locale(); // original format result + + return oldFromTo.call(this, input, withoutSuffix, instance, isFrom, locale && locale.postformat); + }; + } +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/quarterOfYear/index.d.ts b/node_modules/dayjs/esm/plugin/quarterOfYear/index.d.ts new file mode 100644 index 0000000..37691c1 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/quarterOfYear/index.d.ts @@ -0,0 +1,26 @@ +import { PluginFunc, ConfigType, QUnitType, OpUnitType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + quarter(): number + + quarter(quarter: number): Dayjs + + add(value: number, unit: QUnitType): Dayjs + + subtract(value: number, unit: QUnitType): Dayjs + + startOf(unit: QUnitType | OpUnitType): Dayjs + + endOf(unit: QUnitType | OpUnitType): Dayjs + + isSame(date?: ConfigType, unit?: QUnitType): boolean + + isBefore(date?: ConfigType, unit?: QUnitType): boolean + + isAfter(date?: ConfigType, unit?: QUnitType): boolean + } +} diff --git a/node_modules/dayjs/esm/plugin/quarterOfYear/index.js b/node_modules/dayjs/esm/plugin/quarterOfYear/index.js new file mode 100644 index 0000000..e376889 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/quarterOfYear/index.js @@ -0,0 +1,41 @@ +import { Q, M, D } from '../../constant'; +export default (function (o, c) { + var proto = c.prototype; + + proto.quarter = function (quarter) { + if (!this.$utils().u(quarter)) { + return this.month(this.month() % 3 + (quarter - 1) * 3); + } + + return Math.ceil((this.month() + 1) / 3); + }; + + var oldAdd = proto.add; + + proto.add = function (number, units) { + number = Number(number); // eslint-disable-line no-param-reassign + + var unit = this.$utils().p(units); + + if (unit === Q) { + return this.add(number * 3, M); + } + + return oldAdd.bind(this)(number, units); + }; + + var oldStartOf = proto.startOf; + + proto.startOf = function (units, startOf) { + var utils = this.$utils(); + var isStartOf = !utils.u(startOf) ? startOf : true; + var unit = utils.p(units); + + if (unit === Q) { + var quarter = this.quarter() - 1; + return isStartOf ? this.month(quarter * 3).startOf(M).startOf(D) : this.month(quarter * 3 + 2).endOf(M).endOf(D); + } + + return oldStartOf.bind(this)(units, startOf); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/relativeTime/index.d.ts b/node_modules/dayjs/esm/plugin/relativeTime/index.d.ts new file mode 100644 index 0000000..e1b17cf --- /dev/null +++ b/node_modules/dayjs/esm/plugin/relativeTime/index.d.ts @@ -0,0 +1,24 @@ +import { PluginFunc, ConfigType } from 'dayjs/esm' + +declare interface RelativeTimeThreshold { + l: string + r?: number + d?: string +} + +declare interface RelativeTimeOptions { + rounding?: (num: number) => number + thresholds?: RelativeTimeThreshold[] +} + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + fromNow(withoutSuffix?: boolean): string + from(compared: ConfigType, withoutSuffix?: boolean): string + toNow(withoutSuffix?: boolean): string + to(compared: ConfigType, withoutSuffix?: boolean): string + } +} diff --git a/node_modules/dayjs/esm/plugin/relativeTime/index.js b/node_modules/dayjs/esm/plugin/relativeTime/index.js new file mode 100644 index 0000000..88fdbbe --- /dev/null +++ b/node_modules/dayjs/esm/plugin/relativeTime/index.js @@ -0,0 +1,130 @@ +import * as C from '../../constant'; +export default (function (o, c, d) { + o = o || {}; + var proto = c.prototype; + var relObj = { + 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' + }; + d.en.relativeTime = relObj; + + proto.fromToBase = function (input, withoutSuffix, instance, isFrom, postFormat) { + var loc = instance.$locale().relativeTime || relObj; + var T = o.thresholds || [{ + l: 's', + r: 44, + d: C.S + }, { + l: 'm', + r: 89 + }, { + l: 'mm', + r: 44, + d: C.MIN + }, { + l: 'h', + r: 89 + }, { + l: 'hh', + r: 21, + d: C.H + }, { + l: 'd', + r: 35 + }, { + l: 'dd', + r: 25, + d: C.D + }, { + l: 'M', + r: 45 + }, { + l: 'MM', + r: 10, + d: C.M + }, { + l: 'y', + r: 17 + }, { + l: 'yy', + d: C.Y + }]; + var Tl = T.length; + var result; + var out; + var isFuture; + + for (var i = 0; i < Tl; i += 1) { + var t = T[i]; + + if (t.d) { + result = isFrom ? d(input).diff(instance, t.d, true) : instance.diff(input, t.d, true); + } + + var abs = (o.rounding || Math.round)(Math.abs(result)); + isFuture = result > 0; + + if (abs <= t.r || !t.r) { + if (abs <= 1 && i > 0) t = T[i - 1]; // 1 minutes -> a minute, 0 seconds -> 0 second + + var format = loc[t.l]; + + if (postFormat) { + abs = postFormat("" + abs); + } + + if (typeof format === 'string') { + out = format.replace('%d', abs); + } else { + out = format(abs, withoutSuffix, t.l, isFuture); + } + + break; + } + } + + if (withoutSuffix) return out; + var pastOrFuture = isFuture ? loc.future : loc.past; + + if (typeof pastOrFuture === 'function') { + return pastOrFuture(out); + } + + return pastOrFuture.replace('%s', out); + }; + + function fromTo(input, withoutSuffix, instance, isFrom) { + return proto.fromToBase(input, withoutSuffix, instance, isFrom); + } + + proto.to = function (input, withoutSuffix) { + return fromTo(input, withoutSuffix, this, true); + }; + + proto.from = function (input, withoutSuffix) { + return fromTo(input, withoutSuffix, this); + }; + + var makeNow = function makeNow(thisDay) { + return thisDay.$u ? d.utc() : d(); + }; + + proto.toNow = function (withoutSuffix) { + return this.to(makeNow(this), withoutSuffix); + }; + + proto.fromNow = function (withoutSuffix) { + return this.from(makeNow(this), withoutSuffix); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/timezone/index.d.ts b/node_modules/dayjs/esm/plugin/timezone/index.d.ts new file mode 100644 index 0000000..5a2d9f2 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/timezone/index.d.ts @@ -0,0 +1,20 @@ +import { PluginFunc, ConfigType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + tz(timezone?: string, keepLocalTime?: boolean): Dayjs + offsetName(type?: 'short' | 'long'): string | undefined + } + + interface DayjsTimezone { + (date?: ConfigType, timezone?: string): Dayjs + (date: ConfigType, format: string, timezone?: string): Dayjs + guess(): string + setDefault(timezone?: string): void + } + + const tz: DayjsTimezone +} diff --git a/node_modules/dayjs/esm/plugin/timezone/index.js b/node_modules/dayjs/esm/plugin/timezone/index.js new file mode 100644 index 0000000..490aff2 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/timezone/index.js @@ -0,0 +1,189 @@ +import { MIN, MS } from '../../constant'; +var typeToPos = { + year: 0, + month: 1, + day: 2, + hour: 3, + minute: 4, + second: 5 +}; // Cache time-zone lookups from Intl.DateTimeFormat, +// as it is a *very* slow method. + +var dtfCache = {}; + +var getDateTimeFormat = function getDateTimeFormat(timezone, options) { + if (options === void 0) { + options = {}; + } + + var timeZoneName = options.timeZoneName || 'short'; + var key = timezone + "|" + timeZoneName; + var dtf = dtfCache[key]; + + if (!dtf) { + dtf = new Intl.DateTimeFormat('en-US', { + hour12: false, + timeZone: timezone, + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + timeZoneName: timeZoneName + }); + dtfCache[key] = dtf; + } + + return dtf; +}; + +export default (function (o, c, d) { + var defaultTimezone; + + var makeFormatParts = function makeFormatParts(timestamp, timezone, options) { + if (options === void 0) { + options = {}; + } + + var date = new Date(timestamp); + var dtf = getDateTimeFormat(timezone, options); + return dtf.formatToParts(date); + }; + + var tzOffset = function tzOffset(timestamp, timezone) { + var formatResult = makeFormatParts(timestamp, timezone); + var filled = []; + + for (var i = 0; i < formatResult.length; i += 1) { + var _formatResult$i = formatResult[i], + type = _formatResult$i.type, + value = _formatResult$i.value; + var pos = typeToPos[type]; + + if (pos >= 0) { + filled[pos] = parseInt(value, 10); + } + } + + var hour = filled[3]; // Workaround for the same behavior in different node version + // https://github.com/nodejs/node/issues/33027 + + /* istanbul ignore next */ + + var fixedHour = hour === 24 ? 0 : hour; + var utcString = filled[0] + "-" + filled[1] + "-" + filled[2] + " " + fixedHour + ":" + filled[4] + ":" + filled[5] + ":000"; + var utcTs = d.utc(utcString).valueOf(); + var asTS = +timestamp; + var over = asTS % 1000; + asTS -= over; + return (utcTs - asTS) / (60 * 1000); + }; // find the right offset a given local time. The o input is our guess, which determines which + // offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST) + // https://github.com/moment/luxon/blob/master/src/datetime.js#L76 + + + var fixOffset = function fixOffset(localTS, o0, tz) { + // Our UTC time is just a guess because our offset is just a guess + var utcGuess = localTS - o0 * 60 * 1000; // Test whether the zone matches the offset for this ts + + var o2 = tzOffset(utcGuess, tz); // If so, offset didn't change and we're done + + if (o0 === o2) { + return [utcGuess, o0]; + } // If not, change the ts by the difference in the offset + + + utcGuess -= (o2 - o0) * 60 * 1000; // If that gives us the local time we want, we're done + + var o3 = tzOffset(utcGuess, tz); + + if (o2 === o3) { + return [utcGuess, o2]; + } // If it's different, we're in a hole time. + // The offset has changed, but the we don't adjust the time + + + return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)]; + }; + + var proto = c.prototype; + + proto.tz = function (timezone, keepLocalTime) { + if (timezone === void 0) { + timezone = defaultTimezone; + } + + var oldOffset = this.utcOffset(); + var date = this.toDate(); + var target = date.toLocaleString('en-US', { + timeZone: timezone + }); + var diff = Math.round((date - new Date(target)) / 1000 / 60); + var ins = d(target, { + locale: this.$L + }).$set(MS, this.$ms).utcOffset(-Math.round(date.getTimezoneOffset() / 15) * 15 - diff, true); + + if (keepLocalTime) { + var newOffset = ins.utcOffset(); + ins = ins.add(oldOffset - newOffset, MIN); + } + + ins.$x.$timezone = timezone; + return ins; + }; + + proto.offsetName = function (type) { + // type: short(default) / long + var zone = this.$x.$timezone || d.tz.guess(); + var result = makeFormatParts(this.valueOf(), zone, { + timeZoneName: type + }).find(function (m) { + return m.type.toLowerCase() === 'timezonename'; + }); + return result && result.value; + }; + + var oldStartOf = proto.startOf; + + proto.startOf = function (units, startOf) { + if (!this.$x || !this.$x.$timezone) { + return oldStartOf.call(this, units, startOf); + } + + var withoutTz = d(this.format('YYYY-MM-DD HH:mm:ss:SSS'), { + locale: this.$L + }); + var startOfWithoutTz = oldStartOf.call(withoutTz, units, startOf); + return startOfWithoutTz.tz(this.$x.$timezone, true); + }; + + d.tz = function (input, arg1, arg2) { + var parseFormat = arg2 && arg1; + var timezone = arg2 || arg1 || defaultTimezone; + var previousOffset = tzOffset(+d(), timezone); + + if (typeof input !== 'string') { + // timestamp number || js Date || Day.js + return d(input).tz(timezone); + } + + var localTs = d.utc(input, parseFormat).valueOf(); + + var _fixOffset = fixOffset(localTs, previousOffset, timezone), + targetTs = _fixOffset[0], + targetOffset = _fixOffset[1]; + + var ins = d(targetTs).utcOffset(targetOffset); + ins.$x.$timezone = timezone; + return ins; + }; + + d.tz.guess = function () { + return Intl.DateTimeFormat().resolvedOptions().timeZone; + }; + + d.tz.setDefault = function (timezone) { + defaultTimezone = timezone; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/toArray/index.d.ts b/node_modules/dayjs/esm/plugin/toArray/index.d.ts new file mode 100644 index 0000000..5033831 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/toArray/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + toArray(): number[] + } +} diff --git a/node_modules/dayjs/esm/plugin/toArray/index.js b/node_modules/dayjs/esm/plugin/toArray/index.js new file mode 100644 index 0000000..2b795f4 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/toArray/index.js @@ -0,0 +1,7 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.toArray = function () { + return [this.$y, this.$M, this.$D, this.$H, this.$m, this.$s, this.$ms]; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/toObject/index.d.ts b/node_modules/dayjs/esm/plugin/toObject/index.d.ts new file mode 100644 index 0000000..ad21520 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/toObject/index.d.ts @@ -0,0 +1,20 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +interface DayjsObject { + years: number + months: number + date: number + hours: number + minutes: number + seconds: number + milliseconds: number +} + +declare module 'dayjs/esm' { + interface Dayjs { + toObject(): DayjsObject + } +} diff --git a/node_modules/dayjs/esm/plugin/toObject/index.js b/node_modules/dayjs/esm/plugin/toObject/index.js new file mode 100644 index 0000000..e35d93f --- /dev/null +++ b/node_modules/dayjs/esm/plugin/toObject/index.js @@ -0,0 +1,15 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.toObject = function () { + return { + years: this.$y, + months: this.$M, + date: this.$D, + hours: this.$H, + minutes: this.$m, + seconds: this.$s, + milliseconds: this.$ms + }; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/updateLocale/index.d.ts b/node_modules/dayjs/esm/plugin/updateLocale/index.d.ts new file mode 100644 index 0000000..994a884 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/updateLocale/index.d.ts @@ -0,0 +1,8 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + export function updateLocale(localeName: string, customConfig: Record): Record +} diff --git a/node_modules/dayjs/esm/plugin/updateLocale/index.js b/node_modules/dayjs/esm/plugin/updateLocale/index.js new file mode 100644 index 0000000..1b9965c --- /dev/null +++ b/node_modules/dayjs/esm/plugin/updateLocale/index.js @@ -0,0 +1,12 @@ +export default (function (option, Dayjs, dayjs) { + dayjs.updateLocale = function (locale, customConfig) { + var localeList = dayjs.Ls; + var localeConfig = localeList[locale]; + if (!localeConfig) return; + var customConfigKeys = customConfig ? Object.keys(customConfig) : []; + customConfigKeys.forEach(function (c) { + localeConfig[c] = customConfig[c]; + }); + return localeConfig; // eslint-disable-line consistent-return + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/utc/index.d.ts b/node_modules/dayjs/esm/plugin/utc/index.d.ts new file mode 100644 index 0000000..15c61fe --- /dev/null +++ b/node_modules/dayjs/esm/plugin/utc/index.d.ts @@ -0,0 +1,19 @@ +import { PluginFunc, ConfigType } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + + utc(keepLocalTime?: boolean): Dayjs + + local(): Dayjs + + isUTC(): boolean + + utcOffset(offset: number | string, keepLocalTime?: boolean): Dayjs + } + + export function utc(config?: ConfigType, format?: string, strict?: boolean): Dayjs +} diff --git a/node_modules/dayjs/esm/plugin/utc/index.js b/node_modules/dayjs/esm/plugin/utc/index.js new file mode 100644 index 0000000..a8a05f5 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/utc/index.js @@ -0,0 +1,188 @@ +import { MILLISECONDS_A_MINUTE, MIN } from '../../constant'; +var REGEX_VALID_OFFSET_FORMAT = /[+-]\d\d(?::?\d\d)?/g; +var REGEX_OFFSET_HOURS_MINUTES_FORMAT = /([+-]|\d\d)/g; + +function offsetFromString(value) { + if (value === void 0) { + value = ''; + } + + var offset = value.match(REGEX_VALID_OFFSET_FORMAT); + + if (!offset) { + return null; + } + + var _ref = ("" + offset[0]).match(REGEX_OFFSET_HOURS_MINUTES_FORMAT) || ['-', 0, 0], + indicator = _ref[0], + hoursOffset = _ref[1], + minutesOffset = _ref[2]; + + var totalOffsetInMinutes = +hoursOffset * 60 + +minutesOffset; + + if (totalOffsetInMinutes === 0) { + return 0; + } + + return indicator === '+' ? totalOffsetInMinutes : -totalOffsetInMinutes; +} + +export default (function (option, Dayjs, dayjs) { + var proto = Dayjs.prototype; + + dayjs.utc = function (date) { + var cfg = { + date: date, + utc: true, + args: arguments + }; // eslint-disable-line prefer-rest-params + + return new Dayjs(cfg); // eslint-disable-line no-use-before-define + }; + + proto.utc = function (keepLocalTime) { + var ins = dayjs(this.toDate(), { + locale: this.$L, + utc: true + }); + + if (keepLocalTime) { + return ins.add(this.utcOffset(), MIN); + } + + return ins; + }; + + proto.local = function () { + return dayjs(this.toDate(), { + locale: this.$L, + utc: false + }); + }; + + var oldParse = proto.parse; + + proto.parse = function (cfg) { + if (cfg.utc) { + this.$u = true; + } + + if (!this.$utils().u(cfg.$offset)) { + this.$offset = cfg.$offset; + } + + oldParse.call(this, cfg); + }; + + var oldInit = proto.init; + + proto.init = function () { + if (this.$u) { + var $d = this.$d; + this.$y = $d.getUTCFullYear(); + this.$M = $d.getUTCMonth(); + this.$D = $d.getUTCDate(); + this.$W = $d.getUTCDay(); + this.$H = $d.getUTCHours(); + this.$m = $d.getUTCMinutes(); + this.$s = $d.getUTCSeconds(); + this.$ms = $d.getUTCMilliseconds(); + } else { + oldInit.call(this); + } + }; + + var oldUtcOffset = proto.utcOffset; + + proto.utcOffset = function (input, keepLocalTime) { + var _this$$utils = this.$utils(), + u = _this$$utils.u; + + if (u(input)) { + if (this.$u) { + return 0; + } + + if (!u(this.$offset)) { + return this.$offset; + } + + return oldUtcOffset.call(this); + } + + if (typeof input === 'string') { + input = offsetFromString(input); + + if (input === null) { + return this; + } + } + + var offset = Math.abs(input) <= 16 ? input * 60 : input; + var ins = this; + + if (keepLocalTime) { + ins.$offset = offset; + ins.$u = input === 0; + return ins; + } + + if (input !== 0) { + var localTimezoneOffset = this.$u ? this.toDate().getTimezoneOffset() : -1 * this.utcOffset(); + ins = this.local().add(offset + localTimezoneOffset, MIN); + ins.$offset = offset; + ins.$x.$localOffset = localTimezoneOffset; + } else { + ins = this.utc(); + } + + return ins; + }; + + var oldFormat = proto.format; + var UTC_FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + proto.format = function (formatStr) { + var str = formatStr || (this.$u ? UTC_FORMAT_DEFAULT : ''); + return oldFormat.call(this, str); + }; + + proto.valueOf = function () { + var addedOffset = !this.$utils().u(this.$offset) ? this.$offset + (this.$x.$localOffset || this.$d.getTimezoneOffset()) : 0; + return this.$d.valueOf() - addedOffset * MILLISECONDS_A_MINUTE; + }; + + proto.isUTC = function () { + return !!this.$u; + }; + + proto.toISOString = function () { + return this.toDate().toISOString(); + }; + + proto.toString = function () { + return this.toDate().toUTCString(); + }; + + var oldToDate = proto.toDate; + + proto.toDate = function (type) { + if (type === 's' && this.$offset) { + return dayjs(this.format('YYYY-MM-DD HH:mm:ss:SSS')).toDate(); + } + + return oldToDate.call(this); + }; + + var oldDiff = proto.diff; + + proto.diff = function (input, units, _float) { + if (input && this.$u === input.$u) { + return oldDiff.call(this, input, units, _float); + } + + var localThis = this.local(); + var localInput = dayjs(input).local(); + return oldDiff.call(localThis, localInput, units, _float); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/weekOfYear/index.d.ts b/node_modules/dayjs/esm/plugin/weekOfYear/index.d.ts new file mode 100644 index 0000000..340051b --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekOfYear/index.d.ts @@ -0,0 +1,12 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + week(): number + + week(value : number): Dayjs + } +} diff --git a/node_modules/dayjs/esm/plugin/weekOfYear/index.js b/node_modules/dayjs/esm/plugin/weekOfYear/index.js new file mode 100644 index 0000000..c92406e --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekOfYear/index.js @@ -0,0 +1,44 @@ +import { MS, Y, D, W } from '../../constant'; +export default (function (o, c, d) { + var proto = c.prototype; + + proto.week = function (week) { + if (week === void 0) { + week = null; + } + + if (week !== null) { + return this.add((week - this.week()) * 7, D); + } + + var yearStart = this.$locale().yearStart || 1; + + if (this.month() === 11 && this.date() > 25) { + // d(this) is for badMutable + var nextYearStartDay = d(this).startOf(Y).add(1, Y).date(yearStart); + var thisEndOfWeek = d(this).endOf(W); + + if (nextYearStartDay.isBefore(thisEndOfWeek)) { + return 1; + } + } + + var yearStartDay = d(this).startOf(Y).date(yearStart); + var yearStartWeek = yearStartDay.startOf(W).subtract(1, MS); + var diffInWeek = this.diff(yearStartWeek, W, true); + + if (diffInWeek < 0) { + return d(this).startOf('week').week(); + } + + return Math.ceil(diffInWeek); + }; + + proto.weeks = function (week) { + if (week === void 0) { + week = null; + } + + return this.week(week); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/weekYear/index.d.ts b/node_modules/dayjs/esm/plugin/weekYear/index.d.ts new file mode 100644 index 0000000..5b713e5 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekYear/index.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + weekYear(): number + } +} diff --git a/node_modules/dayjs/esm/plugin/weekYear/index.js b/node_modules/dayjs/esm/plugin/weekYear/index.js new file mode 100644 index 0000000..140dcd4 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekYear/index.js @@ -0,0 +1,19 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.weekYear = function () { + var month = this.month(); + var weekOfYear = this.week(); + var year = this.year(); + + if (weekOfYear === 1 && month === 11) { + return year + 1; + } + + if (month === 0 && weekOfYear >= 52) { + return year - 1; + } + + return year; + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/plugin/weekday/index.d.ts b/node_modules/dayjs/esm/plugin/weekday/index.d.ts new file mode 100644 index 0000000..41945e7 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekday/index.d.ts @@ -0,0 +1,12 @@ +import { PluginFunc } from 'dayjs/esm' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs/esm' { + interface Dayjs { + weekday(): number + + weekday(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/esm/plugin/weekday/index.js b/node_modules/dayjs/esm/plugin/weekday/index.js new file mode 100644 index 0000000..18032b3 --- /dev/null +++ b/node_modules/dayjs/esm/plugin/weekday/index.js @@ -0,0 +1,15 @@ +export default (function (o, c) { + var proto = c.prototype; + + proto.weekday = function (input) { + var weekStart = this.$locale().weekStart || 0; + var $W = this.$W; + var weekday = ($W < weekStart ? $W + 7 : $W) - weekStart; + + if (this.$utils().u(input)) { + return weekday; + } + + return this.subtract(weekday, 'day').add(input, 'day'); + }; +}); \ No newline at end of file diff --git a/node_modules/dayjs/esm/utils.js b/node_modules/dayjs/esm/utils.js new file mode 100644 index 0000000..b5a8131 --- /dev/null +++ b/node_modules/dayjs/esm/utils.js @@ -0,0 +1,58 @@ +import * as C from './constant'; + +var padStart = function padStart(string, length, pad) { + var s = String(string); + if (!s || s.length >= length) return string; + return "" + Array(length + 1 - s.length).join(pad) + string; +}; + +var padZoneStr = function padZoneStr(instance) { + var negMinutes = -instance.utcOffset(); + var minutes = Math.abs(negMinutes); + var hourOffset = Math.floor(minutes / 60); + var minuteOffset = minutes % 60; + return "" + (negMinutes <= 0 ? '+' : '-') + padStart(hourOffset, 2, '0') + ":" + padStart(minuteOffset, 2, '0'); +}; + +var monthDiff = function monthDiff(a, b) { + // function from moment.js in order to keep the same result + if (a.date() < b.date()) return -monthDiff(b, a); + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()); + var anchor = a.clone().add(wholeMonthDiff, C.M); + var c = b - anchor < 0; + var anchor2 = a.clone().add(wholeMonthDiff + (c ? -1 : 1), C.M); + return +(-(wholeMonthDiff + (b - anchor) / (c ? anchor - anchor2 : anchor2 - anchor)) || 0); +}; + +var absFloor = function absFloor(n) { + return n < 0 ? Math.ceil(n) || 0 : Math.floor(n); +}; + +var prettyUnit = function prettyUnit(u) { + var special = { + M: C.M, + y: C.Y, + w: C.W, + d: C.D, + D: C.DATE, + h: C.H, + m: C.MIN, + s: C.S, + ms: C.MS, + Q: C.Q + }; + return special[u] || String(u || '').toLowerCase().replace(/s$/, ''); +}; + +var isUndefined = function isUndefined(s) { + return s === undefined; +}; + +export default { + s: padStart, + z: padZoneStr, + m: monthDiff, + a: absFloor, + p: prettyUnit, + u: isUndefined +}; \ No newline at end of file diff --git a/node_modules/dayjs/index.d.ts b/node_modules/dayjs/index.d.ts new file mode 100644 index 0000000..766bd79 --- /dev/null +++ b/node_modules/dayjs/index.d.ts @@ -0,0 +1,429 @@ +/// + +export = dayjs; + +declare function dayjs (date?: dayjs.ConfigType): dayjs.Dayjs + +declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, strict?: boolean): dayjs.Dayjs + +declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, locale?: string, strict?: boolean): dayjs.Dayjs + +declare namespace dayjs { + interface ConfigTypeMap { + default: string | number | Date | Dayjs | null | undefined + } + + export type ConfigType = ConfigTypeMap[keyof ConfigTypeMap] + + export interface FormatObject { locale?: string, format?: string, utc?: boolean } + + export type OptionType = FormatObject | string | string[] + + export type UnitTypeShort = 'd' | 'D' | 'M' | 'y' | 'h' | 'm' | 's' | 'ms' + + export type UnitTypeLong = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'date' + + export type UnitTypeLongPlural = 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' | 'dates' + + export type UnitType = UnitTypeLong | UnitTypeLongPlural | UnitTypeShort; + + export type OpUnitType = UnitType | "week" | "weeks" | 'w'; + export type QUnitType = UnitType | "quarter" | "quarters" | 'Q'; + export type ManipulateType = Exclude; + class Dayjs { + constructor (config?: ConfigType) + /** + * All Day.js objects are immutable. Still, `dayjs#clone` can create a clone of the current object if you need one. + * ``` + * dayjs().clone()// => Dayjs + * dayjs(dayjs('2019-01-25')) // passing a Dayjs object to a constructor will also clone it + * ``` + * Docs: https://day.js.org/docs/en/parse/dayjs-clone + */ + clone(): Dayjs + /** + * This returns a `boolean` indicating whether the Day.js object contains a valid date or not. + * ``` + * dayjs().isValid()// => boolean + * ``` + * Docs: https://day.js.org/docs/en/parse/is-valid + */ + isValid(): boolean + /** + * Get the year. + * ``` + * dayjs().year()// => 2020 + * ``` + * Docs: https://day.js.org/docs/en/get-set/year + */ + year(): number + /** + * Set the year. + * ``` + * dayjs().year(2000)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/year + */ + year(value: number): Dayjs + /** + * Get the month. + * + * Months are zero indexed, so January is month 0. + * ``` + * dayjs().month()// => 0-11 + * ``` + * Docs: https://day.js.org/docs/en/get-set/month + */ + month(): number + /** + * Set the month. + * + * Months are zero indexed, so January is month 0. + * + * Accepts numbers from 0 to 11. If the range is exceeded, it will bubble up to the next year. + * ``` + * dayjs().month(0)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/month + */ + month(value: number): Dayjs + /** + * Get the date of the month. + * ``` + * dayjs().date()// => 1-31 + * ``` + * Docs: https://day.js.org/docs/en/get-set/date + */ + date(): number + /** + * Set the date of the month. + * + * Accepts numbers from 1 to 31. If the range is exceeded, it will bubble up to the next months. + * ``` + * dayjs().date(1)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/date + */ + date(value: number): Dayjs + /** + * Get the day of the week. + * + * Returns numbers from 0 (Sunday) to 6 (Saturday). + * ``` + * dayjs().day()// 0-6 + * ``` + * Docs: https://day.js.org/docs/en/get-set/day + */ + day(): number + /** + * Set the day of the week. + * + * Accepts numbers from 0 (Sunday) to 6 (Saturday). If the range is exceeded, it will bubble up to next weeks. + * ``` + * dayjs().day(0)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/day + */ + day(value: number): Dayjs + /** + * Get the hour. + * ``` + * dayjs().hour()// => 0-23 + * ``` + * Docs: https://day.js.org/docs/en/get-set/hour + */ + hour(): number + /** + * Set the hour. + * + * Accepts numbers from 0 to 23. If the range is exceeded, it will bubble up to the next day. + * ``` + * dayjs().hour(12)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/hour + */ + hour(value: number): Dayjs + /** + * Get the minutes. + * ``` + * dayjs().minute()// => 0-59 + * ``` + * Docs: https://day.js.org/docs/en/get-set/minute + */ + minute(): number + /** + * Set the minutes. + * + * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next hour. + * ``` + * dayjs().minute(59)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/minute + */ + minute(value: number): Dayjs + /** + * Get the seconds. + * ``` + * dayjs().second()// => 0-59 + * ``` + * Docs: https://day.js.org/docs/en/get-set/second + */ + second(): number + /** + * Set the seconds. + * + * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next minutes. + * ``` + * dayjs().second(1)// Dayjs + * ``` + */ + second(value: number): Dayjs + /** + * Get the milliseconds. + * ``` + * dayjs().millisecond()// => 0-999 + * ``` + * Docs: https://day.js.org/docs/en/get-set/millisecond + */ + millisecond(): number + /** + * Set the milliseconds. + * + * Accepts numbers from 0 to 999. If the range is exceeded, it will bubble up to the next seconds. + * ``` + * dayjs().millisecond(1)// => Dayjs + * ``` + * Docs: https://day.js.org/docs/en/get-set/millisecond + */ + millisecond(value: number): Dayjs + /** + * Generic setter, accepting unit as first argument, and value as second, returns a new instance with the applied changes. + * + * In general: + * ``` + * dayjs().set(unit, value) === dayjs()[unit](value) + * ``` + * Units are case insensitive, and support plural and short forms. + * ``` + * dayjs().set('date', 1) + * dayjs().set('month', 3) // April + * dayjs().set('second', 30) + * ``` + * Docs: https://day.js.org/docs/en/get-set/set + */ + set(unit: UnitType, value: number): Dayjs + /** + * String getter, returns the corresponding information getting from Day.js object. + * + * In general: + * ``` + * dayjs().get(unit) === dayjs()[unit]() + * ``` + * Units are case insensitive, and support plural and short forms. + * ``` + * dayjs().get('year') + * dayjs().get('month') // start 0 + * dayjs().get('date') + * ``` + * Docs: https://day.js.org/docs/en/get-set/get + */ + get(unit: UnitType): number + /** + * Returns a cloned Day.js object with a specified amount of time added. + * ``` + * dayjs().add(7, 'day')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/add + */ + add(value: number, unit?: ManipulateType): Dayjs + /** + * Returns a cloned Day.js object with a specified amount of time subtracted. + * ``` + * dayjs().subtract(7, 'year')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/subtract + */ + subtract(value: number, unit?: ManipulateType): Dayjs + /** + * Returns a cloned Day.js object and set it to the start of a unit of time. + * ``` + * dayjs().startOf('year')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/start-of + */ + startOf(unit: OpUnitType): Dayjs + /** + * Returns a cloned Day.js object and set it to the end of a unit of time. + * ``` + * dayjs().endOf('month')// => Dayjs + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/manipulate/end-of + */ + endOf(unit: OpUnitType): Dayjs + /** + * Get the formatted date according to the string of tokens passed in. + * + * To escape characters, wrap them in square brackets (e.g. [MM]). + * ``` + * dayjs().format()// => current date in ISO8601, without fraction seconds e.g. '2020-04-02T08:02:17-05:00' + * dayjs('2019-01-25').format('[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z]')// 'YYYYescape 2019-01-25T00:00:00-02:00Z' + * dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019' + * ``` + * Docs: https://day.js.org/docs/en/display/format + */ + format(template?: string): string + /** + * This indicates the difference between two date-time in the specified unit. + * + * To get the difference in milliseconds, use `dayjs#diff` + * ``` + * const date1 = dayjs('2019-01-25') + * const date2 = dayjs('2018-06-05') + * date1.diff(date2) // 20214000000 default milliseconds + * date1.diff() // milliseconds to current time + * ``` + * + * To get the difference in another unit of measurement, pass that measurement as the second argument. + * ``` + * const date1 = dayjs('2019-01-25') + * date1.diff('2018-06-05', 'month') // 7 + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/display/difference + */ + diff(date?: ConfigType, unit?: QUnitType | OpUnitType, float?: boolean): number + /** + * This returns the number of **milliseconds** since the Unix Epoch of the Day.js object. + * ``` + * dayjs('2019-01-25').valueOf() // 1548381600000 + * +dayjs(1548381600000) // 1548381600000 + * ``` + * To get a Unix timestamp (the number of seconds since the epoch) from a Day.js object, you should use Unix Timestamp `dayjs#unix()`. + * + * Docs: https://day.js.org/docs/en/display/unix-timestamp-milliseconds + */ + valueOf(): number + /** + * This returns the Unix timestamp (the number of **seconds** since the Unix Epoch) of the Day.js object. + * ``` + * dayjs('2019-01-25').unix() // 1548381600 + * ``` + * This value is floored to the nearest second, and does not include a milliseconds component. + * + * Docs: https://day.js.org/docs/en/display/unix-timestamp + */ + unix(): number + /** + * Get the number of days in the current month. + * ``` + * dayjs('2019-01-25').daysInMonth() // 31 + * ``` + * Docs: https://day.js.org/docs/en/display/days-in-month + */ + daysInMonth(): number + /** + * To get a copy of the native `Date` object parsed from the Day.js object use `dayjs#toDate`. + * ``` + * dayjs('2019-01-25').toDate()// => Date + * ``` + */ + toDate(): Date + /** + * To serialize as an ISO 8601 string. + * ``` + * dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z' + * ``` + * Docs: https://day.js.org/docs/en/display/as-json + */ + toJSON(): string + /** + * To format as an ISO 8601 string. + * ``` + * dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z' + * ``` + * Docs: https://day.js.org/docs/en/display/as-iso-string + */ + toISOString(): string + /** + * Returns a string representation of the date. + * ``` + * dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT' + * ``` + * Docs: https://day.js.org/docs/en/display/as-string + */ + toString(): string + /** + * Get the UTC offset in minutes. + * ``` + * dayjs().utcOffset() + * ``` + * Docs: https://day.js.org/docs/en/manipulate/utc-offset + */ + utcOffset(): number + /** + * This indicates whether the Day.js object is before the other supplied date-time. + * ``` + * dayjs().isBefore(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isBefore('2011-01-01', 'year')// => boolean + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/query/is-before + */ + isBefore(date?: ConfigType, unit?: OpUnitType): boolean + /** + * This indicates whether the Day.js object is the same as the other supplied date-time. + * ``` + * dayjs().isSame(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isSame('2011-01-01', 'year')// => boolean + * ``` + * Docs: https://day.js.org/docs/en/query/is-same + */ + isSame(date?: ConfigType, unit?: OpUnitType): boolean + /** + * This indicates whether the Day.js object is after the other supplied date-time. + * ``` + * dayjs().isAfter(dayjs('2011-01-01')) // default milliseconds + * ``` + * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter. + * ``` + * dayjs().isAfter('2011-01-01', 'year')// => boolean + * ``` + * Units are case insensitive, and support plural and short forms. + * + * Docs: https://day.js.org/docs/en/query/is-after + */ + isAfter(date?: ConfigType, unit?: OpUnitType): boolean + + locale(): string + + locale(preset: string | ILocale, object?: Partial): Dayjs + } + + export type PluginFunc = (option: T, c: typeof Dayjs, d: typeof dayjs) => void + + export function extend(plugin: PluginFunc, option?: T): Dayjs + + export function locale(preset?: string | ILocale, object?: Partial, isLocal?: boolean): string + + export function isDayjs(d: any): d is Dayjs + + export function unix(t: number): Dayjs + + const Ls : { [key: string] : ILocale } +} diff --git a/node_modules/dayjs/locale.json b/node_modules/dayjs/locale.json new file mode 100644 index 0000000..45a01c4 --- /dev/null +++ b/node_modules/dayjs/locale.json @@ -0,0 +1 @@ +[{"key":"af","name":"Afrikaans"},{"key":"am","name":"Amharic"},{"key":"ar-dz","name":"Arabic (Algeria)"},{"key":"ar-iq","name":" Arabic (Iraq)"},{"key":"ar-kw","name":"Arabic (Kuwait)"},{"key":"ar-ly","name":"Arabic (Lybia)"},{"key":"ar-ma","name":"Arabic (Morocco)"},{"key":"ar-sa","name":"Arabic (Saudi Arabia)"},{"key":"ar-tn","name":" Arabic (Tunisia)"},{"key":"ar","name":"Arabic"},{"key":"az","name":"Azerbaijani"},{"key":"be","name":"Belarusian"},{"key":"bg","name":"Bulgarian"},{"key":"bi","name":"Bislama"},{"key":"bm","name":"Bambara"},{"key":"bn-bd","name":"Bengali (Bangladesh)"},{"key":"bn","name":"Bengali"},{"key":"bo","name":"Tibetan"},{"key":"br","name":"Breton"},{"key":"bs","name":"Bosnian"},{"key":"ca","name":"Catalan"},{"key":"cs","name":"Czech"},{"key":"cv","name":"Chuvash"},{"key":"cy","name":"Welsh"},{"key":"da","name":"Danish"},{"key":"de-at","name":"German (Austria)"},{"key":"de-ch","name":"German (Switzerland)"},{"key":"de","name":"German"},{"key":"dv","name":"Maldivian"},{"key":"el","name":"Greek"},{"key":"en-au","name":"English (Australia)"},{"key":"en-ca","name":"English (Canada)"},{"key":"en-gb","name":"English (United Kingdom)"},{"key":"en-ie","name":"English (Ireland)"},{"key":"en-il","name":"English (Israel)"},{"key":"en-in","name":"English (India)"},{"key":"en-nz","name":"English (New Zealand)"},{"key":"en-sg","name":"English (Singapore)"},{"key":"en-tt","name":"English (Trinidad & Tobago)"},{"key":"en","name":"English"},{"key":"eo","name":"Esperanto"},{"key":"es-do","name":"Spanish (Dominican Republic)"},{"key":"es-mx","name":"Spanish (Mexico)"},{"key":"es-pr","name":"Spanish (Puerto Rico)"},{"key":"es-us","name":"Spanish (United States)"},{"key":"es","name":"Spanish"},{"key":"et","name":"Estonian"},{"key":"eu","name":"Basque"},{"key":"fa","name":"Persian"},{"key":"fi","name":"Finnish"},{"key":"fo","name":"Faroese"},{"key":"fr-ca","name":"French (Canada)"},{"key":"fr-ch","name":"French (Switzerland)"},{"key":"fr","name":"French"},{"key":"fy","name":"Frisian"},{"key":"ga","name":"Irish or Irish Gaelic"},{"key":"gd","name":"Scottish Gaelic"},{"key":"gl","name":"Galician"},{"key":"gom-latn","name":"Konkani Latin script"},{"key":"gu","name":"Gujarati"},{"key":"hi","name":"Hindi"},{"key":"he","name":"Hebrew"},{"key":"hr","name":"Croatian"},{"key":"ht","name":"Haitian Creole (Haiti)"},{"key":"hu","name":"Hungarian"},{"key":"hy-am","name":"Armenian"},{"key":"id","name":"Indonesian"},{"key":"is","name":"Icelandic"},{"key":"it-ch","name":"Italian (Switzerland)"},{"key":"it","name":"Italian"},{"key":"ja","name":"Japanese"},{"key":"jv","name":"Javanese"},{"key":"ka","name":"Georgian"},{"key":"kk","name":"Kazakh"},{"key":"km","name":"Cambodian"},{"key":"kn","name":"Kannada"},{"key":"ko","name":"Korean"},{"key":"ku","name":"Kurdish"},{"key":"ky","name":"Kyrgyz"},{"key":"lb","name":"Luxembourgish"},{"key":"lo","name":"Lao"},{"key":"lt","name":"Lithuanian"},{"key":"lv","name":"Latvian"},{"key":"me","name":"Montenegrin"},{"key":"mi","name":"Maori"},{"key":"mk","name":"Macedonian"},{"key":"ml","name":"Malayalam"},{"key":"mn","name":"Mongolian"},{"key":"mr","name":"Marathi"},{"key":"ms-my","name":"Malay"},{"key":"ms","name":"Malay"},{"key":"mt","name":"Maltese (Malta)"},{"key":"my","name":"Burmese"},{"key":"nb","name":"Norwegian Bokmål"},{"key":"ne","name":"Nepalese"},{"key":"nl-be","name":"Dutch (Belgium)"},{"key":"nl","name":"Dutch"},{"key":"nn","name":"Nynorsk"},{"key":"oc-lnc","name":"Occitan, lengadocian dialecte"},{"key":"pa-in","name":"Punjabi (India)"},{"key":"pl","name":"Polish"},{"key":"pt-br","name":"Portuguese (Brazil)"},{"key":"pt","name":"Portuguese"},{"key":"rn","name":"Kirundi"},{"key":"ro","name":"Romanian"},{"key":"sd","name":"Sindhi"},{"key":"si","name":"Sinhalese"},{"key":"se","name":"Northern Sami"},{"key":"sk","name":"Slovak"},{"key":"sl","name":"Slovenian"},{"key":"sq","name":"Albanian"},{"key":"sr-cyrl","name":"Serbian Cyrillic"},{"key":"sr","name":"Serbian"},{"key":"ss","name":"siSwati"},{"key":"sv-fi","name":"Finland Swedish"},{"key":"sv","name":"Swedish"},{"key":"sw","name":"Swahili"},{"key":"ta","name":"Tamil"},{"key":"te","name":"Telugu"},{"key":"tg","name":"Tajik"},{"key":"tet","name":"Tetun Dili (East Timor)"},{"key":"th","name":"Thai"},{"key":"tk","name":"Turkmen"},{"key":"tl-ph","name":"Tagalog (Philippines)"},{"key":"tlh","name":"Klingon"},{"key":"tr","name":"Turkish"},{"key":"tzl","name":"Talossan"},{"key":"tzm-latn","name":"Central Atlas Tamazight Latin"},{"key":"ug-cn","name":"Uyghur (China)"},{"key":"tzm","name":"Central Atlas Tamazight"},{"key":"uk","name":"Ukrainian"},{"key":"ur","name":"Urdu"},{"key":"uz-latn","name":"Uzbek Latin"},{"key":"vi","name":"Vietnamese"},{"key":"uz","name":"Uzbek"},{"key":"yo","name":"Yoruba Nigeria"},{"key":"x-pseudo","name":"Pseudo"},{"key":"zh-cn","name":"Chinese (China)"},{"key":"zh-hk","name":"Chinese (Hong Kong)"},{"key":"zh-tw","name":"Chinese (Taiwan)"},{"key":"zh","name":"Chinese"},{"key":"rw","name":"Kinyarwanda (Rwanda)"},{"key":"ru","name":"Russian"}] \ No newline at end of file diff --git a/node_modules/dayjs/locale/af.js b/node_modules/dayjs/locale/af.js new file mode 100644 index 0000000..62c75e4 --- /dev/null +++ b/node_modules/dayjs/locale/af.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_af=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),t={name:"af",weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),weekStart:1,weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"}};return n.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/am.js b/node_modules/dayjs/locale/am.js new file mode 100644 index 0000000..7b588a8 --- /dev/null +++ b/node_modules/dayjs/locale/am.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_am=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"am",weekdays:"እሑድ_ሰኞ_ማክሰኞ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ".split("_"),weekdaysShort:"እሑድ_ሰኞ_ማክሰ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ".split("_"),weekdaysMin:"እሑ_ሰኞ_ማክ_ረቡ_ሐሙ_አር_ቅዳ".split("_"),months:"ጃንዋሪ_ፌብሯሪ_ማርች_ኤፕሪል_ሜይ_ጁን_ጁላይ_ኦገስት_ሴፕቴምበር_ኦክቶበር_ኖቬምበር_ዲሴምበር".split("_"),monthsShort:"ጃንዋ_ፌብሯ_ማርች_ኤፕሪ_ሜይ_ጁን_ጁላይ_ኦገስ_ሴፕቴ_ኦክቶ_ኖቬም_ዲሴም".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"በ%s",past:"%s በፊት",s:"ጥቂት ሰከንዶች",m:"አንድ ደቂቃ",mm:"%d ደቂቃዎች",h:"አንድ ሰዓት",hh:"%d ሰዓታት",d:"አንድ ቀን",dd:"%d ቀናት",M:"አንድ ወር",MM:"%d ወራት",y:"አንድ ዓመት",yy:"%d ዓመታት"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM D ፣ YYYY",LLL:"MMMM D ፣ YYYY HH:mm",LLLL:"dddd ፣ MMMM D ፣ YYYY HH:mm"},ordinal:function(e){return e+"ኛ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-dz.js b/node_modules/dayjs/locale/ar-dz.js new file mode 100644 index 0000000..5522790 --- /dev/null +++ b/node_modules/dayjs/locale/ar-dz.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ar_dz=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ar-dz",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(_){return _>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-iq.js b/node_modules/dayjs/locale/ar-iq.js new file mode 100644 index 0000000..07e8c71 --- /dev/null +++ b/node_modules/dayjs/locale/ar-iq.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ar_iq=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"ar-iq",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول".split("_"),weekStart:1,weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-kw.js b/node_modules/dayjs/locale/ar-kw.js new file mode 100644 index 0000000..a876ca0 --- /dev/null +++ b/node_modules/dayjs/locale/ar-kw.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ar_kw=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ar-kw",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(_){return _>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-ly.js b/node_modules/dayjs/locale/ar-ly.js new file mode 100644 index 0000000..9dbe09b --- /dev/null +++ b/node_modules/dayjs/locale/ar-ly.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ar_ly=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={name:"ar-ly",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekStart:6,weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(_){return _},meridiem:function(_){return _>12?"م":"ص"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-ma.js b/node_modules/dayjs/locale/ar-ma.js new file mode 100644 index 0000000..dbb77cc --- /dev/null +++ b/node_modules/dayjs/locale/ar-ma.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ar_ma=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"ar-ma",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekStart:6,weekdaysShort:"احد_إثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-sa.js b/node_modules/dayjs/locale/ar-sa.js new file mode 100644 index 0000000..9c2c0d4 --- /dev/null +++ b/node_modules/dayjs/locale/ar-sa.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ar_sa=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ar-sa",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(_){return _>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar-tn.js b/node_modules/dayjs/locale/ar-tn.js new file mode 100644 index 0000000..944b46d --- /dev/null +++ b/node_modules/dayjs/locale/ar-tn.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ar_tn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"ar-tn",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekStart:1,weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"م":"ص"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ar.js b/node_modules/dayjs/locale/ar.js new file mode 100644 index 0000000..517c49e --- /dev/null +++ b/node_modules/dayjs/locale/ar.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ar=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),r="يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),d={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},_={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},o={name:"ar",weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),months:r,monthsShort:r,weekStart:6,meridiem:function(e){return e>12?"م":"ص"},relativeTime:{future:"بعد %s",past:"منذ %s",s:"ثانية واحدة",m:"دقيقة واحدة",mm:"%d دقائق",h:"ساعة واحدة",hh:"%d ساعات",d:"يوم واحد",dd:"%d أيام",M:"شهر واحد",MM:"%d أشهر",y:"عام واحد",yy:"%d أعوام"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return _[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return d[e]})).replace(/,/g,"،")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return n.default.locale(o,null,!0),o})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/az.js b/node_modules/dayjs/locale/az.js new file mode 100644 index 0000000..d63ed1f --- /dev/null +++ b/node_modules/dayjs/locale/az.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_az=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var _=e(a),t={name:"az",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("_"),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("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",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"},ordinal:function(a){return a}};return _.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/be.js b/node_modules/dayjs/locale/be.js new file mode 100644 index 0000000..704a87d --- /dev/null +++ b/node_modules/dayjs/locale/be.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_be=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={name:"be",weekdays:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),months:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),weekStart:1,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bg.js b/node_modules/dayjs/locale/bg.js new file mode 100644 index 0000000..4a3d316 --- /dev/null +++ b/node_modules/dayjs/locale/bg.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_bg=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"bg",weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekStart:1,ordinal:function(e){var _=e%100;if(_>10&&_<20)return e+"-ти";var t=e%10;return 1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bi.js b/node_modules/dayjs/locale/bi.js new file mode 100644 index 0000000..e457dff --- /dev/null +++ b/node_modules/dayjs/locale/bi.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_bi=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),_={name:"bi",weekdays:"Sande_Mande_Tusde_Wenesde_Tosde_Fraede_Sarade".split("_"),months:"Januari_Februari_Maj_Eprel_Mei_Jun_Julae_Okis_Septemba_Oktoba_Novemba_Disemba".split("_"),weekStart:1,weekdaysShort:"San_Man_Tus_Wen_Tos_Frae_Sar".split("_"),monthsShort:"Jan_Feb_Maj_Epr_Mai_Jun_Jul_Oki_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"San_Ma_Tu_We_To_Fr_Sar".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"lo %s",past:"%s bifo",s:"sam seken",m:"wan minit",mm:"%d minit",h:"wan haoa",hh:"%d haoa",d:"wan dei",dd:"%d dei",M:"wan manis",MM:"%d manis",y:"wan yia",yy:"%d yia"}};return n.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bm.js b/node_modules/dayjs/locale/bm.js new file mode 100644 index 0000000..3c4fbdd --- /dev/null +++ b/node_modules/dayjs/locale/bm.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_bm=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var l=e(a),t={name:"bm",weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),weekStart:1,weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"}};return l.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bn-bd.js b/node_modules/dayjs/locale/bn-bd.js new file mode 100644 index 0000000..ae76f9f --- /dev/null +++ b/node_modules/dayjs/locale/bn-bd.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_bn_bd=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),n={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},d={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},r={name:"bn-bd",weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),weekStart:0,preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return d[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return n[e]}))},ordinal:function(e){var t=["ই","লা","রা","ঠা","শে"],_=e%100;return"["+e+(t[(_-20)%10]||t[_]||t[0])+"]"},formats:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY খ্রিস্টাব্দ",LL:"D MMMM YYYY খ্রিস্টাব্দ",LLL:"D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়",LLLL:"dddd, D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়"},meridiem:function(e){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"}};return _.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bn.js b/node_modules/dayjs/locale/bn.js new file mode 100644 index 0000000..30ffa02 --- /dev/null +++ b/node_modules/dayjs/locale/bn.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_bn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),n={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},d={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},o={name:"bn",weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return d[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return n[e]}))},ordinal:function(e){return e},formats:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"}};return t.default.locale(o,null,!0),o})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bo.js b/node_modules/dayjs/locale/bo.js new file mode 100644 index 0000000..92bb7cc --- /dev/null +++ b/node_modules/dayjs/locale/bo.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_bo=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"bo",weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་དང་པོ_ཟླ་གཉིས་པ_ཟླ་གསུམ་པ_ཟླ་བཞི་པ_ཟླ་ལྔ་པ_ཟླ་དྲུག་པ_ཟླ་བདུན་པ_ཟླ་བརྒྱད་པ_ཟླ་དགུ་པ_ཟླ་བཅུ་པ_ཟླ་བཅུ་གཅིག་པ_ཟླ་བཅུ་གཉིས་པ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s ལ་",past:"%s སྔོན་ལ་",s:"ཏོག་ཙམ་",m:"སྐར་མ་གཅིག་",mm:"སྐར་མ་ %d",h:"ཆུ་ཚོད་གཅིག་",hh:"ཆུ་ཚོད་ %d",d:"ཉིན་གཅིག་",dd:"ཉིན་ %d",M:"ཟླ་བ་གཅིག་",MM:"ཟླ་བ་ %d",y:"ལོ་གཅིག་",yy:"ལོ་ %d"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/br.js b/node_modules/dayjs/locale/br.js new file mode 100644 index 0000000..0b2317f --- /dev/null +++ b/node_modules/dayjs/locale/br.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_br=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e);function r(e){return e>9?r(e%10):e}function t(e,n,u){return e+" "+function(e,n){return 2===n?function(e){return{m:"v",b:"v",d:"z"}[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[u],e)}var o={name:"br",weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),weekStart:1,weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(r(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},meridiem:function(e){return e<12?"a.m.":"g.m."}};return u.default.locale(o,null,!0),o})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/bs.js b/node_modules/dayjs/locale/bs.js new file mode 100644 index 0000000..25dcd6d --- /dev/null +++ b/node_modules/dayjs/locale/bs.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_bs=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),a={name:"bs",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return _.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ca.js b/node_modules/dayjs/locale/ca.js new file mode 100644 index 0000000..1614cc2 --- /dev/null +++ b/node_modules/dayjs/locale/ca.js @@ -0,0 +1 @@ +!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ca=s(e.dayjs)}(this,(function(e){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=s(e),_={name:"ca",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("_"),months:"Gener_Febrer_Març_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),monthsShort:"Gen._Febr._Març_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",ll:"D MMM YYYY",lll:"D MMM YYYY, H:mm",llll:"ddd D MMM YYYY, H:mm"},relativeTime:{future:"d'aquí %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:function(e){return""+e+(1===e||3===e?"r":2===e?"n":4===e?"t":"è")}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/cs.js b/node_modules/dayjs/locale/cs.js new file mode 100644 index 0000000..43bddb9 --- /dev/null +++ b/node_modules/dayjs/locale/cs.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_cs=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e);function s(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,n,t,r){var d=e+" ";switch(t){case"s":return n||r?"pár sekund":"pár sekundami";case"m":return n?"minuta":r?"minutu":"minutou";case"mm":return n||r?d+(s(e)?"minuty":"minut"):d+"minutami";case"h":return n?"hodina":r?"hodinu":"hodinou";case"hh":return n||r?d+(s(e)?"hodiny":"hodin"):d+"hodinami";case"d":return n||r?"den":"dnem";case"dd":return n||r?d+(s(e)?"dny":"dní"):d+"dny";case"M":return n||r?"měsíc":"měsícem";case"MM":return n||r?d+(s(e)?"měsíce":"měsíců"):d+"měsíci";case"y":return n||r?"rok":"rokem";case"yy":return n||r?d+(s(e)?"roky":"let"):d+"lety"}}var d={name:"cs",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("_"),months:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),monthsShort:"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"před %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/cv.js b/node_modules/dayjs/locale/cv.js new file mode 100644 index 0000000..a30efe0 --- /dev/null +++ b/node_modules/dayjs/locale/cv.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_cv=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={name:"cv",weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),weekStart:1,weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/cy.js b/node_modules/dayjs/locale/cy.js new file mode 100644 index 0000000..ee1910f --- /dev/null +++ b/node_modules/dayjs/locale/cy.js @@ -0,0 +1 @@ +!function(d,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(d="undefined"!=typeof globalThis?globalThis:d||self).dayjs_locale_cy=e(d.dayjs)}(this,(function(d){"use strict";function e(d){return d&&"object"==typeof d&&"default"in d?d:{default:d}}var _=e(d),a={name:"cy",weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),weekStart:1,weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),ordinal:function(d){return d},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"}};return _.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/da.js b/node_modules/dayjs/locale/da.js new file mode 100644 index 0000000..fd45a45 --- /dev/null +++ b/node_modules/dayjs/locale/da.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_da=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=t(e),n={name:"da",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("_"),months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.".split("_"),weekStart:1,ordinal:function(e){return e+"."},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},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"}};return d.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/de-at.js b/node_modules/dayjs/locale/de-at.js new file mode 100644 index 0000000..ca51ef5 --- /dev/null +++ b/node_modules/dayjs/locale/de-at.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_de_at=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function a(e,n,t){var a=i[t];return Array.isArray(a)&&(a=a[n?0:1]),a.replace("%d",e)}var r={name:"de-at",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("_"),months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a}};return t.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/de-ch.js b/node_modules/dayjs/locale/de-ch.js new file mode 100644 index 0000000..3fef218 --- /dev/null +++ b/node_modules/dayjs/locale/de-ch.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_de_ch=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),a={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function i(e,n,t){var i=a[t];return Array.isArray(i)&&(i=i[n?0:1]),i.replace("%d",e)}var r={name:"de-ch",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("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i}};return t.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/de.js b/node_modules/dayjs/locale/de.js new file mode 100644 index 0000000..35f05ec --- /dev/null +++ b/node_modules/dayjs/locale/de.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_de=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),a={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function i(e,n,t){var i=a[t];return Array.isArray(i)&&(i=i[n?0:1]),i.replace("%d",e)}var r={name:"de",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("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i}};return t.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/dv.js b/node_modules/dayjs/locale/dv.js new file mode 100644 index 0000000..b0bd8f9 --- /dev/null +++ b/node_modules/dayjs/locale/dv.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_dv=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"dv",weekdays:"އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު".split("_"),months:"ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު".split("_"),weekStart:7,weekdaysShort:"އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު".split("_"),monthsShort:"ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު".split("_"),weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/el.js b/node_modules/dayjs/locale/el.js new file mode 100644 index 0000000..1488034 --- /dev/null +++ b/node_modules/dayjs/locale/el.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_el=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"el",weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),months:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαι_Ιουν_Ιουλ_Αυγ_Σεπτ_Οκτ_Νοε_Δεκ".split("_"),ordinal:function(e){return e},weekStart:1,relativeTime:{future:"σε %s",past:"πριν %s",s:"μερικά δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένα μήνα",MM:"%d μήνες",y:"ένα χρόνο",yy:"%d χρόνια"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-au.js b/node_modules/dayjs/locale/en-au.js new file mode 100644 index 0000000..b952cdb --- /dev/null +++ b/node_modules/dayjs/locale/en-au.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_au=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"en-au",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-ca.js b/node_modules/dayjs/locale/en-ca.js new file mode 100644 index 0000000..bf76621 --- /dev/null +++ b/node_modules/dayjs/locale/en-ca.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_ca=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),t={name:"en-ca",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},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"}};return _.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-gb.js b/node_modules/dayjs/locale/en-gb.js new file mode 100644 index 0000000..7fc7c3f --- /dev/null +++ b/node_modules/dayjs/locale/en-gb.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_gb=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"en-gb",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("_"),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("_"),weekStart:1,yearStart:4,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"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var a=["th","st","nd","rd"],t=e%100;return"["+e+(a[(t-20)%10]||a[t]||a[0])+"]"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-ie.js b/node_modules/dayjs/locale/en-ie.js new file mode 100644 index 0000000..b0ad3f9 --- /dev/null +++ b/node_modules/dayjs/locale/en-ie.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_ie=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"en-ie",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-il.js b/node_modules/dayjs/locale/en-il.js new file mode 100644 index 0000000..d8bea62 --- /dev/null +++ b/node_modules/dayjs/locale/en-il.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_il=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),t={name:"en-il",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"}};return _.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-in.js b/node_modules/dayjs/locale/en-in.js new file mode 100644 index 0000000..af8cff3 --- /dev/null +++ b/node_modules/dayjs/locale/en-in.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_in=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),n={name:"en-in",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("_"),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("_"),weekStart:1,yearStart:4,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"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var a=["th","st","nd","rd"],t=e%100;return"["+e+(a[(t-20)%10]||a[t]||a[0])+"]"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-nz.js b/node_modules/dayjs/locale/en-nz.js new file mode 100644 index 0000000..058abbe --- /dev/null +++ b/node_modules/dayjs/locale/en-nz.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_nz=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),n={name:"en-nz",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){var a=["th","st","nd","rd"],t=e%100;return"["+e+(a[(t-20)%10]||a[t]||a[0])+"]"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-sg.js b/node_modules/dayjs/locale/en-sg.js new file mode 100644 index 0000000..787fa84 --- /dev/null +++ b/node_modules/dayjs/locale/en-sg.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_sg=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"en-sg",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en-tt.js b/node_modules/dayjs/locale/en-tt.js new file mode 100644 index 0000000..afc4d36 --- /dev/null +++ b/node_modules/dayjs/locale/en-tt.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_tt=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),_={name:"en-tt",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("_"),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("_"),weekStart:1,yearStart:4,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"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],a=e%100;return"["+e+(t[(a-20)%10]||t[a]||t[0])+"]"}};return a.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/en.js b/node_modules/dayjs/locale/en.js new file mode 100644 index 0000000..847cbfd --- /dev/null +++ b/node_modules/dayjs/locale/en.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en=n()}(this,(function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var n=["th","st","nd","rd"],t=e%100;return"["+e+(n[(t-20)%10]||n[t]||n[0])+"]"}}})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/eo.js b/node_modules/dayjs/locale/eo.js new file mode 100644 index 0000000..2dcbe01 --- /dev/null +++ b/node_modules/dayjs/locale/eo.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_eo=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=o(e),t={name:"eo",weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},relativeTime:{future:"post %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"}};return a.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/es-do.js b/node_modules/dayjs/locale/es-do.js new file mode 100644 index 0000000..07907ad --- /dev/null +++ b/node_modules/dayjs/locale/es-do.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_es_do=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),d={name:"es-do",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("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekStart:1,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:function(e){return e+"º"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return s.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/es-mx.js b/node_modules/dayjs/locale/es-mx.js new file mode 100644 index 0000000..f865a2d --- /dev/null +++ b/node_modules/dayjs/locale/es-mx.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_es_mx=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),d={name:"es-mx",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("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),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:function(e){return e+"º"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"}};return s.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/es-pr.js b/node_modules/dayjs/locale/es-pr.js new file mode 100644 index 0000000..56fdeb4 --- /dev/null +++ b/node_modules/dayjs/locale/es-pr.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_es_pr=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),d={name:"es-pr",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),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("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},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:function(e){return e+"º"}};return s.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/es-us.js b/node_modules/dayjs/locale/es-us.js new file mode 100644 index 0000000..35f5535 --- /dev/null +++ b/node_modules/dayjs/locale/es-us.js @@ -0,0 +1 @@ +!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_es_us=s(e.dayjs)}(this,(function(e){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=s(e),d={name:"es-us",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("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),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:function(e){return e+"º"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return o.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/es.js b/node_modules/dayjs/locale/es.js new file mode 100644 index 0000000..eb33b81 --- /dev/null +++ b/node_modules/dayjs/locale/es.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_es=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),d={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),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("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},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:function(e){return e+"º"}};return s.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/et.js b/node_modules/dayjs/locale/et.js new file mode 100644 index 0000000..4158d13 --- /dev/null +++ b/node_modules/dayjs/locale/et.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_et=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e);function u(e,a,t,u){var s={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:["%d minuti","%d minutit"],h:["ühe tunni","tund aega","üks tund"],hh:["%d tunni","%d tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:["%d kuu","%d kuud"],y:["ühe aasta","aasta","üks aasta"],yy:["%d aasta","%d aastat"]};return a?(s[t][2]?s[t][2]:s[t][1]).replace("%d",e):(u?s[t][0]:s[t][1]).replace("%d",e)}var s={name:"et",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("_"),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("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s pärast",past:"%s tagasi",s:u,m:u,mm:u,h:u,hh:u,d:u,dd:"%d päeva",M:u,MM:u,y:u,yy:u},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return t.default.locale(s,null,!0),s})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/eu.js b/node_modules/dayjs/locale/eu.js new file mode 100644 index 0000000..ed8e228 --- /dev/null +++ b/node_modules/dayjs/locale/eu.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_eu=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var t=e(a),l={name:"eu",weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),weekStart:1,weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},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"}};return t.default.locale(l,null,!0),l})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fa.js b/node_modules/dayjs/locale/fa.js new file mode 100644 index 0000000..648bb4e --- /dev/null +++ b/node_modules/dayjs/locale/fa.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_fa=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"fa",weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekStart:6,months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fi.js b/node_modules/dayjs/locale/fi.js new file mode 100644 index 0000000..2681ebd --- /dev/null +++ b/node_modules/dayjs/locale/fi.js @@ -0,0 +1 @@ +!function(u,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(u="undefined"!=typeof globalThis?globalThis:u||self).dayjs_locale_fi=e(u.dayjs)}(this,(function(u){"use strict";function e(u){return u&&"object"==typeof u&&"default"in u?u:{default:u}}var t=e(u);function n(u,e,t,n){var i={s:"muutama sekunti",m:"minuutti",mm:"%d minuuttia",h:"tunti",hh:"%d tuntia",d:"päivä",dd:"%d päivää",M:"kuukausi",MM:"%d kuukautta",y:"vuosi",yy:"%d vuotta",numbers:"nolla_yksi_kaksi_kolme_neljä_viisi_kuusi_seitsemän_kahdeksan_yhdeksän".split("_")},a={s:"muutaman sekunnin",m:"minuutin",mm:"%d minuutin",h:"tunnin",hh:"%d tunnin",d:"päivän",dd:"%d päivän",M:"kuukauden",MM:"%d kuukauden",y:"vuoden",yy:"%d vuoden",numbers:"nollan_yhden_kahden_kolmen_neljän_viiden_kuuden_seitsemän_kahdeksan_yhdeksän".split("_")},s=n&&!e?a:i,_=s[t];return u<10?_.replace("%d",s.numbers[u]):_.replace("%d",u)}var i={name:"fi",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("_"),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("_"),ordinal:function(u){return u+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s päästä",past:"%s sitten",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM[ta] YYYY",LLL:"D. MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, D. MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [klo] HH.mm",llll:"ddd, D. MMM YYYY, [klo] HH.mm"}};return t.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fo.js b/node_modules/dayjs/locale/fo.js new file mode 100644 index 0000000..ff6f8d8 --- /dev/null +++ b/node_modules/dayjs/locale/fo.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_fo=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),r={name:"fo",weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),weekStart:1,weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"}};return a.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fr-ca.js b/node_modules/dayjs/locale/fr-ca.js new file mode 100644 index 0000000..9cc0d03 --- /dev/null +++ b/node_modules/dayjs/locale/fr-ca.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr_ca=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(e),_={name:"fr-ca",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"}};return i.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fr-ch.js b/node_modules/dayjs/locale/fr-ch.js new file mode 100644 index 0000000..1308de9 --- /dev/null +++ b/node_modules/dayjs/locale/fr-ch.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr_ch=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(e),_={name:"fr-ch",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),weekStart:1,weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"}};return i.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fr.js b/node_modules/dayjs/locale/fr.js new file mode 100644 index 0000000..8c42be4 --- /dev/null +++ b/node_modules/dayjs/locale/fr.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),i={name:"fr",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("_"),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("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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(e){return""+e+(1===e?"er":"")}};return t.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/fy.js b/node_modules/dayjs/locale/fy.js new file mode 100644 index 0000000..291dd5f --- /dev/null +++ b/node_modules/dayjs/locale/fy.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_fy=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(e),t={name:"fy",weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),weekStart:1,weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"}};return i.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ga.js b/node_modules/dayjs/locale/ga.js new file mode 100644 index 0000000..0b2489f --- /dev/null +++ b/node_modules/dayjs/locale/ga.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_ga=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var i=e(a),n={name:"ga",weekdays:"Dé Domhnaigh_Dé Luain_Dé Máirt_Dé Céadaoin_Déardaoin_Dé hAoine_Dé Satharn".split("_"),months:"Eanáir_Feabhra_Márta_Aibreán_Bealtaine_Méitheamh_Iúil_Lúnasa_Meán Fómhair_Deaireadh Fómhair_Samhain_Nollaig".split("_"),weekStart:1,weekdaysShort:"Dom_Lua_Mái_Céa_Déa_hAo_Sat".split("_"),monthsShort:"Eaná_Feab_Márt_Aibr_Beal_Méit_Iúil_Lúna_Meán_Deai_Samh_Noll".split("_"),weekdaysMin:"Do_Lu_Má_Ce_Dé_hA_Sa".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"}};return i.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/gd.js b/node_modules/dayjs/locale/gd.js new file mode 100644 index 0000000..c7e47ab --- /dev/null +++ b/node_modules/dayjs/locale/gd.js @@ -0,0 +1 @@ +!function(a,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],i):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_gd=i(a.dayjs)}(this,(function(a){"use strict";function i(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var n=i(a),e={name:"gd",weekdays:"Didòmhnaich_Diluain_Dimàirt_Diciadain_Diardaoin_Dihaoine_Disathairne".split("_"),months:"Am Faoilleach_An Gearran_Am Màrt_An Giblean_An Cèitean_An t-Ògmhios_An t-Iuchar_An Lùnastal_An t-Sultain_An Dàmhair_An t-Samhain_An Dùbhlachd".split("_"),weekStart:1,weekdaysShort:"Did_Dil_Dim_Dic_Dia_Dih_Dis".split("_"),monthsShort:"Faoi_Gear_Màrt_Gibl_Cèit_Ògmh_Iuch_Lùn_Sult_Dàmh_Samh_Dùbh".split("_"),weekdaysMin:"Dò_Lu_Mà_Ci_Ar_Ha_Sa".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"}};return n.default.locale(e,null,!0),e})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/gl.js b/node_modules/dayjs/locale/gl.js new file mode 100644 index 0000000..f5cf483 --- /dev/null +++ b/node_modules/dayjs/locale/gl.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_gl=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),d={name:"gl",weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),ordinal:function(e){return e+"º"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"fai %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"}};return s.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/gom-latn.js b/node_modules/dayjs/locale/gom-latn.js new file mode 100644 index 0000000..1596618 --- /dev/null +++ b/node_modules/dayjs/locale/gom-latn.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_gom_latn=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),_={name:"gom-latn",weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),weekStart:1,weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"}};return a.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/gu.js b/node_modules/dayjs/locale/gu.js new file mode 100644 index 0000000..f42a17c --- /dev/null +++ b/node_modules/dayjs/locale/gu.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_gu=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"gu",weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/he.js b/node_modules/dayjs/locale/he.js new file mode 100644 index 0000000..3e4062e --- /dev/null +++ b/node_modules/dayjs/locale/he.js @@ -0,0 +1 @@ +!function(Y,M){"object"==typeof exports&&"undefined"!=typeof module?module.exports=M(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],M):(Y="undefined"!=typeof globalThis?globalThis:Y||self).dayjs_locale_he=M(Y.dayjs)}(this,(function(Y){"use strict";function M(Y){return Y&&"object"==typeof Y&&"default"in Y?Y:{default:Y}}var d=M(Y),e={s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:"%d שעות",hh2:"שעתיים",d:"יום",dd:"%d ימים",dd2:"יומיים",M:"חודש",MM:"%d חודשים",MM2:"חודשיים",y:"שנה",yy:"%d שנים",yy2:"שנתיים"};function _(Y,M,d){return(e[d+(2===Y?"2":"")]||e[d]).replace("%d",Y)}var l={name:"he",weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א׳_ב׳_ג׳_ד׳_ה׳_ו_ש׳".split("_"),months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו_פבר_מרץ_אפר_מאי_יונ_יול_אוג_ספט_אוק_נוב_דצמ".split("_"),relativeTime:{future:"בעוד %s",past:"לפני %s",s:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},ordinal:function(Y){return Y},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"}};return d.default.locale(l,null,!0),l})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/hi.js b/node_modules/dayjs/locale/hi.js new file mode 100644 index 0000000..9dca3cf --- /dev/null +++ b/node_modules/dayjs/locale/hi.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_hi=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"hi",weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/hr.js b/node_modules/dayjs/locale/hr.js new file mode 100644 index 0000000..12e8387 --- /dev/null +++ b/node_modules/dayjs/locale/hr.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_hr=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),s="siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),n="siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),_=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/,o=function(e,a){return _.test(a)?s[e.month()]:n[e.month()]};o.s=n,o.f=s;var i={name:"hr",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("_"),months:o,monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},relativeTime:{future:"za %s",past:"prije %s",s:"sekunda",m:"minuta",mm:"%d minuta",h:"sat",hh:"%d sati",d:"dan",dd:"%d dana",M:"mjesec",MM:"%d mjeseci",y:"godina",yy:"%d godine"},ordinal:function(e){return e+"."}};return t.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ht.js b/node_modules/dayjs/locale/ht.js new file mode 100644 index 0000000..3b2d9a3 --- /dev/null +++ b/node_modules/dayjs/locale/ht.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ht=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=n(e),a={name:"ht",weekdays:"dimanch_lendi_madi_mèkredi_jedi_vandredi_samdi".split("_"),months:"janvye_fevriye_mas_avril_me_jen_jiyè_out_septanm_oktòb_novanm_desanm".split("_"),weekdaysShort:"dim._len._mad._mèk._jed._van._sam.".split("_"),monthsShort:"jan._fev._mas_avr._me_jen_jiyè._out_sept._okt._nov._des.".split("_"),weekdaysMin:"di_le_ma_mè_je_va_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"nan %s",past:"sa gen %s",s:"kèk segond",m:"yon minit",mm:"%d minit",h:"inèdtan",hh:"%d zè",d:"yon jou",dd:"%d jou",M:"yon mwa",MM:"%d mwa",y:"yon ane",yy:"%d ane"}};return d.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/hu.js b/node_modules/dayjs/locale/hu.js new file mode 100644 index 0000000..e2aff04 --- /dev/null +++ b/node_modules/dayjs/locale/hu.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_hu=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),r={name:"hu",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("_"),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("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s múlva",past:"%s",s:function(e,n,t,r){return"néhány másodperc"+(r||n?"":"e")},m:function(e,n,t,r){return"egy perc"+(r||n?"":"e")},mm:function(e,n,t,r){return e+" perc"+(r||n?"":"e")},h:function(e,n,t,r){return"egy "+(r||n?"óra":"órája")},hh:function(e,n,t,r){return e+" "+(r||n?"óra":"órája")},d:function(e,n,t,r){return"egy "+(r||n?"nap":"napja")},dd:function(e,n,t,r){return e+" "+(r||n?"nap":"napja")},M:function(e,n,t,r){return"egy "+(r||n?"hónap":"hónapja")},MM:function(e,n,t,r){return e+" "+(r||n?"hónap":"hónapja")},y:function(e,n,t,r){return"egy "+(r||n?"év":"éve")},yy:function(e,n,t,r){return e+" "+(r||n?"év":"éve")}},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"}};return t.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/hy-am.js b/node_modules/dayjs/locale/hy-am.js new file mode 100644 index 0000000..44daa15 --- /dev/null +++ b/node_modules/dayjs/locale/hy-am.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_hy_am=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"hy-am",weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),months:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),weekStart:1,weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/id.js b/node_modules/dayjs/locale/id.js new file mode 100644 index 0000000..0637a65 --- /dev/null +++ b/node_modules/dayjs/locale/id.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_id=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"id",weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},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"},ordinal:function(e){return e+"."}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/index.d.ts b/node_modules/dayjs/locale/index.d.ts new file mode 100644 index 0000000..bd2dca2 --- /dev/null +++ b/node_modules/dayjs/locale/index.d.ts @@ -0,0 +1,11 @@ +/// + +declare module 'dayjs/locale/*' { + namespace locale { + interface Locale extends ILocale {} + } + + const locale: locale.Locale + + export = locale +} diff --git a/node_modules/dayjs/locale/is.js b/node_modules/dayjs/locale/is.js new file mode 100644 index 0000000..de6799b --- /dev/null +++ b/node_modules/dayjs/locale/is.js @@ -0,0 +1 @@ +!function(u,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],r):(u="undefined"!=typeof globalThis?globalThis:u||self).dayjs_locale_is=r(u.dayjs)}(this,(function(u){"use strict";function r(u){return u&&"object"==typeof u&&"default"in u?u:{default:u}}var n=r(u),e={s:["nokkrar sekúndur","nokkrar sekúndur","nokkrum sekúndum"],m:["mínúta","mínútu","mínútu"],mm:["mínútur","mínútur","mínútum"],h:["klukkustund","klukkustund","klukkustund"],hh:["klukkustundir","klukkustundir","klukkustundum"],d:["dagur","dag","degi"],dd:["dagar","daga","dögum"],M:["mánuður","mánuð","mánuði"],MM:["mánuðir","mánuði","mánuðum"],y:["ár","ár","ári"],yy:["ár","ár","árum"]};function t(u,r,n,t){var a=function(u,r,n,t){var a=t?0:n?1:2,d=2===u.length&&r%10==1?u[0]:u,m=e[d][a];return 1===u.length?m:"%d "+m}(n,u,t,r);return a.replace("%d",u)}var a={name:"is",weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),weekStart:1,weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),ordinal:function(u){return u},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t}};return n.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/it-ch.js b/node_modules/dayjs/locale/it-ch.js new file mode 100644 index 0000000..7e1c92f --- /dev/null +++ b/node_modules/dayjs/locale/it-ch.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_it_ch=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(e),t={name:"it-ch",weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",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"}};return n.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/it.js b/node_modules/dayjs/locale/it.js new file mode 100644 index 0000000..2ddf44b --- /dev/null +++ b/node_modules/dayjs/locale/it.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_it=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=o(e),n={name:"it",weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"qualche secondo",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:function(e){return e+"º"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ja.js b/node_modules/dayjs/locale/ja.js new file mode 100644 index 0000000..cd52f36 --- /dev/null +++ b/node_modules/dayjs/locale/ja.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ja=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"ja",weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),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("_"),ordinal:function(e){return e+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiem:function(e){return e<12?"午前":"午後"},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年"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/jv.js b/node_modules/dayjs/locale/jv.js new file mode 100644 index 0000000..7566308 --- /dev/null +++ b/node_modules/dayjs/locale/jv.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_jv=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),_={name:"jv",weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),weekStart:1,weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ka.js b/node_modules/dayjs/locale/ka.js new file mode 100644 index 0000000..7b2ce53 --- /dev/null +++ b/node_modules/dayjs/locale/ka.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ka=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ka",weekdays:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"%s შემდეგ",past:"%s წინ",s:"წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათის",d:"დღეს",dd:"%d დღის განმავლობაში",M:"თვის",MM:"%d თვის",y:"წელი",yy:"%d წლის"},ordinal:function(_){return _}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/kk.js b/node_modules/dayjs/locale/kk.js new file mode 100644 index 0000000..a2f17a3 --- /dev/null +++ b/node_modules/dayjs/locale/kk.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_kk=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"kk",weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekStart:1,relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/km.js b/node_modules/dayjs/locale/km.js new file mode 100644 index 0000000..528923e --- /dev/null +++ b/node_modules/dayjs/locale/km.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_km=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"km",weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekStart:1,weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/kn.js b/node_modules/dayjs/locale/kn.js new file mode 100644 index 0000000..e040eba --- /dev/null +++ b/node_modules/dayjs/locale/kn.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_kn=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"kn",weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ko.js b/node_modules/dayjs/locale/ko.js new file mode 100644 index 0000000..cfe8b37 --- /dev/null +++ b/node_modules/dayjs/locale/ko.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ko=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=_(e),t={name:"ko",weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),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("_"),ordinal:function(e){return e+"일"},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},meridiem:function(e){return e<12?"오전":"오후"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"}};return d.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ku.js b/node_modules/dayjs/locale/ku.js new file mode 100644 index 0000000..cd98fc2 --- /dev/null +++ b/node_modules/dayjs/locale/ku.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("dayjs")):"function"==typeof define&&define.amd?define(["exports","dayjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ku={},e.dayjs)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(t),d={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},o={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},u=["کانوونی دووەم","شوبات","ئادار","نیسان","ئایار","حوزەیران","تەممووز","ئاب","ئەیلوول","تشرینی یەکەم","تشرینی دووەم","کانوونی یەکەم"],i={name:"ku",months:u,monthsShort:u,weekdays:"یەکشەممە_دووشەممە_سێشەممە_چوارشەممە_پێنجشەممە_هەینی_شەممە".split("_"),weekdaysShort:"یەکشەم_دووشەم_سێشەم_چوارشەم_پێنجشەم_هەینی_شەممە".split("_"),weekStart:6,weekdaysMin:"ی_د_س_چ_پ_هـ_ش".split("_"),preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return o[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return d[e]})).replace(/,/g,"،")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiem:function(e){return e<12?"پ.ن":"د.ن"},relativeTime:{future:"لە %s",past:"لەمەوپێش %s",s:"چەند چرکەیەک",m:"یەک خولەک",mm:"%d خولەک",h:"یەک کاتژمێر",hh:"%d کاتژمێر",d:"یەک ڕۆژ",dd:"%d ڕۆژ",M:"یەک مانگ",MM:"%d مانگ",y:"یەک ساڵ",yy:"%d ساڵ"}};r.default.locale(i,null,!0),e.default=i,e.englishToArabicNumbersMap=d,Object.defineProperty(e,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ky.js b/node_modules/dayjs/locale/ky.js new file mode 100644 index 0000000..1fdc40e --- /dev/null +++ b/node_modules/dayjs/locale/ky.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ky=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ky",weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),weekStart:1,weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/lb.js b/node_modules/dayjs/locale/lb.js new file mode 100644 index 0000000..b6895f2 --- /dev/null +++ b/node_modules/dayjs/locale/lb.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_lb=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),n={name:"lb",weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),weekStart:1,weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/lo.js b/node_modules/dayjs/locale/lo.js new file mode 100644 index 0000000..1bf09d1 --- /dev/null +++ b/node_modules/dayjs/locale/lo.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_lo=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"lo",weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},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 ປີ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/lt.js b/node_modules/dayjs/locale/lt.js new file mode 100644 index 0000000..52f2225 --- /dev/null +++ b/node_modules/dayjs/locale/lt.js @@ -0,0 +1 @@ +!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_lt=s(e.dayjs)}(this,(function(e){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=s(e),d="sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),a="sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),l=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,M=function(e,s){return l.test(s)?d[e.month()]:a[e.month()]};M.s=a,M.f=d;var t={name:"lt",weekdays:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),weekdaysShort:"sek_pir_ant_tre_ket_pen_šeš".split("_"),weekdaysMin:"s_p_a_t_k_pn_š".split("_"),months:M,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"už %s",past:"prieš %s",s:"kelias sekundes",m:"minutę",mm:"%d minutes",h:"valandą",hh:"%d valandas",d:"dieną",dd:"%d dienas",M:"mėnesį",MM:"%d mėnesius",y:"metus",yy:"%d metus"},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"}};return i.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/lv.js b/node_modules/dayjs/locale/lv.js new file mode 100644 index 0000000..98fc126 --- /dev/null +++ b/node_modules/dayjs/locale/lv.js @@ -0,0 +1 @@ +!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_lv=s(e.dayjs)}(this,(function(e){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=s(e),d={name:"lv",weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),weekStart:1,weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},relativeTime:{future:"pēc %s",past:"pirms %s",s:"dažām sekundēm",m:"minūtes",mm:"%d minūtēm",h:"stundas",hh:"%d stundām",d:"dienas",dd:"%d dienām",M:"mēneša",MM:"%d mēnešiem",y:"gada",yy:"%d gadiem"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/me.js b/node_modules/dayjs/locale/me.js new file mode 100644 index 0000000..ecb22ae --- /dev/null +++ b/node_modules/dayjs/locale/me.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_me=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),a={name:"me",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return _.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/mi.js b/node_modules/dayjs/locale/mi.js new file mode 100644 index 0000000..1b328f0 --- /dev/null +++ b/node_modules/dayjs/locale/mi.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_mi=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(e),t={name:"mi",weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),weekStart:1,weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"}};return i.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/mk.js b/node_modules/dayjs/locale/mk.js new file mode 100644 index 0000000..0f2ece1 --- /dev/null +++ b/node_modules/dayjs/locale/mk.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_mk=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"mk",weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),weekStart:1,weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ml.js b/node_modules/dayjs/locale/ml.js new file mode 100644 index 0000000..8e7db4f --- /dev/null +++ b/node_modules/dayjs/locale/ml.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ml=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ml",weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/mn.js b/node_modules/dayjs/locale/mn.js new file mode 100644 index 0000000..4de299b --- /dev/null +++ b/node_modules/dayjs/locale/mn.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_mn=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"mn",weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},relativeTime:{future:"%s",past:"%s",s:"саяхан",m:"м",mm:"%dм",h:"1ц",hh:"%dц",d:"1ө",dd:"%dө",M:"1с",MM:"%dс",y:"1ж",yy:"%dж"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/mr.js b/node_modules/dayjs/locale/mr.js new file mode 100644 index 0000000..af6bb3a --- /dev/null +++ b/node_modules/dayjs/locale/mr.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_mr=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={name:"mr",weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"}};return t.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ms-my.js b/node_modules/dayjs/locale/ms-my.js new file mode 100644 index 0000000..1917d7a --- /dev/null +++ b/node_modules/dayjs/locale/ms-my.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ms_my=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),_={name:"ms-my",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),weekStart:1,weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},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"}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ms.js b/node_modules/dayjs/locale/ms.js new file mode 100644 index 0000000..be4f88e --- /dev/null +++ b/node_modules/dayjs/locale/ms.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ms=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),s={name:"ms",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("_"),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("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH.mm",LLLL:"dddd, D MMMM YYYY HH.mm"},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"},ordinal:function(e){return e+"."}};return t.default.locale(s,null,!0),s})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/mt.js b/node_modules/dayjs/locale/mt.js new file mode 100644 index 0000000..43d481a --- /dev/null +++ b/node_modules/dayjs/locale/mt.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_mt=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),i={name:"mt",weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),weekStart:1,weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"}};return a.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/my.js b/node_modules/dayjs/locale/my.js new file mode 100644 index 0000000..95adead --- /dev/null +++ b/node_modules/dayjs/locale/my.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_my=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"my",weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),weekStart:1,weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/nb.js b/node_modules/dayjs/locale/nb.js new file mode 100644 index 0000000..ece1f31 --- /dev/null +++ b/node_modules/dayjs/locale/nb.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_nb=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),a={name:"nb",weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%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"}};return n.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ne.js b/node_modules/dayjs/locale/ne.js new file mode 100644 index 0000000..3d166bc --- /dev/null +++ b/node_modules/dayjs/locale/ne.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ne=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"ne",weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मे_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),relativeTime:{future:"%s पछि",past:"%s अघि",s:"सेकेन्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"घन्टा",hh:"%d घन्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक वर्ष",yy:"%d वर्ष"},ordinal:function(e){return(""+e).replace(/\d/g,(function(e){return"०१२३४५६७८९"[e]}))},formats:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/nl-be.js b/node_modules/dayjs/locale/nl-be.js new file mode 100644 index 0000000..7a2f60f --- /dev/null +++ b/node_modules/dayjs/locale/nl-be.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_nl_be=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),d={name:"nl-be",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),weekStart:1,weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"}};return n.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/nl.js b/node_modules/dayjs/locale/nl.js new file mode 100644 index 0000000..47e789f --- /dev/null +++ b/node_modules/dayjs/locale/nl.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_nl=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(e),n={name:"nl",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("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),ordinal:function(e){return"["+e+(1===e||8===e||e>=20?"ste":"de")+"]"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"een minuut",mm:"%d minuten",h:"een uur",hh:"%d uur",d:"een dag",dd:"%d dagen",M:"een maand",MM:"%d maanden",y:"een jaar",yy:"%d jaar"}};return d.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/nn.js b/node_modules/dayjs/locale/nn.js new file mode 100644 index 0000000..eba3c24 --- /dev/null +++ b/node_modules/dayjs/locale/nn.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_nn=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),a={name:"nn",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_la".split("_"),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("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eitt minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månadar",y:"eitt år",yy:"%d år"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"}};return n.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/oc-lnc.js b/node_modules/dayjs/locale/oc-lnc.js new file mode 100644 index 0000000..12e162c --- /dev/null +++ b/node_modules/dayjs/locale/oc-lnc.js @@ -0,0 +1 @@ +!function(e,d){"object"==typeof exports&&"undefined"!=typeof module?module.exports=d(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],d):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_oc_lnc=d(e.dayjs)}(this,(function(e){"use strict";function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=d(e),s={name:"oc-lnc",weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"Dg_Dl_Dm_Dc_Dj_Dv_Ds".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),months:"genièr_febrièr_març_abrial_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),monthsShort:"gen_feb_març_abr_mai_junh_julh_ago_set_oct_nov_dec".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},ordinal:function(e){return e+"º"}};return n.default.locale(s,null,!0),s})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/pa-in.js b/node_modules/dayjs/locale/pa-in.js new file mode 100644 index 0000000..4ee3884 --- /dev/null +++ b/node_modules/dayjs/locale/pa-in.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_pa_in=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"pa-in",weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/pl.js b/node_modules/dayjs/locale/pl.js new file mode 100644 index 0000000..3f5148c --- /dev/null +++ b/node_modules/dayjs/locale/pl.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_pl=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=t(e);function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function n(e,t,i){var n=e+" ";switch(i){case"m":return t?"minuta":"minutę";case"mm":return n+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return n+(a(e)?"godziny":"godzin");case"MM":return n+(a(e)?"miesiące":"miesięcy");case"yy":return n+(a(e)?"lata":"lat")}}var r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),_="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),s=/D MMMM/,d=function(e,t){return s.test(t)?r[e.month()]:_[e.month()]};d.s=_,d.f=r;var o={name:"pl",weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),months:d,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:n,mm:n,h:n,hh:n,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:n,y:"rok",yy:n},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return i.default.locale(o,null,!0),o})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/pt-br.js b/node_modules/dayjs/locale/pt-br.js new file mode 100644 index 0000000..629c2f1 --- /dev/null +++ b/node_modules/dayjs/locale/pt-br.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_pt_br=o(e.dayjs)}(this,(function(e){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=o(e),s={name:"pt-br",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:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),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("_"),ordinal:function(e){return e+"º"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},relativeTime:{future:"em %s",past:"há %s",s:"poucos 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"}};return a.default.locale(s,null,!0),s})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/pt.js b/node_modules/dayjs/locale/pt.js new file mode 100644 index 0000000..91652e8 --- /dev/null +++ b/node_modules/dayjs/locale/pt.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_pt=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=a(e),t={name:"pt",weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sab".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sa".split("_"),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("_"),ordinal:function(e){return e+"º"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},relativeTime:{future:"em %s",past:"há %s",s:"alguns 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"}};return o.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/rn.js b/node_modules/dayjs/locale/rn.js new file mode 100644 index 0000000..a093364 --- /dev/null +++ b/node_modules/dayjs/locale/rn.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_rn=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var t=e(a),u={name:"rn",weekdays:"Ku wa Mungu_Ku wa Mbere_Ku wa Kabiri_Ku wa Gatatu_Ku wa Kane_Ku wa Gatanu_Ku wa Gatandatu".split("_"),weekdaysShort:"Kngu_Kmbr_Kbri_Ktat_Kkan_Ktan_Kdat".split("_"),weekdaysMin:"K7_K1_K2_K3_K4_K5_K6".split("_"),months:"Nzero_Ruhuhuma_Ntwarante_Ndamukiza_Rusama_Ruhenshi_Mukakaro_Myandagaro_Nyakanga_Gitugutu_Munyonyo_Kigarama".split("_"),monthsShort:"Nzer_Ruhuh_Ntwar_Ndam_Rus_Ruhen_Muk_Myand_Nyak_Git_Muny_Kig".split("_"),weekStart:1,ordinal:function(a){return a},relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return t.default.locale(u,null,!0),u})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ro.js b/node_modules/dayjs/locale/ro.js new file mode 100644 index 0000000..445af3d --- /dev/null +++ b/node_modules/dayjs/locale/ro.js @@ -0,0 +1 @@ +!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],i):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ro=i(e.dayjs)}(this,(function(e){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=i(e),_={name:"ro",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("_"),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("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"peste %s",past:"acum %s",s:"câteva secunde",m:"un minut",mm:"%d minute",h:"o oră",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lună",MM:"%d luni",y:"un an",yy:"%d ani"},ordinal:function(e){return e}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ru.js b/node_modules/dayjs/locale/ru.js new file mode 100644 index 0000000..f896790 --- /dev/null +++ b/node_modules/dayjs/locale/ru.js @@ -0,0 +1 @@ +!function(_,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ru=t(_.dayjs)}(this,(function(_){"use strict";function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var e=t(_),n="января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),s="январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),r="янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),o="янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_"),i=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function d(_,t,e){var n,s;return"m"===e?t?"минута":"минуту":_+" "+(n=+_,s={mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[e].split("_"),n%10==1&&n%100!=11?s[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var u=function(_,t){return i.test(t)?n[_.month()]:s[_.month()]};u.s=s,u.f=n;var a=function(_,t){return i.test(t)?r[_.month()]:o[_.month()]};a.s=o,a.f=r;var m={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:u,monthsShort:a,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:d,mm:d,h:"час",hh:d,d:"день",dd:d,M:"месяц",MM:d,y:"год",yy:d},ordinal:function(_){return _},meridiem:function(_){return _<4?"ночи":_<12?"утра":_<17?"дня":"вечера"}};return e.default.locale(m,null,!0),m})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/rw.js b/node_modules/dayjs/locale/rw.js new file mode 100644 index 0000000..bf4c280 --- /dev/null +++ b/node_modules/dayjs/locale/rw.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_rw=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var u=e(a),t={name:"rw",weekdays:"Ku Cyumweru_Kuwa Mbere_Kuwa Kabiri_Kuwa Gatatu_Kuwa Kane_Kuwa Gatanu_Kuwa Gatandatu".split("_"),months:"Mutarama_Gashyantare_Werurwe_Mata_Gicurasi_Kamena_Nyakanga_Kanama_Nzeri_Ukwakira_Ugushyingo_Ukuboza".split("_"),relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(a){return a}};return u.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sd.js b/node_modules/dayjs/locale/sd.js new file mode 100644 index 0000000..b1e1ee4 --- /dev/null +++ b/node_modules/dayjs/locale/sd.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_sd=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"sd",weekdays:"آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر".split("_"),months:"جنوري_فيبروري_مارچ_اپريل_مئي_جون_جولاءِ_آگسٽ_سيپٽمبر_آڪٽوبر_نومبر_ڊسمبر".split("_"),weekStart:1,weekdaysShort:"آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر".split("_"),monthsShort:"جنوري_فيبروري_مارچ_اپريل_مئي_جون_جولاءِ_آگسٽ_سيپٽمبر_آڪٽوبر_نومبر_ڊسمبر".split("_"),weekdaysMin:"آچر_سومر_اڱارو_اربع_خميس_جمع_ڇنڇر".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/se.js b/node_modules/dayjs/locale/se.js new file mode 100644 index 0000000..2cbb224 --- /dev/null +++ b/node_modules/dayjs/locale/se.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_se=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),t={name:"se",weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),weekStart:1,weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"}};return n.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/si.js b/node_modules/dayjs/locale/si.js new file mode 100644 index 0000000..216ae8a --- /dev/null +++ b/node_modules/dayjs/locale/si.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_si=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"si",weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),months:"දුරුතු_නවම්_මැදින්_බක්_වෙසක්_පොසොන්_ඇසළ_නිකිණි_බිනර_වප්_ඉල්_උඳුවප්".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),monthsShort:"දුරු_නව_මැදි_බක්_වෙස_පොසො_ඇස_නිකි_බින_වප්_ඉල්_උඳු".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),ordinal:function(_){return _},formats:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"විනාඩිය",mm:"විනාඩි %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sk.js b/node_modules/dayjs/locale/sk.js new file mode 100644 index 0000000..b2707e3 --- /dev/null +++ b/node_modules/dayjs/locale/sk.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sk=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function r(e){return e>1&&e<5&&1!=~~(e/10)}function o(e,t,n,o){var a=e+" ";switch(n){case"s":return t||o?"pár sekúnd":"pár sekundami";case"m":return t?"minúta":o?"minútu":"minútou";case"mm":return t||o?a+(r(e)?"minúty":"minút"):a+"minútami";case"h":return t?"hodina":o?"hodinu":"hodinou";case"hh":return t||o?a+(r(e)?"hodiny":"hodín"):a+"hodinami";case"d":return t||o?"deň":"dňom";case"dd":return t||o?a+(r(e)?"dni":"dní"):a+"dňami";case"M":return t||o?"mesiac":"mesiacom";case"MM":return t||o?a+(r(e)?"mesiace":"mesiacov"):a+"mesiacmi";case"y":return t||o?"rok":"rokom";case"yy":return t||o?a+(r(e)?"roky":"rokov"):a+"rokmi"}}var a={name:"sk",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("_"),months:"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),monthsShort:"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"pred %s",s:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o}};return n.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sl.js b/node_modules/dayjs/locale/sl.js new file mode 100644 index 0000000..162d2ec --- /dev/null +++ b/node_modules/dayjs/locale/sl.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sl=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e);function r(e){return e%100==2}function a(e){return e%100==3||e%100==4}function s(e,n,t,s){var m=e+" ";switch(t){case"s":return n||s?"nekaj sekund":"nekaj sekundami";case"m":return n?"ena minuta":"eno minuto";case"mm":return r(e)?m+(n||s?"minuti":"minutama"):a(e)?m+(n||s?"minute":"minutami"):m+(n||s?"minut":"minutami");case"h":return n?"ena ura":"eno uro";case"hh":return r(e)?m+(n||s?"uri":"urama"):a(e)?m+(n||s?"ure":"urami"):m+(n||s?"ur":"urami");case"d":return n||s?"en dan":"enim dnem";case"dd":return r(e)?m+(n||s?"dneva":"dnevoma"):m+(n||s?"dni":"dnevi");case"M":return n||s?"en mesec":"enim mesecem";case"MM":return r(e)?m+(n||s?"meseca":"mesecema"):a(e)?m+(n||s?"mesece":"meseci"):m+(n||s?"mesecev":"meseci");case"y":return n||s?"eno leto":"enim letom";case"yy":return r(e)?m+(n||s?"leti":"letoma"):a(e)?m+(n||s?"leta":"leti"):m+(n||s?"let":"leti")}}var m={name:"sl",weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),weekStart:1,weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"čez %s",past:"pred %s",s:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s}};return t.default.locale(m,null,!0),m})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sq.js b/node_modules/dayjs/locale/sq.js new file mode 100644 index 0000000..99bca9a --- /dev/null +++ b/node_modules/dayjs/locale/sq.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sq=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),n={name:"sq",weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),weekStart:1,weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"}};return _.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sr-cyrl.js b/node_modules/dayjs/locale/sr-cyrl.js new file mode 100644 index 0000000..90daeeb --- /dev/null +++ b/node_modules/dayjs/locale/sr-cyrl.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sr_cyrl=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(e),a={words:{m:["један минут","једног минута"],mm:["%d минут","%d минута","%d минута"],h:["један сат","једног сата"],hh:["%d сат","%d сата","%d сати"],d:["један дан","једног дана"],dd:["%d дан","%d дана","%d дана"],M:["један месец","једног месеца"],MM:["%d месец","%d месеца","%d месеци"],y:["једну годину","једне године"],yy:["%d годину","%d године","%d година"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,r,d){var i=a.words[r];if(1===r.length)return"y"===r&&t?"једна година":d||t?i[0]:i[1];var m=a.correctGrammarCase(e,i);return"yy"===r&&t&&"%d годину"===m?e+" година":m.replace("%d",e)}},d={name:"sr-cyrl",weekdays:"Недеља_Понедељак_Уторак_Среда_Четвртак_Петак_Субота".split("_"),weekdaysShort:"Нед._Пон._Уто._Сре._Чет._Пет._Суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),months:"Јануар_Фебруар_Март_Април_Мај_Јун_Јул_Август_Септембар_Октобар_Новембар_Децембар".split("_"),monthsShort:"Јан._Феб._Мар._Апр._Мај_Јун_Јул_Авг._Сеп._Окт._Нов._Дец.".split("_"),weekStart:1,relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:a.relativeTimeFormatter,mm:a.relativeTimeFormatter,h:a.relativeTimeFormatter,hh:a.relativeTimeFormatter,d:a.relativeTimeFormatter,dd:a.relativeTimeFormatter,M:a.relativeTimeFormatter,MM:a.relativeTimeFormatter,y:a.relativeTimeFormatter,yy:a.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return r.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sr.js b/node_modules/dayjs/locale/sr.js new file mode 100644 index 0000000..35a5b55 --- /dev/null +++ b/node_modules/dayjs/locale/sr.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sr=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),r={words:{m:["jedan minut","jednog minuta"],mm:["%d minut","%d minuta","%d minuta"],h:["jedan sat","jednog sata"],hh:["%d sat","%d sata","%d sati"],d:["jedan dan","jednog dana"],dd:["%d dan","%d dana","%d dana"],M:["jedan mesec","jednog meseca"],MM:["%d mesec","%d meseca","%d meseci"],y:["jednu godinu","jedne godine"],yy:["%d godinu","%d godine","%d godina"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,a,d){var n=r.words[a];if(1===a.length)return"y"===a&&t?"jedna godina":d||t?n[0]:n[1];var i=r.correctGrammarCase(e,n);return"yy"===a&&t&&"%d godinu"===i?e+" godina":i.replace("%d",e)}},d={name:"sr",weekdays:"Nedelja_Ponedeljak_Utorak_Sreda_Četvrtak_Petak_Subota".split("_"),weekdaysShort:"Ned._Pon._Uto._Sre._Čet._Pet._Sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),months:"Januar_Februar_Mart_April_Maj_Jun_Jul_Avgust_Septembar_Oktobar_Novembar_Decembar".split("_"),monthsShort:"Jan._Feb._Mar._Apr._Maj_Jun_Jul_Avg._Sep._Okt._Nov._Dec.".split("_"),weekStart:1,relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:r.relativeTimeFormatter,mm:r.relativeTimeFormatter,h:r.relativeTimeFormatter,hh:r.relativeTimeFormatter,d:r.relativeTimeFormatter,dd:r.relativeTimeFormatter,M:r.relativeTimeFormatter,MM:r.relativeTimeFormatter,y:r.relativeTimeFormatter,yy:r.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return a.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ss.js b/node_modules/dayjs/locale/ss.js new file mode 100644 index 0000000..4df16a5 --- /dev/null +++ b/node_modules/dayjs/locale/ss.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_ss=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=n(e),i={name:"ss",weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),weekStart:1,weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"}};return a.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sv-fi.js b/node_modules/dayjs/locale/sv-fi.js new file mode 100644 index 0000000..5b2f8af --- /dev/null +++ b/node_modules/dayjs/locale/sv-fi.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sv_fi=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),d={name:"sv-fi",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("_"),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("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY, [kl.] HH.mm",LLLL:"dddd, D. MMMM YYYY, [kl.] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [kl.] HH.mm",llll:"ddd, D. MMM YYYY, [kl.] HH.mm"},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"}};return a.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sv.js b/node_modules/dayjs/locale/sv.js new file mode 100644 index 0000000..16e6d37 --- /dev/null +++ b/node_modules/dayjs/locale/sv.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_sv=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e),d={name:"sv",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("_"),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("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},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"}};return a.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/sw.js b/node_modules/dayjs/locale/sw.js new file mode 100644 index 0000000..a13bd44 --- /dev/null +++ b/node_modules/dayjs/locale/sw.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_sw=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var i=e(a),t={name:"sw",weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekStart:1,ordinal:function(a){return a},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return i.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ta.js b/node_modules/dayjs/locale/ta.js new file mode 100644 index 0000000..406cf13 --- /dev/null +++ b/node_modules/dayjs/locale/ta.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ta=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ta",weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/te.js b/node_modules/dayjs/locale/te.js new file mode 100644 index 0000000..c7593db --- /dev/null +++ b/node_modules/dayjs/locale/te.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_te=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"te",weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),ordinal:function(_){return _},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tet.js b/node_modules/dayjs/locale/tet.js new file mode 100644 index 0000000..aec6f68 --- /dev/null +++ b/node_modules/dayjs/locale/tet.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_tet=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=t(e),a={name:"tet",weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),weekStart:1,weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"}};return u.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tg.js b/node_modules/dayjs/locale/tg.js new file mode 100644 index 0000000..7643103 --- /dev/null +++ b/node_modules/dayjs/locale/tg.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_tg=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"tg",weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),weekStart:1,weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/th.js b/node_modules/dayjs/locale/th.js new file mode 100644 index 0000000..185d4eb --- /dev/null +++ b/node_modules/dayjs/locale/th.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_th=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"th",weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},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 ปี"},ordinal:function(_){return _+"."}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tk.js b/node_modules/dayjs/locale/tk.js new file mode 100644 index 0000000..1e737b5 --- /dev/null +++ b/node_modules/dayjs/locale/tk.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_tk=n(e.dayjs)}(this,(function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),_={name:"tk",weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e){return e+"."}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tl-ph.js b/node_modules/dayjs/locale/tl-ph.js new file mode 100644 index 0000000..885f8a9 --- /dev/null +++ b/node_modules/dayjs/locale/tl-ph.js @@ -0,0 +1 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_tl_ph=a(e.dayjs)}(this,(function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),t={name:"tl-ph",weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),weekStart:1,weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},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"}};return n.default.locale(t,null,!0),t})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tlh.js b/node_modules/dayjs/locale/tlh.js new file mode 100644 index 0000000..03d8996 --- /dev/null +++ b/node_modules/dayjs/locale/tlh.js @@ -0,0 +1 @@ +!function(a,j){"object"==typeof exports&&"undefined"!=typeof module?module.exports=j(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],j):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_tlh=j(a.dayjs)}(this,(function(a){"use strict";function j(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var t=j(a),e={name:"tlh",weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),weekStart:1,weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return t.default.locale(e,null,!0),e})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tr.js b/node_modules/dayjs/locale/tr.js new file mode 100644 index 0000000..9c7844a --- /dev/null +++ b/node_modules/dayjs/locale/tr.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_tr=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var t=e(a),_={name:"tr",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("_"),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("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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){return a+"."}};return t.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/types.d.ts b/node_modules/dayjs/locale/types.d.ts new file mode 100644 index 0000000..2c24a64 --- /dev/null +++ b/node_modules/dayjs/locale/types.d.ts @@ -0,0 +1,33 @@ +declare interface ILocale { + name: string + weekdays?: string[] + months?: string[] + weekStart?: number + weekdaysShort?: string[] + monthsShort?: string[] + weekdaysMin?: string[] + ordinal?: (n: number) => number | string + formats: Partial<{ + LT: string + LTS: string + L: string + LL: string + LLL: string + LLLL: string + }> + relativeTime: Partial<{ + future: string + past: string + s: string + m: string + mm: string + h: string + hh: string + d: string + dd: string + M: string + MM: string + y: string + yy: string + }> +} diff --git a/node_modules/dayjs/locale/tzl.js b/node_modules/dayjs/locale/tzl.js new file mode 100644 index 0000000..2b1d598 --- /dev/null +++ b/node_modules/dayjs/locale/tzl.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_tzl=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={name:"tzl",weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),weekStart:1,weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"}};return t.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tzm-latn.js b/node_modules/dayjs/locale/tzm-latn.js new file mode 100644 index 0000000..3f7cdd4 --- /dev/null +++ b/node_modules/dayjs/locale/tzm-latn.js @@ -0,0 +1 @@ +!function(a,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],s):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_tzm_latn=s(a.dayjs)}(this,(function(a){"use strict";function s(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var n=s(a),i={name:"tzm-latn",weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekStart:6,weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"}};return n.default.locale(i,null,!0),i})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/tzm.js b/node_modules/dayjs/locale/tzm.js new file mode 100644 index 0000000..e4c4031 --- /dev/null +++ b/node_modules/dayjs/locale/tzm.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_tzm=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"tzm",weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekStart:6,weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ug-cn.js b/node_modules/dayjs/locale/ug-cn.js new file mode 100644 index 0000000..995c3b3 --- /dev/null +++ b/node_modules/dayjs/locale/ug-cn.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ug_cn=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ug-cn",weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekStart:1,weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/uk.js b/node_modules/dayjs/locale/uk.js new file mode 100644 index 0000000..537afb1 --- /dev/null +++ b/node_modules/dayjs/locale/uk.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_uk=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),s="січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),n="січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),o=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function d(_,e,t){var s,n;return"m"===t?e?"хвилина":"хвилину":"h"===t?e?"година":"годину":_+" "+(s=+_,n={ss:e?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:e?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:e?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[t].split("_"),s%10==1&&s%100!=11?n[0]:s%10>=2&&s%10<=4&&(s%100<10||s%100>=20)?n[1]:n[2])}var i=function(_,e){return o.test(e)?s[_.month()]:n[_.month()]};i.s=n,i.f=s;var r={name:"uk",weekdays:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),weekdaysShort:"ндл_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),months:i,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekStart:1,relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:d,mm:d,h:d,hh:d,d:"день",dd:d,M:"місяць",MM:d,y:"рік",yy:d},ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"}};return t.default.locale(r,null,!0),r})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/ur.js b/node_modules/dayjs/locale/ur.js new file mode 100644 index 0000000..4f83c8b --- /dev/null +++ b/node_modules/dayjs/locale/ur.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_ur=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"ur",weekdays:"اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ".split("_"),months:"جنوری_فروری_مارچ_اپریل_مئی_جون_جولائی_اگست_ستمبر_اکتوبر_نومبر_دسمبر".split("_"),weekStart:1,weekdaysShort:"اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ".split("_"),monthsShort:"جنوری_فروری_مارچ_اپریل_مئی_جون_جولائی_اگست_ستمبر_اکتوبر_نومبر_دسمبر".split("_"),weekdaysMin:"اتوار_پیر_منگل_بدھ_جمعرات_جمعہ_ہفتہ".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/uz-latn.js b/node_modules/dayjs/locale/uz-latn.js new file mode 100644 index 0000000..a8ebab4 --- /dev/null +++ b/node_modules/dayjs/locale/uz-latn.js @@ -0,0 +1 @@ +!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(a="undefined"!=typeof globalThis?globalThis:a||self).dayjs_locale_uz_latn=e(a.dayjs)}(this,(function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var _=e(a),n={name:"uz-latn",weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),weekStart:1,weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),ordinal:function(a){return a},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"Yaqin %s ichida",past:"%s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"}};return _.default.locale(n,null,!0),n})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/uz.js b/node_modules/dayjs/locale/uz.js new file mode 100644 index 0000000..f6992b1 --- /dev/null +++ b/node_modules/dayjs/locale/uz.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_uz=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"uz",weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),weekStart:1,weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),ordinal:function(_){return _},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"Якин %s ичида",past:"%s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/vi.js b/node_modules/dayjs/locale/vi.js new file mode 100644 index 0000000..ee33954 --- /dev/null +++ b/node_modules/dayjs/locale/vi.js @@ -0,0 +1 @@ +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],n):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_locale_vi=n(t.dayjs)}(this,(function(t){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var h=n(t),_={name:"vi",weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),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("_"),weekStart:1,weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),ordinal:function(t){return t},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},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"}};return h.default.locale(_,null,!0),_})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/x-pseudo.js b/node_modules/dayjs/locale/x-pseudo.js new file mode 100644 index 0000000..c1215d6 --- /dev/null +++ b/node_modules/dayjs/locale/x-pseudo.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_x_pseudo=t(e.dayjs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),d={name:"x-pseudo",weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),weekStart:1,weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"}};return _.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/yo.js b/node_modules/dayjs/locale/yo.js new file mode 100644 index 0000000..b12b37b --- /dev/null +++ b/node_modules/dayjs/locale/yo.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_yo=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={name:"yo",weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),weekStart:1,weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"}};return t.default.locale(a,null,!0),a})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/zh-cn.js b/node_modules/dayjs/locale/zh-cn.js new file mode 100644 index 0000000..21cf228 --- /dev/null +++ b/node_modules/dayjs/locale/zh-cn.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},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 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/zh-hk.js b/node_modules/dayjs/locale/zh-hk.js new file mode 100644 index 0000000..f4b220d --- /dev/null +++ b/node_modules/dayjs/locale/zh-hk.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_zh_hk=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"zh-hk",months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),ordinal:function(_,e){return"W"===e?_+"週":_+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d 分鐘",h:"一小時",hh:"%d 小時",d:"一天",dd:"%d 天",M:"一個月",MM:"%d 個月",y:"一年",yy:"%d 年"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/zh-tw.js b/node_modules/dayjs/locale/zh-tw.js new file mode 100644 index 0000000..5970f17 --- /dev/null +++ b/node_modules/dayjs/locale/zh-tw.js @@ -0,0 +1 @@ +!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_zh_tw=e(_.dayjs)}(this,(function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={name:"zh-tw",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(_,e){return"W"===e?_+"週":_+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},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 年"},meridiem:function(_,e){var t=100*_+e;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/locale/zh.js b/node_modules/dayjs/locale/zh.js new file mode 100644 index 0000000..2e80015 --- /dev/null +++ b/node_modules/dayjs/locale/zh.js @@ -0,0 +1 @@ +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},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 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d})); \ No newline at end of file diff --git a/node_modules/dayjs/package.json b/node_modules/dayjs/package.json new file mode 100644 index 0000000..0fb7526 --- /dev/null +++ b/node_modules/dayjs/package.json @@ -0,0 +1,115 @@ +{ + "_from": "dayjs", + "_id": "dayjs@1.11.10", + "_inBundle": false, + "_integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "_location": "/dayjs", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "dayjs", + "name": "dayjs", + "escapedName": "dayjs", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", + "_shasum": "68acea85317a6e164457d6d6947564029a6a16a0", + "_spec": "dayjs", + "_where": "C:\\Users\\Administrator\\Desktop\\jundaosuzhou_wechatxcx", + "author": { + "name": "iamkun" + }, + "bugs": { + "url": "https://github.com/iamkun/dayjs/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "2KB immutable date time library alternative to Moment.js with the same modern API ", + "devDependencies": { + "@babel/cli": "^7.0.0-beta.44", + "@babel/core": "^7.0.0-beta.44", + "@babel/node": "^7.0.0-beta.44", + "@babel/preset-env": "^7.0.0-beta.44", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^22.4.3", + "babel-plugin-external-helpers": "^6.22.0", + "cross-env": "^5.1.6", + "eslint": "^4.19.1", + "eslint-config-airbnb-base": "^12.1.0", + "eslint-plugin-import": "^2.10.0", + "eslint-plugin-jest": "^21.15.0", + "gzip-size-cli": "^2.1.0", + "jasmine-core": "^2.99.1", + "jest": "^22.4.3", + "karma": "^2.0.2", + "karma-jasmine": "^1.1.2", + "karma-sauce-launcher": "^1.1.0", + "mockdate": "^2.0.2", + "moment": "2.29.2", + "moment-timezone": "0.5.31", + "ncp": "^2.0.0", + "pre-commit": "^1.2.2", + "prettier": "^1.16.1", + "rollup": "^2.45.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-terser": "^7.0.2", + "size-limit": "^0.18.0", + "typescript": "^2.8.3" + }, + "homepage": "https://day.js.org", + "jest": { + "roots": [ + "test" + ], + "testRegex": "test/(.*?/)?.*test.js$", + "testURL": "http://localhost", + "coverageDirectory": "./coverage/", + "collectCoverage": true, + "collectCoverageFrom": [ + "src/**/*" + ] + }, + "keywords": [ + "dayjs", + "date", + "time", + "immutable", + "moment" + ], + "license": "MIT", + "main": "dayjs.min.js", + "name": "dayjs", + "pre-commit": [ + "lint" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/iamkun/dayjs.git" + }, + "scripts": { + "babel": "cross-env BABEL_ENV=build babel src --out-dir esm --copy-files && node build/esm", + "build": "cross-env BABEL_ENV=build node build && npm run size", + "lint": "eslint src/* test/* build/*", + "prettier": "prettier --write \"docs/**/*.md\"", + "sauce": "npx karma start karma.sauce.conf.js", + "size": "size-limit && gzip-size dayjs.min.js", + "test": "TZ=Pacific/Auckland npm run test-tz && TZ=Europe/London npm run test-tz && TZ=America/Whitehorse npm run test-tz && npm run test-tz && jest", + "test-tz": "date && jest test/timezone.test --coverage=false", + "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2 && npm run sauce -- 3" + }, + "size-limit": [ + { + "limit": "2.99 KB", + "path": "dayjs.min.js" + } + ], + "types": "index.d.ts", + "version": "1.11.10" +} diff --git a/node_modules/dayjs/plugin/advancedFormat.d.ts b/node_modules/dayjs/plugin/advancedFormat.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/advancedFormat.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/advancedFormat.js b/node_modules/dayjs/plugin/advancedFormat.js new file mode 100644 index 0000000..88d62e7 --- /dev/null +++ b/node_modules/dayjs/plugin/advancedFormat.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){"use strict";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return s.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return s.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return s.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return n.bind(this)(a)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/arraySupport.d.ts b/node_modules/dayjs/plugin/arraySupport.d.ts new file mode 100644 index 0000000..e4e44b2 --- /dev/null +++ b/node_modules/dayjs/plugin/arraySupport.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare module 'dayjs' { + interface ConfigTypeMap { + arraySupport: [number?, number?, number?, number?, number?, number?, number?] + } +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/arraySupport.js b/node_modules/dayjs/plugin/arraySupport.js new file mode 100644 index 0000000..b16675f --- /dev/null +++ b/node_modules/dayjs/plugin/arraySupport.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_arraySupport=t()}(this,(function(){"use strict";return function(e,t,n){var o=t.prototype,i=function(e){var t=e.date,o=e.utc;return Array.isArray(t)?o?t.length?new Date(Date.UTC.apply(null,t)):new Date:1===t.length?n(String(t[0])).toDate():new(Function.prototype.bind.apply(Date,[null].concat(t))):t},a=o.parse;o.parse=function(e){e.date=i.bind(this)(e),a.bind(this)(e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/badMutable.d.ts b/node_modules/dayjs/plugin/badMutable.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/badMutable.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/badMutable.js b/node_modules/dayjs/plugin/badMutable.js new file mode 100644 index 0000000..68270cc --- /dev/null +++ b/node_modules/dayjs/plugin/badMutable.js @@ -0,0 +1 @@ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_badMutable=i()}(this,(function(){"use strict";return function(t,i){var n=i.prototype;n.$g=function(t,i,n){return this.$utils().u(t)?this[i]:this.$set(n,t)},n.set=function(t,i){return this.$set(t,i)};var e=n.startOf;n.startOf=function(t,i){return this.$d=e.bind(this)(t,i).toDate(),this.init(),this};var s=n.add;n.add=function(t,i){return this.$d=s.bind(this)(t,i).toDate(),this.init(),this};var o=n.locale;n.locale=function(t,i){return t?(this.$L=o.bind(this)(t,i).$L,this):this.$L};var r=n.daysInMonth;n.daysInMonth=function(){return r.bind(this.clone())()};var u=n.isSame;n.isSame=function(t,i){return u.bind(this.clone())(t,i)};var f=n.isBefore;n.isBefore=function(t,i){return f.bind(this.clone())(t,i)};var d=n.isAfter;n.isAfter=function(t,i){return d.bind(this.clone())(t,i)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/bigIntSupport.d.ts b/node_modules/dayjs/plugin/bigIntSupport.d.ts new file mode 100644 index 0000000..d9f2f39 --- /dev/null +++ b/node_modules/dayjs/plugin/bigIntSupport.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs' + +declare module 'dayjs' { + interface ConfigTypeMap { + bigIntSupport: BigInt + } + export function unix(t: BigInt): Dayjs +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/bigIntSupport.js b/node_modules/dayjs/plugin/bigIntSupport.js new file mode 100644 index 0000000..0c7efac --- /dev/null +++ b/node_modules/dayjs/plugin/bigIntSupport.js @@ -0,0 +1 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_bigIntSupport=e()}(this,(function(){"use strict";var n=function(n){return"bigint"==typeof n};return function(e,t,i){var o=t.prototype,u=function(e){var t=e.date;return n(t)?Number(t):t},r=o.parse;o.parse=function(n){n.date=u.bind(this)(n),r.bind(this)(n)};var f=i.unix;i.unix=function(e){var t=n(e)?Number(e):e;return f(t)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/buddhistEra.d.ts b/node_modules/dayjs/plugin/buddhistEra.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/buddhistEra.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/buddhistEra.js b/node_modules/dayjs/plugin/buddhistEra.js new file mode 100644 index 0000000..58b137c --- /dev/null +++ b/node_modules/dayjs/plugin/buddhistEra.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_buddhistEra=e()}(this,(function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/(\[[^\]]+])|BBBB|BB/g,(function(t,n){var i,o=String(e.$y+543),f="BB"===t?[o.slice(-2),2]:[o,4];return n||(i=e.$utils()).s.apply(i,f.concat(["0"]))}));return i.bind(this)(n)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/calendar.d.ts b/node_modules/dayjs/plugin/calendar.d.ts new file mode 100644 index 0000000..a8d064f --- /dev/null +++ b/node_modules/dayjs/plugin/calendar.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + calendar(referenceTime?: ConfigType, formats?: object): string + } +} diff --git a/node_modules/dayjs/plugin/calendar.js b/node_modules/dayjs/plugin/calendar.js new file mode 100644 index 0000000..c577098 --- /dev/null +++ b/node_modules/dayjs/plugin/calendar.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_calendar=t()}(this,(function(){"use strict";return function(e,t,a){var n="h:mm A",d={lastDay:"[Yesterday at] "+n,sameDay:"[Today at] "+n,nextDay:"[Tomorrow at] "+n,nextWeek:"dddd [at] "+n,lastWeek:"[Last] dddd [at] "+n,sameElse:"MM/DD/YYYY"};t.prototype.calendar=function(e,t){var n=t||this.$locale().calendar||d,o=a(e||void 0).startOf("d"),s=this.diff(o,"d",!0),i="sameElse",f=s<-6?i:s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":i,l=n[f]||d[f];return"function"==typeof l?l.call(this,a()):this.format(l)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/customParseFormat.d.ts b/node_modules/dayjs/plugin/customParseFormat.d.ts new file mode 100644 index 0000000..1b41c0d --- /dev/null +++ b/node_modules/dayjs/plugin/customParseFormat.d.ts @@ -0,0 +1,8 @@ +import { PluginFunc } from 'dayjs' + +declare interface PluginOptions { + parseTwoDigitYear?: (yearString: string) => number +} + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/customParseFormat.js b/node_modules/dayjs/plugin/customParseFormat.js new file mode 100644 index 0000000..66d6089 --- /dev/null +++ b/node_modules/dayjs/plugin/customParseFormat.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,i=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,a("seconds")],ss:[r,a("seconds")],m:[r,a("minutes")],mm:[r,a("minutes")],H:[r,a("hours")],h:[r,a("hours")],HH:[r,a("hours")],hh:[r,a("hours")],D:[r,a("day")],DD:[n,a("day")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,a("month")],MM:[n,a("month")],MMM:[i,function(e){var t=h("months"),n=(h("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\d{4}/,a("year")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date(("X"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date("")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date("")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(""))}else i.call(this,e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/dayOfYear.d.ts b/node_modules/dayjs/plugin/dayOfYear.d.ts new file mode 100644 index 0000000..4fd6601 --- /dev/null +++ b/node_modules/dayjs/plugin/dayOfYear.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + dayOfYear(): number + dayOfYear(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/plugin/dayOfYear.js b/node_modules/dayjs/plugin/dayOfYear.js new file mode 100644 index 0000000..4a57000 --- /dev/null +++ b/node_modules/dayjs/plugin/dayOfYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){"use strict";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/devHelper.d.ts b/node_modules/dayjs/plugin/devHelper.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/devHelper.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/devHelper.js b/node_modules/dayjs/plugin/devHelper.js new file mode 100644 index 0000000..a3f6daf --- /dev/null +++ b/node_modules/dayjs/plugin/devHelper.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_devHelper=t()}(this,(function(){"use strict";return function(e,t,o){if(!process||"production"!==process.env.NODE_ENV){var s=t.prototype,n=s.parse;s.parse=function(e){var t=e.date;return"string"==typeof t&&13===t.length&&console.warn("To parse a Unix timestamp like "+t+", you should pass it as a Number. https://day.js.org/docs/en/parse/unix-timestamp-milliseconds"),"number"==typeof t&&4===String(t).length&&console.warn("Guessing you may want to parse the Year "+t+", you should pass it as a String "+t+", not a Number. Otherwise, "+t+" will be treated as a Unix timestamp"),e.args.length>=2&&!o.p.customParseFormat&&console.warn("To parse a date-time string like "+t+" using the given format, you should enable customParseFormat plugin first. https://day.js.org/docs/en/parse/string-format"),n.bind(this)(e)};var a=o.locale;o.locale=function(e,t,s){return void 0===t&&"string"==typeof e&&(o.Ls[e]||console.warn("Guessing you may want to use locale "+e+", you have to load it before using it. https://day.js.org/docs/en/i18n/loading-into-nodejs")),a(e,t,s)}}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/duration.d.ts b/node_modules/dayjs/plugin/duration.d.ts new file mode 100644 index 0000000..9675a80 --- /dev/null +++ b/node_modules/dayjs/plugin/duration.d.ts @@ -0,0 +1,88 @@ +import { PluginFunc } from 'dayjs' +import { OpUnitType, UnitTypeLongPlural } from 'dayjs'; + +declare const plugin: PluginFunc +export as namespace plugin; +export = plugin + +declare namespace plugin { + /** + * @deprecated Please use more strict types + */ + type DurationInputType = string | number | object + /** + * @deprecated Please use more strict types + */ + type DurationAddType = number | object | Duration + + type DurationUnitsObjectType = Partial<{ + [unit in Exclude | "weeks"]: number + }>; + type DurationUnitType = Exclude + type CreateDurationType = + ((units: DurationUnitsObjectType) => Duration) + & ((time: number, unit?: DurationUnitType) => Duration) + & ((ISO_8601: string) => Duration) + type AddDurationType = CreateDurationType & ((duration: Duration) => Duration) + + interface Duration { + new (input: string | number | object, unit?: string, locale?: string): Duration + + clone(): Duration + + humanize(withSuffix?: boolean): string + + milliseconds(): number + asMilliseconds(): number + + seconds(): number + asSeconds(): number + + minutes(): number + asMinutes(): number + + hours(): number + asHours(): number + + days(): number + asDays(): number + + weeks(): number + asWeeks(): number + + months(): number + asMonths(): number + + years(): number + asYears(): number + + as(unit: DurationUnitType): number + + get(unit: DurationUnitType): number + + add: AddDurationType + + subtract: AddDurationType + + toJSON(): string + + toISOString(): string + + format(formatStr?: string): string + + locale(locale: string): Duration + } +} + +declare module 'dayjs' { + interface Dayjs { + add(duration: plugin.Duration): Dayjs + subtract(duration: plugin.Duration): Dayjs + } + + /** + * @param time If unit is not present, time treated as number of milliseconds + */ + export const duration: plugin.CreateDurationType; + export function isDuration(d: any): d is plugin.Duration +} \ No newline at end of file diff --git a/node_modules/dayjs/plugin/duration.js b/node_modules/dayjs/plugin/duration.js new file mode 100644 index 0000000..4578f06 --- /dev/null +++ b/node_modules/dayjs/plugin/duration.js @@ -0,0 +1 @@ +!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){"use strict";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+"s"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:""+y(t)+s}:{negative:!1,format:""+t+s}:{negative:!1,format:""}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if("number"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if("object"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if("string"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,"Y"),s=v(this.$d.months,"M"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,"D"),e=v(this.$d.hours,"H"),r=v(this.$d.minutes,"M"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,"S"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?"T":"",h=(d?"-":"")+"P"+t.format+s.format+i.format+a+e.format+r.format+u.format;return"P"===h||"-P"===h?"P0D":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||"YYYY-MM-DDTHH:mm:ss",i={Y:this.$d.years,YY:s.s(this.$d.years,2,"0"),YYYY:s.s(this.$d.years,4,"0"),M:this.$d.months,MM:s.s(this.$d.months,2,"0"),D:this.$d.days,DD:s.s(this.$d.days,2,"0"),H:this.$d.hours,HH:s.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,"0"),SSS:s.s(this.$d.milliseconds,3,"0")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return"milliseconds"===n?s%=1e3:s="weeks"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get("milliseconds")},y.asMilliseconds=function(){return this.as("milliseconds")},y.seconds=function(){return this.get("seconds")},y.asSeconds=function(){return this.as("seconds")},y.minutes=function(){return this.get("minutes")},y.asMinutes=function(){return this.as("minutes")},y.hours=function(){return this.get("hours")},y.asHours=function(){return this.as("hours")},y.days=function(){return this.get("days")},y.asDays=function(){return this.as("days")},y.weeks=function(){return this.get("weeks")},y.asWeeks=function(){return this.as("weeks")},y.months=function(){return this.get("months")},y.asMonths=function(){return this.as("months")},y.years=function(){return this.get("years")},y.asYears=function(){return this.as("years")},l}(),p=function(t,s,n){return t.add(s.years()*n,"y").add(s.months()*n,"M").add(s.days()*n,"d").add(s.hours()*n,"h").add(s.minutes()*n,"m").add(s.seconds()*n,"s").add(s.milliseconds()*n,"ms")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isBetween.d.ts b/node_modules/dayjs/plugin/isBetween.d.ts new file mode 100644 index 0000000..431fff8 --- /dev/null +++ b/node_modules/dayjs/plugin/isBetween.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isBetween(a: ConfigType, b: ConfigType, c?: OpUnitType | null, d?: '()' | '[]' | '[)' | '(]'): boolean + } +} diff --git a/node_modules/dayjs/plugin/isBetween.js b/node_modules/dayjs/plugin/isBetween.js new file mode 100644 index 0000000..68046cb --- /dev/null +++ b/node_modules/dayjs/plugin/isBetween.js @@ -0,0 +1 @@ +!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){"use strict";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r="("===(f=f||"()")[0],u=")"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isLeapYear.d.ts b/node_modules/dayjs/plugin/isLeapYear.d.ts new file mode 100644 index 0000000..5be7409 --- /dev/null +++ b/node_modules/dayjs/plugin/isLeapYear.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isLeapYear(): boolean + } +} diff --git a/node_modules/dayjs/plugin/isLeapYear.js b/node_modules/dayjs/plugin/isLeapYear.js new file mode 100644 index 0000000..030bd46 --- /dev/null +++ b/node_modules/dayjs/plugin/isLeapYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){"use strict";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isMoment.d.ts b/node_modules/dayjs/plugin/isMoment.d.ts new file mode 100644 index 0000000..dac24f6 --- /dev/null +++ b/node_modules/dayjs/plugin/isMoment.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + + export function isMoment(input: any): boolean + +} diff --git a/node_modules/dayjs/plugin/isMoment.js b/node_modules/dayjs/plugin/isMoment.js new file mode 100644 index 0000000..be26412 --- /dev/null +++ b/node_modules/dayjs/plugin/isMoment.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isMoment=n()}(this,(function(){"use strict";return function(e,n,t){t.isMoment=function(e){return t.isDayjs(e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isSameOrAfter.d.ts b/node_modules/dayjs/plugin/isSameOrAfter.d.ts new file mode 100644 index 0000000..916bc80 --- /dev/null +++ b/node_modules/dayjs/plugin/isSameOrAfter.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isSameOrAfter(date?: ConfigType, unit?: OpUnitType): boolean + } +} diff --git a/node_modules/dayjs/plugin/isSameOrAfter.js b/node_modules/dayjs/plugin/isSameOrAfter.js new file mode 100644 index 0000000..76f8a33 --- /dev/null +++ b/node_modules/dayjs/plugin/isSameOrAfter.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){"use strict";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isSameOrBefore.d.ts b/node_modules/dayjs/plugin/isSameOrBefore.d.ts new file mode 100644 index 0000000..d52b095 --- /dev/null +++ b/node_modules/dayjs/plugin/isSameOrBefore.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc, ConfigType, OpUnitType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isSameOrBefore(date?: ConfigType, unit?: OpUnitType): boolean + } +} diff --git a/node_modules/dayjs/plugin/isSameOrBefore.js b/node_modules/dayjs/plugin/isSameOrBefore.js new file mode 100644 index 0000000..57a767e --- /dev/null +++ b/node_modules/dayjs/plugin/isSameOrBefore.js @@ -0,0 +1 @@ +!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){"use strict";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isToday.d.ts b/node_modules/dayjs/plugin/isToday.d.ts new file mode 100644 index 0000000..04ac581 --- /dev/null +++ b/node_modules/dayjs/plugin/isToday.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isToday(): boolean + } +} diff --git a/node_modules/dayjs/plugin/isToday.js b/node_modules/dayjs/plugin/isToday.js new file mode 100644 index 0000000..ee9f9cd --- /dev/null +++ b/node_modules/dayjs/plugin/isToday.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){"use strict";return function(e,o,t){o.prototype.isToday=function(){var e="YYYY-MM-DD",o=t();return this.format(e)===o.format(e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isTomorrow.d.ts b/node_modules/dayjs/plugin/isTomorrow.d.ts new file mode 100644 index 0000000..08110b6 --- /dev/null +++ b/node_modules/dayjs/plugin/isTomorrow.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isTomorrow(): boolean + } +} diff --git a/node_modules/dayjs/plugin/isTomorrow.js b/node_modules/dayjs/plugin/isTomorrow.js new file mode 100644 index 0000000..ca85044 --- /dev/null +++ b/node_modules/dayjs/plugin/isTomorrow.js @@ -0,0 +1 @@ +!function(o,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(o="undefined"!=typeof globalThis?globalThis:o||self).dayjs_plugin_isTomorrow=e()}(this,(function(){"use strict";return function(o,e,t){e.prototype.isTomorrow=function(){var o="YYYY-MM-DD",e=t().add(1,"day");return this.format(o)===e.format(o)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isYesterday.d.ts b/node_modules/dayjs/plugin/isYesterday.d.ts new file mode 100644 index 0000000..2d8ae9e --- /dev/null +++ b/node_modules/dayjs/plugin/isYesterday.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isYesterday(): boolean + } +} diff --git a/node_modules/dayjs/plugin/isYesterday.js b/node_modules/dayjs/plugin/isYesterday.js new file mode 100644 index 0000000..b63b68a --- /dev/null +++ b/node_modules/dayjs/plugin/isYesterday.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isYesterday=t()}(this,(function(){"use strict";return function(e,t,n){t.prototype.isYesterday=function(){var e="YYYY-MM-DD",t=n().subtract(1,"day");return this.format(e)===t.format(e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isoWeek.d.ts b/node_modules/dayjs/plugin/isoWeek.d.ts new file mode 100644 index 0000000..3f4d88f --- /dev/null +++ b/node_modules/dayjs/plugin/isoWeek.d.ts @@ -0,0 +1,27 @@ +import { PluginFunc, OpUnitType, ConfigType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +type ISOUnitType = OpUnitType | 'isoWeek'; + +declare module 'dayjs' { + interface Dayjs { + isoWeekYear(): number + isoWeek(): number + isoWeek(value: number): Dayjs + + isoWeekday(): number + isoWeekday(value: number): Dayjs + + startOf(unit: ISOUnitType): Dayjs + + endOf(unit: ISOUnitType): Dayjs + + isSame(date?: ConfigType, unit?: ISOUnitType): boolean + + isBefore(date?: ConfigType, unit?: ISOUnitType): boolean + + isAfter(date?: ConfigType, unit?: ISOUnitType): boolean + } +} diff --git a/node_modules/dayjs/plugin/isoWeek.js b/node_modules/dayjs/plugin/isoWeek.js new file mode 100644 index 0000000..202ade7 --- /dev/null +++ b/node_modules/dayjs/plugin/isoWeek.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){"use strict";var e="day";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf("year"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,"week")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return"isoweek"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):n.bind(this)(e,t)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/isoWeeksInYear.d.ts b/node_modules/dayjs/plugin/isoWeeksInYear.d.ts new file mode 100644 index 0000000..2bc02cd --- /dev/null +++ b/node_modules/dayjs/plugin/isoWeeksInYear.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + isoWeeksInYear(): number + } +} diff --git a/node_modules/dayjs/plugin/isoWeeksInYear.js b/node_modules/dayjs/plugin/isoWeeksInYear.js new file mode 100644 index 0000000..2bd20cd --- /dev/null +++ b/node_modules/dayjs/plugin/isoWeeksInYear.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){"use strict";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf("y").day();return 4===n||e&&5===n?53:52}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/localeData.d.ts b/node_modules/dayjs/plugin/localeData.d.ts new file mode 100644 index 0000000..ae9e557 --- /dev/null +++ b/node_modules/dayjs/plugin/localeData.d.ts @@ -0,0 +1,44 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + type WeekdayNames = [string, string, string, string, string, string, string]; + type MonthNames = [string, string, string, string, string, string, string, string, string, string, string, string]; + + interface InstanceLocaleDataReturn { + firstDayOfWeek(): number; + weekdays(instance?: Dayjs): WeekdayNames; + weekdaysShort(instance?: Dayjs): WeekdayNames; + weekdaysMin(instance?: Dayjs): WeekdayNames; + months(instance?: Dayjs): MonthNames; + monthsShort(instance?: Dayjs): MonthNames; + longDateFormat(format: string): string; + meridiem(hour?: number, minute?: number, isLower?: boolean): string; + ordinal(n: number): string + } + + interface GlobalLocaleDataReturn { + firstDayOfWeek(): number; + weekdays(): WeekdayNames; + weekdaysShort(): WeekdayNames; + weekdaysMin(): WeekdayNames; + months(): MonthNames; + monthsShort(): MonthNames; + longDateFormat(format: string): string; + meridiem(hour?: number, minute?: number, isLower?: boolean): string; + ordinal(n: number): string + } + + interface Dayjs { + localeData(): InstanceLocaleDataReturn; + } + + export function weekdays(localOrder?: boolean): WeekdayNames; + export function weekdaysShort(localOrder?: boolean): WeekdayNames; + export function weekdaysMin(localOrder?: boolean): WeekdayNames; + export function monthsShort(): MonthNames; + export function months(): MonthNames; + export function localeData(): GlobalLocaleDataReturn; +} diff --git a/node_modules/dayjs/plugin/localeData.js b/node_modules/dayjs/plugin/localeData.js new file mode 100644 index 0000000..55e01ee --- /dev/null +++ b/node_modules/dayjs/plugin/localeData.js @@ -0,0 +1 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){"use strict";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/localizedFormat.d.ts b/node_modules/dayjs/plugin/localizedFormat.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/localizedFormat.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/localizedFormat.js b/node_modules/dayjs/plugin/localizedFormat.js new file mode 100644 index 0000000..2aa4665 --- /dev/null +++ b/node_modules/dayjs/plugin/localizedFormat.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/minMax.d.ts b/node_modules/dayjs/plugin/minMax.d.ts new file mode 100644 index 0000000..4c5f6dc --- /dev/null +++ b/node_modules/dayjs/plugin/minMax.d.ts @@ -0,0 +1,11 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + export function max(dayjs: Dayjs[]): Dayjs | null + export function max(...dayjs: Dayjs[]): Dayjs | null + export function min(dayjs: Dayjs[]): Dayjs | null + export function min(...dayjs: Dayjs[]): Dayjs | null +} diff --git a/node_modules/dayjs/plugin/minMax.js b/node_modules/dayjs/plugin/minMax.js new file mode 100644 index 0000000..ce06314 --- /dev/null +++ b/node_modules/dayjs/plugin/minMax.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){"use strict";return function(e,n,t){var i=function(e,n){if(!n||!n.length||1===n.length&&!n[0]||1===n.length&&Array.isArray(n[0])&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=(n=n.filter((function(e){return e})))[0];for(var i=1;i=0?1:a.date()),s=u.year||a.year(),d=u.month>=0?u.month:u.year||u.day?0:a.month(),f=u.hour||0,b=u.minute||0,h=u.second||0,y=u.millisecond||0;return o?new Date(Date.UTC(s,d,c,f,b,h,y)):new Date(s,d,c,f,b,h,y)}return r},o=i.parse;i.parse=function(t){t.date=r.bind(this)(t),o.bind(this)(t)};var u=i.set,a=i.add,c=i.subtract,s=function(t,n,e,i){void 0===i&&(i=1);var r=Object.keys(n),o=this;return r.forEach((function(e){o=t.bind(o)(n[e]*i,e)})),o};i.set=function(t,n){return n=void 0===n?t:n,"Object"===t.constructor.name?s.bind(this)((function(t,n){return u.bind(this)(n,t)}),n,t):u.bind(this)(t,n)},i.add=function(t,n){return"Object"===t.constructor.name?s.bind(this)(a,t,n):a.bind(this)(t,n)},i.subtract=function(t,n){return"Object"===t.constructor.name?s.bind(this)(a,t,n,-1):c.bind(this)(t,n)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/pluralGetSet.d.ts b/node_modules/dayjs/plugin/pluralGetSet.d.ts new file mode 100644 index 0000000..ab2d89a --- /dev/null +++ b/node_modules/dayjs/plugin/pluralGetSet.d.ts @@ -0,0 +1,44 @@ +import { PluginFunc, UnitType, ConfigType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + years(): number + + years(value: number): Dayjs + + months(): number + + months(value: number): Dayjs + + dates(): number + + dates(value: number): Dayjs + + weeks(): number + + weeks(value: number): Dayjs + + days(): number + + days(value: number): Dayjs + + hours(): number + + hours(value: number): Dayjs + + minutes(): number + + minutes(value: number): Dayjs + + seconds(): number + + seconds(value: number): Dayjs + + milliseconds(): number + + milliseconds(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/plugin/pluralGetSet.js b/node_modules/dayjs/plugin/pluralGetSet.js new file mode 100644 index 0000000..d758494 --- /dev/null +++ b/node_modules/dayjs/plugin/pluralGetSet.js @@ -0,0 +1 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_pluralGetSet=o()}(this,(function(){"use strict";return function(e,o){var s=o.prototype;["milliseconds","seconds","minutes","hours","days","weeks","isoWeeks","months","quarters","years","dates"].forEach((function(e){s[e]=s[e.replace(/s$/,"")]}))}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/preParsePostFormat.d.ts b/node_modules/dayjs/plugin/preParsePostFormat.d.ts new file mode 100644 index 0000000..30ec75e --- /dev/null +++ b/node_modules/dayjs/plugin/preParsePostFormat.d.ts @@ -0,0 +1,4 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin diff --git a/node_modules/dayjs/plugin/preParsePostFormat.js b/node_modules/dayjs/plugin/preParsePostFormat.js new file mode 100644 index 0000000..5611d10 --- /dev/null +++ b/node_modules/dayjs/plugin/preParsePostFormat.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_preParsePostFormat=e()}(this,(function(){"use strict";return function(t,e){var o=e.prototype.parse;e.prototype.parse=function(t){if("string"==typeof t.date){var e=this.$locale();t.date=e&&e.preparse?e.preparse(t.date):t.date}return o.bind(this)(t)};var r=e.prototype.format;e.prototype.format=function(){for(var t=arguments.length,e=new Array(t),o=0;o number + thresholds?: RelativeTimeThreshold[] +} + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + fromNow(withoutSuffix?: boolean): string + from(compared: ConfigType, withoutSuffix?: boolean): string + toNow(withoutSuffix?: boolean): string + to(compared: ConfigType, withoutSuffix?: boolean): string + } +} diff --git a/node_modules/dayjs/plugin/relativeTime.js b/node_modules/dayjs/plugin/relativeTime.js new file mode 100644 index 0000000..898eee6 --- /dev/null +++ b/node_modules/dayjs/plugin/relativeTime.js @@ -0,0 +1 @@ +!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){"use strict";return function(r,e,t){r=r||{};var n=e.prototype,o={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"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return"function"==typeof M?M(a):M.replace("%s",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/timezone.d.ts b/node_modules/dayjs/plugin/timezone.d.ts new file mode 100644 index 0000000..049bb08 --- /dev/null +++ b/node_modules/dayjs/plugin/timezone.d.ts @@ -0,0 +1,20 @@ +import { PluginFunc, ConfigType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + tz(timezone?: string, keepLocalTime?: boolean): Dayjs + offsetName(type?: 'short' | 'long'): string | undefined + } + + interface DayjsTimezone { + (date?: ConfigType, timezone?: string): Dayjs + (date: ConfigType, format: string, timezone?: string): Dayjs + guess(): string + setDefault(timezone?: string): void + } + + const tz: DayjsTimezone +} diff --git a/node_modules/dayjs/plugin/timezone.js b/node_modules/dayjs/plugin/timezone.js new file mode 100644 index 0000000..b778bef --- /dev/null +++ b/node_modules/dayjs/plugin/timezone.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){"use strict";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",o=t+"|"+i,r=e[o];return r||(r=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return"timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if("string"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/toArray.d.ts b/node_modules/dayjs/plugin/toArray.d.ts new file mode 100644 index 0000000..45f1f0c --- /dev/null +++ b/node_modules/dayjs/plugin/toArray.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + toArray(): number[] + } +} diff --git a/node_modules/dayjs/plugin/toArray.js b/node_modules/dayjs/plugin/toArray.js new file mode 100644 index 0000000..ac06750 --- /dev/null +++ b/node_modules/dayjs/plugin/toArray.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_toArray=e()}(this,(function(){"use strict";return function(t,e){e.prototype.toArray=function(){return[this.$y,this.$M,this.$D,this.$H,this.$m,this.$s,this.$ms]}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/toObject.d.ts b/node_modules/dayjs/plugin/toObject.d.ts new file mode 100644 index 0000000..ca12aaf --- /dev/null +++ b/node_modules/dayjs/plugin/toObject.d.ts @@ -0,0 +1,20 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +interface DayjsObject { + years: number + months: number + date: number + hours: number + minutes: number + seconds: number + milliseconds: number +} + +declare module 'dayjs' { + interface Dayjs { + toObject(): DayjsObject + } +} diff --git a/node_modules/dayjs/plugin/toObject.js b/node_modules/dayjs/plugin/toObject.js new file mode 100644 index 0000000..573b49e --- /dev/null +++ b/node_modules/dayjs/plugin/toObject.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_toObject=e()}(this,(function(){"use strict";return function(t,e){e.prototype.toObject=function(){return{years:this.$y,months:this.$M,date:this.$D,hours:this.$H,minutes:this.$m,seconds:this.$s,milliseconds:this.$ms}}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/updateLocale.d.ts b/node_modules/dayjs/plugin/updateLocale.d.ts new file mode 100644 index 0000000..ef1c01d --- /dev/null +++ b/node_modules/dayjs/plugin/updateLocale.d.ts @@ -0,0 +1,8 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + export function updateLocale(localeName: string, customConfig: Record): Record +} diff --git a/node_modules/dayjs/plugin/updateLocale.js b/node_modules/dayjs/plugin/updateLocale.js new file mode 100644 index 0000000..811d9e9 --- /dev/null +++ b/node_modules/dayjs/plugin/updateLocale.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){"use strict";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/utc.d.ts b/node_modules/dayjs/plugin/utc.d.ts new file mode 100644 index 0000000..544ea4e --- /dev/null +++ b/node_modules/dayjs/plugin/utc.d.ts @@ -0,0 +1,19 @@ +import { PluginFunc, ConfigType } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + + utc(keepLocalTime?: boolean): Dayjs + + local(): Dayjs + + isUTC(): boolean + + utcOffset(offset: number | string, keepLocalTime?: boolean): Dayjs + } + + export function utc(config?: ConfigType, format?: string, strict?: boolean): Dayjs +} diff --git a/node_modules/dayjs/plugin/utc.js b/node_modules/dayjs/plugin/utc.js new file mode 100644 index 0000000..af07564 --- /dev/null +++ b/node_modules/dayjs/plugin/utc.js @@ -0,0 +1 @@ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){"use strict";var t="minute",i=/[+-]\d\d(?::?\d\d)?/g,e=/([+-]|\d\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if("string"==typeof s&&(s=function(t){void 0===t&&(t="");var s=t.match(i);if(!s)return null;var f=(""+s[0]).match(e)||["-",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:"+"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return"s"===t&&this.$offset?n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/weekOfYear.d.ts b/node_modules/dayjs/plugin/weekOfYear.d.ts new file mode 100644 index 0000000..d988014 --- /dev/null +++ b/node_modules/dayjs/plugin/weekOfYear.d.ts @@ -0,0 +1,12 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + week(): number + + week(value : number): Dayjs + } +} diff --git a/node_modules/dayjs/plugin/weekOfYear.js b/node_modules/dayjs/plugin/weekOfYear.js new file mode 100644 index 0000000..7e234c4 --- /dev/null +++ b/node_modules/dayjs/plugin/weekOfYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){"use strict";var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/weekYear.d.ts b/node_modules/dayjs/plugin/weekYear.d.ts new file mode 100644 index 0000000..df25331 --- /dev/null +++ b/node_modules/dayjs/plugin/weekYear.d.ts @@ -0,0 +1,10 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + weekYear(): number + } +} diff --git a/node_modules/dayjs/plugin/weekYear.js b/node_modules/dayjs/plugin/weekYear.js new file mode 100644 index 0000000..d90d137 --- /dev/null +++ b/node_modules/dayjs/plugin/weekYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){"use strict";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}})); \ No newline at end of file diff --git a/node_modules/dayjs/plugin/weekday.d.ts b/node_modules/dayjs/plugin/weekday.d.ts new file mode 100644 index 0000000..87a8025 --- /dev/null +++ b/node_modules/dayjs/plugin/weekday.d.ts @@ -0,0 +1,12 @@ +import { PluginFunc } from 'dayjs' + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + weekday(): number + + weekday(value: number): Dayjs + } +} diff --git a/node_modules/dayjs/plugin/weekday.js b/node_modules/dayjs/plugin/weekday.js new file mode 100644 index 0000000..ae2276b --- /dev/null +++ b/node_modules/dayjs/plugin/weekday.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){"use strict";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i - - + + 点击体验VR观展 - + 美术作品 - + 书法篆刻 - + 评委作品 - + 特邀作品 - + {{item.title}} - + {{item.title}} 没有更多数据了 - - + + \ No newline at end of file diff --git a/pages/activity/autumnten/index.wxml b/pages/activity/autumnten/index.wxml index fd70eec..22df12c 100644 --- a/pages/activity/autumnten/index.wxml +++ b/pages/activity/autumnten/index.wxml @@ -1,6 +1,6 @@ - + {{areas[areaIndex].area_title}} @@ -9,7 +9,7 @@ - + {{item}} @@ -17,11 +17,11 @@ - - + + - + {{item.title}} 上榜理由:{{item.brief_intro}} diff --git a/pages/activity/autumnten/list/index.wxml b/pages/activity/autumnten/list/index.wxml index e5e70fa..c788c6c 100644 --- a/pages/activity/autumnten/list/index.wxml +++ b/pages/activity/autumnten/list/index.wxml @@ -7,6 +7,6 @@ {{item.title}} {{item.address}} - + diff --git a/pages/activity/graduate/index.wxml b/pages/activity/graduate/index.wxml index 25806d5..9efb905 100644 --- a/pages/activity/graduate/index.wxml +++ b/pages/activity/graduate/index.wxml @@ -1,6 +1,6 @@ - + 好玩景点 一日游 @@ -9,22 +9,22 @@ - + - + {{item.title}} {{item}} {{item.price/100}} - + - - + + \ No newline at end of file diff --git a/pages/activity/graduate/index.wxss b/pages/activity/graduate/index.wxss index b88e397..3fbdc44 100644 --- a/pages/activity/graduate/index.wxss +++ b/pages/activity/graduate/index.wxss @@ -4,7 +4,7 @@ width: 100%; } page { - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/activity/graduate/bg.png); + background: url(https://static.ticket.sz-trip.com/xcxImages/activity/graduate/bg.png); background-size: 100%; background-repeat: repeat-y; } diff --git a/pages/activity/huawei/form/index.js b/pages/activity/huawei/form/index.js deleted file mode 100644 index 194363b..0000000 --- a/pages/activity/huawei/form/index.js +++ /dev/null @@ -1,162 +0,0 @@ -// pages/activity/huawei/form/index.js -import commonApi from "../../../../utils/https/common" -import userApi from "../../../../utils/https/user" -Page({ - - /** - * 页面的初始数据 - */ - data: { - multiArray:[], - multiIndex:[], - areaList:[], - info:{}, - brands:[], - brandIndex:-1, - id:null, - info:{} - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - commonApi.user_post('actonline/act_online/getActDetail',{ - id:options.id - }).then(res=>{ - this.setData({ - info:res.data - }) - }) - commonApi.user_post('actonline/act_online/getMobileBrand',{}).then(res=>{ - let brands = [] - for(let i in res.data){ - brands.push({ - name:res.data[i], - id:i - }) - } - this.setData({ - brands:brands, - id:options.id - }) - }) - }, - changeBrand:function(e){ - this.setData({ - brandIndex:e.detail.value - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - changeName:function(e){ - let info = this.data.info - info.name = e.detail.value - this.setData({ - info:info - }) - }, - changeTel:function(e){ - let info = this.data.info - info.mobile = e.detail.value - this.setData({ - info:info - }) - }, - changeCard:function(e){ - let info = this.data.info - info.card_number = e.detail.value - this.setData({ - info:info - }) - }, - submit:function(e){ - let info = this.data.info; - - if(!info.name){ - wx.showToast({ - title: '请输入姓名', - icon:'none' - }) - return; - } - if(info.mobile.length!=11){ - wx.showToast({ - title: '请输入正确的手机号', - icon:'none' - }) - return; - } - if(info.card_number.length!=18){ - wx.showToast({ - title: '请输入正确的身份证号码', - icon:'none' - }) - return; - } - if(this.data.brandIndex==-1){ - wx.showToast({ - title: '请选择手机品牌', - icon:'none' - }) - return; - } - info.id = this.data.id - info.mobile_type = Number(this.data.brands[this.data.brandIndex].id) - commonApi.user_post("actonline/act_online/actSign",info).then(res=>{ - if(res.code==1){ - wx.navigateTo({ - url: '../result/index?id='+this.data.id, - }) - } - }) - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - } -}) \ No newline at end of file diff --git a/pages/activity/huawei/form/index.wxml b/pages/activity/huawei/form/index.wxml deleted file mode 100644 index 314aa69..0000000 --- a/pages/activity/huawei/form/index.wxml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - 姓名 - - - - 联系方式 - - - - 身份证 - - - - 手机品牌 - - - {{brandIndex==-1?'请选择':brands[brandIndex].name}} - - - - - - - \ No newline at end of file diff --git a/pages/activity/huawei/form/index.wxss b/pages/activity/huawei/form/index.wxss deleted file mode 100644 index cacec9b..0000000 --- a/pages/activity/huawei/form/index.wxss +++ /dev/null @@ -1,72 +0,0 @@ -/* pages/activity/huawei/form/index.wxss */ -.topimg { - display: block; - width: 100%; -} -page { - background: #003323; -} -.input-box { - margin: 0 42rpx; - position: relative; - z-index: 1; - margin-top: -130rpx; - background: white; - border-radius: 16rpx; - font-size: 31rpx; - padding: 30rpx 52rpx; -} -.input-box image { - display: block; - width: 264rpx; - height: 68rpx; -} -.input-box image.submit-btn { - display: block; - width: 561rpx; - height: 104rpx; - margin: 0 auto; - margin-top: 35rpx; -} -.input-box input { - display: block; - padding: 10rpx 30rpx; - width: 420rpx; - height: 71rpx; - line-height: 71rpx; - background: #FFFFFF; - border: 1rpx solid #CCCCCC; - border-radius: 10rpx; - box-sizing: border-box; - color: #333; - font-size: 32rpx; - font-weight: 500; - flex-shrink: 0; -} -.input-item { - display: flex; - align-items: center; - justify-content: space-between; - font-weight: 500; - font-size: 32rpx; - color: #333333; - margin-top: 45rpx; - margin-bottom: 45rpx; -} -.picker { - padding: 0 30rpx; - width: 420rpx; - height: 71rpx; - line-height: 71rpx; - background: #FFFFFF; - border: 1rpx solid #CCCCCC; - border-radius: 10rpx; - box-sizing: border-box; - color: #333; - font-size: 32rpx; - font-weight: 500; - flex-shrink: 0; - display: flex; - align-items: center; - justify-content: space-between; -} \ No newline at end of file diff --git a/pages/activity/huawei/index.wxml b/pages/activity/huawei/index.wxml deleted file mode 100644 index 3d0a1ba..0000000 --- a/pages/activity/huawei/index.wxml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 规则 - 线上报名时间:{{info.sign_begin_time}} - {{info.sign_end_time}} - 线上投票时间:{{info.begin_time}} - {{info.end_time}} - - - - {{info.sub_title}} - - - - - - • 活动规则 • - - - \ No newline at end of file diff --git a/pages/activity/huawei/index.wxss b/pages/activity/huawei/index.wxss deleted file mode 100644 index 9ca2b36..0000000 --- a/pages/activity/huawei/index.wxss +++ /dev/null @@ -1,71 +0,0 @@ -/* pages/activity/huawei/index.wxss */ -.info-box { - position: absolute; - left: 0; - right: 0; - bottom: 0; - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/huawei/bg.png); - background-size: 100% 100%; - background-repeat: no-repeat; - display: flex; - flex-direction: column; - justify-content: flex-end; - align-items: center; -} -.bg { - position: absolute; - left: 0; - right: 0; - bottom: 0; - top: 0; -} -.btnimg { - display: block; - width: 558rpx; - height: 104rpx; - margin-bottom: 23rpx; -} -.bottomtext { - color: #fff; - text-align: center; - font-size: 24rpx; - margin-bottom: 45rpx; -} -.rule-btn { - font-size: 27rpx; - color: #fff; - font-weight: 500; - width: 73rpx; - height: 73rpx; - border: 1rpx solid; - border-radius: 50%; - position: absolute; - right: 30rpx; - top: 30rpx; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; -} -.tiptext { - color: #fff; - font-size: 25rpx; - margin-top: 20rpx; -} -.rule-box { - height: 50%; - overflow-y: auto; - font-size: 27rpx; - color: #010101; - padding: 0 50rpx; - width: 500rpx; - padding-bottom: 30rpx; - line-height: 46rpx; -} -.rule-title { - text-align: center; - font-size: 32rpx; - color: #000; - font-weight: 500; - line-height: 100rpx; -} \ No newline at end of file diff --git a/pages/activity/huawei/list/index.js b/pages/activity/huawei/list/index.js deleted file mode 100644 index b97fc66..0000000 --- a/pages/activity/huawei/list/index.js +++ /dev/null @@ -1,209 +0,0 @@ -// pages/activity/huawei/list/index.js -import commonApi from "../../../../utils/https/common" -let app = getApp() -Page({ - - /** - * 页面的初始数据 - */ - data: { - id:null, - types:[], - typeIndex:0, - list:[], - detail:{}, - showRuleFlag:false, - user_id:null, - isReg:false - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - this.setData({ - id:options.id - }) - if(options.user_id){ - let user_id = wx.getStorageSync('jstrip_userid'); - if(user_id!=options.user_id){ - app.globalData.weburl = 'https://m.cloud.sz-trip.com/photoWorksDetail?id='+options.id+'&type_id='+options.type_id - wx.redirectTo({ - url: '/pages/pbService/web/index' - }) - return; - } - } - commonApi.user_post("actonline/act_online/isSign",{id:options.id}).then(res=>{ - if(res.code==1){ - this.setData({ - isReg:res.data - }) - } - }) - commonApi.user_post("actonline/act_online/getActDetail",{id:options.id}).then(res=>{ - this.setData({ - detail:res.data - }) - }) - commonApi.user_post("actonline/act_online/getActTypeList",{ - act_id:this.data.id - }).then(res=>{ - this.setData({ - types:res.data - }) - if(res.data.length>0){ - this.getList() - } - - }) - }, - showRule:function(){ - this.setData({ - showRuleFlag:!this.data.showRuleFlag - }) - }, - reUpload:function(){ - let that = this; - wx.showModal({ - title:"提示", - content:"一个分类的作品多次提交,平台只保留最近上传的作品。", - cancelText:"否", - confirmText:"是", - success:function(res){ - if(res.confirm){ - that.gotoUpload() - } - } - }) - }, - changeType:function(e){ - this.setData({ - typeIndex:e.currentTarget.dataset.type, - list:[] - }) - this.getList() - }, - getList:function(){ - commonApi.user_post("actonline/act_online/myWork",{ - type_id:this.data.types[this.data.typeIndex].id, - id:this.data.id, - page:1, - limit:100, - user_id:this.data.user_id || null - }).then(res=>{ - if(this.data.user_id && res.data.data[0].status!=1){ - res.data.data = [] - } - this.setData({ - list:res.data.data - }) - - this.onShareAppMessage() - }) - }, - gotoUpload:function(){ - if(this.data.isReg){ - wx.navigateTo({ - url: '../upload/index?id='+this.data.id - }) - } - else { - wx.navigateTo({ - url: '../index?id='+this.data.id - }) - } - }, - vote:function(e){ - let that = this - commonApi.user_post("actonline/act_online/vote",{ - id:this.data.list[0].id - }).then(res=>{ - if(res.code==1){ - wx.showToast({ - title: '投票成功', - icon:'success' - }) - let list = this.data.list; - list[0].votes = Number(list[0].votes) + 1; - } - else if(res.code==-1){ - wx.showModal({ - title:"提示", - content:res.msg, - confirmText:"关闭", - cancelText:"前往报名", - success:function(res){ - if(!res.confirm){ - wx.navigateTo({ - url: '/pages/activity/huawei/index?id='+that.data.id - }) - } - } - }) - } - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - if(this.data.list.length>0){ - return { - title:"帮我投一票吧~", - path:'/pages/activity/huawei/list/index?id='+this.data.list[0].act_online_id+'&type_id='+this.data.list[0].act_online_type+'&user_id='+this.data.list[0].user.id+'&did='+this.data.list[0].id, - imageUrl:this.data.list[0].img - } - } - else { - return { - title:"君到苏州摄影大赛作品", - path:"/pages/pbService/web/index?url="+encodeURIComponent('https://m.cloud.sz-trip.com/photoWorksList?id=6'), - imageUrl:"https://m.cloud.sz-trip.com/static/images/logobai.png" - } - } - } -}) \ No newline at end of file diff --git a/pages/activity/huawei/list/index.wxml b/pages/activity/huawei/list/index.wxml deleted file mode 100644 index e0829b4..0000000 --- a/pages/activity/huawei/list/index.wxml +++ /dev/null @@ -1,42 +0,0 @@ - - - - {{item.title}} - - - {{list[0].title}} - - - {{list[0].user.nickname}} - 作品id:{{list[0].id}} - - - 作品id:{{list[0].id}} - 作品状态: - {{list[0].status_text}} - - 拒绝理由:{{list[0].refund_msg}} - - - 当前得票:{{list[0].votes}} - 投票 - - - {{list[0].desc}} - - 规则 - - - - - - 投票已开始,无法上传作品! - - - - - - • 活动规则 • - - - \ No newline at end of file diff --git a/pages/activity/huawei/list/index.wxss b/pages/activity/huawei/list/index.wxss deleted file mode 100644 index 6ceb225..0000000 --- a/pages/activity/huawei/list/index.wxss +++ /dev/null @@ -1,163 +0,0 @@ -/* pages/activity/huawei/list/index.wxss */ -.tabs { - display: flex; - align-items: center; - flex-wrap: nowrap; - overflow-x: auto; - margin: 0 27rpx; - height: 92rpx; - border-bottom: 1rpx solid #cccccc; - color: #666; - font-size: 31rpx; - padding: 0 28rpx; -} -.tab { - margin-right: 140rpx; - position: relative; - line-height: 92rpx; - flex-shrink: 0; -} -.tab:last-child { - margin-right: 0; -} -.tab.active { - color: #000; - font-weight: 500; -} -.tab.active::after { - content: "1"; - font-size: 0; - display: block; - position: absolute; - width: 60rpx; - left: 50%; - margin-left: -30rpx; - bottom: 0; - height: 7rpx; - background: linear-gradient(0deg, rgba(251, 197, 34, 0.93), rgba(255, 252, 0, 0.93)); - border-radius: 3rpx; -} -.title { - text-align: center; - padding: 39rpx 30rpx; - margin-top: 12rpx; - font-size: 36rpx; - color: #333; - font-weight: bold; -} -.mainimg { - display: block; - margin: 0 auto; - width: 625rpx; - border: 13rpx solid #FEE5C6; - margin-bottom: 50rpx; -} -.content { - margin: 0 52rpx; - padding-bottom: 30rpx; - font-size: 27rpx; - color: #333333; -} -.emptyimg { - display: block; - margin: 91rpx auto; - width: 414rpx; - height: 193rpx; -} -.tip1 { - text-align: center; - font-size: 35rpx; - color: #000000; -} -.btnimg { - width: 558rpx; - margin: 0 auto; - margin-top: 86rpx; - display: block; -} -.work-tips-my { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 31rpx; - color: #666; - margin: 0 53rpx; - padding: 20rpx 0; -} -.work-tips-my view { - flex: 1; -} -.work-tips-my .status { - color: #CC0000; -} -.work-tips-my .status.active { - color: #169900; -} -.count-num { - color: #333; - font-size: 31rpx; - font-weight: 500; -} -.rule-btn { - width: 143rpx; - position: fixed; - text-align: center; - line-height: 66rpx; - background: #FFFC00; - border-top-left-radius: 33rpx; - border-bottom-left-radius: 33rpx; - font-size: 31rpx; - color: #333333; - padding-right: 10rpx; - right: 0; - bottom: 246rpx; -} -.rule-box { - height: 50%; - overflow-y: auto; - font-size: 27rpx; - color: #010101; - padding: 0 50rpx; - width: 500rpx; - padding-bottom: 30rpx; - line-height: 46rpx; -} -.rule-title { - text-align: center; - font-size: 32rpx; - color: #000; - font-weight: 500; - line-height: 100rpx; -} -.vote-box { - display: flex; - align-items: center; - justify-content: space-between; - margin: 0 53rpx; - padding-bottom: 50rpx; -} -.vote-btn { - width: 175rpx; - line-height: 64rpx; - background: linear-gradient(0deg, rgba(251, 197, 34, 0.93), rgba(255, 252, 0, 0.93)); - border-radius: 32rpx; - text-align: center; - color: #333333; - font-size: 31rpx; - font-weight: 500; -} -.work-tips-my image { - display: block; - width: 53rpx; - height: 53rpx; - border-radius: 50%; -} -.work-tips-my view.nickname { - font-size: 28rpx; - margin: 0 20rpx; -} -.refund-msg { - color: #CC0000; - margin: 30rpx 53rpx; - margin-top: 10rpx; -} \ No newline at end of file diff --git a/pages/activity/huawei/result/index.js b/pages/activity/huawei/result/index.js deleted file mode 100644 index 11a206b..0000000 --- a/pages/activity/huawei/result/index.js +++ /dev/null @@ -1,73 +0,0 @@ -// pages/activity/huawei/result/index.js -Page({ - - /** - * 页面的初始数据 - */ - data: { - id:null - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - this.setData({ - id:options.id - }) - }, - upload:function(e){ - wx.navigateTo({ - url: '../upload/index?id='+this.data.id - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - } -}) \ No newline at end of file diff --git a/pages/activity/huawei/result/index.wxml b/pages/activity/huawei/result/index.wxml deleted file mode 100644 index 513b922..0000000 --- a/pages/activity/huawei/result/index.wxml +++ /dev/null @@ -1,7 +0,0 @@ - - - -恭喜您已报名成功! -点击下方按钮开始进行作品上传 - - diff --git a/pages/activity/huawei/result/index.wxss b/pages/activity/huawei/result/index.wxss deleted file mode 100644 index 8961d11..0000000 --- a/pages/activity/huawei/result/index.wxss +++ /dev/null @@ -1,30 +0,0 @@ -/* pages/activity/huawei/result/index.wxss */ -.logo { - margin: 64rpx auto; - width: 415rpx; - height: 393rpx; - display: block; -} -page { - text-align: center; - color: #666666; - font-size: 28rpx; -} -.uploadimg { - display: block; - width: 558rpx; - height: 104rpx; - margin: 0 auto; -} -.arrowimg { - display: block; - margin: 35rpx auto; - width: 42rpx; - height: 58rpx; -} -.text { - font-size: 45rpx; - font-weight: 500; - color: #000000; - margin-bottom: 20rpx; -} \ No newline at end of file diff --git a/pages/activity/huawei/upload/index.js b/pages/activity/huawei/upload/index.js deleted file mode 100644 index b638fdc..0000000 --- a/pages/activity/huawei/upload/index.js +++ /dev/null @@ -1,234 +0,0 @@ -// pages/activity/huawei/upload/index.js -import commonApi from "../../../../utils/https/common" -Page({ - - /** - * 页面的初始数据 - */ - data: { - id:null, - types:[], - typeIndex:-1, - title:"", - img:null, - desc:"", - date:null, - address:"" - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - this.setData({ - id:options.id - }) - commonApi.user_post('actonline/act_online/getActTypeList',{ - act_id:options.id - }).then(res=>{ - this.setData({ - types:res.data - }) - }) - }, - changeType:function(e){ - this.setData({ - typeIndex:e.detail.value - }) - }, - changeTitle:function(e){ - this.setData({ - title:e.detail.value - }) - }, - changeContent:function(e){ - this.setData({ - desc:e.detail.value - }) - }, - uploadImg:function(){ - let that = this; - wx.chooseImage({ - count: 1, - sizeType: ['original', 'compressed'], - sourceType: ['album', 'camera'], - success (res) { - // tempFilePath可以作为img标签的src属性显示图片 - const tempFilePaths = res.tempFilePaths[0] - if(tempFilePaths.substr(tempFilePaths.length-4,4)=='.gif'){ - wx.showToast({ - title: '图片格式错误', - icon:'none' - }) - return; - } - wx.showLoading({ - title: '图片上传中,请稍后' - }) - wx.uploadFile({ - url: 'https://api.cloud.sz-trip.com/api/pbservice.other/upload', //这里是上传的服务器地址 - filePath: tempFilePaths, - header:{ - token: wx.getStorageSync('jstrip_token'), - }, - name: "file", - success: function (res) { - var res = JSON.parse(res.data); - let img = res.data.url; - that.setData({ - img:img - }) - wx.hideLoading(); - }, - fail:function(res){ - wx.hideLoading(); - } - }) - } - }) - }, - bindDateChange:function(e){ - this.setData({ - date:e.detail.value - }) - }, - changeAddress:function(e){ - this.setData({ - address:e.detail.value - }) - }, - submit:function(){ - if(!this.data.title){ - wx.showToast({ - title: '请输入作品标题', - icon:'none' - }) - return; - } - if(this.getCNLen(this.data.title)>30){ - wx.showToast({ - title: '作品标题过长', - icon:'none' - }) - return; - } - if(this.data.typeIndex==-1){ - wx.showToast({ - title: '请选择分类', - icon:'none' - }) - return; - } - if(!this.data.date){ - wx.showToast({ - title: '请选择拍摄时间', - icon:'none' - }) - return; - } - if(!this.data.address){ - wx.showToast({ - title: '请输入您所上传照片的拍摄地点', - icon:'none' - }) - return; - } - if(!this.data.img){ - wx.showToast({ - title: '请上传图片', - icon:'none' - }) - return; - } - if(!this.data.desc){ - wx.showToast({ - title: '请输入作品描述', - icon:'none' - }) - return; - } - if(this.getCNLen(this.data.desc)>600){ - wx.showToast({ - title: '作品描述过长', - icon:'none' - }) - return; - } - commonApi.user_post("actonline/act_online/uploadWork",{ - title:this.data.title, - img:this.data.img, - desc:this.data.desc, - type_id:this.data.types[this.data.typeIndex].id, - id:this.data.id, - shot_time:this.data.date, - shot_address:this.data.address - }).then(res=>{ - if(res.code==1){ - wx.navigateTo({ - url: '../uploadres/index?id='+this.data.id - }) - } - }) - - }, - getCNLen:function(str){ - var len = 0; - for (var i=0; i127 || str.charCodeAt(i)==94) { - len += 2; - } else { - len ++; - } - } - return len; - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - } -}) \ No newline at end of file diff --git a/pages/activity/huawei/upload/index.wxml b/pages/activity/huawei/upload/index.wxml deleted file mode 100644 index 634134f..0000000 --- a/pages/activity/huawei/upload/index.wxml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - 作品标题 - - - - 选择分类 - - - {{typeIndex==-1?'请选择':types[typeIndex].title}} - - - - - - 拍摄时间 - - - {{!date?'请选择':date}} - - - - - - 拍摄地点 - - - -上传图片 - - -作品描述 - - -一个分类的作品多次提交,平台只保留最近上传的作品 \ No newline at end of file diff --git a/pages/activity/huawei/upload/index.wxss b/pages/activity/huawei/upload/index.wxss deleted file mode 100644 index 7eb9cd8..0000000 --- a/pages/activity/huawei/upload/index.wxss +++ /dev/null @@ -1,112 +0,0 @@ -/* pages/activity/huawei/upload/index.wxss */ -.topimg { - display: block; - width: 100%; -} -page { - background: #F7F7F7; -} -.input-box { - margin: 0 24rpx; - margin-top: -60rpx; - position: relative; - z-index: 1; - border-radius: 7rpx; - background: white; - padding: 32rpx 28rpx; - font-size: 31rpx; - color: #333333; -} -.input-item { - display: flex; - align-items: center; - justify-content: space-between; - font-size: 24rpx; - margin-bottom: 27rpx; -} -.input-box text { - margin-right: 20rpx; - flex-shrink: 0; - font-size: 31rpx; -} -.input-box input { - width: 483rpx; - height: 80rpx; - line-height: 80rpx; - box-sizing: border-box; - display: block; - padding: 0 15rpx; - border: 1rpx solid #CCCCCC; - border-radius: 4rpx; -} -.input-box .input-item:last-child{ - margin-bottom: 0; -} -.picker { - display: flex; - width: 483rpx; - height: 80rpx; - box-sizing: border-box; - padding-left: 15rpx; - border: 1rpx solid #CCCCCC; - border-radius: 4rpx; - align-items: center; - justify-content: space-between; -} -.picker .iconfont { - width: 80rpx; - text-align: center; - line-height: 80rpx; - border-left: 1rpx solid #CCCCCC; - flex-shrink: 0; -} -.picker .areatext { - flex: 1; -} -.tip1 { - font-size: 36rpx; - padding-left: 52rpx; - margin-top: 46rpx; - margin-bottom: 26rpx; - position: relative; - line-height: 33rpx; -} -.tip1::before { - content:"1"; - font-size: 0; - position: absolute; - width: 10rpx; - height: 33rpx; - left: 24rpx; - top: 0; - background: linear-gradient(0deg, rgba(251, 197, 34, 0.93), rgba(255, 252, 0, 0.93)); -} -.uploadimg { - display: block; - margin-left: 24rpx; - width: 249rpx; - height: 191rpx; - margin-bottom: 50rpx; -} -.textarea { - font-size: 24rpx; - margin: 24rpx; - padding: 20rpx 30rpx; - border-radius: 7rpx; - background: white; - display: block; - height: 230rpx; - width: 640rpx; -} -.uploadbtn { - display: block; - margin: 40rpx auto; - width: 558rpx; - height: 104rpx; -} -.tip2 { - text-align: center; - font-size: 24rpx; - color: #b2b2b2; - padding-bottom: 40rpx; -} \ No newline at end of file diff --git a/pages/activity/huawei/uploadres/index.wxml b/pages/activity/huawei/uploadres/index.wxml deleted file mode 100644 index e9f1645..0000000 --- a/pages/activity/huawei/uploadres/index.wxml +++ /dev/null @@ -1,8 +0,0 @@ - - - -恭喜您的作品已上传完成! - - -通过第一轮评审的摄影作品将在9月1号后 -进行线上展示,请注意查看平台通知 \ No newline at end of file diff --git a/pages/activity/huawei/uploadres/index.wxss b/pages/activity/huawei/uploadres/index.wxss deleted file mode 100644 index 3c5cf0f..0000000 --- a/pages/activity/huawei/uploadres/index.wxss +++ /dev/null @@ -1,26 +0,0 @@ -/* pages/activity/huawei/uploadres/index.wxss */ -.logo { - display: block; - margin: 64rpx auto; - width: 414rpx; - height: 393rpx; -} -.tip1 { - font-size: 45rpx; - color: #000000; - font-weight: 500; - margin-bottom: 90rpx; - text-align: center; -} -.btnimg { - display: block; - margin: 24rpx auto; - width: 558rpx; - height: 104rpx; -} -.tip2 { - text-align: center; - font-size: 28rpx; - color: #666; - margin-bottom: 20rpx; -} \ No newline at end of file diff --git a/pages/activity/newarrival/index.wxml b/pages/activity/newarrival/index.wxml index 1b11062..9b9a3f1 100644 --- a/pages/activity/newarrival/index.wxml +++ b/pages/activity/newarrival/index.wxml @@ -1,10 +1,10 @@ - + 景点门票 新品来袭 爆款推荐 - + {{item.title}} {{item}} @@ -20,7 +20,7 @@ 甄选好货 口碑之选 - + {{item.title}} {{item}} @@ -36,7 +36,7 @@ 精湛演出 生动体验 - + {{item.title}} {{item}} @@ -52,7 +52,7 @@ 精挑细选 好物推荐 - + {{item.title}} {{item}} @@ -63,5 +63,5 @@ - + \ No newline at end of file diff --git a/pages/activity/redlist/index.wxml b/pages/activity/redlist/index.wxml index 05ae382..45afe6e 100644 --- a/pages/activity/redlist/index.wxml +++ b/pages/activity/redlist/index.wxml @@ -1,7 +1,7 @@ - + - + {{item.title}} @@ -13,4 +13,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/pages/activity/spring2021/index.wxml b/pages/activity/spring2021/index.wxml index dd676af..5cb3f15 100644 --- a/pages/activity/spring2021/index.wxml +++ b/pages/activity/spring2021/index.wxml @@ -1,10 +1,10 @@ - + - + {{item.title}} {{item.price/100}} @@ -14,11 +14,11 @@ - + - + {{item.title}} {{item.price/100}} @@ -27,11 +27,11 @@ - + - + {{item.title}} {{item.price/100}} @@ -40,4 +40,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/pages/activity/springten/index.wxml b/pages/activity/springten/index.wxml index 5eb19f4..06d2bb9 100644 --- a/pages/activity/springten/index.wxml +++ b/pages/activity/springten/index.wxml @@ -1,6 +1,6 @@ - + {{areas[areaIndex].area_title}} @@ -9,7 +9,7 @@ - + {{item}} @@ -17,7 +17,7 @@ - + {{item.title}} 上榜理由:{{item.brief_intro}} diff --git a/pages/activity/springten/list/index.wxml b/pages/activity/springten/list/index.wxml index 644c35e..ff03706 100644 --- a/pages/activity/springten/list/index.wxml +++ b/pages/activity/springten/list/index.wxml @@ -5,5 +5,5 @@ {{item.title}} {{item.address}} - + diff --git a/pages/activity/subway/index.wxml b/pages/activity/subway/index.wxml index bc0e227..85b9479 100644 --- a/pages/activity/subway/index.wxml +++ b/pages/activity/subway/index.wxml @@ -1,20 +1,20 @@ - + {{index+1}}号线 - - + + - {{item.name}} + {{item.name}} - - + + {{item.title}} {{item.brief_intro}} @@ -24,10 +24,10 @@ 点击查看更多 >> - + - + - + 顶部 \ No newline at end of file diff --git a/pages/activity/suyear/index.wxml b/pages/activity/suyear/index.wxml index 9d2886c..6b3f3bc 100644 --- a/pages/activity/suyear/index.wxml +++ b/pages/activity/suyear/index.wxml @@ -1,18 +1,18 @@ - + - + - - - - + + + + {{item.title}} - + \ No newline at end of file diff --git a/pages/activity/tenscenic/index.wxml b/pages/activity/tenscenic/index.wxml index 4bcb493..1226cfb 100644 --- a/pages/activity/tenscenic/index.wxml +++ b/pages/activity/tenscenic/index.wxml @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@ 横塘驿站 宝带桥 - + 浒墅关 枫桥夜泊 @@ -44,7 +44,7 @@ 必玩 --> - + {{item.title}} 上榜理由:{{item.brief_intro}} @@ -54,6 +54,6 @@ 没有更多了 - + 顶部 \ No newline at end of file diff --git a/pages/activity/tenscenic/index.wxss b/pages/activity/tenscenic/index.wxss index 149a48c..9cffd3b 100644 --- a/pages/activity/tenscenic/index.wxss +++ b/pages/activity/tenscenic/index.wxss @@ -32,7 +32,7 @@ page { width: 677rpx; height: 375rpx; margin: 0 auto; - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/video.png); + background: url(https://static.ticket.sz-trip.com/xcxImages/tenscenic/video.png); background-size: 100% 100%; margin-top: -235rpx; position: relative; @@ -132,7 +132,7 @@ page { .new-tag { width: 158rpx; height: 67rpx; - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/noselect.png); + background: url(https://static.ticket.sz-trip.com/xcxImages/tenscenic/noselect.png); background-size: 100% 100%; color: #27899E; font-size: 28rpx; @@ -141,7 +141,7 @@ page { margin-bottom: 11rpx; } .new-tag.active { - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/select.png); + background: url(https://static.ticket.sz-trip.com/xcxImages/tenscenic/select.png); background-size: 100% 100%; } .item { @@ -150,7 +150,7 @@ page { justify-content: space-between; padding: 21rpx; border-radius: 20rpx; - background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/bg.png); + background: url(https://static.ticket.sz-trip.com/xcxImages/tenscenic/bg.png); background-size: 100% 100%; height: 135rpx; } diff --git a/pages/activity/year2020/index.js b/pages/activity/year2020/index.js index f911e1d..277634c 100644 --- a/pages/activity/year2020/index.js +++ b/pages/activity/year2020/index.js @@ -98,7 +98,7 @@ Page({ util.gotoDetail(item) }, home:function(){ - wx.reLaunch({ + wx.switchTab({ url: '/pages/index/index', }) }, diff --git a/pages/activity/year2020/index.wxml b/pages/activity/year2020/index.wxml index 833d935..1371d73 100644 --- a/pages/activity/year2020/index.wxml +++ b/pages/activity/year2020/index.wxml @@ -1,34 +1,34 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + {{item.title}} {{item.subtitle}} @@ -38,7 +38,7 @@ {{item.price/100}} - + diff --git a/pages/ask/index.wxml b/pages/ask/index.wxml index f9256e6..e496f9f 100644 --- a/pages/ask/index.wxml +++ b/pages/ask/index.wxml @@ -1,17 +1,17 @@ <navigator url="my/index" class="ask-top-right" style="right:{{menuWidth}}px"> - <image src="https://static.ticket.sz-trip.com/xcxImages/ask/my.png" mode="widthFix"></image> + <image lazy-load src="https://static.ticket.sz-trip.com/xcxImages/ask/my.png" mode="widthFix"></image> <view>我的问答</view> </navigator> - + {{item.question_name}} - + {{item.answer && item.answer.lastest_answer?item.answer.lastest_answer.answer:"暂无回答"}} @@ -21,6 +21,6 @@ - + 提问 diff --git a/pages/ask/info/index.wxml b/pages/ask/info/index.wxml index 58f1dc7..8cd9267 100644 --- a/pages/ask/info/index.wxml +++ b/pages/ask/info/index.wxml @@ -6,14 +6,14 @@ - + {{info.question_name}} {{info.created_time}}提问 - + 共{{total}}个回答 暂无回答 @@ -22,7 +22,7 @@ - + {{item.nickname}} {{item.answer}} diff --git a/pages/ask/my/index.wxml b/pages/ask/my/index.wxml index f21c886..dc2c42d 100644 --- a/pages/ask/my/index.wxml +++ b/pages/ask/my/index.wxml @@ -11,11 +11,11 @@ - + {{item.question_name}} - + {{item.answers && item.answers.rows && item.answers.rows[0]?item.answers.rows[0].answer:"暂无回答"}} @@ -23,4 +23,8 @@ + + + + 暂无数据 \ No newline at end of file diff --git a/pages/component/SearchHeader.js b/pages/component/SearchHeader.js index ad07287..de84749 100644 --- a/pages/component/SearchHeader.js +++ b/pages/component/SearchHeader.js @@ -36,6 +36,10 @@ Component({ focusclickid:{ type:String, value:"" + }, + name:{ + type:String, + value:"" } }, @@ -65,11 +69,21 @@ Component({ * 组件的方法列表 */ methods: { + getVal(e) { + console.log(e.detail.value); + let keywords = e.detail.value == ''?'': e.detail.value + this.triggerEvent("onload",{keywords:keywords}) + }, inputFocus:function(){ // if(this.properties.focusclickid){ // wx.uma.trackEvent(this.properties.focusclickid); // } }, + // inputFocus1:function(){ + // wx.navigateTo({ + // url: '/subPackages/postSearch/index', + // }) + // }, searchInput:function(e){ this.setData({ keywords:e.detail.value diff --git a/pages/component/SearchHeader.wxml b/pages/component/SearchHeader.wxml index e763ada..53f0f6e 100644 --- a/pages/component/SearchHeader.wxml +++ b/pages/component/SearchHeader.wxml @@ -1,9 +1,25 @@ - + + + + + + + + | + 搜索 + + + + + + | + 搜索 + diff --git a/pages/component/TitleHeader.js b/pages/component/TitleHeader.js index 06a72a9..0c36fd2 100644 --- a/pages/component/TitleHeader.js +++ b/pages/component/TitleHeader.js @@ -54,7 +54,8 @@ Component({ // } const pages = getCurrentPages(); if(pages[pages.length-1].route.indexOf('linkman/add')==-1){ - app.globalData.index = app.globalData.index -1 + app.globalData.index = app.globalData.index -1 + console.log(app.globalData.index, 'appGlobalIndex') } if(pages[pages.length-1].route.indexOf('login')!=-1 || pages[pages.length-1].route.indexOf('bindTel')!=-1){ // 如果是登录页面的返回需要返回两层 @@ -64,33 +65,57 @@ Component({ }) } else { - wx.reLaunch({ + wx.switchTab({ url: "/pages/index/index" }) } } - else if (pages[pages.length-1].route.indexOf('cartlist') != -1){ + // else if (pages[pages.length-1].route.indexOf('cartlist') != -1){ + // wx.switchTab({ + // url: '/pages/user/user' + // }) + // } + else if (pages[pages.length-1].route.indexOf('pages/order/pay/index') != -1){ + wx.redirectTo({ + url:'/pages/user/order/list' + }) + } + else if (pages[pages.length-1].route.indexOf('pages/user/order/list') != -1){ wx.switchTab({ url: '/pages/user/user' }) - } + } else if (pages[pages.length-1].route.indexOf('pages/user/cartlist/list') != -1){ + wx.switchTab({ + url: '/pages/user/user' + }) + } + + else if (pages[pages.length-1].route.indexOf('orderList') != -1){ + // 清空购物车 + try { + console.log("清除购物车") + app.globalData.list = null;app.globalData.createDate = null; + app.globalData.index = 0;app.globalData.productPrice = 0;app.globalData.ticketPrice = 0; + app.globalData.isCartBuy = false + } catch(e) { console.log("清空购物车失败", e) } wx.navigateTo({ url: '/pages/user/cartlist/list' }) } - else if (pages[pages.length-1].route.indexOf('scene') != -1){ - wx.reLaunch({ - url: "/pages/user/cartlist/list" - }) - } + // else if (pages[pages.length-1].route.indexOf('scene') != -1){ + // console.log(22222); + // wx.reLaunch({ + // url: "/pages/user/cartlist/list" + // }) + // } else if (pages.length>1){ wx.navigateBack({ delta: 1 }) } else { - wx.reLaunch({ + wx.switchTab({ url: "/pages/index/index" }) } diff --git a/pages/component/TitleHeader.wxss b/pages/component/TitleHeader.wxss index 1b8616b..d0d8a97 100644 --- a/pages/component/TitleHeader.wxss +++ b/pages/component/TitleHeader.wxss @@ -12,7 +12,7 @@ font-size: 32rpx; line-height: 90rpx; background: #f9f9f9; - z-index: 2; + z-index: 99; top: 0; } .title-header .icon-fanhui1 { diff --git a/pages/component/calendarTheatre/index.js b/pages/component/calendarTheatre/index.js new file mode 100644 index 0000000..1981d0b --- /dev/null +++ b/pages/component/calendarTheatre/index.js @@ -0,0 +1,161 @@ +// pages/component/myCalendar/index.js +import util from "../../../utils/util" +let app = getApp() +Component({ + /** + * 组件的属性列表 + */ + options: { + styleIsolation: 'apply-shared', + addGlobalClass: true + }, + properties: { + datelist:{ + type:Array, + value:[] + }, + activeDay:{ + type:String, + value:'' + } + }, + + /** + * 组件的初始数据 + */ + data: { + year: 0, + month: 0, + date: ['日', '一', '二', '三', '四', '五', '六'], + dateArr: [], + isToday: 0, + isTodayWeek: false, + todayIndex: 0, + isKj:null, + isGp:null + }, + lifetimes: { + attached: function() { + let now = new Date(); + let year = now.getFullYear(); + let month = now.getMonth() + 1; + this.dateInit(); + this.setData({ + year: year, + month: month, + isToday: '' + year + month + now.getDate(), + isKj:app.globalData.kjId, + isGp:app.globalData.gp_id || app.globalData.team_id + }) + let dates={} + this.properties.datelist.map(item=>{ + dates[item.date] = item + }) + console.log(dates) + this.setData({ + dates:dates + }) + } + }, + /** + * 组件的方法列表 + */ + methods: { + dateInit: function (setYear, setMonth) { + //全部时间的月份都是按0~11基准,显示月份才+1 + let dateArr = []; //需要遍历的日历数组数据 + let arrLen = 0; //dateArr的数组长度 + let now = setYear ? new Date(setYear, setMonth) : new Date(); + let year = setYear || now.getFullYear(); + let nextYear = 0; + let month = setMonth || now.getMonth(); //没有+1方便后面计算当月总天数 + let nextMonth = (month + 1) > 11 ? 1 : (month + 1); + let startWeek = new Date(year + '/' + (month + 1) + '/' + 1).getDay(); //目标月1号对应的星期 + let dayNums = new Date(year, nextMonth, 0).getDate(); //获取目标月有多少天 + let obj = {}; + let num = 0; + + if (month + 1 > 11) { + nextYear = year + 1; + dayNums = new Date(nextYear, nextMonth, 0).getDate(); + } + arrLen = startWeek + dayNums; + console.log(this.data.dates) + for (let i = 0; i < arrLen; i++) { + if (i >= startWeek) { + + num = i - startWeek + 1; + let date =util.formatDate(new Date(year +'/' + (month + 1) +'/' + num)); + let day = this.properties.datelist.find(x=>x.date==date) + obj = { + isToday: '' + year + (month + 1) + num, + dateNum: num, + weight: 5, + date:date, + haveStock: day?day.haveStock:false + } + } else { + obj = {}; + } + dateArr[i] = obj; + } + // dateArr.map(monthDate=>{ + // console.log(monthDate) + // }) + this.setData({ + dateArr: dateArr + }) + + console.log(dateArr) + + let nowDate = new Date(); + let nowYear = nowDate.getFullYear(); + let nowMonth = nowDate.getMonth() + 1; + let nowWeek = nowDate.getDay(); + let getYear = setYear || nowYear; + let getMonth = setMonth >= 0 ? (setMonth + 1) : nowMonth; + + if (nowYear == getYear && nowMonth == getMonth) { + this.setData({ + isTodayWeek: true, + todayIndex: nowWeek + }) + } else { + this.setData({ + isTodayWeek: false, + todayIndex: -1 + }) + } + }, + lastMonth: function () { + //全部时间的月份都是按0~11基准,显示月份才+1 + let year = this.data.month - 2 < 0 ? this.data.year - 1 : this.data.year; + let month = this.data.month - 2 < 0 ? 11 : this.data.month - 2; + this.setData({ + year: year, + month: (month + 1) + }) + this.dateInit(year, month); + }, + nextMonth: function () { + //全部时间的月份都是按0~11基准,显示月份才+1 + let year = this.data.month > 11 ? this.data.year + 1 : this.data.year; + let month = this.data.month > 11 ? 0 : this.data.month; + this.setData({ + year: year, + month: (month + 1) + }) + this.dateInit(year, month); + }, + onTapDay:function(e){ + let date = e.currentTarget.dataset.date; + let item = e.currentTarget.dataset.item; + console.log(date, item) + + if (date && item.haveStock) { + console.log('trigger') + this.triggerEvent("onTapDay",date) + } + }, + } +}) diff --git a/pages/component/calendarTheatre/index.json b/pages/component/calendarTheatre/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/pages/component/calendarTheatre/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/component/calendarTheatre/index.wxml b/pages/component/calendarTheatre/index.wxml new file mode 100644 index 0000000..81ede25 --- /dev/null +++ b/pages/component/calendarTheatre/index.wxml @@ -0,0 +1,24 @@ + + + + + + {{year}}年{{month}}月 + + + + + {{item}} + + + + + {{item.dateNum}} + + + · + + + + \ No newline at end of file diff --git a/pages/component/calendarTheatre/index.wxss b/pages/component/calendarTheatre/index.wxss new file mode 100644 index 0000000..6d5f88d --- /dev/null +++ b/pages/component/calendarTheatre/index.wxss @@ -0,0 +1,121 @@ +.date-show{ + position: relative; + width: 250rpx; + font-family: PingFang-SC-Regular; + font-size: 40rpx; + color: #282828; + text-align: center; + margin: 30rpx auto; +} +.lt-arrow,.rt-arrow{ + position: absolute; + top: 1rpx; + width: 60rpx; + line-height: 60rpx; +padding-right: 0.6rem; +} +.lt-arrow image,.rt-arrow image{ + width: 40rpx; + height: 40rpx; +} +.lt-arrow{ + left: -110rpx; + /* transform: rotate(180deg); */ +} +.rt-arrow{ + right: -100rpx; +} +.header{ + font-size: 0; + padding: 0 24rpx; +} +.header>view{ + display: inline-block; + width: 14.285%; + color: #333; + font-size: 30rpx; + text-align: center; + border-bottom: 1px solid #D0D0D0; + padding: 39rpx 0; +} +.weekMark{ + position: relative; +} +.weekMark view{ + position: absolute; + bottom: 0; + left: 0; + width: 100%; + /* border-bottom: 1px solid #22A7F6; */ +} +.date-box{ + font-size: 0; + padding: 10rpx 0; +} +.date-box>view{ + position: relative; + width: 14.285%; + color: #020202; + font-size: 40rpx; + text-align: center; + vertical-align: middle; + height: 90rpx; + display: inline-flex; + align-items: center; + justify-content: center; +} +.date-head{ + /* height: 60rpx; */ + /* line-height: 60rpx; */ + font-size: 26rpx; +} +.date-head.disable { + color: #999; +} +.date-dot-tip{ + font-size: 40rpx; + line-height: 26rpx; + color: #D62828; +} +.date-tip { + font-size: 24rpx; + line-height: 26rpx; + color: #D62828; +} +.date-tip.disable { + color: #999; +} +.nowDay .date-head{ + width: 60rpx; + line-height: 60rpx; + border-radius: 50%; + text-align: center; + color: #fff; + background-color: #0B898E; + margin: 0 auto; +} +.date-weight{ + font-size: 22rpx; + padding: 15rpx 0; +} +.nowDay .date-weight{ + color: #0B898E; +} +.one{ + position: absolute; + bottom: 0; + right: 5rpx; + width: 20rpx; + height: 20rpx; + border-radius: 50%; + background-color: red; +} +.two{ + position: absolute; + bottom: 30rpx; + right: 5rpx; + width: 20rpx; + height: 20rpx; + border-radius: 50%; + background-color: blue; +} \ No newline at end of file diff --git a/pages/component/commonImage/index.wxml b/pages/component/commonImage/index.wxml index ce03897..d3e287a 100644 --- a/pages/component/commonImage/index.wxml +++ b/pages/component/commonImage/index.wxml @@ -1,3 +1,3 @@ - - + + diff --git a/pages/component/kefu/index.js b/pages/component/kefu/index.js new file mode 100644 index 0000000..c3f255b --- /dev/null +++ b/pages/component/kefu/index.js @@ -0,0 +1,58 @@ +// pages/component/kefu/index.js +import commonApi from "../../../utils/https/common.js" +Component({ + + /** + * 组件的属性列表 + */ + properties: { + + }, + data: { + show: false, + showPhone: false, + info: "", + phones: [] + }, + lifetimes: { + attached() { + console.log('组件已挂载到页面'); + this.initData(); + } + }, + /** + * 组件的初始数据 + */ + + + + /** + * 组件的方法列表 + */ + methods: { + initData () { + commonApi._post("kefu_tips/getTips", {platform:'miniapp'}).then(res=>{ + if (res.data) { + this.setData({ + showPhone: res.data.is_online, + info: res.data.content, + phones: res.data.emergency_phones + }) + } + }) + }, + + hideModal: function () { + this.setData({ + show: false, + }) + this.triggerEvent('hideModal'); + }, + phoneCall:function(e){ + let phone = e.currentTarget.dataset.phone; + wx.makePhoneCall({ + phoneNumber: phone, + }) + }, + } +}) \ No newline at end of file diff --git a/pages/component/kefu/index.json b/pages/component/kefu/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/pages/component/kefu/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/component/kefu/index.wxml b/pages/component/kefu/index.wxml new file mode 100644 index 0000000..5cb1074 --- /dev/null +++ b/pages/component/kefu/index.wxml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + {{item}} + + + + + 取消 + + + + \ No newline at end of file diff --git a/pages/component/kefu/index.wxss b/pages/component/kefu/index.wxss new file mode 100644 index 0000000..493b418 --- /dev/null +++ b/pages/component/kefu/index.wxss @@ -0,0 +1,88 @@ +.bg{ + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + overflow: hidden; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; +} +.modal-mask { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: #000; + opacity: 0.5; + overflow: hidden; + z-index: 200; + color: #fff; +} + +.modal-dialog { + width: 540rpx; + overflow: hidden; + position: relative; + z-index: 9999; + background: #FFFFFF; + border-radius: 20rpx; +} +.modal-content{ + padding: 38rpx 26rpx; +} + + +.modal-footer { + display: flex; + flex-direction: row; + height: 112rpx; + border-top: 1px solid #dedede; + + + color: #000000; + padding: 30rpx 0; + box-sizing: border-box; +} + + + + +.btn-confirms { + flex: 1; + text-align: center; + font-weight: normal !important; + box-sizing: border-box; + width: 50% !important; + padding: 0 !important; + line-height: 50rpx; + background: none; + color: #0C898F; + font-weight: 500; + font-size: 32rpx; +} +.btn-confirms.two { + color: #000000; +} + +.icon-close{ + position: absolute; + width: 27.33rpx; + height: 27.33rpx; + top: 39rpx; + right: 26rpx; +} +.icon-close image{ + width: 100%; + height: 100%; +} +.phone-container{ + text-align: center; + font-weight: 500; +font-size: 27rpx; +color: #0C898F; +line-height: 1.8; +} \ No newline at end of file diff --git a/pages/component/myCalendar/index.js b/pages/component/myCalendar/index.js index d338df6..3890b73 100644 --- a/pages/component/myCalendar/index.js +++ b/pages/component/myCalendar/index.js @@ -144,6 +144,9 @@ Component({ onTapDay:function(e){ let date = e.currentTarget.dataset.date; console.log(date) + if (date.stock==-1||date.stock==null) { + return + } if(!date || date.price===null || date.stock==null || date.stock==0) return; this.triggerEvent("onTapDay",date) }, diff --git a/pages/component/myCalendar/index.wxml b/pages/component/myCalendar/index.wxml index 4f32041..e6aa9c1 100644 --- a/pages/component/myCalendar/index.wxml +++ b/pages/component/myCalendar/index.wxml @@ -11,11 +11,11 @@ - + {{item.dateNum}} - ¥{{dates[item.date].price==0 || isKj?'免费':(dates[item.date].price/100)}} - + ¥{{dates[item.date].price==0 || isKj?'免费':(dates[item.date].price/100)}} + {{dates[item.date].tipText?dates[item.date].tipText:'售罄'}} diff --git a/pages/component/newCalendar/index.js b/pages/component/newCalendar/index.js new file mode 100644 index 0000000..b64552c --- /dev/null +++ b/pages/component/newCalendar/index.js @@ -0,0 +1,484 @@ +// components/xx-calendar/xx-calendar.js +import calendarFormatter from "./xx_calendar"; +import commonApi from "../../../utils/https/common" +Component({ + /** + * 组件的属性列表 + */ + properties: { + use_date_arr:{ + type:Array, + value:[] + } + }, + + /** + * 组件的初始数据 + */ + data: { + // 本月指的是选择的当前月份 + year: new Date().getFullYear(), + month: new Date().getMonth() + 1, + weeksArr: ['日', '一', '二', '三', '四', '五', '六'], + nowMonth: new Date().getMonth() + 1, //本月是几月 + nowDay: new Date().getDate(), //本月当天的日期 + lastMonthDays: [], //上一个月 + nowMonthDays: [], //本月 + nextMonthDays: [], //下一个月 + weekDay:[], //周 日期list + activeDateStr:'', // 当前日期, + currentViewType: 'week', //当前选中的是周还是月 + holidayList:[], //节假日 + holidayList2:['2024/01/01','2024/02/10','2024/04/04', '2024/05/01', '2024/06/10','2024/09/17','2024/10/01'], // 节假日() + // lisClickNext: true, // 是否可以点下一周 + }, + + /** + * 组件的方法列表 + */ + methods: { + //获取当月天数 + getThisMonthDays(year, month) { + return new Date(year, month, 0).getDate(); + }, + /** 总方法 */ + //创建日期 + createDays(year, month) { + if( this.data.currentViewType === "month" ) { + this.getLastMonthDays(year, month) + this.getNowMonthDays(year, month) + this.getNextMonthDays(year, month) + } else { + this.getWeekData() + } + + }, + + /** 视图收起/展开 */ + toggleMode() { + const { year, month} = this.data + let nowYear = parseInt(new Date().getFullYear()) + if ((this.data.currentViewType === 'week' && year != nowYear)) { + return + } + this.setData({ + currentViewType: this.data.currentViewType === "month" ? "week" : "month", + }) + const activeDateStr = this.data.activeDateStr + const arr = activeDateStr.split("/") + + if( this.data.currentViewType === "month" ) { + this.getLastMonthDays(year, month) + this.getNowMonthDays(year, month) + this.getNextMonthDays(year, month) + } else { + this.getWeekData() + } + this.setData({ + headerDate: `${arr[0]} 年 ${arr[1]} 月` + }) + this.triggerEvent('modeChange', { + viewType: this.data.currentViewType, + }); + }, + /** 获取上个月日期 */ + getLastMonthDays(year, month) { + let nowMonthFirstDays = new Date(year, month - 1, 1).getDay() + let lastMonthDays = [] + if (nowMonthFirstDays) { //判断当月的第一天是不是星期天 + //上个月显示多少天 + let lastMonthNums = month - 1 < 0 ? this.getThisMonthDays(year - 1, 12) : this.getThisMonthDays(year, month - 1); //判断是否会跨年 + //上个月从几号开始显示 + for (let i = lastMonthNums - nowMonthFirstDays + 1; i <= lastMonthNums; i++) { + + let time = new Date(year, month - 2, i).toLocaleDateString() //对应的时间 + let timer = time.replace(/\//g, "-") + + lastMonthDays.push({ + date: i, //几号 + week: this.data.weeksArr[new Date(year, month - 2, i).getDay()], //星期几 + time:time, + isNowMonthDay: '' + }); + } + } + this.setData({ + lastMonthDays + }) + console.log(lastMonthDays); + }, + /** 获取当月日期 */ + getNowMonthDays(year, month) { + let { + nowMonth, + nowDay + } = this.data + let nowMonthDays = [] + let days = this.getThisMonthDays(year, month); //获取当月的天数 + for (let i = 1; i <= days; i++) { + let d = new Date(year, month - 1, i) + let years = d.getFullYear() + let months = d.getMonth() + 1 + let day2 = d.getDate() + let time = `${years+'/'+months +'/'+day2}` // 2022/3/3 + let timer = time.replace(/\//g, "-") + let timer2 = timer.split('-') + var day = calendarFormatter.solar2lunar(timer2[0], timer2[1], timer2[2]); + let newdate + if (day.IDayCn == '初一') { + newdate = day.IMonthCn + } else { + newdate = day.IDayCn + } + // 当前月数据 + let festival = calendarFormatter.getFestival(timer) // 返回当前节假日名称, 不是节日返回 '工作日' + let realDate = new Date()  +                let realMonth = realDate.getMonth() + 1 + let _time = `${years}/${+months < 10 ? '0'+months : months}/${+day2 < 10 ? '0'+day2 :day2}` + console.log(this.data.holidayList2.includes(_time)) + nowMonthDays.push({ + date: i, //几号 + week: this.data.weeksArr[new Date(year, month - 1, i).getDay()], //星期几 + time, + _time, + color: false, + day: newdate, + // day: ['工作日', '周末'].includes(festival) || festival.indexOf('补') > -1 || [如果有不想展示的日期,放这里].includes(timer) ? newdate : festival, + isNowMonthDay: (month == realMonth && i == nowDay) ? "isNowMonthDay" : "", + isHoliday: this.data.holidayList.find(s => s.date == _time ), // 判断是否是休息日 是的话返回true, 不是的话返回false + holidayList2: this.data.holidayList2.includes(_time) + }); + } + this.data.use_date_arr.forEach(ele => { + ele = ele.replace(/\-/g, "/") + nowMonthDays.forEach(item => { + if (ele == item.time) { + console.log(item); + item.color = true + } + }) + }) + this.setData({ + nowMonthDays + }) + }, + /** 获取下个月日期 */ + getNextMonthDays(year, month) { + let { + lastMonthDays, + nowMonthDays, + } = this.data + let nextMonthDays = [] + let nextMonthNums = (lastMonthDays.length + nowMonthDays.length) > 35 ? 42 - (lastMonthDays.length + nowMonthDays.length) : 35 - (lastMonthDays.length + nowMonthDays.length) //下个月显示多少天 + let nowYear = (parseInt(month) + 1) > 12 ? year + 1 : year //下一个月的年份 + let nowMonth = (parseInt(month) + 1) > 12 ? 1 : parseInt(month) + 1 //下一个月的月份 + if (nextMonthNums) { //判断当前天数是否大于零 + for (let i = 1; i <= nextMonthNums; i++) { + let time = new Date(year, month - 1, i).toLocaleDateString() + nextMonthDays.push({ + date: i, //几号 + week: this.data.weeksArr[new Date(nowYear, nowMonth - 1, i).getDay()], //星期几 + time, + isNowMonthDay: '' + }); + } + } + this.setData({ + nextMonthDays + }) + console.log(nextMonthDays) + }, + /** 切换月份 */ + changeMonthFun(e){ + let nowYear = parseInt(new Date().getFullYear()) + if (this.data.currentViewType === "month") { + let { + year, + month, + nowDay + } = this.data + let type = e.currentTarget.dataset.type //类型 + if (type == 'prev') { //上一个月 + year = month - 1 > 0 ? year : year - 1 + month = month - 1 > 0 ? month - 1 : 12 + } else { //next 下个月 + year = (parseInt(month) + 1) > 12 ? year + 1 : year + month = (parseInt(month) + 1) > 12 ? 1 : parseInt(month) + 1 + } + if (year != nowYear) { + return + } + this.setData({ + year, + month, + nowMonth: month, + activeDateStr: `${year}/${month}/${nowDay}` + }) + this.createDays(year, month) + } else { + let { + year, + month, + nowDay + } = this.data + let type = e.currentTarget.dataset.type //类型 + if ((type == 'next' && this.data.weekDay[6].year === (nowYear+1)) || (type == 'prev' && this.data.weekDay[0].year === (nowYear-1))) { + return + } + // if (type == 'next' && this.data.weekDay[0].year === 2025) { + // // debugger + // return + // } + // let newActiveDateStr = this.getActiveDateStrByWeek(this.data.activeDateStr, type) + let newActiveDateStr = this.getActiveDateStrByWeek(this.data.weekDay[6].dateStr, type) + // debugger + this.getWeekData(newActiveDateStr) + console.log(this.data.weekDay); + // this.data.lisClickNext = this.data.weekDay.every(s => s.year == 2024) + } + + }, + + // 获取节假日 + getHoliday(){ + commonApi._post("pbservice/Actcalendar/getHoliday",{year:this.data.year}).then(res => { + // console.log(res); + this.setData({ + holidayList: res.data + }) +  this.data.holidayList = this.data.holidayList.map(item=> { + if (item.name == '清明节') { + return { +   ...item, + color:'#009EA3', +   background:'#DAF0EE' + } + }else if (item.name == '劳动节') { + return { +   ...item, + color:'#DE4126', +   background:'#FFECDB', + borderBottom: "0.02px solid #E99C3C" + } + }else if (item.name == '春节') { + return { +   ...item, + color:'#D10000', +   background:'#FAE3E3' + } + }else if (item.name == '元旦') { + return { +   ...item, + color:'#EB3300', +   background:'#FFDED9' + } + }else if (item.name == '端午节') { + return { +   ...item, + color:'#0B8E3F', +   background:'#CEEDDB' + } + }else if (item.name == '国庆节') { + return { +   ...item, + color:'#D41E1E', +   background:'#FFE8E8' + } + }else if (item.name == '中秋节') { + return { +   ...item, + color:'#FF8E24', +   background:'#FFF3DB' + } + } else { + return { +   ...item, + color:'#fff', +   background:'#fff' + } + } + }) + console.log('------------------------------',this.data.holidayList); + let { + year, + month, + nowDay + } = this.data + this.setData({ + activeDateStr: `${year}/${month}/${nowDay}` + }) + this.createDays(year, month, nowDay) + }) + }, + /** 获取周视图数据 */ + getWeekData(defaultDate) { + /** 是否是从周一开始 */ + const isStartFromMonday = this.properties.startDay === "monday" + if (!defaultDate) { + defaultDate = this.data.activeDateStr + } + const YEAR = new Date(defaultDate).getFullYear() + const MONTH = new Date(defaultDate).getMonth() + 1 + const DATE = new Date(defaultDate).getDate() + const WEEK = isStartFromMonday + ? new Date(defaultDate).getDay() || 7 + : new Date(defaultDate).getDay() + /** 上月最后一天 */ + let lastDayOfLastMonth = new Date(YEAR, MONTH - 1, 0) + /** 上月最后一天是周几 */ + let lastDateOfLastMonth = lastDayOfLastMonth.getDate() + /** 当月最后一天 */ + let lastDay = new Date(YEAR, MONTH, 0) + /** 当月最后一天是几号 */ + let lastDate = lastDay.getDate() +// debugger + var ret = [] + /** 前面有几天 */ + let preCount = isStartFromMonday ? WEEK - 1 : WEEK + for (let i = 0; i < 7; i++) { + /** 用于计算的日期,可能为负数,可能大于当月最后一天 */ + let date = i + (DATE - preCount) + /** 真实的日期 */ + let showDate = date + /** 真实的月 */ + let showMonth = MONTH + /** 真实的年 */ + let showYear = YEAR + if (date <= 0) { + // 上个月 + showMonth = MONTH - 1 + showDate = lastDateOfLastMonth + date + } else if (date > lastDate) { + // 下个月 + showMonth = MONTH + 1 + showDate = showDate - lastDate + } + if (showMonth === 0) { + showMonth = 12 + showYear = YEAR - 1 + } + if (showMonth === 13) { + showMonth = 1 + showYear = YEAR + 1 + } + var day = calendarFormatter.solar2lunar(showYear,showMonth, showDate); + let newdate + if (day.IDayCn == '初一') { + newdate = day.IMonthCn + } else { + newdate = day.IDayCn + } + let { + month, + nowDay + } = this.data +  let realMonth =new Date().getMonth() + 1 + // 当前周数据 + let festival = calendarFormatter.getFestival(`${showYear}-${showMonth}-${showDate}`) // 返回当前节假日名称, 不是节日返回 '工作日' + // debugger + ret.push({ + year: showYear, + month: showMonth, + date: showDate, + calDate: date, + day: newdate, + dateStr: `${showYear}/${showMonth}/${showDate}`, + isNowMonthDay: ( realMonth  == showMonth && nowDay == showDate) ? "isNowMonthDay" : "", + isHoliday: this.data.holidayList.find(s => s.date === `${showYear}/${+showMonth < 10 ? '0'+showMonth : showMonth}/${+showDate < 10 ? '0'+showDate :showDate}` ), + holidayList2: this.data.holidayList2.includes(`${showYear}/${+showMonth < 10 ? '0'+showMonth : showMonth}/${+showDate < 10 ? '0'+showDate :showDate}` ) + // `${showYear}/${showMonth}/${showDate}` + // isHoliday: calendarFormatter.isHoliday(`${showYear}-${showMonth}-${showDate}`), // 判断是否是休息日 是的话返回true, 不是的话返回false + }) + } + console.log(ret); + // debugger + this.setData({ + weekDay: ret, + year: YEAR, + month: MONTH, + }) + }, + + /** + * 周视图下,左右切换时,获取新的高亮日期 + * @param {string} curActiveDateStr 当前高亮的日期 + * @param {string} type "prev" or "next" + */ + getActiveDateStrByWeek(curActiveDateStr, type) { + const arr = curActiveDateStr.split("/") + const year = +arr[0] + const month = +arr[1] + const date = +arr[2] + + let newYear = year, newMonth = month, newDate = date; + /** 上月最后一天 */ + const lastMonthLastDate = new Date(year, month - 1, 0).getDate() + /** 本月最后一天 */ + const curMonthLastDate = new Date(year, month, 0).getDate() + if (type === "prev") { + // 如果减7小于0, 说明跳月了 + if (date - 7 <= 0) { + newYear = month === 1 ? year - 1 : year + newMonth = month === 1 ? 12 : month - 1 + newDate = lastMonthLastDate + date - 7 + } else { + newDate = date - 7 + } + } else if (type == "next") { + // 如果加7大于本月最后一天,说明跳月了 + if (date + 7 > curMonthLastDate) { + newYear = month === 12 ? year + 1 : year + newMonth = month === 12 ? 1 : month + 1 + newDate = (date + 7) - curMonthLastDate + } else { + newDate = date + 7 + } + } + return `${newYear}/${newMonth}/${newDate}` + }, + + + /** 选择日期触发 */ + selectDate(e){ + let type = e.currentTarget.dataset.type //选择的时间类型 + let index = e.currentTarget.dataset.index //选择的下标 + let date + if (this.data.currentViewType == 'week') { + date = e.currentTarget.dataset.item.dateStr //选择的下标 + type = 'weekDay' + } else { + date = e.currentTarget.dataset.item.time //选择的下标 + } + let selectDate = date.replace(/\//g, "-") + console.log("选择的时间", selectDate) + // 自定义事件,父组件调用,回调 选择的时间selectDate + this.triggerEvent('selectDate', selectDate) + //将选择的时间类型的 isNowMonthDay 全改为'' + this.data[type]?.forEach(item => { + item.isNowMonthDay = '' + }) + console.log(index,this.data,[type]); + this.data[type]?.forEach((item, idx) => { + if (index == idx) { + item.isNowMonthDay = (item.time == new Date().toLocaleDateString() ? "isNowMonthDay" : "isNotNowMonthDay"); //判断当前选中的日期是否是当前时间 + } else { + item.isNowMonthDay = '' + } + }) + const dateArr = date.split('/') + this.setData({ + [type]: this.data[type], + activeDateStr: date, + year: dateArr[0], + month:dateArr[1], + nowMonth: dateArr[1], + nowDay: dateArr[2], + }) + }, + }, + ready() { + this.getHoliday() + + + } +}) \ No newline at end of file diff --git a/pages/component/newCalendar/index.json b/pages/component/newCalendar/index.json new file mode 100644 index 0000000..7e37c03 --- /dev/null +++ b/pages/component/newCalendar/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/component/newCalendar/index.wxml b/pages/component/newCalendar/index.wxml new file mode 100644 index 0000000..15ed6c6 --- /dev/null +++ b/pages/component/newCalendar/index.wxml @@ -0,0 +1,67 @@ + + + + + + + 上一月 + 上一周 + + + {{year}}年 {{month}}月 + + + 下一月 + 下一周 + + + + + + + + + + {{item}} + + + + {{item.date}} + + + + + + + + + {{item.date}} + + + + {{ item.isHoliday.name}} + {{ item.day}} + + + + + + + + {{item.date}} + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/component/newCalendar/index.wxss b/pages/component/newCalendar/index.wxss new file mode 100644 index 0000000..204501b --- /dev/null +++ b/pages/component/newCalendar/index.wxss @@ -0,0 +1,210 @@ +/* components/xx-calendar/xx-calendar.wxss */ +page{ + /* background: #F0B643; */ + background: #F2F2F2; +} +/* 头部样式start */ +.title-wrap{ + /* background-color: #F2F2F2; */ + /* padding-top: 20rpx; */ + /* border-bottom: 1px solid #D4DBDC; */ + /* padding-bottom: 10rpx; */ + /* width: 697rpx; */ + /* margin: 0 auto; + padding: 37rpx 22rpx 40rpx; */ + /* 节假日花样 */ + /* background-color: #FFD6B2; */ + margin: 0 auto; + padding: 37rpx 0 40rpx; + /* 节假日花样 */ + /* background-image: url("https://static.ticket.sz-trip.com/uploads/20240605/82a51ad6c58274c78f99fef4af3c9739.png"); */ + background-size: 100% 100%; + width: 100%; + /* height: 65.67rpx; */ + height: 256.67rpx; + /* background-image: url("https://static.ticket.sz-trip.com/uploads/20250421/58fee5695a0b676a14e8157b809ba1d6.png"); */ + box-sizing: border-box; +} +.change-date{ + display: flex; + justify-content: space-between; + align-items: center; + margin: 0 22rpx; +} +.change-date image{ + width: 50rpx; + height: 50rpx; + transform: scale(1.5); + display: flex; +} +.year-mouth{ + margin: 0 60rpx; + font-weight: bold; + font-size: 35rpx; + color: #000; +} +.week{ + width: 100%; + display: flex; + justify-content: space-between; + font-size: 24rpx; + margin-top: 30rpx; + color: #1F1F1F; +} +.week text{ + flex: 1; + text-align: center; +} +/* 头部样式end */ +/* 日期区域样式start */ +.date-wrap{ + /* height: 500rpx; */ + width: 697rpx; + margin: 0 auto; + background-color: #fff; + display: flex; + flex-wrap: wrap; + border-radius: 20rpx; + margin-top: -144rpx; + position: relative; +} +.mouth-date{ + display: flex; + font-size: 24rpx; + flex-direction: column; + align-items: center; + width: calc(100% / 7); + /* border-bottom: 1rpx solid rgb(229, 234, 235); */ + padding-top: 10rpx; +} +.last-mouth text,.next-mouth text{ + opacity: 0; +} +.mouth-date .day{ + display: flex; + flex-direction: column; + align-items: center; + color: #1F1F1F; + +} +.mouth-date .day-nongli{ + font-size: 18rpx; + /* color: #888888; */ + margin-bottom: 6rpx; +} +.mouth-date .color{ + color: #8096F0; +} +.mouth-date .day-dot{ + width: 8rpx; + height: 8rpx; + border-radius: 50%; + background-color: #8096F0; +} +.mouth-date .day-box{ + border-radius: 27rpx; + width: 86rpx; + padding-top: 10rpx; + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 10rpx; + padding-bottom: 8rpx; +} +.mouth-date .active{ + background-color: #0B898E !important; +} + + +.mouth-date .active text{ + color: #fff !important; +} + + +.mouth-date .active .day-text{ + font-weight: 600; +} +.not-dot{ + width: 8rpx; + height: 8rpx; +} +.holiday-box{ + background-color: #ffecda; + border-radius: 10px; +} +.holiday { + /* background-color: #ffecda; */ + position: relative; + /* color: #e1856e; */ +} +.holidayactive { + position: relative; +} +.day-text .xiu { + font-size: 6px; + position: absolute; + right: 5px; + top: 5px; +} +.holiday .xiu { + font-size: 6px; + position: absolute; + right: 5px; + top: 5px; +} +.holiday .day-nongli { + /* color: #e1856e; */ +} + + .footer{ + display: flex; + justify-content: center; + width: 100%; + height: 54rpx; + color:#adb1b3; + font-size:24rpx; +} + .footer .arrow{ + width:22rpx; + height: 34rpx; +} + +.footer image { + width: 20rpx; + height: 20rpx; + margin: 12rpx auto 20rpx; +} + +.arrow-left{ + transform-origin:50% 50%; + transform: rotate(180deg) +} +.arrow-down{ + transform-origin:50% 50%; + transform: rotate(90deg) +} +.arrow-up{ + transform-origin:50% 50%; + transform: rotate(-90deg) +} +.next, .prev { + display: flex; + align-items: baseline; + font-size: 27rpx; + font-weight: 500; + color: #000; +} +.next image, .prev image { + width: 20rpx; + height: 20rpx; +} + + +.bottom-image{ + position: absolute; + bottom: 0; + right: 0; + width: 290.13rpx; + height: 146rpx; + display: none; +} \ No newline at end of file diff --git a/pages/component/newCalendar/xx_calendar.js b/pages/component/newCalendar/xx_calendar.js new file mode 100644 index 0000000..3e6774f --- /dev/null +++ b/pages/component/newCalendar/xx_calendar.js @@ -0,0 +1,986 @@ +const dayjs = require('dayjs') +const ww = require('chinese-workday'); +/** + +* @1900-2100区间内的公历、农历互转 + +* @charset UTF-8 + +* @Author jiangjiazhi + +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] + +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] + +*/ + + + +/** + +* 农历1900-2100的润大小信息表 + +* @Array Of Property + +* @return Hex + +*/ + +var lunarInfo = [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + + 0x0d520 +] // 2100 + + + +var solarMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + + + +/** + + * 天干地支之天干速查表 + * @Array Of Property trans['甲','乙','丙','丁','戊','己','庚','辛','壬','癸'] + * @return Cn string + */ +var Gan = ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'] + + + +/** + + * 天干地支之地支速查表 + * @Array Of Property + * @trans['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] + * @return Cn string + */ +var Zhi = ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'] + + + +/** + + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'] + * @return Cn string + */ +var Animals = ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'] + + + +/** + + * 24节气速查表 + * @Array Of Property + * @trans['小寒','大寒','立春','雨水','惊蛰','春分','清明','谷雨','立夏','小满','芒种','夏至','小暑','大暑','立秋','处暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至'] + * @return Cn string + */ +var solarTerm = ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'] + + + +/** + + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ +var sTermInfo = ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722' +] + + + +/** + + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ +var nStr1 = ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'] + + + +/** + + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ +var nStr2 = ['\u521d', '\u5341', '\u5eff', '\u5345'] + + + +/** + + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ +var nStr3 = ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'] + + + +/** + + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ +function lYearDays(y) { + var i + + var sum = 348 + + for (i = 0x8000; i > 0x8; i >>= 1) { + sum += (lunarInfo[y - 1900] & i) ? 1 : 0 + } + return (sum + leapDays(y)) + +} + + + +/** + + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ +function leapMonth(y) { // 闰字编码 \u95f0 + + return (lunarInfo[y - 1900] & 0xf) + +} + + + +/** + + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ +function leapDays(y) { + if (leapMonth(y)) { + return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + + } + + return (0) + +} + + + +/** + + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ +function monthDays(y, m) { + if (m > 12 || m < 1) { + return -1 + } // 月份参数从1至12,参数错误返回-1 + + return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) +} + + + +/** + + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ +function solarDays(y, m) { + if (m > 12 || m < 1) { + return -1 + } // 若参数错误 返回-1 + + var ms = m - 1 + + if (ms === 1) { // 2月份的闰平规律测算后确认返回28或29 + + return (((y % 4 === 0) && (y % 100 !== 0) || (y % 400 === 0)) ? 29 : 28) + + } else { + return (solarMonth[ms]) + + } + +} + + + +/** + + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ +function toGanZhiYear(lYear) { + var ganKey = (lYear - 3) % 10 + + var zhiKey = (lYear - 3) % 12 + + if (ganKey === 0) ganKey = 10 // 如果余数为0则为最后一个天干 + + if (zhiKey === 0) zhiKey = 12 // 如果余数为0则为最后一个地支 + + return Gan[ganKey - 1] + Zhi[zhiKey - 1] + +} + + + +/** + + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ +function toAstro(cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7' // 座 + +} + + + +/** + + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ +function toGanZhi(offset) { + return Gan[offset % 10] + Zhi[offset % 12] + +} + + + +/** + + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ +function getTerm(y, n) { + if (y < 1900 || y > 2100) { + return -1 + } + + if (n < 1 || n > 24) { + return -1 + } + + var _table = sTermInfo[y - 1900] + + var _info = [ + + parseInt('0x' + _table.substr(0, 5)).toString(), + + parseInt('0x' + _table.substr(5, 5)).toString(), + + parseInt('0x' + _table.substr(10, 5)).toString(), + + parseInt('0x' + _table.substr(15, 5)).toString(), + + parseInt('0x' + _table.substr(20, 5)).toString(), + + parseInt('0x' + _table.substr(25, 5)).toString() + + ] + + var _calday = [ + + _info[0].substr(0, 1), + + _info[0].substr(1, 2), + + _info[0].substr(3, 1), + + _info[0].substr(4, 2), + + + + _info[1].substr(0, 1), + + _info[1].substr(1, 2), + + _info[1].substr(3, 1), + + _info[1].substr(4, 2), + + + + _info[2].substr(0, 1), + + _info[2].substr(1, 2), + + _info[2].substr(3, 1), + + _info[2].substr(4, 2), + + + + _info[3].substr(0, 1), + + _info[3].substr(1, 2), + + _info[3].substr(3, 1), + + _info[3].substr(4, 2), + + + + _info[4].substr(0, 1), + + _info[4].substr(1, 2), + + _info[4].substr(3, 1), + + _info[4].substr(4, 2), + + + + _info[5].substr(0, 1), + + _info[5].substr(1, 2), + + _info[5].substr(3, 1), + + _info[5].substr(4, 2) + + ] + + return parseInt(_calday[n - 1]) + +} + + + +/** + + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ +function toChinaMonth(m) { // 月 => \u6708 + + if (m > 12 || m < 1) { + return -1 + } // 若参数错误 返回-1 + + var s = nStr3[m - 1] + + s += '\u6708' // 加上月字 + + return s + +} + + + +/** + + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ +function toChinaDay(d) { // 日 => \u65e5 + + var s + + switch (d) { + case 10: + + s = '\u521d\u5341' + + break + + case 20: + + s = '\u4e8c\u5341' + + break + + case 30: + + s = '\u4e09\u5341' + + break + + default: + + s = nStr2[Math.floor(d / 10)] + + s += nStr1[d % 10] + + } + + return (s) + +} + + + +/** + + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ +function getAnimal(y) { + return Animals[(y - 4) % 12] + +} + + + +/** + + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ +function solar2lunar(y, m, d) { // 参数区间1900.1.31~2100.12.31 + + // 年份限定、上限 + + if (y < 1900 || y > 2100) { + return -1 // undefined转换为数字变为NaN + + } + + // 公历传参最下限 + + if (y === 1900 && m === 1 && d < 31) { + return -1 + + } + + // 未传参 获得当天 + + var objDate = null + + if (!y) { + objDate = new Date() + + } else { + objDate = new Date(y, parseInt(m) - 1, d) + + } + + var i + + var leap = 0 + + var temp = 0 + + // 修正ymd参数 + + y = objDate.getFullYear() + + m = objDate.getMonth() + 1 + + d = objDate.getDate() + + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = lYearDays(i) + + offset -= temp + + } + + if (offset < 0) { + offset += temp; + i-- + + } + + + + // 是否今天 + + var isTodayObj = new Date() + + var isToday = false + + if (isTodayObj.getFullYear() === y && isTodayObj.getMonth() + 1 === m && isTodayObj.getDate() === d) { + isToday = true + + } + + // 星期几 + + var nWeek = objDate.getDay() + + var cWeek = nStr1[nWeek] + + // 数字表示周几顺应天朝周一开始的惯例 + + if (nWeek === 0) { + nWeek = 7 + + } + + // 农历年 + + var year = i + + leap = leapMonth(i) // 闰哪个月 + + var isLeap = false + + + + // 效验闰月 + + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + + if (leap > 0 && i === (leap + 1) && isLeap === false) { + --i + + isLeap = true; + temp = leapDays(year) // 计算农历闰月天数 + + } else { + temp = monthDays(year, i) // 计算农历普通月天数 + + } + + // 解除闰月 + + if (isLeap === true && i === (leap + 1)) { + isLeap = false + } + + offset -= temp + + } + + // 闰月导致数组下标重叠取反 + + if (offset === 0 && leap > 0 && i === leap + 1) { + if (isLeap) { + isLeap = false + + } else { + isLeap = true; + --i + + } + + } + + if (offset < 0) { + offset += temp; + --i + + } + + // 农历月 + + var month = i + + // 农历日 + + var day = offset + 1 + + // 天干地支处理 + + var sm = m - 1 + + var gzY = toGanZhiYear(year) + + + + // 当月的两个节气 + + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + + var firstNode = getTerm(y, (m * 2 - 1)) // 返回当月「节」为几日开始 + + var secondNode = getTerm(y, (m * 2)) // 返回当月「节」为几日开始 + + + + // 依据12节气修正干支月 + + var gzM = toGanZhi((y - 1900) * 12 + m + 11) + + if (d >= firstNode) { + gzM = toGanZhi((y - 1900) * 12 + m + 12) + + } + + // 传入的日期的节气与否 + + var isTerm = false + + var Term = null + + if (firstNode === d) { + isTerm = true + + Term = solarTerm[m * 2 - 2] + + } + + if (secondNode === d) { + isTerm = true + + Term = solarTerm[m * 2 - 1] + + } + + // 日柱 当月一日与 1900/1/1 相差天数 + + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + + var gzD = toGanZhi(dayCyclical + d - 1) + + // 该日期所属的星座 + + var astro = toAstro(m, d) + + return { + 'lYear': year, + 'lMonth': month, + 'lDay': day, + 'Animal': getAnimal(year), + 'IMonthCn': (isLeap ? '\u95f0' : '') + toChinaMonth(month), + 'IDayCn': toChinaDay(day), + 'cYear': y, + 'cMonth': m, + 'cDay': d, + 'gzYear': gzY, + 'gzMonth': gzM, + 'gzDay': gzD, + 'isToday': isToday, + 'isLeap': isLeap, + 'nWeek': nWeek, + 'ncWeek': '\u661f\u671f' + cWeek, + 'isTerm': isTerm, + 'Term': Term, + 'astro': astro + } + +} + + + + +var calendarFormatter = { + // 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + + return solar2lunar(y, m, d) + + }, + + isHoliday: function(day) { + const isHoliday = ww.isHoliday; //是否是休息日 + return isHoliday(day) + }, + + getFestival: function(day) { + const getFestival = ww.getFestival; // 获取今天是什么节日 + let festival = getFestival(day) + return festival + }, + + /** + + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + + isLeapMonth = !!isLeapMonth + + if (isLeapMonth && (leapMonth !== m)) { + return -1 + } // 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + + if (y === 2100 && m === 12 && d > 1 || y === 1900 && m === 1 && d < 31) { + return -1 + } // 超出了最大极限值 + + var day = monthDays(y, m) + + var _day = day + + // bugFix 2016-9-25 + + // if month is leap, _day use leapDays method + + if (isLeapMonth) { + _day = leapDays(y, m) + + } + + if (y < 1900 || y > 2100 || d > _day) { + return -1 + } // 参数合法性效验 + + + + // 计算农历的时间差 + + var offset = 0 + + for (var i = 1900; i < y; i++) { + offset += lYearDays(i) + + } + + var leap = 0 + + var isAdd = false + + for (i = 1; i < m; i++) { + leap = leapMonth(y) + + if (!isAdd) { // 处理闰月 + + if (leap <= i && leap > 0) { + offset += leapDays(y); + isAdd = true + + } + + } + + offset += monthDays(y, i) + + } + + // 转换闰月农历 需补充该年闰月的前一个月的时差 + + if (isLeapMonth) { + offset += day + } + + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + + var cY = calObj.getUTCFullYear() + + var cM = calObj.getUTCMonth() + 1 + + var cD = calObj.getUTCDate() + + return solar2lunar(cY, cM, cD) + + } + +} + +export default calendarFormatter \ No newline at end of file diff --git a/pages/component/orderAdv/orderAdv.js b/pages/component/orderAdv/orderAdv.js new file mode 100644 index 0000000..0dbfd09 --- /dev/null +++ b/pages/component/orderAdv/orderAdv.js @@ -0,0 +1,123 @@ +// pages/component/TitleHeader.js +import commonApi from "../../../utils/https/common.js" +import util from '../../../utils/util' +var app = getApp() +Component({ + options: { + styleIsolation: 'apply-shared', + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + ids:{ + type: String, + value: "" + } + }, + observers:{ + 'ids': function(newVal,oldVal){ + console.log('newVal--------',newVal) + console.log('oldVal--------',oldVal) + if (newVal) { + this.getAdv(newVal) + } + } + }, + lifetimes: { + created() { + this.data.advList=[] + } + }, + /** + * 组件的初始数据 + */ + data: { + advList: [], + }, + /** + * 组件的方法列表 + */ + methods: { + getAdv() { + this.data.advList = [] + commonApi._post("adv/getAdv", { + position: 5, + type_id: 3, + product_id: this.data.ids + }).then(res => { + try { + this.setData({ + advList: res.data + }) + } catch (error) { + console.log(error); + } + console.log('advList',this.data.advList); + }) + }, + bannerClick: function(e) { + if (this.data.isTest) return; + let item = e.currentTarget.dataset.item; + switch (item.jump_type) { + case 0: + break; + case 1: + util.gotoDetail(item.product_model) + break; + case 2: + if (item.front_model && item.front_model.mini) { + wx.navigateTo({ + url: "/" + item.front_model.mini + }) + } + break; + case 3: + // 外部h5 + console.log(item) + app.globalData.weburl = item.tdata.url; + wx.navigateTo({ + url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.tdata + .url) + }) + + + break; + case 4: + if (item.tdata.appid == 'wxe5ca0f71e918e352' && wx.getStorageSync('jstrip_userid')) { + // 如果是苏心游的小程序 直接把authCode带过去 + userApi.user_post("user/getJumpThirdAppCode", {}).then(res => { + let weburl = item.tdata.page + if (weburl.indexOf('?') != -1) { + weburl += '&authCode=' + res.data; + } else { + weburl += '?authCode=' + res.data + } + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: weburl + }) + }).catch(err => { + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: item.tdata.page + }) + }) + } else { + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: item.tdata.page + }) + } + break; + default: + break; + } + return; + + }, + }, + +}) \ No newline at end of file diff --git a/pages/component/orderAdv/orderAdv.json b/pages/component/orderAdv/orderAdv.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/pages/component/orderAdv/orderAdv.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/component/orderAdv/orderAdv.wxml b/pages/component/orderAdv/orderAdv.wxml new file mode 100644 index 0000000..1715ac8 --- /dev/null +++ b/pages/component/orderAdv/orderAdv.wxml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pages/component/orderAdv/orderAdv.wxss b/pages/component/orderAdv/orderAdv.wxss new file mode 100644 index 0000000..27cccce --- /dev/null +++ b/pages/component/orderAdv/orderAdv.wxss @@ -0,0 +1,12 @@ +.box { + margin: 20rpx 30rpx; + height: 133rpx; + border-radius: 13rpx; + padding: 0; +} + +.box >image { + width: 100%; + height: 133rpx; + border-radius: 13rpx; +} \ No newline at end of file diff --git a/pages/component/proRec/proRec.js b/pages/component/proRec/proRec.js new file mode 100644 index 0000000..d2b7f87 --- /dev/null +++ b/pages/component/proRec/proRec.js @@ -0,0 +1,124 @@ +// pages/component/TitleHeader.js +import commonApi from "../../../utils/https/common.js" +import util from '../../../utils/util' +var app = getApp() +Component({ + options: { + styleIsolation: 'apply-shared', + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + title: { + type: String, + value: "" + }, + transparent: { + type: String, + value: "0" + }, + clickid: { + type: String, + value: "" + }, + ids:{ + type: String, + value: "" + } + }, + observers:{ + 'ids': function(newVal,oldVal){ + // console.log('newVal--------',newVal) + // console.log('oldVal--------',oldVal) + if (newVal && this.data.tjList.length<=0) { + this.getTj(newVal) + } + } + }, + lifetimes: { + created() { + this.data.tjList=[] + // commonApi._post("product/get_product_by_type", { + // offset: 0, + // limit: 6, + // rand: true, + // type: "venue,post,line,ticket", + // product_ids:this.data.ids + // }).then(res => { + // this.setData({ + // showLoading: false + // }) + // try { + // this.setData({ + // tjList: res.data.list + // }) + // } catch (error) { + // console.log(error); + // } + // }) + } + }, + /** + * 组件的初始数据 + */ + data: { + tjList: [], + }, + /** + * 组件的方法列表 + */ + methods: { + getTj() { + this.data.tjList = [] + commonApi._post("search/product_recommend", { + offset: 0, + limit: 6, + rand: true, + type: "venue,post,line,ticket", + product_ids:this.data.ids + }).then(res => { + this.setData({ + showLoading: false + }) + try { + this.setData({ + tjList: res.data.list + }) + } catch (error) { + console.log(error); + } + console.log('tjList',this.data.tjList); + }) + }, + gotoDetail: function (e) { + let item = e.currentTarget.dataset.item; + util.pagePoint({ + event: 'recommend_click', + param: { + id: item.id, + type: item.type + } + }, 1) + + if (item.goods_jump_type == "changshu" || item.goods_jump_type == "yjks") { + util.goProdInOtherPlatform(item) + return + } + + + + if (item.type == 'travels') { + // 游记做特殊处理 其他都按照原来的来 + wx.navigateTo({ + url: '/pages/info/strategyInfo/index?id=' + item.s_id+"&sourceFrom=recommend", + }) + } else { + util.gotoDetail(item, false, "&sourceFrom=recommend"); + } + }, + }, + +}) \ No newline at end of file diff --git a/pages/component/proRec/proRec.json b/pages/component/proRec/proRec.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/pages/component/proRec/proRec.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/component/proRec/proRec.wxml b/pages/component/proRec/proRec.wxml new file mode 100644 index 0000000..86fb248 --- /dev/null +++ b/pages/component/proRec/proRec.wxml @@ -0,0 +1,17 @@ + + 商品推荐 + 加载中... + + + + + + + {{item.title}} + + {{item.price/100}} + + + + + \ No newline at end of file diff --git a/pages/component/proRec/proRec.wxss b/pages/component/proRec/proRec.wxss new file mode 100644 index 0000000..a1a7b78 --- /dev/null +++ b/pages/component/proRec/proRec.wxss @@ -0,0 +1,53 @@ +.tj-title{ + font-size: 30rpx; + font-family: PingFang SC; + font-weight: 500; + color: #333333; + } + .tj-list{ + display: flex; + align-items: center; + overflow-x: scroll; + overflow-y: hidden; + } + + .proitem{ + width: 226rpx; + height: 234rpx; + background: #F5F5F5; + border-radius: 10rpx; + margin-top: 20rpx; + margin-right: 20rpx; + } + .item-hd image{ + width: 226rpx; + height: 130rpx; + border-radius: 10rpx 10rpx 0px 0px; + } + .item-bm{ + padding: 8rpx 12rpx; + } + .protitle{ + font-size: 28rpx; + font-family: PingFang SC; + font-weight: 400; + color: #000000; + } + .pro-price{ + color: #D62828; + font-weight: 500; + font-size: 30rpx; + } + .pro-price:before { + display: inline-block; + content:"¥"; + color: #D62828; + font-size: 20rpx; + } + + .pro-price:after { + display: inline-block; + content:'起'; + color: #999999; + font-size: 10px; + } \ No newline at end of file diff --git a/pages/culture/index.wxml b/pages/culture/index.wxml index f9e4564..2e17fad 100644 --- a/pages/culture/index.wxml +++ b/pages/culture/index.wxml @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ - + {{item.name}} {{item.activity_date}}-{{item.activity_end_date}} diff --git a/pages/culture/info/index.wxml b/pages/culture/info/index.wxml index a2c3cbd..2966740 100644 --- a/pages/culture/info/index.wxml +++ b/pages/culture/info/index.wxml @@ -2,15 +2,15 @@ - + {{info.name}} - + 活动时间:{{info.begin_date}} ~ {{info.end_date}} - + 活动地点:{{info.address}} diff --git a/pages/group/apply/index.wxml b/pages/group/apply/index.wxml index 3d9aae5..d5e98f7 100644 --- a/pages/group/apply/index.wxml +++ b/pages/group/apply/index.wxml @@ -35,7 +35,7 @@ - 信息提交成功 + 信息提交成功 姓名: {{applyInfo.apply_user}} 手机号码:{{applyInfo.mobile}} 机构名称:{{applyInfo.organization_name}} @@ -45,7 +45,7 @@ - 申请被拒绝 + 申请被拒绝 拒绝原因: {{applyInfo.refund_msg}} diff --git a/pages/group/index.wxml b/pages/group/index.wxml index 1a17067..4d52b01 100644 --- a/pages/group/index.wxml +++ b/pages/group/index.wxml @@ -1,9 +1,9 @@ - 热门团购 + 热门团购 - + {{item.title+item.sku_name}} @@ -15,9 +15,9 @@ - 精品团购 + 精品团购 - + {{item.gp_num}}人团 @@ -51,12 +51,12 @@ {{ingGroup[0].s}} - + - + - + \ No newline at end of file diff --git a/pages/group/info/index.wxml b/pages/group/info/index.wxml index 7ca00c5..482163b 100644 --- a/pages/group/info/index.wxml +++ b/pages/group/info/index.wxml @@ -2,7 +2,7 @@ - + {{info.gp_num}}人团 @@ -29,16 +29,16 @@ {{myIngList.s}} - + - + - + 团购未满规定人数 已失败 原价购买 @@ -47,7 +47,7 @@ - + 团购活动已人满 团购成功 再开一单 @@ -55,7 +55,7 @@ - + 团购活动已结束 查看其它活动 @@ -69,7 +69,7 @@ 拼团规则 - + {{item.nickname}} 还差{{item.team_num}} @@ -88,7 +88,7 @@ - + {{item.title+item.sku_name}} @@ -113,18 +113,18 @@