From 7fc7135d7306dfeebce405e2eba6319e05750f30 Mon Sep 17 00:00:00 2001 From: yangws <1607839436@qq.com> Date: Fri, 16 Aug 2024 14:33:46 +0800 Subject: [PATCH 01/13] =?UTF-8?q?fix:=E8=AF=BE=E4=BB=B6=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=9A=84;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/views/classBegins/index.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/views/classBegins/index.vue b/src/renderer/src/views/classBegins/index.vue index 5876c9c..a0f8d07 100644 --- a/src/renderer/src/views/classBegins/index.vue +++ b/src/renderer/src/views/classBegins/index.vue @@ -99,10 +99,10 @@ const switchPageMode = () => { pdfCanvaslist.value.initPdf('rest') } } -onMounted(async () => { +onMounted(async () => { toolState.isPdfWin=true //设置打开pdf窗口 - // pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 - pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 + pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 + // pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 textbookId.value = route.query.textbookId pdfObj.bookId=textbookId.value //初始化获取接口数据 @@ -164,4 +164,4 @@ const getUniqueArrayByLastOccurrence=(array)=> { } } } - \ No newline at end of file + From e3e704d95d83241c2cef2274a37e1f642038b747 Mon Sep 17 00:00:00 2001 From: zdg Date: Fri, 16 Aug 2024 16:41:05 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/plugins/imChat/index.js | 5 ++++- src/renderer/src/views/tool/sphere.vue | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/plugins/imChat/index.js b/src/renderer/src/plugins/imChat/index.js index 4257f69..60d1a92 100644 --- a/src/renderer/src/plugins/imChat/index.js +++ b/src/renderer/src/plugins/imChat/index.js @@ -74,7 +74,9 @@ export class ImChat { try { if(!API) reject('preload api获取失败, 初始化-未完成') this.timChat = await API.getTimRender() - await this.timChat.TIMInit() + await this.timChat.TIMInit({ + // electron_log:true, + }) console.log('[im-chat]:初始化成功') this.status.isConnect = true this.setConfig() // 设置日志级别 @@ -150,6 +152,7 @@ export class ImChat { return this.timChat.TIMLogout().then(res => { console.log('登出成功', res) this.status.isLogin = false + this.timChat.TIMUninit() // 反初始化 return res }).catch(error => { console.log('登出失败', error) diff --git a/src/renderer/src/views/tool/sphere.vue b/src/renderer/src/views/tool/sphere.vue index 7b018d9..b910e37 100644 --- a/src/renderer/src/views/tool/sphere.vue +++ b/src/renderer/src/views/tool/sphere.vue @@ -88,12 +88,13 @@ onMounted(async() => { const getClassInfo = async () => { const { data } = await classManageApi.getClassInfo(classObj.id) classObj.data = data + // console.log('classObj:', classObj) if(!data.ex3 || data.ex3 == 'undefined') { // 无群直接创建 await imChatRef.value.imChatObj.imChat.createGroup(data.className) const timGroupId = imChatRef.value.imChatObj.imChat.timGroupId classManageApi.startClass(classObj.id, timGroupId) // 开始上课 } else { // 已创建群 - // console.log('已创建群: ', data.ex3) + console.log('已创建群: ', data.ex3) imChatRef.value.imChatObj.imChat.timGroupId = data.ex3 // imChatRef.value.imChatObj.imChat.setGroupMsgReceive(data.ex3) } @@ -181,16 +182,16 @@ const sideChange = async o => { }).then(async() => { await imChatRef.value?.imChatObj?.imChat?.sendMsgClosed() // 发送下课消息 // const elMsg = ElMessage.warning({duration:0,message:'正在下课...'}) - const elMsg = ElLoading.service({lock: true, text: '正在下课...', background: 'rgba(0, 0, 0, 0.7)'}) + // const elMsg = ElLoading.service({lock: true, text: '正在下课...', background: 'rgba(0, 0, 0, 0.7)'}) // 延迟2秒后关闭窗口,如果马上解散群,会导致群组不存在 setTimeout(async() => { - elMsg.close() + // elMsg.close() toolStore.isToolWin = false await classManageApi.endClass(route.query.reservId) await imChatRef.value?.deleteGroup() // 解散群 await imChatRef.value?.logout() // 退出im ipcMsgSend('tool-sphere:close') // 关闭窗口 - }, 2000); + }, 200); // isOver.value = false // setIgnore(true) // 开启窗口鼠标-穿透 From 631fcf38f7ec04c20a2ccc0b7b448aeb5484fdd5 Mon Sep 17 00:00:00 2001 From: zdg Date: Fri, 16 Aug 2024 17:07:06 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/chat.js | 2 +- src/main/index.js | 7 +++---- src/preload/index.js | 4 ++-- src/renderer/src/views/tool/sphere.vue | 5 +++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/chat.js b/src/main/chat.js index b6700f2..21bf021 100644 --- a/src/main/chat.js +++ b/src/main/chat.js @@ -3,7 +3,7 @@ */ // import { ipcMain } from 'electron' // const TimMain = require('im_electron_sdk/dist/main') -import TimMain from 'im_electron_sdk/dist/main' +// import TimMain from 'im_electron_sdk/dist/main' // import {TIMErrCode} from 'im_electron_sdk/dist/enumbers' const sdkappidDef = 1600034736 // 可以去腾讯云即时通信IM控制台申请 diff --git a/src/main/index.js b/src/main/index.js index aff4dde..3f74810 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -3,7 +3,7 @@ import { join } from 'path' import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' import File from './file' -import chat from './chat' // chat封装 +// import chat from './chat' // chat封装 // 代理 electron/remote // 第一步:引入remote import remote from '@electron/remote/main' @@ -230,15 +230,14 @@ app.on('window-all-closed', () => { // 监听全局事件 function handleAll() { - // chat.initialize() // im-chat 实例 - const chatInstance = chat.initialize() // im-chat 实例 + // const chatInstance = chat.initialize() // im-chat 实例 // 新窗口创建-监听 ipcMain.on('new-window', (e, data) => { const { id, type } = data const win = BrowserWindow.fromId(id) win.type = type // 绑定独立标识 remote.enable(win.webContents) // 开启远程服务 - chatInstance.enable(win.webContents) // 开启im-chat + // chatInstance.enable(win.webContents) // 开启im-chat }) // 用于监听-状态管理变化-同步所有窗口 ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => { diff --git a/src/preload/index.js b/src/preload/index.js index ffdb7a0..a840ca5 100644 --- a/src/preload/index.js +++ b/src/preload/index.js @@ -1,10 +1,10 @@ import { contextBridge } from 'electron' import { electronAPI } from '@electron-toolkit/preload' -import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例 +// import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例 // Custom APIs for renderer const api = { preloadPath: __dirname, // 当前preload地址 - getTimRender: () => new TimRender(), // im渲染部分实例 + // getTimRender: () => new TimRender(), // im渲染部分实例 } // Use `contextBridge` APIs to expose Electron APIs to // renderer only if context isolation is enabled, otherwise diff --git a/src/renderer/src/views/tool/sphere.vue b/src/renderer/src/views/tool/sphere.vue index b910e37..f6443ac 100644 --- a/src/renderer/src/views/tool/sphere.vue +++ b/src/renderer/src/views/tool/sphere.vue @@ -10,7 +10,7 @@ - +
@@ -78,7 +78,8 @@ const btnList = [ // 工具栏按钮列表 // === 页面加载完毕 === onMounted(async() => { setTimeout(() => { - getClassInfo() // 获取课堂详情 ex3 + classManageApi.startClass(classObj.id) // 开始上课-临时 + // getClassInfo() // 获取课堂详情 ex3 resetStatus() // 开启重置状态-监听 }, 200); }) From 56483a9a4937a9ab1c870a35bf8e4ed678ace525 Mon Sep 17 00:00:00 2001 From: zhangxuelin <959231531@qq.com> Date: Fri, 16 Aug 2024 17:33:27 +0800 Subject: [PATCH 04/13] =?UTF-8?q?shareStore=E7=8A=B6=E6=80=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/plugins/shareStore.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/plugins/shareStore.js b/src/renderer/src/plugins/shareStore.js index 5b34244..31060a8 100644 --- a/src/renderer/src/plugins/shareStore.js +++ b/src/renderer/src/plugins/shareStore.js @@ -13,12 +13,14 @@ export function shareStorePlugin({store}) { // 在存储变化的时候执行 // const storeName = store.$id // const storeName = mutation.storeId - const { storeId: storeName, payload, events, type } = mutation // direct - // if (!Object.keys(payload).length) return - if (type != 'direct') return // 用于多窗口共享(需要共享的状态名称) const names = ['tool'] - if (names.includes(storeName)) stateSync(storeName, events.key, events.newValue) // 需要同步 + if (names.includes(storeName)) { + const { storeId: storeName, payload, events, type } = mutation // direct + // if (!Object.keys(payload).length) return + if (type != 'direct' || !events || Array.isArray(events) || !events.key) return + stateSync(storeName, events.key, events.newValue) // 需要同步 + } }) // 暴露方法-手动同步 store.stateSync = (storeName, key, value) => { From 49c4c7245abc3f33be66a4c313085eae4d664e4b Mon Sep 17 00:00:00 2001 From: zdg Date: Mon, 19 Aug 2024 14:21:42 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=89=93=E5=8C=85chat-im?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron-builder.yml | 5 + src/main/chat.js | 2 +- src/main/index.js | 6 +- src/preload/index.js | 4 +- src/renderer/src/plugins/imChat/imLiseners.js | 420 ++++++++++++++++++ src/renderer/src/plugins/imChat/index.js | 67 +-- .../lib-generate-test-usersig-es.min.js | 2 - src/renderer/src/plugins/imChat/userSig.js | 44 -- src/renderer/src/plugins/shareStore.js | 16 +- src/renderer/src/utils/tool.js | 22 +- .../src/views/tool/components/imChat.vue | 60 ++- src/renderer/src/views/tool/sphere.vue | 35 +- 12 files changed, 557 insertions(+), 126 deletions(-) create mode 100644 src/renderer/src/plugins/imChat/imLiseners.js delete mode 100644 src/renderer/src/plugins/imChat/lib-generate-test-usersig-es.min.js delete mode 100644 src/renderer/src/plugins/imChat/userSig.js diff --git a/electron-builder.yml b/electron-builder.yml index 911fb1c..6854d9d 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -13,6 +13,11 @@ asarUnpack: win: executableName: AIx icon: resources/logo2.ico + extraFiles: + - from: ./node_modules/im_electron_sdk/lib/ + - to: ./resources + - filter: + - '**/*' nsis: oneClick: false allowToChangeInstallationDirectory: true diff --git a/src/main/chat.js b/src/main/chat.js index 21bf021..b6700f2 100644 --- a/src/main/chat.js +++ b/src/main/chat.js @@ -3,7 +3,7 @@ */ // import { ipcMain } from 'electron' // const TimMain = require('im_electron_sdk/dist/main') -// import TimMain from 'im_electron_sdk/dist/main' +import TimMain from 'im_electron_sdk/dist/main' // import {TIMErrCode} from 'im_electron_sdk/dist/enumbers' const sdkappidDef = 1600034736 // 可以去腾讯云即时通信IM控制台申请 diff --git a/src/main/index.js b/src/main/index.js index 3f74810..da96c0b 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -3,7 +3,7 @@ import { join } from 'path' import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' import File from './file' -// import chat from './chat' // chat封装 +import chat from './chat' // chat封装 // 代理 electron/remote // 第一步:引入remote import remote from '@electron/remote/main' @@ -230,14 +230,14 @@ app.on('window-all-closed', () => { // 监听全局事件 function handleAll() { - // const chatInstance = chat.initialize() // im-chat 实例 + const chatInstance = chat.initialize() // im-chat 实例 // 新窗口创建-监听 ipcMain.on('new-window', (e, data) => { const { id, type } = data const win = BrowserWindow.fromId(id) win.type = type // 绑定独立标识 remote.enable(win.webContents) // 开启远程服务 - // chatInstance.enable(win.webContents) // 开启im-chat + chatInstance.enable(win.webContents) // 开启im-chat }) // 用于监听-状态管理变化-同步所有窗口 ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => { diff --git a/src/preload/index.js b/src/preload/index.js index a840ca5..ffdb7a0 100644 --- a/src/preload/index.js +++ b/src/preload/index.js @@ -1,10 +1,10 @@ import { contextBridge } from 'electron' import { electronAPI } from '@electron-toolkit/preload' -// import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例 +import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例 // Custom APIs for renderer const api = { preloadPath: __dirname, // 当前preload地址 - // getTimRender: () => new TimRender(), // im渲染部分实例 + getTimRender: () => new TimRender(), // im渲染部分实例 } // Use `contextBridge` APIs to expose Electron APIs to // renderer only if context isolation is enabled, otherwise diff --git a/src/renderer/src/plugins/imChat/imLiseners.js b/src/renderer/src/plugins/imChat/imLiseners.js new file mode 100644 index 0000000..d80bb7e --- /dev/null +++ b/src/renderer/src/plugins/imChat/imLiseners.js @@ -0,0 +1,420 @@ +/** + * @description im 事件监听 + * @author zdg + * @date 2023-07-07 + */ +// @ts-ignore +const API = window?.api || {} +const timRenderInstance = API.getTimRender() + +// im 事件监听 +export class IMListeners { + // 初始化监听 + static initListeners(callback) { + /** + * 注销消息监听事件 + */ + timRenderInstance.TIMRemoveRecvNewMsgCallback() + /** + * @brief 增加接收新消息回调 + * @param cb 新消息回调函数,请参考[TIMRecvNewMsgCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 如果用户是登录状态,ImSDK收到新消息会通过此接口设置的回调抛出,另外需要注意,抛出的消息不一定是未读的消息, + * 只是本地曾经没有过的消息(例如在另外一个终端已读,拉取最近联系人消息时可以获取会话最后一条消息,如果本地没有,会通过此方法抛出)。 + * 在用户登录之后,ImSDK会拉取离线消息,为了不漏掉消息通知,需要在登录之前注册新消息通知。 + */ + timRenderInstance.TIMAddRecvNewMsgCallback({ + callback:(args)=>{ + callback({ + type: 'TIMAddRecvNewMsgCallback', + data: JSON.parse(args[0]) + }) + }, + user_data: "test" + }) + + + /** + * @brief 1.3 设置消息已读回执回调 + * @param cb 消息已读回执回调,请参考[TIMMsgReadedReceiptCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 发送方发送消息,接收方调用接口[TIMMsgReportReaded]()上报该消息已读,发送方ImSDK会通过此接口设置的回调抛出。 + */ + timRenderInstance.TIMSetMsgReadedReceiptCallback({ + callback:(args)=>{ + callback({ + type: 'TIMSetMsgReadedReceiptCallback', + data: JSON.parse(args[0]) + }) + }, + user_data: "test" + }) + + + /** + * @brief 1.4 设置接收的消息被撤回回调 + * @param cb 消息撤回通知回调,请参考[TIMMsgRevokeCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 发送方发送消息,接收方收到消息。此时发送方调用接口[TIMMsgRevoke]()撤回该消息,接收方的ImSDK会通过此接口设置的回调抛出。 + */ + timRenderInstance.TIMSetMsgRevokeCallback({ + callback:(args)=>{ + callback({ + type: 'TIMSetMsgRevokeCallback', + data: JSON.parse(args[0]) + }); + }, + user_data: "test" + }) + + + + /** + * @brief 1.5 设置消息内元素相关文件上传进度回调 + * @param cb 文件上传进度回调,请参考[TIMMsgElemUploadProgressCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 设置消息元素上传进度回调。当消息内包含图片、声音、文件、视频元素时,ImSDK会上传这些文件,并触发此接口设置的回调,用户可以根据回调感知上传的进度 + */ + timRenderInstance.TIMSetMsgElemUploadProgressCallback({ + callback:(args)=>{ + try{ + const [message, index, cur_size, total_size, user_data] = JSON.parse(args) + callback({ + type: 'TIMSetMsgElemUploadProgressCallback', + data: { + message: JSON.parse(message), + index, + cur_size, + total_size, + user_data + } + }) + }catch(err){ + throw err; + } + }, + user_data: "test" + }) + + /** + * @brief 1.6 设置群组系统消息回调 + * @param cb 群消息回调,请参考[TIMGroupTipsEventCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的 + */ + timRenderInstance.TIMSetGroupTipsEventCallback({ + callback:(args)=>{ + callback({ + type: 'TIMSetGroupTipsEventCallback', + data: JSON.parse(args[0]) + }) + }, + }) + + + /** + * @brief 1.7 设置群组属性变更回调 + * @param cb 群组属性变更回调,请参考[TIMGroupAttributeChangedCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 某个已加入的群的属性被修改了,会返回所在群组的所有属性(该群所有的成员都能收到) + */ + timRenderInstance.TIMSetGroupAttributeChangedCallback({ + callback: (...args) => {callback({ type: 'TIMSetGroupAttributeChangedCallback', data: args })}, + userData: "" + }) + + + + /** + * @brief 1.8 设置会话事件回调 + * @param cb 会话事件回调,请参考[TIMConvEventCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * > 会话事件包括: + * >> 会话新增 + * >> 会话删除 + * >> 会话更新。 + * >> 会话开始 + * >> 会话结束 + * > 任何产生一个新会话的操作都会触发会话新增事件,例如调用接口[TIMConvCreate]()创建会话,接收到未知会话的第一条消息等。 + * 任何已有会话变化的操作都会触发会话更新事件,例如收到会话新消息,消息撤回,已读上报等。 + * 调用接口[TIMConvDelete]()删除会话成功时会触发会话删除事件。 + */ + timRenderInstance.TIMSetConvEventCallback({ + callback:(args)=>{ + callback({ + type: 'TIMSetConvEventCallback', + data: { + type:args[0], + data:args[1]!=="" ? JSON.parse(args[1]) : [] + } + }) + }, + user_data:"TIMSetConvEventCallback" + }) + + /** + * @brief 1.9 设置会话未读消息总数变更的回调 + * @param cb 会话未读消息总数变更的回调,请参考[TIMConvTotalUnreadMessageCountChangedCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + */ + timRenderInstance.TIMSetConvTotalUnreadMessageCountChangedCallback({ + callback:(args)=>{ + callback({ + type: 'TIMSetConvTotalUnreadMessageCountChangedCallback', + data: args[0] + }) + } + }) + + + /** + * @brief 1.10 设置网络连接状态监听回调 + * @param cb 连接事件回调,请参考[TIMNetworkStatusListenerCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * > 当调用接口 [TIMInit]() 时,ImSDK会去连接云后台。此接口设置的回调用于监听网络连接的状态。 + * > 网络连接状态包含四个:正在连接、连接失败、连接成功、已连接。这里的网络事件不表示用户本地网络状态,仅指明ImSDK是否与即时通信IM云Server连接状态。 + * > 可选设置,如果要用户感知是否已经连接服务器,需要设置此回调,用于通知调用者跟通讯后台链接的连接和断开事件,另外,如果断开网络,等网络恢复后会自动重连,自动拉取消息通知用户,用户无需关心网络状态,仅作通知之用 + * > 只要用户处于登录状态,ImSDK内部会进行断网重连,用户无需关心。 + */ + timRenderInstance.TIMSetNetworkStatusListenerCallback({ + callback: (...args) => {callback({ type: 'TIMSetNetworkStatusListenerCallback', data: args })}, + userData: "" + }) + + /** + * @brief 1.11 设置被踢下线通知回调 + * @param cb 踢下线回调,请参考[TIMKickedOfflineCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * > 用户如果在其他终端登录,会被踢下线,这时会收到用户被踢下线的通知,出现这种情况常规的做法是提示用户进行操作(退出,或者再次把对方踢下线)。 + * > 用户如果在离线状态下被踢,下次登录将会失败,可以给用户一个非常强的提醒(登录错误码ERR_IMSDK_KICKED_BY_OTHERS:6208),开发者也可以选择忽略这次错误,再次登录即可。 + * > 用户在线情况下的互踢情况: + * + 用户在设备1登录,保持在线状态下,该用户又在设备2登录,这时用户会在设备1上强制下线,收到 TIMKickedOfflineCallback 回调。 + * 用户在设备1上收到回调后,提示用户,可继续调用login上线,强制设备2下线。这里是在线情况下互踢过程。 + * > 用户离线状态互踢: + * + 用户在设备1登录,没有进行logout情况下进程退出。该用户在设备2登录,此时由于用户不在线,无法感知此事件, + * 为了显式提醒用户,避免无感知的互踢,用户在设备1重新登录时,会返回(ERR_IMSDK_KICKED_BY_OTHERS:6208)错误码,表明之前被踢,是否需要把对方踢下线。 + * 如果需要,则再次调用login强制上线,设备2的登录的实例将会收到 TIMKickedOfflineCallback 回调。 + */ + timRenderInstance.TIMSetKickedOfflineCallback({ + callback: (...args) => { + callback({ + type: 'TIMSetKickedOfflineCallback', + data: args + }); + }, + userData: "" + }) + + + /** + * @brief 1.12 设置票据过期回调 + * @param cb 票据过期回调,请参考[TIMUserSigExpiredCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 用户票据,可能会存在过期的情况,如果用户票据过期,此接口设置的回调会调用。 + * [TIMLogin]()也将会返回70001错误码。开发者可根据错误码或者票据过期回调进行票据更换 + */ + timRenderInstance.TIMSetUserSigExpiredCallback({ + callback: (...args) => {callback({ type: 'TIMSetUserSigExpiredCallback', data: args })}, + userData: "" + }) + + + /** + * @brief 1.13 设置添加好友的回调 + * @param cb 添加好友回调,请参考[TIMOnAddFriendCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 此回调为了多终端同步。例如A设备、B设备都登录了同一帐号的ImSDK,A设备添加了好友,B设备ImSDK会收到添加好友的推送,ImSDK通过此回调告知开发者。 + */ + timRenderInstance.TIMSetOnAddFriendCallback({ + callback: (...args) => { + console.log('=====添加好友=====', args) + callback({ type: 'TIMSetOnAddFriendCallback', data: args }) + }, + userData: "" + }) + + + /** + * @brief 1.14 设置删除好友的回调 + * @param cb 删除好友回调,请参考[TIMOnDeleteFriendCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 此回调为了多终端同步。例如A设备、B设备都登录了同一帐号的ImSDK,A设备删除了好友,B设备ImSDK会收到删除好友的推送,ImSDK通过此回调告知开发者。 + */ + timRenderInstance.TIMSetOnDeleteFriendCallback({ + callback: (...args) => {callback({ type: 'TIMSetOnDeleteFriendCallback', data: args })}, + userData: "" + }) + + /** + * @brief 1.15 设置更新好友资料的回调 + * @param cb 更新好友资料回调,请参考[TIMUpdateFriendProfileCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 此回调为了多终端同步。例如A设备、B设备都登录了同一帐号的ImSDK,A设备更新了好友资料,B设备ImSDK会收到更新好友资料的推送,ImSDK通过此回调告知开发者。 + */ + timRenderInstance.TIMSetUpdateFriendProfileCallback({ + callback: (...args) => {callback({ type: 'TIMSetUpdateFriendProfileCallback', data: args })}, + userData: "" + }) + + + /** + * @brief 1.16 设置好友添加请求的回调 + * @param cb 好友添加请求回调,请参考[TIMFriendAddRequestCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 当前登入用户设置添加好友需要确认时,如果有用户请求加当前登入用户为好友,会收到好友添加请求的回调,ImSDK通过此回调告知开发者。如果多终端登入同一帐号,每个终端都会收到这个回调。 + */ + timRenderInstance.TIMSetFriendAddRequestCallback({ + callback: (...args) => { + console.log('=====添加好友请求=====', JSON.parse(args[0][0])); + callback({ + type: 'TIMSetFriendAddRequestCallback', + data: JSON.parse(args[0][0]) + }) + }, + userData: "" + }) + + + /** + * @brief 1.17 设置好友申请删除的回调 + * @param cb 好友申请删除回调,请参考[TIMFriendApplicationListDeletedCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 1. 主动删除好友申请 + * 2. 拒绝好友申请 + * 3. 同意好友申请 + * 4. 申请加别人好友被拒绝 + */ + timRenderInstance.TIMSetFriendApplicationListDeletedCallback({ + callback: (...args) => {callback({ type: 'TIMSetFriendApplicationListDeletedCallback', data: args })}, + userData: "" + }) + + /** + * @brief 1.18 设置好友申请已读的回调 + * @param cb 好友申请已读回调,请参考[TIMFriendApplicationListReadCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * 如果调用 setFriendApplicationRead 设置好友申请列表已读,会收到这个回调(主要用于多端同步) + */ + + timRenderInstance.TIMSetFriendApplicationListReadCallback({ + callback: (...args) => {callback({ type: 'TIMSetFriendApplicationListReadCallback', data: args })}, + userData: "" + }) + + + /** + * @brief 1.19 设置黑名单新增的回调 + * @param cb 黑名单新增的回调,请参考[TIMFriendBlackListAddedCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + */ + timRenderInstance.TIMSetFriendBlackListAddedCallback({ + callback: (...args) => {callback({ type: 'TIMSetFriendBlackListAddedCallback', data: args })}, + userData: "" + }) + + /** + * @brief 1.20 设置黑名单删除的回调 + * @param cb 黑名单删除的回调,请参考[TIMFriendBlackListDeletedCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + */ + timRenderInstance.TIMSetFriendBlackListDeletedCallback({ + callback: (...args) => {callback({ type: 'TIMSetFriendBlackListDeletedCallback', data: args })}, + userData: "" + }) + + + /** + * @brief 1.22 设置消息在云端被修改后回传回来的消息更新通知回调 + * @param cb 消息更新回调,请参考[TIMMsgUpdateCallback](TIMCloudCallback.h) + * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 + * + * @note + * > 当您发送的消息在服务端被修改后,ImSDK会通过该回调通知给您 + * > 您可以在您自己的服务器上拦截所有即时通信IM消息 [发单聊消息之前回调](https://cloud.tencent.com/document/product/269/1632) + * > 设置成功之后,即时通信IM服务器会将您的用户发送的每条消息都同步地通知给您的业务服务器。 + * > 您的业务服务器可以对该条消息进行修改(例如过滤敏感词),如果您的服务器对消息进行了修改,ImSDK就会通过此回调通知您。 + */ + timRenderInstance.TIMSetMsgUpdateCallback({ + callback: (...args) => {callback({ type: 'TIMSetMsgUpdateCallback', data: args })}, + userData: "" + }) + timRenderInstance.TIMOnInvited({ + callback:(data)=>{ + callback({ + type: 'TIMOnInvited', + data: data + }) + } + }) + timRenderInstance.TIMOnRejected({ + callback:(data)=>{ + callback({ + type: 'TIMOnRejected', + data: data + }) + } + }) + timRenderInstance.TIMOnAccepted({ + callback:(data)=>{ + callback({ + type: 'TIMOnAccepted', + data: data + }) + } + }) + timRenderInstance.TIMOnCancelled({ + callback:(data)=>{ + callback({ + type: 'TIMOnCancelled', + data: data + }) + } + }) + + timRenderInstance.TIMOnTimeout({ + callback:(data)=>{ + callback({ + type: 'TIMOnTimeout', + data: data + }) + } + }) + } +} + +export default { timRenderInstance, initListeners: IMListeners.initListeners } \ No newline at end of file diff --git a/src/renderer/src/plugins/imChat/index.js b/src/renderer/src/plugins/imChat/index.js index 60d1a92..dac2ef7 100644 --- a/src/renderer/src/plugins/imChat/index.js +++ b/src/renderer/src/plugins/imChat/index.js @@ -8,6 +8,7 @@ // const TimRender = require('im_electron_sdk/dist/render') import * as TYPES from './enumbers' // sdk相关枚举 import MsgEnum from './msgEnum' // 消息相关枚举(自定义) +import IMListeners from './imLiseners' // im消息-监听器 const API = window.api // TIM生成签名 // import * as GenerateUserSig from './userSig' // 引入签名生成器 @@ -73,14 +74,18 @@ export class ImChat { return new Promise(async(resolve, reject) => { try { if(!API) reject('preload api获取失败, 初始化-未完成') - this.timChat = await API.getTimRender() - await this.timChat.TIMInit({ - // electron_log:true, - }) - console.log('[im-chat]:初始化成功') - this.status.isConnect = true - this.setConfig() // 设置日志级别 - resolve(this) + // this.timChat = await API.getTimRender() + this.timChat = IMListeners.timRenderInstance + const code = await this.timChat.TIMInit() + if (code == 0) { // 初始化成功 + this.setConsole('%cim-chat: init', '初始化成功') + this.status.isConnect = true + this.setConfig() // 设置日志级别 + resolve(this) + } else { // 失败:具体请看code + console.error('[im-chat]:初始化失败', code) + reject(code) + } } catch (error) {reject(error)} }) } @@ -96,21 +101,27 @@ export class ImChat { } // 监听 watch(callback) { - // 先移除监听 - this.timChat.TIMRemoveRecvNewMsgCallback() - // 消息监听 - this.timChat.TIMAddRecvNewMsgCallback({ - callback, user_data: this.toStr('msg') - }) - // 群消息监听 - // 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的 - this.timChat.TIMSetGroupTipsEventCallback({ - // callback, user_data: this.toStr('msg-group') - callback: (data) => { - // console.log('群消息', group_tips_event) - this.setConsole('%c群消息', data) - }, - }) + // // 先移除监听 + // this.timChat.TIMRemoveRecvNewMsgCallback() + // // 消息监听 + // this.timChat.TIMAddRecvNewMsgCallback({ + // callback, user_data: this.toStr('msg') + // }) + // // 群消息监听 + // // 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的 + // this.timChat.TIMSetGroupTipsEventCallback({ + // // callback, user_data: this.toStr('msg-group') + // callback: (data) => { + // // console.log('群消息', group_tips_event) + // this.setConsole('%c群消息', data) + // }, + // }) + if (this.timChat && this.status.isConnect) { // 连接成功允许监听 + this.setConsole('%cim-chat: watch', '监听成功') + IMListeners.initListeners(callback) + } else { + this.setConsole('%cim-chat: watch', '监听失败, 未连接') + } } // 登录 login() { @@ -127,18 +138,19 @@ export class ImChat { const res = await this.timChat.TIMLogin(option) if (res && res.code == 0) { // console.log('登录成功', res) + this.setConsole('%cim-chat: login', '登录成功') this.status.isLogin = true resolve({status:0, msg:'登录成功', data:res}) } else reject(res) } else { if (status == 1) { // 已登录 - console.log('已登录') + this.setConsole('%cim-chat: login', '已登录') resolve({status, msg:'已登录'}) } else if (status == 2) { // 登录中 - console.log('登录中') + this.setConsole('%cim-chat: login', '登录中') resolve({status, msg:'登录中'}) } else if (status == 4) { // 登出中 - console.log('登出中') + this.setConsole('%cim-chat: login', '登出中') resolve({status, msg:'登出中'}) } } @@ -189,9 +201,10 @@ export class ImChat { // @TGS#3XVNI6ZOG return this.timChat.TIMGroupCreate(option).then(res => { if (res && res.code == 0) { + this.setConsole('%c创建群组成功', res) const timGroupId = res?.json_param?.create_group_result_groupid if (!!timGroupId && timGroupId != 'undefined'){ - this.setConsole('%c创建群组成功', timGroupId) + // this.setConsole('%c创建群组成功', timGroupId) this.timGroupId = timGroupId // this.setGroupMsgReceive() } diff --git a/src/renderer/src/plugins/imChat/lib-generate-test-usersig-es.min.js b/src/renderer/src/plugins/imChat/lib-generate-test-usersig-es.min.js deleted file mode 100644 index b01b70b..0000000 --- a/src/renderer/src/plugins/imChat/lib-generate-test-usersig-es.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*eslint-disable*/ -var e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t=[],r=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,i=!1;function o(){i=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,o=e.length;n>18&63]+t[o>>12&63]+t[o>>6&63]+t[63&o]);return a.join("")}function s(e){var r;i||o();for(var n=e.length,s=n%3,h="",l=[],f=0,c=n-s;fc?c:f+16383));return 1===s?(r=e[n-1],h+=t[r>>2],h+=t[r<<4&63],h+="=="):2===s&&(r=(e[n-2]<<8)+e[n-1],h+=t[r>>10],h+=t[r>>4&63],h+=t[r<<2&63],h+="="),l.push(h),l.join("")}function h(e,t,r,n,i){var o,a,s=8*i-n-1,h=(1<>1,f=-7,c=r?i-1:0,u=r?-1:1,d=e[t+c];for(c+=u,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+e[t+c],c+=u,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+e[t+c],c+=u,f-=8);if(0===o)o=1-l;else{if(o===h)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=l}return(d?-1:1)*a*Math.pow(2,o-n)}function l(e,t,r,n,i,o){var a,s,h,l=8*o-i-1,f=(1<>1,u=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-a))<1&&(a--,h*=2),(t+=a+c>=1?u/h:u*Math.pow(2,1-c))*h>=2&&(a++,h/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*h-1)*Math.pow(2,i),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;e[r+d]=255&a,d+=p,a/=256,l-=8);e[r+d-p]|=128*_}var f={}.toString,c=Array.isArray||function(e){return"[object Array]"==f.call(e)};function u(){return p.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function d(e,t){if(u()=u())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u().toString(16)+" bytes");return 0|e}function y(e){return!(null==e||!e._isBuffer)}function m(e,t){if(y(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return q(e).length;t=(""+t).toLowerCase(),n=!0}}function k(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return M(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function E(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function S(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=p.from(t,n)),y(t))return 0===t.length?-1:x(e,t,r,n,i);if("number"==typeof t)return t&=255,p.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function x(e,t,r,n,i){var o,a=1,s=e.length,h=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,h/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var f=-1;for(o=r;os&&(r=s-h),o=r;o>=0;o--){for(var c=!0,u=0;ui&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function M(e,t,r){return 0===t&&r===e.length?s(e):s(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+c<=r)switch(c){case 1:l<128&&(f=l);break;case 2:128==(192&(o=e[i+1]))&&(h=(31&l)<<6|63&o)>127&&(f=h);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(h=(15&l)<<12|(63&o)<<6|63&a)>2047&&(h<55296||h>57343)&&(f=h);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(h=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&h<1114112&&(f=h)}null===f?(f=65533,c=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=c}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},p.prototype.compare=function(e,t,r,n,i){if(!y(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),h=this.slice(n,i),l=e.slice(t,r),f=0;fi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return R(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return B(this,e,t,r);case"latin1":case"binary":return z(this,e,t,r);case"base64":return L(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function I(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function F(e,t,r,n,i,o){if(!y(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function Z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function j(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function W(e,t,r,n,i){return i||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function Y(e,t,r,n,i){return i||j(e,0,r,8),l(e,t,r,n,52,8),r+8}p.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},p.prototype.readUInt8=function(e,t){return t||H(e,1,this.length),this[e]},p.prototype.readUInt16LE=function(e,t){return t||H(e,2,this.length),this[e]|this[e+1]<<8},p.prototype.readUInt16BE=function(e,t){return t||H(e,2,this.length),this[e]<<8|this[e+1]},p.prototype.readUInt32LE=function(e,t){return t||H(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},p.prototype.readUInt32BE=function(e,t){return t||H(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},p.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},p.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},p.prototype.readInt8=function(e,t){return t||H(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},p.prototype.readInt16LE=function(e,t){t||H(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(e,t){t||H(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(e,t){return t||H(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},p.prototype.readInt32BE=function(e,t){return t||H(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},p.prototype.readFloatLE=function(e,t){return t||H(e,4,this.length),h(this,e,!0,23,4)},p.prototype.readFloatBE=function(e,t){return t||H(e,4,this.length),h(this,e,!1,23,4)},p.prototype.readDoubleLE=function(e,t){return t||H(e,8,this.length),h(this,e,!0,52,8)},p.prototype.readDoubleBE=function(e,t){return t||H(e,8,this.length),h(this,e,!1,52,8)},p.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},p.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,255,0),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},p.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Z(this,e,t,!0),t+4},p.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},p.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},p.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,127,-128),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},p.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Z(this,e,t,!0),t+4},p.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeFloatLE=function(e,t,r){return W(this,e,t,!0,r)},p.prototype.writeFloatBE=function(e,t,r){return W(this,e,t,!1,r)},p.prototype.writeDoubleLE=function(e,t,r){return Y(this,e,t,!0,r)},p.prototype.writeDoubleBE=function(e,t,r){return Y(this,e,t,!1,r)},p.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!p.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function V(e){return function(e){var t,a,s,h,l,f;i||o();var c=e.length;if(c%4>0)throw new Error("Invalid string. Length must be a multiple of 4");l="="===e[c-2]?2:"="===e[c-1]?1:0,f=new n(3*c/4-l),s=l>0?c-4:c;var u=0;for(t=0,a=0;t>16&255,f[u++]=h>>8&255,f[u++]=255&h;return 2===l?(h=r[e.charCodeAt(t)]<<2|r[e.charCodeAt(t+1)]>>4,f[u++]=255&h):1===l&&(h=r[e.charCodeAt(t)]<<10|r[e.charCodeAt(t+1)]<<4|r[e.charCodeAt(t+2)]>>2,f[u++]=h>>8&255,f[u++]=255&h),f}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function $(e){return null!=e&&(!!e._isBuffer||J(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&J(e.slice(0,0))}(e))}function J(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Q(e,t){return e(t={exports:{}},t.exports),t.exports}var ee=Q(function(e,t){var r;e.exports=(r=r||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(var o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){var t=t,r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(r,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(r,t)}},f=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},c=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,s=4*o,h=i/s,l=(h=t?e.ceil(h):e.max((0|h)-this._minBufferSize,0))*o,f=e.min(4*l,i);if(l){for(var c=0;c>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),r.lib.WordArray)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.WordArray,n=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},n.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var r=e.length,n=[],o=0;o>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*r)}}}(),r.enc.Utf16)}),Q(function(e,t){var r,n,i;e.exports=(i=(n=r=ee).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var h=n.charAt(64);if(h)for(;i.length%4;)i.push(h);return i.join("")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-a%4*2;n[o>>>2]|=(s|h)<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],h=e[t+1],d=e[t+2],p=e[t+3],_=e[t+4],g=e[t+5],v=e[t+6],w=e[t+7],b=e[t+8],y=e[t+9],m=e[t+10],k=e[t+11],E=e[t+12],S=e[t+13],x=e[t+14],R=e[t+15],A=o[0],B=o[1],z=o[2],L=o[3];A=l(A,B,z,L,a,7,s[0]),L=l(L,A,B,z,h,12,s[1]),z=l(z,L,A,B,d,17,s[2]),B=l(B,z,L,A,p,22,s[3]),A=l(A,B,z,L,_,7,s[4]),L=l(L,A,B,z,g,12,s[5]),z=l(z,L,A,B,v,17,s[6]),B=l(B,z,L,A,w,22,s[7]),A=l(A,B,z,L,b,7,s[8]),L=l(L,A,B,z,y,12,s[9]),z=l(z,L,A,B,m,17,s[10]),B=l(B,z,L,A,k,22,s[11]),A=l(A,B,z,L,E,7,s[12]),L=l(L,A,B,z,S,12,s[13]),z=l(z,L,A,B,x,17,s[14]),A=f(A,B=l(B,z,L,A,R,22,s[15]),z,L,h,5,s[16]),L=f(L,A,B,z,v,9,s[17]),z=f(z,L,A,B,k,14,s[18]),B=f(B,z,L,A,a,20,s[19]),A=f(A,B,z,L,g,5,s[20]),L=f(L,A,B,z,m,9,s[21]),z=f(z,L,A,B,R,14,s[22]),B=f(B,z,L,A,_,20,s[23]),A=f(A,B,z,L,y,5,s[24]),L=f(L,A,B,z,x,9,s[25]),z=f(z,L,A,B,p,14,s[26]),B=f(B,z,L,A,b,20,s[27]),A=f(A,B,z,L,S,5,s[28]),L=f(L,A,B,z,d,9,s[29]),z=f(z,L,A,B,w,14,s[30]),A=c(A,B=f(B,z,L,A,E,20,s[31]),z,L,g,4,s[32]),L=c(L,A,B,z,b,11,s[33]),z=c(z,L,A,B,k,16,s[34]),B=c(B,z,L,A,x,23,s[35]),A=c(A,B,z,L,h,4,s[36]),L=c(L,A,B,z,_,11,s[37]),z=c(z,L,A,B,w,16,s[38]),B=c(B,z,L,A,m,23,s[39]),A=c(A,B,z,L,S,4,s[40]),L=c(L,A,B,z,a,11,s[41]),z=c(z,L,A,B,p,16,s[42]),B=c(B,z,L,A,v,23,s[43]),A=c(A,B,z,L,y,4,s[44]),L=c(L,A,B,z,E,11,s[45]),z=c(z,L,A,B,R,16,s[46]),A=u(A,B=c(B,z,L,A,d,23,s[47]),z,L,a,6,s[48]),L=u(L,A,B,z,w,10,s[49]),z=u(z,L,A,B,x,15,s[50]),B=u(B,z,L,A,g,21,s[51]),A=u(A,B,z,L,E,6,s[52]),L=u(L,A,B,z,p,10,s[53]),z=u(z,L,A,B,m,15,s[54]),B=u(B,z,L,A,h,21,s[55]),A=u(A,B,z,L,b,6,s[56]),L=u(L,A,B,z,R,10,s[57]),z=u(z,L,A,B,v,15,s[58]),B=u(B,z,L,A,S,21,s[59]),A=u(A,B,z,L,_,6,s[60]),L=u(L,A,B,z,k,10,s[61]),z=u(z,L,A,B,d,15,s[62]),B=u(B,z,L,A,y,21,s[63]),o[0]=o[0]+A|0,o[1]=o[1]+B|0,o[2]=o[2]+z|0,o[3]=o[3]+L|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),a=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,h=s.words,l=0;l<4;l++){var f=h[l];h[l]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+i+a;return(s<>>32-o)+t}function f(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+i+a;return(s<>>32-o)+t}function c(e,t,r,n,i,o,a){var s=e+(t^r^n)+i+a;return(s<>>32-o)+t}function u(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+i+a;return(s<>>32-o)+t}t.MD5=o._createHelper(h),t.HmacMD5=o._createHmacHelper(h)}(Math),r.MD5)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).lib,o=i.WordArray,a=i.Hasher,s=n.algo,h=[],l=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],l=0;l<80;l++){if(l<16)h[l]=0|e[t+l];else{var f=h[l-3]^h[l-8]^h[l-14]^h[l-16];h[l]=f<<1|f>>>31}var c=(n<<5|n>>>27)+s+h[l];c+=l<20?1518500249+(i&o|~i&a):l<40?1859775393+(i^o^a):l<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=n,n=c}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(l),n.HmacSHA1=a._createHmacHelper(l),r.SHA1)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[],h=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,i=0;i<64;)t(n)&&(i<8&&(s[i]=r(e.pow(n,.5))),h[i]=r(e.pow(n,1/3)),i++),n++}();var l=[],f=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=0;d<64;d++){if(d<16)l[d]=0|e[t+d];else{var p=l[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[d-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[d]=_+l[d-7]+v+l[d-16]}var w=n&i^n&o^i&o,b=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),y=u+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&f^~s&c)+h[d]+l[d];u=c,c=f,f=s,s=a+y|0,a=o,o=i,i=n,n=y+(b+w)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=e.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(f),t.HmacSHA256=o._createHmacHelper(f)}(Math),r.SHA256)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(i=(n=r=ee).lib.WordArray,o=n.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),r.SHA224)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.Hasher,n=e.x64,i=n.Word,o=n.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var h=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var f=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=n.high,p=n.low,_=i.high,g=i.low,v=o.high,w=o.low,b=a.high,y=a.low,m=s.high,k=s.low,E=f.high,S=f.low,x=c.high,R=c.low,A=u.high,B=u.low,z=d,L=p,T=_,M=g,C=v,D=w,I=b,P=y,O=m,U=k,H=E,F=S,N=x,Z=R,j=A,W=B,Y=0;Y<80;Y++){var K=l[Y];if(Y<16)var X=K.high=0|e[t+2*Y],q=K.low=0|e[t+2*Y+1];else{var V=l[Y-15],G=V.high,$=V.low,J=(G>>>1|$<<31)^(G>>>8|$<<24)^G>>>7,Q=($>>>1|G<<31)^($>>>8|G<<24)^($>>>7|G<<25),ee=l[Y-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,ie=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),oe=l[Y-7],ae=oe.high,se=oe.low,he=l[Y-16],le=he.high,fe=he.low;X=(X=(X=J+ae+((q=Q+se)>>>0>>0?1:0))+ne+((q+=ie)>>>0>>0?1:0))+le+((q+=fe)>>>0>>0?1:0),K.high=X,K.low=q}var ce,ue=O&H^~O&N,de=U&F^~U&Z,pe=z&T^z&C^T&C,_e=L&M^L&D^M&D,ge=(z>>>28|L<<4)^(z<<30|L>>>2)^(z<<25|L>>>7),ve=(L>>>28|z<<4)^(L<<30|z>>>2)^(L<<25|z>>>7),we=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),be=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),ye=h[Y],me=ye.high,ke=ye.low,Ee=j+we+((ce=W+be)>>>0>>0?1:0),Se=ve+_e;j=N,W=Z,N=H,Z=F,H=O,F=U,O=I+(Ee=(Ee=(Ee=Ee+ue+((ce+=de)>>>0>>0?1:0))+me+((ce+=ke)>>>0>>0?1:0))+X+((ce+=q)>>>0>>0?1:0))+((U=P+ce|0)>>>0

>>0?1:0)|0,I=C,P=D,C=T,D=M,T=z,M=L,z=Ee+(ge+pe+(Se>>>0>>0?1:0))+((L=ce+Se|0)>>>0>>0?1:0)|0}p=n.low=p+L,n.high=d+z+(p>>>0>>0?1:0),g=i.low=g+M,i.high=_+T+(g>>>0>>0?1:0),w=o.low=w+D,o.high=v+C+(w>>>0>>0?1:0),y=a.low=y+P,a.high=b+I+(y>>>0

>>0?1:0),k=s.low=k+U,s.high=m+O+(k>>>0>>0?1:0),S=f.low=S+F,f.high=E+H+(S>>>0>>0?1:0),R=c.low=R+Z,c.high=x+N+(R>>>0>>0?1:0),B=u.low=B+W,u.high=A+j+(B>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(f),e.HmacSHA512=t._createHmacHelper(f)}(),r.SHA512)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).x64,o=i.Word,a=i.WordArray,s=n.algo,h=s.SHA512,l=s.SHA384=h.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=h._createHelper(l),n.HmacSHA384=h._createHmacHelper(l),r.SHA384)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.x64.Word,s=t.algo,h=[],l=[],f=[];!function(){for(var e=1,t=0,r=0;r<24;r++){h[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,c=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(B=r[i]).high^=a,B.low^=o}for(var s=0;s<24;s++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(B=r[u+5*_]).high,p^=B.low;var g=c[u];g.high=d,g.low=p}for(u=0;u<5;u++){var v=c[(u+4)%5],w=c[(u+1)%5],b=w.high,y=w.low;for(d=v.high^(b<<1|y>>>31),p=v.low^(y<<1|b>>>31),_=0;_<5;_++)(B=r[u+5*_]).high^=d,B.low^=p}for(var m=1;m<25;m++){var k=(B=r[m]).high,E=B.low,S=h[m];S<32?(d=k<>>32-S,p=E<>>32-S):(d=E<>>64-S,p=k<>>64-S);var x=c[l[m]];x.high=d,x.low=p}var R=c[0],A=r[0];for(R.high=A.high,R.low=A.low,u=0;u<5;u++)for(_=0;_<5;_++){var B=r[m=u+5*_],z=c[m],L=c[(u+1)%5+5*_],T=c[(u+2)%5+5*_];B.high=z.high^~L.high&T.high,B.low=z.low^~L.low&T.low}B=r[0];var M=f[s];B.high^=M.high,B.low^=M.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,h=s/8,l=[],f=0;f>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=o._createHelper(u),t.HmacSHA3=o._createHmacHelper(u)}(Math),r.SHA3)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=i.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]),h=i.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]),l=i.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]),f=i.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]),c=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,d,y,m,k,E,S,x,R,A,B=this._hash.words,z=c.words,L=u.words,T=s.words,M=h.words,C=l.words,D=f.words;for(k=o=B[0],E=a=B[1],S=d=B[2],x=y=B[3],R=m=B[4],r=0;r<80;r+=1)A=o+e[t+T[r]]|0,A+=r<16?p(a,d,y)+z[0]:r<32?_(a,d,y)+z[1]:r<48?g(a,d,y)+z[2]:r<64?v(a,d,y)+z[3]:w(a,d,y)+z[4],A=(A=b(A|=0,C[r]))+m|0,o=m,m=y,y=b(d,10),d=a,a=A,A=k+e[t+M[r]]|0,A+=r<16?w(E,S,x)+L[0]:r<32?v(E,S,x)+L[1]:r<48?g(E,S,x)+L[2]:r<64?_(E,S,x)+L[3]:p(E,S,x)+L[4],A=(A=b(A|=0,D[r]))+R|0,k=R,R=x,x=b(S,10),S=E,E=A;A=B[1]+d+x|0,B[1]=B[2]+y+R|0,B[2]=B[3]+m+k|0,B[3]=B[4]+o+E|0,B[4]=B[0]+a+S|0,B[0]=A},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function _(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function v(e,t,r){return e&r|t&~r}function w(e,t,r){return e^(t|~r)}function b(e,t){return e<>>32-t}t.RIPEMD160=o._createHelper(d),t.HmacRIPEMD160=o._createHmacHelper(d)}(),r.RIPEMD160)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(n=(r=ee).lib,i=n.Base,o=r.enc,a=o.Utf8,s=r.algo,void(s.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=a.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,h=o.words,l=0;l>>2];e.sigBytes-=t}},o.BlockCipher=d.extend({cfg:d.cfg.extend({mode:g,padding:w}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{var n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,t&&t.words):(this._mode=n.call(r,this,t&&t.words),this._mode.__creator=n)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),b=o.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=i.format={},m=y.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var n=s.create([1398893684,1701076831]).concat(r).concat(t);else var n=t;return n.toString(f)},parse:function(e){var t=f.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var n=s.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return b.create({ciphertext:t,salt:n})}},k=o.SerializableCipher=a.extend({cfg:a.extend({format:m}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),o=i.finalize(t),a=i.cfg;return b.create({ciphertext:o,key:r,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=e.createDecryptor(r,n).finalize(t.ciphertext);return i},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),E=i.kdf={},S=E.OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=u.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,b.create({key:i,iv:o,salt:n})}},x=o.PasswordBasedCipher=k.extend({cfg:k.cfg.extend({kdf:S}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var o=k.encrypt.call(this,e,t,i.key,n);return o.mixIn(i),o},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);n.iv=i.iv;var o=k.decrypt.call(this,e,t,i.key,n);return o}})))}),Q(function(e,t){var r;e.exports=((r=ee).mode.CFB=function(){var e=r.lib.BlockCipherMode.extend();function t(e,t,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var a=0;a>24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}var n=e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),function(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}(a);var s=a.slice(0);n.encryptBlock(s,0);for(var h=0;h>>2]|=i<<24-o%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Ansix923)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso10126={pad:function(e,t){var n=4*t,i=n-e.sigBytes%n;e.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Iso10126)}),Q(function(e,t){var r;e.exports=((r=ee).pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971)}),Q(function(e,t){var r;e.exports=((r=ee).pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){for(var t=e.words,r=e.sigBytes-1;!(t[r>>>2]>>>24-r%4*8&255);)r--;e.sigBytes=r+1}},r.pad.ZeroPadding)}),Q(function(e,t){var r;e.exports=((r=ee).pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)}),Q(function(e,t){var r,n,i,o;e.exports=(i=(n=r=ee).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(o)},parse:function(e){var t=o.parse(e);return i.create({ciphertext:t})}},r.format.Hex)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],o=[],a=[],s=[],h=[],l=[],f=[],c=[],u=[],d=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var _=e[r],g=e[_],v=e[g],w=257*e[p]^16843008*p;a[r]=w<<24|w>>>8,s[r]=w<<16|w>>>16,h[r]=w<<8|w>>>24,l[r]=w,w=16843009*v^65537*g^257*_^16843008*r,f[p]=w<<24|w>>>8,c[p]=w<<16|w>>>16,u[p]=w<<8|w>>>24,d[p]=w,r?(r=_^e[e[e[v^_]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],a=0;a6&&a%r==4&&(s=i[s>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=p[a/r|0]<<24),o[a]=o[a-r]^s}for(var h=this._invKeySchedule=[],l=0;l>>24]]^c[i[s>>>16&255]]^u[i[s>>>8&255]]^d[i[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,h,l,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,f,c,u,d,o),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,o,a,s){for(var h=this._nRounds,l=e[t]^r[0],f=e[t+1]^r[1],c=e[t+2]^r[2],u=e[t+3]^r[3],d=4,p=1;p>>24]^i[f>>>16&255]^o[c>>>8&255]^a[255&u]^r[d++],g=n[f>>>24]^i[c>>>16&255]^o[u>>>8&255]^a[255&l]^r[d++],v=n[c>>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&f]^r[d++],w=n[u>>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&c]^r[d++];l=_,f=g,c=v,u=w}_=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^r[d++],g=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^r[d++],v=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^r[d++],w=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^r[d++],e[t]=_,e[t+1]=g,e[t+2]=v,e[t+3]=w},keySize:8});e.AES=t._createHelper(_)}(),r.AES)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib,n=t.WordArray,i=t.BlockCipher,o=e.algo,a=[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],s=[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],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],c=o.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=a[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var l=i[o]=[],f=h[o];for(r=0;r<24;r++)l[r/6|0]|=t[(s[r]-1+f)%28]<<31-r%6,l[4+(r/6|0)]|=t[28+(s[r+24]-1+f)%28]<<31-r%6;for(l[0]=l[0]<<1|l[0]>>>31,r=1;r<7;r++)l[r]=l[r]>>>4*(r-1)+3;l[7]=l[7]<<5|l[7]>>>27}var c=this._invSubKeys=[];for(r=0;r<16;r++)c[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,a=this._rBlock,s=0,h=0;h<8;h++)s|=l[h][((a^i[h])&f[h])>>>0];this._lBlock=a,this._rBlock=o^s}var c=this._lBlock;this._lBlock=this._rBlock,this._rBlock=c,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<>>2]>>>24-a%4*8&255;o=(o+n[i]+s)%256;var h=n[i];n[i]=n[o],n[o]=h}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var o=e[t];e[t]=e[r],e[r]=o,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)o.call(this)}});e.RC4Drop=t._createHelper(a)}(),r.RC4)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)h.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(i[0]^=l,i[1]^=c,i[2]^=f,i[3]^=u,i[4]^=l,i[5]^=c,i[6]^=f,i[7]^=u,r=0;r<4;r++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(s)}(),r.Rabbit)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)h.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var o=t.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=l>>>16|4294901760&f,u=f<<16|65535&l;for(n[0]^=l,n[1]^=c,n[2]^=f,n[3]^=u,n[4]^=l,n[5]^=c,n[6]^=f,n[7]^=u,i=0;i<4;i++)h.call(this)}},_doProcessBlock:function(e,t){var r=this._X;h.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function h(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,h=((i*i>>>17)+i*s>>>15)+s*s,l=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=h^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(s)}(),r.RabbitLegacy)}),Q(function(e,t){e.exports=ee}));function re(){throw new Error("setTimeout has not been defined")}function ne(){throw new Error("clearTimeout has not been defined")}var ie=re,oe=ne;function ae(e){if(ie===setTimeout)return setTimeout(e,0);if((ie===re||!ie)&&setTimeout)return ie=setTimeout,setTimeout(e,0);try{return ie(e,0)}catch(t){try{return ie.call(null,e,0)}catch(t){return ie.call(this,e,0)}}}"function"==typeof e.setTimeout&&(ie=setTimeout),"function"==typeof e.clearTimeout&&(oe=clearTimeout);var se,he=[],le=!1,fe=-1;function ce(){le&&se&&(le=!1,se.length?he=se.concat(he):fe=-1,he.length&&ue())}function ue(){if(!le){var e=ae(ce);le=!0;for(var t=he.length;t;){for(se=he,he=[];++fe1)for(var r=1;r0&&a.length>i){a.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=t,h.count=a.length,s=h,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function xe(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function Re(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Ae(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}ge.prototype=Object.create(null),ve.EventEmitter=ve,ve.usingDomains=!1,ve.prototype.domain=void 0,ve.prototype._events=void 0,ve.prototype._maxListeners=void 0,ve.defaultMaxListeners=10,ve.init=function(){this.domain=null,ve.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new ge,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ve.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},ve.prototype.getMaxListeners=function(){return we(this)},ve.prototype.emit=function(e){var t,r,n,i,o,a,s,h="error"===e;if(a=this._events)h=h&&null==a.error;else if(!h)return!1;if(s=this.domain,h){if(t=arguments[1],!s){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:be(r,f,this);break;case 2:ye(r,f,this,arguments[1]);break;case 3:me(r,f,this,arguments[1],arguments[2]);break;case 4:ke(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new ge,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var Be="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},ze=/%[sdj%]/g;function Le(e){if(!Ze(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fe(t)?r.showHidden=t:t&&function(e,t){if(!t||!Ye(t))return e;var r=Object.keys(t),n=r.length;for(;n--;)e[r[n]]=t[r[n]]}(r,t),je(r.showHidden)&&(r.showHidden=!1),je(r.depth)&&(r.depth=2),je(r.colors)&&(r.colors=!1),je(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Ie),Oe(r,e,r.depth)}function Ie(e,t){var r=De.styles[t];return r?"["+De.colors[r][0]+"m"+e+"["+De.colors[r][1]+"m":e}function Pe(e,t){return e}function Oe(e,t,r){if(e.customInspect&&t&&qe(t.inspect)&&t.inspect!==De&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Ze(n)||(n=Oe(e,n,r)),n}var i=function(e,t){if(je(t))return e.stylize("undefined","undefined");if(Ze(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(n=t,"number"==typeof n)return e.stylize(""+t,"number");var n;if(Fe(t))return e.stylize(""+t,"boolean");if(Ne(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Xe(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return Ue(t);if(0===o.length){if(qe(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(We(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Ke(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Xe(t))return Ue(t)}var h,l,f="",c=!1,u=["{","}"];(h=t,Array.isArray(h)&&(c=!0,u=["[","]"]),qe(t))&&(f=" [Function"+(t.name?": "+t.name:"")+"]");return We(t)&&(f=" "+RegExp.prototype.toString.call(t)),Ke(t)&&(f=" "+Date.prototype.toUTCString.call(t)),Xe(t)&&(f=" "+Ue(t)),0!==o.length||c&&0!=t.length?r<0?We(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=c?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,f,u)):u[0]+f+u[1]}function Ue(e){return"["+Error.prototype.toString.call(e)+"]"}function He(e,t,r,n,i,o){var a,s,h;if((h=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=h.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):h.set&&(s=e.stylize("[Setter]","special")),Ge(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(h.value)<0?(s=Ne(r)?Oe(e,h.value,null):Oe(e,h.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n")):s=e.stylize("[Circular]","special")),je(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Fe(e){return"boolean"==typeof e}function Ne(e){return null===e}function Ze(e){return"string"==typeof e}function je(e){return void 0===e}function We(e){return Ye(e)&&"[object RegExp]"===Ve(e)}function Ye(e){return"object"==typeof e&&null!==e}function Ke(e){return Ye(e)&&"[object Date]"===Ve(e)}function Xe(e){return Ye(e)&&("[object Error]"===Ve(e)||e instanceof Error)}function qe(e){return"function"==typeof e}function Ve(e){return Object.prototype.toString.call(e)}function Ge(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function $e(){this.head=null,this.tail=null,this.length=0}De.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},De.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},$e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},$e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},$e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},$e.prototype.clear=function(){this.head=this.tail=null,this.length=0},$e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},$e.prototype.concat=function(e){if(0===this.length)return p.alloc(0);if(1===this.length)return this.head.data;for(var t=p.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Je=p.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Qe(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Je(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=tt;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=rt;break;default:return void(this.write=et)}this.charBuffer=new p(6),this.charReceived=0,this.charLength=0}function et(e){return e.toString(this.encoding)}function tt(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function rt(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Qe.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived);var i;n=(t+=e.toString(this.encoding,0,n)).length-1;if((i=t.charCodeAt(n))>=55296&&i<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,n)}return t},Qe.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Qe.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t},ot.ReadableState=it;var nt=function(e){je(Me)&&(Me=""),e=e.toUpperCase(),Ce[e]||(new RegExp("\\b"+e+"\\b","i").test(Me)?Ce[e]=function(){var t=Le.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:Ce[e]=function(){});return Ce[e]}("stream");function it(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Ct&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new $e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Qe(e.encoding),this.encoding=e.encoding)}function ot(e){if(!(this instanceof ot))return new ot(e);this._readableState=new it(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),ve.call(this)}function at(e,t,r,n,i){var o=function(e,t){var r=null;$(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,lt(e)}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var h;!t.decoder||i||n||(r=t.decoder.write(r),h=!t.objectMode&&0===r.length),i||(t.reading=!1),h||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&<(e))),function(e,t){t.readingMore||(t.readingMore=!0,de(ct,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=st?e=st:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function lt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(nt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?de(ft,e):ft(e))}function ft(e){nt("emit readable"),e.emit("readable"),pt(e)}function ct(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=p.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function gt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,de(vt,t,e))}function vt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function wt(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return nt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?gt(this):lt(this),null;if(0===(e=ht(e,t))&&t.ended)return 0===t.length&>(this),null;var n,i=t.needReadable;return nt("need readable",i),(0===t.length||t.length-e0?_t(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&>(this)),null!==n&&this.emit("data",n),n},ot.prototype._read=function(e){this.emit("error",new Error("not implemented"))},ot.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,nt("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||!1!==t.end?a:l;function o(e){nt("onunpipe"),e===r&&l()}function a(){nt("onend"),e.end()}n.endEmitted?de(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;nt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,pt(e))}}(r);e.on("drain",s);var h=!1;function l(){nt("cleanup"),e.removeListener("close",d),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",l),r.removeListener("data",c),h=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var f=!1;function c(t){nt("ondata"),f=!1,!1!==e.write(t)||f||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==wt(n.pipes,e))&&!h&&(nt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function u(t){var r;nt("onerror",t),_(),e.removeListener("error",u),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function d(){e.removeListener("finish",p),_()}function p(){nt("onfinish"),e.removeListener("close",d),_()}function _(){nt("unpipe"),r.unpipe(e)}return r.on("data",c),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",u),e.once("close",d),e.once("finish",p),e.emit("pipe",r),n.flowing||(nt("pipe resume"),r.resume()),e},ot.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},kt.prototype._write=function(e,t,r){r(new Error("not implemented"))},kt.prototype._writev=null,kt.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Bt(e,t),r&&(t.finished?de(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Be(Ct,ot);for(var Lt=Object.keys(kt.prototype),Tt=0;Tt=0;)e[t]=0}var Jt=0,Qt=1,er=2,tr=29,rr=256,nr=rr+1+tr,ir=30,or=19,ar=2*nr+1,sr=15,hr=16,lr=7,fr=256,cr=16,ur=17,dr=18,pr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],_r=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],gr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],vr=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],wr=new Array(2*(nr+2));$t(wr);var br=new Array(2*ir);$t(br);var yr=new Array(512);$t(yr);var mr=new Array(256);$t(mr);var kr=new Array(tr);$t(kr);var Er,Sr,xr,Rr=new Array(ir);function Ar(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function Br(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function zr(e){return e<256?yr[e]:yr[256+(e>>>7)]}function Lr(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function Tr(e,t,r){e.bi_valid>hr-r?(e.bi_buf|=t<>hr-e.bi_valid,e.bi_valid+=r-hr):(e.bi_buf|=t<>>=1,r<<=1}while(--t>0);return r>>>1}function Dr(e,t,r){var n,i,o=new Array(sr+1),a=0;for(n=1;n<=sr;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=Cr(o[s]++,s))}}function Ir(e){var t;for(t=0;t8?Lr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Or(e,t,r,n){var i=2*t,o=2*r;return e[i]>1;r>=1;r--)Ur(e,o,r);i=h;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ur(e,o,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,o[2*i]=o[2*r]+o[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,o[2*r+1]=o[2*n+1]=i,e.heap[1]=i++,Ur(e,o,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,o,a,s,h=t.dyn_tree,l=t.max_code,f=t.stat_desc.static_tree,c=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,_=0;for(o=0;o<=sr;o++)e.bl_count[o]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;rp&&(o=p,_++),h[2*n+1]=o,n>l||(e.bl_count[o]++,a=0,n>=d&&(a=u[n-d]),s=h[2*n],e.opt_len+=s*(o+a),c&&(e.static_len+=s*(f[2*n+1]+a)));if(0!==_){do{for(o=p-1;0===e.bl_count[o];)o--;e.bl_count[o]--,e.bl_count[o+1]+=2,e.bl_count[p]--,_-=2}while(_>0);for(o=p;0!==o;o--)for(n=e.bl_count[o];0!==n;)(i=e.heap[--r])>l||(h[2*i+1]!==o&&(e.opt_len+=(o-h[2*i+1])*h[2*i],h[2*i+1]=o),n--)}}(e,t),Dr(o,l,e.bl_count)}function Nr(e,t,r){var n,i,o=-1,a=t[1],s=0,h=7,l=4;for(0===a&&(h=138,l=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++s>=7;n=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Xr(e,t,r,n){var i,o,a=0;e.level>0?(e.strm.data_type===Gt&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return qt;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Vt;for(t=32;t=3&&0===e.bl_tree[2*vr[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(o=e.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?Yr(e,t,r,n):e.strategy===Xt||o===i?(Tr(e,(Qt<<1)+(n?1:0),3),Hr(e,wr,br)):(Tr(e,(er<<1)+(n?1:0),3),function(e,t,r,n){var i;for(Tr(e,t-257,5),Tr(e,r-1,5),Tr(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(mr[r]+rr+1)]++,e.dyn_dtree[2*zr(t)]++),e.last_lit===e.lit_bufsize-1}function Vr(e,t,r,n){for(var i=65535&e|0,o=e>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{o=o+(i=i+t[n++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}var Gr=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function $r(e,t,r,n){var i=Gr,o=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}var Jr,Qr=0,en=1,tn=3,rn=4,nn=5,on=0,an=1,sn=-2,hn=-3,ln=-5,fn=-1,cn=1,un=2,dn=3,pn=4,_n=2,gn=8,vn=9,wn=286,bn=30,yn=19,mn=2*wn+1,kn=15,En=3,Sn=258,xn=Sn+En+1,Rn=32,An=42,Bn=69,zn=73,Ln=91,Tn=103,Mn=113,Cn=666,Dn=1,In=2,Pn=3,On=4,Un=3;function Hn(e,t){return e.msg=Nt[t],t}function Fn(e){return(e<<1)-(e>4?9:0)}function Nn(e){for(var t=e.length;--t>=0;)e[t]=0}function Zn(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(jt(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function jn(e,t){Xr(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Zn(e.strm)}function Wn(e,t){e.pending_buf[e.pending++]=t}function Yn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function Kn(e,t){var r,n,i=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match,h=e.strstart>e.w_size-xn?e.strstart-(e.w_size-xn):0,l=e.window,f=e.w_mask,c=e.prev,u=e.strstart+Sn,d=l[o+a-1],p=l[o+a];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(l[(r=t)+a]===p&&l[r+a-1]===d&&l[r]===l[o]&&l[++r]===l[o+1]){o+=2,r++;do{}while(l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&oa){if(e.match_start=t,a=n,n>=s)break;d=l[o+a-1],p=l[o+a]}}}while((t=c[t&f])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function Xn(e){var t,r,n,i,o,a,s,h,l,f,c=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=c+(c-xn)){jt(e.window,e.window,c,c,0),e.match_start-=c,e.strstart-=c,e.block_start-=c,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=c?n-c:0}while(--r);t=r=c;do{n=e.prev[--t],e.prev[t]=n>=c?n-c:0}while(--r);i+=c}if(0===e.strm.avail_in)break;if(a=e.strm,s=e.window,h=e.strstart+e.lookahead,l=i,f=void 0,(f=a.avail_in)>l&&(f=l),r=0===f?0:(a.avail_in-=f,jt(s,a.input,a.next_in,f,h),1===a.state.wrap?a.adler=Vr(a.adler,s,f,h):2===a.state.wrap&&(a.adler=$r(a.adler,s,f,h)),a.next_in+=f,a.total_in+=f,f),e.lookahead+=r,e.lookahead+e.insert>=En)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<=En)if(n=qr(e,e.strstart-e.match_start,e.match_length-En),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=En){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=En&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=En-1)),e.prev_length>=En&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-En,n=qr(e,e.strstart-1-e.prev_match,e.prev_length-En),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<nn||t<0)return e?Hn(e,sn):sn;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===Cn&&t!==rn)return Hn(e,0===e.avail_out?ln:sn);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===An)if(2===n.wrap)e.adler=0,Wn(n,31),Wn(n,139),Wn(n,8),n.gzhead?(Wn(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Wn(n,255&n.gzhead.time),Wn(n,n.gzhead.time>>8&255),Wn(n,n.gzhead.time>>16&255),Wn(n,n.gzhead.time>>24&255),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Wn(n,255&n.gzhead.extra.length),Wn(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=$r(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Bn):(Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,0),Wn(n,9===n.level?2:n.strategy>=un||n.level<2?4:0),Wn(n,Un),n.status=Mn);else{var a=gn+(n.w_bits-8<<4)<<8;a|=(n.strategy>=un||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=Rn),a+=31-a%31,n.status=Mn,Yn(n,a),0!==n.strstart&&(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),e.adler=1}if(n.status===Bn)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending!==n.pending_buf_size));)Wn(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=zn)}else n.status=zn;if(n.status===zn)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.gzindex=0,n.status=Ln)}else n.status=Ln;if(n.status===Ln)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),Zn(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindexi&&(e.adler=$r(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.status=Tn)}else n.status=Tn;if(n.status===Tn&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Zn(e),n.pending+2<=n.pending_buf_size&&(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),e.adler=0,n.status=Mn)):n.status=Mn),0!==n.pending){if(Zn(e),0===e.avail_out)return n.last_flush=-1,on}else if(0===e.avail_in&&Fn(t)<=Fn(r)&&t!==rn)return Hn(e,ln);if(n.status===Cn&&0!==e.avail_in)return Hn(e,ln);if(0!==e.avail_in||0!==n.lookahead||t!==Qr&&n.status!==Cn){var s=n.strategy===un?function(e,t){for(var r;;){if(0===e.lookahead&&(Xn(e),0===e.lookahead)){if(t===Qr)return Dn;break}if(e.match_length=0,r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):n.strategy===dn?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=Sn){if(Xn(e),e.lookahead<=Sn&&t===Qr)return Dn;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=En&&e.strstart>0&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){o=e.strstart+Sn;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=En?(r=qr(e,1,e.match_length-En),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):e.last_lit&&(jn(e,!1),0===e.strm.avail_out)?Dn:In}(n,t):Jr[n.level].func(n,t);if(s!==Pn&&s!==On||(n.status=Cn),s===Dn||s===Pn)return 0===e.avail_out&&(n.last_flush=-1),on;if(s===In&&(t===en?Kr(n):t!==nn&&(Yr(n,0,0,!1),t===tn&&(Nn(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Zn(e),0===e.avail_out))return n.last_flush=-1,on}return t!==rn?on:n.wrap<=0?an:(2===n.wrap?(Wn(n,255&e.adler),Wn(n,e.adler>>8&255),Wn(n,e.adler>>16&255),Wn(n,e.adler>>24&255),Wn(n,255&e.total_in),Wn(n,e.total_in>>8&255),Wn(n,e.total_in>>16&255),Wn(n,e.total_in>>24&255)):(Yn(n,e.adler>>>16),Yn(n,65535&e.adler)),Zn(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?on:an)}Jr=[new Gn(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Xn(e),0===e.lookahead&&t===Qr)return Dn;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,jn(e,!1),0===e.strm.avail_out))return Dn;if(e.strstart-e.block_start>=e.w_size-xn&&(jn(e,!1),0===e.strm.avail_out))return Dn}return e.insert=0,t===rn?(jn(e,!0),0===e.strm.avail_out?Pn:On):(e.strstart>e.block_start&&(jn(e,!1),e.strm.avail_out),Dn)}),new Gn(4,4,8,4,qn),new Gn(4,5,16,8,qn),new Gn(4,6,32,32,qn),new Gn(4,4,16,16,Vn),new Gn(8,16,32,32,Vn),new Gn(8,16,128,128,Vn),new Gn(8,32,128,256,Vn),new Gn(32,128,258,1024,Vn),new Gn(32,258,258,4096,Vn)];var ei=30,ti=12;function ri(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R;r=e.state,n=e.next_in,x=e.input,i=n+(e.avail_in-5),o=e.next_out,R=e.output,a=o-(t-e.avail_out),s=o+(e.avail_out-257),h=r.dmax,l=r.wsize,f=r.whave,c=r.wnext,u=r.window,d=r.hold,p=r.bits,_=r.lencode,g=r.distcode,v=(1<>>=y=b>>>24,p-=y,0===(y=b>>>16&255))R[o++]=65535&b;else{if(!(16&y)){if(0==(64&y)){b=_[(65535&b)+(d&(1<>>=y,p-=y),p<15&&(d+=x[n++]<>>=y=b>>>24,p-=y,!(16&(y=b>>>16&255))){if(0==(64&y)){b=g[(65535&b)+(d&(1<h){e.msg="invalid distance too far back",r.mode=ei;break e}if(d>>>=y,p-=y,k>(y=o-a)){if((y=k-y)>f&&r.sane){e.msg="invalid distance too far back",r.mode=ei;break e}if(E=0,S=u,0===c){if(E+=l-y,y2;)R[o++]=S[E++],R[o++]=S[E++],R[o++]=S[E++],m-=3;m&&(R[o++]=S[E++],m>1&&(R[o++]=S[E++]))}else{E=o-k;do{R[o++]=R[E++],R[o++]=R[E++],R[o++]=R[E++],m-=3}while(m>2);m&&(R[o++]=R[E++],m>1&&(R[o++]=R[E++]))}break}}break}}while(n>3,d&=(1<<(p-=m<<3))-1,e.next_in=n,e.next_out=o,e.avail_in=n=1&&0===L[m];m--);if(k>m&&(k=m),0===m)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(y=1;y0&&(e===ai||1!==m))return-1;for(T[1]=0,w=1;wii||e===hi&&R>oi)return 1;for(;;){p=w-S,a[b]d?(_=M[C+a[b]],g=B[z+a[b]]):(_=96,g=0),h=1<>S)+(l-=h)]=p<<24|_<<16|g|0}while(0!==l);for(h=1<>=1;if(0!==h?(A&=h-1,A+=h):A=0,b++,0==--L[w]){if(w===m)break;w=t[r+a[b]]}if(w>k&&(A&c)!==f){for(0===S&&(S=k),u+=y,x=1<<(E=w-S);E+Sii||e===hi&&R>oi)return 1;i[f=A&c]=k<<24|E<<16|u-o|0}}return 0!==A&&(i[u+A]=w-S<<24|64<<16|0),s.bits=k,0}var pi=0,_i=1,gi=2,vi=4,wi=5,bi=6,yi=0,mi=1,ki=2,Ei=-2,Si=-3,xi=-4,Ri=-5,Ai=8,Bi=1,zi=2,Li=3,Ti=4,Mi=5,Ci=6,Di=7,Ii=8,Pi=9,Oi=10,Ui=11,Hi=12,Fi=13,Ni=14,Zi=15,ji=16,Wi=17,Yi=18,Ki=19,Xi=20,qi=21,Vi=22,Gi=23,$i=24,Ji=25,Qi=26,eo=27,to=28,ro=29,no=30,io=31,oo=32,ao=852,so=592;function ho(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function lo(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yt(320),this.work=new Yt(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function fo(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Bi,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Kt(ao),t.distcode=t.distdyn=new Kt(so),t.sane=1,t.back=-1,yi):Ei}(e)):Ei}function co(e,t){var r,n;return e?(n=new lo,e.state=n,n.window=null,(r=function(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Ei:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,fo(e))):Ei}(e,t))!==yi&&(e.state=null),r):Ei}var uo,po,_o=!0;function go(e){if(_o){var t;for(uo=new Kt(512),po=new Kt(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(di(_i,e.lens,0,288,uo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;di(gi,e.lens,0,32,po,0,e.work,{bits:5}),_o=!1}e.lencode=uo,e.lenbits=9,e.distcode=po,e.distbits=5}function vo(e,t){var r,n,i,o,a,s,h,l,f,c,u,d,p,_,g,v,w,b,y,m,k,E,S,x,R=0,A=new Wt(4),B=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Ei;(r=e.state).mode===Hi&&(r.mode=Fi),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,c=s,u=h,E=yi;e:for(;;)switch(r.mode){case Bi:if(0===r.wrap){r.mode=Fi;break}for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0),l=0,f=0,r.mode=zi;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=no;break}if((15&l)!==Ai){e.msg="unknown compression method",r.mode=no;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=no;break}r.dmax=1<>8&1),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Li;case Li:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,r.check=$r(r.check,A,4,0)),l=0,f=0,r.mode=Ti;case Ti:for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&r.flags&&(A[0]=255&l,A[1]=l>>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0,r.mode=Mi;case Mi:if(1024&r.flags){for(;f<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=$r(r.check,A,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=Ci;case Ci:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),jt(r.head.extra,n,o,d,k)),512&r.flags&&(r.check=$r(r.check,n,d,o)),s-=d,o+=d,r.length-=d),r.length))break e;r.length=0,r.mode=Di;case Di:if(2048&r.flags){if(0===s)break e;d=0;do{k=n[o+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Hi;break;case Oi:for(;f<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&f,f-=7&f,r.mode=eo;break}for(;f<3;){if(0===s)break e;s--,l+=n[o++]<>>=1)){case 0:r.mode=Ni;break;case 1:if(go(r),r.mode=Xi,t===bi){l>>>=2,f-=2;break e}break;case 2:r.mode=Wi;break;case 3:e.msg="invalid block type",r.mode=no}l>>>=2,f-=2;break;case Ni:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=no;break}if(r.length=65535&l,l=0,f=0,r.mode=Zi,t===bi)break e;case Zi:r.mode=ji;case ji:if(d=r.length){if(d>s&&(d=s),d>h&&(d=h),0===d)break e;jt(i,n,o,d,a),s-=d,o+=d,h-=d,a+=d,r.length-=d;break}r.mode=Hi;break;case Wi:for(;f<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=no;break}r.have=0,r.mode=Yi;case Yi:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[B[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},E=di(pi,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid code lengths set",r.mode=no;break}r.have=0,r.mode=Ki;case Ki:for(;r.have>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=g,f-=g,r.lens[r.have++]=w;else{if(16===w){for(x=g+2;f>>=g,f-=g,0===r.have){e.msg="invalid bit length repeat",r.mode=no;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===w){for(x=g+3;f>>=g)),l>>>=3,f-=3}else{for(x=g+7;f>>=g)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=no;break}for(;d--;)r.lens[r.have++]=k}}if(r.mode===no)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=no;break}if(r.lenbits=9,S={bits:r.lenbits},E=di(_i,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,E){e.msg="invalid literal/lengths set",r.mode=no;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},E=di(gi,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,E){e.msg="invalid distances set",r.mode=no;break}if(r.mode=Xi,t===bi)break e;case Xi:r.mode=qi;case qi:if(s>=6&&h>=258){e.next_out=a,e.avail_out=h,e.next_in=o,e.avail_in=s,r.hold=l,r.bits=f,ri(e,u),a=e.next_out,i=e.output,h=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,f=r.bits,r.mode===Hi&&(r.back=-1);break}for(r.back=0;v=(R=r.lencode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,r.length=w,0===v){r.mode=Qi;break}if(32&v){r.back=-1,r.mode=Hi;break}if(64&v){e.msg="invalid literal/length code",r.mode=no;break}r.extra=15&v,r.mode=Vi;case Vi:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Gi;case Gi:for(;v=(R=r.distcode[l&(1<>>16&255,w=65535&R,!((g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>b)])>>>16&255,w=65535&R,!(b+(g=R>>>24)<=f);){if(0===s)break e;s--,l+=n[o++]<>>=b,f-=b,r.back+=b}if(l>>>=g,f-=g,r.back+=g,64&v){e.msg="invalid distance code",r.mode=no;break}r.offset=w,r.extra=15&v,r.mode=$i;case $i:if(r.extra){for(x=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=no;break}r.mode=Ji;case Ji:if(0===h)break e;if(d=u-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=no;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),_=r.window}else _=i,p=a-r.offset,d=r.length;d>h&&(d=h),h-=d,r.length-=d;do{i[a++]=_[p++]}while(--d);0===r.length&&(r.mode=qi);break;case Qi:if(0===h)break e;i[a++]=r.length,h--,r.mode=qi;break;case eo:if(r.wrap){for(;f<32;){if(0===s)break e;s--,l|=n[o++]<=o.wsize?(jt(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>n&&(i=n),jt(o.window,t,r-n,i,o.wnext),(n-=i)?(jt(o.window,t,r-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whaveyo)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function ko(e,t){for(var r=0;r15&&(a=2,n-=16),i<1||i>vn||r!==gn||n<8||n>15||t<0||t>9||o<0||o>pn)return Hn(e,sn);8===n&&(n=9);var s=new $n;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<So.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBitsSo.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.levelSo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevelSo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=So.Z_FILTERED&&e.strategy!=So.Z_HUFFMAN_ONLY&&e.strategy!=So.Z_RLE&&e.strategy!=So.Z_FIXED&&e.strategy!=So.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!$(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new So.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(e,t){r._binding=null,r._hadError=!0;var n=new Error(e);n.errno=t,n.code=So.codes[t],r.emit("error",n)};var n=So.Z_DEFAULT_COMPRESSION;"number"==typeof e.level&&(n=e.level);var i=So.Z_DEFAULT_STRATEGY;"number"==typeof e.strategy&&(i=e.strategy),this._binding.init(e.windowBits||So.Z_DEFAULT_WINDOWBITS,n,e.memLevel||So.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new p(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}Object.keys(xo).forEach(function(e){xo[xo[e]]=e}),Be(Io,Ot),Io.prototype.params=function(e,t,r){if(eSo.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=So.Z_FILTERED&&t!=So.Z_HUFFMAN_ONLY&&t!=So.Z_RLE&&t!=So.Z_FIXED&&t!=So.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(So.Z_SYNC_FLUSH,function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())})}else de(r)},Io.prototype.reset=function(){return this._binding.reset()},Io.prototype._flush=function(e){this._transform(new p(0),"",e)},Io.prototype.flush=function(e,t){var r=this._writableState;if(("function"==typeof e||void 0===e&&!t)&&(t=e,e=So.Z_FULL_FLUSH),r.ended)t&&de(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",function(){n.flush(t)})}else this._flushFlag=e,this.write(new p(0),"",t)},Io.prototype.close=function(e){if(e&&de(e),!this._closed){this._closed=!0,this._binding.close();var t=this;de(function(){t.emit("close")})}},Io.prototype._transform=function(e,t,r){var n,i=this._writableState,o=(i.ending||i.ended)&&(!e||i.length===e.length);if(null===!e&&!$(e))return r(new Error("invalid input"));o?n=So.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||So.Z_NO_FLUSH)),this._processChunk(e,n,r)},Io.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,o=0,a=this,s="function"==typeof r;if(!s){var h,l=[],f=0;this.on("error",function(e){h=e});do{var c=this._binding.writeSync(t,e,o,n,this._buffer,this._offset,i)}while(!this._hadError&&_(c[0],c[1]));if(this._hadError)throw h;var u=p.concat(l,f);return this.close(),u}var d=this._binding.write(t,e,o,n,this._buffer,this._offset,i);function _(h,c){if(!a._hadError){var u=i-c;if(function(e,t){if(!e)throw new Error(t)}(u>=0,"have should not go down"),u>0){var d=a._buffer.slice(a._offset,a._offset+u);a._offset+=u,s?a.push(d):(l.push(d),f+=d.length)}if((0===c||a._offset>=a._chunkSize)&&(i=a._chunkSize,a._offset=0,a._buffer=new p(a._chunkSize)),0===c){if(o+=n-h,n=h,!s)return!0;var g=a._binding.write(t,e,o,n,a._buffer,a._offset,a._chunkSize);return g.callback=_,void(g.buffer=e)}if(!s)return!1;r()}}d.buffer=e,d.callback=_},Be(Bo,Io),Be(zo,Io),Be(Lo,Io),Be(To,Io),Be(Mo,Io),Be(Co,Io),Be(Do,Io);var Po={codes:xo,createDeflate:function(e){return new Bo(e)},createInflate:function(e){return new zo(e)},createDeflateRaw:function(e){return new Mo(e)},createInflateRaw:function(e){return new Co(e)},createGzip:function(e){return new Lo(e)},createGunzip:function(e){return new To(e)},createUnzip:function(e){return new Do(e)},deflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Bo(t),e,r)},deflateSync:function(e,t){return Ao(new Bo(t),e)},gzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Lo(t),e,r)},gzipSync:function(e,t){return Ao(new Lo(t),e)},deflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Mo(t),e,r)},deflateRawSync:function(e,t){return Ao(new Mo(t),e)},unzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Do(t),e,r)},unzipSync:function(e,t){return Ao(new Do(t),e)},inflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new zo(t),e,r)},inflateSync:function(e,t){return Ao(new zo(t),e)},gunzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new To(t),e,r)},gunzipSync:function(e,t){return Ao(new To(t),e)},inflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),Ro(new Co(t),e,r)},inflateRawSync:function(e,t){return Ao(new Co(t),e)},Deflate:Bo,Inflate:zo,Gzip:Lo,Gunzip:To,DeflateRaw:Mo,InflateRaw:Co,Unzip:Do,Zlib:Io};export default class{constructor(e,t,r){this.SDKAPPID=e,this.EXPIRETIME=r,this.PRIVATEKEY=t}genTestUserSig(e){return this._isNumber(this.SDKAPPID)?this._isString(this.PRIVATEKEY)?this._isString(e)?this._isNumber(this.EXPIRETIME)?(console.log("sdkAppID="+this.SDKAPPID+" key="+this.PRIVATEKEY+" userID="+e+" expire="+this.EXPIRETIME),this.genSigWithUserbuf(e,this.EXPIRETIME,null)):(console.error("expireTime must be a number"),""):(console.error("userID must be a string"),""):(console.error("privateKey must be a string"),""):(console.error("sdkAppID must be a number"),"")}newBuffer(e,t){return p.from?p.from(e,t):new p(e,t)}unescape(e){return e.replace(/_/g,"=").replace(/\-/g,"/").replace(/\*/g,"+")}escape(e){return e.replace(/\+/g,"*").replace(/\//g,"-").replace(/=/g,"_")}encode(e){return this.escape(this.newBuffer(e).toString("base64"))}decode(e){return this.newBuffer(this.unescape(e),"base64")}base64encode(e){return this.newBuffer(e).toString("base64")}base64decode(e){return this.newBuffer(e,"base64").toString()}_hmacsha256(e,t,r,n){let i="TLS.identifier:"+e+"\n";i+="TLS.sdkappid:"+this.SDKAPPID+"\n",i+="TLS.time:"+t+"\n",i+="TLS.expire:"+r+"\n",null!=n&&(i+="TLS.userbuf:"+n+"\n");let o=te.HmacSHA256(i,this.PRIVATEKEY);return te.enc.Base64.stringify(o)}_utc(){return Math.round(Date.now()/1e3)}_isNumber(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)}_isString(e){return"string"==typeof e}genSigWithUserbuf(e,t,r){let n=this._utc(),i={"TLS.ver":"2.0","TLS.identifier":e,"TLS.sdkappid":this.SDKAPPID,"TLS.time":n,"TLS.expire":t},o="";if(null!=r){let a=this.base64encode(r);i["TLS.userbuf"]=a,o=this._hmacsha256(e,n,t,a)}else o=this._hmacsha256(e,n,t,null);i["TLS.sig"]=o;let a=JSON.stringify(i),s=Po.deflateSync(this.newBuffer(a)).toString("base64"),h=this.escape(s);return console.log("ret="+h),h}validate(e){let t=this.decode(e),r=Po.inflateSync(t);console.log("validate ret="+r)}} diff --git a/src/renderer/src/plugins/imChat/userSig.js b/src/renderer/src/plugins/imChat/userSig.js deleted file mode 100644 index 1191b78..0000000 --- a/src/renderer/src/plugins/imChat/userSig.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @description: 生成签名|客户端计算 UserSig - * @author: zdg - * @date 2021-07-05 14:07:01 - */ - -// TIM生成签名 -import LibGenerateTestUserSig from './lib-generate-test-usersig-es.min.js'; -/** - * Signature expiration time, which should not be too short - * Time unit: second - * Default time: 7 * 24 * 60 * 60 = 604800 = 7days - */ -const EXPIRETIME = 604800; - -/** - * Module: GenerateTestUserSig - * - * Description: Generates UserSig for testing. UserSig is a security signature designed by Tencent Cloud for its cloud services. - * It is calculated based on `SDKAppID`, `UserID`, and `EXPIRETIME` using the HMAC-SHA256 encryption algorithm. - * - * Attention: For the following reasons, do not use the code below in your commercial application. - * - * The code may be able to calculate UserSig correctly, but it is only for quick testing of the SDK’s basic features, not for commercial applications. - * `SECRETKEY` in client code can be easily decompiled and reversed, especially on web. - * Once your key is disclosed, attackers will be able to steal your Tencent Cloud traffic. - * - * The correct method is to deploy the `UserSig` calculation code and encryption key on your project server so that your application can request from your server a `UserSig` that is calculated whenever one is needed. - * Given that it is more difficult to hack a server than a client application, server-end calculation can better protect your key. - * - * Reference: https://cloud.tencent.com/document/product/647/17275#Server - */ - -function genTestUserSig(options) { - const { SDKAppID, secretKey, userID } = options; - const generator = new LibGenerateTestUserSig(SDKAppID, secretKey, EXPIRETIME); - const userSig = generator.genTestUserSig(userID); - return { - SDKAppID, - userSig, - }; -} - -export { genTestUserSig, EXPIRETIME }; \ No newline at end of file diff --git a/src/renderer/src/plugins/shareStore.js b/src/renderer/src/plugins/shareStore.js index 31060a8..fee2151 100644 --- a/src/renderer/src/plugins/shareStore.js +++ b/src/renderer/src/plugins/shareStore.js @@ -12,7 +12,7 @@ export function shareStorePlugin({store}) { // console.log('store.$subscribe', mutation) // 在存储变化的时候执行 // const storeName = store.$id - // const storeName = mutation.storeId + const storeName = mutation.storeId // 用于多窗口共享(需要共享的状态名称) const names = ['tool'] if (names.includes(storeName)) { @@ -36,11 +36,15 @@ export function shareStorePlugin({store}) { // 同步数据-发送给主线程-单独 function stateSync(storeName, key, value) { // console.log('state-change', storeName, key, value) - let jsonStr = '' - if (typeof key === 'string') jsonStr = JSON.stringify({[key]:value}) - else if (typeof value === 'object') jsonStr = JSON.stringify(key) - // 通知主线程更新 - ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr) + try { + let jsonStr = '' + if (typeof key === 'string') jsonStr = JSON.stringify({[key]:value}) + else if (typeof value === 'object') jsonStr = JSON.stringify(key) + // 通知主线程更新 + ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr) + } catch (error) { + console.log('state-change-error', error) + } } // 同步数据-发送给主线程-全量更新 diff --git a/src/renderer/src/utils/tool.js b/src/renderer/src/utils/tool.js index a874e2d..8044f8d 100644 --- a/src/renderer/src/utils/tool.js +++ b/src/renderer/src/utils/tool.js @@ -190,7 +190,11 @@ export function toolWindow({url, isConsole, isWeb=true, option={}}) { // 内部监听器-是否打印 if (!!isConsole) { win.webContents.on('console-message', (e,leve,m,lin,s) => { - console.log(`[${win.type}]`,m) + console.log(m) + if(m.startsWith('%c')){ // 特殊打印 + const arr = m.match(/(%c[^ ]+)(?:\s+(.*;))(.*)/) + console.log(arr[1],arr[2],arr[3]) + } else console.log(`[${win.type}]`,m) }) } }) @@ -248,12 +252,12 @@ const eventHandles = (type, win) => { } } -const taskHandles = () => { - // // 设置任务栏上下文菜单 - // const contextMenu = new Remote.Menu() - // contextMenu.append(new Remote.MenuItem({ - // label: '关闭', - // click: () => {Remote.app.quit()} - // })) -} +// const taskHandles = () => { +// // 设置任务栏上下文菜单 +// const contextMenu = new Remote.Menu() +// contextMenu.append(new Remote.MenuItem({ +// label: '关闭', +// click: () => {Remote.app.quit()} +// })) +// } diff --git a/src/renderer/src/views/tool/components/imChat.vue b/src/renderer/src/views/tool/components/imChat.vue index 12b098d..a244b9b 100644 --- a/src/renderer/src/views/tool/components/imChat.vue +++ b/src/renderer/src/views/tool/components/imChat.vue @@ -13,10 +13,10 @@ const props = defineProps({ const imChatObj = reactive({imChat:null}) onMounted(() => { // console.log(imChatObj) - initImChat() + // initImChat() }) // 初始化 im-chat -const initImChat = async () => { +const initImChat = async (timGroupId) => { // console.log('im-chat', userStore.user.timuserid) try { const { timuserid, deptId, userId } = userStore.user @@ -35,25 +35,55 @@ const initImChat = async () => { await imChatObj.imChat.login() // 监听 im-chat 消息 imChatObj.imChat.watch((res) => { - const [msg] = res[0]?JSON.parse(res[0]):[] - imChatObj.imChat.setConsole('%cchat-msg', msg) - // 系统消息 - if(msg.message_sender == '@TIM#SYSTEM'){ - emits('change', 'msg-system', null, msg) - } else { // 普通消息-数据处理 - (msg?.message_elem_array||[]).forEach(o => { - const msgData = !!o.text_elem_content ? JSON.parse(o.text_elem_content)||'' : '' - emits('change', 'msg', msgData, msg) - }) - } + imChatObj.imChat.setConsole('%cchat-msg', res) + msgHandle(res) // 消息处理 }) // 创建群 - if (props.isGroup) await createGroup(groupName) + if (!timGroupId||props.isGroup) { // 创建群 + await createGroup(groupName) + } else { // 已有群-设置群id + imChatObj.imChat.timGroupId = timGroupId + } + return imChatObj.imChat } } catch (error) { console.log('im-error: ', error) } } +// 消息处理 +const msgHandle = (msg) => { + const { type, data } = msg + switch(type) { + case 'TIMAddRecvNewMsgCallback': // 收到新消息 data=[] + { + (data||[]).forEach(o => { + const msgArr = o?.message_elem_array||[] + msgArr.forEach(info => { + const msgType = info?.elem_type // 消息类型 TIMElemType + const msgData = !!info.text_elem_content ? JSON.parse(info.text_elem_content)||'' : '' + emits('change', 'msg', msgData, o, type, msgType) + }) + }) + } + break + case 'TIMSetConvEventCallback': // 监听会话事件 data = {data,type} + { + const convArr = data.data || [] + convArr.forEach(o => { + const msgArr = o?.conv_last_msg?.message_elem_array||[] + msgArr.forEach(info => { + const msgType = info?.elem_type // 消息类型 TIMElemType + const msgData = !!info.text_elem_content ? JSON.parse(info.text_elem_content)||'' : '' + emits('change', 'msg', msgData, o?.conv_last_msg, type, msgType) + }) + }) + } + emits('change', 'msg-conv', msg) + break + } + // 未处理的消息 + emits('change', 'msgDef', msg) +} // 创建群组 const createGroup = async (groupName) => { if (!imChatObj.imChat) return @@ -65,7 +95,7 @@ const logout = () => imChatObj.imChat?.logout() // 解散群 const deleteGroup = () => imChatObj.imChat?.deleteGroup() -defineExpose({ logout, deleteGroup, imChatObj }) +defineExpose({ initImChat, logout, deleteGroup, imChatObj }) @@ -72,9 +75,10 @@ const navtopage = (type) => { pdfCanvaslist.value.initPdf('rest') } // 关闭窗口 -const minimize = async () => { - await pdfCanvaslist.value.savaDataStore() +const minimize = async (type='minimize') => { + await pdfCanvaslist.value.savaDataStore(type) } + const handleUpdate = (data) => { numPagesTotal.value = data if (numPagesTotal.value == 1) { @@ -101,8 +105,8 @@ const switchPageMode = () => { } onMounted(async () => { toolState.isPdfWin=true //设置打开pdf窗口 - pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 - // pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 + // pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 + pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 textbookId.value = route.query.textbookId pdfObj.bookId=textbookId.value //初始化获取接口数据 @@ -138,7 +142,8 @@ const getUniqueArrayByLastOccurrence=(array)=> { flex-wrap: wrap; .pdf-btn { position: absolute; - right: 0; + // right: 0; + left: 0; bottom: 0; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5); border-radius: 5px 0 0 0; @@ -163,5 +168,28 @@ const getUniqueArrayByLastOccurrence=(array)=> { } } } + .pdf-btn-right{ + position: absolute; + right: 0; + bottom: 0; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5); + border-radius: 5px 0 0 0; + button { + margin-left: 0; + border: none; + font-size: 16px; + // padding: 4px 7px; + border-radius: 0; + width: 80px; + height: 70px; + :deep(> span) { + display: block !important; + } + .iconfont { + font-size: 26px; + margin-bottom: 10px; + } + } + } } diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index 04b11d4..9c5c7df 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -493,7 +493,7 @@ export default { // 打开PDF-课件 async navtoPdf() { - if (toolStore.isPdfWin) return this.$message.error('您当前已打开课本,请勿重复操作') + // if (toolStore.isPdfWin) return this.$message.error('您当前已打开课本,请勿重复操作') let path = await this.getBookPathFromServer() createWindow('open-PDF', { url: '/classBegins/index?textbookId=' + this.uploadData.textbookId + '&path=' + path From 1e0ff00503bf26051949b87cbb9422ad3836d6f4 Mon Sep 17 00:00:00 2001 From: zhangxuelin <959231531@qq.com> Date: Tue, 20 Aug 2024 10:22:42 +0800 Subject: [PATCH 10/13] 1 --- src/renderer/src/views/classBegins/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/views/classBegins/index.vue b/src/renderer/src/views/classBegins/index.vue index 1e3bf0e..a1b4ec3 100644 --- a/src/renderer/src/views/classBegins/index.vue +++ b/src/renderer/src/views/classBegins/index.vue @@ -105,8 +105,8 @@ const switchPageMode = () => { } onMounted(async () => { toolState.isPdfWin=true //设置打开pdf窗口 - // pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 - pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 + pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 + // pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 textbookId.value = route.query.textbookId pdfObj.bookId=textbookId.value //初始化获取接口数据 From a2e72b855b5c654a4123ce72db3192f664fb2ab9 Mon Sep 17 00:00:00 2001 From: zdg Date: Tue, 20 Aug 2024 14:21:25 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/api/classManage/index.js | 4 +++- src/renderer/src/plugins/imChat/enumbers.js | 16 ++++++++-------- src/renderer/src/plugins/imChat/index.js | 16 ++++++---------- src/renderer/src/utils/tool.js | 1 - src/renderer/src/views/prepare/index.vue | 2 +- .../src/views/tool/components/imChat.vue | 4 ++-- src/renderer/src/views/tool/sphere.vue | 5 ++--- 7 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/renderer/src/api/classManage/index.js b/src/renderer/src/api/classManage/index.js index dc58160..d07edf6 100644 --- a/src/renderer/src/api/classManage/index.js +++ b/src/renderer/src/api/classManage/index.js @@ -160,10 +160,12 @@ export function deleteSmartReserv(id) { }) } export function startClass(id, ex3) { + const params = {id} + !!ex3 && (params.ex3 = ex3) return request({ url: '/smarttalk/classReserv/startClass', method: 'get', - params: {id, ex3} + params }) } export function endClass(id) { diff --git a/src/renderer/src/plugins/imChat/enumbers.js b/src/renderer/src/plugins/imChat/enumbers.js index 0145323..05d12c3 100644 --- a/src/renderer/src/plugins/imChat/enumbers.js +++ b/src/renderer/src/plugins/imChat/enumbers.js @@ -381,14 +381,14 @@ const TIMResult= { * * | 名称 | 含义 | 值(number) | * | ---- | ---- | ---- | -* | kTIMLog_Off | 关闭日志输出 | 0 | -* | kTIMLog_Test | 失败,IM SDK未初始化 | 1 | -* | kTIMLog_Verbose | 失败,IM SDK未初始化 | 2 | -* | kTIMLog_Debug | 接口调用失败,错误的Json格式或Json Key | 3 | -* | kTIMLog_Info | 接口调用失败,参数错误 | 4 | -* | kTIMLog_Warn | 接口调用失败,无效的会话 | 5 | -* | kTIMLog_Error | 接口调用失败,无效的群组 | 6 | -* | kTIMLog_Assert | 断言日志| 7 | +* | kTIMLog_Off | 关闭日志输出 | 0 | +* | kTIMLog_Test | 全量日志 | 1 | +* | kTIMLog_Verbose| 开发调试过程中一些详细信息日志 | 2 | +* | kTIMLog_Debug | 调试日志 | 3 | +* | kTIMLog_Info | 信息日志 | 4 | +* | kTIMLog_Warn | 警告日志 | 5 | +* | kTIMLog_Error | 错误日志 | 6 | +* | kTIMLog_Assert | 断言日志 | 7 | */ const TIMLogLevel= { kTIMLog_Off : 0, diff --git a/src/renderer/src/plugins/imChat/index.js b/src/renderer/src/plugins/imChat/index.js index dac2ef7..900f89b 100644 --- a/src/renderer/src/plugins/imChat/index.js +++ b/src/renderer/src/plugins/imChat/index.js @@ -25,7 +25,7 @@ export class ImChat { } defOption = { // 默认配置 // 日志等级-全量日志 - log_level: TYPES.TIMLogLevel.kTIMLog_Test, + log_level: TYPES.TIMLogLevel.kTIMLog_Off, // 群组类型-会议群(Meeting),成员上限 6000 人 group_type: TYPES.TIMGroupType.kTIMGroup_ChatRoom, } @@ -34,20 +34,17 @@ export class ImChat { constructor(SDKAppID, userSig, userID, isInit) { this.SDKAppID = SDKAppID this.userSig = userSig - // const sig = 'eJwtjN0KgjAYQN9l16Vzcz8I3RhE9J*JV94IW-ZV6nASWfTurfTynAPnjdLNyXvoFkWIeBhN-gxK1x2cYdCMTQnlYmxW3QpjQKEo4BhjGgrKh6KfBlrtPGOMuDTYDqqfE26BWUjEeIHSrW1cL-SulHd5KI7zxDbpdh1cX0nuX7JK7HtroNerZhnnPpYz9PkCe5Mx1w__' - // this.userSig = sig this.userID = userID - window.test = this - // this.timGroupId = '@TGS#3CYWMK2ON' // 测试使用 + // window.test = this if (isInit) return this.init() } // 设置配置 async setConfig() { - await this.timChat.TIMSetConfig({ // TIMSetConfigParam + const res=await this.timChat.TIMSetConfig({ // TIMSetConfigParam json_config: { // JSONCongfig - set_config_log_level: this.defOption.log_level, - set_config_callback_log_level: this.defOption.log_level, - // set_config_is_log_output_console: true, + set_config_log_level: TYPES.TIMLogLevel.kTIMLog_Test, + set_config_callback_log_level: TYPES.TIMLogLevel.kTIMLog_Error, + set_config_is_log_output_console: true, // set_config_user_config: { // 用户配置 // user_config_is_read_receipt: true, // true表示要收已读回执事件 // user_config_is_sync_report: true, // true表示服务端要删掉已读状态 @@ -63,7 +60,6 @@ export class ImChat { // 日志监听 this.timChat.TIMSetLogCallback({ callback: data => { - // console.log('[im-chat]:', data[1]) this.setConsole('%cchat-log ', data[1]) }, user_data: '' diff --git a/src/renderer/src/utils/tool.js b/src/renderer/src/utils/tool.js index ff4bfdc..670729e 100644 --- a/src/renderer/src/utils/tool.js +++ b/src/renderer/src/utils/tool.js @@ -190,7 +190,6 @@ export function toolWindow({url, isConsole, isWeb=true, option={}}) { // 内部监听器-是否打印 if (!!isConsole) { win.webContents.on('console-message', (e,leve,m,lin,s) => { - console.log(m) if(m.startsWith('%c')){ // 特殊打印 const arr = m.match(/(%c[^ ]+)(?:\s+(.*;))(.*)/) console.log(arr[1],arr[2],arr[3]) diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index 04b11d4..dae928b 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -501,7 +501,7 @@ export default { }, // 上课-工具类悬浮 async openLesson() { - await startClass(this.curClassReserv.id) + // await startClass(this.curClassReserv.id) createWindow('tool-sphere', { url: '/tool/sphere?entpcourseid=' + diff --git a/src/renderer/src/views/tool/components/imChat.vue b/src/renderer/src/views/tool/components/imChat.vue index a244b9b..ebb5407 100644 --- a/src/renderer/src/views/tool/components/imChat.vue +++ b/src/renderer/src/views/tool/components/imChat.vue @@ -31,13 +31,13 @@ const initImChat = async (timGroupId) => { imChatObj.imChat = new ImChat(sdkAppId, sign, timuserid) // 初始化 im-chat await imChatObj.imChat.init() - // 登录 im-chat - await imChatObj.imChat.login() // 监听 im-chat 消息 imChatObj.imChat.watch((res) => { imChatObj.imChat.setConsole('%cchat-msg', res) msgHandle(res) // 消息处理 }) + // 登录 im-chat(为了不漏消息,需要在登录之前-监听) + await imChatObj.imChat.login() // 创建群 if (!timGroupId||props.isGroup) { // 创建群 await createGroup(groupName) diff --git a/src/renderer/src/views/tool/sphere.vue b/src/renderer/src/views/tool/sphere.vue index c6edbf5..052a673 100644 --- a/src/renderer/src/views/tool/sphere.vue +++ b/src/renderer/src/views/tool/sphere.vue @@ -80,7 +80,6 @@ const btnList = [ // 工具栏按钮列表 onMounted(async() => { getClassInfo() // 获取课堂详情 ex3 setTimeout(() => { - // classManageApi.startClass(classObj.id) // 开始上课-临时 resetStatus() // 开启重置状态-监听 }, 200); }) @@ -91,8 +90,8 @@ const getClassInfo = async () => { const { data } = await classManageApi.getClassInfo(classObj.id) classObj.data = data // 群id - let timGroupId = data?.ex3 && data?.ex3 != 'undefined' ? data.ex3: '' - console.log('timGroupId:', timGroupId) + let timGroupId = data?.ex3 || '' + console.log('获取群ID:', timGroupId) const chat = await imChatRef.value?.initImChat(timGroupId) // 初始化im-chat if (!timGroupId) timGroupId = chat.timGroupId classManageApi.startClass(classObj.id, timGroupId) // 开始上课 From c57f21461a92ed1dd518c68e401ab31e1606bf68 Mon Sep 17 00:00:00 2001 From: zdg Date: Wed, 21 Aug 2024 09:18:00 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E7=82=B9=E8=B5=9E=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/api/apiService.js | 8 +- src/renderer/src/assets/iconfont/iconfont.css | 76 ++++++++++- src/renderer/src/assets/iconfont/iconfont.js | 2 +- .../src/assets/iconfont/iconfont.json | 119 ++++++++++++++++++ src/renderer/src/assets/iconfont/iconfont.svg | 34 +++++ src/renderer/src/assets/iconfont/iconfont.ttf | Bin 62680 -> 70484 bytes .../src/assets/iconfont/iconfont.woff | Bin 37300 -> 42716 bytes .../src/assets/iconfont/iconfont.woff2 | Bin 31572 -> 36452 bytes src/renderer/src/plugins/imChat/imLiseners.js | 2 +- .../src/views/tool/components/upvote.vue | 46 +++++-- src/renderer/src/views/tool/sphere.vue | 12 +- 11 files changed, 274 insertions(+), 25 deletions(-) diff --git a/src/renderer/src/api/apiService.js b/src/renderer/src/api/apiService.js index ad79922..0b28e0d 100644 --- a/src/renderer/src/api/apiService.js +++ b/src/renderer/src/api/apiService.js @@ -13,9 +13,11 @@ export class ApiService { if (!!data) config[method=='get'?'params':'data'] = data if (!!option) Object.assign(config, option) // 特殊格式处理 - if (type == 'file') config.headers = { 'Content-Type': 'multipart/form-data' } - else if (type == 'json') config.headers = { 'Content-Type': 'application/json' } - else if (type == 'form') config.headers = { 'Content-Type': 'application/x-www-form-urlencoded' } + let headers + if (type == 'file') headers = { 'Content-Type': 'multipart/form-data' } + else if (type == 'json') headers = { 'Content-Type': 'application/json' } + else if (type == 'form') headers = { 'Content-Type': 'application/x-www-form-urlencoded' } + headers && (config.headers = { ...config.headers, ...headers }) return request(config) } } diff --git a/src/renderer/src/assets/iconfont/iconfont.css b/src/renderer/src/assets/iconfont/iconfont.css index 696d349..26de097 100644 --- a/src/renderer/src/assets/iconfont/iconfont.css +++ b/src/renderer/src/assets/iconfont/iconfont.css @@ -1,9 +1,9 @@ @font-face { font-family: "iconfont"; /* Project id 2794390 */ - src: url('iconfont.woff2?t=1723453634574') format('woff2'), - url('iconfont.woff?t=1723453634574') format('woff'), - url('iconfont.ttf?t=1723453634574') format('truetype'), - url('iconfont.svg?t=1723453634574#iconfont') format('svg'); + src: url('iconfont.woff2?t=1724134927539') format('woff2'), + url('iconfont.woff?t=1724134927539') format('woff'), + url('iconfont.ttf?t=1724134927539') format('truetype'), + url('iconfont.svg?t=1724134927539#iconfont') format('svg'); } .iconfont { @@ -14,6 +14,74 @@ -moz-osx-font-smoothing: grayscale; } +.icon-zan:before { + content: "\e658"; +} + +.icon-zan1:before { + content: "\e659"; +} + +.icon-zan2:before { + content: "\e65a"; +} + +.icon-zan3:before { + content: "\e65c"; +} + +.icon-zan4:before { + content: "\e67c"; +} + +.icon-yizan:before { + content: "\e67e"; +} + +.icon-zan5:before { + content: "\e67f"; +} + +.icon-zan-yizan:before { + content: "\e680"; +} + +.icon-zan6:before { + content: "\e681"; +} + +.icon-MBEfenggeduosetubiao-xihuan:before { + content: "\e682"; +} + +.icon-zan7:before { + content: "\e683"; +} + +.icon-zan11:before { + content: "\e6ff"; +} + +.icon-zan8:before { + content: "\e684"; +} + +.icon-dianzan-red:before { + content: "\e685"; +} + +.icon-zan9:before { + content: "\e69e"; +} + +.icon-zanping:before { + content: "\100ae"; +} + +.icon-zan10:before { + content: "\e686"; +} + .icon-arrangement:before { content: "\e656"; } diff --git a/src/renderer/src/assets/iconfont/iconfont.js b/src/renderer/src/assets/iconfont/iconfont.js index a7091de..03be20d 100644 --- a/src/renderer/src/assets/iconfont/iconfont.js +++ b/src/renderer/src/assets/iconfont/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_2794390='',function(l){var h=(h=document.getElementsByTagName("script"))[h.length-1],c=h.getAttribute("data-injectcss"),h=h.getAttribute("data-disable-injectsvg");if(!h){var a,v,t,z,i,p=function(h,c){c.parentNode.insertBefore(h,c)};if(c&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}a=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_2794390,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),a()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=a,z=l.document,i=!1,o(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){i||(i=!0,t())}function o(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}M()}}(window); \ No newline at end of file +window._iconfont_svg_string_2794390='',(l=>{var h=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,v,t,z,i,p=function(h,c){c.parentNode.insertBefore(h,c)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}a=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_2794390,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),a()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=a,z=l.document,i=!1,d(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){i||(i=!0,t())}function d(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}M()}})(window); \ No newline at end of file diff --git a/src/renderer/src/assets/iconfont/iconfont.json b/src/renderer/src/assets/iconfont/iconfont.json index 27f830f..ef8e263 100644 --- a/src/renderer/src/assets/iconfont/iconfont.json +++ b/src/renderer/src/assets/iconfont/iconfont.json @@ -5,6 +5,125 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "1242129", + "name": "赞", + "font_class": "zan", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "1741390", + "name": "赞", + "font_class": "zan1", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "3159200", + "name": "赞", + "font_class": "zan2", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "3402139", + "name": "赞", + "font_class": "zan3", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "4931286", + "name": "赞 (1)", + "font_class": "zan4", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "4942300", + "name": "已赞", + "font_class": "yizan", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "5806181", + "name": "赞", + "font_class": "zan5", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "7172310", + "name": "赞-已赞", + "font_class": "zan-yizan", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "7293361", + "name": "赞2", + "font_class": "zan6", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "8705087", + "name": "MBE风格多色图标-喜欢", + "font_class": "MBEfenggeduosetubiao-xihuan", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "10024138", + "name": "赞", + "font_class": "zan7", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "11055391", + "name": "赞", + "font_class": "zan11", + "unicode": "e6ff", + "unicode_decimal": 59135 + }, + { + "icon_id": "11086734", + "name": "赞", + "font_class": "zan8", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "23592614", + "name": "点赞", + "font_class": "dianzan-red", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "26327261", + "name": "赞", + "font_class": "zan9", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "27804883", + "name": "赞评", + "font_class": "zanping", + "unicode": "100ae", + "unicode_decimal": 65710 + }, + { + "icon_id": "29252894", + "name": "赞", + "font_class": "zan10", + "unicode": "e686", + "unicode_decimal": 59014 + }, { "icon_id": "4978988", "name": "作业-布置作业", diff --git a/src/renderer/src/assets/iconfont/iconfont.svg b/src/renderer/src/assets/iconfont/iconfont.svg index d9830a0..e544243 100644 --- a/src/renderer/src/assets/iconfont/iconfont.svg +++ b/src/renderer/src/assets/iconfont/iconfont.svg @@ -14,6 +14,40 @@ /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/renderer/src/assets/iconfont/iconfont.ttf b/src/renderer/src/assets/iconfont/iconfont.ttf index 1d65d03d3f8a22066b4965c9810f3d5b1f2997de..f0461d5d744e0ad1ed10b87f16c483e00c4d45e3 100644 GIT binary patch delta 11082 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 P-0D<%q3<`Jl?eP_zLz;k delta 3295 zcma);X>3&Y6~%uuUNFXhG5cm5W55`*uWgLM#xVq_F}B$^+iYeFO9%x58K5L}iAf+% zQ$k7N0);@KYJ*DJJ9Dy0-b&!5{?>bK6*@4Yu~X5PGa z@44r^Kc7gvc_-mOc5F@!L>hqVrR!=oT;YSsasyN zEU%_?m%gj-Fs4oiTGuB1R{NJkPTjiAThD*~^c$V;K17?>u3uUc`}UI?kp4i&7Otz= zx*?hs-J<<&`hM0+HS3nA_dHhc8@OAgAFSN4{^ia0hi8p|`#NDt&x4oxPB=?M-xXy; z78EUMU+{O@B((c+Ld(v2v^nB6+TVy*MUrYL3dWw@AV>jE#VE}_T!!Oy#tL&hEjKLgdJ0lsx8;m2yK)y#I zlgMTSeJP=gDxRYc)0xE(o@Xxec!4*Wzyg)vH7Z%k_gT&gR`LUeQ^zV+vz9DgVm+I9 znIFqx_0o+LKPPIul_rL-`2}?B^}s<^TtIheqDz zr@Y6{IK=xL=I0#Y13u&e;Lj^zLG^5!_clD{1&GcX)<;>(o zb~2xjSw^oCHqeE!3?rGzbYKdZR8zwo*0GDJY@sW!P|xcuVH8`LL1)tFO#$QSM@LnT zNb<1`DUq1!oF+)g4{N>7f@u>_2QX8FZtfwPEV!a$m6YK3r zq*yFdDdbIjo4^MbBTps2~8+A*3qnDp;bati-nd5%`X=IP>`iP-x__aMwb^k4 z%mkYvVp_>puooRU3^vsvT);F(u7ic13;7Qgsw8CYSeYYB!e%%!C#>9&O<^+~85UOI z$hwGG=$nv>VL^C8euf26iI6!q+X;DMa~!!H7IY!xd)OjJ4v2-%guD=2;>Z=TYDfNv z)jUJ>e_K1Xj!Y8^;t{e>Y?&h?#e#T*EENml5i(aSXh+Cqu{uYFiv^7cSuYkeB4ol? zsIZV7V{7&QCeg^5v2~6-8ViCEa%*h8Bj3h0IC5}oqa!cJHaT*2Ea*tkr0r%$PLI9f z$n&u+4zYag1hEMP0k+jqBw*Vdg#)(TQA}X3ItmPIr=#e=-gFcqSSYCj8tJC4#2yXz=G;M^0@1kZaLkqbT8|^w@3dT4|>-3Z0Xg|`*CJzW>cRdSr?y+W@lty z@4L9~@tk-1_3BsJ@0!VnOE6R`KW42)qz=gvrf#OKKt&R=DAPi-JG8>|KWn8 z3%4vPSe&-_?ve-94K;^qOP1y@YqzX^dH)r?yRD3_{6pR8x|^$_t46Jwzv`>iYuAig ivuVxgHCNXrp35C}@T005qN0004g0004g zyYqg!ZDDwD05<@i_y7O^9{>OVAObN0c5Y#9WdH!67ytkPKmY&&XAq-2uyAj4bN~RM zSO5S8g8%>sx^Pfx;gbjfLIGuyO93T+{Qu9~@V|k9f%y(Y3s9I5MG+GKgf9(&c%0SN z$8%P76vpvyXwr+Q6cLdsh=BAWMS{{S7)3-81(aSRO{5B9Az%#(0-~abT|tbE8Cbe= z9RG!L-w>B992Ven@;Hu5H!RG}hnd_Nes6N`InOyjW1yk*mqz;TPZ@cux9*mI)!%PO z^ZNUZ8eG)RbC{t2(4*L~{bc>=XX{U|)#;c1b^64A|9E;;o_@u?%9vBOxNNDe<+@h?b5+(~YwNG|x;Fmn z+VtNpo&EzgoZ@v}W*8&6ou4_)J5;fk5sc$o_ArUbyv0;rWi->cj|Uk-IYXJr<2=P+ z2JsjR8PDA;VJQ!Bh#4&BX4)%G?`xQeDUQzf>b6|HH<8!X^We&jBm zqaWANhFLt%Ev#T3^Ld1SeJta9)^RI4=))B5pd}r6nC{GGAZw^(FJj^dN3AhPB{y-ukwg_viWF~oe+v>_Il<___sX#x>X znPw5O&@`2Qh()IPL@YK>&PsF5{$%*fyCxRKd*!pQe|(#TpnWn`_@7+Ke6 zjQoAi8d)RfOgjnjo00GEcO&z%*2rgh-pD+@Xk;E-GBR&2TTbSpg=xp3=xW+_D0-Oo z9*VwyrVWTZaoDs`QJgmIRuna+ zEsIixY2TtW+q8L6+HTsxDE(sE#wh)2+RLb&Y}(MMtuXCs)Lt@eZPc|l?QhieG;MO! zm78`t{^(%Z?zm88+Vi-u*R&6msXr66{R?n^)C0(PoV2_LoFqqeINa6Md3w61)AZ!H zGqXFhGqaO7r`x;Ry_|EFIPMhgq*Fu!=_GNIKtcowkTED=Fha6y3Lkt`EL5EyKN z4TxxCk!)k@Z^BLA_o{n#Z%-2b?C<~kc6zH{SM08;7wc6~3Iq~AEtBUKe>kHcJ`Ryfzjmkhn?Myhn}Ix;LIt6` zn;kMV>Lf8=s5d4NBoy)r3ffR@0-JR_G|_^i`>!nyt?J=9gy9n^=YZzGO>qF8ry17svpWYhv=a8R3!M+L#_@SI7;#2xfb8&z-< zWk9k@PE+#aYsb?RDVdJ53?C8TWNaMpAcw1<};)r%ukS zn4LL!3i+3ybtsp;b=!`=+PUr4zTA1R&naK@7k8~$bJt&7kywQv+Ncq?n^wR@7x59VB``@y>4|Y1I5Pb4~XT2{cH~e(~F1j7Q zdp%G92ha57@E@;w{i9Dlc4qbbnGb&a zk=y5y^MK5)GL(F|e`I<{(|md$qgO}!%bM;p*+i(idV41uu`|ACz}ZLl4+eC}YJ=^vS?Y5`f-p!^6ep;)B7eN{D-;7v)_N`>Kyk=6`fK&wuV z^q2FhvC`y1A%7@BVZeuv;g8}qlteYC35qf@oTZt;F{EX4Su$B#%?bi?wn*MeNK3o4 zs?+o+7W|OOW%A8-qaD1+r;6Mo@1g(xQyPa+Xs}s{F+#w9?yF4u(2ugQkm{%HK}`_! zU^d)+T`*zUiV{TMQ+*D_ige%L^n70mrCZ5lJEg`d`DQ%V{f?&CrbZw9v-!ff6%sfn z6|n4B5Ze@B?77qUpYSd46#;5J;PO%G6nsHiOLxo!U>5RT9X0dW^b$UnfU}sWe_H zO=${;OCdw|F&NzEHQZXNhY8)v_mn&Yb6Hy`H06 zvOk%wlsmPNYAaU^h7hu?Lbg_J)fz+FM?`UC+fbv{F4wXJ%SLF|>eueNq@6v@^F}b4 z8WGE>dxLcf#JiX{aKvyIaj37nnr!Zx%YOu~hTKvA0yKZ#j0N znHp<#7UphgHgCZRxj68eRr4#ay5!<5k;s;dFS%;v{HoUs6lFPEEM{R$d1&X$_<1~k z2i&foDgtI)MZJ!CGqjmqL~aCt2~B6oymvc}yg&(fT@zRfvTJBDzU9Ve@-8JPv?^{L zCh2#S_IkKMdcM`1L?8xPLB3J%O^=#FcqUq+Cq_0?K~Ml{1F%mjq6Omm9l+$bsNqut-ehT`ZSF3u)CuY&bv<<_bvN~P>H!!l9yoWWCrA*{rzc=~(}W0}HW>>- zn1cYdnz_6yRubBl0NIobNuIBN2VXYDh}a61<{DPElQn~c;AJ?p1c88&0TIF^au>)8 zO}@~v5utP>nI~kv9yFnEnLs{d6t$?V6caulQsijhQ%qkpy``GZrgjWXT{5+MRWgfe zeYxt^)PU~GPC?|Qle@Pii;6#@7mZL}jryUmmh!2#)cvQKnY+?P)PReB{!|ZO>X^rM zn)YsExm>P$i=9qaQ)%08nvex$7&RNz@_IBFvXe#3Gog?b)AsoMv3@3*k<+=!ODES~ zA4+YjW}cL@$^PMNUuD}2#7?by&CX)d4h5rnUJGW`m=%T!R9WLOJNwUG?al}MPhHJNf88P9aTwZhrXww2nl^cKyJw$z)`V5TX1$<_46kMqeu2$32 zB3u=M=G%nT!XT2z53nSC?kJEk`mk>E$c%JwUNCdMu)4qP%eamDt^ zEn0I|tFRECnT{{?H+MAy2+MTq)~!d5Y`v|O(L@d&wjDXV?ba6d(R2WE^qTmHK!KF#^z65%f}_A+=N_S_L0MnRcfS~`o8OC){kYvXy5KtE2@Q{MB3|z z_Vyg;3(rqZUt9jsg%xoz`NE1u7ImLv^s^MGDX6(@6k!&B*tI1FS8L;AV;7GNtVzVz z4gkl61JMnxV*I0bol`A{<_`MbN~0L*zWLl zfv=(ty9DunOHgjPEXEb=;L=Q8Oj(jQI)wHC1~ofu(7y0TIF;LK@7E#f4|%7>f}ZLF zzbVw@jG)zMcIqGq1o^B*0W<3Y-$yxPIm7*Uzrs2qLC1Q0$){e$B1p3v;sMSLf$PZ@jrP zKd<-+diSkpT>iSzm9sucR#vSXzV?RJ%9V=D@}SpD*ESStX0)D?t0nZNL|zT{hoxNR zXVJ8O-^d1qbOJrk^LoHmO zcK--tUh)S_JFcq|D+(;aSdc?uzZnpffGpjNF{2tQRKQ?(E1x3xML#E$CJi4(fseCs zBh(IM1~aUpvXUVgiUj(bsj?x-C=6v(H51Q&C{isRQbj4WP%srmk))46sYJX~Xcgv1 z<17@rEhIsBx0+E{i47e+DJk%LRACRZW+pwwvSNI&H7H6_#xP7}g*v1fp-f>=CAkz< z71;zMLH!wcm)oYcD)D^_hHB7%#0kYMtH)2ham|)(n(9}#Y+3u}YbO>qn+C^@OY+Kp z`SDwCo}QocOQJM8KYQEd!z2@Yrjl{yYaGWA*vchn(6p(^{rcd(wjX*LiGAx5xk@H=ug;L>EGHS=e;h@CB zFlwP_U#77tH^`v@=SJvP$xu}>1AWdyXGjujDsjUI8)Ph4(nBHEh(mNn6~%bm{I5bm zF(DRuzF>^9a|X+@TU2w(V3mbjsF}^Q5|ZS+DL68lI;?5d+asiBC@&2 zcQw~8(;%9wYXoW4Tm`R?O%tP%Ww?y8;ihU$QXXIPOO59c5;&Nek}L>(#?K>!bdWRS z!JwflwxOa|sR2;TI<`;Z{gO|A?B4NaU0@Od%=H^(j-`Zn$3Q z8_buI$&jQ3g5hLxV7$>8N=zO9!7ES*0 zJC0p95-Sdt>WR^6xIeppb!P4c!X9P#{vYE9a1i)d675sha8HHnE0ciJGEd1hVf<<;AZ z^;c*f+nQX5Z85(cUh&jPts?7b>mNag-^G1e$=wWTw>^JG^io~#o ziG;r-niC@)yem5Qs-4^FO^gyuD)=5j9Gg74dq<;1qh@p0-ZRc$mrC<%A749P92_jV zK&gbRXIuL(+uv^QyL?|88EAHjW!{sn(kYsryz;FZx7~m3Bux)@_8vU7fAhv_jizIK zKz@&3?u?>?TQ&`U)o9dy^_hh~36751jL3w>MoTcjR|hAptL;GGpJZRm&R9_n$0G^S zzn0yn`#H=Dq7krVg~qW&UiS+E!(m3V`XjccSjG6&QB#kGW>>{xb1T9``oAWATF=Un z=+(-Aa&@%15cS1<5&E~NS=+Yr;!SHL-`&9!HX8NqJC9y}x_5V@-d;hk}_wQ|Wa4<{{RX1$jzhWAJKwe4>pw(XeyIie%QTHQM>2>}RnJ2%+e9JUcK{ z56L)^PE~S$)pTAX)Y^F*zHeb68nJwqC0pU>nl;g@<7l(ukFJFegzsC|qC=t>q!ibt z^(?-HS_N3X3+DIb)D6^a)ZHkE`p_nH09}S|aIFUfqZ>r%vTC5odwO2b@<3w!AXLmV z*b)0PcI_UEa#gG8$t#6LtuF_HkePuQ4^^5_qRCEwA~FFLltivlp#qpdWIpGJ{zvpc z+be1YL9x$!)z_frDss&MRpd3~K2AVYCA3J6TsywS!Fw-St83&fIm-?zpnw#J(D({3 zYd4mCv~9ioqj@fuAu0^u3sl8rS-|8PXgQ>XtlJ-6QUYoxY``OjRDg-pJM-DCqQ z!lWL5P=o-9O)hIMK9O2^`e?{VF*pDcw_(bn%`)^LEr<*%BQZ`3%yvw(0^WfU;#J#D z+IGOFX||@F*~*C`w{{5qq=Nb?MrUGwZ8_o-e4>KP(2k&5!ch#}_Z*I)ojy{9;@qu-6u5q($T%!3q#}5MCKQp;my#9oTuGk&NwNZ& z@o5s>Ac1p~6t;ozve2(zXDD0(NTVz&?AmG5SW9al_#$GxOn1^YYFOEST*v0gKfbKn ze;-3Rw`Rvzjc1*wuA}e2&Z(8l&R0`cCeaO7rcTjG=dAMyv>y%h!@P4Ry51kj`JFo>5rA?L`s>ak&LeWxMt-y_ zG#5g_bYb{0DOL4RgLTVoq2r%e7YC%Qc!J3AhK8QolqGz39XBa&TIR=0b35v#} z=h5?W2r$VRP|fA>-^P#-_6agcK;!bym_Q}K{7jaAjy(Wne)z+GAN;_fpHrEU6H+U_2*(`kDc z9v&h9dBlOU|K>e+w}e0~S54(eSg{nij`W`Y#rY347*vrT!q+>8T=*df>HF>U@M1l~ z=c`Q9b5{{KAt|H+>4KZ{8!KtS^`&4U2$yRvBXrPR4@y#1&;_Vm)-v6Np58jcn7b?i zUjjmsW-hINMY!}1s9ZMZbzR&wbds>$!YA%6tmt+`Scjf)!xN>1 zvydo#yMIOD-bCsB_j)4Mc2ivs1yDLXmk~TR+-fgW zW-AMw=J0Vmf868?sm z>q}QE>6|`PeZwZ_H^*Bos17mwc;4zyX!KSPZ)5u5KU*oVTp$?a$KJUO(EAnQJbZl` zza6iCbH{6%IsshkK7y~V-8=1Ks7Zt~3&MtnqL6}KGN)PZR`4>w&?1mntwwzUHCovY zTySfV|E!g@8swh{!H}WTAeO!>eH- z9-5q-v>A@$GrCli_Z>RJUbKg+`LV#I4PBO{z@Q>=q3Wn338i>b{~YG z2h)d1#1nKQQ>|vY&p|kw9!f_@N*fctDdq?5f#6_ZAk!Z-iwZ$!LY6jk)`^m8qC41)J|$Ib&$Gytr$b<6hgf&To=htSNKhps5>$sg{ghw1XgiJiq0 z54^s!9{$d3*nm$%J?HC#;GIxctw!pC8vn~V7qTYmrKY0);FsmS+c+|ESPEvp{VhrapiQOa2k(X~+_FIZt`Spd5L7a<_)Ox6dPcNB_Z^4@Wdc&YC#azX3MXy_hsPxh&z8V`+OdoZiUzZ~)WHj(A#=WJYFG zOl!d~k3=@iafpc7mvTJMX$Uc#Bx}(rh7K_Dt)iBSvCiFXfeo{Ki4_F46p9o<1p=L( zPV25`TSwOySRs*3mpO@Lhx$52hDRJN@)jG4u46%qK|H&v5RI<0D-0-qK@81?c(xP` zoFw&aYD0+UvZ3yYP&ON)-xkV_r#h+b2?*e#-v+_i2by{;rqh3-$HwDB@$NQnCA#^F zvEQ35G)F+Ei9%Zw^_f+g#v)e3A`@zj&w>iU!Z#0c63<3h0lFZY9V}L+NivJj^`V8i zg?-zSIWHR2&hLx%eH_Lkbf=R zYFLGID_uxyX$+`O?zzP~kOVjWjJ3u20lCnXTOLP(^XmolF6ZcfPv7(nlyrW8K5_Tg zQNsBldh$(gT5u!obDsMl{GrCzzy6DlEjS-{5|HBj;2UnZKmtPJ*q(fF3&`;YsP9q# z?pg>hWHyZpc?}Ds&0fSWf(!~;hF=NS3_@%QzZXH-{{|(-(El$e*|`8Ed&=1a^1jKH z{9J;7PcK72xOzB$=^Q?fLYKj0=UJWLkm%Q<(->huB4#X<*}%H^$8LA=5Bq!g=RAu5 z7r5dQE^xfS{vKpA41#RKnz4oz;(gf?LAF|UIkH98_mFLMo*-KlyU5lh1SFcHr{Q&@ zIp>cST%5*~=pk75WV(|IdZ036}<3vq;h1@szb7SU^ZUhkn74mT&h z#l3v4|97}#>F}x9 z$p?~A10?(t)O)DEpni-%31EqJii{}CO!RVA(_mkLQ=?^N49|stxB*zi+U8w+wzu3* zTtHjRsh&N5tX)si|C`)w+;#n%a8n?JID$58HnUXL;+I|k1iN~#EZtgGV`(w3N-ugm z{Qlgyp_r!9eHRJoJF6Qil?~PI4)0Ds+T9T&?qf0fQTOhA+HV+s=kp}|8fN?;k77)N zbc!+03VvSI1YO}Fnui&RFvc8-)dv3cg1ijJiZbMX6*WbW1&+HguX83~1UQx!kw9~x zu4w2O%`zZbF*I@4rro@51jj;vF@iacNGt&Je9W>BCHvn($PqAH3)L=^;qXBdna%yEJ! zaA92#6;TvW$Q0WVNS4?6NkQ z?j3LS##_nBWxbWIo-(D-i_V(fQj0~@UZBW-ZeoQlxL%(nG)Z@QDGAzMX4_Ixp+n3u z#1*Ol)6{ks%%*5EH=z!mrj)P(mlcoijMv8M@pyf#7DvYqb3@g&>-Priz@B&P=a2aU z0pBscQdzrhk7t!!d((P;uN(--d-)BoTMH5EZr;QlArZfYyq5;@0U;RptNg9`VCH>) z0`eh_QTPo&RX!ISoUzb)q=e!j1tp5fX54L)1mkxzWw~ho7M(`+M1g-@<&MQMcl@l*Lv^t6=;=LgQV5hLaWkxN#J>44v70~aC$K4 z$;J4)K&$q+BXJ9LCv}hOua<%C2{x90meDNJ<_nW($$J9$U9*WUpTg_l@YRyzGXl@^&-8e`yv&!(UfR&%h<)-p~)iv_t z$$mGfka}ERQ+1=A>EdY7Cnj}PPl{4nvove#>#qHW#K1s;h8Qg9nNw11*Nu<=>udJJ zq{mU+Oltz7#e|OIMKpk#>>sA$i|q+Q`psq|mY?eDo65%;=G#(!e(@C*IrRsu`-)@b zNvWOnC|joOo2-mN^mGnA6CW6Vh?}|s99vhklPvp|`8nqdydKh3M(s;k#|qK=SKa&0 zm46s59J5k=Dn_b~Al+L-e-wWU?*PqjBXt>djpzMC#2asYhC9Df+G-Z^?)C%Em(bk` z)AW3P2%lNPx|TOiuB8;vvPZ~WX{t(06%~Rp#QUaQS7FRL#A<rLR?VUFl!h-@kJ6+<+c6Mvq*5WMt$B zdL4t3jI`g!3inF#?z=fHAhRrYSDcmZ<@C~YaBe25$9Oy~({@C`(o!1)xU^jK+pOZR zHD9~f474{s^&;@>fw|3pq_KX|>?mpJ>La5-quBitlf)rtjE&#Lv8)`>xVv}D(AZTo zbHQnmi|CYa?%cUI15ZCp6{%^^tPfF_0JDd6{S8OanjMoz@qgR6~4@-zAT%sLV{IXjKg z)pQy?aOkn?gP|0E`=@+uZ7Dk&KBY=_=M2h4E754BMS|BxN|m&z7wl9SA4$J|8O16=LD}%tE|WneV*_ z1oXdz^17HVmm+0q8U5QvT?}}0BXuiK!25gjFM%e}lG7d`e=fQ6NMD7F`vsJbPS9j* zEHVii=gA&DNw++zM+^gmcm3ZHz3{5>s4<+4xkN9aCs%D-mDCeJ^w7k%ae9&H=|&Q!&J$NLKMXg=nWJ+VAF*Gai#FK(m_WDvrakp4dszL3~AGgs;nzQh(HwQWfd zqE{RpEyj8@FFm?ys^qg9nMrweZLLT1()Ex~7|Y~5vS(!SNuYX~s$cQHp?W>N6@LeG z!Zx)FM(|n~zx${^qdr1CLA-TctjuP}<|@~FvAyVj1#5Dd-d-%%|J@r#_|*Y(ZI|$Y zC`<}g-MmEKbCHUmb^*j{)NuW(8^oB|X}QK-6Nn?s3YN=MQPw6d9a&Vch=d;mWsg{O zwRRpaGq|~{8DzPl=RKdc+#h<8`1I*!AQseEp2mV8E7@SAFX#j9iNU;I3Ph4hB%p^m z(0derPT0Fi)MT6SaUxzX={`mV`In^`=KTW)2BaI0c20MW-spTLm+}oyO%3}}IrQSP z1VoXTzKm~Vnnu%a=>8K~%cG+t>^kTL)lyZbicUHAxc}c2B9hDsyd3oTWkro@L0M7s zq@R}i69$u_?w{+HEA;wrVVE8JpU4q}(b;AT1Yb zZ4H=NVqDFZS4n>q&$%hN_d$C{qV}|QSrSfsiy*e0xiZg3|V4mg1IvmMkrLQ6+;M=5T1|U6ex$& zL_JT3%Yj?s5)V2_n55hBGfb*8+etP0+u~5%Q(59eV!OZLMx!@I`uZZ8>JJ2BM_Bfz zsqtH!MqeX`R6nC6;`-iaH$-Oo3E$ zkUB}-OudC6Yz|(L@&sqtmbxf33+#8$%NzOFL?Qhe&FWU z{x8$FBg(XG^BiT^HZsmp;X)yds7OBV{Ie*_BBCT&me7u;pC(W5cn5@EdW__G46=NN z#63oKj{VP~Xv#JpC9Of={45`Tc@$DffGAmdl(YkZGfhA0GkskW(9`)yk>r8kv@8`# z76_bTAzUKSrEuZ2Pb!i6OOg-x>nr6Zw3p!8zhVa~ltopjI#A$IYLc3zRspW%Q+z(9 zB8_Z+vc^!0*u*rPcRlB7T2`wdUTXuv93zWgHd(^48&;Nwf3h6E2;-lBUVDzZ`kHgp zwZ`C;zq%aJm;dU@a^L0GZ{IRtSC9Yjva4S_f#C1Ni&vlh+*3~t?b|o>)KlpBbLXa? zdTRRIIr<-(^?Fn2CXE`?MySoy4EhJ%qYV`G`;p_&1v*dPSQbf=Sav@7{ed^$J%Eli zE+0Bsch|PQj~~KGYJu8+LhS|4awT;G**ES|iI-_c`OF2>11JFJMK8+IqzH*!@=U~w zZddH$9vr*~7)#O|kO{PuTuwy~WpW4N*<>r3Y)!V3z9Z$!%ZL3goNP_U4)moDhbMZ8 zfrHhnDo4~_VltRcms6?kQ{LV7Ztr$+)I-$w+o@DJo&Id#aCLNlqISSsEEox0lt>;9 z#}*sa4-AcuR1PbN)>Jc@Y)-`vX3|H(lP=s!&@oa;Idy_mUru*Fm?HNSx+vXiC)II2 z<;8jHhfm-q@JebWwSn3ReeC+ZkZPC1f%BFG==t0dQE%p#!^qb+9`}Vt2J6Lj(WX+^v8!UP+n=l% zvB--4eWTp${&_XBy4;$o;{&D?tWQtZgHmC9Hhv_j#WSOsg_atd%x9|AxoVXjh!=~a z0|UDRRU6I+zazHIl&bDJ%+mk=AH?u)in)53My6Z`cbJc-S(j+?FYi|8? z{9mCwpv>E19~T{E|NAFX&3bce}lR+Id+j{j=)&RA_$xfEu=jOMB|_$^&bRV53-%N2?l2jjdkUu;lX0d@5rF zBaPzT5oUV-hN#{t>@Mg!?qBI_26EKO<yr01tgzF>2I6R&CGaY;`dXkm)EH2WgYFK^ z3;BfAXuVP#`wDTM)qhd?Tw-lG@6mgpr!FI22qbvpWe8oCEEbdAL)TfJ@+CFs%m)*e zrP8#2YFW;|sl@3bi2k*dxSV8z;A59x-d*qtkl>@2UG~uno~*!w4+bnN@M+@r@#%o| zSu1cmRHfb?uzG7Vzs9#?M5U-9Y6kH6@FFIA{+uwo6y&-!knN7xo%YDRhUkw(Of#IvLIS*diu|AFv96{Sikha z4{z41&aumVasBuoyl~W&Xe=5_Bxk?uE|#ov7f&|4;eZzRUCs?} z-=81U#2HML=GR3x?i{_WYIh2(+R_)^et<7Fi~P5oXFX(7h`_ zMtzWal6sE%F7*QSBH=QNr$i8)gaR7cqXXhYs&8Vz|oB zau{V0?ej4_0xg2G5^;nXh7+W`EYn<87JM`!X7eOsSPApCsEy|&nZ|0s$|Ym*sW=z* z3rIKnY0L;d7K0S&`vr|zAHxMDZM@GXW2^*%xdh3}LS9-o2WXlRB{#1$2OU#?Z!WCZ zx>5~b9wUtCk+pAod%@7x=~qLS4V>u3$NDN$t9O5|JKyt5__%xT=2F#aivBnWpK+$# zJ>!2Zsp=QcdHcsHfImoV{;cE+S;}C|Ph-Ep@F0z|tf;KDgDI6^8TxNPjiPBxvnnbM z#ZzHh)mSbbS<_1K0b1u{$-WqWe4vPUR*+-C9gv%NOp@HSn3tP}+|4u>z&amK_C=w) zLjuu&7l?yzFNwiP#YjWU&&{9u(H`n&~6#g4LMdjVquC+i8md^!m@oM=*@HAe31rd?QbB*MY zyTjk3fF@@zn;SUQeL6B2feStDF8@rEkS1Zohzx$iZ-{78iWs8vjPzDF2MIpnoF*V5 z;WU(`PeT9&41d>6peeU5iX>4+L_(7ygw8V}$rCZ2_HI4<(4XU5D8K8QI}8}RmfB3d z5Qvfn3S1g#@F7~3ID({q^YE1kWT%0I<%o1Q<$YXX@pAxs*fj6@*V_%(jU6zr%@W0= zgEw_o=UNQY%Av2J)m*#pNh9j)H6lznKpz0`+y4HD{{<4f$9c?%L=5y^MT`cVQz&=f z3q~YvyekqG4;T>~M?Z=h+SF;Lna6W|ZN_=B``*3=x)n9(i1tZ;I&5}LEkXl4?vM0C zjSy^#6e6N%T)aP$kKYxJ^hZoBHe^JnTzTPc{40D7$oO??KlN&mgKq@NoaoahSt)e=Y!CK(!VG=88Bg8Dr#D6R)PgG_kHk#$s1=J@&JOR@=^LP* zVmRTIUtW=a^J%-^h6@C*Y}|Cdoqi){`%;(X!<=;=-GE&EF&KdE?LBYG2hF%E^HUW5 z6!udx6{eb?EADaS&m|kSLgOXAUjf;&P(i&d?B3D@vD75IgDCRE5Cg)f%dtSn$hq#6 zE-y-;o;#(TS=_YTtHC`{K|%ER@WJ8XgI63HMx8@{!^MSSabf#>2^Hs^53x*puDP>G z4w=Z$&Cz|emBjHIrf7O-py^8-co?4Kf9@*}xf-yoV2E3VopA@!uBCgYc^oZmoP z+xKi-TP}mm;D^td2N!ZLWe`1YJu#zg5Q)hpbD&yNifwR9Nr-uN)51qY37VvJURyg|s zL8kvclZoi32;scah-}CMm%kD*3Gpd zvj6W6@{*OJQpu5C8a#Aa#Dj?VDT@QSI?xp|~JzeGQmzP>;sZtJ<{@;HM(-YR?uyh$-*k`9KSXLfw59r4Qr((GpX{&Tui_eI zLeC_LCuxD~{kl-D%QbBB!7YQ;@LQZ%T}ka(0|7lB z>5}LOeJGNjK7GWY51|9dS>egW-^Krhvs8v^Q)_@8?gox?n7Rz+@YU4yFdCdo56QVT zi!PTv+URYH0eZ<2y{TvW^Zc|X5gCRh|17smJD)4`MsExi8diyJHEgI8sH$o6ZjHqJ z)PRAq;eW4TXM*~UWRN!O#67%!B=KjPB%H)eyL-l+&^OwOMH_GJ9=8+=F8b}UepKjw zB4bx3E0yG~al;rj4Bf)*RN2n%PFBhr4P(qOa)v?Q;R^=rpceGq_}6wKVgI$Hh@v9h z_(H4@n~C+uEM-1m{f^ue3m#`8g-=-aWVt+5-eHixuaqZkt2|YjArF*)ch=z~9tTP6 zBy}rwJB(PT;0Yp0a<&p#m#|;yPPWf=dWXf>sKCEsrdPTXFIBSU!Q0+8R_qD@JaHBB zPC}eQRfKFbV1A2Xj)PF1Oks}4sdN>y0v^hw$bPR>dWbw#Q|7nitb7U3f$x9Q#6u*h znn_|Whx?RGc~4$xAH!UK!pO`w%y0Oin6DAEisM%I3uu_Zoap1Y8-z((oI)QqzX`dH zGfX0d1(qhILEx=sdQTNBaEKlvjYHd6*}3!^COt$8%d%AA28|~nC-$CbXk3QYnQxlk zgkt_I`b5wgFIwF%B6Pi=a{@h*nxv&kVjqApA-2RARRP*E4|JJ-P?uvaWhQc?OG+1a zc`cDuv^2-Fz{!YnV6H}{qn6fSa$ZQXa|Od@JDBe*6Pydnh3F048)8E-Lpc|a68_v^ z&YzG1zf+7#w{C0n?VRu>GdMdx8#GbzhTCuI{`AJ%$RatN2O+t8GB^M=gBb3AAJAcr4*>A*sWM7@OtS^{tFdG%m5lj?eq=bm=m&v3ODcB0>oI-EM*-50dX+5N#UH@u@I@fqtcKCvPVE3bOm_ZK zcE-cSp4>uwDW=F;6IqlZd;R#uBPUJIEu$y9cxSPgkeXFd$GBjB`}vJP7w&uiLqEqb zqde;qu+I>G!m<|s#eKe(I%%D{75o2P`GFB!7m@&drx5i zz$cHs;UC*mW!VY^WjPqKWE8DL^N~nC3V`1VS$;P-B5?}0+ZPcyJwUU@WMnWIN+qwn z_u+d_kwHIo@22^=nHF#O`SFEyoA+(o{Mt-5n|bYj=4~GbaHTzP5?$lBWZ4RnKsKVJ z2}|~xgcc|R(qY{Utret zj&Mg_>q)}AtB#Q#C3A!H;w0H31__|6@#L6JBLe_6K+3;#zTvsR*lErJ_5oNIwDYWj zdgpw42jaMLe<#Ni?=n}?aaVghh;O_c@_fxou66W$EWv4)0dXAw z*JF1ZkozLu!KDpvwzzf}NMJ^c4MxKBt0S$|im&_j@y>EVk>+{F;* zlr<4iIBcZ;}s?_t?`^L1ZDzZeU;8BjFk`jdEVsr z1SSK;e@pAD>s3GcuB7y>D0kmHvW^yVfq*Y!Sn8w-3(rxp1hG!h^Oy7>;kF%wIJ;p8r4Ob;$oJ609SzFW`e~0|9A#2YjLL z4tU%0Qv`YnUU}+n0^JQzVJXhpPO_tq$0xNpe~m>Pgo43|+6rA?q4B(y56Of#P~N#G zz!#pzlq;`iUHW#Rog|N6vPH*T99vG-A3OU9A;Wl==<}6jp&N#~NdH8TospYwcAQ%X zu|+on6~`2$x_Rkcg53QqfzW@D+}&?%oHnAm9yNM)+*?83y9ubyL zf2=u{=W^N5$Qij-gGjWk0^k}^I)U92%LkkFwhL(ZNOwFqkPILcuO~s{DvxDL934pZ zKllmx=yflOGUp6st7s@o-;=F6?>O)T`tp;n)04#@4ka5&-WN`_ruKH<8XQRJ_{mQ# z9DAV)%1}MiO=W8c)v_2pc;J9@n9_-je}=si^k{MxUz{pa6F@CC_vFXp)HT!@>aEn< zsXw6JLp|*7CtXG+jqI{>CAA<2A`s!h#Mg~jIP;yQoiScq4lC|S3LV39^9N#*_WnC* zHeE=gWuucjzwt7QFVL}w`U>L=4-l7S8;d*JynpneRq3yt-So?^e8lNmDGRP)nNT4aZH0Guh`fn&NVCz`BYKLq?qP({!gW~p7EE!<7Lk9t4#IT+~zpXV_VLfccce*q!^45+Ib z*dUX(mhX|}m$?Twmccpi2u9PL^o_db$%Qj7@g^dMZgL8^cUq&Xp?Iff5&@ZpCpP09 z2HH69k_q?{M)C;(j%MBj(oF#(DnPkw&i9BG zg3=J~K14tgtc?(e1P-5{e+l|U*)kQqP)&}OL#6pr40x+bbE-06yY6|25AL{nX4}H5 zfua`HS6p@HRV(z6$kO!LuB2|5ncLWENW7?tmHyc)W@$x4m+;|O*7Z|~=z*lpszy7J zCySibXIXZ1T=A_r zoy+UkFnA^~b;+a{Kp#t4c66{+j`F@($go1WnRPQcLpNjcqMy+F@C<0UJj|pB%%BX& z8AY<&X&ENA(k+i9e-nF}M%+kHy0!Gfmkqmr-2(k^_m*5U(MZt8yY~+dqhC88LYo%< z>BAo!{$S@3`dcHNX0AIAxp1J{Pe1Hj=aybP3u*Bz+%h!^awG9Ey^MMdXmIyZ4^fW; z752{Hdx=Eo9zA}cf3GY1Uf@ECmoKFapylf>%Pc#1x$dw$f1#7fw>!u+sv#&+K(6pg zR-oABDaP`Y-**=8u^TQqIzBNme)N+6Tm)`t?rb)99wR~1U2|AP0`#CW>DM$rdIm<@ z`8&U^hjsmNXCnZ9^yiTBr?MMm`E^7V0KyuQoWBw2KA-43BO)yfk#Or?rD%{|C+VW| zoH!?o&X>L9e};(k-*fUWerjU;RmXmH>{a9qdqDSebN8{`jRpiwG@TinBP)CmcxRh- zA2t;9lwuf)Gou(NNenh!zbpSh8n72{$vDxq-^nNiXCwCMbu2oF&ck%yT1&t^!apzam9VilSkD{1E>dM?s6YlA;W@v3Q_Ee<4%I5o0Gg@r+#_xp-Ds?+7X~ zZ5GX=z3o0WOB4{699ZZb%$P)GVObs7oOhfR==y~t=vxTgCz?J+bdLCZ7(2r%Cqh0T z%l~j;Lcipb6j24n6j1DlV)9H_vu&0Ucpopk_U#XeEbBvmB_jbjrzBZWoI|D{Gi(%S z!%J#vf0#f(7!iHp!I}4>#L@4vf@!foW?6JZ5`9@&Wbm@MqcmnY!5<6PRX?NJ$pIVi zVmxK2vdA+da|;Z{TQI|+Z*vI5C0;f&K^mb~KMxfI*&lJ-#b(?L_yqKDESGZEv`)Kw z4M#zP+u`n^UheS|wAp2p+FchtZ{%}1L80eqe_zNY5W9qo#O0n{a_%8K#8`TQ9C)Fz zwN~5us%=2@S?6QXttI!lkxhq_-%;I!+O~RM3Z8(2LLRgxy0!ZUAYLWwqxEDkjXr-K zUILSKTCZ(;m0Od-`6Dej3K6xnstCg16KF9Fxo0o4>xyRvbTY7r?PKh_4Y&Ks|`Q;TN{LnL(_-gqSse9)-bN`Z8vu{hYvcJwD*K< zD_j^FJLESaGb>4+L!J%y8T<_HP(i9ff2{=B?-G#tC?oG3xR!K%^ND*rk>6PFhy}Em zKwP~EeZ|=dc28s&^J3jq1aeMW?=%L&mM3ZVVA9UA0VgM#D(-etvN3{`C+qbc;*zu& z4~p6(?Zp;;D8^R5YIOM0vQ%md1itdJL0_?h-d#L6R9;ind7+jUJs6aRTK;Bhf9FG| zSJHFSWAEB#?R=}x0_&!$TvgN;%+JQ(ip+(a`k zsf)k?Eh39AYhGXwot!&37%UCkxJF;|w&}TpC2K2yYu`3LcOsiMV++lZ+hzib@bGQ3 zj)PJo>$c8E!V#2;#@Bn$A=|PVf1P$P6r+Jj0c3}w^iLv#;Yg`j3U~fAmVQY!1eT>T z&%dnU>1=Y*4*f~|pRRp=f!gMB!``_%NtYcWVumDVgOOA9c-MwW%#ll`&(14Bz$#Im z&8UcgWV7wBBD!<2uA`RTG>#vI0D;PSH4sC=`J#5Kt~%!w1szlJs_}W6e~!=s{rUD2 z7>6;BpJ;!;i+R84_dD+lAWK)*B6Y2zeA&N3NAK2Kq*ncsqrlA08BP5fKA`c=7Y!^a zP-$Lq-l-_&=V>15pg-UGxCeZ^{eH|r_4xfJWI@OMjIz%8_qEXem;K(JpO52bu?jQa z@1Af(<@i=sOKZ8bYa=A9e-JIQAaUEbPT_mH@24|oe|(A_?mkQYFMjMXvcGbe9_fDW zGPG&r$0I$R^xSvx12_XRQH+`+t4E#}50O%VX=Jiwo5L8)WY7o+LJ)6f_b5aVwaJFA zynEKQOZ~`B78en+CP4w>OGXY}w28koIjz_AezrRm+C`HL@F<$fe|2!Pz<43X`N<5E zpX}qjdyH4ZTZh7-X-kQjrRi8=;(&7c72-bd$+Z#C)pH z{D_fFru%b~dHRBwf8MzqFnM3V0`%ppsOvzQdn0uZ^)~7q)Vo}t^ekC!aGhm95lAoF zkTpRR$pR6=2*Vx&YLh*`uuBZZoux(dLWXzGiYImhSH~c(rWOE6M63v)u()zS#m3pzBTAqRe#V5>a-N` z{Lzsh)hBB{#P<=o=%2Q)TfeP&QOWTCKfJvMfE&fxKfE)uMO&rSYPIV1B;B2^NT<{3 zeEsZmI~QE=VVZ4hVoWm*5C>y}O{gId)A0)-lq5hf9a2arri79P34sJiK1?tKLf$~$ z@DfO@^*1vsf1U5_gYbX9|NGrZv$NAyyE8lUJkLDO@6k?boIeNf3O{E-<4LOKZC>*x zuV&4L8DEHJlI_KKYc>g%W|~VQEe#Fv=9c8>5!D~vN&mnhJLw;M22WQlA^WVxa0JSl zK@15DRe^rfih^@vmQRvG68;7DSvZI^G(^a+ITr^*fBAeoQT@AWu<0y72xQZ&p+Yqg zuil4PjTgNV_?Ibr+^V;_PZeb-xm3vMids4~aWno0FhP%XneKDwN>rfuA>Ft)7vc5g zMBJkcn1E$NXl5{_9@Ifb-RY!NQ%QHULH5Uu@i=B0Eh3+w*hdaoKF*q^K?S@<)bs2N z4#7|Df1bkPwzkCu@Lc;L_-IRs?nI(14xYn7vK+U2)*q>OJ=&3q?$-V)dp+u3acutj zY`L5z!Bsd2GzW3md9}yq^Qw;SsmZ<;!e26Rri1At2)LQ? zN0SFrAqW{YOuL%WKT*KuC;)>wSx6S8bXgRDmjUA#EtKMw)IKIviQ{8OqVj%+KN9ip zWBic|QRD0JzCD`Q!7%bo;f`!S@fh5L4sSdogyNR9UXU{R4LhGto$`HbD5U%jUFW_*ke;D+N zJH!b7dV}zHx_TcG99(%N2{8w02hITZlDK`yCR{-LzKB0TFWrZJ9zBUVFjsCeDJIYK zGNYIuU&*YaGdN>ScdyVjS^n;q_iVe>o*&7?<&!DzodkKoEzlM~2_dMGRHV6gx7CVrXdt zGt;=@tBu_eqgXT|-HlE?w~JRq{_9*YfJ4^3LKOBWycSgU$UM)vi?xg3V4I^R2Zjzx zvKK%$pn{4by8^2HQ%QkF#M@EK(5rhjtyZl1V)vqmS5>`{McuU|9&tehe>5wi5>)Kp zieiAfSP1zA0f(~7Rnv1JwiyZBQx?;L-?3TD5@rRp3L4i1;3i1-s8-bhDu~$(ohqov zqYi+n`>AwRm{@f}`~$!UqA2VmA-K@qMos_;fw;<0t2a@Eq}^o4)PRcwv3e7Z!v7S7 zYC$#JI($J8H&l0%N-%*#fBO~MkU$#++Xy~_Ca!W0;HDwf$b_py;S64|a63byP#{ms zBZxTRtGL<*r=(r0xPL$4CAbswVriy`M=e8f(`#}eLIiZw_YqSyQ4*XqYSWeaG*g1i z8EcR2={a`o2hQP)6?b3St|;x7-u-YrvNGM5O7+boK^k}hfn*@ye}PMSrX90tT2Ifk zRmV*0S>AuzLbGTtJgt8`Vjo(of`jFxN-|KVJ0HRC+$_dmGWfUmGYkQC2Lq1DIU(!Q z&-0+nk@@hB9B3NW_o?|>k z!@kD_f4%o*Z#e8lf6YcH?6v=ks#a<^{_{`#ZqP?+-%Q%EpVU~;{K1Wy2?Y>#cNnMP zHte?q+Z)b=LfO!RcqgfKFH!fmPq^_$u!+V_#wG8BOl{t7g7@M1vcNE6U7?rE zX-18d8GrR0f7^wL^il~t2o?y2CfE-MK9wI4HBJ1Bq-he^g`++-?6Y+v5;4G0U?H#i zNHNV2K)+_-GWO7Tal1-Oy>CPudJX@ko8fO6FCI@>rXByXX-p3@gRI2|=uYJKJGHVZ zrJAPtq;2(sVvyPP2C-~}Pm%C7+j6O@>%UJv{jbDof3Es`N31CtZHfWV5p9m*&v>Ny z#)c5MoYb*T2{nK{ifErADi>X(h~RQj`GYS;Dw>lH4)6OUdK3*%lzcp*lDV$BXSB&4 z)4D1a`GJ}JkPg&&7v(C9aa~cKaBYJ`xIr`#&;$2p{qcBg{p@)+&z-$KR*!bIJs`zQ zTVFnZe{R0DH9vR$z4J%&EiL)c`R9v4*V#w7V&V-V#MH8Q?vbvTbgc_M&{m$%#N2N= zQ7ij^WX3juK@$Y^j0ggF@amyz}%e*lKst2+vV9IB-v#6G;6or5 z{6`S?k#p$&8@y)=7%bRdZy$tkupOL%t8R>iI8v4i#q6V;vU~{lW;6uawrr`(CGJAs zfgdwICW+}ig5*wrsN*-FOf|&)h`>4|HOC^=8b7g;UFh5d{edr><1#q}aTKm=KU`hs@#0yM3`&X`3DUEXSs?m#5R4 zF5R5wymBlmK&~OZ>Fb-)>FOy$uM`gu)OE?r1v_#b)7sUT!74MBj-HzAm%J`;f3E{M zKJinRkKBTinEuV+XSy8sc%evC-H24ALRY3-Ih!VLCMa7}%;Xn z6BM@VlMm6AgY^jr93iA3;zXo>T@b(xUc8*aRI*y5$ zLU#OjWy z5c!NmCO5orIG0HnK78I3fBHdnEBs+qCp*^geH<>#MYcp5H-uMoHP7#f$9v{CcdZD2 z5#*vP(R7H(EiHC*e-xLFJza||8{u7; zS`zuq3Jj-}VlW*jDtO6LVEZCRlWWn^A1qzGIn~fWqjtGeSUUF1vRdtD#+DXJaF}PQ zE!QP#IsmoGKfQsV{?CdA18KEpGx!)1C>=kISaaD7wl$~)ZP_`5=+>39vRYXI-p zm2nfJl)AG}y24w8fBMgZauS|of0+<2;Hx;i_Z<=?0l3*dF4Aa!m}qZH=H1Zc^-H&b z)@1t^BaMwOamapF7S{>LuOEi*1HnebeedM<94eVdwY`eSrJS7M~Nn= zIMA+3wHJpvpg(6Rx*pUu(PR0Md+oJ{tzNdIP$bQ-e;)dBL5vtk?w>h({%NFPa)r~@ zeXn;w2e+BAnCbWr*dNnK+Yu7AeT9*>V#3T=r|ChjH{_}DTzA1=;8`$_$1uS@NRbJK z>=-#4K@>FxKOiE`b#|htD^|+H=g3+-0H@fcM_-jRe)Pw`_|YgI4hh28s~gXJWvL)2 z_F8%je+I=#nQe;;uyDvxiwo_G3ejRTTI?YKSnU!oy5jP$DuNnTuf6$O|DgsX`&am2 zsk}NN<2qcuZDCv6;uQc3A#w^Mze?^ipvwtPHQVGhEVy_~gzf+__?O~pO zm=6Z|AM^MV4BF?Thqz!s;vaZ`mjXfVA@n`;Lp~4`xd$HL#9)B`A)@<%ucK2@oLXeh zrV^YJC)y_BSwB5lC@>Md8T}iK50swTUU6a^{?1;~Jgcc`R`ZM*#N{ryJJ;2fn=yl? zf8Bd?rd-b4oayX*nkYKlj7O}p^f4lkdJLa;?qf(4FgRYachUF|jwf(q;L)bpO?{QD zJ)JZM9?e$zaDqJ@Hw#bd%p`D=B)CRb5~NWa*pHI|8`QTthi%TmnS)+MccC19Mr2nF z^PzZ!q`s;K0rhu9wBAZJe^oe2p>c%@f6=3L)ZzvRjAt8V$9b~PNxpTMILcvkfJ4Il zNueF`I|5u&{8<4lP6uh^oZhX`6PDxYnXg+r)j?*2WVti|I}e~POe()dC;lXmRHSLibZ++1>sHKaY)E#? zO47P7)z+4Rk0smNlhxq|8U`8?f04#Q`{GrL+6#@5L}oDi6FV7DgRW$E->l9Rvvat1 z=dAwjq${9VsrKYnQV|EgJR4*N=JXoY;#G^=arMQP(U-~$X6pO%=fmeQ9~@>Hh?HHg zt2EV(3ovy?&1I4XG2y6yoPcuna`1%RKy2W^?0yDTY(xVA7Nh{=byQ>6HTW~H#CT1V8!2nU(2={CUiS+ z6upa%Z9I;e{&8HtUTR)20EzR@12G&B849FGeQroOAQ>i^HgIJ~%{Hktt_C?q9(hOI z*D2;496yE*IA9k+3Zwo|b+Xtd>pOK7D~%srn%dqI2UxkZP8eZoe{)=)!PsW6?lzQA z*MLV0$1AC*Pw|3~FWJ$56oQZg0N?83rFVh;Qv(3H6I*XT`_g4|z>=<(sMl|KtYpJ9 zx9Y)5Q|sVqf(#@9+%T0pRp)S5Hh;`;&P=xT zF9Exk^tUH`jl;(*ZI65y@&U-<3P$L|NIU%{@B%@W0p?49>hiZ|y-C?CsF)(d^8w-@ zas$A!_WObiF{5>$e+UvT zFA7q94tfdQe~0P95VHi2V~XOek!e;Z>~vWdh`AM}5e+hcVo-y%&G`;87sEE3;D*kK ztx4YqDh?jG;Ezg!vWb;YD5(^J4Z#9FWhJOwd*r;i>5kEqyYI-d9)NxiSD2%f+Oi&F z_TeiQmUv-WJmV@P@_I0+=kuclDL&9F9(oRpsp=+He@*#;Qm~Kn27_Mk9|c8W)r1T# z=qN7M<{YzbX(5mdK`^j#k*YMb420FrL)v>ZS9vIpuirSbY+<)F_lyyT&UhbPj&vr9 zDba;wZ;8sPs6iUx(TY@DWjQ|Ua%h|&9rvGD)5CJK9}TjR20IC51@S8Uy)@)e$7~#A zA%L^!f7uWe=-JgvXU%MEPR4Br^H6|xZe=G;X>Oc3YhhyPQA>wYsbS{;-UKbUM(zj% zqqz1FEx5ZIm*60VD}t@0#?sD}IUAqlA++O3l5#6)%x+JPw?Yn-Hn|pk2OWy%=@H(^^v6qDUxRf0e9-^T-wkopahChwDyUkI0H_5Lzea ztYCy{$Fo-#bv|Cgq?zTbq2ODl28l!p-VrG``u)Dh+__<&-{067v9FGF`oe}M#D?e2 zjnK5{Pdy#Uh}Aefc~N1h)eHnt2^9zJ(^7-Qkm>?$q8hSbVDL-!uZhExTsqNQNMu3Z ze;0b%4ow7$(`NM^+Xu4oLQ^uG1;ihU{Wqlpxy)RtQgSpYaU^Gg9@7_`IU8S>7$(r9 zH|(xu?!~I>p432lus7H~ki3V8UGGWu;R^@txxv=(J%uBZ32(5aYkKdR zX#g}NyHYtYZB6g=u9l!TkvyVsZ>Ti{f5M3x{k{zT6mwvCW-g`?8Q_em5?%^R6%vmD z62Y9cNrZZ7YRpKrH2Q(zU`Nw}CgHX#Wdi<(`SCLDEsn~^h}acAn(pQ}ggAvm-Kk+t z#1mI{oa1(|9u8gc7U;Xee(D8|=ae0(Zb5KLb+b@%bKR*2ci?iIil0cO(;H!9f9MKu zLaLjTfv`JO<`fA*+?Ja|xZo8VNn4K}h7hZ>@D$vdCIA*UhImcHyk{l#;1y0$RPf5W znOqVKVfXtNTmKJ5!y@OIFSrf89DSHD|Cdw~UW^JUZHfEc-u+e&V6W9$F|I+R@zI zy|lX+*G;3yv*BzuOoEs1zI%8fkr&b+m!lyLB2y*q z`3C`v#os5l$NV`nK1XsTe5iE3xG&=NyE~&vyllDMCZ+(ta0`w|-y)TJvtd{z zm#m_2b|HN88@Q<3bc1t9LDT&ea_X-iz-8+xK6a$1#~+LN_r5E{vvaz^`J^FxbG#*q z|61bp^X@s>xbUJ|245hQseQfdPSVCbc+A%I=TQxVD?h&HGfc70f95mGm=l-{%qHd> z<`PUN-p+iFd5n3Ed6D@8^Cu7jSx^N1U@o{5+z*}tzXZF%-@rd114U@SIBbWVun#VW zN5NI_c!tq26>UreHo_D&cYr@7V%1ZrefRsYtKe7{G5VX7QuErDCX+q&V@&{_D^@wz z#gUPa6S5T|PPc@je?>qnvN?`eCE-OKzk@l#a}iYNj0WmUM`eK8F7gINgC^PrL`T)J zSWJ$`z_^j2HASoja4-Shuzr?yUUG_qNEM&!C!8bh$CQZQsyKok;&R2R&j5IQR>}^X zAraA8v{Jl0JC4Ued>4;Tove zRVkVoJv~uBC`laT;-h0DOel5gkl8^D$#M>|Yd_ugpvvAU%%b?y8mP2`3Vz-lB{v{k zAvgXYt6pQ!G*jY@g4La|)*=lmAtb&7rgPm?58hsxL=%XSg`fi(VFj!saCXPLcB zF=W7DBOErWe~%d<_-5E!eUxlZ!|C3z{hN-C#ii1cQpr9up!qcXxh4>>tiX*H*%>vo zD+12(ro(tHFf?ol++psX(Z+$&A}?7`mr`KCO&ckyY@8NkKeLF;= zB-s1gr#PPHp2Dg86fy9E=JSPp{8CQkSMf%~#~;S=nt>z2n4+%aNZu0OzS^a@1P*d8 zuz`2EWXyJ6hC}>WiN695IM)pJ~BG5f}em{?kW2shM~G!I5w`_f97o~`emLiu{;eq)x9SE#rXB!)?l>L z`x6#z+smN4_I^l)08+f+@T$EZdc!1+Q?6TZ>7|c7R{d|{UQyGoQ#CEDs`oo*SBPXF zXrPFx6g92zx`x#tK*gb6tk+^#J`lV$glDr}YjkB*P?*zt^y4 ze@#O&q6Vd)yW#M$L?#rn|2yRMcFrUt0EgAvrP?2SfrLXO7$kvxChk<9Cb>?8@KjOK zX#6xt6J^(_9CwD48%+|AXfht%sfi#Y$MD$M=4Se(*scF*Ur@ zej7LVBbVUcTaEkNNFhb6gyM4#LepsQ**{CIIC@qfkd7@rv_T8Ff=c)buSq=8M#T8j!tsXnJh0!JU9#YZ)M)Ru<7@k;d%2mj^&qgf7}JP z2(s4@?>rZe1@_z-B|Y-2!hsPox*P2w0%iqve>HaFQ=I5Pvyn7>k^n=sSbo$lCjgU3?8Dz}EeR8{< zn_0P%+yoq|?o!F)0o!PD^#kx0Nw>E(c5fShE|Z=QxlO>}V5qxsAJf=9G-RmIshzLx za?&AvywzsK<9OAtqK!zd z>2~!R!0Z;n1Gj7=FiEedegpy+ZE0>__Lv@677rmkPKv5(1MEnk-~$FjMrvqAA=8g zk&|mqO%{(d4Ry@!f54yj@^j`_+_9k?alzpm3ug%Md zsYNh5kip05pYRdx!L|NGTL^}8wwq^_h`i_f@5)wKvG@GoewMepeQ_WD)cpv)h8{qt zGhxgnbYZT4jO?$&JkcoRG)Q&MEzaLnDGk7~K=c(vBp*ufsMnN>Q6GmITS&yjUd?-pB8P3 z!p1PcR0Ei%jZ~jxePOs3H~GU6w-#h|-xa0EMXe<9-eD=<+tf>b!JBeWCV zM)_KzZAE;>9*jdloH{1=)2-v^gpS0Ul*)3Ldd(%r(`rt*#_Q01{R{zh-&R!(!ngmO zgjE&({Y3kH%NR4PHRNqQ&hjlY0zelP!M=ZN>^%^oc}I}EBWToqTaq;}Z)^svf4JB_#UzcIilLY!-Bd*X(6Wd9gssU>3_*zDdtj+J3KOQD8O%yKo1wvf5mLAbv(HgYtS2b&Lx|y`%`1& z0{GpkbX1DeSPM_7*9^~CvIGvS4k08d$XeQE%FtChZO(A1&@PC_*|&|3j!f@e%(Fg! zuDy5oxK`Ob1wj#jY!SE=3D2;f=t!1XBv#*IuU$Ofz=W9YGKMc6&WRpg6tg4m$MM6A z2U3lue|kN~&f|auJ+2Exn1(JmREn$yH-P?u#&Xz%5b?+t>df``5i6Vz01UbjN%NZc zuo-bIvV25@kBl%(dj0JnJ=V-A0^%FyCE(!&7jko^H=URpN#;*%@_8YM`#q6(D4}}= zrE{#h7$8vwM}S`u7m>W3wV#I5103QN&QsmNf5pN)(!DMuSkR{+(d$8qnE*-MP`xY% zz{RMC<)0E|ZW%9q*M-31#)}5;5xsIqRRGzokkz29iyRV?Kyg8mB1!lOCowe-h+99v zf&IGI=ODnu@Tx+*ATSf{QhGtsZ=s>uw}wH-4@ARtUUu_m5yW~tl; z;ML(wB4IP&7}*?~M;7*%Nigp{3LrQy8E+kN%QL^Y>99ciasAVlEID<_*C_69$S_uD zL~?Ar>DWeqHN8>{zLW_sgVHhfiK*B!2l8fFCJgX3c1iA$)_8JYZF}IbGfo{De_DLn z;>A5c@@g-U%e|y|hrHU=Bzm>xZN}6EB{5VZ(+j+g@AsdgOHh#s;(6pSYBN~_jez)N zC;R6_S&J@=MnNd@X}YVC$`!LEJzFE95SbuSyc=qS&>Bb1v-|_ForrTN?o-^^52+A= z3AL=G*2}1^dV8+ojx^|>6bk>8f90U5x+{1ogzU$uxv7s?;&aj?!R501j#&v;Bpq?Z zXX_!!rIZw;Y97oO4i36gVHM#7Q4WnsB9uDSsM;w(QEKkd0zxP#1hgJh=*(36^_Y+6 zPSvziktW4-_++MY@0$RgD$A!r0H31z&wbD<4Y|Eu_mBkr$)r-8?MX*5i!O@@;mR=bB!KnRUi!hh}j{Wz!PXg66gT9{X+qeq& zJ`VD!fIUj8zWzFHh>nY$=ykLZ)8ErDm9c<~3qmx~)lefYQ5{`2%~=)5jZke0s?bJc zP&Ic^NdmiifV7cd4xwH43Qy3mS1MlURXYmlcW1kRCnT=Luk>0mf20F(_Pgmq2g$v% z`ZY;~-%_i$S~_@5w=CVx=oWb2UH~3|@64hN%*Jh1e~~WCb_EQ88)4UqzzDcz7t*jq zvd&Z`SgQU)Qo%3mdr1>u5f1GKK%+xbosHf@+vt8jvBx>tLG{g1Q@t3ZJC#vjP`wZ# zSLupDuA?FlWGT{Zf3Sop2ckl&3q;UZGr`d(04Nz`gWPgMx*ZSGJdudfJ#%=S;*k)7 zk{(Ql0)E}g-OWNpXW1jdYRnh3zaH>BZ@=m*Hbu;IOAzc(!_BelFPC!>djp{u$roG} z$>kzYJ2o@p@cYw>z)6x832~~31lGku0Y2gO$)b2R>j`7>e?hlAg2#@D0ojYtSU^T{ z@MPtAtDzW#5Bb|Op>4jFY{R1DUP{u+{MwQQfB-hrz=lae`(^}%n23rgW027=i5munY7@;R?;Oz44J#2IsyQAy?<@*`-{QQm+gY6 zsv>wnQk44?{Ad51gg25mn*?CN)=u#7@Dua5&QJQ$Li~RF?Y}@^c(UL~u=jod`i|?r z?03sR3Jm@Mvw|uh!Ih@ZXFj3m3jW;CbS6VEyYM^ye>@`E!vuAwf;sag%rVS*W;4~| zxQ4lrO6VVFe#*Q^bk=LH!DJ9EYZ8z#Vb;q@Fws8-(Ze8wIURLLLSs1!O?VKI`FBEQ zWdemp0B>s0?SxFL3$klFEo4YKAhMQFcg{1e%E&pg7OSo?=BVDb!OB4;(M5t-y+BkY ziHFw-emCE5+;lPP)&mk0s;II-yv?NPh({nha7lH;7@0PBy$^C$O`r% zR^R};h*ezxErRd!;3SUaH4cYj7bmjIaR$2_{f^*qM+H`rbr+tCWdX=d-}A*{xme7= z392lC7JTXpyM>5J695t}A(e2VK+fgAivrkXe-BWjwO^CaZsT1mL}3N_*((GwHUwS} zg(AtpL3Kz_xGOnKO!8N7+!efxZ{bQ#VG%fwMH+hy&LLq79DsRs?!AkGE%kaq+zvjuN|WqA)?3&TzTR6b z;HxW&aUF?W9|k*x>s+-L`~L7{Pqz(G)XbAW-y0SS?6S+TY|M$v!$-@ zneN~1+`PEn80&x+~O$`Q@0_!57U%hrcBlWN0+kVj3&Z3WNMD% z>BcY_R=FC7L0L*VrogPzInh+#f72y!i`%`@)8esL$}q<&p6a%!hSysS+{D_8q8(Ag z6F2g3TT3Tc^PcJ#@%%!nw0c%}a208@J>*eXPVm8PTFf^T?~GNy*lHO(Dz$=L45Q=U zdIegK&cPIqh$-Mhn6=Dl_#Hcsxrpwx-pt&=e4lxmd7gO%-wCQ%M$X6yf5@oeQ&ox% z+fyjk)!{4$2c!O90L7|dIsW# zFA&b8TXSt$2#E_8GmuEPe-`_M6NZbHhFonuZH0!QE08L*^%mG@-_DPr=5Ose`icQn zU|G<=q}XgETbjFe_2NB4S(QrzwF1K>Z7Wz z;g8=rg%@%N;WdWCEIvY9$?exPzuUeBGxZ41*YLdRxpNzf7oBo9yPjd-qPk! zUt`qmf`}7jw-JhEy@6muLrYV!xsYo~q+=~><{dvcM_`*`mL_4wShHeHtgvSJbJM}2 z!via49^Tmdqg;D9@9Bzr@tvC?`{$fA=cdQhEn1$OWN`sOfT75!auZ2FW{vI7zJg-?|Q^C^pA*OhtT? z`8K9M(hOr9I9HEPzUlD^*{Ea5AE*GHcEGtmGrOG0=J*;!DAlpz9pyYaP#tQ5z@XRl zMDvcKslNuAj;JD6rc|zLl45dAF#QClzErP{iAM?ZB4T0;E0Yo z`f(nfFLRjm>#CHyDrtTkzLZ`Ar_>c!$1Ny-N|t@_5wS3|CGZhNg$&ygJ+^d2O(&~R zn2<4bD!9Da8|Y?TP=){vm;pr)k%%M?&o^EU@T`|*1;BAc0*O>iT}U2ZD}pi-m$NRn z2JOGJ@|=(3f77@W5ZJWgPeT{$W)Y0I-DKyuRrB<-d?1>Nvm(bfMcUFX$N_=#`+UQk zfB?_6=L6=Tw-LFJf=MI19HcGvC{lHLE7@X${}uLCZC^O-gU}al$E#7*rmJ2MB7CgQ zZNl%11_PSE-JkPU-?6fOf7WW6GWCg4EZ2hYMexXMf6o;ws>ULf=Z&Ve4weT9-$05J zc-CNfD;95QYA8ZHVbC|~l{j#a*DzN_w=DKu|b)CR*JZC>HksKKeN|OB~Z~qDSfY<&DAUQHL zWiTKEnYCX4Ca~Xw58EG5U#T9kNUEr$j$&V~@aWYWLH~{RJ)}9WauIEx>=Aw7>=AkJ zbGr$hjMg)VVrpfWCQOSInNCbQ_AvdJFPp)f&U}aYE?&t9#ujmgVhI&1he~?7G(Od& zf5#~nk}g#AGzxgSx(_z;Z%tQ!+>QU<5*65br^CINmaP# z2m}eJAn`F4u`*9u!fhzDJ=zlDcd@K}%twu26uPT_`{<)P-~HNopTKWd{|4Ozf2Eon zsaWZ6(6S%yH^HL48$hf5>Uls~H*)8?)>d%%-`1^LcgrpIi{QIF_YtPW_>XvAP!#q~ zm+~&J29gEPTdU>i6WTmZfbE&-Q=tH8D3e>!jjxCwj< z+zP%6?gaON2f+`(kH8~f7kCmp4W0u(2fqTp0lx*Wfe!R49krlBgw*vDkxVB0g)wc+LSXYIJ1aL zW!(5h6b2#64FX)Df-Ia|!7o-ZXJss*h#RQnidHT|E^ZkWvskvMErwqxk-JG}1#9xD zgPm%nsqsdaB}_ieRPY@LW!%1r)5`d6tRiui;s!Va|EMI*uZ-ungUR_*)PFY*uK%g| z?cm?k2OmB2{bzo7*u1&TEiKJ+=iNOz7f%NHxub_IoH0F{%Vnp}_{NN35*ePcaCrUD z(E4-M594F^%1UMBDa5l?W$A23U4Hg=>X9Y=Yy0}vZXyAgT{Tn_$!MX1%xTq=R4^XB`zHg4XF)hahOR=K64(>{{LRE2<&1bF^Qn<0lM6NZ223A# zQdOFwDo~YBDHsX@(^R5OJ}%f~4qz(xntHvCU@&N!q#hf@^?WAK6usJHD~*_ zeatreJ*Fi;XWrf8eSbP{PQC>m(}=r}^kw6Cr24m^^C=Q<0wShrZU*S~;2eta)%v0Xnu;+B{ls#X1^Yqg< z?Ai0Bbtk=i(n&9)B*<% z+^hy;oSF@)A%9H^HRgb#sH`YQ8%3YtQ$8zi)d86@*q>|2pP8BX%-jk7BH%7e-G!M( zDi^S*H=sd4oJt;G$vVk@?xZ;w9x?ybD)ZC%f856`*h&3#5!dvgAOECtd1vSHbtLGd zs0*`50Jp8O6JYnMp;g(CO+9yk-J$HNT0tDxyJ{tIK!1KBpfWdr&LQ#}v9`_Wqq`k3 zNOnJo#J}c6j6hb_QFsW0RwQ?kcA!(pO^Cp`FWxEK3!JTyt}Oa*JLR%OJBF#alg&&a z47#nRxHqb%ecvPMo8QySnE51;g>^?wN%pE0upNA@8~s9OpL(7bX9ar(bdFPT@>O5q8gq} zU9z1?PPQ^NJ_YY;Vmg{#JvH7L2LK1>6TI~EO@DG?!mm5WO(bnot;7qI{C$Ix+Hw1h zRI!)>@l>JEZ^tOq`X6!lC;MX>cj0ioeHM+Mi^FXoT8hCZVx=hX2E8C+RtJ0pfW`-( zFe5Yx=T`@CK6+AdEg{!f;!*|*sU`RVB&dGX8}j1McL-)*&};wPIpSfyZyy=(;7`;~ zWPg@$@)JgL@>5UNhT9{N_6iA5ATl1e=SAAX;r4D4fVXRrPYD=)-@bjfunby3v7^eE z&O4m!W*IdkR?~r(ED5=ivn4=<0z_dvU9r-cgZqzqK&|cj6H6@sK1Z2j^Ubs8jsY;R zZs5c#uRIoYw=~U}y9|K-H%z~i`oW8l@W?@5BM z^`w*aWQ=6d1MaJT?K>OoLz@|cv6wV@=P_AfjoYma0t@7D8s=3UTXCEM&_4Ux1%D|! zo+_mRfz%nPv9VM>4c<-Jdq8Wa{hMFL7A}abAix?a&riyu59T7=d*dzuorj)0;2a!q&P_fo zRniBT|KGMJ+SnK+0eJhZNG)m~I)9!De@3>^-jY;Rdh0EcNDHAzV}wK|2X=)Vnwm(w z4Ob$VW^ajV+x}FhHoshkK0q57Khumk`ehC-eP;ZJQYjKu{Vf$c>b9T!ew~UE^4D&` zKjF@3(eXlAr=b#>jN0+0dPwDbqIXULuTh;@k7q)MRC-h=Zk%5^BxHC|7=ItK!CKlI z-)Nq5D3ST$;KwR0l5y(7+v_n}vpP?$wYadGW;1o$Z=gnN>20zx-R8hc_fI6SA0p35qR}a;1r-Yl7A)&Sb*+G3=2ykE{=aP?;{oJOj zT>+2ocR{ZRJTmZCaasZA0d%#?qrhLux?sm#mJVv`<0J52XgawI5n}%DLt8=9?E!m$ zp~^%^MFFxyN{u)vv~vy5ysL~9mggkmTgxuWGWeAmHsN1ojb}0QYJcA$M`inV$>(=; zpMQ-WM{W3>jMl87h<0Buej6BYkdI(ICsB!oj;EvynVEDVyqM^hXrfmXw5YnunHu0t z^jHo1Js@wt) zDyW!N7gS?EzSB4H_zE*AV!f7eeh~rn8@IF~U{B=N5~3&V^M7Y@j;=Nt>f{Ch1h!@* z66;6UXmgYuS)WK4Kuxya)DG^|<-A$F&dkfY>JGp^2izYT>Mv#u^evV}k@#;GMR{@G zz^q@WhW+#QRI2@fBr(5BhI2XR-FgI%of(XY#|_nGa%`-8Nd>y~>hf?ik;tY{s_g89)xfB$jWK}5oP#n*jM3KEt zW%~yp=6@OXLoE~4Ge3ocX@fk9s7p3ov}uW2KD@~F9NiTs%T>H-RugEP)fhm+$nj?! zKO%5e)2v2-Q`00n-F0*iS3LX=N2!K(lo%1@^LU?dF3%xJQ^AKbPVDPDaR%%;`ozPF zNcE|Wvlh>4=0knQR4T{x1-WK?+K7`;@$eIm?tig=f3&l2ZNGW6%tyrY1mQeZ)kMVC z*2pK(bNIb#Vg{Hw%u&orie@!IJ*>9)O`HKISj*6@6yjH+LILz0=-He#zVAv{lR;-M zIY!ZL_=-?*Dp3V4V%}VRwq;&EKdTr?it8@6*E=12MH4rQMo7Xzf6HhK z?8cYz;znD;)n^@#TrUuRe=p!XkPt7BLJ~Mna$y$ID3$Of#9PTFqWBt8^(m3pU3a+@ zj>A{bJu2?*?bE%WSvo@ud&M)P5T2ztOn(P&qkJ5LY4AQgj@FUcU=sY?1Q1d#TlY95 z(1%AYjm&xk&svz*AzspW>g2S(_TZ(5tLZv+)e#@?Vh0(Unc6iIyn{2XsF@6e{YYy} zHK(Q}fk#bEOBr%l=4Q>1ri~SQR|T49WLxI7fMc=)4apw+bq;a7$Zqi{yjNJ?Cx3V~ z0c@MvK~--uo%L#xz_B3aQ5pssIFV!VAz*2iG`u9+GPh}3k!zXRn4jC6?#m>5Gdnm4 z+2ex>57{F}1kFqIW&>2W{Bi1E%%EuL@o}r<`Z_#=na#|@eBx57_q35Yv*xdvI`Ejx z&2uF^jmjlcnBq&EVS~@eBRde7aDSnGhRK$q-$%3%_dA2P(z&#NSr;5utWu>Uq;td) z6%AF-fm^HRP*m%!IIKRENF1|z;vaZ)Ji2D}F{`&F5}U{5h+#zJF)wJcAIyY-f-CN+ z1l2w@*pS2MB-Q);(yOGGz5Q} zDixlv_t)Ue5fS;c9c}}OBU+2S^j^}~hH&P`+Z!6TFCQFSe){R#@gJEEjnC+lLE0B< zaSwc*`9AXp<}K#kse6Jv>B@vB%$1Y$OXAjn>&L`L>$lQvj^PAxAym>Rf=_47AIGO= zRrXU|<^AOx0kq>IxI`?C%YU^ukLsS4KBHXc{&HZ#uRFN2@7R6BqvX$afse^Iv3hv# zJ}N5$B)efkpFZnB7V^3Mely_qu@;xI8g#eYn+|@#y%hBv#_lOT!h3#A}Jf1)1=M1BS{%)vu}1j)+?i zMl564u+)PRBwwR1@7wN@EmaW>9`Yh5=PX$XdsNw_@JMj6Qr46wW;gl|%!UoOHaFk8 zcJ5rp(Vh9UG1^U)^Nh3Zm95(PU#S_nbqF;rsnll- zQA{6{1dD8TRxoFeCyClbfyYm7im?L%LpPDX34^D)9rs3&T_xbqb zkQvEt-yG};Ky$dcdAPYjD@G$7QP+X}jXFAJj#et8Ghyy*{CDeFXWhEr)&ss>>$Bw4 zJ%iu=vLiJ};)U&?r(`cS?DyUaXTUXWd6tcdC>z>zsSzZX z^L>u>WInT;Ie(Vf%6yHvoVnrCXDSIwNQqE_os;`KLwm<}E$p z%2YC1C`B@vXsP`pH}X3J2hTJd9XNER3Ee`AUc2B}JAatVrMi2Q&G}?+_os{)JWy68 z5|1VltMNr2ya)e*U)mk`d+Y(j$C(A{gF`xK*f{x{ecNHKr)SaF@bK6ohWI9)+=mTR zE8`IANr>zu6K|hW_8K~{H*%AodYL?6%>kI9&%In{*6}hvNseP4aK=xR@f_GAXRjW% zFV2QQ7k`fLrgOZ<7Yu|X-IeW^V@A56ArV;?xO#NfEbD>esjp({wYV0=L3AA$k4L6> z=2h2(hkCyfP_;-Y!g5hxpC~mC<C9m(%$3U*wasX6pV9vBy5z^l1cCvRV}qJ| z)qnEJ_7OQG`<$UI9@JTP0M^pdF~y67i_Jq*VTAl@BB_{2I3&2}kIDA->Fw=F2S;hD zep-zwuXCA8|F8AZ|6<5HEF~vo{DaK=5q{L4Sacn8iM@H!uTO!>P!XoQF#{P3S`w(gUC) zlP*(p9=`*MLookL6r(298UfvLB1EHO$}Zt?m;8uy$(jNvL;}rbGqA!hb#^vb7VZ_z zlX_Go&!{Z|1D+60kR(-Af*SOLNZwwQF!j5G%?Vw)OK_dTwUuLXYgcS9j{_N>Y=8UM z_3^*$l?@xVufc!YYh9v9hUH>CiZ2wv9p&~bx@^jroD4i#)gxR{h=<;JM^a!1kOlis zx}s-NinoEl+cl){_p<4+8UG_5@@(cp<}!jt_Wv^vnX!s=1f**tfIFDBBqgRK7XJ^q z%IfR5tKT49-BB!tEzs<1CfiHi%ztpEVfqY8Mz(IvH3mzO(*HJxS?_c2BqGvF7*580 z(7V;bbW)0bA)e_j!|Ty?%q`5lpZ5(r@P#^%mLFg4GekaB1Cp)zeXh-KMC~|^Uoa}Y zpdSG0;iY(K3>vvKY(hWD;}|YiC9B8?t_X?^(K4*4}dO9 zF%8I~lD?B?b+_)^*zA6lUZF%}{31CVve zs?TWlQH+HH={};nQDC~6A!ZJy{gyMUsIBCuQ0vCO9}5Q)DELh*A2uU;!b6#Ed=0GV;oCeP9Nq-7aZLgcE2Y<%NiOrjRFt>K_ zJBO$-)&Bh!+!8TTPZ8W|?*Y$^;Mi2?oHvhRxqlh+I=3-*F%L37VjlghH|YSW%z+PV zqLk({s6B$a;Nu08*biE1x{*C4%|TqTA0T$AOc1+RnF;!gCb9CziyFSdltiFF&psg? zljD=b zPnNiNfi^C2v9Gx5s;lgePe1+iFMa6}&z3EoEs4aZy;&24DD@t#%iSgujHVC&BEXuK z>Jk)Pk$ScdE0&~uwxC3Qc-hXev7N@q$OSWITu@jXnKLKSyMKexKJ$G#3iH69%1Qly zdZQ-tz5kQ9tNJTU(!WpMuJ+Dyx=xwgHX;6Ud!TJcDixt@EfIBm>HqGVwqKkv)f;y( zJxJE9BbharH$9En%zXQQx>|icd8Bo~qE>svdi|WMH6t9gXA{+)ykOjt+rgKT5IwfFY@x5N*^#`GsZ( zCfQKXA12g~7-&sqKJSX8e6~Ol)fX&afAb3fo#ii>F;B|SIU(XglH&4oC*0ngWw=$3 zgd~;IDlt5NnxBh)T=f6;c6G5)6mfiKrtRHz_r7{}yMMR$(cA0x?phEiy(>jgJnEHD zO))8nFzoI+1s*rz0%f-m(A|%e`a@++u7gzKW2V^s_(zX?V&pV2zPuE&9R17*j+;ge#aWU zVG7u+fPY`n_Mo;CooFiu%^w;s=}Yj}yXY&I=qo=BjSfq)AowsrHkkpUGa*R{m&@r+ zoV5VyX)%N*X;$MkZc>!2WxG~+N`Lw(>wB(^f8$_TyPBJ5FPrZWbV)$FNqxfbF3e*M z`*|XwrOUEf?p)@?)kjdi?9A2sD3ZMef9=gG#DBU=^@CdQw2b*+(OgB@O8=S{E1YQ- zV1n`k<22TOyO!I?ZKhVwf8S?Q0UM0?-KxRKT7_pb>xD;XFPu*s{WLJRdsY82$?7YZ zeZTSz`RO)n+MSS<`Cr8y-!C&R{Qs8Y{fJ|F6062=wN+b`v$rG<&#!hn{W_RU1z-%ZlId3+-Je9Sw;l#b$`>(uU#>*?48Oup^%(7teZ`1`9*UqHZaI? zR=qn-&5O*yvpK;Eg2X&(YT;CV?HbzEGkR1J(PvUD_Sf{BoEgx;${2WXISNWEf@92; z?e#NPwk=V1Wyhur8=#@-_&W910U!mL_ix!Uymc%1uU*b?CQ@GqE>lN)c5V%O(|`J1 z88gl{bFXrTxMA)n#md=5W7X;?s;}z2h6`;fMXCxurxll7s%>kF;DJag71h44imQ6U zC=!gIaHw6TCAl3ftq9hBF{zn(YFufi+svc0__`Tv)vj!(zu|m-xXIsR^|4K&PMNrA z=DjMQZ#g^Xg&D%W@g&X@3Wda?1b^L7w(3|2!yyr_IF#oe|47b}Cs^J}&bk&Fjn6e~ zNs=RDHy|kviF!jJy-RMD>4w(GYAB@2`f(D4%CQ@?k~8P)Eyq95UKgSF1geRa@?y{P5Q37o*mi8hnBi>Zx8w+ z`JF3r<@?ax=3MT*T#mDs^wQosOmYk(7I2FxUiWirAZtoRl2ZI6N`D(1erA@^xHn!u zp7_@K0O(EN|m*b<<_DN?s@w*dqlBS#_MHO8^Y_48Y^_7^jWn1ZOfUe{#H@PI0y>l z53-;3kq&MPwKE~}#(xLK{BsN}vfyy0|CE$A=L6y{@1pq_W$3^aXSq${$*y{HrA!=r zD<-WhthfOHWCcbty9id}niwm2Rg@MDFL-%cb9<`+gs z9bR5^Uq%6+%d7t_y73O$ifGSo^Lm6vq0U}M+|GdXxj*8^>)Z}Iu$8*kl7hFnP0V}v zW{=(*YH!FlcQ$)tZ6Z;`IZBiMOC3Q7H|V{EXDqlqJ}-}-Gv=H_j+FhJ%r(<-jWcrU zRFO+ zFIQPR%&LqATzMVE8|V~7VyfqLlTBLI&hvI$qe&K)ancuiJy~((jt{QCxH| z8aSK7V2Nu%m}1~#dSmuvoMk#@1ZPfYC}?77L}~JB#%qjhTx~jT zKyKV`=x~&Ad~#lL*mHJtXmwI{6n6S|D0fnKgmf{hBMQAG`P%%Fi;%wZk}U^UiYEe^ywtj9svfP=9Sn{WsY#bG!cN8m^tg`;r{ zj>T~}e;y~`M4W_^;ouaUip_AbfJJPh@ zF2qH+7?l@{lp zf5&Yb_w3r;mZ9%U&*)etrm2K>Myg{9f$bKX%kAx`drE|?K9C+C?5xldsnE}5HrK^q zAVOdEWti0HWN6}!>6+;gY5AGavpw1BkgH6kWZd0Q_{utp?)thZ!j!zKwsERM6?%H; zYD1}#`$MQ{|(^;rb~|9#l@}Lf6J<+!&N=m=#sgXP$Lq|ncHhZg)PkQEGV|<;?JS5$O~ql`PGM-B)>m#{Xa>Pe^ElZl%7 zmvz_9FWl*NksE(CL1~dt4!I*Vf62`e6_<@CbXVo(>!}=?o}jW&E{n{#HpM{+v|AmK z8fiC$_JyvJ`<~29M^-21-MNHO6Un$#BNf_oOrF-qY`Mjljn2LJgf38aPjdR~K$(F4 z+Jfs|88f%i%wf6}COwJGW@M9b$j~EgtI4;GM4Omc!)8*IQ;m$-tdgo3e?quSyBwZH zMq54GM1dBbosgUf?Ib6*l@X1@N`b<)Qlf>a6hXSvaYqviLZ5RGc4U3HL6ks)rP&wQR!7*i=3OvW6~GwKQf#5qLG=bj7rvYnqsvB#x=iBRxpw@)(qD(P}OxRRiYH%7^lq{yk{CH4sg?*1S8iX{XeP1)=O~NTOe{<#+Dyd?c5ihEf z6L&t!xyxgfTagM!zEZhh=Rg)Xfi#GA+8yKNdYr;YwM4~duSVNlCX==(-lnqpL@&uY zsY+!vE_|kvSi!?2l{Jq$J0GaiH0*qC=X$ExG__P_Dy%}&)GplG1*hw2o;qfWQxYr6 z7OfUhpzP_^$ZqSvf0F}Cj#@G(`Kn#+M$#{JBY#ytD)seBDe~H-C`#-|L~;<9X*()K zu~!<1K`9v}rA$TEit?l`kAj%4LcdJI*sJGF7_3N2j$O3B&1`I{;-x{eV44y6G%zO9 ttf-=uPm$@&C{Iw_bK^HgUyPP`z}M(vl+SWuwE}vtO-=m`1$>w7=KwaOB+38) delta 37054 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 diff --git a/src/renderer/src/assets/iconfont/iconfont.woff2 b/src/renderer/src/assets/iconfont/iconfont.woff2 index a1b77bc6b53aa15ecd143b2e3f2c2e34ed08e4a7..426cc8c5b8251eb36415f332e78406c5d94e6127 100644 GIT binary patch literal 36452 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�VEI_1vg5HQi&&4~n)dNl|!e&|Z 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ð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%0AYy8}eULf(K3tQc#YH7Rgb=a_Vbr_( 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 XC>~*X8HjNg%a>ui6ta2{k8c0~J`#a+ diff --git a/src/renderer/src/plugins/imChat/imLiseners.js b/src/renderer/src/plugins/imChat/imLiseners.js index d80bb7e..0342a76 100644 --- a/src/renderer/src/plugins/imChat/imLiseners.js +++ b/src/renderer/src/plugins/imChat/imLiseners.js @@ -5,7 +5,7 @@ */ // @ts-ignore const API = window?.api || {} -const timRenderInstance = API.getTimRender() +const timRenderInstance = API?.getTimRender?.() || {} // im 事件监听 export class IMListeners { diff --git a/src/renderer/src/views/tool/components/upvote.vue b/src/renderer/src/views/tool/components/upvote.vue index 7f7cfb4..7bfa0e0 100644 --- a/src/renderer/src/views/tool/components/upvote.vue +++ b/src/renderer/src/views/tool/components/upvote.vue @@ -1,23 +1,32 @@