k2-im 0.1.34 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-PJ2PW42T.js → chunk-6OC4FEH7.js} +2 -2
- package/dist/{chunk-YEXLMW5J.js → chunk-BIE4T7BJ.js} +1 -1
- package/dist/chunk-DHHXLOOH.js +2 -0
- package/dist/{chunk-IEFK5A7T.js → chunk-EBZORU2A.js} +2 -2
- package/dist/{chunk-4HJR3NAM.js → chunk-PEI5RIM7.js} +1 -1
- package/dist/{chunk-QK3UXZKZ.js → chunk-SP6V2AFT.js} +1 -1
- package/dist/{chunk-QDQNYCIH.js → chunk-WYYUGVXE.js} +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.js +1 -1
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-WQBCUQ6Q.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function ul(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Invalid FILES_ALBUM object");return e}function gl(e){let n=ul(e),t=n.fileName??n.fielName,r=n.md5??n.MD5,o=n.fileSize??n.fileLength;if(typeof n.url!="string"||!/^https?:\/\//i.test(n.url)||typeof t!="string"||t===""||typeof n.extension!="string"||typeof r!="string"||r===""||typeof o!="number"||!Number.isSafeInteger(o)||o<0||typeof n.fileType!="number"||!Number.isInteger(n.fileType)||n.fileType<0||n.fileType>5||typeof n.fileEncryptType!="number"||![0,1,2,3].includes(n.fileEncryptType)||typeof n.teaKey!="string")throw new Error("Invalid FILES_ALBUM item");let i=n.extension.replace(/^\./,"").toLowerCase(),a=Uint8Array.from(globalThis.atob(n.teaKey),s=>s.charCodeAt(0));if(n.fileEncryptType!==1&&a.length===0)throw new Error("Missing FILES_ALBUM item key");return {url:n.url,fileName:t,extension:i,md5:r,size:o,fileType:["zip","rar","torrent"].includes(i)?5:n.fileType,fileEncryptType:n.fileEncryptType,...a.length===0?{}:{teaKey:a}}}function ml(e){let n=ul(JSON.parse(e.content));if(n.contentType!=="29"||!Array.isArray(n.items)||n.items.length===0||n.caption!==void 0&&typeof n.caption!="string")throw new Error("Invalid FILES_ALBUM body");return {items:n.items.map(gl),...typeof n.caption=="string"&&n.caption.trim()!==""?{caption:n.caption}:{}}}function fl(e){if(e.items.length!==1||(e.caption?.length??0)>1024)throw new Error("Invalid outgoing FILES_ALBUM size");let n=e.items.map(t=>{let r="";for(let i of t.teaKey??[])r+=String.fromCharCode(i);let o={url:t.url,fileName:t.fileName,extension:t.extension,fileType:t.fileType,md5:t.md5,fileSize:t.size,fileEncryptType:t.fileEncryptType,teaKey:globalThis.btoa(r)};return gl(o),o});return {contentType:29,content:JSON.stringify({contentType:"29",...e.caption?.trim()?{caption:e.caption}:{},items:n})}}var Ko=28,Il=1,Ma=2,gt=1024,Ft=9;function va(e){let n=e.caption!==void 0&&e.caption.trim()!=="",t=e.items.length===1?e.items[0]:void 0;return n||t===void 0?"mediaAlbum":t.kind}var Ea=512*1024,ba=256*1024;function wt(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function Bt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""){let o=Number(r);if(Number.isFinite(o))return o}}}function $p(e,n){for(let t of n){let r=e[t];if(typeof r=="boolean")return r;if(typeof r=="number"&&(r===0||r===1))return r===1;if(r==="true"||r==="false")return r==="true"}}function Ta(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function pl(e){let n=e.replace(/\s+/g,"");if(!(n===""||n.length%4!==0||!/^[A-Z0-9+/]*={0,2}$/i.test(n)))try{let t=globalThis.atob(n);return Uint8Array.from(t,r=>r.charCodeAt(0))}catch{return}}function yl(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function ey(e){return e!==void 0&&e!==1}function ny(e){if(!Ta(e))return;let n=Bt(e,["mediaType","type"]);if(n!==Il&&n!==Ma)return;let t=wt(e,["url","content"]);if(t===void 0)return;let r=Bt(e,["fileEncryptType"]),o,i=wt(e,["teaKey"]);if(i!==void 0&&(o=pl(i)),ey(r)&&(o===void 0||o.length===0))return;let a=Bt(e,["width","imageWidth"])??0,s=Bt(e,["height","imageHeight"])??0,l={kind:n===Ma?"video":"image",url:t,width:Number.isInteger(a)&&a>0?a:0,height:Number.isInteger(s)&&s>0?s:0},f=Bt(e,["duration"]);l.kind==="video"&&f!==void 0&&f>0&&(l.durationMs=f);let I=wt(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);I!==void 0&&(l.thumbUrl=I);let C=wt(e,["thumbData"]);if(C!==void 0){let U=pl(C);U!==void 0&&U.length>0&&(l.thumbData=U);}let k=wt(e,["md5","MD5"]);k!==void 0&&(l.md5=k);let N=Bt(e,["fileSize","fileLength"]);N!==void 0&&N>0&&(l.size=N),o!==void 0&&o.length>0&&(l.teaKey=o),r!==void 0&&(l.fileEncryptType=r);let R=$p(e,["hd","isHd","isHD"]);return R!==void 0&&(l.hd=R),l}function Na(e){let n=JSON.parse(e.content);if(!Ta(n))throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61");let t=n,r=n.content;if(typeof r=="string"&&r!==""){let l=JSON.parse(r);if(!Ta(l))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=l;}let o=t.items,i=[];if(Array.isArray(o))for(let l of o){let f=ny(l);f!==void 0&&i.push(f);}let a={items:i},s=wt(t,["caption"]);return s!==void 0&&s.trim()!==""&&(a.caption=s),a}function ty(e){return {mediaType:e.kind==="video"?Ma:Il,url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0&&e.durationMs>0?{duration:e.durationMs}:{},...e.thumbUrl!==void 0&&e.thumbUrl!==""?{thumbUrl:e.thumbUrl}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:yl(e.thumbData)}:{},...e.md5!==void 0&&e.md5!==""?{md5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileSize:e.size}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:yl(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function Lo(e){return new TextEncoder().encode(e).length}function lr(e){if(e.items.length===0)throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u6CA1\u6709\u53EF\u53D1\u9001\u7684\u9879");if(e.items.length>Ft)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > ${Ft}`);if(e.caption!==void 0&&e.caption.length>gt)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 ${gt} \u5B57\u7B26\u4E0A\u9650\uFF1A${e.caption.length}`);let n=e.caption!==void 0&&e.caption.trim()!==""?e.caption:void 0,t=JSON.stringify({...n===void 0?{}:{caption:n},items:e.items.map(ty)}),r=Lo(t);if(r>=Ea)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${Ea} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:Ko,content:t,...o===void 0?{}:{thumbData:o}}}function _a(e){return e===1?"gif":"sticker"}function Zo(e){if(typeof e!="string"||e.trim()==="")return false;try{let n=new URL(e.trim());return (n.protocol==="https:"||n.protocol==="http:")&&n.username===""&&n.password===""}catch{return false}}function Et(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function Da(e){if(e.exprType===2){if(!Zo(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Et(e.width)||!Et(e.height))throw new Error("sticker body: LINK \u5C3A\u5BF8\u975E\u6CD5")}let n={url:e.content,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType};return e.fileLength>0n&&(n.size=Number(e.fileLength)),e.describe!==""&&(n.describe=e.describe),e.contentId!==""&&(n.contentId=e.contentId),e.exprePackageName!==""&&(n.packageName=e.exprePackageName),e.thumbData.length>0&&(n.thumbData=e.thumbData),n}function Ga(e){if(e.exprType===2){if(!Zo(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Et(e.width)||e.width===0||!Et(e.height)||e.height===0)throw new Error("sticker body: \u51FA\u7AD9 LINK \u5C3A\u5BF8\u5FC5\u987B\u4E3A\u6B63 uint32")}return {contentType:7,content:e.url,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType,...e.size!==void 0&&e.size>0?{fileLength:BigInt(e.size)}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.contentId!==void 0&&e.contentId!==""?{contentId:e.contentId}:{},...e.packageName!==void 0&&e.packageName!==""?{exprePackageName:e.packageName}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{}}}var Cl,Sl,ry={text:e=>e.text??"",file:e=>[e.file?.fileName,e.file?.extension].filter(n=>n!==void 0&&n!=="").join(" "),contact:e=>[e.contact?.displayName,e.contact?.username,e.contact?.targetId].filter(n=>n!==void 0&&n!=="").join(" "),image:()=>"",video:()=>"",voice:()=>"",sticker:()=>"",filesAlbum:e=>[e.filesAlbum?.caption,...e.filesAlbum?.items.map(n=>n.fileName)??[]].filter(Boolean).join(" "),mediaAlbum:e=>e.mediaAlbum?.caption?.trim()??"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),robot:e=>e.robot?.modules.flatMap(n=>n.type==="section"?[n.content]:[]).filter(n=>n.trim()!=="").join(" ")??"",game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),gift:e=>[e.gift?.giftName,e.gift?.fromUserName,e.gift?.toUserName,e.gift?.explain].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function Qo(e){return ry[e.contentType](e.body)}function oy(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let i=o.index;t.push(Object.freeze({start:i,end:i+o[0].length}));}return Object.freeze(t)}function iy(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(a=>Number.isSafeInteger(a)&&a>=0&&a<e.length).sort((a,s)=>a-s);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let a of t.slice(1)){if(a===i+1){i=a;continue}r.push(Object.freeze({start:o,end:i+1})),o=a,i=a;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function sy(){return Cl??=import('pinyin-pro').then(e=>e.match),Cl}function ay(){return Sl??=import('pinyin-pro').then(e=>e.pinyin),Sl}async function dy(e){let t=e.trim().charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let i=(await ay())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function Ua(e){let n=e.trim().toLocaleLowerCase();if(n==="")throw new Error("IM \u6587\u672C\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A");let t=n.replace(/[\s'-]+/g,""),o=/^[a-z]+$/.test(t)?await sy():void 0;return Object.freeze({keyword:n,match(i,a={}){let s=oy(i,n);if(s.length>0)return Object.freeze({method:"direct",ranges:s});if(a.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let l=o(i,t);if(l===null)return null;let f=iy(i,l);return f.length===0?null:Object.freeze({method:"pinyin",ranges:f})}})}var cy=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function ly(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...my(e,n)];if(n.matchers!==void 0)for(let r of n.matchers)t.push(...r(e));return t.length===0?[{kind:"text",text:e}]:(t.sort((r,o)=>r.start-o.start||o.end-r.end),uy(e,t))}function uy(e,n){let t=[],r=0;for(let o of n)o.start<r||o.start<0||o.end<o.start||o.end+1>e.length||(o.start>r&&t.push({kind:"text",text:e.slice(r,o.start)}),t.push(o.segment),r=o.end+1);return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t.length>0?t:[{kind:"text",text:e}]}function gy(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function my(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?fy(n.atAllTexts??cy):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let a=i[1];if(a!==void 0&&!t.atUserIds.includes(a)){i=r.exec(e);continue}let s=a===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:gy(a,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:s}),i=r.exec(e);}return o}function fy(e){let n=e.filter(r=>r!=="");if(n.length===0)return /\[(\d+)\]/g;let t=[...n].sort((r,o)=>o.length-r.length).map(r=>`${py(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function py(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ur(e,n){let t=n.trim();return t===""?e.toString():t}function Al(e){let n=e.trim();return n!==""&&n!=="0"}var yy=new Set(["audio","video"]),Iy=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function Kn(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function ka(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function xa(e,n){return n===void 0?e:{...e,outgoing:n}}function Ba(e,n){let t=Kn(e);if(t===void 0)return 0;if(!Number.isFinite(t)||t<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);let r=Math.round(n==="s"?t*1e3:t);if(!Number.isSafeInteger(r)||r<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);return r}function Cy(e){let n=e.trim();if(n==="")throw new Error("call record: content \u4E3A\u7A7A");let t;try{t=JSON.parse(n);}catch{throw new Error("call record: content \u4E0D\u662F JSON")}if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("call record: content \u4E0D\u662F\u5BF9\u8C61");return t}function Sy(e){if(e===0)return "video";if(e===1)return "audio";throw new Error(`call record: Android \u672C\u5730 callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function hl(e,n){if(e===0)return "audio";if(e===1)return "video";throw new Error(`call record: ${n} \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ay(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function hy(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function Ry(e,n){switch(e){case 0:case 5:return "missed";case 1:return n>0?"completed":"cancelled";case 2:return n>0?"completed":"missed";case 3:case 4:return "rejected";case 6:return "busy";case 7:return "no-permission";case 8:return "interrupted";default:return "unknown"}}function My(e){let n=Kn(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=Kn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return xa({callKind:hl(n,"Android \u540C\u6B65 callType"),outcome:hy(t),durationMs:Ba(e.callDuration,"ms")},ka(e.isCaller))}function Ey(e){let n=Kn(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=Kn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return xa({callKind:Sy(n),outcome:Ay(t),durationMs:Ba(e.duration,"ms")},ka(e.isCaller))}function Ty(e){let n=Kn(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=Kn(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=Ba(e.content,"s");return xa({callKind:hl(n,"iOS type"),outcome:Ry(t,r),durationMs:r},ka(e.isCaller))}function Rl(e){if(e===null||typeof e!="object")return false;let n=e;return !(!yy.has(n.callKind)||!Iy.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function Ml(e){let n=Cy(e.content);if("callDuration"in n)return My(n);if(Kn(n.callType)!==void 0&&Kn(n.callStatus)!==void 0)return Ey(n);if(Kn(n.type)!==void 0&&Kn(n.status)!==void 0)return Ty(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function El(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function vy(e){switch(e){case 0:return {kind:"individual"};case 1:return {kind:"group"};case 2:return {kind:"channel"};case 3:return {kind:"robot"};default:return {kind:"unknown",rawKind:e}}}function by(e,n){switch(e){case "individual":return 0;case "group":return 1;case "channel":return 2;case "robot":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("contact body: unknown \u540D\u7247\u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawKind/visitCardKey");return n}}function Tl(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...vy(e.visitCardKey)}}function vl(e){return {contentType:8,content:"",id:e.targetId,...e.avatar===void 0||e.avatar===""?{}:{icon:e.avatar},name:e.displayName,...e.username===void 0||e.username===""?{}:{username:e.username},gender:e.gender,visitCardKey:by(e.kind,e.rawKind)}}function bl(e){let n={url:e.content,fileName:e.fielName};return e.extension!==""&&(n.extension=e.extension),e.fileType!==0&&(n.fileType=e.fileType),e.fileLength>0n&&(n.size=Number(e.fileLength)),e.MD5!==""&&(n.md5=e.MD5),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Nl(e){return {contentType:11,content:e.url,...e.fileName!==""?{fielName:e.fileName}:{},...e.extension!==void 0&&e.extension!==""?{extension:e.extension}:{},...e.fileType!==void 0&&e.fileType!==0?{fileType:e.fileType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size))}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function gr(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.value!="number"||!Number.isInteger(n.value)?false:n.gameType==="rock-paper-scissors"?n.value>=1&&n.value<=3:n.gameType==="dice"&&n.value>=1&&n.value<=6}function _l(e){let n=Number(e.gameType),t=Number(e.gameValue);if(n===0){if(t!==1&&t!==2&&t!==3)throw new Error(`game body: \u77F3\u5934\u526A\u5200\u5E03\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"rock-paper-scissors",value:t}}if(n===1){if(t!==1&&t!==2&&t!==3&&t!==4&&t!==5&&t!==6)throw new Error(`game body: \u9AB0\u5B50\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"dice",value:t}}throw new Error(`game body: gameType \u975E\u6CD5\uFF08${String(e.gameType)}\uFF09`)}function Dl(e){let n=e;if(!gr(e))throw new Error(`game body: \u51FA\u7AD9\u7ED3\u679C\u975E\u6CD5\uFF08${String(n.gameType)}/${String(n.value)}\uFF09`);return {contentType:27,content:"",gameType:e.gameType==="dice"?1n:0n,gameValue:BigInt(e.value)}}function Wo(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Tt(e,n){if(e<0n)throw new Error(`gift body: ${n} \u975E\u6CD5`);return e.toString()}function vt(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`gift body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Gl(e){return e===0||e===1||e===2}function Ul(e){return e===0||e===1||e===2||e===3}function kl(e){return e===1||e===2}function bt(e){return typeof e=="string"&&/^\d+$/.test(e.trim())}function Ho(e){if(e===null||typeof e!="object")return false;let n=e;return !(!bt(n.fromUid)||!bt(n.toUid)||!bt(n.serialNumber)||typeof n.giftName!="string"||n.giftName.trim()===""||!Gl(n.giftType)||!Ul(n.state)||!kl(n.sessionType)||typeof n.initiateTime!="number"||!Number.isSafeInteger(n.initiateTime)||n.initiateTime<0||n.amount!==void 0&&!bt(n.amount)||n.zhangCount!==void 0&&!bt(n.zhangCount)||n.benCount!==void 0&&!bt(n.benCount)||n.fissionNumber!==void 0&&!bt(n.fissionNumber))}function wa(e){let n=e.giftType;if(!Gl(n))throw new Error(`gift body: giftType \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.state;if(!Ul(t))throw new Error(`gift body: state \u975E\u6CD5\uFF08${String(t)}\uFF09`);let r=e.sessionType;if(!kl(r))throw new Error(`gift body: sessionType \u975E\u6CD5\uFF08${String(r)}\uFF09`);return {fromUid:Tt(e.fromUid,"fromUid"),toUid:Tt(e.toUid,"toUid"),giftType:n,state:t,serialNumber:Tt(e.serialNumber,"serialNumber"),sessionType:r,initiateTime:Number(e.initiateTime),giftName:e.giftName.trim(),...e.amount===0n?{}:{amount:Tt(e.amount,"amount")},...Wo(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Wo(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Wo(e.explain)===void 0?{}:{explain:e.explain.trim()},...Wo(e.giftIcon)===void 0?{}:{giftIcon:e.giftIcon.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...e.zhangCount===0n?{}:{zhangCount:Tt(e.zhangCount,"zhangCount")},...e.benCount===0n?{}:{benCount:Tt(e.benCount,"benCount")},...e.fissionNumber===0n?{}:{fissionNumber:Tt(e.fissionNumber,"fissionNumber")}}}function Fa(e){let n=e;if(!Ho(e))throw new Error(`gift body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.giftType)}\uFF09`);return {contentType:17,content:"",fromUid:vt(e.fromUid,"fromUid"),toUid:vt(e.toUid,"toUid"),giftType:e.giftType,state:e.state,serialNumber:vt(e.serialNumber,"serialNumber"),sessionType:e.sessionType,initiateTime:BigInt(e.initiateTime),giftName:e.giftName,...e.amount===void 0?{}:{amount:vt(e.amount,"amount")},...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.explain===void 0?{}:{explain:e.explain},...e.giftIcon===void 0?{}:{giftIcon:e.giftIcon},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.zhangCount===void 0?{}:{zhangCount:vt(e.zhangCount,"zhangCount")},...e.benCount===void 0?{}:{benCount:vt(e.benCount,"benCount")},...e.fissionNumber===void 0?{}:{fissionNumber:vt(e.fissionNumber,"fissionNumber")}}}function xl(e){let n={url:e.content,width:e.width,height:e.height};return e.thumbData.length>0&&(n.thumbData=e.thumbData),e.MD5!==""&&(n.md5=e.MD5),e.imageType!==0&&(n.imageType=e.imageType),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Bl(e){return {contentType:2,content:e.url,width:e.width,height:e.height,...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.imageType!==void 0&&e.imageType!==0?{imageType:e.imageType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Un(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function wl(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:void 0}function Ny(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};case 3:return {showType:"game-preview"};default:return {showType:"unknown",rawShowType:e}}}function _y(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "game-preview":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function Dy(e){return e.showType==="unknown"&&e.rawShowType===3}function Pt(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.appId!="string"||n.appId.trim()===""||typeof n.isDynamicHost!="boolean"?false:n.showType==="unknown"?typeof n.rawShowType=="number"&&Number.isInteger(n.rawShowType)&&n.rawShowType>3&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"||n.showType==="game-preview"}function Pa(e){return {appId:e.miniProgramAppId,...Un(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...Un(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...Un(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...Un(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...Un(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...Un(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...Ny(e.miniProgramShowType),...Un(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...Un(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...Un(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...Un(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...Un(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()},...Un(e.miniProgramGamePreviewUrl)===void 0?{}:{gamePreviewUrl:e.miniProgramGamePreviewUrl.trim()},...wl(e.miniProgramGamePreviewWidth)===void 0?{}:{gamePreviewWidth:e.miniProgramGamePreviewWidth},...wl(e.miniProgramGamePreviewHeight)===void 0?{}:{gamePreviewHeight:e.miniProgramGamePreviewHeight}}}function Va(e){let n=e;if(!Pt(e))throw new Error(`miniProgram body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.appId)}/${String(n.showType)}\uFF09`);return {contentType:22,content:"",miniProgramAppId:e.appId,...e.host===void 0?{}:{miniProgramHost:e.host},...e.developerId===void 0?{}:{miniProgramDeveloperId:e.developerId},...e.name===void 0?{}:{miniProgramName:e.name},...e.icon===void 0?{}:{miniProgramIcon:e.icon},...e.productId===void 0?{}:{miniProgramProductId:e.productId},miniProgramIsDynamicHost:e.isDynamicHost?1:0,...e.suffixAddress===void 0?{}:{miniProgramSuffixAddress:e.suffixAddress},miniProgramShowType:_y(e.showType,e.rawShowType),...e.description===void 0?{}:{miniProgramDescription:e.description},...e.currencySource===void 0?{}:{currencySource:e.currencySource},...e.currencyType===void 0?{}:{miniProgramCurrencyType:e.currencyType},...e.gamePath===void 0?{}:{miniProgramGamePath:e.gamePath},...e.subGameName===void 0?{}:{miniProgramSubGameName:e.subGameName},...e.gamePreviewUrl===void 0?{}:{miniProgramGamePreviewUrl:e.gamePreviewUrl},...e.gamePreviewWidth===void 0?{}:{miniProgramGamePreviewWidth:e.gamePreviewWidth},...e.gamePreviewHeight===void 0?{}:{miniProgramGamePreviewHeight:e.gamePreviewHeight}}}function mr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Yo(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function Jo(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`red packet body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Fl(e){return e===1||e===2||e===3||e===4}function Gy(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Fl(n.packetType)||n.amount!==void 0&&(typeof n.amount!="string"||n.amount.trim()==="")||n.count!==void 0&&(typeof n.count!="string"||!/^\d+$/.test(n.count.trim()))||n.thunderRate!==void 0&&typeof n.thunderRate!="string"||n.thunderNumber!==void 0&&(typeof n.thunderNumber!="string"||!/^\d+$/.test(n.thunderNumber.trim()))||n.fromUid!==void 0&&(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim()))||n.toUid!==void 0&&(typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim()))||n.currencyType!==void 0&&(typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0)||n.coinName!==void 0&&typeof n.coinName!="string"||n.showAmount!==void 0&&typeof n.showAmount!="boolean"||n.isThunder!==void 0&&typeof n.isThunder!="boolean")}function Pl(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Fl(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:Yo(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:Yo(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...mr(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...mr(e.redPacketThunderRate)===void 0?{}:{thunderRate:e.redPacketThunderRate.trim()},...e.redPacketIsThunder?{isThunder:true}:{},...e.redPacketThunderNumber===0n?{}:{thunderNumber:e.redPacketThunderNumber.toString()},...t===void 0?{}:{fromUid:t},...r===void 0?{}:{toUid:r},...e.currencyType===0?{}:{currencyType:e.currencyType},...mr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function Vl(e){let n=e;if(!Gy(e))throw new Error(`red packet body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.packetId)}/${String(n.packetType)}\uFF09`);return {contentType:25,content:"",radPacketId:e.packetId.trim(),radPacketType:e.packetType,...e.amount===void 0?{}:{radPacketAmount:e.amount.trim()},...e.count===void 0?{}:{redPacketCount:Jo(e.count,"count")},...e.showAmount===true?{redPacketIsShowAmount:true}:{},...e.thunderRate===void 0?{}:{redPacketThunderRate:e.thunderRate},...e.isThunder===true?{redPacketIsThunder:true}:{},...e.thunderNumber===void 0?{}:{redPacketThunderNumber:Jo(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:Jo(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:Jo(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Ol(e){let n=Yo(e.fromUid,"fromUid"),t=Yo(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=mr(e.radPacketId),i=mr(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...i===void 0?{}:{amount:i},isThunder:r}}}function Oa(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Kl(e,n){if(!Oa(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:i,...a}=e;return a}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}var Uy=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function Vt(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function Ln(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function Ka(e){return Array.isArray(e)?e:[]}function yn(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function ky(e){let n=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;if(!(!Number.isFinite(n)||n<=0))return n>1e12?n:n*1e3}function xy(e){let n=Vt(e)??e,t=Ln(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=Vt(t.content)??t.content,i=Ln(o);return i===void 0?{content:o,children:void 0}:{content:Vt(i.content)??i.content,children:i.children}}return {content:Vt(t.content)??t.content,children:t.children}}function By(e){let n=e.trim();if(!n.startsWith("["))return;let t=Vt(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>Ln(o)?.type!==void 0))return;let r=Zl(t);return r.length>0?r:void 0}function wy(e){let n=Ln(e.text),t=yn(n?.content)??"",r=By(t);return r!==void 0?r:{type:"section",textType:yn(n?.type)??"plain-text",content:t}}function Fy(e){let n=Ka(e.elements).map(t=>yn(Ln(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function Py(e){let n=ky(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function Vy(e){let n=Ln(e);if(n===void 0)return;let t=yn(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return wy(n);if(t==="image-group")return Fy(n);if(t==="countdown")return Py(n)}}function Zl(e){let n=Array.isArray(e)?e:Ka(Vt(e)),t=[];for(let r of n){let o=Vy(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function Oy(e){let n=Ln(e);if(n===void 0)return;let t=yn(n.path),r=yn(n.app_id)??yn(n.appId),o=yn(n.domain);if(!(t===void 0&&r===void 0&&o===void 0))return {...t===void 0?{}:{path:t},...r===void 0?{}:{appId:r},...o===void 0?{}:{domain:o}}}function Ll(e){let n=Ln(e),t=yn(n?.menu_name)??yn(n?.menuName);if(n===void 0||t===void 0)return;let r=yn(n.menu_id)??yn(n.menuId),o=yn(n.msg_type)??yn(n.messageType),i=Oy(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function Ky(e){let n=[];for(let t of Ka(e)){if(Array.isArray(t)){let o=t.map(Ll).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=Ll(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function Ly(e){let n=Ln(e);return n===void 0?false:n.type==="section"?typeof n.textType=="string"&&typeof n.content=="string":n.type==="image-group"?Array.isArray(n.images)&&n.images.every(t=>typeof t=="string"&&t.trim()!==""):n.type==="countdown"?typeof n.endTimeMs=="number"&&Number.isFinite(n.endTimeMs)&&n.endTimeMs>0:false}function Zy(e){let n=Ln(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function La(e){let n=Ln(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(Ly)&&n.commands.every(t=>Array.isArray(t)&&t.every(Zy))}function Qy(e){let n=xy(e);return {modules:Zl(n.content),commands:Ky(n.children)}}function Ql(e){try{return Qy(e.content)}catch{return Uy}}function Wy(e){return e.type==="section"?{type:"section",text:{type:e.textType,content:e.content}}:e.type==="image-group"?{type:"image-group",elements:e.images.map(n=>({type:"image",src:n}))}:{type:"countdown",endTime:String(e.endTimeMs)}}function Hy(e){return {menu_name:e.menuName,...e.menuId===void 0?{}:{menu_id:e.menuId},...e.messageType===void 0?{}:{msg_type:e.messageType},...e.miniProgram===void 0?{}:{msg_content:{...e.miniProgram.path===void 0?{}:{path:e.miniProgram.path},...e.miniProgram.appId===void 0?{}:{app_id:e.miniProgram.appId},...e.miniProgram.domain===void 0?{}:{domain:e.miniProgram.domain}}}}}function Wl(e){if(!La(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:18,content:JSON.stringify({content:e.modules.map(Wy),children:e.commands.map(n=>n.map(Hy))})}}function Ot(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Xo(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function zo(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`transfer body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Hl(e){return e===0||e===1||e===2||e===3}function Jl(e){return e===1||e===2}function qo(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim())||typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim())||typeof n.amount!="string"||!/^\d+$/.test(n.amount.trim())||typeof n.serialNumber!="string"||!/^\d+$/.test(n.serialNumber.trim())||typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0||typeof n.transferTime!="number"||!Number.isSafeInteger(n.transferTime)||n.transferTime<0||!Hl(n.status)||!Jl(n.sessionType))}function Za(e){let n=e.status;if(!Hl(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Jl(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:Xo(e.fromUid,"fromUid"),toUid:Xo(e.toUid,"toUid"),amount:Xo(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:Xo(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...Ot(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Ot(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Ot(e.remark)===void 0?{}:{remark:e.remark.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...Ot(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...Ot(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...Ot(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Qa(e){let n=e;if(!qo(e))throw new Error(`transfer body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.status)}\uFF09`);return {contentType:16,content:"",fromUid:zo(e.fromUid,"fromUid"),toUid:zo(e.toUid,"toUid"),amount:zo(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:zo(e.serialNumber,"serialNumber"),sessionType:e.sessionType,transferTime:BigInt(e.transferTime),...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.remark===void 0?{}:{remark:e.remark},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.transferMsgId===void 0?{}:{msgId:e.transferMsgId},...e.coinName===void 0?{}:{coinName:e.coinName},...e.coinIcon===void 0?{}:{coinIcon:e.coinIcon}}}function Yl(e){let n={url:e.content,width:e.width,height:e.height},t=Jy(e);return t!==void 0&&(n.duration=t,t!==e.duration&&(n.durationUnit="seconds")),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.unverifiedFileLength=e.fileLength.toString()),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Wa(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function Jy(e){let n=e.duration;if(!Number.isFinite(n)||n<=0)return;let t=e.fileEncryptType===0&&e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300;return Wa(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function jo(e){if(e.size!==void 0&&e.sizeUnit!=="bytes"){let{size:n,...t}=e;e={...t,...t.unverifiedFileLength===void 0&&Number.isSafeInteger(n)&&n>0?{unverifiedFileLength:String(Math.round(n/1024))}:{}};}return e.durationUnit==="seconds"||e.duration===void 0||!Number.isFinite(e.duration)||e.duration<=0||!Wa(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Xl(e){let n=Wa(e.fileEncryptType,e.teaKey)?1e3:1,t=Yy(e);return {contentType:3,content:e.url,width:e.width,height:e.height,...e.duration!==void 0&&Number.isFinite(e.duration)&&e.duration>0?{duration:Math.max(1,Math.round(e.duration*n))}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...t===void 0?{}:{fileLength:t},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Yy(e){if(e.size!==void 0){if(!Number.isSafeInteger(e.size)||e.size<0)throw new RangeError("\u89C6\u9891 size \u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");return e.size===0?void 0:BigInt(e.size)}if(e.unverifiedFileLength!==void 0){if(!/^\d{1,20}$/.test(e.unverifiedFileLength)||BigInt(e.unverifiedFileLength)>0xFFFFFFFFFFFFFFFFn)throw new RangeError("\u89C6\u9891\u5386\u53F2 fileLength \u5FC5\u987B\u4E3A uint64 \u5341\u8FDB\u5236\u6574\u6570");return BigInt(e.unverifiedFileLength)}}function zl(e){let n={url:e.content,durationMs:e.duration};return e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function ql(e){return {contentType:4,content:e.url,duration:Math.max(0,Math.round(e.durationMs)),...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}var ru=1,ou=[{wireContentType:29,domainContentType:"filesAlbum",parse:e=>({filesAlbum:ml(e)}),build:e=>e.filesAlbum===void 0?void 0:fl(e.filesAlbum)},{wireContentType:2,domainContentType:"image",parse:e=>({image:xl(e)}),build:e=>e.image!==void 0?Bl(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Yl(e)}),build:e=>e.video!==void 0?Xl(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:zl(e)}),build:e=>e.voice!==void 0?ql(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:bl(e)}),build:e=>e.file!==void 0?Nl(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:Da(e)}),build:e=>e.sticker!==void 0?Ga(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:Tl(e)}),build:e=>e.contact!==void 0?vl(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:Pa(e)}),build:e=>e.miniProgram!==void 0?Va(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:_l(e)}),build:e=>e.game!==void 0?Dl(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:Za(e)}),build:e=>e.transfer!==void 0?Qa(e.transfer):void 0},{wireContentType:17,domainContentType:"gift",parse:e=>({gift:wa(e)}),build:e=>e.gift!==void 0?Fa(e.gift):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:Ml(e)}),build:e=>e.call!==void 0?El(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:Pl(e)}),build:e=>e.redPacket!==void 0?Vl(e.redPacket):void 0},{wireContentType:Ko,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:Na(e)}),build:e=>e.mediaAlbum!==void 0?lr(e.mediaAlbum):void 0},{wireContentType:18,domainContentType:"robot",parse:e=>({robot:Ql(e)}),build:e=>e.robot!==void 0&&La(e.robot)?Wl(e.robot):void 0}],iI=[{contentType:"text",read:e=>e.text},{contentType:"system",read:e=>e.system},{contentType:"image",read:e=>e.image},{contentType:"video",read:e=>e.video},{contentType:"voice",read:e=>e.voice},{contentType:"file",read:e=>e.file},{contentType:"filesAlbum",read:e=>e.filesAlbum},{contentType:"sticker",read:e=>e.sticker},{contentType:"contact",read:e=>e.contact},{contentType:"miniProgram",read:e=>e.miniProgram},{contentType:"game",read:e=>e.game},{contentType:"transfer",read:e=>e.transfer},{contentType:"gift",read:e=>e.gift},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"mediaAlbum",read:e=>e.mediaAlbum},{contentType:"robot",read:e=>e.robot},{contentType:"unknown",read:e=>e.unknown}];function Yn(e,n){if(e.contentType===ru)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Kl(Ol(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=ou.find(r=>r.wireContentType===e.contentType);if(t===void 0)return {contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}}};try{return {contentType:t.domainContentType,body:t.parse(e)}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}}function Ha(e,n,t="outgoing message"){let r=iI.filter(o=>o.read(n)!==void 0).map(o=>o.contentType);if(r.length!==1||r[0]!==e){let o=r.length===0?"empty":r.join(",");throw new Error(`${t}: contentType/body \u4E0D\u4E00\u81F4\uFF08contentType=${e}, body=${o}\uFF09`)}En(n);}function En(e){if(e.unknown!==void 0)throw new Error("unknown message body \u4E0D\u53EF\u7F16\u7801\u4E3A\u51FA\u7AD9\u6D88\u606F");for(let n of ou){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:ru,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var Ja=/^[0-9a-f]{32}$/;function kn(e){return Ja.test(e.replace(/-/g,"").toLowerCase())}function Tn(){return globalThis.crypto.randomUUID()}function be(e){let n=e.replace(/-/g,"").toLowerCase();if(!kn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function cn(e){let n=e.replace(/-/g,"").toLowerCase();return Ja.test(n)?n:e}function ye(e){let n=e.toLowerCase();return Ja.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function $o(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function Xn(e){return $o(e)??e.createdAt}function zn(e){let n=e.conversationType==="channel"?e.extensions?.channelSequence:void 0,t=typeof n=="string"&&/^\d+$/.test(n)?`${n.padStart(20,"0")}:${e.id}`:e.id;return _e(Xn(e),t)}function _e(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function nn(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Ya=9,sI=20;function fr(e,n){let t=BigInt(e.conversationId),r=BigInt(n.selfId);if(t<=0n)throw new Error("channel outgoing: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(r<=0n)throw new Error("channel outgoing: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Number.isFinite(n.createdAt)||n.createdAt<0)throw new Error("channel outgoing: createdAt \u975E\u6CD5");let o={sRadioId:t,sFromId:r,sMsgId:be(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:Ya,encrypt:2,bMessage:En(e.body)};return e.mention!==void 0&&Object.assign(o,aI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=cn(e.refMessageId)),o}function aI(e){let n={nNotifyCount:e.atAll?-1:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(BigInt));let t=e.ranges!==void 0&&e.ranges.length>0,r=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;return (t||r)&&(n.extend=JSON.stringify({sendType:0,...r?{atUsersName:e.atUsersName}:{},...t?{atRange:e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))}:{}})),n}function qn(e,n,t){return za({senderId:ur(e.sFromId,e.botId),channelId:e.sRadioId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sId,sequence:e.nIncrId,notifyCount:e.nNotifyCount,notifyUsers:e.sNotifyUsers.map(String),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==""&&e.isEdit!=="0",oldMessageId:e.oldMsgId},n,t)}function Xa(e,n,t){return za(su(e),n,t)}function iu(e,n,t){return za(su(e),void 0,t,n)}function su(e){return {senderId:ur(e.sFromId,e.botId),channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:cI(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function za(e,n,t,r){dI(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=ye(e.messageId),i=e.senderId,a=e.channelId.toString(),s=Number(e.msgTime),l=s>0?s:t.receivedAt??Date.now(),f=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:Yn(n,t.selfId),I=lI(e,f.body.text??""),C=e.sequence.toString(),k={channelMessageType:Ya,channelSequence:C,historyCursor:e.historyCursor};e.oldMessageId!==""&&(k.previousMessageId=ye(e.oldMessageId));let N={id:o,conversationId:a,conversationType:"channel",senderId:i,contentType:f.contentType,body:f.body,createdAt:l,sortKey:_e(l,`${C.padStart(sI,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:k};return t.decryptFailed===true&&(N.encryption.decryptFailed=true),s>0&&(N.serverTime=s),e.parentMessageId!==""&&(N.refMessageId=ye(e.parentMessageId)),(e.edited||t.edited===true)&&(N.edited=true),I!==void 0&&(N.mention=I),t.keepRaw&&(N.raw=yI(e,n,t.cmdId,r)),N}function dI(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Al(e.senderId))throw new Error("channel message: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel message: message id \u7F3A\u5931");if(e.historyCursor.trim()===""&&!n)throw new Error("channel message: history cursor \u7F3A\u5931")}function cI(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(ei)}catch{}return n.split(/[\s,;]+/).filter(ei)}function lI(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=gI(e.notifyUsers.filter(ei),uI(n)),{ranges:o,atUsersName:i}=mI(e.extend);if(!(!t&&r.length===0&&o===void 0&&i===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...i===void 0?{}:{atUsersName:i}}}function uI(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function gI(e,n){return [...new Set([...e,...n])]}function ei(e){return /^[1-9]\d*$/.test(e)}function mI(e){if(e==="")return {};try{let n=JSON.parse(e),t=fI(n.atRange),r=pI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function fI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t;(typeof r.user_id=="string"||typeof r.user_id=="number")&&typeof r.start=="number"&&Number.isInteger(r.start)&&r.start>=0&&typeof r.end=="number"&&Number.isInteger(r.end)&&r.end>=r.start&&n.push({userId:String(r.user_id),start:r.start,end:r.end});}return n.length===0?void 0:n}function pI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))ei(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function yI(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:Ya,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,parentMsgId:e.parentMessageId||void 0},...n===void 0?{}:{content:{contentType:n.contentType,text:n.content||void 0}},...r===void 0?{}:{contentDecodeFailure:{codec:"BMessage",byteLength:r}}}}var xn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var Cn=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),au=messageDesc(Cn,0);var du=messageDesc(Cn,2);var cu=messageDesc(Cn,5);var lu=messageDesc(Cn,7),uu=messageDesc(Cn,8);var gu=messageDesc(Cn,10);messageDesc(Cn,11);messageDesc(Cn,12);messageDesc(Cn,13);messageDesc(Cn,15);var Iu=messageDesc(Cn,16),Cu=messageDesc(Cn,17);messageDesc(Cn,18);messageDesc(Cn,20);var wn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(wn,0);messageDesc(wn,1);var Mu=messageDesc(wn,2),Eu=messageDesc(wn,3),Tu=messageDesc(wn,4),vu=messageDesc(wn,5);var bu=messageDesc(wn,11),Nu=messageDesc(wn,12);var _u=messageDesc(wn,17),Du=messageDesc(wn,18),Gu=messageDesc(wn,19),Uu=messageDesc(wn,20);var xu=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi4hAKCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCRIhChltaW5pUHJvZ3JhbUdhbWVQcmV2aWV3VXJsGF4gASgJEiMKG21pbmlQcm9ncmFtR2FtZVByZXZpZXdXaWR0aBhfIAEoDRIkChxtaW5pUHJvZ3JhbUdhbWVQcmV2aWV3SGVpZ2h0GGAgASgNYgZwcm90bzM");var Bu=messageDesc(xu,1),wu=messageDesc(xu,2);var ft=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),Nt=messageDesc(ft,0),Kt=messageDesc(ft,1),pr=messageDesc(ft,2),yr=messageDesc(ft,3),qa=messageDesc(ft,4),ja=messageDesc(ft,5),$a=messageDesc(ft,6),Fu=messageDesc(ft,7);var An=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),Ir=messageDesc(An,0),ni=messageDesc(An,1),Pu=messageDesc(An,2);var Vu=messageDesc(An,5),Ou=messageDesc(An,6),Ku=messageDesc(An,7),Lu=messageDesc(An,8),Zu=messageDesc(An,9),Qu=messageDesc(An,10),Wu=messageDesc(An,11);var Hu=messageDesc(An,14),ed=messageDesc(An,15),nd=messageDesc(An,16),Ju=messageDesc(An,17);var Sr=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[xn]),Yu=messageDesc(Sr,0),Xu=messageDesc(Sr,1),zu=messageDesc(Sr,2),qu=messageDesc(Sr,3),ju=messageDesc(Sr,4);var Qe=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),Lt=messageDesc(Qe,0),td=messageDesc(Qe,1),$u=messageDesc(Qe,2),rd=messageDesc(Qe,3),eg=messageDesc(Qe,4);var od=messageDesc(Qe,7);var ng=messageDesc(Qe,9),tg=messageDesc(Qe,10),id=messageDesc(Qe,11),sd=messageDesc(Qe,12),rg=messageDesc(Qe,13);var og=messageDesc(Qe,15),ig=messageDesc(Qe,16),sg=messageDesc(Qe,17);var ag=messageDesc(Qe,26);var dg=messageDesc(Qe,29);var cg=messageDesc(Qe,33);var ad=messageDesc(Qe,48),ti=messageDesc(Qe,49);var lg=messageDesc(Qe,51),ug=messageDesc(Qe,52);var gg=messageDesc(Qe,55);var mg=messageDesc(Qe,58),fg=messageDesc(Qe,59),pg=messageDesc(Qe,60);var cd=fileDesc("Cg5pbS5yb2JvdC5wcm90bxIKaW0uYXBwLnB0bCJdCghSb2JvdE1zZxIOCgZ1c2VySWQYASABKAMSDwoHcm9ib3RJZBgCIAEoCRIPCgdjb250ZW50GAMgASgJEg8KB21zZ1RpbWUYBCABKAMSDgoGc01zZ0lkGAUgASgJImMKC1JvYm90TXNnQWNrEg4KBnVzZXJJZBgBIAEoAxIPCgdyb2JvdElkGAIgASgJEiQKB2VyckNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDQoFbXNnSWQYBCABKAkiZgoRUm9ib3RSZXBseVVzZXJNc2cSDgoGdXNlcklkGAEgASgDEg8KB3JvYm90SWQYAiABKAkSDgoGc01zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoA0IfChNjb20ubW9zYW50LmltLnByb3RvSANaBi4uL2FwcGIGcHJvdG8z",[xn]),yg=messageDesc(cd,0),Ig=messageDesc(cd,1),Cg=messageDesc(cd,2);var je=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[xn]),ld=messageDesc(je,0),Sg=messageDesc(je,1),Ag=messageDesc(je,2),ud=messageDesc(je,3),hg=messageDesc(je,4),Rg=messageDesc(je,5),gd=messageDesc(je,6);var Mg=messageDesc(je,8),md=messageDesc(je,9),Eg=messageDesc(je,10),Tg=messageDesc(je,11),fd=messageDesc(je,12),vg=messageDesc(je,13),bg=messageDesc(je,14),pd=messageDesc(je,15),rt=messageDesc(je,16),ot=messageDesc(je,17),yd=messageDesc(je,18),Id=messageDesc(je,19),Ar=messageDesc(je,20),Cd=messageDesc(je,21),Sd=messageDesc(je,22),Ad=messageDesc(je,23);var oi=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var Ng=messageDesc(oi,1),_g=messageDesc(oi,2);var Dg=messageDesc(oi,4),Gg=messageDesc(oi,5);function w(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Ge(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Bg(e=[]){let n=new Map,t=r=>{n.set(r.command,r);};for(let r of e)t(r);return {register:t,get:r=>n.get(r),has:r=>n.has(r)}}var hr=w(257,Yu),Rr=w(261,qu),ii=w(262,ju),si=w(258,Xu),hd=w(264,zu),pt=w(4097,Lt),ai=w(4098,td),di=w(4100,Lt),yt=w(4099,rd),Mr=w(4647,yg),ci=w(4648,Ig),li=w(4649,Cg),ui=w(24579,mg),gi=w(4650,Lt),mi=w(4651,Lt),fi=w(4652,td),pi=w(4653,Lt),yi=w(4631,lg),Er=w(4632,ug),Ii=w(4633,gg),Ci=w(4627,ag),Tr=w(4628,dg),Rd=Ge(cg),Si=w(4356,rg),vr=w(4355,og),Ai=w(4360,ig),br=w(4359,sg),Nr=w(4107,id),hi=w(4108,sd),Ri=w(4110,id),_r=w(4109,sd),Dr=w(8197,Lu),Mi=w(8198,Zu),Ei=w(4644,fg),Ti=w(4646,pg),vi=w(8976,Ju),bi=w(8977,ni),Ni=w(4102,rd),Gr=w(4101,eg),Ur=w(4103,od),_i=w(4104,ng),Di=w(4106,od),kr=w(4105,tg),_t=w(4117,ad),Gi=w(4118,ti),Ui=w(4119,ad),jn=w(8193,Ir),ki=w(8194,ni),xi=w(8196,Ir),xr=w(8195,Pu),Br=w(8978,Ir),Bi=w(8979,ni),wi=w(8980,Ir),wr=w(8967,nd),Fi=w(8968,ti),Pi=w(8969,nd),Zt=w(8708,Wu),Fr=w(8707,Ou),Vi=w(8452,Qu),Pr=w(8451,Vu),Oi=w(8964,Hu),Vr=w(8963,ed),Ki=w(8966,ed),Or=w(8965,Ku),it=w(12289,Nt),Li=w(12290,Kt),Kr=w(12291,pr),Zi=w(12292,Nt),wg=w(12816,Nt),Lr=w(12817,Nt),Qi=w(12818,Kt),Wi=w(12819,Nt),Zr=w(12293,yr),Hi=w(12294,Kt),Ji=w(12295,pr),Yi=w(12296,yr),Qr=w(12297,yr),Xi=w(12298,Kt),zi=w(12299,pr),qi=w(12300,yr),Wr=w(12547,ja),ji=w(12548,qa),Fg=w(12551,ja),Pg=w(12552,qa),Hr=w(12803,pr),$i=w(12804,Nt),Jr=w(12805,$a),es=w(12806,ti),ns=w(12807,$a),ts=w(12808,Fu),rs=w(12809,Kt),Yr=w(16385,ld),os=w(16386,Sg),Xr=w(16387,Ag),is=w(16388,ld),zr=w(16389,ud),ss=w(16390,hg),qr=w(16391,Rg),as=w(16392,ud),jr=w(16395,Mg),ds=w(16396,gd),Qt=w(16397,md),cs=w(16398,Eg),$r=w(16399,Tg),Vg=w(16400,md),eo=w(16401,fd),ls=w(16402,vg),no=w(16403,bg),us=w(16404,fd),to=w(16641,pd),gs=w(16642,rt),ro=w(16643,ot),ms=w(16644,pd),oo=w(16645,yd),fs=w(16646,rt),Og=w(16647,ot),ps=w(16648,yd),io=w(16649,Id),ys=w(16650,rt),Kg=w(16651,ot),Is=w(16652,Id),so=w(16653,Ar),Cs=w(16654,rt),Lg=w(16655,ot),Ss=w(16656,Ar),ao=w(16657,Ar),As=w(16658,rt),Zg=w(16659,ot),hs=w(16660,Ar),co=w(16661,Cd),Rs=w(16662,rt),Qg=w(16663,ot),Ms=w(16664,Cd),Wg=w(16665,Sd),Hg=w(16666,rt),Jg=w(16667,ot),Es=w(16668,Sd),lo=w(16669,Ad),Ts=w(16670,rt),Yg=w(16671,ot),vs=w(16672,Ad),Se=Ge(wu),Oe=Ge(Bu),Wt=Ge($u),bs=Ge(Ng),Md=Ge(_g),Ns=Ge(Dg),Ed=Ge(Gg),_s=Ge(Tu),Td=Ge(vu),Ds=Ge(bu),vd=Ge(Nu),Gs=Ge(_u),Us=Ge(Du),ks=Ge(Gu),bd=Ge(Uu),xs=Ge(Mu),Nd=Ge(Eu),Bs=Ge(au),_d=Ge(du),ws=Ge(cu),uo=Ge(lu),GI=Ge(uu),UI=Ge(gu),Fs=Ge(Iu),Dd=Ge(Cu);Bg([hr,Rr,ii,si,pt,ai,Mr,ci,li,ui,di,yt,gi,mi,fi,pi,yi,Er,Ii,Ci,Tr,Si,vr,Ai,br,Nr,hi,Ri,_r,Ti,Ni,Gr,Ur,_i,Di,kr,_t,Gi,Ui,jn,ki,Dr,Mi,bi,xi,xr,Br,Bi,wi,wr,Fi,Pi,Zt,Fr,Vi,Pr,Oi,Vr,Ki,Or,it,Li,Kr,Zi,wg,Lr,Qi,Wi,Zr,Hi,Ji,Yi,Qr,Xi,zi,qi,Wr,ji,Fg,Pg,Hr,$i,Jr,es,ns,rs,Yr,os,Xr,is,zr,ss,qr,as,jr,ds,Qt,cs,$r,Vg,eo,ls,no,us,to,gs,ro,ms,oo,fs,Og,ps,io,ys,Kg,Is,so,Cs,Lg,Ss,ao,As,Zg,hs,co,Rs,Qg,Ms,Wg,Hg,Jg,Es,lo,Ts,Yg,vs]);var hn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function qg(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new hn(n,"board pinned message Base64 \u975E\u6CD5");try{let t=globalThis.atob(e);if(globalThis.btoa(t)!==e)throw new Error("Base64 \u975E\u89C4\u8303\u7F16\u7801");return Uint8Array.from(t,r=>r.charCodeAt(0))}catch(t){throw new hn(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Xg(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function OI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function KI(e){return e===void 0||Number.isInteger(e)}function go(e){return e===void 0||e===0||e===1}function zg(e){return e===void 0||typeof e=="string"}function jg(e){if(!OI(e)||e.convType!==2&&e.convType!==3||typeof e.msgContent!="string"||e.msgContent===""||typeof e.msgId!="string"||e.msgId===""||typeof e.msgTime!="string"||!/^\d+$/.test(e.msgTime)||!Number.isInteger(e.msgType)||Number(e.msgType)<=0||typeof e.receiverId!="string"||e.receiverId===""||typeof e.senderId!="string"||e.senderId===""||!go(e.isBrowse)||!go(e.isCancel)||!go(e.isEdit)||!go(e.isNotifyAll)||!zg(e.notifyUsersName)||!zg(e.parentMsgId)||!go(e.readStatus)||!KI(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new hn("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function LI(e){let n;try{if(n=qg(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=Se.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof hn?t:new hn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function mo(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(qg(e,"INVALID_BASE64"));}catch(r){throw r instanceof hn?r:new hn("INVALID_BASE64","board pinned message \u5916\u5C42 UTF-8/Base64 \u975E\u6CD5",{cause:r})}let t;try{t=JSON.parse(n);}catch(r){throw new hn("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return jg(t),{envelope:t,message:LI(t.msgContent)}}function fo(e){let n=Se.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new hn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Xg(n)};return jg(t),Xg(new TextEncoder().encode(JSON.stringify(t)))}var ZI=new Uint8Array(0);function Ps(e,n,t){let r=2**n-1;if(!Number.isInteger(e)||e<0||e>r)throw new Error(`\u5E27\u5B57\u6BB5 ${t} \u8D8A\u754C\uFF1A${e}\uFF0C\u5E94\u4E3A [0, ${r}] \u5185\u6574\u6570`)}function X(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;Ps(e.command,16,"command"),Ps(n,8,"flags"),Ps(t,8,"appId"),Ps(r,32,"msgSeq");let o=e.body??ZI,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let a=new Uint8Array(16+i),s=new DataView(a.buffer);return s.setUint32(0,12+i,false),s.setUint8(4,n),s.setUint8(5,t),s.setUint16(6,e.command,false),s.setUint32(8,i,false),s.setUint32(12,r,false),a.set(o,16),a}function Gd(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let i=4+o;if(e.length-r<i)break;let a=t.getUint32(r+8,false);if(o!==12+a)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${a} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let s={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:a,msgSeq:t.getUint32(r+12,false)},l=e.subarray(r+16,r+i);n.push({header:s,body:l}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var QI=5;function It(e,n,t){let r=ur(e.sFromId,e.botId),o=Number(e.msgTime),i=ye(e.sMsgId),a=Yn(n,t.selfId),s=a.contentType==="text",l=o>0?o:t.receivedAt??Date.now(),f={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:a.contentType,body:a.body,createdAt:l,sortKey:_e(l,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(f.encryption.decryptFailed=true),o>0&&(f.serverTime=o),e.parentMsgId&&(f.refMessageId=ye(e.parentMsgId)),t.edited===true&&(f.edited=true);let I=WI(e,s?n.content:"");return I!==void 0&&(f.mention=I),t.keepRaw&&(f.raw=XI(e,n,t.cmdId)),f}function Ht(e,n){let t=$g(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=em(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function WI(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=em(e.sNotifyUsers.map(s=>s.toString()),$g(n)),{ranges:o,atUsersName:i}=HI(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let a={atAll:t,atUserIds:r};return o!==void 0&&(a.ranges=o),i!==void 0&&(a.atUsersName=i),a}function $g(e){if(e==="")return [];let n=[];for(let t of e.matchAll(/\[(\d{17,20})\]/g))t[1]!==void 0&&n.push(t[1]);return n}function em(e,n){if(n.length===0)return e;let t=new Set(e),r=[...e];for(let o of n)t.has(o)||(t.add(o),r.push(o));return r}function HI(e){if(e==="")return {};try{let n=JSON.parse(e),t=JI(n.atRange),r=YI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function JI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:i,end:a}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof a=="number"&&Number.isInteger(a)&&a>=i&&n.push({userId:String(o),start:i,end:a});}return n.length>0?n:void 0}function YI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length>0?n:void 0}function XI(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sGrpId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function po(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:be(e.id),msgType:QI,encrypt:e.encryption.encrypted?1:0,bMessage:En(e.body)};return e.mention!==void 0&&Object.assign(t,zI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=cn(e.refMessageId)),t}function zI(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=qI(e);return t!==void 0&&(n.extend=t),n}function qI(e){let n=e.ranges!==void 0&&e.ranges.length>0,t=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;if(!n&&!t)return;let r={sendType:0};return t&&(r.atUsersName=e.atUsersName),n&&(r.atRange=e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))),JSON.stringify(r)}var dn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function yo(e){return e instanceof hn||e instanceof dn?e.code:"INVALID_SNAPSHOT"}function Vs(e,n){let t=mo(e),{envelope:r}=t;if(r.convType!==2)throw new dn("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new dn("CONVERSATION_MISMATCH","board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new dn("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=jn.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});i=It(s,t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new dn("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function jI(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new dn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684\u666E\u901A\u7FA4\u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new dn("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Se.create(En(e.body)),r=fo({envelope:{convType:2,msgContent:"",msgId:be(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:"0",notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":cn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Vs(r,{conversationId:e.conversationId})}}function Os(e,n){let t=mo(e),{envelope:r}=t;if(r.convType!==3)throw new dn("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new dn("CONVERSATION_MISMATCH","channel board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new dn("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=r.nIncrId??"0";i=qn(it.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:s,nIncrId:BigInt(s),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new dn("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function $I(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new dn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684 CHANNEL \u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new dn("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Se.create(En(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=fo({envelope:{convType:3,msgContent:"",msgId:be(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:o,notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":cn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:Os(i,{conversationId:e.conversationId})}}var eC=new Set(["group_info_changed","group_member_renamed","channel_name_changed","channel_avatar_changed","channel_all_muted","channel_all_unmuted","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function nC(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Ct(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Oa(n.eventType)||!nC(e,n.eventType))return e;let t=eC.has(n.eventType);if(t===(n.timelineVisibility==="hidden"))return e;let r={...n};return t?r.timelineVisibility="hidden":delete r.timelineVisibility,{...e,body:{...e.body,system:r}}}var tC={1:"channel_name_changed",2:"channel_avatar_changed",3:"channel_announcement_changed",4:"channel_member_left",5:"channel_member_removed",6:"channel_member_joined",7:"channel_member_invited",8:"channel_owner_transferred",9:"channel_admin_added",10:"channel_admin_removed",11:"channel_dismissed",12:"channel_all_muted",13:"channel_all_unmuted",14:"channel_created",15:"channel_private_chat_disabled",16:"channel_private_chat_enabled",19:"channel_member_renamed",20:"channel_member_muted",21:"channel_member_unmuted",23:"channel_message_pinned",24:"channel_message_unpinned"},nm=new Set([17,18,22,23,24]),rC=20;function Ks(e){let n=e.body.system;if(e.conversationType!=="channel"||e.contentType!=="system"||n===void 0)return e;let t=n.eventType==="channel_unknown"&&n.rawNotifyType!==void 0?kd(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&nm.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,a=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!a)return Ct(e);let s={...n,eventType:t};return o&&delete s.fallbackText,a&&i!==void 0&&(s.targetUserIds=[i]),Ct({...e,body:{...e.body,system:s}})}function tm(e){return e.conversationType==="channel"&&e.extensions?.unsupportedContentType===101&&(e.contentType==="text"||e.contentType==="system"&&e.body.system?.eventType==="channel_unknown"&&e.body.system.rawNotifyType===void 0)}function Ud(e){if(!tm(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Ks({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function kd(e){return tC[e]??"channel_unknown"}function Io(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=ye(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,a={eventType:kd(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(a.operatorId=e.operatorId.toString());let s=e.targetUserIds?.filter(l=>l>0n).map(l=>l.toString())??[];if(s.length>0&&(a.targetUserIds=s),e.content!==void 0&&e.content!==""&&!nm.has(e.notifyType)&&(a.fallbackText=e.content),e.notifyType===23)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Os(e.content??"",{conversationId:e.channelId.toString(),...a.operatorId===void 0?{}:{operatorId:a.operatorId}})};}catch(l){a.pinnedMessageAction={type:"invalid",code:yo(l)};}else e.notifyType===24&&(a.pinnedMessageAction={type:"unpin"});return Ks({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:a},createdAt:o,...r>0?{serverTime:r}:{},sortKey:_e(o,i===void 0?t:`${i.padStart(rC,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...i===void 0?{}:{channelSequence:i}},...n.keepRaw?{raw:{...n.cmdId===void 0?{}:{cmdId:n.cmdId},channelNotify:{notifyType:e.notifyType,...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...e.sequence===void 0?{}:{sequence:e.sequence.toString()},...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}}:{}})}function Co(e){return /^\[[^[\]\s]+\]$/.test(e)}function So(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function oC(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function iC(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function xd(e,n,t){let r=new Map;for(let s of e){let l=r.get(s.senderId);(l===void 0||oC(l,s)<0)&&r.set(s.senderId,s);}let o=new Map,i;for(let s of r.values()){if(s.action===1)continue;let l=o.get(s.emoji)??{participants:[],latestAt:0};l.participants.push(s.senderId),l.latestAt=Math.max(l.latestAt,s.createdAt),o.set(s.emoji,l),s.senderId===n&&(i=s.emoji);}let a=[...o.entries()].map(([s,l])=>Object.freeze({emoji:s,count:l.participants.length,mine:l.participants.includes(n),latestAt:l.latestAt,participantIds:Object.freeze([...l.participants].sort())})).sort((s,l)=>Number(l.mine)-Number(s.mine)||l.latestAt-s.latestAt||s.emoji.localeCompare(l.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((s,l)=>s+l.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(iC)),aggregates:Object.freeze(a)})}function Bd(e,n,t){if(!Co(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(So(n.emoji))throw new Error(`\u6E38\u620F\u8D34\u56FE\u4E0D\u80FD\u4F5C\u4E3A Reaction\uFF1A${n.emoji}`);if(n.id.trim()===""||n.parentMessageId.trim()===""||n.senderId.trim()==="")throw new Error("Reaction \u4E8B\u4EF6\u7F3A\u5C11 id\u3001parentMessageId \u6216 senderId");if(n.action!==0&&n.action!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${n.action}`);if(!Number.isSafeInteger(n.createdAt)||n.createdAt<0)throw new Error(`Reaction createdAt \u975E\u6CD5\uFF1A${n.createdAt}`);return e?.events.some(r=>r.id===n.id)?e:xd([...e?.events??[],n],t,(e?.version??0)+1)}function wd(e,n,t){if(e===void 0)return;let r=e.events.filter(o=>o.id!==n);if(r.length===e.events.length)return e;if(r.length!==0)return xd(r,t,e.version+1)}function Fd(e,n,t){if(e===void 0)return n;if(n===void 0)return e;let r=new Map(e.events.map(o=>[o.id,o]));for(let o of n.events)r.set(o.id,o);return xd([...r.values()],t,Math.max(e.version,n.version))}var rm={unread:0,delivered:1,read:2};function Ls(e,n){return rm[n]>rm[e]?n:e}function im(e,n){return e==="sent"||n==="sent"?"sent":n}function Jt(e,n,t=""){let r=$o(e)??0,o=$o(n)??0,i=o>=r,a=i?{...e,...n}:{...n,...e},s=Math.max(r,o),l=Math.min(e.createdAt,n.createdAt),f=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},I=zn({...a,createdAt:l,serverTime:s,extensions:f}),k=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":im(e.status,n.status),N=k==="failed"?n.failure??e.failure:void 0,R=Fd(e.reactions,n.reactions,t),U=e.encryption.decryptFailed===true,_=n.encryption.decryptFailed===true,E=a.contentType,T=a.body,A=a.encryption,b=a.mention;U&&!_?(E=n.contentType,T=n.body,A=n.encryption,b=n.mention):!U&&_&&(E=e.contentType,T=e.body,A=e.encryption,b=e.mention),n.edited===true&&!_&&(E=n.contentType,T=n.body,A=n.encryption,b=n.mention);let F=e.body.voice?.waveform??n.body.voice?.waveform;if(T.voice!==void 0&&T.voice.waveform===void 0&&F!==void 0&&(T={...T,voice:{...T.voice,waveform:F}}),T.video!==void 0&&T.video.size===void 0){let re=T.video,me=[e.body.video,n.body.video].find(pe=>pe?.sizeUnit==="bytes"&&pe.size!==void 0&&pe.url===re.url&&pe.fileEncryptType===re.fileEncryptType&&pe.md5===re.md5&&$n(pe.teaKey,re.teaKey)&&(re.unverifiedFileLength===void 0||re.unverifiedFileLength===String(pe.size)));me!==void 0&&(T={...T,video:{...re,size:me.size,sizeUnit:"bytes"}});}let L=e.edited===true||n.edited===true,W=e.deletedForEveryone??n.deletedForEveryone;if(W!==void 0){let re={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,recalled:void 0,deletedForEveryone:W,body:{},encryption:a.encryption};return delete re.reactions,re}let ie=e.recalled??n.recalled;if(ie!==void 0){let re={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,recalled:ie,body:{},encryption:a.encryption};return delete re.reactions,re}let Te={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,contentType:E,body:T,encryption:A,...R===void 0?{}:{reactions:R},...L?{edited:true}:{}};return b!==void 0?Te.mention=b:delete Te.mention,Te}function sC(e,n){return e===void 0||n===void 0?e===n:e.version===n.version&&e.total===n.total&&e.currentUserEmoji===n.currentUserEmoji&&e.events.length===n.events.length&&e.events.every((t,r)=>{let o=n.events[r];return o!==void 0&&t.id===o.id&&t.senderId===o.senderId&&t.emoji===o.emoji&&t.action===o.action&&t.createdAt===o.createdAt})}function st(e,n=""){let t=new Map;for(let r of e){let o=t.get(r.id);t.set(r.id,o===void 0?r:Jt(o,r,n));}return [...t.values()]}function aC(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function dC(e,n){if(e===void 0||n===void 0)return e===n;let t=Object.keys(e);return t.length!==Object.keys(n).length?false:t.every(r=>e[r]===n[r])}function cC(e,n){return e===void 0||n===void 0?e===n:e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&AC(e.targetUserIds,n.targetUserIds)&&Pd(e.payload,n.payload)&&Pd(e.action,n.action)&&Pd(e.pinnedMessageAction,n.pinnedMessageAction)}function om(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.fileName===n.fileName&&e.size===n.size&&e.extension===n.extension&&e.fileType===n.fileType&&e.mimeType===n.mimeType&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function lC(e,n){return e===void 0||n===void 0?e===n:e.targetId===n.targetId&&e.avatar===n.avatar&&e.displayName===n.displayName&&e.username===n.username&&e.gender===n.gender&&e.kind===n.kind&&e.rawKind===n.rawKind}function uC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.exprType===n.exprType&&e.imageType===n.imageType&&e.size===n.size&&e.describe===n.describe&&e.contentId===n.contentId&&e.packageName===n.packageName&&$n(e.thumbData,n.thumbData)}function gC(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function mC(e,n){return e===void 0||n===void 0?e===n:JSON.stringify(e.modules)===JSON.stringify(n.modules)&&JSON.stringify(e.commands)===JSON.stringify(n.commands)}function fC(e,n){return e===void 0||n===void 0?e===n:e.appId===n.appId&&e.host===n.host&&e.developerId===n.developerId&&e.name===n.name&&e.icon===n.icon&&e.productId===n.productId&&e.isDynamicHost===n.isDynamicHost&&e.suffixAddress===n.suffixAddress&&e.showType===n.showType&&e.rawShowType===n.rawShowType&&e.description===n.description&&e.currencySource===n.currencySource&&e.currencyType===n.currencyType&&e.gamePath===n.gamePath&&e.subGameName===n.subGameName&&e.gamePreviewUrl===n.gamePreviewUrl&&e.gamePreviewWidth===n.gamePreviewWidth&&e.gamePreviewHeight===n.gamePreviewHeight}function pC(e,n){return e===void 0||n===void 0?e===n:e.callKind===n.callKind&&e.outcome===n.outcome&&e.durationMs===n.durationMs&&e.outgoing===n.outgoing}function yC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.amount===n.amount&&e.currencyType===n.currencyType&&e.status===n.status&&e.serialNumber===n.serialNumber&&e.remark===n.remark&&e.sessionType===n.sessionType&&e.transferTime===n.transferTime&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.transferMsgId===n.transferMsgId&&e.coinName===n.coinName&&e.coinIcon===n.coinIcon}function IC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.giftType===n.giftType&&e.giftName===n.giftName&&e.giftIcon===n.giftIcon&&e.explain===n.explain&&e.state===n.state&&e.serialNumber===n.serialNumber&&e.sessionType===n.sessionType&&e.initiateTime===n.initiateTime&&e.amount===n.amount&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.zhangCount===n.zhangCount&&e.benCount===n.benCount&&e.fissionNumber===n.fissionNumber}function CC(e,n){return e===void 0||n===void 0?e===n:e.packetId===n.packetId&&e.packetType===n.packetType&&e.amount===n.amount&&e.count===n.count&&e.showAmount===n.showAmount&&e.thunderRate===n.thunderRate&&e.isThunder===n.isThunder&&e.thunderNumber===n.thunderNumber&&e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.currencyType===n.currencyType&&e.coinName===n.coinName}function SC(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function AC(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Pd(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function hC(e,n){return e===void 0||n===void 0?e===n:e.atAll!==n.atAll||e.atUserIds.length!==n.atUserIds.length||e.atUserIds.some((t,r)=>t!==n.atUserIds[r])?false:dC(e.atUsersName,n.atUsersName)}function $n(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function RC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function MC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.duration===n.duration&&e.durationUnit===n.durationUnit&&e.sizeUnit===n.sizeUnit&&e.unverifiedFileLength===n.unverifiedFileLength&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function EC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.durationMs===n.durationMs&&e.size===n.size&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function TC(e,n){return e.kind===n.kind&&e.url===n.url&&e.width===n.width&&e.height===n.height&&e.durationMs===n.durationMs&&e.thumbUrl===n.thumbUrl&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)&&e.hd===n.hd}function vC(e,n){return e===void 0||n===void 0?e===n:e.caption!==n.caption||e.items.length!==n.items.length?false:e.items.every((t,r)=>TC(t,n.items[r]))}function Dt(e,n){return e.id===n.id&&e.conversationId===n.conversationId&&e.conversationType===n.conversationType&&e.senderId===n.senderId&&e.contentType===n.contentType&&e.body.text===n.body.text&&cC(e.body.system,n.body.system)&&e.createdAt===n.createdAt&&e.sortKey===n.sortKey&&e.status===n.status&&e.serverTime===n.serverTime&&e.receipt===n.receipt&&e.refMessageId===n.refMessageId&&e.edited===n.edited&&(e.recalled?.by??"")===(n.recalled?.by??"")&&(e.recalled?.at??0)===(n.recalled?.at??0)&&(e.deletedForEveryone?.by??"")===(n.deletedForEveryone?.by??"")&&(e.deletedForEveryone?.at??0)===(n.deletedForEveryone?.at??0)&&(e.deletedForEveryone?.reason??"")===(n.deletedForEveryone?.reason??"")&&sC(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&hC(e.mention,n.mention)&&RC(e.body.image,n.body.image)&&MC(e.body.video,n.body.video)&&EC(e.body.voice,n.body.voice)&&om(e.body.file,n.body.file)&&(e.body.filesAlbum===void 0||n.body.filesAlbum===void 0?e.body.filesAlbum===n.body.filesAlbum:e.body.filesAlbum.caption===n.body.filesAlbum.caption&&e.body.filesAlbum.items.length===n.body.filesAlbum.items.length&&e.body.filesAlbum.items.every((t,r)=>om(t,n.body.filesAlbum.items[r])))&&uC(e.body.sticker,n.body.sticker)&&lC(e.body.contact,n.body.contact)&&fC(e.body.miniProgram,n.body.miniProgram)&&mC(e.body.robot,n.body.robot)&&gC(e.body.game,n.body.game)&&yC(e.body.transfer,n.body.transfer)&&IC(e.body.gift,n.body.gift)&&pC(e.body.call,n.body.call)&&CC(e.body.redPacket,n.body.redPacket)&&vC(e.body.mediaAlbum,n.body.mediaAlbum)&&SC(e.body.unknown,n.body.unknown)&&aC(e.failure,n.failure)}var bC=20;function Yt(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(cn(r));}return [...n]}function Xt(e){let n=new Set;for(let t of e)t!==""&&n.add(ye(t));return [...n]}var sm=2;function NC(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Ao(e){let n=Wt.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:NC(n.action)}}function ho(e,n){let t=Ao(e.sContent),r=e.sFromId.toString();return {id:ye(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:ye(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Ro(e){let n=Ao(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Vd(e){let n=Ao(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Od(e){if(e.eventType===sm)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Ao(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function Kd(e){let n=Ao(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Zs(e,n,t){return n===e?t:n}var _C=102,am=1,DC=2;function Ld(e,n){let t=ye(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,a=i?String(e.sGroupId):Zs(n,r,String(e.sToId)),s=Number(e.msgTime)||o;return {id:t,conversationId:a,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:s,sortKey:_e(s,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function Zd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function Qd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function Wd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function Mo(e,n){if(n.contentType!==_C||n.type!==am&&n.type!==DC||!kn(n.content))return null;let t=ye(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===am?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var GC=Se.create({contentType:1,content:""}),UC=101;function dm(e){if(e.sChnnId<=0n)throw new Error("channel session: channel id \u7F3A\u5931\u6216\u975E\u6CD5");let n=e.uStatus===0||e.uStatus===1,t=e.uExistAt===1||e.uExistAt===2,r=e.uStatus===0&&t?"active":"unknown_restricted",o=e.uExistAt===1?false:e.uExistAt===2?true:void 0,i={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(i.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(i.raw={status:e.uStatus,mentionStatus:e.uExistAt}),i}function kC(e){return Bs.encode(Bs.create({sUserId:Eo(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:Eo(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function cm(e){return ws.encode(ws.create({sUserId:Eo(e.userId,"user"),clientType:e.clientType,lsPull:e.pulls.map(n=>{if(!Number.isInteger(n.count)||n.count<=0)throw new Error("channel offline request: count \u7F3A\u5931\u6216\u975E\u6CD5");return {sChnnId:Eo(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function xC(e){return cm({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function BC(e,n,t){let r=_d.decode(e);Hd(r.errcode,"sessions");let o=Ws(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let a=i.sChnnId.toString();Hs(a,o,"sessions");let s=dm(i);if(i.last!==void 0){if(i.last.sChnnId!==i.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${i.sChnnId}, last=${i.last.sChnnId}\uFF09`);let l=Qs(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);l!==null&&(s.last=l);}return s})}}function lm(e,n,t){let r=uo.decode(e);Hd(r.errcode,"offlineMessages");let o=Ws(n.expectedChannelIds),i={},a={},s=[];for(let l of r.lsMessage){let f=l.sChnnId.toString();Hs(f,o,"offlineMessages"),i[f]=l.sIndex,a[f]=(a[f]??0)+1;let I=Qs(l,n,t);I!==null&&s.push(I);}return {messages:st(s,n.selfId).sort(nn),batchSize:r.lsMessage.length,messageCounts:a,nextBaseIndexes:i}}async function wC(e,n,t,r){r.signal?.throwIfAborted();let o=uo.decode(e);Hd(o.errcode,"offlineMessages");let i=Ws(n.expectedChannelIds),a={},s={},l=[],f=0;for(let C of o.lsMessage){r.signal?.throwIfAborted(),f>0&&f%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let k=C.sChnnId.toString();Hs(k,i,"offlineMessages"),a[k]=C.sIndex,s[k]=(s[k]??0)+1;let N=Qs(C,n,t);N!==null&&l.push(N),f+=1;}r.signal?.throwIfAborted();let I=o.lsMessage[0]?.sIndex;return {messages:st(l,n.selfId).sort(nn),batchSize:o.lsMessage.length,messageCounts:s,nextBaseIndexes:a,firstBaseIndex:I}}function um(e,n,t,r="specificMsgs"){let o=Ws(n.expectedChannelIds),i=[];for(let a of e){let s=a.sChnnId.toString();Hs(s,o,r);let l=Qs(a,n,t);l!==null&&i.push(l);}return st(i,n.selfId).sort(nn)}function FC(e){return Fs.encode(Fs.create({sUserId:BigInt(e.userId),sChnnId:Eo(e.channelId,"channel"),lsMsgId:Yt(e.messageIds),clientType:e.clientType??0}))}function PC(e,n,t){let r=Dd.decode(e);return {messages:um(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:Xt(r.lsMissingMsgId),code:r.errcode}}function VC(e,n,t){if(!Number.isInteger(n.requestedCount)||n.requestedCount<=0)throw new Error("channel history: requestedCount \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=uo.decode(e),o=lm(e,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,expectedChannelIds:[n.channelId],...n.diagnostic===void 0?{}:{diagnostic:n.diagnostic},onContentDecodeError:n.onContentDecodeError,onReaction:n.onReaction},t),i=r.lsMessage[0]?.sIndex;if(i!==void 0&&i===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${i}\uFF09`);return {messages:o.messages,...i===void 0?{}:{nextBaseIndex:i},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function Qs(e,n,t){if(Od(e)){try{n.onReaction?.(Kd(e));}catch(a){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a});}return null}if(e.uOperationType===1||e.uOperationType===2)return Wd(e);let r=GC,o=false;if(e.encrypt===0)try{r=Se.decode(e.sContent);}catch(a){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a}),iu(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let a=t.resolveUserPrivateKey?.()??null;if(a===null)o=true,t.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let s;try{if(s=Oe.decode(e.sContent),s.secretKey.length===0||s.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(l){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:l})),s=Oe.create();}if(!o){let l;try{l=t.crypto.decryptEndToEnd({secretKey:s.secretKey,cipherData:s.cipherData,privateKey:a});}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,cause:f})),l=new Uint8Array;}if(!o)try{r=Se.decode(l);}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,decryptedByteLength:l.length,cause:f}));}}}}else if(e.encrypt===2&&t!==void 0){let a=e.sChnnId.toString(),s=t.resolveChannelKey(a);if(s===null||s.length!==16)o=true,t.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:s?.length??0,keySource:s===null?"miss":"cache"}));else {let l;try{let f=Oe.decode(e.sContent);if(f.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");l=f.cipherData;}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:s.length,keySource:"cache",cause:f})),l=new Uint8Array;}if(!o){let f;try{f=t.crypto.decryptSymmetric({teaKey:s,cipherData:l});}catch(I){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:l.length,cause:I})),f=new Uint8Array;}if(!o)try{r=Se.decode(f);}catch(I){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:l.length,decryptedByteLength:f.length,cause:I}));}}}}else o=true,t?.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let a=Mo({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(a!==null)return a}if(!o&&r.contentType===UC)return Io({channelId:e.sChnnId,messageId:e.sMsgId,occurredAt:e.msgTime,notifyType:r.type,operatorId:r.oprUserId,targetUserIds:r.mnpledUserId,content:r.content,extend:e.extend,historyCursor:e.sIndex,sequence:e.sIncrId,encrypted:e.encrypt!==0},{keepRaw:n.keepRaw});let i=Xa(e,r,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw===true||o,decryptFailed:o});return o&&(e.encrypt===1||e.encrypt===2)&&t?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:i.conversationId},messageId:i.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),i}function at(e,n,t){return {...n.diagnostic??{endpoint:"unknown",surface:"unknown"},messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,payloadByteLength:e.sContent.length,...t}}function Hd(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function Ws(e){return e===void 0?void 0:new Set(e)}function Hs(e,n,t){if(n!==void 0&&!n.has(e))throw new Error(`channel ${t}: \u54CD\u5E94\u9891\u9053\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\u6279\u6B21\uFF08channelId=${e}\uFF09`)}function Eo(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function OC(e,n,t){let r=Yn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Js="system",KC=32768;function gm(e){switch(e){case 7:return "group_activated";case 1:return "group_info_changed";case 2:return "group_member_left";case 3:return "group_member_removed";case 4:return "group_member_joined";case 5:return "group_member_invited";case 6:return "group_master_changed";case 10:return "group_member_renamed";case 11:return "group_dismissed";case 12:return "group_message_pinned";case 13:return "group_message_unpinned";default:return "unknown"}}function Jd(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Ct(e):Ct({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function LC(e){let n=e.trim();if(!(n===""||!n.startsWith("{")&&!n.startsWith("[")))try{let t=JSON.parse(n);return typeof t=="object"&&t!==null?t:void 0}catch{return}}function To(e,n){let t=ye(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),a=e.sMnpledUserId.map(N=>N.toString()),s={eventType:gm(e.notifyType),rawNotifyType:e.notifyType},l=Number(e.errcode);l!==0&&(s.errcode=l),i!==void 0&&(s.operatorId=i),a.length>0&&(s.targetUserIds=a);let f=e.notifyType===12,I=e.notifyType===13;!f&&!I&&e.sContent!==""&&(s.fallbackText=e.sContent);let C=f||I?void 0:LC(e.sContent);if(C!==void 0&&(s.payload=C),f)try{s.pinnedMessageAction={type:"pin",pinnedMessage:Vs(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(N){s.pinnedMessageAction={type:"invalid",code:yo(N)};}else I&&(s.pinnedMessageAction={type:"unpin"});let k={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Js,contentType:"system",body:{system:s},createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(k.serverTime=r),n.keepRaw&&(k.raw={cmdId:n.cmdId}),Jd(k)}function Yd(e,n){let t=e.targetUserIds?.includes(n)??false;switch(e.eventType){case "group_member_left":return t?{state:"left",reason:"you_left_group"}:null;case "group_member_removed":return t?{state:"removed",reason:"you_were_removed"}:null;case "group_dismissed":return {state:"dismissed",reason:"group_dismissed"};case "group_member_joined":case "group_member_invited":{if(!t)return null;let r=e.errcode;return r!==void 0&&r!==KC?null:{state:"active",reason:""}}default:return null}}function Xd(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var ZC=new Set([8196,8976]),mm=Se.create({contentType:1,content:""});function QC(e){return Ds.encode(Ds.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function WC(e){return _s.encode(_s.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function HC(e,n,t){let r=t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(r===null)return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let o=Oe.decode(e.sContent);if(o.secretKey.length===0||o.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${o.secretKey.length}B cipherData=${o.cipherData.length}B`);let i=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return Se.decode(i)}catch(o){return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:o}),null}}function vo(e,n,t){if(Ys(e.sGroupId,n.expectedGroupId),e.cmdId===8980){let l=jn.decode(e.sMsgData),f={...l,sMsgId:l.sMsgId||e.sMsgId,sFromId:l.sFromId===0n?e.sFromId:l.sFromId,sGrpId:l.sGrpId===0n?e.sGroupId:l.sGrpId,sToId:l.sToId===0n?e.sGroupId:l.sToId,msgTime:l.msgTime===0n?e.msgTime:l.msgTime,parentMsgId:l.parentMsgId||e.parentMsgId};return Ys(f.sGrpId,n.expectedGroupId),n.onReaction?.(Ro(f)),null}if(e.cmdId===8708){let l=Zt.decode(e.sMsgData);return Ys(l.sGrpId,n.expectedGroupId),To(l,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw})}if(!ZC.has(e.cmdId))return null;let r=jn.decode(e.sMsgData);Ys(r.sGrpId,n.expectedGroupId);let o=mm,i=false,a=false;if(r.encrypt===0)try{o=Se.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let l=HC(r,r.sGrpId.toString(),t);o=l??mm,i=l===null;}else i=true;let s=It(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ye(e.parentMsgId)),e.isEdit===1&&(s.edited=true),s}function Ys(e,n){if(n!==void 0&&e.toString()!==n)throw new Error(`group history: \u54CD\u5E94\u7FA4\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\uFF08groupId=${e}\uFF09`)}function JC(e,n,t){let r=vd.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=vo(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function YC(e,n,t){let r=Td.decode(e),o=[],i=[];for(let a of r.sessionList){o.push({groupId:a.groupId.toString(),unreadCount:Number(a.unreadCount)});for(let s of a.msgList){let l=vo(s,n,t);l!==null&&i.push(l);}}return {unreads:o,messages:i}}function XC(e){return Gs.encode(Gs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function zC(e,n,t){let r=Us.decode(e),o=[];for(let a of r.msgList){let s=vo(a,n,t);s!==null&&o.push(s);}let i=r.msgList.map(a=>Number(a.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}async function qC(e,n,t,r){r.signal?.throwIfAborted();let o=Us.decode(e);if(o.code!==200)throw new Error(`group history: code=${o.code}`);let i=[],a,s,l=0;for(let f of o.msgList){r.signal?.throwIfAborted(),l>0&&l%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let I=vo(f,n,t);I!==null&&i.push(I);let C=Number(f.msgTime);a=a===void 0?C:Math.min(a,C),s=s===void 0?C:Math.max(s,C),l+=1;}return r.signal?.throwIfAborted(),{messages:i,batchSize:o.msgList.length,...a===void 0?{}:{oldestEntryTime:a,newestEntryTime:s}}}function jC(e){return ks.encode(ks.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:Yt(e.messageIds),clientType:e.clientType??0}))}function $C(e,n,t){let r=bd.decode(e),o=[];for(let i of r.msgList){let a=vo(i,n,t);a!==null&&(i.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),o.push(a));}return {messages:o,missingMessageIds:Xt(r.missingMsgIds),code:r.code}}function eS(e){return xs.encode(xs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function nS(e){return {code:Nd.decode(e).code}}var tS=1;function zt(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),a=ye(e.sMsgId),s=Yn(n,t.selfId),l=i>0?i:t.receivedAt??Date.now(),f={id:a,conversationId:Zs(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:s.contentType,body:s.body,createdAt:l,sortKey:_e(l,a),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(f.encryption.decryptFailed=true),i>0&&(f.serverTime=i),e.parentMsgId&&(f.refMessageId=ye(e.parentMsgId)),t.edited===true&&(f.edited=true),t.keepRaw&&(f.raw=rS(e,n,t.cmdId)),f}function rS(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sToId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function bo(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:be(e.id),msgType:tS,encrypt:e.encryption.encrypted?1:0,bMessage:En(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:cn(e.refMessageId)}:{}}}function zd(e){return {id:ye(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function Xs(e){switch(e){case 33281:return {code:e,reason:"rejected",displayCode:"forbiddenOrLeft",retryable:false};case 33282:return {code:e,reason:"rejected",displayCode:"contentRejected",retryable:false};case 33557:return {code:e,reason:"rejected",displayCode:"groupDismissed",retryable:false};case 33540:return {code:e,reason:"network",displayCode:"groupUnavailable",retryable:true};default:return {code:e,reason:"rejected",retryable:true}}}function oS(e){return bs.encode(bs.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var iS=new Set([4100,4113,4644,4645]),fm=Se.create({contentType:1,content:""});function sS(e,n){let t=n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(t===null)return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let r=Oe.decode(e.sContent);if(r.secretKey.length===0||r.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${r.secretKey.length}B cipherData=${r.cipherData.length}B`);let o=n.crypto.decryptEndToEnd({secretKey:r.secretKey,cipherData:r.cipherData,privateKey:t});return Se.decode(o)}catch(r){return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:r}),null}}function aS(e,n,t){let r=Md.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=pm(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function pm(e,n,t){if(e.cmdId===4653){let l=pt.decode(e.sMsgData),f={...l,sMsgId:l.sMsgId||e.sMsgId,sFromId:l.sFromId===0n?e.sFromId:l.sFromId,sToId:l.sToId===0n?e.sToId:l.sToId,msgTime:l.msgTime===0n?e.msgTime:l.msgTime,parentMsgId:l.parentMsgId||e.parentMsgId};return n.onReaction?.(ho(f,n.selfId)),null}if(!iS.has(e.cmdId))return null;let r=pt.decode(e.sMsgData),o=fm,i=false,a=false;if(r.encrypt===0)try{o=Se.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let l=sS(r,t);o=l??fm,i=l===null;}else i=true;let s=zt(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ye(e.parentMsgId)),e.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),e.isEdit===1&&(s.edited=true),s}function dS(e){return Ns.encode(Ns.create({userId:BigInt(e.userId),msgIds:Yt(e.messageIds),clientType:e.clientType??0}))}function cS(e,n,t){let r=Ed.decode(e),o=[];for(let i of r.msgList){let a=pm(i,n,t);a!==null&&o.push(a);}return {messages:o,missingMessageIds:Xt(r.missingMsgIds),code:r.code}}function vn(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r;if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function qt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""&&Number.isFinite(Number(r)))return Number(r)}}function lS(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,i=n?.[2]===void 0?void 0:Number(n[2]),a=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let s=r.getMonth()+1;(s<i||s===i&&a!==void 0&&r.getDate()<a)&&(o-=1);}return o>=0&&o<200?o:void 0}function uS(e){let n=t=>t.map(r=>typeof r=="string"?r.trim():r!==null&&typeof r=="object"&&typeof r.email=="string"?r.email.trim():"").filter(r=>r!=="");for(let t of ["extend_email","extendEmail"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim()!==""){let o=r.trim();if(o.startsWith("["))try{let i=JSON.parse(o);if(Array.isArray(i))return n(i)}catch{}return [o]}}return []}function gS(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let a=i.trim(),s=o.mobile.trim();return a===""||s===""?[]:[{countryCode:a,mobile:s}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var mS=["user_id","userId","id","uid"],fS=["nick_name","nickName","nickname","name"],pS=["remark_name","remarkName"],yS=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],IS=["per_signature","signature","sign"],CS=["mid"],SS=["birthday"],AS=["public_key","publicKey"],ym=["is_undisturb","isUndisturb"];function hS(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=vn(t,mS);if(r===void 0)throw new Error("toUserProfile: \u7F3A\u5C11\u7528\u6237 id \u5B57\u6BB5\uFF08user_info.user_id / user_id\uFF09");let o={id:r,nickname:vn(t,fS)??""},i=vn(e,pS);i!==void 0&&(o.remark=i);let a=vn(t,yS);a!==void 0&&(o.avatar=a);let s=vn(t,IS);s!==void 0&&(o.signature=s);let l=vn(t,CS);l!==void 0&&(o.miCallId=l);let f=vn(t,SS);if(f!==void 0){o.birthday=f;let R=lS(f);R!==void 0&&(o.age=R);}let I=uS(e);I.length>0&&(o.remarkEmail=I);let C=gS(e);C.length>0&&(o.remarkPhones=C);let k=vn(t,AS);k!==void 0&&(o.publicKey=k);let N=qt(e,ym);return N!==void 0&&(o.muted=N===1),o}var RS=["group_id","groupId","id","gid"],MS=["group_name","groupName","name"],ES=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],TS=["total_users","member_count","memberCount","member_num","memberNum"],vS=["status"],bS=["is_ingroup","isInGroup","isIngroup"],NS=["user_id","userId","owner_id","ownerId","master_id","masterId"],_S=["verify_way","verifyWay"],DS=["invite_code","inviteCode"];function GS(e){let n=vn(e,RS);if(n===void 0)throw new Error("toGroupProfile: \u7F3A\u5C11\u7FA4 id \u5B57\u6BB5\uFF0809b \u5F85\u6838\u5BF9\u771F\u5B9E\u63A5\u53E3\u5B57\u6BB5\uFF09");let t={id:n,name:vn(e,MS)??""},r=vn(e,ES);r!==void 0&&(t.avatar=r);let o=qt(e,TS);o!==void 0&&(t.memberCount=o);let i=qt(e,vS);i!==void 0&&(t.status=i);let a=qt(e,bS);a!==void 0&&(t.isInGroup=a===1);let s=vn(e,NS);s!==void 0&&(t.ownerId=s);let l=qt(e,_S);l!==void 0&&(t.verifyWay=l);let f=vn(e,DS);f!==void 0&&(t.inviteCode=f);let I=e.to_user;if(I!==null&&typeof I=="object"){let C=qt(I,ym);C!==void 0&&(t.muted=C===1);}return t}function qd(e,n){if(e.robotId.trim()==="")throw new Error("robot reply: robotId \u7F3A\u5931");if(e.userId<=0n)throw new Error("robot reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");let t=ye(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=Im(e.content),a=Yn(i,n.selfId),s={id:t,conversationId:e.robotId,conversationType:"robot",senderId:e.robotId,contentType:a.contentType,body:a.body,createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"unread",encryption:{encrypted:false}};return r>0&&(s.serverTime=r),n.keepRaw&&(s.raw={cmdId:n.cmdId,chat:{sMsgId:e.sMsgId,sFromId:e.robotId,sToId:e.userId.toString(),msgType:11,encrypt:0,msgTime:e.msgTime.toString()},content:{contentType:i.contentType,text:i.content||void 0}}),s}function jd(e){if(e.msgId.trim()==="")throw new Error("robot ack: msgId \u7F3A\u5931");return {id:ye(e.msgId),serverTime:0,errcode:e.errCode}}function $d(e,n){if(e.encryption.encrypted)throw new Error("robot \u79C1\u804A\u53EA\u8D70\u660E\u6587 JSON\uFF08EncryptType.NONE\uFF09\uFF0C\u7981\u6B62 encrypt=1");if(e.conversationId.trim()==="")throw new Error("robot \u51FA\u7AD9: robotId \u7F3A\u5931");let t=En(e.body);return {userId:BigInt(n.selfId),robotId:e.conversationId,sMsgId:be(e.id),msgTime:BigInt(e.createdAt),content:kS(t,e.refMessageId)}}function Im(e){let n=e.trim();if(n.startsWith("{"))try{let t=JSON.parse(n);if(t!==null&&typeof t=="object"&&!Array.isArray(t))return Se.create(US(t))}catch{}try{return Se.decode(new TextEncoder().encode(e))}catch{return Se.create({contentType:1,content:e})}}function US(e){let n=et(e.contentType)??1,t=typeof e.content=="string"?e.content:"",r=zs(e.md5)??zs(e.MD5),o=et(e.fileLength);return {contentType:n,content:t,...et(e.width)!==void 0?{width:et(e.width)}:{},...et(e.height)!==void 0?{height:et(e.height)}:{},...et(e.duration)!==void 0?{duration:et(e.duration)}:{},...zs(e.describe)!==void 0?{describe:zs(e.describe)}:{},...r!==void 0?{MD5:r}:{},...et(e.imageType)!==void 0?{imageType:et(e.imageType)}:{},...o!==void 0&&o>0?{fileLength:BigInt(Math.round(o))}:{}}}function kS(e,n){let t={contentType:e.contentType,content:e.content};return e.contentType===1&&(t.logicType=0),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.duration!==void 0&&(t.duration=e.duration),e.describe!==void 0&&e.describe!==""&&(t.describe=e.describe),e.MD5!==void 0&&e.MD5!==""&&(t.md5=e.MD5),e.imageType!==void 0&&(t.imageType=e.imageType),e.fileLength!==void 0&&e.fileLength>0n&&(t.fileLength=Number(e.fileLength)),n!==void 0&&n!==""&&(t.parentMsgId=cn(n)),JSON.stringify(t)}function et(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function zs(e){return typeof e=="string"&&e!==""?e:void 0}function xS(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function BS(e){if(St(e)){if(e.deletedForEveryone!==void 0)return {kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.encryption.decryptFailed===true)return {kind:"decrypt-failed"};if(e.body.text)return {kind:"text",text:e.body.text};if(e.contentType==="image")return {kind:"image"};if(e.contentType==="video")return {kind:"video"};if(e.contentType==="voice")return e.body.voice?.durationMs!==void 0?{kind:"voice",durationMs:e.body.voice.durationMs}:{kind:"voice"};if(e.contentType==="filesAlbum"&&e.body.filesAlbum!==void 0)return {kind:"filesAlbum",count:e.body.filesAlbum.items.length,...e.body.filesAlbum.caption===void 0?{}:{caption:e.body.filesAlbum.caption}};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:_a(e.body.sticker?.imageType??0)};if(e.contentType==="mediaAlbum"&&e.body.mediaAlbum!==void 0){let n=e.body.mediaAlbum.items,t=e.body.mediaAlbum.caption,r=n[0]?.kind;return {kind:"mediaAlbum",imageCount:n.filter(o=>o.kind==="image").length,videoCount:n.filter(o=>o.kind==="video").length,...t!==void 0&&t.trim()!==""?{caption:t}:{},...r===void 0?{}:{firstItemKind:r}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="robot")return {kind:"robot"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="gift")return {kind:"gift"};if(e.contentType==="call"&&e.body.call!==void 0)return {kind:"call",callKind:e.body.call.callKind};if(e.contentType==="redPacket")return {kind:"redPacket"};if(e.contentType==="game"&&e.body.game!==void 0)return {kind:"game",gameType:e.body.game.gameType};if(e.contentType==="unknown")return {kind:"unknown"};if(e.contentType==="system"&&e.body.system!==void 0){let{pinnedMessageAction:n,...t}=e.body.system;return {kind:"system",system:t}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function wS(e,n){return e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&JSON.stringify(e.action)===JSON.stringify(n.action)&&FS(e.targetUserIds,n.targetUserIds)&&PS(e.payload,n.payload)}function St(e){return e.body.system?.timelineVisibility!=="hidden"}function FS(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function PS(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function ec(e,n){if(e===void 0||n===void 0)return e===n;if(e.kind!==n.kind)return false;switch(e.kind){case "text":return e.text===n.text;case "voice":return e.durationMs===n.durationMs;case "recalled":return e.by===n.by;case "channel-moderation-deleted":return e.by===n.by;case "system":return wS(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "filesAlbum":{let t=n;return e.count===t.count&&e.caption===t.caption}case "mediaAlbum":{let t=n;return e.imageCount===t.imageCount&&e.videoCount===t.videoCount&&e.caption===t.caption&&e.firstItemKind===t.firstItemKind}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "robot":case "transfer":case "gift":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function VS(e,n){if(n!==void 0&&n!==""?e.senderId===n:e.senderId!==e.conversationId){if(e.status==="failed")return "failed";if(e.status==="pending"||e.status==="uploading"||e.status==="sending")return "sending"}}function nc(e,n={}){let t=e.contentType==="system"&&St(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:xS(e),lastMessageSummary:BS(e),lastMessageSenderId:e.senderId,lastMessageSystemEvent:t?.eventType,lastMessageSystemTargetsSelf:t!==void 0&&n.selfId!==void 0&&n.selfId!==""?t.targetUserIds?.includes(n.selfId)??false:void 0,...r!==void 0?{lastMessageMention:r}:{},...e.recalled!==void 0?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:Xn(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:VS(e,n.selfId)}}function Sm(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function tc(e,n){let t=Uint8Array.of(e<<3),r=Sm(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function Cm(e,n){let t=e<<3|2,r=Sm(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function OS(e){let n=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function jt(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let i=BigInt(e[o]);if(o+=1,t|=(i&0x7Fn)<<r,(i&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function Am(e,n,t){if(t===0)return jt(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=jt(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function KS(e){let n=new TextEncoder,t=[tc(1,BigInt(e.userId)),Cm(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(Cm(3,n.encode(r)));return t.push(tc(4,BigInt(e.limit??100))),t.push(tc(5,BigInt(e.clientType??0))),OS(t)}function LS(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let a=e[n];n+=1;let s=a>>>3,l=a&7;if(s===1&&l===0){let f=jt(e,n);t=Number(f.value),n=f.offset;continue}if(s===2&&l===2){let f=jt(e,n),I=f.offset+Number(f.value);if(I>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(f.offset,I)),n=I;continue}if(s===3&&l===2){let f=jt(e,n),I=f.offset+Number(f.value);if(I>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(f.offset,I)),n=I;continue}n=Am(e,n,l);}return {cmdId:t,body:r,msgId:o}}function ZS(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let a=jt(e,t),s=a.offset+Number(a.value);if(s>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(LS(e.subarray(a.offset,s))),t=s;continue}t=Am(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var hm=-5,dt=-4,QS=new Set(["image","video","voice","file","sticker"]);function WS(e){let n=[];return e.text!==void 0&&n.push("text"),e.system!==void 0&&n.push("system"),e.image!==void 0&&n.push("image"),e.video!==void 0&&n.push("video"),e.voice!==void 0&&n.push("voice"),e.file!==void 0&&n.push("file"),e.sticker!==void 0&&n.push("sticker"),e.contact!==void 0&&n.push("contact"),e.miniProgram!==void 0&&n.push("miniProgram"),e.game!==void 0&&n.push("game"),e.transfer!==void 0&&n.push("transfer"),e.gift!==void 0&&n.push("gift"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.filesAlbum!==void 0&&n.push("filesAlbum"),e.mediaAlbum!==void 0&&n.push("mediaAlbum"),e.robot!==void 0&&n.push("robot"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function At(e){let n=Jd(Ks(Ud(e)));if(n.body.video!==void 0){let i=jo(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}n.body.game!==void 0&&!gr(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Rl(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=WS(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Ct(n),n.contentType!=="text"||n.extensions?.unsupportedContentType===void 0)return n;let{unsupportedContentType:r,...o}=n.extensions;return {...n,contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}},...Object.keys(o).length===0?{extensions:void 0}:{extensions:o}}}function rc(e){if(e.status==="uploading"){let n=QS.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:hm,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===dt){let n=e.contentType==="video"||e.contentType==="file"?e.contentType:void 0,t=n===void 0?e.failure.displayCode:"media.uploadInterrupted";return e.failure.retryable===false&&e.failure.displayCode===t&&(n===void 0||e.failure.mediaKind===n)?e:{...e,failure:{...e.failure,...t===void 0?{}:{displayCode:t},...n===void 0?{}:{mediaKind:n},retryable:false}}}return e}function HS(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function qs(e,n){return {...e,status:n.status,...n.receiveTime===void 0?{}:{receiveTime:n.receiveTime},...n.returnTime===void 0?{}:{returnTime:n.returnTime},...n.isRead===void 0?{}:{isRead:n.isRead}}}function Rm(e){let n=e.body.transfer,r=(n?.status===1?n.receiveTime:n?.status===2||n?.status===3?n.returnTime:void 0)??e.serverTime??e.createdAt;return !Number.isFinite(r)||r<=0?0:r<1e12?r*1e3:r}function Em(e,n){let t=e.body.transfer,r=n.body.transfer;if(t===void 0)return n;if(r===void 0)return e;if(t.status===0&&r.status!==0)return n;if(r.status===0&&t.status!==0)return e;let o=Rm(e),i=Rm(n);return o!==i?i>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function Mm(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function Tm(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function oc(e,n){let t=new Map,r=new Set(n.map(a=>a.id)),o=new Map(n.map(a=>[a.id,a]));for(let a of n){let s=Mm(a);s!==null&&t.set(s,[...t.get(s)??[],a]);}if(t.size===0)return [...n];for(let a of e){let s=Mm(a);s===null||!t.has(s)||r.has(a.id)||t.get(s)?.push(a);}let i=[];for(let a of t.values()){let l=a.reduce(Em).body.transfer;if(l!==void 0)for(let f of a){let I=f.body.transfer;if(I===void 0||Tm(I,l))continue;let C={...f,body:{transfer:qs(I,l)}};r.has(f.id)?o.set(f.id,C):i.push(C);}}return [...n.map(a=>o.get(a.id)??a),...i]}function js(e,n,t,r){let o=[];for(let i of e){if(!HS(i,n))continue;let a=i.body.transfer;if(a===void 0)continue;let s={...a,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??a.returnTime}:{}},l={...i,body:{transfer:s}};Em(i,l)!==l||Tm(a,s)||o.push({...i,body:{transfer:s}});}return o}function ic(e,n){return e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function vm(e,n,t=e.encrypt){return it.encode(it.create({sRadioId:e.sRadioId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgTime:e.msgTime,encrypt:t,sContent:n,...e.nNotifyCount===void 0?{}:{nNotifyCount:e.nNotifyCount},...e.sNotifyUsers===void 0?{}:{sNotifyUsers:e.sNotifyUsers},...e.extend===void 0||e.extend===""?{}:{extend:e.extend},...e.parentMsgId===void 0||e.parentMsgId===""?{}:{parentMsgId:e.parentMsgId}}))}function YS(e,n,t){return X({command:12289,body:vm(e,n,t)})}function bm(e){return Se.encode(Se.create(e.bMessage))}function ac(e,n,t){if(t.length!==16)throw new Error(`channel encrypt=2 key \u5FC5\u987B\u4E3A 16 bytes\uFF0C\u5B9E\u9645 ${t.length}`);let r=n.encryptSymmetric({teaKey:t,plain:bm(e)}),o=Oe.encode(Oe.create({cipherData:r}));return vm(e,o,2)}function Nm(e){return YS(e,bm(e),0)}function _m(e,n,t){return X({command:12289,body:ac(e,n,t)})}function dc(e,n){let t=pt.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return pt.encode(t)}function Dm(e,n){return X({command:4097,body:dc(e,n)})}function Gm(e,n){let t=dc(e,n);return [X({command:4097,body:t}),X({command:4113,body:t})]}function cc(e){return Se.encode(Se.create(e.bMessage))}function lc(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:cc(e),publicKey:t});return Oe.encode(Oe.create({secretKey:r,cipherData:o}))}function Um(e){return Dm(e,cc(e))}function km(e){return Gm(e,cc(e))}function xm(e,n,t){return Dm(e,lc(e,n,t))}function Bm(e,n,t){return Gm(e,lc(e,n,t))}function wm(e,n,t){return dc(e,lc(e,n,t))}function Fm(e,n,t){let r=jn.create({sGrpId:e.sGrpId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.nNotifyCount!==void 0?{nNotifyCount:e.nNotifyCount}:{},...e.sNotifyUsers!==void 0?{sNotifyUsers:e.sNotifyUsers}:{},...e.extend!==void 0&&e.extend!==""?{extend:e.extend}:{},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{},...t!==void 0&&t!==""?{encryptVersion:t}:{}});return jn.encode(r)}function Pm(e,n,t){return X({command:8193,body:Fm(e,n,t)})}function Vm(e){return Se.encode(Se.create(e.bMessage))}function Om(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Vm(e),publicKey:t});return Oe.encode(Oe.create({secretKey:r,cipherData:o}))}function Km(e){return Pm(e,Vm(e))}function Lm(e,n,t,r){return Pm(e,Om(e,n,t),r)}function Zm(e,n,t,r){return Fm(e,Om(e,n,t),r)}function Qm(e){let n=Ei.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:be(e.messageId),content:e.content});return X({command:4644,body:Ei.encode(n)})}function Wm(e){let n=vi.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:be(e.messageId),content:e.content});return X({command:8976,body:vi.encode(n)})}function Hm(e){let n=ts.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:be(e.messageId),content:e.content,IncrId:e.incrementId});return X({command:12808,body:ts.encode(n)})}function Jm(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u7F16\u8F91\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Ym(){return {conversationType:"direct",async prepare(e,n,t){if(t.crypto===void 0||t.resolvePublicKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolvePublicKey(n.conversationId);if(r===null||r==="")return {ok:false,reason:"no-key"};let o=bo({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=wm(o,t.crypto,r);return {ok:true,frame:Qm({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function Xm(){return {conversationType:"group",async prepare(e,n,t){if(t.crypto===void 0||t.resolveGroupKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolveGroupKey(n.conversationId);if(r===null||r.publicKey==="")return {ok:false,reason:"no-key"};let o=po({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=Zm(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:Wm({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function XS(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let a=t.serverTime??t.createdAt,s=fr({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:a}),l=ac(s,r.crypto,i),f=t.extensions?.channelSequence,I=typeof f=="string"&&/^\d+$/.test(f)?BigInt(f):0n;return {ok:true,frame:Hm({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:l,incrementId:I})}}}}function uc(){return Jm([Ym(),Xm()])}var zm=120*1e3,zS=15e3;function gc(e){let n=e.now??(()=>Date.now()),t=e.strategies??uc(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {edit(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==a.conversationId||i.conversationType!==a.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let s=e.getSelfId();if(a.senderId!==s)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(a.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let l=t.resolve(i.conversationType);if(l===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(a.serverTime??a.createdAt)>zm)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=be(i.messageId),I=r.get(f);if(I!==void 0)return I.promise;let C,k=new Promise(R=>{C=R;}),N={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:C,timer:setTimeout(()=>{},0),promise:k};return clearTimeout(N.timer),r.set(f,N),(async()=>{let R;try{R=await l.prepare(i,a,{selfId:s,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{if(r.get(f)!==N)return;o(f,{ok:false,reason:"encrypt-failed"});return}if(r.get(f)===N){if(!R.ok){o(f,R);return}N.timer=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),zS),e.sendFrame(R.frame);}})(),k},onEditAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s!==void 0){if(a===32768||a===0){e.domainState.editMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{text:s.text},s.mention),o(i,{ok:true});return}o(i,s.conversationType==="channel"?{ok:false,reason:"failed",errcode:a}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function $t(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function Fn(e){if(e!==void 0)return new Uint8Array(e)}function qS(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Gt(e){let{id:n,createdAt:t}=e.outbox.allocateMessageIdentity(e.target);return e.outbox.enqueueMedia({id:n,conversationId:e.target.conversationId,conversationType:e.target.conversationType,contentType:e.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var jS={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:qS},$S={contentType:"image",isContentReady:e=>$t(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=Fn(n.thumbData),r=Fn(n.teaKey);return {image:{url:n.url,width:n.width,height:n.height,...n.md5!==void 0?{md5:n.md5}:{},...n.imageType!==void 0?{imageType:n.imageType}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Gt},eA={contentType:"video",isContentReady:e=>$t(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=Fn(n.thumbData),r=Fn(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration,durationUnit:"seconds"}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.sizeUnit!==void 0?{sizeUnit:n.sizeUnit}:{},...n.unverifiedFileLength!==void 0?{unverifiedFileLength:n.unverifiedFileLength}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Gt},nA={contentType:"file",isContentReady:e=>$t(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=Fn(n.teaKey);return {file:{url:n.url,fileName:n.fileName,...n.size!==void 0?{size:n.size}:{},...n.extension!==void 0?{extension:n.extension}:{},...n.fileType!==void 0?{fileType:n.fileType}:{},...n.mimeType!==void 0?{mimeType:n.mimeType}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{teaKey:t}:{}}}},enqueue:Gt},tA={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>$t(t.url))},cloneBody:e=>{let n=e.body.mediaAlbum;return n===void 0?{}:{mediaAlbum:{...n.caption!==void 0?{caption:n.caption}:{},items:n.items.map(t=>{let r=Fn(t.thumbData),o=Fn(t.teaKey);return {kind:t.kind,url:t.url,width:t.width,height:t.height,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.thumbUrl!==void 0?{thumbUrl:t.thumbUrl}:{},...t.md5!==void 0?{md5:t.md5}:{},...t.size!==void 0?{size:t.size}:{},...t.fileEncryptType!==void 0?{fileEncryptType:t.fileEncryptType}:{},...t.hd!==void 0?{hd:t.hd}:{},...r!==void 0?{thumbData:r}:{},...o!==void 0?{teaKey:o}:{}}})}}},enqueue:Gt};function rA(e){let n=Fn(e.thumbData),t=Fn(e.teaKey);return {image:{url:e.url,width:e.width,height:e.height,...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function oA(e){let n=Fn(e.thumbData),t=Fn(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3,durationUnit:"seconds"}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size,sizeUnit:"bytes"}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function qm(e,n){let t=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||t===void 0)return {ok:false,reason:"not-media-album"};let r=Number.isInteger(n)&&n>=0?t.items[n]:void 0;return r===void 0?{ok:false,reason:"item-not-found"}:$t(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?oA(r):rA(r)}:{ok:false,reason:"item-not-ready"}}var iA={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?$t(n.url):Zo(n.url)&&Et(n.width)&&n.width>0&&Et(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=Fn(n.thumbData);return {sticker:{url:n.url,width:n.width,height:n.height,exprType:n.exprType,imageType:n.imageType,...n.size!==void 0?{size:n.size}:{},...n.describe!==void 0?{describe:n.describe}:{},...n.contentId!==void 0?{contentId:n.contentId}:{},...n.packageName!==void 0?{packageName:n.packageName}:{},...t!==void 0?{thumbData:t}:{}}}},enqueue:e=>Gt({...e,encryption:{encrypted:false}})},sA={contentType:"game",isContentReady:e=>e.body.game!==void 0&&gr(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Gt},aA={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&Pt(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Gt},dA=[jS,$S,eA,nA,tA,iA,sA,aA],cA=new Map(dA.map(e=>[e.contentType,e]));function No(e){return cA.get(e)}function lA(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function $s(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:No(e.contentType)!==void 0}function jm(e){let n=No(e.contentType);return n===void 0?false:n.isContentReady(e)}function mc(e){return $s(e)&&jm(e)}var $m=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","gift","call","redPacket","mediaAlbum"]);function fc(e){return $m.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function ea(e,n){let t=e==="admin"||e==="owner",r=e==="owner";return {sendMessages:(e==="member"||t)&&n==="active",mentionAll:t,editProfile:t,manageMembers:t,manageAdmins:r,moderateMessages:t,manageMute:t,dismissChannel:r,transferOwnership:r}}function uA(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),i=Number(t[3]),a=Number(t[4]);if(r>23||i>23||o>59||a>59)return false;let s=new Date(n),l=s.getHours()*60+s.getMinutes(),f=r*60+o,I=i*60+a;return f<=I&&f<=l&&l<=I}function pc(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??ea("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:ea(t.role,n)};let r=t.baseState,o,i=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!i&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||uA(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:ea(t.role,r),...o===void 0?{}:{muteReason:o}}}function ef(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function yc(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):ef(t)-ef(n))}var gA=new Set(["direct","group","channel","supergroup","robot"]);function Ke(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function Pn(e){return {conversationType:e.type,conversationId:e.id}}function ht(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function le(e){if(!gA.has(e.conversationType)||e.conversationId.length===0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u8EAB\u4EFD\uFF08type=${e.conversationType}, id=${e.conversationId}\uFF09`);return `v1:${e.conversationType}:${encodeURIComponent(e.conversationId)}`}function ct(e){let n=/^v1:(direct|group|channel|supergroup|robot):(.+)$/.exec(e);if(n===null)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);let[,t,r]=n;if(t===void 0||r===void 0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);try{let o=decodeURIComponent(r);if(o.length===0||encodeURIComponent(o)!==r)throw new Error("\u4F1A\u8BDD id \u4E0D\u662F canonical \u7F16\u7801");return {conversationType:t,conversationId:o}}catch(o){throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`,{cause:o})}}function nf(){let e=new Map;return {get:n=>e.get(le(n))??null,getAll:()=>[...e.values()],set:n=>e.set(le(n.ref),n),delete:n=>e.delete(le(n)),clear:()=>e.clear()}}function tf(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return le(i);let a=[...t.keys()].filter(s=>ct(s).conversationId===i);if(a.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return a[0]}function o(i){let a=le(Ke(i)),s=t.get(a);s===void 0&&(s=new Set,t.set(a,s)),s.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let a=r(i),s=a===void 0?void 0:t.get(a);if(s===void 0)return [];let l=[];for(let f of s){let I=n.get(f);I!==void 0&&l.push(I);}return l.sort(nn)},has:i=>n.has(i),get size(){return n.size},upsert(i,a){let s=n.get(i.id);if(s===void 0){let I={...i,sortKey:zn(i)};return n.set(i.id,I),o(I),{message:I,isNew:true,changed:true}}let l=Jt(s,i,e?.getSelfId?.()??""),f=a?.authoritativeFailure===true&&i.status==="failed"?{...l,status:"failed",failure:i.failure}:l;return n.set(f.id,f),o(f),{message:f,isNew:false,changed:!Dt(s,f)}},delete(i,a){let s=n.get(a);if(s===void 0||s.conversationType!==i.conversationType||s.conversationId!==i.conversationId)return false;n.delete(a);let l=le(i),f=t.get(l);return f?.delete(a),f?.size===0&&t.delete(l),true},deleteByConversation(i){let a=r(i);if(a===void 0)return;let s=t.get(a);if(s!==void 0){for(let l of s)n.delete(l);t.delete(a);}},clear(){n.clear(),t.clear();}}}var _o=class extends Error{constructor(n){super(n instanceof Error?n.message:"\u672C\u5730\u6D88\u606F\u7A97\u53E3\u8BFB\u53D6\u5931\u8D25",{cause:n}),this.name="LocalMessageWindowReadError";}};function Rt(e){let n=At(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=Ht(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function Do(...e){let n=new Set,t=[];for(let r of e)for(let o of r)n.has(o.id)||(n.add(o.id),t.push(o));return t}function rf(e){let n=e.retention?.maxMessages;if(n!==void 0&&(!Number.isSafeInteger(n)||n<=0))throw new Error("\u6D88\u606F\u7A97\u53E3 maxMessages \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u5B89\u5168\u6574\u6570");let t=0,r=new AbortController;function o(){return r.abort(),r=new AbortController,++t}let i=null,a=null,s=[],l,f,I=false,C=false;async function k(H,J){if(e.storage===void 0)return [];try{let K=await e.storage.getMessages(H,J);return e.normalizeStoredUpload===void 0?K:K.map(e.normalizeStoredUpload)}catch(K){throw new _o(K)}}let N=false,R,U=false,_=true,E,T=false,A=null;function b(){l=s[0],f=s.at(-1);}function F(){let H=s[0],J=s.at(-1);(!I||l===void 0||H!==void 0&&H.sortKey>=l.sortKey)&&(l=H),(!C||f===void 0||J!==void 0&&J.sortKey<=f.sortKey)&&(f=J);}function L(H){let J=s.filter(K=>(l===void 0||K.sortKey>=l.sortKey)&&(f===void 0||K.sortKey<=f.sortKey));if(J.length===0){let K=H==="start"?s.at(-1):s[0];l=K,f=K;return}H==="start"?l=J[0]:f=J.at(-1);}function W(H){if(!(n===void 0||s.length<=n)){if(H==="start"){s=s.slice(-n),I=true,L(H),R=void 0,T&&(N=false);return}s=s.slice(0,n),C=true,L(H),_=false,E=void 0;}}function ie(H){if(n===void 0||s.length<=n)return;let J=s.findIndex(ve=>ve.sortKey===H);if(J<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let K=s.length-n,he=J-Math.floor((n-1)/2),fe=Math.min(K,Math.max(0,he)),Me=fe+n,ue=Me<s.length;fe>0&&(I=true,R=void 0,T&&(N=false)),ue&&(C=true,_=false,E=void 0),s=s.slice(fe,Me),fe>0&&L("start"),ue&&L("end");}function Te(H,J,K){return H.conversationId===J&&(K===null||H.conversationType===K)}function re(H,J,K){let he=H.filter(fe=>Te(fe,J,K));if(K===null&&new Set(he.map(fe=>fe.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${J}`);return he}function me(H,J){return J===null?H:{conversationType:J,conversationId:H}}function pe(H,J=true){if(i!==null){for(let K of H){if(!Te(K,i,a))continue;if(A!==null){A.push(K);continue}let he=s.findIndex(Me=>Me.id===K.id);if(he>=0){let Me=s[he].sortKey!==K.sortKey;s[he]=K,Me&&(s.sort(nn),F()),l?.id===K.id&&l.sortKey===K.sortKey&&(l=K),f?.id===K.id&&f.sortKey===K.sortKey&&(f=K);continue}let fe=f;fe===void 0||K.sortKey>fe.sortKey?C||(s.push(K),s.sort(nn),F()):l!==void 0&&K.sortKey>=l.sortKey&&(s.push(K),s.sort(nn));}J&&W(C?"end":"start");}}return {async open(H,{limit:J}){let K=typeof H=="string"?H:H.conversationId,he=typeof H=="string"?null:H.conversationType,fe=o();i=K,a=he,s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=[];try{let Me=e.storage===void 0?[]:await k(me(K,he),{limit:J}),ve=re(Me,K,he).map(Rt).filter(P=>e.shouldIncludeMessage?.(P)??!0);if(fe!==t)return {conversationId:K,messages:ve,stale:!0};let V=A??[];return s=[...ve].sort(nn),b(),I=ve.length===J||e.loadOlderFromRemote!==void 0,U=e.loadOlderFromRemote!==void 0&&(ve.length<J||he!==null&&e.shouldEstablishRemoteLatest?.({conversationType:he,conversationId:K},ve)===!0),C=!1,_=!0,E=void 0,A=null,pe(V,!1),W("start"),{conversationId:K,messages:s,stale:!1}}finally{fe===t&&(A=null);}},async openAt(H,{anchorSortKey:J,limit:K,seedMessages:he,seedHasNewer:fe,seedRemotePagination:Me}){let ue=typeof H=="string"?H:H.conversationId,ve=typeof H=="string"?null:H.conversationType,V=i===ue&&a===ve&&A===null,P=o();i=ue,a=ve;let y=()=>{l=void 0,f=void 0,I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false;};V||(s=[],y()),A=[];try{if(he!==void 0&&he.length>0){if(he.some(j=>!Te(j,ue,ve)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${ue}\uFF09`);let G=Do(he).map(Rt).filter(j=>e.shouldIncludeMessage?.(j)??!0).sort(nn);if(!G.some(j=>j.sortKey===J))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${ue}\uFF09`);let D=A??[];return y(),s=G,b(),I=e.loadOlderFromRemote!==void 0,C=fe??G.length===K,_=!C,E=Me?.newerCursor,T=Me!==void 0,A=null,pe(D,!1),ie(J),{conversationId:ue,messages:s,stale:P!==t}}if(e.storage===void 0)return s=[],y(),{conversationId:ue,messages:[],stale:P!==t};let[d,u]=await Promise.all([k(me(ue,ve),{beforeSortKey:J,limit:K}),k(me(ue,ve),{afterSortKey:J,limit:K})]),g=re(d,ue,ve).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??!0),h=re(u,ue,ve).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??!0);if(P!==t)return {conversationId:ue,messages:Do(g,h).map(Rt),stale:!0};let S=A??[];return y(),s=Do(g,h).sort(nn),b(),I=g.length===K||e.loadOlderFromRemote!==void 0,C=h.length===K,_=!C,E=void 0,A=null,pe(S,!1),ie(J),{conversationId:ue,messages:s,stale:!1}}finally{if(P===t){let d=A;A=null,V&&d!==null&&pe(d);}}},async loadOlder({limit:H}){let J=i,K=a;if(J===null||!I)return {conversationId:J??"",messages:[],stale:false};let he=t,fe=e.storage===void 0||R!==void 0||T||U?[]:await k(me(J,K),{beforeSortKey:l?.sortKey,limit:H}),Me=re(fe,J,K).map(Rt).filter(h=>e.shouldIncludeMessage?.(h)??true);if(he!==t||i!==J||a!==K)return {conversationId:J,messages:Me,stale:true};let ue=Me.length===H,ve=[...Me],V=false;if(Me.length>0&&(R=void 0),!ue&&e.loadOlderFromRemote!==void 0&&!N){if(K===null)throw new Error("\u8FDC\u7AEF\u5386\u53F2\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let h=await e.loadOlderFromRemote({conversation:{conversationType:K,conversationId:J},signal:r.signal,oldestLoaded:Me[0]??l,...R===void 0?{}:{cursor:R},intent:U?"establish-latest":"older",limit:H});if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};U=false,N=h.exhausted,R=h.nextCursor;let S=re(h.messages,J,K),G=S.map(Rt).filter(D=>e.shouldIncludeMessage?.(D)??true);if(h.replaceWindow){if(!h.exhausted&&(h.nextCursor===void 0||h.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${K}, conversationId=${J}\uFF09`);let D=new Set(s.map(de=>de.id)),j=Do(G).sort(nn),O=j.at(-1)?.sortKey,z=O===void 0?s:s.filter(de=>de.sortKey>O);s=Do(j,z).sort(nn),b(),I=!N;let Re=j.filter(de=>!D.has(de.id));return W("start"),{conversationId:J,messages:Re,stale:false}}V=S.length>0&&G.length===0,V&&(N=true,R=void 0),ve.push(...G);}let P=new Set(s.map(h=>h.id)),y=new Set,d=ve.filter(h=>P.has(h.id)||y.has(h.id)?false:(y.add(h.id),true)).sort(nn);d.length>0&&(s=[...d,...s].sort(nn));let u=[...ve].sort(nn),g=u[0];return g!==void 0&&(l===void 0||g.sortKey<l.sortKey)&&(l=g),f??=u.at(-1),I=ue||e.loadOlderFromRemote!==void 0&&!N&&!V,I||(l=s[0]),W("end"),{conversationId:J,messages:d,stale:false}},async loadNewer({limit:H}){let J=i,K=a;if(J===null||!C)return {conversationId:J??"",messages:[],stale:false};let he=t,fe=f,Me=fe?.sortKey,ue=e.storage===void 0||Me===void 0||T?[]:await k(me(J,K),{afterSortKey:Me,limit:H+1}),ve=re(ue,J,K).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??true);if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};let V=ve.filter(G=>Me===void 0||G.sortKey>Me).slice(0,H),P=V.length===H,y=[...V];if(V.length>0&&(E=void 0),!P&&e.loadNewerFromRemote!==void 0&&!_){if(K===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let G=await e.loadNewerFromRemote({conversation:{conversationType:K,conversationId:J},signal:r.signal,newestLoaded:V.at(-1)??fe,...E===void 0?{}:{cursor:E},limit:H});if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};_=G.exhausted,E=G.nextCursor,y.push(...re(G.messages,J,K).filter(D=>e.shouldIncludeMessage?.(D)??true));}let d=new Set(s.map(G=>G.id)),u=new Set,g=y.filter(G=>Me!==void 0&&G.sortKey<=Me||d.has(G.id)||u.has(G.id)?false:(u.add(G.id),true)).sort(nn);g.length>0&&(s=[...s,...g].sort(nn));let h=[...y].sort(nn),S=h.at(-1);return S!==void 0&&(f===void 0||S.sortKey>f.sortKey)&&(f=S),l??=h[0],C=P||e.loadNewerFromRemote!==void 0&&!_,C||(f=s.at(-1)),W("start"),{conversationId:J,messages:g,stale:false}},applyIncoming:pe,removeMessage(H,J){if(i!==H.conversationId||a!==H.conversationType)return false;let K=s.findIndex(he=>he.id===J);return K<0?false:(o(),s.splice(K,1),F(),R=void 0,E=void 0,A=null,true)},clearConversation(H){return i!==H.conversationId||a!==H.conversationType?false:(o(),s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=null,true)},list(){return [...s]},info(){return {conversationId:i,...i===null||a===null?{}:{conversation:{conversationType:a,conversationId:i}},hasMore:I,hasNewer:C}},getRevision(){return t},reset(){o(),i=null,a=null,s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=null;}}}function Ic(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((a,s)=>a===n[s]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((a,s)=>Ic(a,n[s]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&Ic(t[a],r[a]))}function of(){let e=new Map;function n(t){if(typeof t!="string")return le(t);let r=[...e.keys()].filter(o=>ct(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set(t){let r=le(ht(t)),o=e.get(r);return o!==void 0&&Ic(o,t)?false:(e.set(r,t),true)},clear(t){let r=n(t);return r===void 0?false:e.delete(r)},isPinnedMessage(t,r){let o=n(t);return o!==void 0&&e.get(o)?.messageId===r},clearAll(){e.clear();}}}function sf(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:le(r)}function t(r){if(typeof r!="string"){let i=le(r);if(e.has(i))return i;let a=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(a)?a:i}let o=[...e.entries()].filter(([i,a])=>a.conversationId===r||!i.startsWith("legacy:")&&ct(i).conversationId===r).map(([i])=>i);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([a,s])=>!a.startsWith("legacy:")&&s.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let i=o[0];if(i!==void 0){let[a,s]=i;e.set(a,{...r,conversationType:s.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Cc(){let e=new Map;function n(t){if(typeof t!="string")return le(t);let r=[...e.keys()].filter(o=>ct(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set:t=>{e.set(le(Pn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function gf(e){return e==="direct"||e==="robot"?"local":"server"}function mf(e,n){let t=n?.includeMuted??false,r=0;for(let o of e)!t&&o.muted||(r+=o.unreadCount>0?o.unreadCount:o.manuallyUnread===true?1:0);return r}var mA=50,af="im:deleted-conversations",df="im:terminated-conversations",cf="im:membership-reset-sort-keys",lf="im:pending-message-reactions",uf="im:transfer-status-records",fA=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function ff(e,n){return e===n?true:e===void 0||n===void 0?false:fA.every(t=>e[t]===n[t])}function pf(e,n){return e===n?true:e!==void 0&&n!==void 0&&e.role===n.role&&e.baseState===n.baseState&&e.resolvedState===n.resolvedState&&e.allMembersMuted===n.allMembersMuted&&e.currentUserMuted===n.currentUserMuted&&e.mutePeriod===n.mutePeriod}function na(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&ec(e.lastMessageSummary,n.lastMessageSummary)&&e.timestamp===n.timestamp&&e.unreadCount===n.unreadCount&&(e.manuallyUnread??false)===(n.manuallyUnread??false)&&(e.mentionUnreadCount??0)===(n.mentionUnreadCount??0)&&e.pinned===n.pinned&&e.muted===n.muted&&e.topTime===n.topTime&&e.lastMessageSendState===n.lastMessageSendState&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&ff(e.channelPermissions,n.channelPermissions)&&pf(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function pA(e){let n=tf({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Cc(),i=Cc(),a=sf(),s=nf(),l=of(),f=new Map,I=new Map,C=0;function k(c){I.set(c,++C);}let N=1,R=new Set,U=new Set,_=new Map,{storage:E}=e,T=Promise.resolve(),A=new Map,b=new Map,F=new Map,L=0,W=e.unreadMode??gf,ie=new Set;function Te(c={}){let m=rf({storage:E,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:$,normalizeStoredUpload:Vo,...c});return ie.add(m),m}let re=Te();function me(c={}){let m=Te(c),p=false;return {window:m,dispose(){p||(p=true,m.reset(),ie.delete(m));}}}function pe(c){for(let m of ie){let p=m.list().find(M=>M.id===c);if(p!==void 0)return p}}function H(c,m){let p=n.get(m);if(p?.conversationId===c.conversationId&&p.conversationType===c.conversationType)return p;for(let M of ie){let x=M.list().find(B=>B.id===m&&B.conversationId===c.conversationId&&B.conversationType===c.conversationType);if(x!==void 0)return x}}function J(c,m){let p=H(Ke(c),c.id);p!==void 0&&!n.has(c.id)&&n.upsert(p);let M=n.upsert(c,m);return {...M,previous:p,changed:p===void 0?M.changed:!Dt(p,M.message)}}function K(c){let m=new Map(n.getByConversation(c).map(p=>[p.id,p]));for(let p of ie)if(he(p,c))for(let M of p.list())M.conversationType===c.conversationType&&M.conversationId===c.conversationId&&!m.has(M.id)&&m.set(M.id,M);return [...m.values()].sort((p,M)=>p.sortKey.localeCompare(M.sortKey))}function he(c,m){let p=c.info();return p.conversation===void 0?p.conversationId===m.conversationId:le(p.conversation)===le(m)}let fe=false;function Me(c){return `${le(c.conversation)}\0${c.parentMessageId}`}function ue(){if(E===void 0||fe)return;let c=[...t.values()].flat();E.setMeta(lf,c).catch(m=>Y("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",m));}async function ve(){if(E===void 0)return;let c=[...r.values()],m=T.then(()=>E.setMeta(uf,c));T=m.catch(()=>{});try{await m;}catch(p){throw Y("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",p),p}}function V(c,m){if(c===void 0||c.status===0&&m.status!==0)return m;if(m.status===0&&c.status!==0)return c;let p=c.occurredTime??0,M=m.occurredTime??0;return p!==M?M>p?m:c:m.status>c.status?m:c}function P(c){let m=c.body.transfer;if(c.contentType!=="transfer"||m===void 0)return c;let p=r.get(m.serialNumber);if(p===void 0||m.status!==0&&p.status===0)return c;let M={...m,status:p.status,...p.status===1&&p.occurredTime!==void 0?{receiveTime:p.occurredTime}:{},...p.status===2||p.status===3?{returnTime:p.occurredTime??m.returnTime}:{}};return m.status===M.status&&m.receiveTime===M.receiveTime&&m.returnTime===M.returnTime&&m.isRead===M.isRead?c:{...c,body:{transfer:qs(m,M)}}}function y(c,m){let p=`${le(c)}\0${m}`;return t.delete(p)?(ue(),true):false}function d(c){let m=`${le(c)}\0`,p=false;for(let M of t.keys())M.startsWith(m)&&(t.delete(M),p=true);return p&&ue(),p}function u(c,m){let p=H(c.conversation,c.parentMessageId);if(p===void 0){let x=Me(c),B=t.get(x)??[];return B.some(Q=>Q.id===c.id)?"duplicate":(t.set(x,[...B,c]),ue(),"pending")}if(p.recalled!==void 0||p.deletedForEveryone!==void 0)return "duplicate";let M=Bd(p.reactions,c,e.getSelfId?.()??"");return M===p.reactions?"duplicate":(On([{...p,reactions:M}],m),"applied")}function g(c,m,p){let M=H(c,m);if(M===void 0){let Q=`${le(c)}\0${m}`,ne=t.get(Q);if(ne===void 0)return false;let oe=ne.filter(ge=>ge.id!==p);return oe.length===ne.length?false:(oe.length===0?t.delete(Q):t.set(Q,oe),ue(),true)}let x=wd(M.reactions,p,e.getSelfId?.()??"");if(x===M.reactions)return false;let B={...M};return x===void 0?delete B.reactions:B.reactions=x,On([B],"live"),true}function h(c,m){let p=Ke(c),M=`${le(p)}\0${c.id}`,x=t.get(M);if(x!==void 0){t.delete(M),ue();for(let B of x)u(B,m);}}function S(c){for(let m of [...t.values()]){let p=m[0];if(p===void 0)continue;let M=H(p.conversation,p.parentMessageId);M!==void 0&&(M.recalled!==void 0||M.deletedForEveryone!==void 0?y(p.conversation,p.parentMessageId):h(M,c));}}let G=0,D=new Map,j=new Map;function O(c){return le(c)}function z(c){return Re(c)||R.has(O(c))||R.has(c.conversationId)}function Re(c){return U.has(O(c))||U.has(c.conversationId)}function de(c){let m=R.delete(O(c)),p=R.delete(c.conversationId);return m||p}function Ve(c){let m=de(c),p=U.delete(O(c)),M=U.delete(c.conversationId);return {deleted:m,terminal:p||M}}function Pe(c,m){if(m===""||c.contentType!=="system")return false;let p=c.body.system;return p?.targetUserIds?.includes(m)!==true?false:c.conversationType==="group"?p.eventType==="group_member_joined"||p.eventType==="group_member_invited":c.conversationType==="channel"&&(p.eventType==="channel_member_joined"||p.eventType==="channel_member_invited"||p.eventType==="channel_created")}function $(c){let m=Ke(c);if(Re(m)||z(m)&&i.get(m)===void 0)return false;if(m.conversationType!=="group")return true;let p=_.get(le(m));return p===void 0||c.sortKey>=p}function v(c){let m=new Map;if(_.size===0)return m;for(let p of st(c,e.getSelfId?.()??"")){if(p.conversationType!=="group")continue;let M=Ke(p),x=le(M),B=_.get(x);if(B===void 0)continue;let Q=H(M,p.id);if(Q===void 0||Q.sortKey!==B)continue;let ne=Jt(Q,p,e.getSelfId?.()??"");ne.sortKey!==B&&(_.set(x,ne.sortKey),m.set(x,ne.id));}return m.size>0&&_n(),m}function Z(c){let m=le(c),p=(D.get(m)??0)+1;return D.set(m,p),p}function Y(c,m){e.emitter.emit({type:"error",error:{scope:"storage",message:c,cause:m}});}function se(c){e.emitter.emit({type:"session:updated",session:c,conversation:Pn(c)});}let Be=new Set,He=Promise.resolve(),Zn=0;function Ye(c){let m=Zn===0?c():He.then(c),p=m.then(()=>{},()=>{});return Be.add(p),p.finally(()=>Be.delete(p)),m}function Rn(c){Zn+=1;let m=Promise.all([...Be]),p=He.then(()=>m).then(c);return He=p.then(()=>{},()=>{}),He.finally(()=>{Zn-=1;}),p}function Qn(c){let m=c.body.system;if(m?.pinnedMessageAction===void 0)return c;let{pinnedMessageAction:p,...M}=m;return {...c,body:{...c.body,system:M}}}function q(c){E===void 0||fe||c.length===0||Ye(()=>E.saveMessages(c.map(Qn))).catch(m=>Y("\u6D88\u606F\u843D\u76D8\u5931\u8D25",m));}function bn(c){let{lastMessageSendState:m,manuallyUnread:p,...M}=c;return M}function Nn(c){E===void 0||fe||Ye(()=>E.saveSessions([bn(c)])).catch(m=>Y("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",m));}function un(){E===void 0||fe||E.setMeta(af,[...R]).catch(c=>Y("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function Wn(){E===void 0||fe||E.setMeta(df,[...U]).catch(c=>Y("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function _n(){E===void 0||fe||E.setMeta(cf,[..._.entries()]).catch(c=>Y("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",c));}function mn(c){E===void 0||fe||Ye(()=>E.saveReadState(c)).catch(m=>Y("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",m));}function Mt(c){E===void 0||fe||E.savePinnedMessage(c).catch(m=>Y("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",m));}function Vn(c){E===void 0||fe||E.removePinnedMessage(c).catch(m=>Y("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",m));}function Ie(c){if(le(c),c.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function De(c){return Ie(c),Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId})}function ce(c){return s.get(De(c))}function Ne(){let c=[];for(let m of o.getAll()){let p=Pn(m);c.push({...m,draft:s.get(p)});}return yc(c)}function Ue(c,m,p){if(Ie(c),typeof m.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(m.attachments!==void 0&&m.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(m.mentions!==void 0&&!Array.isArray(m.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let M=(m.mentions??[]).map(B=>{if(typeof B.userId!="string"||B.userId.trim()===""||typeof B.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:B.userId,displayName:B.displayName})}),x=Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId});return Object.freeze({ref:x,text:m.text,mentions:Object.freeze(M),...m.replyToMessageId===void 0?{}:{replyToMessageId:m.replyToMessageId},attachments:Object.freeze([]),updatedAt:p})}function Xe(c,m){return c.text===m.text&&c.replyToMessageId===m.replyToMessageId&&c.mentions.length===m.mentions.length&&c.mentions.every((p,M)=>{let x=m.mentions[M];return x!==void 0&&p.userId===x.userId&&p.displayName===x.displayName})}function tn(c,m){Ie(c);let p=le(c),x=(A.get(p)??Promise.resolve()).catch(()=>{}).then(m),B=x.then(()=>{},()=>{});return A.set(p,B),B.finally(()=>{A.get(p)===B&&A.delete(p);}),x}async function rn(c,m){let p=De(c),M=le(p),x=Ue(p,m,0),B=L,Q=F.get(M)??0;return await tn(p,async()=>{let ne=s.get(p),oe=Math.max(Date.now(),(b.get(M)??ne?.updatedAt??0)+1),ge=Ue(p,x,oe);if(ne!==null&&Xe(ne,ge))return ne;if(E!==void 0&&await E.saveDraft(ge),B!==L||Q!==(F.get(M)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return s.set(ge),b.set(M,oe),e.emitter.emit({type:"draft:updated",conversation:ge.ref,draft:ge}),ge})}async function nt(c,m){let p=De(c),M=le(p);if(m!==void 0&&(!Number.isFinite(m)||m<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${m}`);let x=L,B=F.get(M)??0;return await tn(p,async()=>{let Q=s.get(p);if(Q===null||m!==void 0&&Q.updatedAt!==m)return false;if(E!==void 0&&await E.deleteDraft(p),x!==L||B!==(F.get(M)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return s.delete(p),e.emitter.emit({type:"draft:cleared",conversation:p}),true})}async function xt(c){await nt(c);}async function ir(c,m){return await nt(c,m)}function sr(c){let m=De(c),p=le(m);F.set(p,(F.get(p)??0)+1),s.get(m)!==null&&(s.delete(m),e.emitter.emit({type:"draft:cleared",conversation:m})),tn(m,async()=>{E!==void 0&&await E.deleteDraft(m);}).catch(M=>Y("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",M));}async function $e(){for(L+=1;A.size>0;)await Promise.all([...A.values()]);}function Le(c){let m=H(ht(c),c.messageId);return m===void 0?c:{...c,preview:{state:"ready",message:m}}}function Mn(c,m){let p=Le(c);l.set(p)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:p.conversationId,conversation:{conversationType:p.conversationType,conversationId:p.conversationId},pinnedMessage:p,reason:m}),Mt(p));}function Dn(c,m){let p=typeof c=="string"?c:c.conversationId,M=l.get(c);if(!l.clear(c))return;let x=typeof c=="string"?M===void 0?void 0:ht(M):c;if(x===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${p}`);e.emitter.emit({type:"pinned-message:updated",conversationId:p,conversation:x,pinnedMessage:null,reason:m}),Vn(c);}function on(c,m,p,M){let x=Gn(c);if(x===void 0)return;let B={...x,title:m,avatar:p??x.avatar,...M!==void 0?{muted:M}:{}};na(x,B)||tt(B);}async function ar(c,m){let{conversationId:p,conversationType:M}=c,x=le(c),B=m?.force===true;if(!B&&j.has(x))return false;let Q=G,ne=Z(c);B&&j.set(x,ne);let{profile:oe,channelProfile:ge}=e,ae=3,te=B?{forceRefresh:true}:void 0;try{if(M==="direct"){if(oe===void 0)return !1;let ee=await oe.getUserProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;ee!==null&&on(c,ee.remark??ee.nickname,ee.avatar,ee.muted);}else if(M==="group"){if(oe===void 0)return !1;let ee=await oe.getGroupProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;ee!==null&&(on(c,ee.name,ee.avatar,ee.muted),ee.status===ae&&Sa({conversationType:"group",conversationId:p},"group_dismissed"),B&&e.emitter.emit({type:"profile:updated",profileType:"group",id:p}));}else if(M==="channel"){if(ge===void 0)return !1;let ee=await ge.getProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;if(ee!==null){on(c,ee.name,ee.avatar,ee.muted);let we=Gn(c)?.channelState,Ae=we==="left"||we==="removed"||we==="dismissed",Je=ee.channelState==="left"||ee.channelState==="removed"||ee.channelState==="dismissed";if(m?.allowChannelRecovery===!0&&Ae&&we!=="dismissed"&&ee.channelState==="active")return Ca(p,"active",void 0,{permissions:ee.permissions,...ee.accessSnapshot===void 0?{}:{snapshot:ee.accessSnapshot}}),B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!0;let Fe=Ae&&(!Je||we==="dismissed"||ee.channelState!=="dismissed");if(Je&&!Fe)return Sa({conversationType:"channel",conversationId:p},`channel_${ee.channelState}`),B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!1;if(!Fe){let sn=ee.permissions.sendMessages?void 0:`channel_${ee.channelState}`;Ca(p,ee.channelState,sn,{permissions:ee.permissions,...ee.accessSnapshot===void 0?{}:{snapshot:ee.accessSnapshot}});}B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}});}}return !1}catch(ee){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:ee}}),false}finally{B&&j.get(x)===ne&&j.delete(x);}}function Ap(c,m){ar({conversationType:m,conversationId:c},{force:true});}function hp(c){return ar({conversationType:"channel",conversationId:c},{force:true,allowChannelRecovery:true})}function Rp(c,m){let p=Gn(c);if(p===void 0)return;let M={...p,...m.title!==void 0?{title:m.title}:{},...m.avatar!==void 0?{avatar:m.avatar}:{}};na(p,M)||tt(M);}function ma(c){return ic(c,e.getSelfId?.()??"")}function fa(c){let m=a.get(c);if(m===void 0||m.readCursor==="")return;let p=typeof c=="string"?m.conversationType:c.conversationType;if(p==="channel"){let x={conversationType:p,conversationId:typeof c=="string"?c:c.conversationId};return K(x).find(B=>B.extensions?.historyCursor===m.readCursor)?.sortKey??m.readCursorSortKey}return (typeof c=="string"?n.get(m.readCursor):H(c,m.readCursor))?.sortKey??m.readCursorSortKey}function el(c,m){let p=0;for(let M of n.getByConversation(c))St(M)&&ma(M)&&(m===void 0||M.sortKey>m)&&(p+=1);return p}function nl(c){let m=e.getSelfId?.();if(m===void 0||m===""||c.senderId===m)return false;let{mention:p}=c;return p===void 0?false:p.atAll||p.atUserIds.includes(m)}function Mp(c,m){let p=0;for(let M of n.getByConversation(c))nl(M)&&(m===void 0||M.sortKey>m)&&(p+=1);return p}function Hn(c,m=true){let p=c.conversationType===void 0?o.get(c.conversationId):void 0,M=c.conversationType===void 0&&p!==void 0?{...c,conversationType:p.type}:c,x=M.conversationType===void 0?M.conversationId:{conversationType:M.conversationType,conversationId:M.conversationId},B=a.get(x);if(M.conversationType==="channel"&&k(M.conversationId),a.set(M),m&&mn(M),B===void 0||B.readCursor!==M.readCursor||B.readCursorSortKey!==M.readCursorSortKey||B.unreadCount!==M.unreadCount||(B.manuallyUnread??false)!==(M.manuallyUnread??false)){if(M.conversationType===void 0){e.emitter.emit({type:"error",error:{scope:"storage",message:`\u5DF2\u8BFB\u72B6\u6001\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF0C\u62D2\u7EDD\u53D1\u5E03 read:updated\uFF08conversationId=${M.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:M.conversationId,conversation:{conversationType:M.conversationType,conversationId:M.conversationId},readCursor:M.readCursor,unreadCount:M.unreadCount,...M.manuallyUnread===true?{manuallyUnread:true}:{}});}}function tl(c,m){if(c===void 0||c.sortKey===m.sortKey)return;let p=Ke(m),M=a.get(p),x=m.conversationType==="channel"?m.extensions?.historyCursor:void 0,B=m.conversationType==="direct"||m.conversationType==="group"||m.conversationType==="robot";M!==void 0&&(B&&M.readCursor===m.id||typeof x=="string"&&x!==""&&M.readCursor===x||M.readCursorSortKey===c.sortKey)&&Hn({...M,readCursorSortKey:m.sortKey});let Q=le(p);m.conversationType==="group"&&_.get(Q)===c.sortKey&&(_.set(Q,m.sortKey),_n());}function Po(c,m,p,M){let x=Gn(c),B=M??a.get(c);if(m===void 0){if(x===void 0)return typeof c=="string"||B===void 0||B.unreadCount<=0?void 0:{id:c.conversationId,type:c.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:B.unreadCount,mentionUnreadCount:B.mentionUnreadCount,readCursor:B.readCursor,pinned:false,muted:false};let ae={...x,...p==="clear"?{lastMessagePreview:"",timestamp:0}:{},...B===void 0?{}:{unreadCount:B.unreadCount,manuallyUnread:B.manuallyUnread,mentionUnreadCount:B.mentionUnreadCount,readCursor:B.readCursor||x.readCursor}};return p==="clear"&&(delete ae.lastMessageSummary,delete ae.lastMessageSenderId,delete ae.lastMessageSystemEvent,delete ae.lastMessageSystemTargetsSelf,delete ae.lastMessageMention,delete ae.lastMessageRecalled,delete ae.lastMessageDeletedForEveryone,delete ae.lastMessageSendState),ae}let Q=B?.unreadCount??x?.unreadCount??0,ne=B===void 0?x?.manuallyUnread:B.manuallyUnread,oe=B?.mentionUnreadCount??x?.mentionUnreadCount??0,ge=nc(m,{unreadCount:Q,mentionUnreadCount:oe,selfId:e.getSelfId?.()});return x===void 0?{...ge,...ne===void 0?{}:{manuallyUnread:ne},readCursor:(B?.readCursor??"")||ge.readCursor}:{...ge,title:x.title||ge.title,avatar:x.avatar??ge.avatar,pinned:x.pinned,muted:x.muted,topTime:x.topTime,...ne===void 0?{}:{manuallyUnread:ne},readCursor:(B?.readCursor??"")||x.readCursor,groupState:x.groupState,channelState:x.channelState,channelPermissions:x.channelPermissions,channelAccessSnapshot:x.channelAccessSnapshot,sendDisabledReason:x.sendDisabledReason}}function pa(c,m){if(c===void 0)return;let p=o.get({conversationType:c.type,conversationId:c.id});p!==void 0&&na(p,c)||(o.set(c),i.delete({conversationType:c.type,conversationId:c.id}),se(c),m&&Nn(c),c.title===""&&ar({conversationType:c.type,conversationId:c.id}));}function Jn(c,m=false){if(!m&&o.get(c)===void 0)return;let p=n.getByConversation(c).findLast(St);pa(Po(c,p,"preserve"),true);}function Vo(c){if(c.status!=="uploading"&&!(c.status==="failed"&&c.failure?.code===dt))return c;let m=n.get(c.id);return m!==void 0&&m.conversationType===c.conversationType&&m.conversationId===c.conversationId?m:rc(At(c))}function rl(c,m=()=>true){let p=[],M=st(c,e.getSelfId?.()??"").map(oe=>{let ge=Vo(oe),ae={...ge,sortKey:zn(ge)};if(ae=At(ae),ae.conversationType==="group"&&ae.contentType==="text"){let te=Ht(ae.body.text??"",ae.mention);te!==void 0&&(ae.mention=te);}return P(ae)}),x=new Map;for(let oe of M){if(oe.contentType!=="transfer"||oe.body.transfer===void 0)continue;let ge=Ke(oe);x.set(le(ge),ge);}let B=[...x.values()].flatMap(oe=>K(oe)),Q=oc(B,M),ne=new Set(M.map(oe=>oe.id));for(let oe of Q){if(!m())break;let{previous:ge,message:ae,isNew:te,changed:ee}=J(oe);if(tl(ge,ae),ge!==void 0&&ee)for(let we of ie){if(!m())return p;we.list().some(Ae=>Ae.id===ae.id&&Ae.conversationType===ae.conversationType&&Ae.conversationId===ae.conversationId)&&we.applyIncoming([ae]);}if(!m())return p;te?e.emitter.emit({type:"message:received",message:ae,conversation:Ke(ae),source:"offline",channelLifecycleEffects:false}):ee&&e.emitter.emit({type:"message:updated",message:ae,conversation:Ke(ae),source:"offline",channelLifecycleEffects:false}),ne.has(ae.id)&&p.push(ae);}return p}function ol(c){let m=Vo(c),p={...m,sortKey:zn(m)};if(p=At(p),p.conversationType==="group"&&p.contentType==="text"){let M=Ht(p.body.text??"",p.mention);M!==void 0&&(p.mention=M);}return P(p)}async function Ep(c,m){let p=H(c,m);if(p!==void 0||E===void 0)return p;try{let M=await E.getMessage(c,m);return M===null||le(Ke(M))!==le(c)?void 0:ol(M)}catch(M){Y("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",M);return}}function On(c,m,p={}){let M=e.getSelfId?.()??"";if(m==="live"){let Ce=false,ze=false;for(let ke of c){let en=Ke(ke);if(Pe(ke,M)){let fn=Ve(en);fn.deleted&&(Ce=true),fn.terminal&&(en.conversationType==="group"?(_.set(le(en),ke.sortKey),_n()):en.conversationType==="channel"&&_.delete(le(en)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:en,data:{source:m,eventType:ke.body.system?.eventType,groupHistoryLowerBoundApplied:en.conversationType==="group"}})),ze=true);}else (M===""||ke.senderId!==M||p.newOutgoing===true)&&!Re(en)&&de(en)&&(Ce=true);}Ce&&un(),ze&&Wn();}let B=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,Q=(Ce,ze)=>{if(B===void 0)return;let ke=Ke(Ce),en=le(ke),fn=B.get(en)??{ref:ke,tombstone:0,groupLowerBound:0};ze==="tombstone"?fn.tombstone+=1:fn.groupLowerBound+=1,B.set(en,fn);},ne=R.size>0||U.size>0?c.filter(Ce=>{let ze=Ke(Ce),ke=!z(ze)||p.backfillOnly===true&&i.get(ze)!==void 0&&!Re(ze);return ke||Q(Ce,"tombstone"),ke}):c,oe=v(ne),ge=Ce=>oe.get(le(Ke(Ce)))===Ce.id,ae=_.size>0?ne.filter(Ce=>{let ze=ge(Ce)||$(Ce);return ze||Q(Ce,"groupLowerBound"),ze}):ne,te=oe.size===0?ae:[...ae.filter(ge),...ae.filter(Ce=>!ge(Ce))];for(let Ce of B?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:Ce.ref,data:{source:m,tombstoneDroppedCount:Ce.tombstone,groupHistoryLowerBoundDroppedCount:Ce.groupLowerBound}}));let ee=new Map,we=new Map,Ae=new Map,Je=new Set,Fe=st(te,M).map(P),sn=new Map;for(let Ce of Fe){if(Ce.contentType!=="transfer"||Ce.body.transfer===void 0)continue;let ze=Ke(Ce);sn.set(le(ze),ze);}let cr=[...sn.values()].flatMap(Ce=>K(Ce)),jp=oc(cr,Fe),Aa=[],ha=[];for(let Ce of jp){let{previous:ze,message:ke,isNew:en,changed:fn}=J(Ce,{authoritativeFailure:p.authoritativeOutboxFailure===true});if(!en&&!fn)continue;tl(ze,ke);for(let Oo of ie)Oo.applyIncoming([ke]);en?e.emitter.emit({type:"message:received",message:ke,conversation:Ke(ke),source:m,channelLifecycleEffects:p.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:ke,conversation:Ke(ke),source:m,channelLifecycleEffects:p.applyChannelLifecycleEffects===true});let pn=Ke(ke);Re(pn)||(Aa.push(ke),ee.set(le(pn),pn),en&&p.backfillOnly!==true&&ha.push(ke));}let Ra=new Map;for(let Ce of ha){let ze=Ke(Ce),ke=le(ze);ma(Ce)&&Je.add(ke),Ra.has(ke)||Ra.set(ke,fa(ze));let en=Ra.get(ke),fn=en===void 0||Ce.sortKey>en;if(St(Ce)&&fn&&ma(Ce)&&Ce.recalled===void 0&&Ce.deletedForEveryone===void 0){let pn=W(Ce.conversationType);(pn==="local"||pn==="server"&&m==="live")&&we.set(ke,(we.get(ke)??0)+1);}fn&&nl(Ce)&&Ce.recalled===void 0&&Ce.deletedForEveryone===void 0&&Ae.set(ke,(Ae.get(ke)??0)+1);}for(let Ce of ee.values()){if(p.backfillOnly===true)continue;let ze=le(Ce),ke=we.get(ze)??0,en=Ae.get(ze)??0,fn=Je.has(ze);if(ke>0||en>0||fn){let pn=a.get(Ce)??{...Ce,readCursor:"",unreadCount:0},Oo={...pn,unreadCount:pn.unreadCount+ke,mentionUnreadCount:(pn.mentionUnreadCount??0)+en};fn&&delete Oo.manuallyUnread,Hn(Oo);}Jn(Ce,ha.some(pn=>pn.conversationType===Ce.conversationType&&pn.conversationId===Ce.conversationId&&St(pn)));}q(Aa);for(let Ce of Aa)Ce.recalled===void 0&&Ce.deletedForEveryone===void 0?h(Ce,m):y(Ke(Ce),Ce.id);}function il(c,m,p=Date.now()){let M={conversationType:"direct",conversationId:c},x=H(M,m),B=n.getByConversation(M).findLast(oe=>oe.body.system?.eventType==="direct_contact_established");if(x!==void 0&&B!==void 0&&Xn(B)>=Xn(x))return;let Q=`${m}:contact-required`;if(n.get(Q)!==void 0)return;let ne={id:Q,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[c],action:{type:"request-contact",userId:c}}},createdAt:p,sortKey:_e(p,Q),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};On([ne],"live");}function Tp(c,m,p=Date.now()){let M=`${m}:message-refused`;if(n.get(M)!==void 0)return;let x=n.get(m),B=x?.conversationType==="direct"&&x.conversationId===c?Xn(x):p,Q={id:M,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[c]}},createdAt:B,sortKey:_e(B,M),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};On([Q],"live");}function vp(c,m=Date.now()){let p=Tn(),M={id:p,conversationId:c.conversationId,conversationType:"direct",senderId:c.senderId,contentType:"text",body:{text:c.text},createdAt:m,sortKey:_e(m,p),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...c.refMessageId===void 0?{}:{refMessageId:c.refMessageId}};return On([M],"live"),il(c.conversationId,p,m+1),M}function bp(c,m){return `${c.trim()===""?`contact-established:${m}`:c}:contact-established`}function Np(c,m,p=Date.now(),M=p){let x=bp(m,M);if(n.get(x)!==void 0)return;let B={id:x,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[c]}},createdAt:p,sortKey:_e(p,x),status:"sent",receipt:"unread",encryption:{encrypted:false}};On([B],"live");}let dr=new Map,ya=0;function _p(c,m,p=Date.now()){let M=dr.get(c);if(M!==void 0)return M;let x={conversationType:"direct",conversationId:c},B=ya,Q=(async()=>{let ne=n.getByConversation(x).filter(Fe=>{let sn=Fe.body.system?.eventType;return sn==="direct_contact_required"||sn==="direct_contact_established"}),oe=ne.filter(Fe=>Fe.body.system?.eventType==="direct_contact_required"),ge=oe.at(-1)?.createdAt??0,ae=ne.findLast(Fe=>Fe.body.system?.eventType==="direct_contact_established")?.createdAt??0,te=ae>=ge&&ae>0;if(oe.length===0&&te)return;let ee=fa(x);for(let Fe of oe)try{let sn=await cl(x,Fe.id),cr=H(x,Fe.id);!sn&&cr?.body.system?.eventType==="direct_contact_required"&&e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u672A\u80FD\u5220\u9664",cause:{conversation:x,messageId:Fe.id}}});}catch(sn){e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u5220\u9664\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u5931\u8D25",cause:{conversation:x,messageId:Fe.id,error:sn}}});}if(B!==ya)return;let we=a.get(x);if(we!==void 0&&(Hn({...we,...we.readCursorSortKey===void 0&&ee!==void 0?{readCursorSortKey:ee}:{},unreadCount:el(x,ee)}),Jn(x)),te)return;let Ae=Number.isFinite(p)&&p>0?p:Date.now(),Je=Math.max(Ae,ge+1);Np(c,m,Je,Ae);})().finally(()=>{dr.get(c)===Q&&dr.delete(c);});return dr.set(c,Q),Q}function Dp(c,m){let p=typeof c=="string"?n.get(m)??pe(m):H(c,m);if(p===void 0)return;let M=typeof c=="string"?Ke(p):c,x=typeof c=="string"?c:c.conversationId;if(p.conversationId!==x||p.conversationType!==M.conversationType)return;let B=fa(M);if(B!==void 0&&B>=p.sortKey){typeof c!="string"&&sl(c);return}let Q={...M,readCursor:m,readCursorSortKey:p.sortKey,unreadCount:el(M,p.sortKey),mentionUnreadCount:Mp(M,p.sortKey)};return Hn(Q),Jn(M),Q}function Gp(c){let m=o.get(c);if(m===void 0)return false;let p=a.get(c)??{...c,readCursor:m.readCursor??"",unreadCount:m.unreadCount,mentionUnreadCount:m.mentionUnreadCount};return p.unreadCount>0||p.manuallyUnread===true?false:(Hn({...p,manuallyUnread:true}),Jn(c),true)}function sl(c){let m=a.get(c);if(m?.manuallyUnread!==true)return false;let p={...m};return delete p.manuallyUnread,Hn(p),Jn(c),true}function al(c,m,p,M,x){let B=typeof c=="string"?c:c.conversationId,Q=Gn(c),ne=typeof c=="string"?Q===void 0?void 0:Pn(Q):c;if(Q!==void 0&&W(Q.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${B}, type=${Q.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(m)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${B}, count=${m}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}ne?.conversationType==="channel"&&f.delete(B);let oe=a.get(c),ge=oe?.readCursor??"",ae=oe?.readCursorSortKey,te=p===void 0||p===""?void 0:ne===void 0?n.get(p)??pe(p):H(ne,p);te!==void 0&&te.conversationId===B&&(ae===void 0||te.sortKey>ae)&&(ge=te.id,ae=te.sortKey),M!==void 0&&(ge=M),Hn({...ne===void 0?{conversationId:B}:ne,readCursor:ge,readCursorSortKey:ae,unreadCount:Math.max(0,Math.floor(m)),...m>0?{}:{manuallyUnread:oe?.manuallyUnread},mentionUnreadCount:m===0||x===false?0:x===true?Math.max(1,oe?.mentionUnreadCount??0):oe?.mentionUnreadCount}),Jn(c,m>0&&ne!==void 0&&!z(ne));}function Ia(c){let m=f.get(c.conversation.conversationId);return m?.handle.transactionId===c.transactionId?m:void 0}function dl(c,m,p,M=false){let x=Gn(c),B=H(c,m);if(x?.type!=="channel"||B?.conversationType!=="channel"||B.conversationId!==c.conversationId||B.extensions?.historyCursor!==p)throw new Error(`CHANNEL \u5DF2\u8BFB\u4F4D\u7F6E\u4E0D\u53EF\u4FE1\uFF08channelId=${c.conversationId}, messageId=${m}\uFF09`);M||f.delete(c.conversationId);let Q=a.get(c),ne=Q===void 0?x.mentionUnreadCount:Q.mentionUnreadCount;Hn({...c,readCursor:p,readCursorSortKey:B.sortKey,unreadCount:Q?.unreadCount??x.unreadCount,...ne===void 0?{}:{mentionUnreadCount:ne}}),Jn(c);}function Up(c){let m=c.conversationId,p=Gn(c);if(p===void 0||p.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${m}, type=${p?.type??"missing"}\uFF09`);if(f.has(m))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${m}\uFF09`);let M={conversation:c,transactionId:N++},B=a.get(c)??{conversationId:m,readCursor:p.readCursor??"",unreadCount:p.unreadCount,...p.mentionUnreadCount===void 0?{}:{mentionUnreadCount:p.mentionUnreadCount}};return f.set(m,{handle:M,baseReadState:{...B},steps:[],committedThrough:-1}),k(m),M}function kp(c,m,p){let M=c.conversation,x=M.conversationId,B=Ia(c);if(B===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${x}\uFF09`);let Q=H(M,m);if(Q===void 0||Q.conversationId!==x||Q.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${x}, messageId=${m}\uFF09`);if(Q.extensions?.historyCursor!==p)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${x}, messageId=${m}\uFF09`);B.steps.at(-1)?.readCursor!==p&&(B.steps.push({readCursor:p,messageId:m,sortKey:Q.sortKey}),dl(M,m,p,true));}function xp(c,m){let p=Ia(c);if(p===void 0)return false;let M=p.steps.findLastIndex(x=>x.readCursor===m);if(M<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${c.conversation.conversationId}, cursor=${m}\uFF09`);return p.committedThrough=Math.max(p.committedThrough,M),k(c.conversation.conversationId),p.committedThrough===p.steps.length-1&&f.delete(c.conversation.conversationId),true}function Bp(c){let m=Ia(c);if(m===void 0)return false;let p=c.conversation,M=p.conversationId,x=a.get(p),B=m.committedThrough>=0?m.steps[m.committedThrough]:void 0,Q=B===void 0?m.baseReadState:void 0,ne=x?.unreadCount??Q?.unreadCount??0,oe=x?.mentionUnreadCount??Q?.mentionUnreadCount??0,ge=Q?.mentionUnreadCount!==void 0||x?.mentionUnreadCount!==void 0,ae={conversationId:M,conversationType:"channel",readCursor:B?.readCursor??Q?.readCursor??"",readCursorSortKey:B?.sortKey??Q?.readCursorSortKey,unreadCount:ne,...ge?{mentionUnreadCount:oe}:{}};return f.delete(M),Hn(ae),Jn(p),true}function wp(c,m,p){let x=Gn({conversationType:"group",conversationId:c});if(x===void 0){tt({id:c,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:m,sendDisabledReason:p});return}if(x.groupState===m&&x.sendDisabledReason===p)return;let B={...x,groupState:m,sendDisabledReason:p};tt(B);}function Ca(c,m,p,M){let x={conversationType:"channel",conversationId:c},B=le(x);if(z(x)&&i.get(x)===void 0)return;let Q=Gn(x);if(Q===void 0){Z(x),j.delete(B);let ae={id:c,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:m,channelPermissions:M?.permissions,channelAccessSnapshot:M?.snapshot,sendDisabledReason:p};tt(ae);return}if(Q.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${c} \u7C7B\u578B\u4E3A ${Q.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);Z(x),j.delete(B);let ne=M?.permissions,oe=M?.snapshot;if(Q.channelState===m&&Q.sendDisabledReason===p&&ff(Q.channelPermissions,ne)&&pf(Q.channelAccessSnapshot,oe))return;let ge={...Q,channelState:m,channelPermissions:ne,channelAccessSnapshot:oe,sendDisabledReason:p};tt(ge);}function Fp(c,m){let p=o.get(c);if(p===void 0||p.pinned===m)return;let M={...p,pinned:m,topTime:m?Date.now():void 0};o.set(M),se(M),Nn(M);}function Pp(c,m){let p=Gn(c);if(p===void 0||p.muted===m)return;let M={...p,muted:m};tt(M);}async function cl(c,m){if(m.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let p=n.get(m),M=p!==void 0&&p.conversationType===c.conversationType&&p.conversationId===c.conversationId,x=n.getByConversation(c).filter(te=>te.id!==m),B=o.get(c)===void 0?void 0:Po(c,x.at(-1),"clear"),Q=B===void 0?void 0:bn(B);function ne(te){return te!==void 0&&(p===void 0||!Dt(p,te))}let oe=E===void 0?{deleted:false,superseded:false}:await Rn(async()=>ne(n.get(m))?{deleted:false,superseded:true}:{deleted:await E.deleteMessage(c,m,Q),superseded:false});if(oe.superseded||ne(n.get(m)))return false;let ge=M&&n.delete(c,m),ae=false;for(let te of ie)ae=te.removeMessage(c,m)||ae;return !oe.deleted&&!ge&&!ae?false:(pa(B,false),y(c,m),e.emitter.emit({type:"message:removed",conversation:{...c},messageId:m,scope:"local-only"}),true)}async function Vp(c){let m={...c},p=new Map(n.getByConversation(m).map(ae=>[ae.id,ae])),M=o.get(m),x=a.get(m),B=x===void 0&&M===void 0?void 0:{...m,readCursor:x?.readCursor??M?.readCursor??"",...x?.readCursorSortKey===void 0?{}:{readCursorSortKey:x.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},Q=M===void 0?void 0:Po(m,void 0,"clear",B);if(E!==void 0){if(E.clearConversationHistory===void 0)throw new Error("\u5F53\u524D storage \u672A\u5B9E\u73B0 clearConversationHistory\uFF0C\u62D2\u7EDD\u975E\u539F\u5B50\u6E05\u7A7A\u672C\u673A\u4F1A\u8BDD\u5386\u53F2");await Rn(()=>E.clearConversationHistory(m,Q===void 0?void 0:bn(Q),B));}let ne=a.get(m),oe=ne?.conversationType===x?.conversationType&&ne?.conversationId===x?.conversationId&&ne?.readCursor===x?.readCursor&&ne?.readCursorSortKey===x?.readCursorSortKey&&ne?.unreadCount===x?.unreadCount&&ne?.mentionUnreadCount===x?.mentionUnreadCount;B!==void 0&&oe&&Hn(B,false);for(let[ae,te]of p){let ee=n.get(ae);ee!==void 0&&Dt(te,ee)&&n.delete(m,ae);}let ge=n.getByConversation(m);for(let ae of ie)ae.clearConversation(m)&&ae.applyIncoming(ge);d(m),o.get(m)!==void 0&&pa(Po(m,ge.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:m,scope:"local-only"});}function ll(c,m={}){let p=typeof c=="string"?c:c.conversationId,M=o.get(c),x=l.get(c),B=typeof c=="string"?M!==void 0?{conversationType:M.type,conversationId:p}:x===void 0?void 0:ht(x):c;if(B===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${p}`);let Q=n.getByConversation(B).length;sr(B),d(B),o.delete(c),i.delete(c),B.conversationType==="channel"&&(k(B.conversationId),f.delete(B.conversationId)),a.delete(c),n.deleteByConversation(c),l.clear(c);let ne=O(B);if(m.terminal===true){U.add(ne);let oe=_.delete(ne);R.delete(ne),R.delete(p),oe&&_n(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:B,data:{reason:m.terminalReason??"membership-terminated",removedMessageCount:Q}}));}else R.add(ne);for(let oe of ie)he(oe,B)&&oe.reset();e.emitter.emit({type:"session:removed",conversationId:p,conversation:B}),un(),m.terminal===true&&Wn(),E!==void 0&&(E.deleteConversationMessages(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",oe)),E.deleteSession(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u5931\u8D25",oe)),E.deleteReadState(B).catch(oe=>Y("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",oe)),E.removePinnedMessage(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",oe)));}function Op(c){ll(c);}function Sa(c,m){ll(c,{terminal:true,terminalReason:m});}function Kp(c){let m=Pn(c);if(le(m),m.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let p=o.get(m);if(p!==void 0)return p;let M={...c,id:m.conversationId,type:m.conversationType,...c.channelPermissions===void 0?{}:{channelPermissions:{...c.channelPermissions}},...c.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...c.channelAccessSnapshot}},...c.extensions===void 0?{}:{extensions:{...c.extensions}}},x=Ve(m);return x.deleted&&un(),x.terminal&&Wn(),o.set(M),i.delete(m),se(M),Nn(M),M}function Gn(c){if(typeof c=="string"){let m=[...o.getAll(),...i.getAll()].filter(p=>p.id===c);if(m.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${c}`);return m[0]}return o.get(c)??i.get(c)}function tt(c){let m=Pn(c);o.get(m)!==void 0?(o.set(c),se(c),Nn(c)):(i.set(c),e.emitter.emit({type:"conversation-context:updated",conversation:m}));}function Lp(c,m={}){let p=Pn(c);if(p.conversationType==="supergroup")throw new Error("prepareConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let M=Gn(p);if(M!==void 0){let x=M.title||c.title,B=M.avatar??c.avatar;(x!==M.title||B!==M.avatar)&&tt({...M,title:x,avatar:B});return}if(Re(p)){if(m.membershipConfirmed!==true)throw new Error("\u51C6\u5907\u804A\u5929\u5931\u8D25\uFF1A\u9700\u8981\u91CD\u65B0\u786E\u8BA4\u6210\u5458\u8D44\u683C");U.delete(O(p)),U.delete(p.conversationId),Wn();}tt({...c,...c.channelPermissions===void 0?{}:{channelPermissions:{...c.channelPermissions}},...c.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...c.channelAccessSnapshot}}}),(a.get(p)?.unreadCount??0)>0&&!z(p)&&Jn(p,true);}function Zp(c){return mf(o.getAll(),c)}async function Qp(c=()=>true){if(!(E===void 0||!c())){fe=true;try{let m=await E.getMeta(af);if(!c())return;if(m!==null)for(let te of m)R.add(te);let p=await E.getMeta(df);if(!c())return;if(p!==null)for(let te of p)U.add(te);let M=await E.getMeta(cf);if(!c())return;if(M!==null)for(let[te,ee]of M)typeof te=="string"&&typeof ee=="string"&&_.set(te,ee);let x=await E.getMeta(lf);if(!c())return;if(x!==null)for(let te of x){let ee=Me(te);t.set(ee,[...t.get(ee)??[],te]);}let B=await E.getMeta(uf);if(!c())return;if(Array.isArray(B))for(let te of B){if(typeof te!="object"||te===null)continue;let ee=Reflect.get(te,"serialNumber"),we=Reflect.get(te,"status"),Ae=Reflect.get(te,"occurredTime");typeof ee!="string"||ee.trim()===""||we!==0&&we!==1&&we!==2&&we!==3||Ae!==void 0&&(typeof Ae!="number"||!Number.isFinite(Ae)||Ae<=0)||r.set(ee,{serialNumber:ee,status:we,...Ae===void 0?{}:{occurredTime:Ae}});}let Q=await E.getPinnedMessages();if(!c())return;for(let te of Q){if(!c())return;z({conversationType:te.conversationType,conversationId:te.conversationId})||l.set(te)&&e.emitter.emit({type:"pinned-message:updated",conversationId:te.conversationId,conversation:ht(te),pinnedMessage:te,reason:"hydrate"});}let ne=(await E.getSessions()).filter(te=>!z({conversationType:te.type,conversationId:te.id}));if(!c())return;for(let te of ne){if(!c())return;let ee=Pn(te),we=o.get(ee);o.set(te),i.delete(ee),(we===void 0||!na(we,te))&&se(te);}let oe=await E.getReadStates();if(!c())return;for(let te of oe)te.conversationType==="channel"&&k(te.conversationId),a.set(te);let ge=L,ae=await E.getDrafts();if(!c()||ge!==L)return;for(let te of ae){if(!c())return;if(!Number.isFinite(te.updatedAt)||te.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${te.updatedAt}`);let ee=Ue(te.ref,te,te.updatedAt);if(z(ee.ref)){try{if(await E.deleteDraft(ee.ref),!c())return}catch(Je){if(!c())return;Y("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Je);}continue}let we=le(ee.ref);b.set(we,Math.max(b.get(we)??0,ee.updatedAt));let Ae=s.get(ee.ref);Ae!==null&&Ae.updatedAt===ee.updatedAt&&Xe(Ae,ee)||(s.set(ee),e.emitter.emit({type:"draft:updated",conversation:ee.ref,draft:ee}));}for(let te of ne){if(!c())return;let ee=Pn(te),we=(await E.getMessages(ee,{limit:mA})).filter(Fe=>le(Ke(Fe))===le(ee)).filter($);if(!c())return;let Ae=[],Je=we.map(Fe=>{let sn=Vo(At(Fe));return sn!==Fe&&Ae.push(sn),sn});if(rl(Je,c),!c())return;if(Ae.length>0)try{if(await E.saveMessages(Ae),!c())return}catch(Fe){if(!c())return;Y("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Fe);}if(!c())return;Jn(ee);}}catch(m){c()&&Y("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",m);}finally{fe=false,c()&&S("offline");}}}async function Wp(c,m){if(E===void 0)return [];try{let p=await E.getMessages(c,m),M=typeof c=="string"?p.filter($):p.filter(Q=>le(Ke(Q))===le(c)).filter($),x=fe;fe=!0;let B;try{B=rl(M);}finally{fe=x;}return fe||S("offline"),B.map(Q=>H(Ke(Q),Q.id)??Q)}catch(p){return Y("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",p),[]}}function Hp(c,m){let p=m?.match(Qo(c));return {message:c,ranges:p?.ranges.map(({start:M,end:x})=>[M,x])??[]}}async function Jp(c,m){let p=m.keyword?.trim()??"",M=m.contentTypes;if(p===""&&(M===void 0||M.length===0))return {results:[],exhausted:true};let x=p===""?void 0:await Ua(p),B=Ae=>{let Je=M===void 0||M.includes(Ae.contentType),Fe=x===void 0||x.match(Qo(Ae))!==null;return Je&&Fe},Q=(Ae,Je)=>Ae.sortKey<Je.sortKey?1:Ae.sortKey>Je.sortKey?-1:0,ne=Ae=>Hp(Ae,x),oe=()=>{let Ae=n.getByConversation(c).filter(B).sort(Q),Fe=(m.beforeSortKey===void 0?Ae:Ae.filter(cr=>cr.sortKey<m.beforeSortKey)).slice(0,m.limit),sn=Fe.length<m.limit;return {results:Fe.map(ne),exhausted:sn,...sn?{}:{nextBeforeSortKey:Fe.at(-1)?.sortKey}}};if(E===void 0)return oe();let ge;try{ge=await E.searchMessages(c,{...m.keyword!==void 0?{keyword:m.keyword}:{},...M!==void 0?{contentTypes:M}:{},limit:m.limit,...m.beforeSortKey!==void 0?{beforeSortKey:m.beforeSortKey}:{}});}catch(Ae){throw Y("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Ae),Ae}let ae=ge.exhausted?void 0:ge.nextBeforeSortKey,te=new Map(n.getByConversation(c).map(Ae=>[Ae.id,Ae])),ee=new Map;for(let Ae of ge.items){let Je=ol(Ae);le(Ke(Je))===le(c)&&ee.set(Je.id,te.get(Je.id)??Je);}for(let Ae of te.values()){let Je=m.beforeSortKey===void 0||Ae.sortKey<m.beforeSortKey,Fe=ae===void 0||Ae.sortKey>=ae;Je&&Fe&&B(Ae)&&ee.set(Ae.id,Ae);}return {results:[...ee.values()].filter(B).sort(Q).map(ne),exhausted:ge.exhausted,...ge.exhausted?{}:{nextBeforeSortKey:ge.nextBeforeSortKey}}}function Yp(c,m,p){let M=H(c,m);M!==void 0&&On([{...M,recalled:p,body:{}}],"live");}function Xp(c,m,p){let M=H(c,m);M===void 0||M.conversationType!=="channel"||On([{...M,recalled:void 0,deletedForEveryone:p,body:{}}],"live");}function zp(c,m,p,M){let x=H(c,m);if(x===void 0)return;let B={...x,body:p,edited:true};M!==void 0?B.mention=M:delete B.mention,On([B],"live");}async function qp(c,m,p){let M=r.get(c),x={serialNumber:c,status:m,...p===void 0?{}:{occurredTime:p}},B=V(M,x);r.set(B.serialNumber,B),await ve();let Q=new Map;for(let ne of js(n.getAll(),c,B.status,B.occurredTime))Q.set(ne.id,ne);for(let ne of o.getAll()){let oe=K({conversationType:ne.type,conversationId:ne.id});for(let ge of js(oe,c,B.status,B.occurredTime))Q.set(ge.id,ge);}Q.size!==0&&On([...Q.values()],"live");}return {upsertMessages:On,applyReaction:u,rollbackReaction:g,appendDirectContactRequiredNotice:il,appendDirectMessageRefusedNotice:Tp,appendDirectContactRequiredTextFailure:vp,reconcileDirectContactEstablishedNotice:_p,recallMessage:Yp,deleteChannelMessageForEveryone:Xp,editMessage:zp,applyTransferStatusBySerialNumber:qp,getMessage:c=>n.get(c),getConversationMessage:H,getLoadedMessagesByConversation:K,resolveConversationMessage:Ep,getMessages:()=>n.getAll(),getMessagesByConversation:c=>n.getByConversation(c),deleteLocalMessage:cl,clearLocalConversationHistory:Vp,getSession:c=>o.get(c),getConversationContext:Gn,isMembershipTerminated:Re,prepareConversation:Lp,ensureConversation:Kp,getSessions:()=>o.getAll(),getConversationList:Ne,getReadState:c=>a.get(c),getPinnedMessage:c=>l.get(c),setPinnedMessage:Mn,clearPinnedMessage:Dn,isPinnedMessage:(c,m)=>l.isPinnedMessage(c,m),setReadState:c=>{let m=c.conversationType===void 0?o.get(c.conversationId):void 0,p=c.conversationType===void 0&&m!==void 0?{...c,conversationType:m.type}:c;p.conversationType==="channel"&&k(p.conversationId),a.set(p),mn(p);},markConversationUnread:Gp,clearConversationManualUnread:sl,advanceRead:Dp,applyServerUnread:al,applyChannelReadPosition:dl,getChannelReadRevision:c=>I.get(c.conversationId)??C,hasPendingChannelRead:c=>f.has(c.conversationId),applyChannelReadSummary:(c,m)=>al(c,m.unreadCount,void 0,m.readCursor,m.hasUnreadMention),beginChannelReadTransaction:Up,applyChannelReadOptimistically:kp,commitChannelReadTransaction:xp,rollbackChannelReadTransaction:Bp,setGroupRestriction:wp,setChannelRestriction:Ca,setPinned:Fp,setMuted:Pp,removeConversation:Op,removeConversationForMembershipTermination:Sa,refreshConversationProfile:Ap,recoverChannelFromProfile:hp,updateConversationProfile:Rp,getTotalUnread:Zp,getDraft:ce,saveDraft:rn,clearDraft:xt,clearDraftIfUnchanged:ir,invalidateAndDrainDraftOperations:$e,clearSession(){G+=1,L+=1,ya+=1,dr.clear(),D.clear(),j.clear(),n.clear(),o.clear(),i.clear(),a.clear(),s.clear(),A.clear(),b.clear(),F.clear(),f.clear(),I.clear(),C+=1,l.clearAll(),R.clear(),U.clear(),_.clear(),t.clear();for(let c of ie)c.reset();},hydrate:Qp,loadOlderMessages:Wp,searchMessages:Jp,messageWindow:re,createMessageWindow:me}}var yA=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function IA(e){let n=new Set,t=new Map,r=new Map,o=true;function i(f){let I=f.extensions?.channelSequence,C=typeof I=="string"?I:f.raw?.channelNotify?.sequence;if(C===void 0||!/^\d+$/.test(C))return;let k=BigInt(C);return k>0n?k:void 0}function a(f){return n.has(f)?false:(n.add(f),n.size>2048&&n.delete(n.values().next().value),true)}function s(f,I,C,k){k!==void 0&&r.set(f,k),e.clearChannelKey(f),e.stopChannelHistory(f),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:f},C);}function l(f){let I=e.domainState.getSession(f);e.domainState.setChannelRestriction(f,I?.channelState??"unknown_restricted",I?.channelState===void 0?"channel_access_requires_refresh":I.sendDisabledReason);}return {handleMessage(f,I={source:"live"}){if(!o||f.conversationType!=="channel"||f.contentType!=="system"||f.body.system===void 0||I.source!=="live"&&I.applyLifecycleEffects!==true||!a(f.id))return;let C=f.conversationId,k=f.body.system,N=k.targetUserIds?.includes(e.getSelfId())??false,R=k.targetUserIds===void 0||k.targetUserIds.length===0,U=i(f),_=t.get(C);if(U!==void 0){if(_!==void 0&&U<=_)return;t.set(C,U);}switch(k.eventType){case "channel_member_left":N?s(C,"left","channel_left",U):e.domainState.refreshConversationProfile(C,"channel");return;case "channel_member_removed":N?s(C,"removed","channel_removed",U):e.domainState.refreshConversationProfile(C,"channel");return;case "channel_dismissed":s(C,"dismissed","channel_dismissed",U);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!N){e.domainState.refreshConversationProfile(C,"channel");return}let E=e.domainState.getSession(C)?.channelState;if(E==="dismissed")return;if(E==="left"||E==="removed"){let T=r.get(C);if(!(U!==void 0&&T!==void 0&&U>T)){e.domainState.recoverChannelFromProfile(C).then(b=>{!o||!b||(r.delete(C),e.clearConversationTermination?.({conversationType:"channel",conversationId:C}),e.prepareChannelKey(C));});return}r.delete(C);}if(!o)return;e.domainState.setChannelRestriction(C,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:C}),e.prepareChannelKey(C),e.domainState.refreshConversationProfile(C,"channel");return}case "channel_all_muted":case "channel_all_unmuted":l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(N||R)&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_admin_added":case "channel_admin_removed":(N||R)&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_owner_transferred":(N||R||k.operatorId===e.getSelfId())&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;default:yA.has(k.eventType)&&e.domainState.refreshConversationProfile(C,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function CA(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let a=i.body.system;if(i.contentType==="system"&&a!==void 0){if(a.eventType==="group_info_changed"||a.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let s=Yd(a,t());if(s===null)return;s.state==="active"?(n.setGroupRestriction(i.conversationId,s.state,s.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let s=Xd(i.failure?.code);s!==null?(o(i.conversationId),s.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason):n.setGroupRestriction(i.conversationId,s.state,s.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function SA(e){return {handleMessage(n){let t={conversationType:n.conversationType,conversationId:n.conversationId},r=n.body.system?.pinnedMessageAction;if(r!==void 0){if(r.type==="pin"){e.domainState.setPinnedMessage(r.pinnedMessage,"notify:pin");return}if(r.type==="unpin"){e.domainState.clearPinnedMessage(t,"notify:unpin");return}e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u7F6E\u9876\u6D88\u606F\u901A\u77E5 payload \u89E3\u6790\u5931\u8D25",cause:{conversationId:n.conversationId,notifyMessageId:n.id,code:r.code}}}),e.requestReconcile(n.conversationId);return}if(n.contentType!=="system"&&e.domainState.isPinnedMessage(t,n.id)){let o=e.domainState.getPinnedMessage(t);o!==void 0&&e.domainState.setPinnedMessage({...o,preview:{state:"ready",message:n}},"message:updated");}}}}function AA(e){let n={callKind:e.callKind,outcome:e.outcome,durationMs:e.durationMs,outgoing:e.outgoing};return {id:e.callId,conversationId:e.peerId,conversationType:"direct",senderId:e.outgoing?e.selfId:e.peerId,contentType:"call",body:{call:n},createdAt:e.createdAt,sortKey:_e(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function Ut(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([AA(n)],"live");}var er=3e4,yf=0,If=1,Cf=0;function Sf(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var hA=5,RA=6,Af=1,hf=2;function Sc(e){return e==="video"?RA:hA}function Rf(e){return e==="audio"?If:yf}function Mf(e){if(e===If)return "audio";if(e===yf)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function ta(e,n,t=er){if(!Number.isFinite(e)||e<=0)throw new Error(`call signaling: msgTime \u975E\u6CD5\uFF08${String(e)}\uFF09`);if(!Number.isFinite(n)||n<=0)throw new Error(`call signaling: now \u975E\u6CD5\uFF08${String(n)}\uFF09`);return n-e>t}function Ef(e){if(e===32768)return "accept";if(e===33792||e===0)return "reject";if(e===33793)return "busy";if(e===33796)return "token-failed";if(e===33797)return "connect-failed";throw new Error(`call signaling: \u5E94\u7B54 errcode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Tf(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function Ac(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function ra(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Ee(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function ln(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function We(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var MA=new Set([33281,33299]);function nr(e){return {conversationType:"direct",conversationId:e}}function vf(e){return e==="accepted"||e==="connected"}function EA(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let V=e.getSelfId();if(V.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return V}function i(V){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${V}`);return o()}function a(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function s(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function l(V,P){e.emitter.emit({type:"call:hangup",conversation:nr(V.peerId),callId:V.callId,peerId:V.peerId,outcome:P});}function f(V,P=r(),y=true){if(t===void 0)return;let d=t;return s(),C(d,V,P),t=void 0,y&&l(d,V),d}function I(V,P){return V.connectedAt===void 0?0:Math.max(0,P-V.connectedAt)}function C(V,P,y,d){Ut(e.domainState,{callId:V.callId,peerId:V.peerId,selfId:o(),callKind:V.callKind,outcome:P,durationMs:I(V,y),outgoing:V.direction==="outgoing",createdAt:y,...d});}function k(V,P){n!==void 0&&C(n,V,P);}function N(V,P=r(),y=true){if(n===void 0)return;let d=n;return a(),k(V,P),n=void 0,y&&l(d,V),t!==void 0&&(n=t,t=void 0),d}function R(V,P,y){let d=V===16387?Xr.encode(Xr.create({sUserId:P,sMsgId:y})):V===16391?qr.encode(qr.create({sUserId:P,sMsgId:y})):V===16399?$r.encode($r.create({sUserId:P,sMsgId:y})):V===16403?no.encode(no.create({sUserId:P,sMsgId:y})):jr.encode(jr.create({sUserId:P,sMsgId:y}));e.sendFrame(X({command:V,body:d}));}function U(V){return setTimeout(V,er)}function _(){return be(Tn())}function E(V,P,y,d){let u=Yr.encode(Yr.create({sInviteId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),encrypt:Cf,sContent:Sf(),callType:Rf(d),scallId:y}));e.sendFrame(X({command:16385,body:u}));}function T(V,P,y,d){let u=zr.encode(zr.create({sToId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),errcode:Tf(d),scallId:y}));e.sendFrame(X({command:16389,body:u}));}function A(V,P,y,d){let u=Qt.encode(Qt.create({sToId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),scallId:y,hangupReasonCode:Ac(d)}));e.sendFrame(X({command:16397,body:u}));}function b(V,P){let y=We(V.callId);if(Ee(V.peerId,"peerId"),n===void 0||n.callId!==y||n.peerId!==V.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${P}`);return n}function F(V){let P=i("\u53D1\u8D77\u901A\u8BDD"),y=V.callKind??"audio",d=String(Ee(V.peerId,"peerId"));if(d===P)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let u=We(V.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let g=r();return n={callId:u,peerId:d,callKind:y,direction:"outgoing",phase:"outgoing-ringing",startedAt:g},E(P,d,u,y),n.ringTimer=U(()=>{n?.callId!==u||n.phase!=="outgoing-ringing"||(A(P,d,u,"no-answer"),N("cancelled"));}),{callId:u,conversation:nr(d)}}function L(V){let P=i("\u63A5\u542C"),y=We(V.callId);if(Ee(V.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===V.peerId){if(n!==void 0)throw new Error("call signaling: \u8BF7\u5148\u7ED3\u675F\u5F53\u524D\u901A\u8BDD\u518D\u63A5\u542C\u7B49\u5F85\u6765\u7535");n=t,t=void 0;}let d=b(V,"\u63A5\u542C");if(d.direction!=="incoming"||d.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");a(),T(P,d.peerId,d.callId,"accept"),d.phase="accepted";}function W(V){let P=i("\u62D2\u7EDD"),y=We(V.callId);if(Ee(V.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===V.peerId){T(P,t.peerId,t.callId,"reject"),f("rejected");return}let d=b(V,"\u62D2\u7EDD");if(d.direction!=="incoming"||d.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");T(P,d.peerId,d.callId,"reject"),N("rejected");}function ie(V){let P=i("\u56DE\u5FD9"),y=We(V.callId),d=String(Ee(V.peerId,"peerId"));if(T(P,d,y,"busy"),n?.callId===y){N("busy");return}if(t?.callId===y){f("busy");return}Ut(e.domainState,{callId:y,peerId:d,selfId:P,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function Te(V){let P=i("\u6302\u65AD"),y=b(V,"\u6302\u65AD");A(P,y.peerId,y.callId,V.reason);let d=y.phase==="connected",u=ra(Ac(V.reason),y.direction,d);N(u);}function re(V,P){let y=P==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",d=i(y),u=b(V,y);if(u.callKind!==P)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${P==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(u.phase!=="accepted"&&u.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let g=eo.encode(eo.create({sToId:Ee(u.peerId,"peerId"),sFromId:Ee(d,"selfId"),sMsgId:_(),msgTime:BigInt(r()),notifyType:Sc(P),notifyValue:V.role==="caller"?Af:hf,scallId:u.callId}));e.sendFrame(X({command:16401,body:g}));}function me(V){re(V,"audio");}function pe(V){re(V,"video");}function H(V){let P=is.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let y=o();R(16387,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId),u=P.sFromId.toString();if(P.sFromId<=0n||P.sInviteId.toString()!==y)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(u===y)return;let g=Number(P.msgTime),h=Mf(P.callType),S=ta(g,r()),G=nr(u);if(S){Ut(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"missed",durationMs:0,outgoing:false,createdAt:g}),e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:true});return}if(n?.callId===d||t?.callId===d)return;if(n!==void 0&&!vf(n.phase)){T(y,u,d,"busy"),Ut(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}if(n!==void 0&&n.peerId===u){T(y,u,d,"busy"),Ut(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}if(t!==void 0){T(y,u,d,"busy"),Ut(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}let D={callId:d,peerId:u,callKind:h,direction:"incoming",phase:"incoming-ringing",startedAt:g};if(D.ringTimer=U(()=>{if(t?.callId===d&&t.phase==="incoming-ringing"){f("missed");return}n?.callId!==d||n.phase!=="incoming-ringing"||N("missed",g);}),n!==void 0&&vf(n.phase)){t=D,e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:false});return}n=D,e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:false});}function J(V){let P=os.decode(V);if(n===void 0||n.direction!=="outgoing"||P.errcode===32768)return;let y=P.errcode===33794?"peer-offline":"ack-error",d=n,u=r();a(),n=void 0,MA.has(P.errcode)?(C(d,"cancelled",u,{status:"failed",failure:{code:P.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(d.peerId,d.callId,u+1)):C(d,"cancelled",u),e.emitter.emit({type:"call:failed",conversation:nr(d.peerId),callId:d.callId,peerId:d.peerId,reason:y});}function K(V,P){P!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${V} ACK \u5931\u8D25`,cause:{errcode:P}}});}function he(V){let P=as.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let y=o();R(16391,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId);if(n===void 0||n.callId!==d||n.direction!=="outgoing")return;let u=Ef(P.errcode);if(e.emitter.emit({type:"call:answered",conversation:nr(n.peerId),callId:d,peerId:n.peerId,result:u}),u==="accept"){a(),n.phase="accepted";return}N(u==="reject"?"rejected":u==="busy"?"busy":"cancelled");}function fe(V){let P=Qt.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let y=o();R(16399,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId);if(t!==void 0&&t.callId===d){let g=ra(P.hangupReasonCode,t.direction,false);f(g);return}if(n===void 0||n.callId!==d)return;let u=ra(P.hangupReasonCode,n.direction,n.phase==="connected");N(u);}function Me(V){let P=us.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let y=o();if(R(16403,Ee(y,"selfId"),P.sMsgId),n===void 0||P.notifyType!==Sc(n.callKind))return;let d=We(P.scallId);n.callId===d&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=r()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:nr(n.peerId),callId:d,peerId:n.peerId})));}function ue(V){let P=ds.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");R(16395,Ee(o(),"selfId"),P.sMsgId);}return {handlers:[{command:16388,handler:(V,P)=>H(P)},{command:16386,handler:(V,P)=>J(P)},{command:16392,handler:(V,P)=>he(P)},{command:16390,handler:(V,P)=>K("answer",ss.decode(P).errcode)},{command:16400,handler:(V,P)=>fe(P)},{command:16398,handler:(V,P)=>K("hangup",cs.decode(P).errcode)},{command:16404,handler:(V,P)=>Me(P)},{command:16402,handler:(V,P)=>K("state-notify",ls.decode(P).errcode)},{command:16396,handler:(V,P)=>ue(P)}],invite:F,accept:L,reject:W,busy:ie,hangup:Te,notifyPeerAudioBegin:me,notifyPeerVideoBegin:pe,dispose(){a(),s(),n=void 0,t=void 0;}}}var TA={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function vA(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return n>>>0}function bf(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>vA(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return ye(r)}function bA(e){let n=bf(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Js,contentType:"system",body:{system:{eventType:TA[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:_e(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Nf(e,n){let t=bf(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([bA(n)],"live");}var hc=9;function NA(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function _f(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],i=0;for(let l of t){let f=NA(l),I=new Uint8Array(1+f.length);I[0]=r,I.set(f,1),o.push(I),i+=I.length;}let a=new Uint8Array(e.length+i),s=0;for(let l of o)a.set(l,s),s+=l.length;return a}function gn(e){return {conversationType:"group",conversationId:e}}function _A(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function DA(e){return e.members.filter(n=>n.status==="in-call").length}function oa(e){return e.filter(n=>n.status==="in-call").length<=1}function GA(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(u,g,h,S,G){Nf(e.domainState,{kind:u,groupId:g,callId:h,createdAt:S,...G===void 0?{}:{operatorId:G}});}function a(){let u=e.getSelfId();if(u.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return u}function s(u){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${u}`);return a()}function l(){return be(Tn())}function f(u){if(u.trim()===""||t.has(u))return false;if(t.add(u),r.push(u),r.length>256){let g=r.shift();g!==void 0&&t.delete(g);}return true}function I(u){let g=n.get(u);return g===void 0?null:_A(g)}function C(u){u.incomingRingTimer!==void 0&&clearTimeout(u.incomingRingTimer),u.incomingRingTimer=void 0;}function k(u,g,h){let S=u.members.find(G=>G.userId===g);if(S!==void 0){S.status=h;return}u.members.push({userId:g,status:h});}function N(u,g){u.members=u.members.filter(h=>h.userId!==g);}function R(u){let g=n.get(u.groupId);g!==void 0&&C(g);let h=[];for(let G of u.inCallIds)h.some(D=>D.userId===G)||h.push({userId:G,status:"in-call"});for(let G of u.ringingIds)h.some(D=>D.userId===G)||h.push({userId:G,status:"ringing"});let S={groupId:u.groupId,callId:u.callId,inviterId:u.inviterId,createdAt:u.createdAt,members:h};return n.set(u.groupId,S),S}function U(u,g){let h=n.get(u);if(h!==void 0&&!(g!==void 0&&h.callId!==g))return C(h),n.delete(u),h}function _(u,g){for(let h of n.values())if(h.groupId!==g&&h.members.some(S=>ln(S.userId,u)))return true;return false}function E(u,g,h){let S=ro.encode(ro.create({userId:g,msgId:h}));e.sendFrame(X({command:u,body:S}));}function T(u,g,h,S){let G=S.map(j=>Ee(j,"inviteId")),D=_f(to.encode(to.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,inviteIds:G})),6,G);e.sendFrame(X({command:16641,body:D}));}function A(u,g,h,S,G){let D=S.map(O=>Ee(O,"inviteId")),j=_f(io.encode(io.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,joinType:G?1:0,inviteIds:D})),5,D);e.sendFrame(X({command:16649,body:j}));}function b(u,g,h,S){let G=oo.encode(oo.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,ansType:S?1:0}));e.sendFrame(X({command:16645,body:G}));}function F(u,g,h){let S=so.encode(so.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h}));e.sendFrame(X({command:16653,body:S}));}function L(u,g,h){let S=ao.encode(ao.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h}));e.sendFrame(X({command:16657,body:S}));}function W(u,g,h){let S=s("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),G=We(g),D=[...new Set(h.map(O=>O.trim()).filter(O=>O!==""&&!ln(O,S)))];if(D.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(D.length+1>hc)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${hc}`);let j=n.get(u);if(j!==void 0&&DA(j)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");T(S,u,G,D),R({groupId:u,callId:G,inviterId:S,createdAt:o(),inCallIds:[S],ringingIds:D}),i("started",u,G,o(),S);}function ie(u,g,h,S){let G=s("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),D=We(g),j=[...new Set(h.map(z=>z.trim()).filter(z=>z!==""&&!ln(z,G)))];A(G,u,D,j,S);let O=n.get(u);if(O!==void 0&&O.callId===D&&(k(O,G,"in-call"),S))for(let z of j)k(O,z,"ringing");}function Te(u,g,h){let S=s("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),G=We(g),D=n.get(u);if(D!==void 0&&D.callId===G&&C(D),b(S,u,G,h),!(D===void 0||D.callId!==G)){if(h){k(D,S,"in-call");return}N(D,S),e.emitter.emit({type:"group-call:answered",conversation:gn(u),callId:G,groupId:u,userId:S,agreed:false});}}function re(u,g){let h=s("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),S=We(g),G=n.get(u);if(G!==void 0&&G.callId===S&&oa(G.members)){L(h,u,S),U(u,S),i("ended",u,S,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(u),callId:S,groupId:u,userId:h});return}F(h,u,S),G!==void 0&&G.callId===S&&(C(G),N(G,h)),e.emitter.emit({type:"group-call:left",conversation:gn(u),callId:S,groupId:u,userId:h});}function me(u,g){let h=s("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),S=We(g);L(h,u,S),U(u,S),i("ended",u,S,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(u),callId:S,groupId:u,userId:h});}function pe(u,g,h,S){let G=s("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),D=co.encode(co.create({groupId:Ee(u,"groupId"),userId:Ee(G,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:We(g),statusType:h?1:0,status:S?1:0}));e.sendFrame(X({command:16661,body:D}));}function H(u,g,h){let S=s("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),G=lo.encode(lo.create({groupId:Ee(u,"groupId"),userId:Ee(S,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:We(g),hintUser:Ee(h,"hintUserId")}));e.sendFrame(X({command:16669,body:G}));let D=n.get(u);D!==void 0&&D.callId===g&&N(D,S);}function J(u){let g=ms.decode(u);if(g.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let h=a();if(E(16643,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.inviteIds.map(v=>v.toString()).filter(v=>v!=="0"),O=Number(g.msgTime),z=ta(O,o(),er),Re=gn(S),de=ln(G,h),Ve=j.some(v=>ln(v,h))||j.length===0&&!de;if(de){R({groupId:S,callId:D,inviterId:G,createdAt:O,inCallIds:[h],ringingIds:j.filter(v=>!ln(v,h))});return}let Pe=n.get(S);if(Pe!==void 0&&Pe.callId!==D&&Pe.members.some(v=>ln(v.userId,h)&&v.status==="in-call")){L(h,S,D),i("ended",S,D,Number.isFinite(O)?O:o());return}if(R({groupId:S,callId:D,inviterId:G,createdAt:O,inCallIds:[G],ringingIds:Ve?[...new Set([h,...j.filter(v=>!ln(v,G))])]:j.filter(v=>!ln(v,G))}),i("started",S,D,Number.isFinite(O)?O:o(),G),!Ve)return;if(z){e.emitter.emit({type:"group-call:incoming",conversation:Re,callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:O,expired:true});return}if(_(h,S)){H(S,D,G);return}let $=n.get(S);$!==void 0&&($.incomingRingTimer=setTimeout(()=>{let v=n.get(S);if(v===void 0||v.callId!==D)return;let Z=v.members.find(Y=>ln(Y.userId,h));if(!(Z===void 0||Z.status!=="ringing")){try{Te(S,D,!1);}catch{N(v,h);}i("missed",S,D,o());}},er)),e.emitter.emit({type:"group-call:incoming",conversation:Re,callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:O,expired:false});}function K(u){let g=ps.decode(u);if(g.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let h=a();if(E(16647,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.ansType===1,O=n.get(S);O===void 0||O.callId!==D||(j?k(O,G,"in-call"):N(O,G),e.emitter.emit({type:"group-call:answered",conversation:gn(S),callId:D,groupId:S,userId:G,agreed:j}));}function he(u){let g=Is.decode(u);if(g.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let h=a();if(E(16651,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.inviteIds.map(de=>de.toString()).filter(de=>de!=="0"&&de!==G),O=n.get(S);if(O===void 0||O.callId!==D)O=R({groupId:S,callId:D,inviterId:G,createdAt:Number(g.msgTime),inCallIds:[G],ringingIds:j});else if(k(O,G,"in-call"),g.joinType===1)for(let de of j)k(O,de,"ringing");e.emitter.emit({type:"group-call:joined",conversation:gn(S),callId:D,groupId:S,userId:G,inviteIds:j,isInvite:g.joinType===1});let z=j.some(de=>ln(de,h))||j.length===0&&g.joinType===1&&!ln(G,h),Re=O.members.find(de=>ln(de.userId,h));z&&g.joinType===1&&!ln(G,h)&&Re?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:gn(S),callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:Number(g.msgTime),expired:false});}function fe(u){let g=Ss.decode(u);if(g.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let h=a();if(E(16655,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=n.get(S);j===void 0||j.callId!==D||(N(j,G),e.emitter.emit({type:"group-call:left",conversation:gn(S),callId:D,groupId:S,userId:G}),oa(j.members)&&(U(S,D),i("ended",S,D,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:D,groupId:S,userId:G})));}function Me(u){let g=hs.decode(u);if(g.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let h=a();if(E(16659,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId);U(S,D),i("ended",S,D,Number(g.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:D,groupId:S,userId:G});}function ue(u){let g=vs.decode(u);if(g.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let h=a();if(E(16671,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=n.get(S);j!==void 0&&j.callId===D&&N(j,G),e.emitter.emit({type:"group-call:busy",conversation:gn(S),callId:D,groupId:S,userId:G,hintUserId:g.hintUser.toString()});}function ve(u){let g=Es.decode(u);if(g.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let h=a();if(E(16667,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=We(g.callId),D=n.get(S);if(!(D===void 0||D.callId!==G)){for(let j of g.users){let O=j.toString();N(D,O),e.emitter.emit({type:"group-call:left",conversation:gn(S),callId:G,groupId:S,userId:O});}oa(D.members)&&(U(S,G),i("ended",S,G,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:G,groupId:S,userId:g.userId.toString()}));}}function V(u){let g=Ms.decode(u);if(g.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");E(16663,Ee(a(),"selfId"),g.msgId);}function P(u){let g=gs.decode(u);if(g.errCode===32768)return;let h=a();for(let S of n.values()){if(!ln(S.inviterId,h))continue;let G=U(S.groupId,S.callId);if(G!==void 0){e.emitter.emit({type:"group-call:failed",conversation:gn(G.groupId),callId:G.callId,groupId:G.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:g.errCode}}});}function y(u,g){g!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${u} ACK \u5931\u8D25`,cause:{errCode:g}}});}return {commandHandlers:[{command:16644,handler:(u,g)=>J(g)},{command:16642,handler:(u,g)=>P(g)},{command:16648,handler:(u,g)=>K(g)},{command:16646,handler:(u,g)=>y("answer",fs.decode(g).errCode)},{command:16652,handler:(u,g)=>he(g)},{command:16650,handler:(u,g)=>y("join",ys.decode(g).errCode)},{command:16656,handler:(u,g)=>fe(g)},{command:16654,handler:(u,g)=>y("hangup",Cs.decode(g).errCode)},{command:16660,handler:(u,g)=>Me(g)},{command:16658,handler:(u,g)=>y("finish",As.decode(g).errCode)},{command:16672,handler:(u,g)=>ue(g)},{command:16670,handler:(u,g)=>y("busy",Ts.decode(g).errCode)},{command:16668,handler:(u,g)=>ve(g)},{command:16664,handler:(u,g)=>V(g)},{command:16662,handler:(u,g)=>y("status",Rs.decode(g).errCode)}],createRoom:W,joinRoom:ie,answer:Te,hangup:re,finish:me,setStatus:pe,busy:H,inspectMeeting:I,dispose(){for(let u of n.values())C(u);n.clear();}}}function tr(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function Rc(e){return [{command:4646,handler:(n,t)=>{let r=Ti.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=bi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=rs.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Df=9;function UA(){return {encrypted:true}}function kA(e,n){if(e.length===0)return "empty-input";if(e.length>Df)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function xA(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var BA={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function Mc(e,n){let t=e.now??(()=>Date.now()),r=[],o=[];if(n.messages.length===0)return {results:[{ok:false,sourceMessageId:"",targetConversationId:"",targetConversationType:"direct",reason:"empty-input"}],skippedSourceIds:[]};let i=kA(n.targets,e.sendStrategies);if(i!==void 0){for(let s of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let l of n.messages)r.push({ok:false,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let a=[];for(let s of n.messages){let l=e.resolveCurrentMessage===void 0?xA(s)?s:void 0:e.resolveCurrentMessage(s);if(l===void 0||l.id!==s.id||l.conversationId!==s.conversationId||l.conversationType!==s.conversationType){o.push(s.id);continue}if(!(s.itemIndex===void 0?mc(l):$s(l))){o.push(s.id);continue}a.push(s.itemIndex===void 0?{message:l}:{message:l,itemIndex:s.itemIndex});}for(let s of n.targets)for(let{message:l,itemIndex:f}of a)try{let I=f===void 0?void 0:qm(l,f);if(I!==void 0&&!I.ok){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:BA[I.reason]});continue}let C=I?.ok===!0?I.contentType:l.contentType,k=No(C);if(k===void 0){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"type-not-allowed"});continue}let N=I?.ok===!0?I.body:k.cloneBody(l),R=UA(),U=k.enqueue({outbox:e.outbox,target:s,source:l,body:N,encryption:R,now:t,contentType:C});r.push({ok:!0,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,newMessageId:U});}catch{r.push({ok:false,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function Gf(e,n){if(n.conversationType==="channel")throw new Error("sendGift: CHANNEL \u4E0D\u53D1\u9001\u793C\u7269");if(!Ho(n.gift))throw new Error("sendGift: \u793C\u7269\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"gift",body:{gift:n.gift},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var rr=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function Uf(e){let n=new Map;for(let t of e){if(n.has(t.kind))throw new Error(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${t.kind}`);if(!Number.isSafeInteger(t.softMaxBytes)||t.softMaxBytes<=0||!Number.isSafeInteger(t.maxEntries)||t.maxEntries<=0||!Number.isSafeInteger(t.maxEntryBytes)||t.maxEntryBytes<=0)throw new RangeError(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u53C2\u6570\u975E\u6CD5\uFF1A${t.kind}`);n.set(t.kind,Object.freeze({...t}));}return Object.freeze({resolve:t=>n.get(t),list:()=>Object.freeze([...n.values()])})}function Go(e){let n=2166136261,t=2654435761;for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);n=Math.imul(n^o,16777619),t=Math.imul(t^o,2246822507);}return `${(n>>>0).toString(16).padStart(8,"0")}${(t>>>0).toString(16).padStart(8,"0")}`}var kf=1,wA=2,Ec=3,FA=3,xf=5,Bf=3,wf=6,PA=16*1024*1024,VA=1e3;function Tc(e){return Number.isFinite(e)&&e>0}var OA=320,KA=12*1024,Ff=20*1024,LA=.9,ZA=.72,QA=320,WA=10*1024,Uc=16*1024,HA=.84,JA=.68,YA=Uc;function vc(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!Tc(e.width)||!Tc(e.height)||n==="video"&&e.duration!==void 0&&!Tc(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>YA)))return {width:e.width,height:e.height,...n==="video"&&e.duration!==void 0?{duration:e.duration}:{},...n==="video"&&e.posterData!==void 0?{thumbData:new Uint8Array(e.posterData)}:{}}}function ia(e,n){return n===void 0?e:{...e,width:n.width,height:n.height,...n.thumbData===void 0?{}:{thumbData:n.thumbData},...e.duration===void 0&&n.duration!==void 0?{duration:n.duration}:{}}}var bc={contentType:"image",uploadKind:"image",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r),i=await t.imageThumbnail(e,{mimeType:n,maxSize:OA,targetBytes:KA,maxBytes:Ff,quality:LA,minQuality:ZA},r);return {width:o.width,height:o.height,...i.data.byteLength<=Ff?{thumbData:i.data}:{}}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o}){return {image:{url:e,width:n.width,height:n.height,...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},Uo={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:QA,targetBytes:WA,maxBytes:Uc,quality:HA,minQuality:JA},r);return {width:o.width,height:o.height,...o.data.byteLength<=Uc?{thumbData:o.data}:{},duration:o.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},i){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...i.caption!==void 0&&i.caption!==""?{describe:i.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t,sizeUnit:"bytes"}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},XA={contentType:"voice",uploadKind:"voice",encryptMode:"integral",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){return {voice:{url:e,durationMs:o.durationMs??0,...o.waveform!==void 0&&o.waveform.length>0?{waveform:o.waveform}:{},...n!==void 0?{size:n}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},zA={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r);return {width:o.width,height:o.height}},buildBody({url:e,meta:n,size:t}){return {sticker:{url:e,width:n.width,height:n.height,exprType:2,imageType:1,...t===void 0?{}:{size:t}}}}};function qA(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function jA(e,n){let t=n??"";return t.startsWith("image/")||["jpg","jpeg","png","gif","webp","bmp","heic","svg"].includes(e)?1:t.startsWith("video/")||["mp4","mov","m4v","3gp","avi","mkv","webm","flv"].includes(e)?2:t.startsWith("audio/")||["mp3","m4a","wav","aac","flac","ogg"].includes(e)?3:["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip","rar","7z","apk","json"].includes(e)?4:0}var xo={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",a=qA(i),s=jA(a,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...a!==""?{extension:a}:{},...s!==0?{fileType:s}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},Nc={...xo,contentType:"filesAlbum",buildBody(e,n){let t=xo.buildBody(e,n).file;return {filesAlbum:{...n.caption?.trim()?{caption:n.caption}:{},items:[{...t,extension:t.extension??"",fileType:t.fileType??0,...["zip","rar","torrent"].includes(t.extension??"")?{fileType:5}:{},...e.md5===void 0?{}:{md5:e.md5}}]}}}};function aa(e){switch(e){case "empty":return "media.empty";case "no-crypto":return "media.noCrypto";case "preview-failed":return "media.previewFailed";case "encrypt-failed":return "media.encryptFailed";case "upload-failed":case "offline":return "media.uploadFailed";case "cancelled":return "media.cancelled";case "paused":throw new Error("\u6682\u505C\u4E0D\u662F\u5931\u8D25\u72B6\u6001\uFF0C\u4E0D\u5E94\u751F\u6210\u5931\u8D25\u6587\u6848");case "invalid-duration":return "media.invalidDuration";case "content-too-large":return "media.contentTooLarge"}}function Pf(e,n){return e==="video"||n===void 0||n>PA?"large":"small"}function sa(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function ko(e){return e.kind==="album"?e.items.flatMap(n=>n.resume===void 0?[]:[{resume:n.resume,kind:n.uploadKind}]):e.resume===void 0?[]:[{resume:e.resume,kind:e.spec.uploadKind}]}function _c(e){if(e.kind==="album")return {code:dt,reason:"unknown",displayCode:aa(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file"||e.spec.contentType==="filesAlbum";return {code:dt,reason:"unknown",displayCode:n?"media.uploadInterrupted":aa(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function $A(e){return typeof e=="function"}function eh(e){return typeof Blob<"u"&&e instanceof Blob}function nh(e){let n=0,t=0,r=[];function o(s){return n<e.total&&(s!=="large"||t<e.largeFiles)}function i(s){n+=1,s==="large"&&(t+=1);let l=false;return ()=>{l||(l=true,n-=1,s==="large"&&(t-=1),a());}}function a(){let s=0;for(;s<r.length;){let l=r[s];if(l.signal.aborted){r.splice(s,1),l.signal.removeEventListener("abort",l.onAbort),l.reject(sa());continue}if(!o(l.tier)){s+=1;continue}r.splice(s,1),l.signal.removeEventListener("abort",l.onAbort),l.resolve(i(l.tier));}}return {acquire(s,l){return l.aborted?Promise.reject(sa()):new Promise((f,I)=>{let C={tier:s,signal:l,resolve:f,reject:I,onAbort:()=>{let k=r.indexOf(C);k>=0&&r.splice(k,1),I(sa());}};r.push(C),l.addEventListener("abort",C.onAbort,{once:true}),a();})}}}function Dc(e,n){if(!Number.isInteger(e)||e<1||e>wf)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${wf} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function th(e){if(e===void 0)return {total:xf,largeFiles:Bf};if(typeof e=="number")return Dc(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??xf;Dc(n,"total");let t=e.largeFiles??Math.min(Bf,n);if(Dc(t,"largeFiles"),t>n)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5927\u6587\u4EF6\u6863\u5E76\u53D1\u6570 ${t} \u4E0D\u80FD\u8D85\u8FC7\u603B\u5E76\u53D1\u6570 ${n}`);return {total:n,largeFiles:t}}function kc(e){let n=nh(th(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,a=false,s=new Map,l=new Map,f=new Set,I=new Map,C=new Map;function k(d,u){let g=I.get(d)??new Set;I.set(d,g),g.add(u),f.add(u),u.finally(()=>{g.delete(u),f.delete(u),g.size===0&&I.get(d)===g&&I.delete(d);});}function N(d){return [...I.get(d)??[]]}let R=new Map,U=new Set,_=new Map,E=new Map,T=new Map,A=new Map,b=true,F=0,L=0;function W(d){return {conversationType:d.conversationType,conversationId:d.conversationId}}function ie(d,u,g,h){e.mediaTransfer.abandonUpload(d).catch(S=>{e.onMediaTransferError?.({stage:"upload",kind:u,messageId:g,conversation:h,cause:S});});}function Te(d,u,g){let h=e.recoveryPort;if(h===void 0)return;let S=N(d),G=Promise.all(S).then(()=>h.remove(W(u),d)).catch(D=>{e.onMediaTransferError?.({stage:"upload",kind:g,messageId:d,conversation:W(u),cause:D});});k(d,G);}function re(d,u,g,h,S,G){if(!b)return;let D=W(u);_.set(d,{input:W(u),state:g,percent:h,phase:G}),e.emitter.emit({type:"media-task:updated",conversation:D,task:{id:`upload:${d}`,messageId:d,ref:D,direction:"upload",state:g,percent:Math.max(0,Math.min(100,Math.round(h))),attempt:i.get(d)?.attempt??1,maxAttempts:3,...E.get(d),...l.get(d),...G===void 0?{}:{phase:G},...S===void 0?{}:{failure:S}}});}function me(d,u){for(A.delete(d),A.set(d,u);A.size>FA;){let g=A.keys().next().value;if(g===void 0)break;let h=A.get(g);A.delete(g);let S=i.get(g);if(S!==void 0&&(S.stopped="cancelled",S.waiting?.abort()),i.delete(g),E.delete(g),l.delete(g),s.delete(g),_.delete(g),h===void 0)continue;for(let D of ko(h))ie(D.resume,D.kind,g,W(h.input));if(Te(g,h.input,h.kind==="media"?h.spec.uploadKind:"image"),!b)continue;let G=_c(h);e.domainState.upsertMessages([{...h.message,status:"failed",failure:G}],"live"),re(g,h.input,"failed",T.get(g)??0,G);}}async function pe(d,u,g,h,S,G,D=false){let j=F,O=()=>b&&j===F;if(!O())return G!==void 0&&g!==void 0&&ie(G,d.uploadKind,g,W(u)),{ok:false,reason:"cancelled"};let z=L,Re=S,de=G,Ve,Pe=Promise.resolve(void 0),$,v=new Set,Z=$A(u.data),Y=eh(u.data)?u.data:void 0,se=Z||Y!==void 0?void 0:u.data,Be=Z||Y!==void 0,He=d.streamUpload===true&&Y!==void 0,Zn=Ue=>{if(Y!==void 0)return Y;if(Ue===void 0)throw new Error("\u5A92\u4F53\u9884\u89C8\u7F3A\u5C11\u5185\u5BB9\uFF1A\u975E Blob \u8F93\u5165\u5FC5\u987B\u5148\u8BFB\u51FA\u5B57\u8282");return new Blob([Ue],u.mimeType===void 0?void 0:{type:u.mimeType})};if(se?.length===0||Y?.size===0)return {ok:false,reason:"empty"};let Ye=u.encrypted??true;if(Ye&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Rn=vc(u.localPreviewMetadata,d.contentType);if((d.contentType==="video"||d.contentType==="image")&&u.localPreviewMetadata!==void 0&&Rn===void 0)return {ok:false,reason:"preview-failed"};let Qn=g===void 0||h===void 0?e.outbox.allocateMessageIdentity({conversationId:u.conversationId,conversationType:u.conversationType}):{id:g,createdAt:h},{id:q,createdAt:bn}=Qn,Nn=e.getSelfId(),un=Rn??{width:0,height:0};if(!Be)try{un=ia(await d.buildPreview(Zn(se),u.mimeType,e.mediaPreview),Rn);}catch{}if(!O())return de!==void 0&&ie(de,d.uploadKind,q,W(u)),{ok:false,reason:"cancelled"};let Wn=Y?.size??se?.byteLength,_n={url:u.localPreviewUrl??"",...Wn===void 0?{}:{size:Wn}},mn={id:q,conversationId:u.conversationId,conversationType:u.conversationType,senderId:Nn,contentType:d.contentType,body:d.buildBody({..._n,meta:un},u),createdAt:bn,sortKey:_e(bn,q),status:"uploading",receipt:"unread",encryption:{encrypted:Ye},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}};e.domainState.upsertMessages([mn],"live",{newOutgoing:true});let Mt=D?0:T.get(q)??0;D&&E.delete(q),T.set(q,Mt),re(q,u,"queued",Mt,void 0,"waiting-upload-slot");let Vn=(Ue,Xe=false)=>{let tn={code:dt,reason:"unknown",displayCode:Ve==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":Ve==="resume-unavailable"?"media.resumeUnavailable":Ve==="timeout"?"media.uploadTimeout":aa(Ue),mediaKind:d.uploadKind,retryable:Xe};if(!O())return {ok:false,reason:Ue};let rn=i.get(q);return rn?.stopped==="paused"?(re(q,u,"paused",T.get(q)??0),{ok:false,reason:Ue}):rn!==void 0&&rn.stopped===void 0&&rn.attempt<3&&(rn.failure==="network"||rn.failure==="timeout"||rn.failure==="credentials-expired"||Ue==="offline"&&e.waitUntilOnline!==void 0)?(re(q,u,"queued",T.get(q)??0,void 0,"waiting-retry"),{ok:false,reason:Ue}):rn?.stopped==="cancelled"||rn!==void 0&&rn.attempt>=3&&(rn.failure==="network"||rn.failure==="timeout"||rn.failure==="credentials-expired")?{ok:false,reason:Ue}:(e.domainState.upsertMessages([{...mn,status:"failed",failure:tn}],"live"),re(q,u,Ue==="cancelled"?"canceled":"failed",T.get(q)??0,tn),{ok:false,reason:Ue})},Ie=async()=>{if(de!==void 0)try{await e.mediaTransfer.abandonUpload(de),de=void 0;}catch(Ue){throw Ve="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:Ue}),Ue}},De=async Ue=>{if(await Pe,await Promise.all([...v]),Ue==="cancelled"&&i.get(q)?.stopped!=="paused"&&Ve!=="cleanup-unconfirmed")try{await Ie();}catch{}return Ue==="cancelled"&&i.get(q)?.stopped!=="paused"&&e.recoveryPort!==void 0&&(await Promise.all([...v]),await e.recoveryPort.remove(W(u),q).catch(Xe=>e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:Xe}))),O()?(me(q,{kind:"media",spec:d,input:u,createdAt:bn,message:mn,failureReason:Ue,...Ve==="cleanup-unconfirmed"||Ve==="resume-unavailable"?{restartRequired:true}:{},...Re===void 0?{}:{teaKey:Re},...de===void 0?{}:{resume:de}}),Vn(Ue,true)):{ok:false,reason:"cancelled"}},ce=new AbortController;t.set(q,ce),r.set(q,W(u));let Ne=i.get(q)?.stopped;Ne!==void 0&&ce.abort(Ne),e.isOnline?.()===false&&Me(q,"offline");try{if(D&&(await Ie(),!O()))return {ok:!1,reason:"cancelled"};if(Y!==void 0&&!(d.contentType==="video"&&Rn?.thumbData!==void 0)){try{un=ia(await d.buildPreview(Y,u.mimeType,e.mediaPreview,ce.signal),Rn);}catch{}if(!O())return {ok:!1,reason:"cancelled"};mn={...mn,body:d.buildBody({url:u.localPreviewUrl??"",meta:un,size:Y.size},u)},e.domainState.upsertMessages([mn],"live");}let Ue=await n.acquire(Pf(d.contentType,Y?.size??se?.byteLength),ce.signal);try{re(q,u,"running",T.get(q)??0);let Xe;try{He||(Xe=Z?await u.data():Y!==void 0?new Uint8Array(await Y.arrayBuffer()):se);}catch{return Vn("upload-failed",!0)}let tn=He?Y.size:Xe.length;if(tn===0)return Vn("empty");if(Z&&!(d.contentType==="video"&&Rn?.thumbData!==void 0)){try{un=ia(await d.buildPreview(Zn(Xe),u.mimeType,e.mediaPreview,ce.signal),Rn);}catch{}if(!O())return {ok:!1,reason:"cancelled"};mn={...mn,body:d.buildBody({url:u.localPreviewUrl??"",meta:un,size:tn},u)},e.domainState.upsertMessages([mn],"live");}if(ce.signal.throwIfAborted(),(d.contentType==="video"||d.contentType==="file"||d.contentType==="filesAlbum")&&e.recoveryPort!==void 0&&e.shouldPersistUpload?.(d.uploadKind,tn)===!0){$=new AbortController,C.set(q,$);let $e=$.signal;l.set(q,{recovery:"session-only",recoveryReason:"fingerprint-pending"}),Pe=Promise.resolve().then(()=>e.recoveryPort.fingerprint(He?Y:Xe,$e)).catch(Le=>{!$e.aborted&&O()&&(l.set(q,{recovery:"session-only",recoveryReason:"unavailable"}),e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:Le}));}),He||await Pe;}if(ce.signal.aborted)throw sa();let rn=He?Y:Xe,nt,xt=kf;if(Ye&&e.crypto!==void 0&&d.encryptMode!=="none"){let $e=e.crypto;try{Re??=$e.randomTeaKey();let Le=Re;d.encryptMode==="simple"?(rn=He?new Blob([new Uint8Array($e.encryptFileSimple({teaKey:Le,plain:new Uint8Array(await Y.slice(0,32).arrayBuffer())})),Y.slice(32)]):$e.encryptFileSimple({teaKey:Le,plain:Xe}),xt=wA):He?(nt=Mn=>$e.encryptSymmetricChunked({teaKey:Le,plain:Mn,signal:ce.signal}),xt=Ec):(rn=$e.encryptSymmetric({teaKey:Le,plain:Xe}),xt=Ec);}catch{return Vn("encrypt-failed")}}let ir;try{e.isOnline?.()===!1&&Me(q,"offline"),await e.waitUntilOnline?.(ce.signal),ce.signal.throwIfAborted(),ir=(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:i.get(q)?.refreshCredentials===!0,data:rn,...nt===void 0?{}:{transformPart:nt},kind:d.uploadKind,conversationType:u.conversationType,signal:ce.signal,...de===void 0?{}:{resume:de},onFailure:Le=>{if(O()&&t.get(q)===ce){Ve=Le;let Mn=i.get(q);Mn!==void 0&&(Mn.failure=Le);}},onResumeInvalidated:()=>{O()&&t.get(q)===ce&&(de=void 0);},onResumable:Le=>{if(!(!O()||t.get(q)!==ce)&&(de=Le,i.get(q)?.stopped!=="cancelled"&&$!==void 0&&e.recoveryPort!==void 0&&(d.contentType==="video"||d.contentType==="file"||d.contentType==="filesAlbum"))){let Mn=s.get(q)??Date.now();s.set(q,Mn);let Dn=Pe.then(async on=>{on===void 0||$?.signal.aborted||!O()&&!a||t.get(q)!==ce||i.get(q)?.stopped==="cancelled"&&!a||(await e.recoveryPort.save({version:1,ref:W(u),messageId:q,kind:d.contentType==="video"?"video":"file",createdAt:bn,savedAt:Mn,source:{...on,...u.filename===void 0?{}:{filename:u.filename},...u.mimeType===void 0?{}:{mimeType:u.mimeType}},encrypted:Ye,...Re===void 0?{}:{teaKey:Re},resume:Le,...u.caption===void 0?{}:{caption:u.caption},...u.filesAlbum===void 0?{}:{filesAlbum:u.filesAlbum},...u.refMessageId===void 0?{}:{refMessageId:u.refMessageId},...d.contentType==="video"?{preview:un}:{}}),t.get(q)===ce&&!$?.signal.aborted&&l.set(q,{recovery:"available"}));}).catch(on=>{let ar=typeof on=="object"&&on!==null&&"reason"in on?String(on.reason):"storage";(t.get(q)===ce||A.has(q))&&l.set(q,{recovery:"session-only",recoveryReason:ar}),e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:on});});v.add(Dn),k(q,Dn),Dn.finally(()=>{v.delete(Dn);let on=_.get(q);b&&on!==void 0&&(on.state==="running"||on.state==="paused"||on.state==="queued")&&re(q,on.input,on.state,on.percent,void 0,on.phase);});}},...u.filename!==void 0?{filename:u.filename}:{},...u.mimeType!==void 0?{mimeType:u.mimeType}:{},onProgress:Le=>{if(!O()||ce.signal.aborted||t.get(q)!==ce)return;let Mn=Number.isFinite(Le.percent)?Math.max(0,Math.min(100,Math.round(Le.percent))):0,Dn=Math.max(T.get(q)??0,Mn);E.set(q,{bytesTransferred:Le.bytesTransferred,bytesTotal:Le.bytesTotal}),T.set(q,Dn),e.emitter.emit({type:"media:progress",conversation:W(u),messageId:q,percent:Dn}),!ce.signal.aborted&&t.get(q)===ce&&re(q,u,"running",Dn,void 0,Le.phase);}})).url;}catch($e){if((!ce.signal.aborted||!($e instanceof Error&&$e.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:$e}),!O())return {ok:!1,reason:"cancelled"};let Le=ce.signal.aborted?o.get(q)??"cancelled":"upload-failed";return await De(Le)}if(!O())return {ok:!1,reason:"cancelled"};if(ce.signal.aborted){let $e=o.get(q)??"cancelled";return await De($e)}if(z===L&&(d.contentType==="image"||d.contentType==="video")&&e.mediaAssetCache!==void 0){let $e=d.contentType,Le=Y??new Blob([Xe],u.mimeType===void 0?void 0:{type:u.mimeType}),Mn=Le.size;e.mediaAssetCache.put({kind:$e,messageId:q,resourceVersion:Go(ir),blob:Le,...u.mimeType===void 0?{}:{mimeType:u.mimeType}}).catch(Dn=>{e.onMediaAssetCacheError?.({operation:"put",kind:$e,messageId:q,byteLength:Mn,cause:Dn});});}let sr=d.contentType==="filesAlbum"?await e.mediaPreview.fileMd5?.(Zn(Xe),ce.signal):void 0;if(!O())return {ok:!1,reason:"cancelled"};if(ce.signal.throwIfAborted(),d.contentType==="filesAlbum"&&sr===void 0)throw new Error("FILES_ALBUM requires fileMd5");return await Pe,await Promise.all([...v]),O()?(ce.signal.throwIfAborted(),e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:q,conversationId:u.conversationId,conversationType:u.conversationType,contentType:d.contentType,body:d.buildBody({url:ir,meta:un,size:tn,...sr===void 0?{}:{md5:sr},...d.encryptMode==="none"?{}:{teaKey:Re,fileEncryptType:xt}},u),encryption:{encrypted:Ye},createdAt:bn,...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}}),await Promise.all([...v]),e.recoveryPort!==void 0&&await e.recoveryPort.remove(W(u),q).catch($e=>e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:$e})),re(q,u,"completed",100),{ok:!0,messageId:q}):{ok:!1,reason:"cancelled"}}finally{Ue();}}catch{if(!O())return {ok:false,reason:"cancelled"};let Ue=ce.signal.aborted?o.get(q)??"cancelled":"upload-failed";return await De(Ue)}finally{await Pe,await Promise.all([...v]),C.get(q)===$&&C.delete(q),!O()&&a&&await Promise.all([...v]),!O()&&de!==void 0&&!(a&&l.get(q)?.recovery==="available")&&ie(de,d.uploadKind,q,W(u)),t.get(q)===ce&&(t.delete(q),r.delete(q),A.has(q)||T.delete(q),o.delete(q));}}async function H(d){let{conversation:u,encryptWith:g,isCurrentAttempt:h,item:S,onBytesUploaded:G,onPreviewReady:D,onSlotAcquired:j,signal:O,state:z}=d,Re=S.kind==="video"?Uo:bc,de=vc(S.localPreviewMetadata,S.kind),Ve=de??{width:0,height:0};if(!(S.kind==="video"&&de?.thumbData!==void 0))try{Ve=ia(await Re.buildPreview(S.data,S.mimeType,e.mediaPreview,O),de);}catch{}Ve.thumbData===void 0&&z.preview?.thumbData!==void 0&&(Ve=z.preview),z.preview=Ve,D();let Pe=await n.acquire(Pf(S.kind,S.data.size),O);try{j();let $,v=kf;if(g!==void 0){z.teaKey??=g.randomTeaKey();let Y=z.teaKey;$=se=>g.encryptSymmetricChunked({teaKey:Y,plain:se,signal:O}),v=Ec;}return {url:(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:d.forceRefreshCredentials,data:S.data,...$===void 0?{}:{transformPart:$},kind:Re.uploadKind,conversationType:u.conversationType,signal:O,...z.resume===void 0?{}:{resume:z.resume},onFailure:Y=>{h()&&d.onFailure(Y);},onResumeInvalidated:()=>{h()&&delete z.resume;},onResumable:Y=>{!b||!h()||(z.resume=Y);},...S.filename!==void 0?{filename:S.filename}:{},...S.mimeType!==void 0?{mimeType:S.mimeType}:{},onProgress:Y=>{!b||O.aborted||!h()||G(Y.bytesTransferred);}})).url,meta:Ve,size:S.data.size,...z.teaKey===void 0?{}:{teaKey:z.teaKey},fileEncryptType:v}}finally{Pe();}}function J(d,u,g){let h=u.uploaded,S=h?.meta??u.preview??vc(d.localPreviewMetadata,d.kind)??{width:0,height:0};return {kind:d.kind,url:h?.url??d.localPreviewUrl??"",width:S.width,height:S.height,...d.kind==="video"&&S.duration!==void 0&&S.duration>0?{durationMs:Math.max(1,Math.round(S.duration*1e3))}:{},...S.thumbData===void 0?{}:{thumbData:S.thumbData},size:h?.size??d.data.size,...h?.teaKey===void 0?{}:{teaKey:h.teaKey},...h===void 0?{}:{fileEncryptType:h.fileEncryptType},...g===void 0?{}:{hd:g}}}async function K(d,u,g,h,S=false){let G=F,D=()=>b&&G===F,j=W(d),O=(Ie,De)=>{for(let ce of De)ce.resume!==void 0&&ie(ce.resume,ce.uploadKind,Ie,j);};if(!D())return u!==void 0&&h!==void 0&&O(u,h),{ok:false,reason:"cancelled"};if(d.items.length===0)return {ok:false,reason:"empty"};if(d.items.length>Ft)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${Ft} \u9879\uFF0C\u6536\u5230 ${d.items.length} \u9879`);let z=d.caption!==void 0&&d.caption.trim()!==""?d.caption:void 0;if(z!==void 0&&z.length>gt)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${gt} \u5B57\u7B26\uFF0C\u6536\u5230 ${z.length}`);if(d.items.some(Ie=>Ie.data.size===0))return {ok:false,reason:"empty"};if(h===void 0&&va(d)!=="mediaAlbum"){let Ie=d.items[0];return pe(Ie.kind==="video"?Uo:bc,{conversationId:d.conversationId,conversationType:d.conversationType,data:Ie.data,...Ie.mimeType!==void 0?{mimeType:Ie.mimeType}:{},...Ie.filename!==void 0?{filename:Ie.filename}:{},...Ie.localPreviewUrl!==void 0?{localPreviewUrl:Ie.localPreviewUrl}:{},...Ie.localPreviewMetadata!==void 0?{localPreviewMetadata:Ie.localPreviewMetadata}:{},...d.encrypted!==void 0?{encrypted:d.encrypted}:{},...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}},u,g)}let Re=d.encrypted??true;if(Re&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let de=Re?e.crypto:void 0,Ve=L,Pe=u===void 0||g===void 0?e.outbox.allocateMessageIdentity(j):{id:u,createdAt:g},{id:$,createdAt:v}=Pe,Z=d.items.map((Ie,De)=>{let ce=h?.[De];return {uploadKind:Ie.kind,...ce?.uploaded===void 0?{}:{uploaded:ce.uploaded},...ce?.preview===void 0?{}:{preview:ce.preview},...ce?.teaKey===void 0?{}:{teaKey:ce.teaKey},...ce?.resume===void 0?{}:{resume:ce.resume}}}),Y=()=>({...z===void 0?{}:{caption:z},items:d.items.map((Ie,De)=>J(Ie,Z[De],d.hd))}),se={id:$,conversationId:d.conversationId,conversationType:d.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:Y()},createdAt:v,sortKey:_e(v,$),status:"uploading",receipt:"unread",encryption:{encrypted:Re},...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}};e.domainState.upsertMessages([se],"live",{newOutgoing:true});let Be=S?0:T.get($)??0;S&&E.delete($),T.set($,Be),re($,d,"queued",Be,void 0,"waiting-upload-slot");let He,Zn=(Ie,De)=>{let ce={code:dt,reason:"unknown",displayCode:He==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":He==="resume-unavailable"?"media.resumeUnavailable":He==="timeout"?"media.uploadTimeout":aa(Ie),retryable:De};if(!D())return {ok:false,reason:Ie};let Ne=i.get($);return Ne?.stopped==="paused"?(re($,d,"paused",T.get($)??0),{ok:false,reason:Ie}):Ne!==void 0&&Ne.stopped===void 0&&Ne.attempt<3&&(Ne.failure==="network"||Ne.failure==="timeout"||Ne.failure==="credentials-expired"||Ie==="offline"&&e.waitUntilOnline!==void 0)?(re($,d,"queued",T.get($)??0,void 0,"waiting-retry"),{ok:false,reason:Ie}):Ne?.stopped==="cancelled"||Ne!==void 0&&Ne.attempt>=3&&(Ne.failure==="network"||Ne.failure==="timeout"||Ne.failure==="credentials-expired")?{ok:false,reason:Ie}:(e.domainState.upsertMessages([{...se,status:"failed",failure:ce}],"live"),re($,d,Ie==="cancelled"?"canceled":"failed",T.get($)??0,ce),{ok:false,reason:Ie})},Ye=new AbortController;t.set($,Ye),r.set($,j);let Rn=i.get($)?.stopped;Rn!==void 0&&Ye.abort(Rn),e.isOnline?.()===false&&Me($,"offline");let Qn=()=>D()&&t.get($)===Ye,q=()=>{!D()||!Qn()||(se={...se,body:{mediaAlbum:Y()}},e.domainState.upsertMessages([se],"live"));},bn=d.items.reduce((Ie,De)=>Ie+De.data.size,0),Nn=Z.map((Ie,De)=>Ie.uploaded!==void 0?d.items[De].data.size:Ie.resume?.bytesUploaded??0),un=false,Wn=()=>{if(!D()||!Qn()||Ye.signal.aborted)return;let Ie=Nn.reduce((ce,Ne)=>ce+Ne,0),De=Math.min(99,Math.max(T.get($)??0,Math.floor(Ie/bn*100)));E.set($,{bytesTransferred:Ie,bytesTotal:bn}),T.set($,De),e.emitter.emit({type:"media:progress",conversation:j,messageId:$,percent:De}),!Ye.signal.aborted&&Qn()&&re($,d,"running",De,void 0,"transferring");},_n,mn=(Ie,De)=>{_n===void 0&&(_n=Ye.signal.aborted?o.get($)??"cancelled":"upload-failed",_n==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:Ie,messageId:$,conversation:j,cause:De}),Ye.abort("offline"));},Mt=async()=>{let Ie=true;return await Promise.all(Z.map(async De=>{if(De.resume!==void 0)try{await e.mediaTransfer.abandonUpload(De.resume),delete De.resume;}catch(ce){Ie=false,He="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:De.uploadKind,messageId:$,conversation:j,cause:ce});}})),Ie},Vn=Ie=>(me($,{kind:"album",input:d,createdAt:v,message:se,failureReason:Ie,items:Z,...He==="cleanup-unconfirmed"||He==="resume-unavailable"?{restartRequired:true}:{}}),Zn(Ie,true));try{if(S){let ce=await Mt();if(!D())return {ok:!1,reason:"cancelled"};if(!ce)return Vn(o.get($)==="cancelled"?"cancelled":"upload-failed");for(let Ne=0;Ne<Z.length;Ne+=1)Z[Ne].uploaded===void 0&&(Nn[Ne]=0);}if(await Promise.all(d.items.map(async(ce,Ne)=>{let Ue=Z[Ne];if(Ue.uploaded===void 0)try{e.isOnline?.()===!1&&Me($,"offline"),await e.waitUntilOnline?.(Ye.signal),Ye.signal.throwIfAborted();let Xe=await H({item:ce,state:Ue,conversation:j,encryptWith:de,signal:Ye.signal,isCurrentAttempt:Qn,onPreviewReady:q,onSlotAcquired:()=>{un||!D()||!Qn()||(un=!0,re($,d,"running",T.get($)??0));},forceRefreshCredentials:i.get($)?.refreshCredentials===!0,onFailure:tn=>{let rn=tn==="cleanup-unconfirmed"||tn==="resume-unavailable";if(Ye.signal.aborted&&!rn)return;(tn==="cleanup-unconfirmed"||He!=="cleanup-unconfirmed"&&(tn==="resume-unavailable"||He!=="resume-unavailable"))&&(He=tn);let nt=i.get($);nt!==void 0&&(nt.failure=He);},onBytesUploaded:tn=>{Nn[Ne]=Math.max(Nn[Ne]??0,tn),Wn();}});Ue.uploaded=Xe,Nn[Ne]=ce.data.size,Wn();}catch(Xe){mn(ce.kind,Xe);}})),!D())return {ok:!1,reason:"cancelled"};if(!Qn())return {ok:!1,reason:"cancelled"};if(o.get($)==="cancelled")return He!=="cleanup-unconfirmed"&&await Mt(),D()?Vn("cancelled"):{ok:!1,reason:"cancelled"};if(_n!==void 0)return Vn(_n);if(Ye.signal.aborted){let ce=o.get($)??"cancelled";return Vn(ce)}let Ie=Y(),De;try{De=Lo(lr(Ie).content);}catch(ce){return e.onMediaAlbumContentSize?.({messageId:$,conversation:j,itemCount:Ie.items.length,outcome:"rejected",cause:ce}),Zn("content-too-large",!1)}if(De>=ba&&e.onMediaAlbumContentSize?.({messageId:$,conversation:j,itemCount:Ie.items.length,contentBytes:De,outcome:"warn"}),Ve===L&&e.mediaAssetCache!==void 0){let ce=e.mediaAssetCache;d.items.forEach((Ne,Ue)=>{let Xe=Z[Ue].uploaded;Xe!==void 0&&ce.put({kind:Ne.kind,messageId:$,resourceVersion:Go(Xe.url),blob:Ne.data,...Ne.mimeType===void 0?{}:{mimeType:Ne.mimeType}}).catch(tn=>{e.onMediaAssetCacheError?.({operation:"put",kind:Ne.kind,messageId:$,byteLength:Ne.data.size,cause:tn});});});}return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:$,conversationId:d.conversationId,conversationType:d.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:Ie},encryption:{encrypted:Re},createdAt:v,...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}}),re($,d,"completed",100),{ok:!0,messageId:$}}finally{D()||O($,Z),t.get($)===Ye&&(t.delete($),r.delete($),A.has($)||T.delete($),o.delete($));}}function he(d,u,g,h=1){let{id:S,createdAt:G}=g??e.outbox.allocateMessageIdentity(W(d)),D={attempt:h};i.set(S,D);let j,O,z=new Promise((Re,de)=>{j=Re,O=de;});return D.done=z,(async()=>{let Re=await u(S,G);for(;i.get(S)===D&&D.stopped===void 0&&D.attempt<3;){let Pe=A.get(S);if(!b||Re.ok||Pe===void 0||Pe.restartRequired||!(D.failure==="network"||D.failure==="timeout"||D.failure==="credentials-expired"||!Re.ok&&Re.reason==="offline"&&e.waitUntilOnline!==void 0))break;let $=new AbortController;if(D.waiting=$,await e.waitUntilOnline?.($.signal).catch(()=>{}),await new Promise(v=>{let Z=setTimeout(Y,D.attempt===1?1e3:3e3);function Y(){clearTimeout(Z),$.signal.removeEventListener("abort",Y),v();}$.signal.addEventListener("abort",Y,{once:true}),$.signal.aborted&&Y();}),await e.waitUntilOnline?.($.signal).catch(()=>{}),delete D.waiting,!b||D.stopped!==void 0||i.get(S)!==D)break;D.attempt+=1,D.refreshCredentials=D.failure==="credentials-expired",delete D.failure,A.delete(S),Re=await fe(S,Pe,false);}let de=A.get(S),Ve=D.attempt>=3&&(D.failure==="network"||D.failure==="timeout"||D.failure==="credentials-expired");if(b&&i.get(S)===D&&de!==void 0&&(D.stopped==="cancelled"||Ve)){D.stopped="cancelled";let Pe={..._c(de),displayCode:D.failure==="timeout"?"media.uploadTimeout":"media.cancelled",retryable:false};await V(S,de),b&&i.get(S)===D&&(e.domainState.upsertMessages([{...de.message,status:"failed",failure:Pe}],"live"),re(S,de.input,"canceled",T.get(S)??0,Pe)),Re={ok:false,reason:"cancelled"};}return D.stopped==="paused"?{ok:false,reason:"paused"}:Re})().then(Re=>{D.settled=true,j(Re);},Re=>{D.settled=true,O(Re);}),z.then(()=>{i.get(S)===D&&D.stopped!=="paused"&&(i.delete(S),A.has(S)||(T.delete(S),E.delete(S),l.delete(S),s.delete(S),_.delete(S)));},()=>{i.get(S)===D&&i.delete(S);}),z}function fe(d,u,g){return u.kind==="album"?K(u.input,d,u.createdAt,u.items,g):pe(u.spec,u.input,d,u.createdAt,u.teaKey,u.resume,g)}function Me(d,u){let g=i.get(d);if(!b||g===void 0||g.stopped==="cancelled")return;if(g.stopped==="paused"){u==="pagehide"&&g.pauseReason==="offline"&&(g.pauseReason="pagehide");return}g.stopped="paused",g.pauseReason=u;let h=t.get(d);g.waiting?.abort(),h?.abort("paused");let S=_.get(d);S!==void 0&&i.get(d)===g&&g.stopped==="paused"&&re(d,S.input,"paused",T.get(d)??S.percent);}async function ue(d,u="manual"){let g=i.get(d);if(!b||g===void 0||g.stopped==="cancelled")return false;if(g.stopped==="paused")return u==="pagehide"&&g.pauseReason==="offline"&&(g.pauseReason="pagehide"),await g.done,b&&i.get(d)===g&&A.has(d);Me(d,u),await g.done,await Promise.all(N(d));let h=A.get(d);return !b||i.get(d)!==g||g.stopped!=="paused"||h===void 0?false:(re(d,h.input,"paused",T.get(d)??0),true)}function ve(d){let u=i.get(d),g=A.get(d);if(!b||u?.stopped!=="paused"||u.settled!==true||g===void 0||t.has(d))return false;A.delete(d);let h=F;return he(g.input,()=>fe(d,g,false),{id:d,createdAt:g.createdAt},u.attempt).catch(S=>{b&&h===F&&e.onMediaTransferError?.({stage:"upload",kind:g.kind==="media"?g.spec.uploadKind:"image",messageId:d,conversation:W(g.input),cause:S});}),true}async function V(d,u){A.delete(d),l.delete(d),s.delete(d),E.delete(d),U.add(d);try{await Promise.all(N(d)),await e.recoveryPort?.remove(W(u.input),d).catch(g=>{e.onMediaTransferError?.({stage:"upload",kind:u.kind==="media"?u.spec.uploadKind:"image",messageId:d,conversation:W(u.input),cause:g});}),await Promise.all(ko(u).map(async g=>{try{await e.mediaTransfer.abandonUpload(g.resume);}catch(h){e.onMediaTransferError?.({stage:"upload",kind:g.kind,messageId:d,conversation:W(u.input),cause:h});}}));}catch(g){e.onMediaTransferError?.({stage:"upload",kind:u.kind==="media"?u.spec.uploadKind:"image",messageId:d,conversation:W(u.input),cause:g});}finally{U.delete(d),l.delete(d),s.delete(d),E.delete(d);}}function P(d,u){if(e.recoveryPort===void 0)return;let g=N(d),h=e.domainState.getConversationMessage?.(u,d)?.contentType==="video"?"video":"file",S=Promise.all(g).then(()=>e.recoveryPort.remove(u,d)).catch(G=>{e.onMediaTransferError?.({stage:"upload",kind:h,messageId:d,conversation:u,cause:G});});k(d,S);}function y(d){if(!b)return false;let u=i.get(d),g=t.get(d);if(C.get(d)?.abort(),u!==void 0&&(u.stopped="cancelled",u.waiting?.abort()),g!==void 0){let D=r.get(d);return D!==void 0&&P(d,D),o.set(d,"cancelled"),g.abort("cancelled"),true}let h=A.get(d);if(h===void 0||u===void 0)return u!==void 0&&_.get(d)?.state==="queued";let S=V(d,h);k(d,S);let G={..._c(h),displayCode:"media.cancelled",retryable:false};return e.domainState.upsertMessages([{...h.message,status:"failed",failure:G}],"live"),re(d,h.input,"canceled",T.get(d)??0,G),i.delete(d),T.delete(d),_.delete(d),true}return {sendImage:d=>he(d,(u,g)=>pe(bc,d,u,g)),sendVideo:d=>he(d,(u,g)=>pe(Uo,d,u,g)),replaceVideo:(d,u,g)=>(s.delete(d),he(g,()=>pe(Uo,g,d,u,void 0,void 0,true),{id:d,createdAt:u})),sendVoice:d=>{let u=d.durationMs;return u===void 0||!Number.isFinite(u)||u<VA?Promise.resolve({ok:false,reason:"invalid-duration"}):he(d,(g,h)=>pe(XA,d,g,h))},sendFile:d=>d.caption!==void 0&&d.caption.length>gt?Promise.resolve({ok:false,reason:"content-too-large"}):he(d,(u,g)=>pe(d.filesAlbum||d.caption?.trim()?Nc:xo,d,u,g)),sendGif:d=>he(d,(u,g)=>pe(zA,{...d,encrypted:false},u,g)),sendMediaAlbum:d=>he(d,(u,g)=>K(d,u,g)),replaceFile:(d,u,g)=>g.caption!==void 0&&g.caption.length>gt?Promise.resolve({ok:false,reason:"content-too-large"}):(s.delete(d),he(g,()=>pe(g.filesAlbum||g.caption?.trim()?Nc:xo,g,d,u,void 0,void 0,true),{id:d,createdAt:u})),cancel:y,pause:ue,async pauseAll(d="pagehide"){for(let{controller:u}of R.values())u.abort();await Promise.all([...i.keys()].map(u=>ue(u,d)));},async resumePaused(d,u){await Promise.all([...i.entries()].map(async([g,h])=>{if(u?.aborted||h.stopped!=="paused"||h.pauseReason==="manual"||d===void 0&&h.pauseReason!=="offline")return;let S=_.get(g)?.input;if(d!==void 0&&(S?.conversationType!==d.conversationType||S.conversationId!==d.conversationId))return;await h.done;let G=A.get(g);u?.aborted||i.get(g)!==h||G===void 0||d===void 0&&h.pauseReason!=="offline"||d!==void 0&&(G.input.conversationType!==d.conversationType||G.input.conversationId!==d.conversationId)||ve(g);}));},resume:ve,cancelConversation(d,u="offline"){for(let g of R.values())g.ref.conversationType===d.conversationType&&g.ref.conversationId===d.conversationId&&g.controller.abort();for(let[g,h]of A)if(h.input.conversationType===d.conversationType&&h.input.conversationId===d.conversationId){if(i.has(g))y(g);else {for(let S of ko(h))ie(S.resume,S.kind,g,W(h.input));e.recoveryPort?.remove(W(h.input),g).catch(S=>e.onMediaTransferError?.({stage:"upload",kind:h.kind==="media"?h.spec.uploadKind:"image",messageId:g,conversation:d,cause:S}));}A.delete(g);}if(b)for(let[g,h]of r){if(h.conversationType!==d.conversationType||h.conversationId!==d.conversationId)continue;let S=t.get(g);if(S===void 0)continue;let G=i.get(g);G!==void 0&&(G.stopped="cancelled"),o.set(g,u),C.get(g)?.abort(),S.abort(u);}},cancelAll(d="offline"){if(b){if(d==="offline"){let u=F;for(let g of i.keys()){let h=_.get(g)?.input;ue(g,"offline").catch(S=>{b&&u===F&&h!==void 0&&e.onMediaTransferError?.({stage:"upload",kind:e.domainState.getConversationMessage?.(h,g)?.contentType==="video"?"video":"file",messageId:g,conversation:h,cause:S});});}return}if(d==="session-ended"){for(let{controller:u}of R.values())u.abort();for(let u of i.values())u.stopped="cancelled",u.waiting?.abort();F+=1,L+=1;}for(let u of C.values())u.abort(d);for(let u of t.values())u.abort(d);}},retry(d,u){if(U.has(d)||!b)return false;let g=A.get(d);if(g===void 0||g.restartRequired&&u?.restartUpload!==true)return false;let h=u?.restartUpload===true||g.failureReason==="cancelled";return A.delete(d),re(d,g.input,"queued",0),he(g.input,()=>fe(d,g,h),{id:d,createdAt:g.createdAt}),true},invalidateAssetCacheWrites(){L+=1;},async dispose(d){if(!b)return;a=d?.preserveRecovery===true;for(let{controller:g}of R.values())g.abort();let u=[...i.values()].flatMap(g=>g.done===void 0?[]:[g.done]);for(let g of i.values())g.stopped="cancelled",g.waiting?.abort();if(b=false,L+=1,!a)for(let g of C.values())g.abort();for(let g of t.values())g.abort(a?"page-preserve":"cancelled");for(let[g,h]of A)if(!(a&&l.get(g)?.recovery==="available"))for(let S of ko(h))ie(S.resume,S.kind,g,W(h.input));A.clear(),await Promise.allSettled(u),await Promise.all([...f]),t.clear(),T.clear(),o.clear();for(let[g,h]of A)if(!(a&&l.get(g)?.recovery==="available"))for(let S of ko(h))ie(S.resume,S.kind,g,W(h.input));A.clear(),i.clear(),E.clear(),l.clear(),s.clear(),_.clear(),await e.recoveryPort?.drain();},async recoverUpload(d,u,g){let h=e.recoveryPort;if(!b||h===void 0)throw new Error("IM_MEDIA_RECOVERY_UNAVAILABLE");if(i.has(u)||R.has(u))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let S=new AbortController;R.set(u,{controller:S,ref:d});let G=()=>{if(!b||S.signal.aborted||R.get(u)?.controller!==S)throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE")},D=(O,z)=>{if(O===void 0||O.senderId!==e.getSelfId()||O.recalled!==void 0||O.deletedForEveryone!==void 0||O.failure?.displayCode==="media.cancelled"||O.failure?.displayCode==="media.uploadTimeout"&&O.failure.retryable===false||O.status!=="failed"&&O.status!=="uploading")return false;let Re=O.contentType==="video",de=O.contentType==="file"||O.contentType==="filesAlbum"&&O.body.filesAlbum?.items.length===1;return (Re||de)&&(z===void 0||O.contentType===z)},j;try{j=await h.acquireLease(S.signal),G();let O=e.domainState.getConversationMessage?.(d,u);if(!D(O))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let z=await h.get(d,u);if(G(),z===void 0)throw new Error("IM_MEDIA_RECOVERY_NOT_FOUND");let Re=z.kind==="video"?"video":z.filesAlbum||z.caption?.trim()?"filesAlbum":"file";if(!D(O,Re))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let de=await h.fingerprint(g,S.signal);if(G(),de.size!==z.source.size||de.sha256!==z.source.sha256)throw new Error("IM_MEDIA_RECOVERY_FILE_MISMATCH");let Ve=e.domainState.getConversationMessage?.(d,u);if(i.has(u)||!D(Ve,Re))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Pe={conversationId:d.conversationId,conversationType:d.conversationType,data:g,encrypted:z.encrypted,filename:z.source.filename,mimeType:z.source.mimeType,caption:z.caption,filesAlbum:z.filesAlbum,refMessageId:z.refMessageId,...z.preview===void 0?{}:{localPreviewMetadata:{width:z.preview.width,height:z.preview.height,duration:z.preview.duration,posterData:z.preview.thumbData}}};return s.set(u,z.savedAt),await he(Pe,()=>pe(z.kind==="video"?Uo:z.filesAlbum||z.caption?.trim()?Nc:xo,Pe,u,z.createdAt,z.teaKey,z.resume),{id:u,createdAt:z.createdAt})}finally{R.get(u)?.controller===S&&R.delete(u),j?.release();}}}}function Vf(e,n){if(!Pt(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function rh(e){return e.id.trim()!==""&&e.conversation.conversationId.trim()!==""&&e.parentMessageId.trim()!==""&&e.senderId.trim()!==""&&(e.action===0||e.action===1)&&Number.isSafeInteger(e.createdAt)&&e.createdAt>=0}function oh(e,n){return Wt.encode(Wt.create({emoji:e,action:n}))}function ih(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(I,C){let k=BigInt(e.getSelfId()),N=BigInt(I.conversation.conversationId),R=oh(I.emoji,I.action),U=be(I.id),_=cn(I.parentMessageId);switch(I.conversation.conversationType){case "direct":{let E=C===4651?mi:gi,T=E.create({sToId:N,sFromId:k,sMsgId:U,msgType:1,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:C??4650,body:E.encode(T)})}case "group":{let E=Br.create({sGrpId:N,sToId:N,sFromId:k,sMsgId:U,msgType:5,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:8978,body:Br.encode(E)})}case "channel":{let E=Lr.create({sRadioId:N,sFromId:k,sMsgId:U,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:12817,body:Lr.encode(E)})}}}function a(I,C,k){clearTimeout(I.timer),n.delete(I.event.id),e.domainState.rollbackReaction(I.event.conversation,I.event.parentMessageId,I.event.id),I.resolve({ok:false,reason:C,...k===void 0?{}:{errcode:k}});}function s(I){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let C=e.domainState.getConversationMessage(I.conversation,I.parentMessageId);if(C===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!fc(C))return Promise.resolve({ok:false,reason:"unsupported-message"});if(I.action===0&&I.conversation.conversationType==="channel"){let N=e.domainState.getConversationContext(I.conversation),R=pc({channelState:N?.type==="channel"?N.channelState??"unknown_restricted":"unknown_restricted",snapshot:N?.type==="channel"?N.channelAccessSnapshot:void 0,permissions:N?.type==="channel"?N.channelPermissions:void 0,nowMs:t()});if(R.channelState!=="active"||!R.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!Co(I.emoji)||So(I.emoji)||e.isEmojiSupported?.(I.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let k=Object.freeze({id:Tn(),conversation:Object.freeze({...I.conversation}),parentMessageId:I.parentMessageId,senderId:e.getSelfId(),emoji:I.emoji,action:I.action,createdAt:t()});return e.domainState.applyReaction(k,"live"),new Promise(N=>{let R=setTimeout(()=>{let U=n.get(k.id);U!==void 0&&a(U,"timeout");},r);n.set(k.id,{event:k,resolve:N,timer:R});try{e.sendFrame(i(k));}catch(U){e.logger?.("reaction-send-frame-failed",{eventId:k.id,cause:U});let _=n.get(k.id);_!==void 0&&a(_,"failed");}})}function l(I){let k=e.domainState.getConversationMessage(I.conversation,I.parentMessageId)?.reactions?.currentUserEmoji===I.emoji?1:0;return s({...I,action:k})}function f(I){let C=n.get(I.eventId);if(C!==void 0){if(I.errcode!==32768&&I.errcode!==0){a(C,"failed",I.errcode);return}if(clearTimeout(C.timer),n.delete(C.event.id),C.event.conversation.conversationType==="direct")try{e.sendFrame(i(C.event,4651));}catch(k){e.logger?.("reaction-opposite-end-send-failed",{eventId:C.event.id,cause:k});}C.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(C.event.emoji).catch(k=>e.logger?.("reaction-report-failed",{emoji:C.event.emoji,cause:k})),C.resolve({ok:true,event:C.event});}}return {set:s,toggle:l,onAck:f,ingest:(I,C="live")=>!rh(I)||!Co(I.emoji)||So(I.emoji)||e.isEmojiSupported?.(I.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:I.id,parentMessageId:I.parentMessageId,emoji:I.emoji}),"ignored"):e.domainState.applyReaction(I,C),dispose(){o=true;for(let I of [...n.values()])a(I,"disconnected");}}}function sh(e){return [{command:4652,handler:(n,t)=>{let r=fi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=ho(pi.decode(t),e.getSelfId());e.manager.ingest(r,"live"),e.logger?.("direct-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:8979,handler:(n,t)=>{let r=Bi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Ro(wi.decode(t));e.manager.ingest(r,"live"),e.logger?.("group-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:12818,handler:(n,t)=>{let r=Qi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Vd(Wi.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function ah(e){return [{command:12806,handler:(n,t)=>{let r=es.decode(t);try{e.logger?.("channel-sync-read-ack",{errcode:r.errcode});}catch{}r.errcode!==32768&&e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08cmdId=${n}, errcode=${r.errcode}\uFF09`}});}},{command:12807,handler:(n,t)=>{let r=ns.decode(t),o=r.sUserId.toString();if(r.sUserId<=0n||o!==e.getSelfId())throw new Error(`CHANNEL 0x3207 \u7528\u6237\u4E0D\u5339\u914D\uFF08received=${o}\uFF09`);if(r.radioId<=0n)throw new Error("CHANNEL 0x3207 \u9891\u9053 id \u7F3A\u5931\u6216\u975E\u6CD5");let i=r.lastReadIndex.trim();if(i==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:i});}}]}function dh(e){let n=new Map,t=new Map,r=new Map,o=0;function i(T,A){let b={conversationType:"channel",conversationId:T},F=e.domainState.getConversationContext(b);if(F===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${T}\uFF09`);if(F.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${F.type}\uFF08channelId=${T}\uFF09`);if(A.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${T}\uFF09`);let L=e.domainState.getConversationMessage(b,A),W=e.domainState.getLoadedMessagesByConversation(b).find(re=>re.extensions?.historyCursor===A),Te=(L===void 0?void 0:Bo(L))??(W===void 0?void 0:Bo(W));if(Te===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${T}, cursor=${A}\uFF09`);return Te}function a(T){let A={conversationType:"channel",conversationId:T},b=e.domainState.getReadState(A);if(b?.readCursor!==void 0&&b.readCursor!==""){let F=e.domainState.getLoadedMessagesByConversation(A).find(L=>L.extensions?.historyCursor===b.readCursor);if(F!==void 0){let L=Bo(F);if(L!==void 0)return L}}return b?.readCursorSortKey===void 0?void 0:{sortKey:b.readCursorSortKey}}function s(T,A){return Of(T,A)}function l(T,A){let b=r.get(T),F=b===void 0?a(T):b.committed;return F!==void 0&&s(F,A)>=0}function f(T,A){let b=r.get(T);if(b!==void 0){if(s(b.optimistic,A)>=0)return;e.domainState.applyChannelReadOptimistically(b.transaction,A.messageId,A.cursor),b.optimistic=A;return}let F=a(T),L=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:T});e.domainState.applyChannelReadOptimistically(L,A.messageId,A.cursor),r.set(T,{transaction:L,committed:F,optimistic:A});}function I(T,A){let b=n.get(T);(b===void 0||s(A,b)>0)&&n.set(T,A);}function C(T,A){if(e.syncRead!==void 0)try{let b=Jr.encode(Jr.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(T),lastReadIndex:A}));e.syncRead.sendFrame(X({command:12805,body:b}));}catch(b){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${T}\uFF09`,cause:b}});}}function k(T,A){try{e.onReadCommitted?.({channelId:T,readCursor:A});}catch(b){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u6821\u51C6\u672A\u542F\u52A8\uFF08channelId=${T}\uFF09`,cause:b}});}}async function N(T,A){let b;try{for(;;){if(A!==o)return;let F=n.get(T);if(F===void 0)return;if(n.delete(T),l(T,F))continue;try{await e.updateReadIndex({channelId:T,readCursor:F.cursor});}catch(ie){if(A!==o)return;let Te=r.get(T);throw Te!==void 0&&(e.domainState.rollbackChannelReadTransaction(Te.transaction),r.delete(T)),I(T,F),ie}if(A!==o)return;if(l(T,F))continue;let L=r.get(T);L!==void 0&&e.domainState.commitChannelReadTransaction(L.transaction,F.cursor)||e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T},F.messageId,F.cursor),L!==void 0&&(L.committed=F,s(L.optimistic,F)===0&&r.delete(T)),e.logger?.("channel-read-index",{channelId:T,cursor:F.cursor}),C(T,F.cursor),b=F.cursor;}}finally{if(A===o){b!==void 0&&k(T,b);try{e.onReadSettled?.({channelId:T});}catch(F){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u7B49\u5F85\u672A\u89E3\u9664\uFF08channelId=${T}\uFF09`,cause:F}});}}}}function R(T,A){let b=Promise.resolve().then(()=>N(T,A)).then(()=>{if(t.get(T)===b&&(t.delete(T),A===o&&n.has(T)))return R(T,A)},F=>{throw t.get(T)===b&&t.delete(T),F});return t.set(T,b),b}function U(T){let A;try{A=i(T.conversationId,T.readCursor);}catch(F){return Promise.reject(F)}if(l(T.conversationId,A))return Promise.resolve();f(T.conversationId,A),I(T.conversationId,A);let b=t.get(T.conversationId);return b!==void 0?b:R(T.conversationId,o)}function _(T){let A=i(T.conversationId,T.readCursor);l(T.conversationId,A)||(e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T.conversationId},A.messageId,A.cursor),r.delete(T.conversationId),k(T.conversationId,A.cursor));}function E(){o+=1;for(let T of r.values())e.domainState.rollbackChannelReadTransaction(T.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:U,applyRemoteRead:_,reset:E}}function ch(e){return e===void 0?void 0:Bo(e)?.cursor}function Bo(e){let n=e.extensions?.historyCursor;if(typeof n!="string"||n.trim()==="")return;let t=e.extensions?.channelSequence,r=typeof t=="string"&&/^\d+$/.test(t)?BigInt(t):void 0;return {cursor:n,messageId:e.id,sortKey:e.sortKey,...r===void 0?{}:{sequence:r}}}function lh(e){let n;for(let t of e){let r=Bo(t);r!==void 0&&(n===void 0||Of(r,n)>0)&&(n=r);}return n?.cursor}function Of(e,n){return e.sequence!==void 0&&n.sequence!==void 0?e.sequence<n.sequence?-1:e.sequence>n.sequence?1:0:e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var da=50;function Kf(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function uh(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:kn(e.id)}function gh(e,n,t,r){let o=Kf(e,n,r);if(o===void 0)return;let i=Kf(e,n,t),a=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(s=>uh(s)&&s.senderId!==a&&s.sortKey<=o&&(i===void 0||s.sortKey>i)).map(s=>s.id)}function xc(e){let n=new Set,t=new Map,r=new Map;function o(a){let s=r.get(a);if(s===void 0||s.size===0||!e.isAuthenticated())return;for(let f of s)kn(f)||s.delete(f);if(s.size===0){r.delete(a);return}let l=[...s];for(let f=0;f<l.length;f+=da){let I=l.slice(f,f+da);try{let C=_t.encode(_t.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:I.map(be)}));e.sendFrame(X({command:4117,body:C}));for(let k of I)s.delete(k);}catch(C){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:C}});break}}s.size===0&&r.delete(a);}function i(a){let s=e.domainState.getReadState({conversationType:"direct",conversationId:a})?.readCursor??"";if(s===""||!e.isAuthenticated())return;let l=gh(e,a,t.get(a),s);if(l===void 0)return;if(l.length===0){t.set(a,s);return}let f,I=true;for(let C=0;C<l.length;C+=da){let k=l.slice(C,C+da),N=k.map(be);try{let R=_t.encode(_t.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:N}));e.sendFrame(X({command:4117,body:R})),f=k.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:a,count:N.length,offset:C});}catch(R){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:R}}),I=false;break}}I?t.set(a,s):f!==void 0&&t.set(a,f);}return {report(a){n.add(a),i(a);},reportConsumedMedia(a,s){let l=e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},s);if(l===void 0||l.senderId===e.getSelfId()||l.contentType!=="voice"&&l.contentType!=="video")return;n.add(a);let f=r.get(a);f===void 0&&(f=new Set,r.set(a,f)),f.add(s),o(a);},onAck({errcode:a}){e.logger?.("direct-sync-read-ack",{errcode:a}),a!==32768&&a!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${a}\uFF09`,code:4118}});},onDeliver({userId:a,peerId:s,msgIdList:l}){if(a!==e.getSelfId())return;let I=l.map(C=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},ye(C))).filter(C=>C!==void 0).sort((C,k)=>C.sortKey<k.sortKey?-1:C.sortKey>k.sortKey?1:0).at(-1);I!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:s},I.id);},onAuthenticated(){for(let a of n)i(a),o(a);},reset(){}}}function mh(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:kn(e.id)}var Bc=50;function fh(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function a(l,f){let{syncRead:I}=e;if(I===void 0||!i())return;let C=I.getSelfId(),k=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:l}),N=k.find(b=>b.id===f);if(N===void 0)return;let R=o.get(l),U=R===void 0?void 0:k.find(b=>b.id===R)?.sortKey,_=k.filter(b=>mh(b)&&b.senderId!==C&&b.sortKey<=N.sortKey&&(U===void 0||b.sortKey>U));if(_.length===0){o.set(l,f);return}let E=_.map(b=>be(b.id)),T,A=true;for(let b=0;b<E.length;b+=Bc){let F=E.slice(b,b+Bc);try{let L=wr.encode(wr.create({sUserId:BigInt(C),msgIdList:F,groupId:BigInt(l)}));I.sendFrame(X({command:8967,body:L})),T=_[Math.min(b+Bc,_.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:l,count:F.length,offset:b});}catch(L){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:L}}),A=false;break}}A?o.set(l,f):T!==void 0&&o.set(l,T);}async function s(l){if(!(t.has(l)||!i())){t.add(l);try{for(;i();){let f=n.get(l);if(f===void 0)return;if(n.delete(l),r.get(l)!==f){a(l,f);try{await e.markGroupReadAll(l),r.set(l,f);}catch(I){if(!i()){n.has(l)||n.set(l,f);return}n.get(l)===f&&n.delete(l),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:I}});return}}}}finally{t.delete(l),i()&&n.has(l)&&s(l);}}}return {conversationType:"group",markRead({conversationId:l,readCursor:f}){e.domainState.applyServerUnread({conversationType:"group",conversationId:l},0,f),e.logger?.("grp-read-all",{groupId:l}),n.set(l,f),s(l);},onAuthenticated(){for(let l of n.keys())s(l);}}}function ph(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u5DF2\u8BFB\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r),onAuthenticated:()=>{for(let r of n.values())r.onAuthenticated?.();}}}function yh(e){return {conversationType:"robot",markRead:({conversationId:n,readCursor:t})=>{e.domainState.advanceRead({conversationType:"robot",conversationId:n},t);}}}function Lf(e){let n=Nr.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:4107,body:Nr.encode(n)})}function Zf(e){let n=Dr.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:8197,body:Dr.encode(n)})}function Qf(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function Wf(e){let n=Qr.create(Qf(e));return X({command:12297,body:Qr.encode(n)})}function Hf(e){let n=Zr.create(Qf(e));return X({command:12293,body:Zr.encode(n)})}var Ih=15e3;function wc(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let a=t.get(o);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),t.delete(o),a.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let a;try{a=be(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let s=t.get(a);if(s!==void 0)return s.promise;let l,f=new Promise(C=>{l=C;}),I={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:l,promise:f};return t.set(a,I),e.resolveProfile(i.conversationId).then(C=>{if(t.get(a)===I){if(C===null||C.role!=="admin"&&C.role!=="owner"){r(a,{ok:false,reason:"forbidden"});return}I.timer=setTimeout(()=>r(a,{ok:false,reason:"timeout"}),Ih),e.sendFrame(Hf({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>{t.get(a)===I&&r(a,{ok:false,reason:"failed"});}),f},onDeleteAck({sMsgId:o,errcode:i}){let a=t.get(o);if(a!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:a.channelId,conversationType:"channel"},a.messageId,{by:e.getSelfId(),at:a.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(a.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var or=300*1e3;function Jf(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u64A4\u56DE\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Yf(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>or)return "expired"}function Xf(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:or,prepare(e,n,t){let r=Yf(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Lf({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function zf(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:or,prepare(e,n,t){let r=Yf(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Zf({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Ch(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:or,async prepare(n,t,r){if(n.conversationId!==t.conversationId||t.conversationType!=="channel")return {ok:false,reason:"not-found"};if(t.senderId!==r.selfId)return {ok:false,reason:"not-own"};let o=t.serverTime??t.createdAt;if(r.now-o>or)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:Wf({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function Fc(){return Jf([Xf(),zf()])}var qf=15e3;function Pc(e){let n=e.now??(()=>Date.now()),t=e.strategies??Fc(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {recall(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(a.recalled!==void 0)return Promise.resolve({ok:true});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let s=t.resolve(i.conversationType);if(s===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let l=e.getSelfId();if(s.ownMessageOnly===true&&a.senderId!==l)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let f=n();if(s.recallWindowMs!==void 0&&f-(a.serverTime??a.createdAt)>s.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let I=be(i.messageId),C=r.get(I);if(C!==void 0)return C.promise;let k=s.prepare(i,a,{selfId:l,now:f});function N(E){if(!E.ok)return Promise.resolve(E);let T,A=new Promise(F=>{T=F;}),b=setTimeout(()=>o(I,{ok:false,reason:"timeout"}),qf);return r.set(I,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:E.recalledAt,resolve:T,timer:b,promise:A}),e.sendFrame(E.frame),A}if(!(k instanceof Promise))return N(k);let R,U=new Promise(E=>{R=E;}),_={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:f,resolve:R,promise:U};return r.set(I,_),k.then(E=>{if(r.get(I)===_){if(!E.ok){o(I,E);return}_.cancelTime=E.recalledAt,_.timer=setTimeout(()=>o(I,{ok:false,reason:"timeout"}),qf),e.sendFrame(E.frame);}}).catch(()=>{r.get(I)===_&&o(I,{ok:false,reason:"failed"});}),U},onRecallAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s===void 0)return;if(a===32768||a===0){e.domainState.recallMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{by:e.getSelfId(),at:s.cancelTime}),o(i,{ok:true});return}let l=a===33284?"server-expired":"failed";o(i,s.conversationType==="channel"?{ok:false,reason:l,errcode:a}:{ok:false,reason:l});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Vc(e){function n(r){let o=Ri.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Ld(o,e.getSelfId())],"live");let i=_r.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(X({command:4109,body:_r.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let a=(o?Yi:qi).decode(r);if(a.sFromId<=0n||a.sRadioId<=0n||a.sMsgId.trim()==="")return;let s=o?Ji:zi,l=o?12295:12299,f=s.create({sFromId:a.sFromId,sRadioId:a.sRadioId,sMsgId:a.sMsgId,sIndex:a.sIndex});e.sendFrame(X({command:l,body:s.encode(f)})),e.domainState.upsertMessages([o?Qd(a):Zd(a)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:a.sMsgId,sFromId:a.sFromId.toString(),sRadioId:a.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=hi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=Mi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=Xi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=Hi.decode(o);e.onChannelMessageDeletionAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function Oc(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function Sh(e){let n=e.getSelfId().trim();if(!/^[1-9]\d*$/.test(n))throw new Error("channel application: \u5F53\u524D\u8D26\u53F7 id \u7F3A\u5931\u6216\u975E\u6CD5");return BigInt(n).toString()}function Ah(e){let n=Oc(e.sFromId,"applicant"),t=Oc(e.sToId,"recipient"),r=Oc(e.sRadioId,"channel"),o=e.sMsgId.trim();if(o==="")throw new Error("channel application: message id \u7F3A\u5931");return {messageId:o,applicantId:n,recipientId:t,channelId:r,messageTime:e.msgTime.toString(),extend:e.extend,selfIntroduction:e.sSelfIntroduce,description:e.sDesc}}function hh(e){function n(t){let r=ji.decode(t),o=Sh(e),i=Ah(r),a=Wr.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(X({command:12547,body:Wr.encode(a)}));}catch(s){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:s}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function Rh(e){if(e.sFromId<0n)throw new Error("channel notify: sender id \u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.sId.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931")}function Mh(e){function n(i){let a=Hr.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(X({command:12803,body:Hr.encode(a)}));}function t(i,a,s,l="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${l}\uFF08channelId=${a.sRadioId.toString()}, messageId=${a.sMsgId}\uFF09`,cause:s}});}function r(i){if(i.encrypt===0)return Se.decode(i.sContent);if(i.encrypt===1){if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 Web \u79C1\u94A5\u89E3\u5BC6\u4F9D\u8D56");let l=e.decrypt.resolveUserPrivateKey?.()??null;if(l===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let f=Oe.decode(i.sContent);if(f.secretKey.length===0||f.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return Se.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:f.secretKey,cipherData:f.cipherData,privateKey:l}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let a=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(a===null||a.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let s=Oe.decode(i.sContent);if(s.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return Se.decode(e.decrypt.crypto.decryptSymmetric({teaKey:a,cipherData:s.cipherData}))}function o(i,a){let s=$i.decode(a);Rh(s);try{n(s);}catch(f){t("transport",s,f,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let l;try{l=r(s);}catch(f){t(s.encrypt===0?"protocol":"crypto",s,f);let I=qn(s,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:s.encrypt!==0});e.domainState.upsertMessages([I],"live"),(s.encrypt===1||s.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:I.conversationId},messageId:I.id,wireEncrypt:s.encrypt,sContent:s.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let f=Io({channelId:s.sRadioId,messageId:s.sMsgId,occurredAt:s.msgTime,notifyType:l.type,operatorId:l.oprUserId,targetUserIds:l.mnpledUserId,content:l.content,historyCursor:s.sId,sequence:s.nIncrId,encrypted:s.encrypt!==0,extend:s.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([f],"live"),e.logger?.("channel-notify-deliver",{channelId:s.sRadioId.toString(),messageId:s.sMsgId,notifyType:l.type});}catch(f){t("protocol",s,f);}}return [{command:12804,handler:(i,a)=>o(i,a)}]}function Eh(e){let t=new Map([[34049,"channelDismissed"],[34050,"channelMuted"],[34051,"channelNotMember"],[34052,"channelAdminRequired"]]).get(e);return t===void 0?void 0:{code:e,reason:"rejected",displayCode:t,retryable:false}}function Th(e){switch(e){case 34049:return {state:"dismissed",reason:"channel_dismissed"};case 34050:return {state:"muted",reason:"channel_muted"};case 34051:return {state:"unknown_restricted",reason:"channel_not_member"};default:return}}function jf(e,n=true){if(e.sFromId<=0n&&e.botId.trim()==="")throw new Error("channel deliver: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel deliver: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel deliver: message id \u7F3A\u5931");if(n&&e.sId.trim()==="")throw new Error("channel deliver: history cursor \u7F3A\u5931")}function vh(e){function n(l){let f=Li.decode(l),I={...f.sIndex===""?{}:{historyCursor:f.sIndex},...f.nIncrId===0n?{}:{channelSequence:f.nIncrId.toString()}},C=Eh(f.errcode);e.outbox.onChatAck({id:ye(f.sMsgId),serverTime:Number(f.msgTime),errcode:f.errcode,...Object.keys(I).length===0?{}:{extensions:I},...C===void 0?{}:{failure:C}});let k=Th(f.errcode);k!==void 0&&f.sRadioId>0n&&e.domainState.setChannelRestriction(f.sRadioId.toString(),k.state,k.reason),e.logger?.("channel-chat-ack",{messageId:f.sMsgId,channelId:f.sRadioId.toString(),errcode:f.errcode});}function t(l){let f=Kr.create({sFromId:l.sFromId,sRadioId:l.sRadioId,sMsgId:l.sMsgId,sIndex:l.sId});e.sendFrame(X({command:12291,body:Kr.encode(f)}));}function r(l,f,I){let C=l.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:f,messageId:l.sMsgId,channelId:C,encrypt:l.encrypt,payloadByteLength:l.sContent.length,...I}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${I.reason}, channelId=${C}\uFF09`,...I.cause===void 0?{}:{cause:I.cause}}});}function o(l,f){let I;if(l.encrypt===0)try{I=Se.decode(l.sContent);}catch(C){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${l.sRadioId.toString()}\uFF09`,cause:C}});return}else if(l.encrypt===1&&e.decrypt!==void 0){let C=e.decrypt.resolveUserPrivateKey?.()??null;if(C===null){r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let k;try{if(k=Oe.decode(l.sContent),k.secretKey.length===0||k.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:R});return}let N;try{N=e.decrypt.crypto.decryptEndToEnd({secretKey:k.secretKey,cipherData:k.cipherData,privateKey:C});}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:k.cipherData.length,cause:R});return}try{I=Se.decode(N);}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:k.cipherData.length,decryptedByteLength:N.length,cause:R});return}}else if(l.encrypt===2&&e.decrypt!==void 0){let C=e.decrypt.resolveChannelKey(l.sRadioId.toString());if(C===null||C.length!==16){r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:C?.length??0,keySource:C===null?"miss":"cache"});return}let k;try{let R=Oe.decode(l.sContent);if(R.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");k=R.cipherData;}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:C.length,keySource:"cache",cause:R});return}let N;try{N=e.decrypt.crypto.decryptSymmetric({teaKey:C,cipherData:k});}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:k.length,cause:R});return}try{I=Se.decode(N);}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:k.length,decryptedByteLength:N.length,cause:R});return}}else {r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return I}function i(l,f){let I=qn(l,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:f,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([I],"live"),(l.encrypt===1||l.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:I.conversationId},messageId:I.id,wireEncrypt:l.encrypt,sContent:l.sContent.slice(),cmdId:f,source:"live",createdAt:Date.now()});}function a(l,f){let I=Zi.decode(f);jf(I),t(I);let C=o(I,"live-deliver");if(C===void 0){i(I,l);return}let k=Mo({channelId:I.sRadioId,senderId:I.sFromId,msgTime:I.msgTime,encrypt:I.encrypt},C);if(k!==null){e.domainState.upsertMessages([k],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:I.sMsgId,targetMessageId:k.id,channelId:I.sRadioId.toString(),operation:k.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:l});return}let N=qn(I,C,{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw});e.domainState.upsertMessages([N],"live"),e.logger?.("channel-chat-deliver",{messageId:I.sMsgId,channelId:I.sRadioId.toString(),encrypt:I.encrypt,command:l});}function s(l,f){let I=it.decode(f);if(jf(I,false),I.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(I.isEdit===""||I.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(I.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let C=ye(I.oldMsgId),k=o(I,"live-edit");if(k===void 0){let R={conversationType:"channel",conversationId:I.sRadioId.toString()};if(e.domainState.getConversationMessage(R,C)===void 0){let U=qn(I,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...U,id:C}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:R,messageId:C,wireEncrypt:2,sContent:I.sContent.slice(),cmdId:l,source:"live",createdAt:Date.now()});return}let N=qn(I,k,{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw,edited:true});if(N.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:N.conversationId},C,N.body,N.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:N.conversationId},C)===void 0&&e.domainState.upsertMessages([{...N,id:C,edited:true,extensions:{...N.extensions,editOperationMessageId:N.id,previousMessageId:C}}],"live");}return [{command:12290,handler:(l,f)=>n(f)},{command:12292,handler:(l,f)=>a(l,f)},{command:12816,handler:(l,f)=>a(l,f)},{command:12808,handler:(l,f)=>s(l,f)}]}function Kc(){let e=new Map;return {register(n,t){if(e.has(n))throw new Error(`\u6536\u5305\u547D\u4EE4\u5904\u7406\u5668\u91CD\u590D\u6CE8\u518C\uFF1AcmdId=${n}`);e.set(n,t);},resolve:n=>e.get(n)}}function bh(e){if(e.extend.trim()==="")return false;try{let n=JSON.parse(e.extend);if(n===null||typeof n!="object")return !1;let t=n.friend_info;if(t===null||typeof t!="object")return !1;let r=t.user_id;return (typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&String(r).trim()===e.sFromId.toString()}catch{return false}}function Nh(e){return [{command:4360,handler:(n,t)=>{let r=Ai.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application answer: \u5904\u7406\u4EBA\u3001\u7533\u8BF7\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(X({command:4359,body:br.encode(br.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),a=r.errcode===32768||r.errcode===33300||bh(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";a==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:s}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:a}});}}]}function _h(e){return [{command:4356,handler:(n,t)=>{let r=Si.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application: \u7533\u8BF7\u4EBA\u3001\u63A5\u6536\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(X({command:4355,body:vr.encode(vr.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=Number(r.msgTime);if(!Number.isSafeInteger(i)||i<=0)throw new Error("contact application: \u6D88\u606F\u65F6\u95F4\u975E\u6CD5");e.emitter.emit({type:"contact-application:received",notification:{applicantId:r.sFromId.toString(),recipientId:o,messageId:r.sMsgId,createdAt:i}});}}]}function Lc(e){function n(N){let R=yt.create({sFromId:N.sFromId,sToId:N.sToId,sMsgId:N.sMsgId,msgTime:N.msgTime});e.sendFrame(X({command:4099,body:yt.encode(R)}));}function t(N){let R=zd(ai.decode(N));e.logger?.("chat-ack",{id:R.id,errcode:R.errcode,serverTime:R.serverTime}),e.outbox.onChatAck(R);}function r(N,R,U){let _=zt(N,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:R,keepRaw:e.keepRaw,decryptFailed:true,edited:U});e.domainState.upsertMessages([_],"live"),N.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:_.conversationId},messageId:_.id,wireEncrypt:1,sContent:N.sContent.slice(),...N.encryptVersion===""?{}:{encryptVersion:N.encryptVersion},cmdId:R,source:"live",createdAt:Date.now()});}function o(N,R,U=false){let _=di.decode(R),E;if(_.encrypt===0)E=Se.decode(_.sContent);else if(_.encrypt===1&&e.decrypt!==void 0){let A=e.decrypt.resolvePrivateKey({msgType:_.msgType,encrypt:_.encrypt,encryptVersion:_.encryptVersion});if(A===null){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:N,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,N,U);return}try{let b=Oe.decode(_.sContent);if(b.secretKey.length===0||b.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${b.secretKey.length}B cipherData=${b.cipherData.length}B`);let F=e.decrypt.crypto.decryptEndToEnd({secretKey:b.secretKey,cipherData:b.cipherData,privateKey:A});E=Se.decode(F);}catch(b){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:N,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"decrypt-failed",cause:b}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${_.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:b}}),r(_,N,U);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,N,U);return}let T=zt(_,E,{selfId:e.getSelfId(),cmdId:N,keepRaw:e.keepRaw,edited:U});e.domainState.upsertMessages([T],"live"),n(_),e.logger?.("chat-deliver",{sMsgId:_.sMsgId,sFromId:String(_.sFromId),sToId:String(_.sToId),encrypt:_.encrypt});}function i(N){let R=Gr.create({sUserId:N.sToId,sMsgId:N.sMsgId});e.sendFrame(X({command:4101,body:Gr.encode(R)})),e.logger?.("delivered-notif-ack",{sUserId:String(R.sUserId),sMsgId:R.sMsgId});}function a(N,R){let U=Ni.decode(R);if(e.logger?.("delivered-notif",{sMsgId:U.sMsgId,sFromId:String(U.sFromId),sToId:String(U.sToId)}),U.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}i(U),e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function s(N){let R=kr.create({sUserId:N.sToId,sMsgId:N.sMsgId});e.sendFrame(X({command:4105,body:kr.encode(R)})),e.logger?.("read-deliver-ack",{sUserId:String(R.sUserId),sMsgId:R.sMsgId});}function l(N,R){let U=e.getSelfId(),_=[];for(let E of R){let T=e.domainState.getConversationMessage({conversationType:"direct",conversationId:N},ye(E.sMsgId));T!==void 0&&T.senderId===U&&T.receipt!=="read"&&_.push({...T,receipt:"read"});}_.length>0&&e.domainState.upsertMessages(_,"live");}function f(N,R){let U=Di.decode(R);if(e.logger?.("read-deliver",{sMsgId:U.sMsgId,sFromId:String(U.sFromId),sToId:String(U.sToId),readResults:U.readResults.length,readReceiptOff:U.readReceiptOff}),U.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_READ_DELIVER(4106) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}if(s(U),U.readReceiptOff!==1){let _=e.getSelfId(),E=U.sFromId.toString(),T=U.sToId.toString();l(E===_?T:E,U.readResults);}e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_READ_DELIVER"});}function I(N){let R=_i.decode(N);e.logger?.("read-report-ack",{notifyId:R.sMsgId,sUserId:String(R.sUserId),errcode:R.errcode}),e.onReadAck?.({notifyId:R.sMsgId,errcode:R.errcode});}function C(N){let R=Gi.decode(N);e.logger?.("direct-sync-read-ack",{errcode:R.errcode}),e.onSyncReadAck?.({errcode:R.errcode});}function k(N,R){let U=Ui.decode(R),_=U.sUserId.toString(),E=U.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:_,peerId:E,msgIds:U.msgIdList.length}),e.onSyncReadDeliver?.({userId:_,peerId:E,msgIdList:U.msgIdList}),e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(N,R)=>t(R)},{command:4100,handler:(N,R)=>o(N,R)},{command:4644,handler:(N,R)=>o(N,R,true)},{command:4102,handler:(N,R)=>a(N,R)},{command:4106,handler:(N,R)=>f(N,R)},{command:4104,handler:(N,R)=>I(R)},{command:4118,handler:(N,R)=>C(R)},{command:4119,handler:(N,R)=>k(N,R)}]}function Dh(e){function n(t){let r=yi.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Er.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(X({command:4632,body:Er.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),a=r.friendNotifyType===0,s=r.friendNotifyType===1&&r.blackStatus===2;(a||s)&&(e.onRelationshipChanged?.(i,a?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(l=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:l}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:i}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function Gh(e){function n(i,a){let s=Zt.decode(a),l=e.getSelfId(),f=To(s,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([f],"live");let I=Fr.create({sUserId:BigInt(l),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8707,body:Fr.encode(I)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:s.sGrpId.toString(),sMsgId:s.sMsgId,notifyType:s.notifyType});}function t(i,a){let s=Vi.decode(a),l=Pr.create({sUserId:BigInt(e.getSelfId()),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8451,body:Pr.encode(l)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:s.sGrpId.toString(),sMsgId:s.sMsgId});}function r(i){let a=Oi.decode(i),s=Vr.create({sFromId:BigInt(e.getSelfId()),sToId:a.sFromId,sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(X({command:8963,body:Vr.encode(s)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:a.sMsgId});}function o(i){let a=Ki.decode(i),s=Or.create({sUserId:BigInt(e.getSelfId()),sMsgId:a.sMsgId});e.sendFrame(X({command:8965,body:Or.encode(s)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:a.sMsgId});}return [{command:8708,handler:(i,a)=>n(i,a)},{command:8452,handler:(i,a)=>t(i,a)},{command:8964,handler:(i,a)=>r(a)},{command:8966,handler:(i,a)=>o(a)}]}function Uh(e){let n=new Map;function t(R){let U=ki.decode(R),_={id:ye(U.sMsgId),serverTime:Number(U.sendtime),errcode:U.errcode};e.logger?.("grp-chat-ack",{id:_.id,errcode:_.errcode,serverTime:_.serverTime}),e.outbox.onChatAck(_);}function r(R){let U=xr.create({sFromId:BigInt(e.getSelfId()),sGrpId:R.sGrpId,sMsgId:R.sMsgId});e.sendFrame(X({command:8195,body:xr.encode(U)}));}function o(){return e.isActive?.()??true}function i(R,U,_,E,T=false){let A=R.sGrpId.toString(),b=It(R,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:U,keepRaw:e.keepRaw,decryptFailed:true,edited:T});e.domainState.upsertMessages([b],"live"),R.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:A},messageId:b.id,wireEncrypt:1,sContent:R.sContent.slice(),...R.encryptVersion===""?{}:{encryptVersion:R.encryptVersion},cmdId:U,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:R.sMsgId,groupId:A,fromId:String(R.sFromId),msgType:R.msgType,cmdId:U,encrypt:R.encrypt,encryptVersion:R.encryptVersion,reason:_,...E===void 0?{}:{cause:E}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:_==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${R.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u7FA4\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`:`\u5B9E\u65F6\u7FA4\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${R.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...E===void 0?{}:{cause:E}}});}function a(R,U,_,E){let T=It(R,_,{selfId:e.getSelfId(),cmdId:U,keepRaw:e.keepRaw,edited:E});e.domainState.upsertMessages([T],"live"),r(R),e.logger?.("grp-chat-deliver",{sMsgId:R.sMsgId,sGrpId:String(R.sGrpId),sFromId:String(R.sFromId),encrypt:R.encrypt});}function s(R,U){let _=Oe.decode(R.sContent);if(_.secretKey.length===0||_.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${_.secretKey.length}B cipherData=${_.cipherData.length}B`);let E=e.decrypt.crypto.decryptEndToEnd({secretKey:_.secretKey,cipherData:_.cipherData,privateKey:U});return Se.decode(E)}async function l(R,U,_){if(!o())return;if(R.encrypt===0){try{a(R,U,Se.decode(R.sContent),_);}catch(F){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u660E\u6587\u6295\u9012\u89E3\u6790\u6216\u63D0\u4EA4\u5931\u8D25",cause:F}});}return}if(R.encrypt!==1||e.decrypt===void 0){i(R,U,"no-key",void 0,_);return}let T={groupId:R.sGrpId.toString(),msgType:R.msgType,encrypt:R.encrypt,encryptVersion:R.encryptVersion},A;try{A=e.decrypt.resolvePrivateKey(T),A===null&&e.decrypt.preparePrivateKey!==void 0&&(A=await e.decrypt.preparePrivateKey(T));}catch(F){o()&&i(R,U,"no-key",F,_);return}if(!o())return;if(A===null){i(R,U,"no-key",void 0,_);return}let b;try{b=s(R,A);}catch(F){i(R,U,"decrypt-failed",F,_);return}if(o())try{a(R,U,b,_);}catch(F){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:F}});}}function f(R,U,_){let E=R.sGrpId.toString(),A=(n.get(E)??Promise.resolve()).then(()=>l(R,U,_));n.set(E,A),A.finally(()=>{n.get(E)===A&&n.delete(E);});}function I(R,U,_=false){let E=xi.decode(U),T=E.sGrpId.toString();if(n.has(T)){f(E,R,_);return}if(E.encrypt===0){a(E,R,Se.decode(E.sContent),_);return}if(E.encrypt!==1||e.decrypt===void 0){i(E,R,"no-key",void 0,_);return}let A={groupId:T,msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion},b=e.decrypt.resolvePrivateKey(A);if(b===null){if(e.decrypt.preparePrivateKey!==void 0){f(E,R,_);return}i(E,R,"no-key",void 0,_);return}let F;try{F=s(E,b);}catch(L){i(E,R,"decrypt-failed",L,_);return}a(E,R,F,_);}function C(R){let U=Fi.decode(R);e.logger?.("grp-sync-read-ack",{errcode:U.errcode});}function k(R,U){for(let _=U.length-1;_>=0;_-=1){let E=U[_];if(E===void 0||E==="")continue;let T=ye(E),A=e.domainState.getConversationMessage({conversationType:"group",conversationId:R},T);if(A!==void 0&&A.conversationId===R)return T}}function N(R,U){let _=Pi.decode(U),E=_.groupId.toString();if(_.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:E,sUserId:String(_.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:E,sUserId:String(_.sUserId),msgIds:_.msgIdList.length});let T=k(E,_.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:E},0,T),e.emitter.emit({type:"notification",cmdId:R,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(R,U)=>t(U)},{command:8196,handler:(R,U)=>I(R,U)},{command:8976,handler:(R,U)=>I(R,U,true)},{command:8968,handler:(R,U)=>C(U)},{command:8969,handler:(R,U)=>N(R,U)}]}function kh(e){function n(o){let i=jd(ci.decode(o));e.logger?.("robot-ack",{id:i.id,errcode:i.errcode}),e.outbox.onChatAck(i);}function t(o,i){let a=li.decode(i),s=qd(a,{selfId:e.getSelfId(),cmdId:o,keepRaw:e.keepRaw});e.domainState.upsertMessages([s],"live");let l=yt.create({sFromId:BigInt(a.robotId),sToId:a.userId,sMsgId:a.sMsgId,msgTime:a.msgTime});e.sendFrame(X({command:4099,body:yt.encode(l)}));}function r(o){let i=ui.decode(o);if(i.robotId.trim()==="")throw new Error("robot delete: robotId \u7F3A\u5931");e.domainState.removeConversation({conversationType:"robot",conversationId:i.robotId}),e.emitter.emit({type:"notification",cmdId:24579,name:"BOT_MSG_ROBOT_DELETE_SEND"});}return [{command:4648,handler:(o,i)=>n(i)},{command:4649,handler:(o,i)=>t(o,i)},{command:24579,handler:(o,i)=>r(i)}]}function xh(e){function n(t){let r=Ii.decode(t);if(r.userId<=0n)throw new Error("session favorite notify: user id \u7F3A\u5931\u6216\u975E\u6CD5");e.getSelfId()===r.userId.toString()&&e.emitter.emit({type:"session-favorites:changed"});}return [{command:4633,handler:(t,r)=>n(r)}]}function Bh(e){function n(t){let r=Ci.decode(t),o=()=>e.sendFrame(X({command:4628,body:Tr.encode(Tr.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=Rd.decode(r.sContent),a=i.serialNumber.trim();if(a==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let s=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(a,3,Number.isFinite(s)&&s>0?s:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(l=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u6301\u4E45\u5316\u94B1\u5305\u8F6C\u8D26\u72B6\u6001\u5931\u8D25\uFF0C\u672A\u53D1\u9001 ACK",cause:l}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function wh(e){return e.sticker!==void 0&&e.text===void 0&&e.system===void 0&&e.image===void 0&&e.video===void 0&&e.voice===void 0&&e.file===void 0&&e.contact===void 0&&e.miniProgram===void 0&&e.robot===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function Fh(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&wh(n.body)&&n.encryption.encrypted===false,o=fr({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Nm(o);let{crypto:i}=t,{resolveChannelKey:a}=e;return (async()=>{if(i===void 0||a===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let s=await a(n.conversationId);if(s===null||s.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return _m(o,i,s)})()}}}function $f(e,n){return bo({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Zc(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=$f(t,r);if(o.encrypt!==1)return Um(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return xm(o,i,s)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=$f(t,r);if(o.encrypt!==1)return km(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Bm(o,i,s)})()}}}function Ph(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=po({id:n.id,conversationId:n.conversationId,body:n.body,encryption:n.encryption,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId});if(r.encrypt!==1)return Km(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let a=await i(n.conversationId);if(a===null||a.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Lm(r,o,a.publicKey,a.version)})()}}}function ep(e){let n=Mr.encode(Mr.create({userId:e.userId,robotId:e.robotId,content:e.content,msgTime:e.msgTime,sMsgId:e.sMsgId}));return X({command:4647,body:n})}function Vh(){return {conversationType:"robot",buildOutgoingFrame(e,n){return ep($d({id:e.id,conversationId:e.conversationId,body:e.body,createdAt:e.createdAt,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId}))}}}function np(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u53D1\u9001\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function wo(){return np([Zc()])}function tp(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!qo(n.transfer))throw new Error("sendTransfer: \u8F6C\u8D26\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"transfer",body:{transfer:n.transfer},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function kt(e){return typeof e=="string"?e:e==null?"":String(e)}function ca(e){let n=typeof e=="number"?e:Number(kt(e).trim());return Number.isFinite(n)?n:0}function rp(e){if(typeof e!="string")return "";let n=e.trim();return n.startsWith("data:image/")?n:n.includes("://")||n.length<32?"":`data:image/jpeg;base64,${n}`}function Oh(...e){for(let n of e){let t=kt(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function la(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function Kh(e){return e.url!==""||la(e)!==""}function op(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=ca(r.mediaType??r.media_type),i=kt(r.kind).trim(),a={kind:o===2||i==="video"?"video":"image",width:ca(r.width),height:ca(r.height),url:kt(r.url).trim(),thumbUrl:kt(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:rp(r.thumbData??r.thumb_data),durationMs:ca(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return Kh(a)?[a]:[]}):[]}function Lh(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||kt(e.body.caption).trim()}function ip(e){return la({url:Oh(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:kt(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:rp(e.thumbData??e.thumb_data??e.thumbBase64)})}function Zh(e,n){if(e==="mediaAlbum"){let t=op(n)[0];return t===void 0?"":la(t)}return e==="image"||e==="video"?ip(n):""}var Qh=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,Wh=/^[a-z0-9][a-z0-9._-]{0,63}$/,Hh=new Set(["durable","rebuildable","ephemeral"]);function ap(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!Qh.test(e))throw new Error("cache.prefix \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 3-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26\uFF0C\u4E14\u9996\u5C3E\u4E3A\u5B57\u6BCD\u6216\u6570\u5B57");return e}function sp(e,n){if(!Wh.test(e))throw new Error(`cache namespace ${n} \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 1-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26`)}function Jh(e){let n=ap(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,i,a){if(!Hh.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return sp(i,"domain"),sp(a,"resource"),o==="durable"&&i==="storage"&&a==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${a}`}}}}}function Yh(e){return e===32768||e===0}function Xh(e,n){if(Yh(e))return {type:"success"};switch(e){case 33025:return {type:"auth-invalid",issue:{code:e,reason:"token_expired"}};case 33040:return {type:"auth-invalid",issue:{code:e,reason:"kicked",...n===void 0||n<=0?{}:{lastLoginTime:n}}};case 33026:case 33043:return {type:"auth-invalid",issue:{code:e,reason:"banned"}};default:return {type:"retry",error:{scope:"login",code:e,message:`\u672A\u77E5\u767B\u5F55\u9519\u8BEF\u7801\uFF1A${e}`}}}}function zh(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function qh(e){let n=hr.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return X({command:257,body:hr.encode(n)})}function dp(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(s,l){if(o===void 0||o.generation!==s)return;clearTimeout(o.timer);let{resolve:f}=o;o=void 0,f(l);}function a(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:s}=o;o=void 0,s({type:"canceled"});}return {async login(){let s=++r;a();let l;try{l=await e.authProvider.getLoginContext();}catch(I){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:I}}}if(s!==r)return {type:"canceled"};if(l===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let f;try{f=qh(l);}catch(I){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:I}}}return new Promise(I=>{let C=setTimeout(()=>{i(s,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:s,resolve:I,timer:C,selfId:l.userId},e.logger?.("connection:login-frame-sent",{userId:l.userId,deviceToken:zh(l.deviceToken),clientType:l.clientType,channelType:l.channelType,tokenLength:l.token.length,generation:s}),e.sendFrame(f);})},onLoginAck(s){if(o===void 0)return;let{generation:l,selfId:f}=o,I;try{let C=si.decode(s),k=Number(C.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(C.sUserId),requestUserId:f,errCode:`0x${k.toString(16)}`,isKickedOut:k===33040,lastLoginTime:String(C.nLastLoginTime)}),I=Xh(k,Number(C.nLastLoginTime)),I.type==="success"&&(I={type:"success",selfId:f});}catch(C){I={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:C}};}i(l,I);},cancel(){r+=1,a();},get awaitingAck(){return o!==void 0}}}var cp=4294967295,jh=2,$h=2.2,eR=2880;function nR(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function lp(e,n){if(!Number.isSafeInteger(e)||e<=0||e>cp)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${cp} \u7684\u6574\u6570`);return e}function tR(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>$h&&t>eR?jh:0}function Qc(e,n){if(e===void 0)throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);let t=e.trim();if(t==="")throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function rR(e,n){return e===void 0?void 0:Qc(e,n)}function oR(e){let n=e.trim(),t;try{t=new URL(n);}catch{throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u6709\u6548\u7684 http(s) URL")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!=="")throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u65E0\u51ED\u636E\u7684 http(s) URL");return t.href}function iR(e){let n=e.kind;if(n!=="sticker"&&n!=="gif")throw new Error(`sendExpression: \u4E0D\u652F\u6301\u7684 asset.kind\uFF08${String(n)}\uFF09`);if(e.kind==="gif"&&Object.prototype.hasOwnProperty.call(e,"packageId"))throw new Error("sendExpression: GIF \u4E0D\u5141\u8BB8\u63D0\u4F9B asset.packageId");let t=lp(e.width,"asset.width"),r=lp(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?Qc(e.resourceId,"asset.resourceId"):rR(e.resourceId,"asset.resourceId"),a=e.kind==="sticker"?Qc(e.packageId,"asset.packageId"):void 0;return {sticker:{url:oR(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:tR(t,r),...i===void 0?{}:{contentId:i},...a===void 0?{}:{packageName:a},...e.size===void 0?{}:{size:nR(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function up(e,n){let t=iR(n.asset),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"sticker",body:t,encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function sR(){let e=globalThis.crypto;if(e===void 0||typeof e.getRandomValues!="function")throw new Error("sendGame: \u5F53\u524D runtime \u672A\u63D0\u4F9B crypto.getRandomValues\uFF0C\u5FC5\u987B\u6CE8\u5165 randomUint32");return e.getRandomValues(new Uint32Array(1))[0]}function gp(e,n=sR){if(!Number.isSafeInteger(e)||e<=0||e>4294967296)throw new Error("sendGame: maxExclusive \u975E\u6CD5");let t=Math.floor(4294967296/e)*e;for(let r=0;r<128;r+=1){let o=n();if(!Number.isSafeInteger(o)||o<0||o>=4294967296)throw new Error("sendGame: randomUint32 \u5FC5\u987B\u8FD4\u56DE uint32");if(o<t)return o%e}throw new Error("sendGame: \u968F\u673A\u6E90\u8FDE\u7EED\u843D\u5165\u62D2\u7EDD\u533A\u95F4")}function aR(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:gp(3,n)+1};if(e==="dice")return {gameType:e,value:gp(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function mp(e,n){let t=aR(n.gameType,e.randomUint32),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"game",body:{game:t},encryption:{encrypted:true},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var fp=new Set([32768,0]),Hc=new Set([33281,33299]),Jc=33298,dR=new Set([...Hc,Jc]),ua=-2,cR=-1,ga=-3,Wc=-4;function an(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>an(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=an(r);return n}return e}function ut(e){return an(e)}function Fo(e){return an(e)}function Yc(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??wo(),a=new Map,s=new Map,l=new Map,f=new Map,I=0,C=new Set,k=new Map,N=new Set,R=new Set,U=new Set,_=new Map;function E(y){return le(y)}function T(y,d){return y.createdAt!==d.createdAt?y.createdAt-d.createdAt:y.id<d.id?-1:y.id>d.id?1:0}function A(y){let d=E(y),u=s.get(d);if(u!==void 0)return u;let g=0;for(let h of e.domainState.getMessagesByConversation({conversationType:y.conversationType,conversationId:y.conversationId}))g=Math.max(g,Xn(h));for(let h of a.values())E(h)===d&&(g=Math.max(g,h.createdAt));return s.set(d,g),g}function b(y,d){let u=E(y),g=s.get(u)??A(y);d>g&&s.set(u,d);}function F(y){let d=A(y),u=Math.max(o(),d+1);return s.set(E(y),u),{id:Tn(),createdAt:u}}function L(y,d){e.onUpdated?.({messageId:y.id,conversation:{conversationType:y.conversationType,conversationId:y.conversationId},state:d,...y.lastError===void 0?{}:{failure:{reason:y.lastError.reason,retryable:y.lastError.retryable}}});}function W(y){e.storage!==void 0&&e.storage.saveOutboxMessage(ut(y)).catch(d=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",d));}function ie(y){e.storage!==void 0&&e.storage.removeOutboxMessage(y).catch(d=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",d));}function Te(y){let d=l.get(y);d!==void 0&&(clearTimeout(d),l.delete(y));}function re(y,d,u){let g=u?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,h=e.domainState.getMessage(y);if(h!==void 0){e.domainState.upsertMessages([{...h,...d}],"live",g);return}let S=a.get(y);if(S===void 0)return;let D={...{id:S.id,conversationId:S.conversationId,conversationType:S.conversationType,senderId:e.getSelfId(),contentType:S.contentType,body:Fo(S.body),createdAt:S.createdAt,sortKey:_e(S.createdAt,S.id),status:S.status,receipt:"unread",encryption:an(S.encryption),failure:S.lastError===void 0?void 0:an(S.lastError),...S.mention!==void 0?{mention:an(S.mention)}:{},...S.refMessageId!==void 0?{refMessageId:S.refMessageId}:{}},...d};e.domainState.upsertMessages([{...D,sortKey:zn(D)}],"live",g);}function me(y){if(!dR.has(y.errcode))return;let d=e.domainState.getMessage(y.id);if(d===void 0||d.conversationType!=="direct"||d.senderId!==e.getSelfId())return;let u=Hc.has(y.errcode),g=y.errcode===Jc,h=y.failure??Xs(y.errcode);u?h={...h,displayCode:"contactRequired",retryable:false}:g&&(h={...h,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...d,status:"failed",failure:h}],"live",{authoritativeOutboxFailure:true}),u?e.domainState.appendDirectContactRequiredNotice(d.conversationId,d.id):g&&e.domainState.appendDirectMessageRefusedNotice(d.conversationId,d.id);}function pe(y,d){Te(y);let u=a.get(y);u!==void 0&&(u.status="failed",u.lastError=d,re(y,{status:"failed",failure:d}),W(u),L(u,"failed"),J(y));}async function H(y){if(f.has(y.id))return;if(C.has(E(y))){pe(y.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:false});return}let d=Symbol("outbox-dispatch");f.set(y.id,d);let u=I;try{let g=i.resolve(y.conversationType);if(g===void 0){pe(y.id,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:tr(y.conversationType,"outbox.dispatch"),retryable:!1});return}let h;try{let S={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},G=g.buildOutgoingFrames===void 0?g.buildOutgoingFrame(y,S):g.buildOutgoingFrames(y,S);if(G instanceof Uint8Array)h=[G];else if(Array.isArray(G))h=G;else {let D=await G;h=D instanceof Uint8Array?[D]:D;}if(u!==I)return;if(h.length===0||h.some(D=>!(D instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${y.conversationType}\uFF09`)}catch{if(u!==I)return;y.attempts+=1,pe(y.id,{code:ua,reason:"unknown"});return}if(C.has(E(y))){pe(y.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:!1});return}if(!e.isAuthenticated()){y.status="pending",re(y.id,{status:"pending"}),W(y),L(y,"queued");return}y.status="sending",y.attempts+=1,re(y.id,{status:"sending"}),W(y),L(y,"sending");for(let S of h)e.sendFrame(S);Te(y.id),l.set(y.id,setTimeout(()=>pe(y.id,{code:cR,reason:"timeout"}),t));}finally{f.get(y.id)===d&&f.delete(y.id);}}function J(y){let d=_.get(y);d!==void 0&&(_.delete(y),d());}function K(y){let d=a.get(y);return d===void 0||d.status!=="sending"?Promise.resolve():new Promise(u=>_.set(y,u))}function he(y){return (y.status==="pending"||y.status==="failed")&&!(y.status==="failed"&&y.lastError?.retryable===false)&&y.resumePolicy!=="manual"&&(y.attempts<r||R.has(y.id))&&i.resolve(y.conversationType)!==void 0}function fe(y,d){let u;for(let g of a.values())d.has(g.id)||E(g)!==y||!he(g)||(u===void 0||T(g,u)<0)&&(u=g);return u}function Me(y,d=false){let u=E(y);if(d&&U.add(u),k.has(u)){N.add(u);return}ve(u);}function ue(){let y=new Set;for(let d of a.values())he(d)&&y.add(E(d));for(let d of y)V(d,true);}async function ve(y){let d=Symbol("outbox-drain"),u=I;k.set(y,d);try{do{N.delete(y);let g=new Set;for(;u===I&&e.isAuthenticated();){let h=fe(y,g);if(h===void 0)break;if(g.add(h.id),R.delete(h.id),await H(h),u!==I)return;U.has(y)&&await K(h.id);}}while(u===I&&N.has(y)&&e.isAuthenticated())}finally{k.get(y)===d&&(k.delete(y),U.delete(y));}}function V(y,d=false){if(d&&U.add(y),k.has(y)){N.add(y);return}ve(y);}function P(y){let d={code:ua,reason:"unknown",displayCode:"sendCanceled",retryable:false};y.lastError=d,re(y.id,{status:"failed",failure:d}),R.delete(y.id),a.delete(y.id),ie(y.id),L(y,"canceled"),J(y.id);}return {allocateMessageIdentity:F,enqueueText(y){let{id:d,createdAt:u}=F(y),g={encrypted:y.encrypted??false},h=i.resolve(y.conversationType)!==void 0,S=h&&e.isAuthenticated(),G={id:d,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:y.text},createdAt:u,sortKey:_e(u,d),status:"pending",receipt:"unread",encryption:an(g),...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},D={id:d,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"text",body:{text:y.text},encryption:an(g),status:"pending",attempts:0,createdAt:u,...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(d,D),W(D),L(D,"queued"),e.domainState.upsertMessages([G],"live",{newOutgoing:true}),h?(S&&Me(D),ut(D)):(pe(d,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:tr(y.conversationType,"outbox.enqueueText"),retryable:false}),ut(D))},enqueueContact(y){let d=y.contact.targetId.trim(),u=y.contact.displayName.trim();if(d==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(u==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(y.contact.kind!=="individual"&&y.contact.kind!=="group"&&y.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(y.contact.kind)} \u540D\u7247`);let{id:g,createdAt:h}=F(y),S={encrypted:y.encrypted??false},G=i.resolve(y.conversationType)!==void 0,D=G&&e.isAuthenticated(),j={contact:{...y.contact,targetId:d,displayName:u}},O={id:g,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"contact",body:Fo(j),createdAt:h,sortKey:_e(h,g),status:"pending",receipt:"unread",encryption:an(S),...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}},z={id:g,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"contact",body:Fo(j),encryption:an(S),status:"pending",attempts:0,createdAt:h,...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}};return a.set(g,z),W(z),L(z,"queued"),e.domainState.upsertMessages([O],"live",{newOutgoing:true}),G?(D&&Me(z),ut(z)):(pe(g,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:tr(y.conversationType,"outbox.enqueueContact"),retryable:false}),ut(z))},enqueueMedia(y){let{id:d,createdAt:u}=y,g=Fo(y.body);Ha(y.contentType,g,"outbox.enqueueMedia"),b(y,u);let h=i.resolve(y.conversationType)!==void 0,S=h&&e.isAuthenticated(),G={id:d,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:y.contentType,body:Fo(g),createdAt:u,sortKey:_e(u,d),status:"pending",receipt:"unread",encryption:an(y.encryption),...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},D={id:d,conversationId:y.conversationId,conversationType:y.conversationType,contentType:y.contentType,body:g,encryption:an(y.encryption),status:"pending",attempts:0,createdAt:u,...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(d,D),W(D),L(D,"queued"),e.domainState.upsertMessages([G],"live",{newOutgoing:y.optimisticAlreadyCreated!==true}),h?(S&&Me(D),ut(D)):(pe(d,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:tr(y.conversationType,"outbox.enqueueMedia"),retryable:false}),Me(D,true),ut(D))},onChatAck(y){Te(y.id);let d=a.get(y.id);if(d===void 0){fp.has(y.errcode)||me(y);return}if(fp.has(y.errcode))a.delete(y.id),ie(y.id),re(y.id,{status:"sent",serverTime:y.serverTime>0?y.serverTime:void 0,...y.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(y.id)?.extensions,...y.extensions}}}),L(d,"sent"),J(y.id);else {d.status="failed",d.lastError=y.failure??Xs(y.errcode);let u=d.conversationType==="direct"&&Hc.has(y.errcode),g=d.conversationType==="direct"&&y.errcode===Jc;u?d.lastError={...d.lastError,displayCode:"contactRequired",retryable:false}:g&&(d.lastError={...d.lastError,displayCode:"messageRefused",retryable:false}),re(y.id,{status:"failed",failure:d.lastError},{authoritativeFailure:true}),u?e.domainState.appendDirectContactRequiredNotice(d.conversationId,d.id):g&&e.domainState.appendDirectMessageRefusedNotice(d.conversationId,d.id),W(d),L(d,"failed"),J(y.id);}},onAuthenticated(){ue();},retry(y){let d=a.get(y);return d===void 0?{accepted:false,reason:"not-found"}:d.status==="sending"||f.has(y)?{accepted:false,reason:"in-flight"}:d.status==="failed"&&d.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:d.status!=="failed"&&!(d.status==="pending"&&d.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(d.resumePolicy==="manual"&&(d.resumePolicy="automatic",W(d)),R.add(d.id),Me(d),{accepted:true})},cancel(y){let d=a.get(y);return d===void 0?{accepted:false,reason:"not-found"}:d.status==="sending"||f.has(y)?{accepted:false,reason:"in-flight"}:d.status!=="pending"?{accepted:false,reason:"invalid-state"}:d.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(P(d),{accepted:true})},markConversationTerminated(y,d){let u=E(y);C.add(u);for(let g of [...a.values()])if(E(g)===u){if(g.status==="pending"&&g.attempts===0&&!f.has(g.id)){P(g);continue}pe(g.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${d}`,retryable:false});}},clearConversationTerminated(y){let d=E(y);C.delete(d),V(d);},markForLogout(y){for(let d of a.values())if(!(d.status!=="pending"&&d.status!=="sending"&&d.status!=="failed")){if(Te(d.id),d.resumePolicy="manual",y.policy==="fail"){let u={code:ua,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};d.status="failed",d.lastError=u,re(d.id,{status:"failed",failure:u}),L(d,"failed");}W(d),J(d.id);}},getPending(){return [...a.values()].map(ut)},reset(y){y?.discardInFlight&&(I+=1,f.clear(),k.clear(),N.clear(),U.clear());for(let d of [...l.keys()])Te(d);for(let d of a.values())d.status==="sending"&&(d.status="pending",re(d.id,{status:"pending"}),W(d),L(d,"queued"),J(d.id));},async hydrate(y=()=>true){if(!(e.storage===void 0||!y()))try{let d=await e.storage.getOutbox();if(!y())return;for(let u of d){if(!y())return;let g=ut(u);if(g.status==="sent"){ie(g.id);continue}try{Ha(g.contentType,g.body,`outbox.hydrate(${g.id})`),g.body.video!==void 0&&(g.body={...g.body,video:jo(g.body.video)});}catch(G){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${g.id}\uFF09`,G),!y())return;if(ie(g.id),e.domainState.getMessage(g.id)!==void 0){let D={code:ua,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};re(g.id,{status:"failed",failure:D},{authoritativeFailure:!0});}continue}let h=g.status==="sending"?"pending":g.status,S={...g,status:h};if(a.set(g.id,S),b(S,S.createdAt),L(S,h==="pending"?"queued":h),!y())return;e.domainState.getMessage(g.id)!==void 0&&re(g.id,{status:h,failure:g.lastError===void 0?void 0:an(g.lastError)});}}catch(d){y()&&e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",d);}}}}function pp(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Kc(),r={domainState:e.domainState,outbox:e.outbox,onReadAck:e.onReadAck,onSyncReadAck:e.onSyncReadAck,onSyncReadDeliver:e.onSyncReadDeliver,sendFrame:e.sendFrame,getSelfId:e.getSelfId,emitter:e.emitter,logger:e.logger,keepRaw:e.keepRaw,decrypt:e.decrypt};for(let{command:o,handler:i}of Lc(r))t.register(o,i);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,i,a){let s=t.resolve(o);if(s===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return s(o,i,a),!0}catch(l){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,l),false}}}}var lR=new Set([32768,0]);function Xc(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),a=new Map,s=new Map,l=new Map,f=new Set,I=new Map;function C(A){return A!==e.getSelfId()}function k(A){let b=A.body.system?.eventType;return A.contentType==="voice"||A.contentType==="video"?false:!(A.conversationType==="direct"&&(b==="direct_contact_established"||b==="direct_contact_required"||b==="direct_message_refused"))}function N(A,b){if(b!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b)?.sortKey}function R(A,b){let F=N(A,l.get(A)??""),L=new Set;for(let W of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:A}))k(W)&&C(W.senderId)&&kn(W.id)&&W.sortKey<=b&&(F===void 0||W.sortKey>F)&&L.add(W.id);for(let W of I.get(A)??[]){let ie=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},W);ie!==void 0&&C(ie.senderId)&&kn(ie.id)&&(ie.contentType==="voice"||ie.contentType==="video")&&L.add(ie.id);}return [...L].sort((W,ie)=>{let Te=N(A,W)??"",re=N(A,ie)??"";return Te<re?-1:Te>re?1:0})}function U(A){let b=s.get(A);b!==void 0&&(clearTimeout(b.timer),s.delete(A));}function _(A){let b=a.get(A);b!==void 0&&(clearTimeout(b),a.delete(A)),U(A),I.delete(A);let F=e.domainState.getReadState(A)?.readCursor??"";F!==""&&l.set(A,F);}function E(A,b){let F=s.get(A);if(F!==void 0){if(clearTimeout(F.timer),F.attempts<o&&e.isAuthenticated()){F.attempts+=1,e.sendFrame(F.frame),F.timer=setTimeout(()=>E(A,"timeout"),r);return}s.delete(A),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${b}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function T(A){let b=e.domainState.getReadState(A)?.readCursor??"";if(b==="")return;let F=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b);if(F===void 0||s.has(A))return;let L=R(A,F.sortKey);if(L.length===0){l.set(A,b);return}if(!e.isAuthenticated())return;let W=e.canSendReadReceipt?.(A);if(W===false){l.set(A,b);return}if(W===void 0&&e.canSendReadReceipt!==void 0)return;let ie=L.slice(0,i),Te=I.get(A),re=ie.filter(K=>Te?.has(K)===true),pe=L.length<=i?b:ie[ie.length-1],H=Tn(),J;try{J=X({command:4103,body:Ur.encode(Ur.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(A),sMsgId:H,readResults:ie.map(K=>({sMsgId:be(K),errcode:0})),readReceiptOff:0}))});}catch(K){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:K}});return}e.sendFrame(J),e.logger?.("read-report",{conversationId:A,notifyId:H,count:ie.length,remaining:L.length-ie.length}),s.set(A,{conversationId:A,cursor:pe,notifyId:H,frame:J,explicitMediaIds:re,attempts:1,timer:setTimeout(()=>E(A,"timeout"),r)});}return {report(A){f.add(A);let b=a.get(A);if(b!==void 0&&clearTimeout(b),e.canSendReadReceipt?.(A)===false){_(A);return}a.set(A,setTimeout(()=>{a.delete(A),T(A);},t));},reportConsumedMedia(A,b){let F=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b);if(F===void 0||!C(F.senderId)||F.contentType!=="voice"&&F.contentType!=="video"||(f.add(A),e.canSendReadReceipt?.(A)===false))return;let L=I.get(A);L===void 0&&(L=new Set,I.set(A,L)),L.add(b),e.isAuthenticated()&&T(A);},onReadAck({notifyId:A,errcode:b}){let F;for(let L of s.values())if(L.notifyId===A){F=L;break}if(F!==void 0)if(e.logger?.("read-report-ack",{conversationId:F.conversationId,notifyId:A,errcode:b}),lR.has(b)){clearTimeout(F.timer),s.delete(F.conversationId),l.set(F.conversationId,F.cursor);let L=I.get(F.conversationId);for(let W of F.explicitMediaIds)L?.delete(W);L?.size===0&&I.delete(F.conversationId),T(F.conversationId);}else E(F.conversationId,"rejected");},onAuthenticated(){for(let A of f)T(A);},suppress(A){if(A!==void 0){_(A);return}let b=new Set([...f,...a.keys(),...s.keys()]);for(let F of b)_(F);},resume(A){if(!f.has(A))return;let b=a.get(A);b!==void 0&&clearTimeout(b),a.set(A,setTimeout(()=>{a.delete(A),T(A);},t));},reset(){for(let A of a.values())clearTimeout(A);a.clear();for(let A of [...s.keys()])U(A);}}}function yp(e,n){let t=Math.min(n.maxDelayMs,n.baseDelayMs*2**e);return n.jitter?Math.round(t/2+Math.random()*(t/2)):t}function Ip(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,a,s=false,l=0;function f(){a!==void 0&&(clearTimeout(a),a=void 0);}function I(){i!==void 0&&(clearInterval(i),i=void 0),f(),s=false,l=0;}function C(){if(l>=r){I(),e.onUnhealthy();return}e.sendPing(),l+=1;}return {start(){i===void 0&&(l=0,i=setInterval(C,t));},stop:I,onAck(){f(),s=false,l=0;},probe(){i!==void 0&&(s||(s=true,e.sendPing(),l=1,clearInterval(i),i=setInterval(C,t),o!==void 0&&(a=setTimeout(()=>{a=void 0,I(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return l}}}function uR(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function gR(e,n){if(e.length===0)return n;let t=new Uint8Array(e.length+n.length);return t.set(e,0),t.set(n,e.length),t}function mR(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function fR(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,a=n.heartbeatIntervalMs??1e4,s=n.heartbeatMaxMissed??3,l=n.foregroundProbeTimeoutMs??5e3,f=n.loginTimeoutMs??n.readTimeoutMs??3e4,I={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},C="idle",k=true,N=0,R,U=false,_=new Uint8Array(0),E=false,T=0,A="";function b(v){C!==v&&(e.logger?.("connection:state-transition",{from:C,to:v,selfId:A}),C=v,i.emit({type:"connection:changed",state:v}));}function F(v){i.emit({type:"error",error:v});}function L(v,Z){let Y=T;v?.catch(se=>{Y===T&&F({scope:"unknown",message:Z,cause:se});});}function W(v){t.send(uR(v)).catch(Z=>{F({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:Z});});}let ie=Ip({sendPing:()=>W(X({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:C,selfId:A}),F({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),G();}},{intervalMs:a,maxMissed:s,probeTimeoutMs:l}),Te=dp({authProvider:r,sendFrame:W,logger:e.logger},{timeoutMs:f}),re=e.sendStrategies??wo(),me=e.domainState?Yc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",sendStrategies:re,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(v,Z)=>F({scope:"storage",message:v,cause:Z}),onUpdated:v=>e.emitter.emit({type:"outbox:updated",conversation:v.conversation,item:v})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,pe=e.domainState?Xc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,H=e.domainState?xc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",emitter:i,logger:e.logger}):void 0,J=e.domainState?Pc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",strategies:e.recallStrategies}):void 0,K=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?wc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,he=e.domainState!==void 0&&J!==void 0?Vc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,onRecallAck:J.onRecallAck,onChannelMessageDeletionAck:v=>K?.onDeleteAck(v),logger:e.logger}):[],fe=e.domainState?gc({getSelfId:()=>A,sendFrame:W,isAuthenticated:()=>C==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,Me=e.domainState!==void 0&&fe!==void 0?Rc({onEditAck:fe.onEditAck}):[],ue=e.domainState!==void 0&&me!==void 0&&e.media!==void 0?kc({getSelfId:()=>A,domainState:e.domainState,outbox:me,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,onMediaAlbumContentSize:e.media.onAlbumContentSize,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads,recoveryPort:e.media.recoveryPort,shouldPersistUpload:e.media.shouldPersistUpload,waitUntilOnline:e.media.waitUntilOnline,isOnline:e.isOnline}):void 0;function ve(v,Z){return ue===void 0?Promise.reject(new Error(`${v} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):A===""?Promise.reject(new Error(`${v} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):Z(ue)}function V(v,Z,Y,se){let Be=e.domainState?.getConversationMessage({conversationId:Y.conversationId,conversationType:Y.conversationType},Z);if(Be===void 0||Be.conversationId!==Y.conversationId||Be.conversationType!==Y.conversationType||Be.contentType!==se&&!(se==="file"&&Be.contentType==="filesAlbum"&&Be.body.filesAlbum?.items.length===1)||Be.status!=="failed"||Be.recalled!==void 0||Be.deletedForEveryone!==void 0||Be.senderId!==A||!(Be.failure?.displayCode==="media.uploadInterrupted"||Be.failure?.displayCode==="media.cancelled"||Be.failure?.displayCode==="media.uploadTimeout"&&Be.failure.retryable===false))throw new Error(`${v} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u6E90\u6587\u4EF6\u5DF2\u91CA\u653E\u7684${se==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Be}let P=e.domainState&&me?pp({domainState:e.domainState,outbox:me,onReadAck:pe?.onReadAck,onSyncReadAck:H?.onAck,onSyncReadDeliver:H?.onDeliver,sendFrame:W,getSelfId:()=>A,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...he,...Me]}):void 0;function y(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function d(){R!==void 0&&(clearTimeout(R),R=void 0);}function u(v){return v!==null&&v.userId.trim()!==""&&v.token.trim()!==""}async function g(){try{return u(await r.getLoginContext())?"available":"missing"}catch(v){return F({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:v}),"unavailable"}}function h(v,Z){F({scope:"transport",message:v,cause:Z}),ie.stop(),b("disconnected");}function S(){if(R!==void 0)return;let v=yp(N,I);N+=1,R=setTimeout(()=>{R=void 0,de();},v);}function G(){if(C==="reconnecting"||C==="suspended")return;let v=++T;ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),b("reconnecting"),y(),g().then(Z=>{if(!(C!=="reconnecting"||v!==T)){if(Z==="missing"){O({code:0,reason:"token_expired"});return}S();}});}function D(v="offline"){let Z=C==="idle"||C==="disconnected"||C==="disconnecting";if(v==="offline"&&(Z||C==="suspended")){L(ue?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25");return}d(),T+=1,v==="offline"&&L(ue?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),ie.stop(),Te.cancel(),v==="session-ended"&&ue?.cancelAll("session-ended"),me?.reset({discardInFlight:v==="session-ended"}),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),Z||b("suspended"),y();}function j(){if(!(C!=="suspended"||!k)){if(e.isOnline?.()===false){b("offline");return}N=0,de();}}function O(v){C==="idle"||C==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:v.reason,code:`0x${v.code.toString(16)}`,stateBefore:C,selfId:A}),d(),T+=1,ie.stop(),Te.cancel(),b("disconnected"),y(),ue?.cancelAll("session-ended"),me?.reset({discardInFlight:true}),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),i.emit({type:"auth:invalid",issue:v}),Promise.resolve().then(()=>r.onAuthInvalid?.(v)).catch(Z=>F({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:Z})));}function z(v){switch(v.type){case "success":N=0,E=false,v.selfId&&(A=v.selfId),b("authenticated"),ie.start(),me?.onAuthenticated(),L(ue?.resumePaused(),"\u7F51\u7EDC\u6062\u590D\u540E\u7EE7\u7EED\u4E0A\u4F20\u5931\u8D25"),pe?.onAuthenticated(),H?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(v.issue.reason==="token_expired"&&v.issue.code!==0&&!E){E=true,F({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),G();return}O(v.issue);break;case "retry":F(v.error),G();break;}}async function Re(){let v=await Te.login();v.type!=="canceled"&&C==="authenticating"&&z(v);}async function de(){if(!k){d(),b("suspended");return}if(e.isOnline?.()===false){d(),ie.stop(),L(ue?.pauseAll("offline"),"\u79BB\u7EBF\u63A2\u9488\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),b("offline");return}let v=++T;b("connecting"),U=false,_=new Uint8Array(0);let Z=await g();if(v!==T)return;if(Z==="missing"){O({code:0,reason:"token_expired"});return}if(Z==="unavailable"){G();return}let Y;try{Y=await o.getEndpoints();}catch(Be){if(v!==T)return;h("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Be);return}if(v!==T)return;let se=Y[0];if(se===void 0){h("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!mR(se.url)){h(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${se.url}`);return}try{await t.connect([se]);}catch(Be){if(v!==T)return;F({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Be}),G();return}v!==T&&y();}function Ve(v,Z,Y){switch(v){case 258:Te.onLoginAck(Z);break;case 2:ie.onAck();break;case 264:if(e.logger!==void 0)try{let se=hd.decode(Z);e.logger("connection:kickout-received",{kickedUserId:String(se.sUserId),selfId:A,matchesSelf:String(se.sUserId)===A,entryIp:se.ip,entryPort:se.port,stateBefore:C});}catch(se){e.logger("connection:kickout-decode-failed",{message:se?.message,stateBefore:C});}O({code:33040,reason:"kicked"});break;default:P?.route(v,Z,{msgSeq:Y});break}}function Pe(){return C==="authenticating"||C==="authenticated"}function $(v){if(!Pe())return;let Z=T;_=gR(_,new Uint8Array(v));let Y;try{let se=Gd(_);Y=se.frames,_=se.remainder;}catch(se){F({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:se}),G();return}for(let se of Y){if(!Pe()||Z!==T)return;Ve(se.header.command,se.body,se.header.msgSeq);}}return t.on("open",()=>{C==="connecting"&&(b("authenticating"),Re());}),t.on("message",({data:v})=>$(v)),t.on("error",({error:v})=>{F({scope:"transport",message:"transport \u9519\u8BEF",cause:v});}),t.on("close",({code:v,reason:Z,wasClean:Y})=>{if(ie.stop(),e.logger?.("connection:transport-closed",{code:v,reason:Z,wasClean:Y,stateBefore:C,intentionalClose:U,nextPath:U||C==="disconnecting"?"disconnected":C==="idle"||C==="disconnected"||C==="reconnecting"||C==="suspended"||C==="offline"?"ignored":"reconnect"}),U||C==="disconnecting"){U=false,b("disconnected");return}C==="idle"||C==="disconnected"||C==="reconnecting"||C==="suspended"||C==="offline"||G();}),{get state(){return C},setConnectionAllowed(v){k!==v&&(k=v,v||D("session-ended"));},async connect(){C==="connecting"||C==="authenticating"||C==="authenticated"||(d(),N=0,await de());},disconnect(){if(d(),T+=1,ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),U=true,C==="idle"||C==="disconnected"){b("disconnected");return}b("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&b("disconnected");},notifyOnline(){if(C==="offline"){N=0,de();return}C==="reconnecting"&&(d(),de());},notifyOffline(){L(ue?.pauseAll("offline"),"\u7F51\u7EDC\u79BB\u7EBF\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),!(C==="idle"||C==="disconnected"||C==="disconnecting"||C==="suspended"||C==="offline")&&(d(),T+=1,ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),b("offline"),y());},notifyVisible(){if(C==="suspended"){j();return}if(C==="offline"&&e.isOnline?.()===true){N=0,de();return}if(C==="reconnecting"){d(),de();return}if(C==="authenticated"){let v=T;g().then(Z=>{if(!(C!=="authenticated"||v!==T)){if(Z==="missing"){O({code:0,reason:"token_expired"});return}ie.probe();}});}},suspendForPageLifecycle:D,resumeFromPageLifecycle:j,suppressDirectReadReceipts(v){pe?.suppress(v);},resumeDirectReadReceipts(v){pe?.resume(v);},reportDirectMediaConsumed(v,Z){pe?.reportConsumedMedia(v,Z),H?.reportConsumedMedia?.(v,Z);},sendText(v){if(me===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendText \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return me.enqueueText(v)},sendContact(v){if(me===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendContact \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return me.enqueueContact(v)},forwardMessages(v){if(me===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let Z=e.domainState;if(Z===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("forwardMessages \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Mc({outbox:me,sendStrategies:re,resolveCurrentMessage:Y=>Z.getConversationMessage(Y,Y.id)},v)},recallMessage(v){return J===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):J.recall(v)},deleteChannelMessageForEveryone(v){return K===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):K.deleteForEveryone(v)},editMessage(v){return fe===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):fe.edit(v)},sendImage(v){return ve("sendImage",Z=>Z.sendImage(v))},sendVideo(v){return ve("sendVideo",Z=>Z.sendVideo(v))},sendVoice(v){return ve("sendVoice",Z=>Z.sendVoice(v))},sendFile(v){return ve("sendFile",Z=>Z.sendFile(v))},sendGif(v){return ve("sendGif",Z=>Z.sendGif(v))},sendMediaAlbum(v){return ve("sendMediaAlbum",Z=>Z.sendMediaAlbum(v))},sendExpression(v){if(me===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendExpression \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return up({outbox:me},v)},sendGame(v){if(me===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendGame \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return mp({outbox:me,randomUint32:e.randomUint32},v)},sendMiniProgram(v){if(me===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendMiniProgram \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Vf({outbox:me},v)},sendTransfer(v){if(me===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendTransfer \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return tp({outbox:me},v)},sendGift(v){if(me===void 0)throw new Error("sendGift \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendGift \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Gf({outbox:me},v)},replaceInterruptedVideo(v,Z){return ve("replaceInterruptedVideo",Y=>{let se=V("replaceInterruptedVideo",v,Z,"video");return Y.replaceVideo(v,se.createdAt,{...Z,...Z.caption===void 0&&se.body.video?.describe!==void 0?{caption:se.body.video.describe}:{},...Z.refMessageId===void 0&&se.refMessageId!==void 0?{refMessageId:se.refMessageId}:{}})})},replaceInterruptedFile(v,Z){return ve("replaceInterruptedFile",Y=>{let se=V("replaceInterruptedFile",v,Z,"file");return Y.replaceFile(v,se.createdAt,{...Z,...se.contentType==="filesAlbum"?{filesAlbum:true,caption:se.body.filesAlbum?.caption}:{},...Z.refMessageId===void 0&&se.refMessageId!==void 0?{refMessageId:se.refMessageId}:{}})})},cancelMedia(v){ue?.cancel(v);},cancelMediaUpload(v){return ue?.cancel(v)??false},pauseMediaUpload(v){return ue?.pause(v)??Promise.resolve(false)},resumeMediaUpload(v){return ue?.resume(v)??false},resumePausedMediaUploads(v,Z){return ue?.resumePaused(v,Z)??Promise.resolve()},retryMediaUpload(v,Z){return ue?.retry(v,Z)??false},invalidateMediaAssetCacheWrites(){ue?.invalidateAssetCacheWrites();},async disposeMediaTasks(v){await ue?.dispose(v);},recoverMediaUpload(v,Z,Y){return ue===void 0?Promise.reject(new Error("IM_MEDIA_RECOVERY_UNAVAILABLE")):ve("recoverMediaUpload",se=>se.recoverUpload(v,Z,Y))},retryMessage(v){ue?.retry(v)!==true&&me?.retry(v);},retryOutboxMessage(v){return me?.retry(v)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(v){return me?.cancel(v)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(v,Z){me?.markConversationTerminated(v,Z);},clearOutboxConversationTerminated(v){me?.clearConversationTerminated(v);},terminateConversationSending(v,Z){ue?.cancelConversation(v),me?.markConversationTerminated(v,Z);},markRead(v,Z,Y){if(e.domainState===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let se=Y??e.domainState.getSession(v)?.type;if(se===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${v}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(se==="direct"){if(pe===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(v,Z),pe.report(v),H?.report(v);return}let Be=e.readStrategies?.resolve(se);if(Be===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${se}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Be.markRead({conversationId:v,readCursor:Z})},sendFrame(v){W(v);},onChatAck(v){me?.onChatAck(v);},getPendingOutbox(){return me?.getPending()??[]},async hydrateOutbox(v){await me?.hydrate(v);},markOutboxForLogout(v){me?.markForLogout({policy:v});}}}var Cp={error:0,warn:1,info:2,debug:3,trace:4},pR=8,zc=50,qc=100,yR="[REDACTED]",IR="[REDACTED_PRIVATE_KEY]",CR="[SIGNED_URL_REDACTED]",SR=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,AR=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,hR=/(["'])(authorization|cookie|set[_-]?cookie|password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)\1(\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}]+)/gi,RR=/\b(password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)(\s*[:=]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;]+)/gi,MR=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function ER(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function TR(e){let n=ER(e);return n==="authorization"||n==="cookie"||n==="setcookie"||n==="password"||n==="passwd"||n.includes("apikey")||n.includes("accesskey")||n==="token"||n.endsWith("token")||n.includes("secret")||n.includes("privatekey")||n.includes("secretkey")||n.includes("sessionkey")||n.includes("teakey")||n.includes("signature")||n.includes("credential")}function vR(e){try{let n=new URL(e);return n.protocol!=="http:"&&n.protocol!=="https:"?!1:[...n.searchParams.keys()].some(t=>{let r=t.toLowerCase();return r==="signature"||r==="sig"||r==="token"||/^x-(?:amz|goog)-(?:signature|credential|security-token)$/.test(r)})}catch{return false}}function bR(e){return e.replace(SR,n=>vR(n)?CR:n)}function jc(e){return bR(e).replace(MR,IR).replace(AR,"$1$2[REDACTED]").replace(hR,"$1$2$1$3[REDACTED]").replace(RR,"$1$2[REDACTED]")}function NR(e){if(e instanceof ArrayBuffer)return {type:"ArrayBuffer",byteLength:e.byteLength};if(ArrayBuffer.isView(e))return {type:e.constructor.name,byteLength:e.byteLength};if(typeof Blob<"u"&&e instanceof Blob){let n={type:e.constructor.name,byteLength:e.size,mimeType:e.type};return typeof File<"u"&&e instanceof File&&(n.name=e.name,n.lastModified=e.lastModified),n}}function $c(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&TR(i))return yR;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return jc(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=pR)return "[MAX_DEPTH]";let a=NR(r);if(a!==void 0)return a;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let f=r;return {name:f.name,message:jc(f.message),...f.code===void 0?{}:{code:f.code},...f.category===void 0?{}:{category:f.category},...f.retryable===void 0?{}:{retryable:f.retryable},...f.stack===void 0?{}:{stack:jc(f.stack)},...f.data===void 0?{}:{data:t(f.data,o+1,"data")}}}if(typeof r!="object")return String(r);if(n.has(r))return "[CIRCULAR]";if(n.add(r),Array.isArray(r)){let f=r.slice(0,zc).map(I=>t(I,o+1));return r.length>zc&&f.push({omittedItems:r.length-zc}),f}let s=Object.entries(r),l={};for(let[f,I]of s.slice(0,qc))l[f]=t(I,o+1,f);return s.length>qc&&(l.omittedKeys=s.length-qc),l}return t(e,0)}function _R(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function a(l,f){return e.enabled&&o!==void 0&&Cp[l]<=Cp[e.level]&&n.has(f)}function s(l){if(i||e.fallbackSink===void 0)return;i=true;let f={message:"diagnostic-sink-failed"};try{f={message:"diagnostic-sink-failed",data:$c(l)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:f}));}catch{}}return {isEnabled:a,record(l,f,I,C,k){if(!a(l,I))return;let N;try{N={...e.getRuntimeContext?.(),...k?.()};}catch(E){N={error:{message:"diagnostic-payload-factory-failed",data:E}};}let R;try{R=t();}catch{R=Date.now();}let U=++r,_;try{_=$c({timestamp:R,sequence:U,level:l,layer:f,category:I,event:C,...N});}catch{_={timestamp:R,sequence:U,level:l,layer:f,category:I,event:C,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(_));}catch(E){o=void 0,s(E);}}}}function DR(e){return (n,t)=>{let r=n.includes("crypto")?"crypto":n.includes("sync")?"sync":n.includes("read")?"message":n.includes("outbox")?"outbox":n.includes("chat")||n.includes("message")||n.includes("deliver")?"message":"protocol";e.record("trace","core",r,n,()=>({data:t}));}}function GR(){let e=new Set;function n(t){for(let r of [...e])try{r(t);}catch(o){t.type!=="error"&&n({type:"error",error:{scope:"unknown",message:"\u4E8B\u4EF6\u8BA2\u9605\u8005\u56DE\u8C03\u5F02\u5E38",cause:o}});}}return {emit:n,subscribe(t){return e.add(t),()=>{e.delete(t);}},clear(){e.clear();}}}function Sp(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let a=t.get(i);if(a!==void 0)return clearTimeout(a.timer),t.delete(i),a}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,a){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((s,l)=>{let f=setTimeout(()=>{t.delete(i),l(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${a??n}ms \u65E0\u54CD\u5E94`));},a??n);t.set(i,{resolve:s,reject:l,timer:f});})},resolve(i,a){let s=o(i);return s?.resolve(a),s!==void 0},reject(i,a){let s=o(i);return s?.reject(a),s!==void 0},rejectAll(i){for(let a of [...t.values()])clearTimeout(a.timer),a.reject(i);t.clear();},get pendingCount(){return t.size}}}function UR(e){let n=false,t=false,r=false,o,i,a=Sp(),s,l,f={status:"idle"},I=new Set;function C(E){try{E({...f});}catch{e.onListenerError();}}function k(E){f=E;for(let T of [...I])C(T);}function N(){l&&clearTimeout(l.timer),l=void 0;}function R(E,T){N(),r=E!=="server-rejected";let A={status:"error",error:E,requiresReconnect:r,...T===void 0?{}:{serverCode:T}};o=r?A:void 0,k(i?A:{status:"idle"});}function U(){if(t||r||l||!i)return;if(!n){k({status:"pending"});return}if(i.token===s?.token){k(s.snapshot);return}let E=i,T=a.nextSeq(),A=X({command:261,msgSeq:T,body:Rr.encode(Rr.create({sUserId:BigInt(E.userId),nPushType:20,nPushTokenType:0,sPushToken:E.token}))}),b={...E,msgSeq:T,timer:setTimeout(()=>R("timeout"),e.timeoutMs??3e4)};if(l=b,k({status:"syncing"}),!(l!==b||t||!n)){if(!i){N();return}try{e.sendFrame(A);}catch{l===b&&R("send-failed");}}}return {api:{setWebSubscription({userId:E,subscription:T}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(E)||E!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:A,keys:b,expirationTime:F}=T;if(!A||!b?.p256dh||!b.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let L=new URL(A);if(L.protocol!=="https:"||L.username||L.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(F!=null&&(!Number.isFinite(F)||F<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let W=JSON.stringify({endpoint:A,expirationTime:F??null,keys:{p256dh:b.p256dh,auth:b.auth}});i={userId:E,token:W},o?k(o):l&&k({status:"syncing"}),U();},clear(){t||(i=void 0,s=void 0,k({status:"idle"}));},snapshot:()=>({...f}),subscribe(E){return t||I.add(E),C(E),()=>{I.delete(E);}}},commandHandlers:[{command:262,handler(E,T,A){if(!l||!n||t||r||A?.msgSeq!==l.msgSeq)return;let b;try{b=ii.decode(T);}catch{R("invalid-ack");return}let F=b.nErr===0&&(String(b.sUserId)===l.userId||String(b.sUserId)==="0");if(!F&&String(b.sUserId)!==l.userId)return;let L=l;if(N(),!F&&b.nErr!==32768){R("server-rejected",Number(b.nErr));return}if(s={token:L.token,snapshot:F?{status:"unconfirmed",serverCode:Number(b.nErr)}:{status:"synced"}},!i){k({status:"idle"});return}U();}}],setAuthenticated(E){t||n===E||(n=E,N(),s=void 0,r=false,o=void 0,i&&U());},dispose(){t||(t=true,N(),i=void 0,s=void 0,k({status:"disposed"}),I.clear());}}}var kR=200,xR=20;function BR(e){return e instanceof rr&&e.status>=500}function wR(e){let n=e.maxBatchesPerEndpoint??kR,t=e.reducedBatchLimit??xR,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function a(l,f){let I=[],C="",k=0,N;async function R(){try{return await l.pullBatch({deliveredMsgInfos:I,...N===void 0?{}:{limit:N}})}catch(U){if(N!==void 0||!BR(U))throw U;return N=t,e.logger?.("sync-batch-reduced",{endpoint:l.endpoint,limit:N,status:U.status}),await l.pullBatch({deliveredMsgInfos:I,limit:N})}}for(let U=1;;U++){if(U>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${l.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let _=await R();if(_.messages.length>0){e.domainState.upsertMessages(_.messages,"offline"),k+=_.messages.length;for(let A of _.messages){let b={conversationType:A.conversationType,conversationId:A.conversationId};f.set(le(b),b);}}let E=_.batchSize>0;if(e.logger?.("sync-batch",{endpoint:l.endpoint,batchNo:U,fetched:_.batchSize,newMessages:_.messages.length,responseBytes:_.responseBytes,endpointTotal:k,hasMore:E}),!E)break;let T=_.deliveredMsgInfos.at(-1)?.msgId??"";if(T!==""&&T===C)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${l.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${T}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);C=T,I=_.deliveredMsgInfos,await r();}return k}async function s(){let l=new Map,f=0;for(let I of e.pullers)f+=await a(I,l);e.logger?.("sync-done",{totalMessages:f,conversations:l.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...l.values()]});}return {async sync(){if(o){i=true;return}o=true;try{do{i=!1;try{await s();}catch(l){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:l}});}}while(i)}finally{o=false;}}}}
|
|
2
|
-
export{aS as $,hh as $a,Os as A,fc as Aa,$I as B,ea as Ba,tm as C,pc as Ca,
|
|
1
|
+
import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function ul(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Invalid FILES_ALBUM object");return e}function gl(e){let n=ul(e),t=n.fileName??n.fielName,r=n.md5??n.MD5,o=n.fileSize??n.fileLength;if(typeof n.url!="string"||!/^https?:\/\//i.test(n.url)||typeof t!="string"||t===""||typeof n.extension!="string"||typeof r!="string"||r===""||typeof o!="number"||!Number.isSafeInteger(o)||o<0||typeof n.fileType!="number"||!Number.isInteger(n.fileType)||n.fileType<0||n.fileType>5||typeof n.fileEncryptType!="number"||![0,1,2,3].includes(n.fileEncryptType)||typeof n.teaKey!="string")throw new Error("Invalid FILES_ALBUM item");let i=n.extension.replace(/^\./,"").toLowerCase(),a=Uint8Array.from(globalThis.atob(n.teaKey),s=>s.charCodeAt(0));if(n.fileEncryptType!==1&&a.length===0)throw new Error("Missing FILES_ALBUM item key");return {url:n.url,fileName:t,extension:i,md5:r,size:o,fileType:["zip","rar","torrent"].includes(i)?5:n.fileType,fileEncryptType:n.fileEncryptType,...a.length===0?{}:{teaKey:a}}}function ml(e){let n=ul(JSON.parse(e.content));if(n.contentType!=="29"||!Array.isArray(n.items)||n.items.length===0||n.caption!==void 0&&typeof n.caption!="string")throw new Error("Invalid FILES_ALBUM body");return {items:n.items.map(gl),...typeof n.caption=="string"&&n.caption.trim()!==""?{caption:n.caption}:{}}}function fl(e){if(e.items.length!==1||(e.caption?.length??0)>1024)throw new Error("Invalid outgoing FILES_ALBUM size");let n=e.items.map(t=>{let r="";for(let i of t.teaKey??[])r+=String.fromCharCode(i);let o={url:t.url,fileName:t.fileName,extension:t.extension,fileType:t.fileType,md5:t.md5,fileSize:t.size,fileEncryptType:t.fileEncryptType,teaKey:globalThis.btoa(r)};return gl(o),o});return {contentType:29,content:JSON.stringify({contentType:"29",...e.caption?.trim()?{caption:e.caption}:{},items:n})}}var Ko=28,Il=1,Ma=2,gt=1024,Pt=9;function va(e){let n=e.caption!==void 0&&e.caption.trim()!=="",t=e.items.length===1?e.items[0]:void 0;return n||t===void 0?"mediaAlbum":t.kind}var Ea=512*1024,ba=256*1024;function Ft(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function wt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""){let o=Number(r);if(Number.isFinite(o))return o}}}function $p(e,n){for(let t of n){let r=e[t];if(typeof r=="boolean")return r;if(typeof r=="number"&&(r===0||r===1))return r===1;if(r==="true"||r==="false")return r==="true"}}function Ta(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function pl(e){let n=e.replace(/\s+/g,"");if(!(n===""||n.length%4!==0||!/^[A-Z0-9+/]*={0,2}$/i.test(n)))try{let t=globalThis.atob(n);return Uint8Array.from(t,r=>r.charCodeAt(0))}catch{return}}function yl(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function ey(e){return e!==void 0&&e!==1}function ny(e){if(!Ta(e))return;let n=wt(e,["mediaType","type"]);if(n!==Il&&n!==Ma)return;let t=Ft(e,["url","content"]);if(t===void 0)return;let r=wt(e,["fileEncryptType"]),o,i=Ft(e,["teaKey"]);if(i!==void 0&&(o=pl(i)),ey(r)&&(o===void 0||o.length===0))return;let a=wt(e,["width","imageWidth"])??0,s=wt(e,["height","imageHeight"])??0,l={kind:n===Ma?"video":"image",url:t,width:Number.isInteger(a)&&a>0?a:0,height:Number.isInteger(s)&&s>0?s:0},f=wt(e,["duration"]);l.kind==="video"&&f!==void 0&&f>0&&(l.durationMs=f);let I=Ft(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);I!==void 0&&(l.thumbUrl=I);let C=Ft(e,["thumbData"]);if(C!==void 0){let U=pl(C);U!==void 0&&U.length>0&&(l.thumbData=U);}let k=Ft(e,["md5","MD5"]);k!==void 0&&(l.md5=k);let N=wt(e,["fileSize","fileLength"]);N!==void 0&&N>0&&(l.size=N),o!==void 0&&o.length>0&&(l.teaKey=o),r!==void 0&&(l.fileEncryptType=r);let R=$p(e,["hd","isHd","isHD"]);return R!==void 0&&(l.hd=R),l}function Na(e){let n=JSON.parse(e.content);if(!Ta(n))throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61");let t=n,r=n.content;if(typeof r=="string"&&r!==""){let l=JSON.parse(r);if(!Ta(l))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=l;}let o=t.items,i=[];if(Array.isArray(o))for(let l of o){let f=ny(l);f!==void 0&&i.push(f);}let a={items:i},s=Ft(t,["caption"]);return s!==void 0&&s.trim()!==""&&(a.caption=s),a}function ty(e){return {mediaType:e.kind==="video"?Ma:Il,url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0&&e.durationMs>0?{duration:e.durationMs}:{},...e.thumbUrl!==void 0&&e.thumbUrl!==""?{thumbUrl:e.thumbUrl}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:yl(e.thumbData)}:{},...e.md5!==void 0&&e.md5!==""?{md5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileSize:e.size}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:yl(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function Lo(e){return new TextEncoder().encode(e).length}function ur(e){if(e.items.length===0)throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u6CA1\u6709\u53EF\u53D1\u9001\u7684\u9879");if(e.items.length>Pt)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > ${Pt}`);if(e.caption!==void 0&&e.caption.length>gt)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 ${gt} \u5B57\u7B26\u4E0A\u9650\uFF1A${e.caption.length}`);let n=e.caption!==void 0&&e.caption.trim()!==""?e.caption:void 0,t=JSON.stringify({...n===void 0?{}:{caption:n},items:e.items.map(ty)}),r=Lo(t);if(r>=Ea)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${Ea} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:Ko,content:t,...o===void 0?{}:{thumbData:o}}}function _a(e){return e===1?"gif":"sticker"}function Zo(e){if(typeof e!="string"||e.trim()==="")return false;try{let n=new URL(e.trim());return (n.protocol==="https:"||n.protocol==="http:")&&n.username===""&&n.password===""}catch{return false}}function Tt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function Da(e){if(e.exprType===2){if(!Zo(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Tt(e.width)||!Tt(e.height))throw new Error("sticker body: LINK \u5C3A\u5BF8\u975E\u6CD5")}let n={url:e.content,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType};return e.fileLength>0n&&(n.size=Number(e.fileLength)),e.describe!==""&&(n.describe=e.describe),e.contentId!==""&&(n.contentId=e.contentId),e.exprePackageName!==""&&(n.packageName=e.exprePackageName),e.thumbData.length>0&&(n.thumbData=e.thumbData),n}function Ga(e){if(e.exprType===2){if(!Zo(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Tt(e.width)||e.width===0||!Tt(e.height)||e.height===0)throw new Error("sticker body: \u51FA\u7AD9 LINK \u5C3A\u5BF8\u5FC5\u987B\u4E3A\u6B63 uint32")}return {contentType:7,content:e.url,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType,...e.size!==void 0&&e.size>0?{fileLength:BigInt(e.size)}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.contentId!==void 0&&e.contentId!==""?{contentId:e.contentId}:{},...e.packageName!==void 0&&e.packageName!==""?{exprePackageName:e.packageName}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{}}}var Cl,Sl,ry={text:e=>e.text??"",file:e=>[e.file?.fileName,e.file?.extension].filter(n=>n!==void 0&&n!=="").join(" "),contact:e=>[e.contact?.displayName,e.contact?.username,e.contact?.targetId].filter(n=>n!==void 0&&n!=="").join(" "),image:()=>"",video:()=>"",voice:()=>"",sticker:()=>"",filesAlbum:e=>[e.filesAlbum?.caption,...e.filesAlbum?.items.map(n=>n.fileName)??[]].filter(Boolean).join(" "),mediaAlbum:e=>e.mediaAlbum?.caption?.trim()??"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),robot:e=>e.robot?.modules.flatMap(n=>n.type==="section"?[n.content]:[]).filter(n=>n.trim()!=="").join(" ")??"",game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),gift:e=>[e.gift?.giftName,e.gift?.fromUserName,e.gift?.toUserName,e.gift?.explain].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function Qo(e){return ry[e.contentType](e.body)}function oy(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let i=o.index;t.push(Object.freeze({start:i,end:i+o[0].length}));}return Object.freeze(t)}function iy(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(a=>Number.isSafeInteger(a)&&a>=0&&a<e.length).sort((a,s)=>a-s);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let a of t.slice(1)){if(a===i+1){i=a;continue}r.push(Object.freeze({start:o,end:i+1})),o=a,i=a;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function sy(){return Cl??=import('pinyin-pro').then(e=>e.match),Cl}function ay(){return Sl??=import('pinyin-pro').then(e=>e.pinyin),Sl}async function dy(e){let t=e.trim().charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let i=(await ay())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function Ua(e){let n=e.trim().toLocaleLowerCase();if(n==="")throw new Error("IM \u6587\u672C\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A");let t=n.replace(/[\s'-]+/g,""),o=/^[a-z]+$/.test(t)?await sy():void 0;return Object.freeze({keyword:n,match(i,a={}){let s=oy(i,n);if(s.length>0)return Object.freeze({method:"direct",ranges:s});if(a.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let l=o(i,t);if(l===null)return null;let f=iy(i,l);return f.length===0?null:Object.freeze({method:"pinyin",ranges:f})}})}var cy=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function ly(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...my(e,n)];if(n.matchers!==void 0)for(let r of n.matchers)t.push(...r(e));return t.length===0?[{kind:"text",text:e}]:(t.sort((r,o)=>r.start-o.start||o.end-r.end),uy(e,t))}function uy(e,n){let t=[],r=0;for(let o of n)o.start<r||o.start<0||o.end<o.start||o.end+1>e.length||(o.start>r&&t.push({kind:"text",text:e.slice(r,o.start)}),t.push(o.segment),r=o.end+1);return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t.length>0?t:[{kind:"text",text:e}]}function gy(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function my(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?fy(n.atAllTexts??cy):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let a=i[1];if(a!==void 0&&!t.atUserIds.includes(a)){i=r.exec(e);continue}let s=a===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:gy(a,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:s}),i=r.exec(e);}return o}function fy(e){let n=e.filter(r=>r!=="");if(n.length===0)return /\[(\d+)\]/g;let t=[...n].sort((r,o)=>o.length-r.length).map(r=>`${py(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function py(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function gr(e,n){let t=n.trim();return t===""?e.toString():t}function Al(e){let n=e.trim();return n!==""&&n!=="0"}var yy=new Set(["audio","video"]),Iy=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function Ln(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function ka(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function xa(e,n){return n===void 0?e:{...e,outgoing:n}}function Ba(e,n){let t=Ln(e);if(t===void 0)return 0;if(!Number.isFinite(t)||t<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);let r=Math.round(n==="s"?t*1e3:t);if(!Number.isSafeInteger(r)||r<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);return r}function Cy(e){let n=e.trim();if(n==="")throw new Error("call record: content \u4E3A\u7A7A");let t;try{t=JSON.parse(n);}catch{throw new Error("call record: content \u4E0D\u662F JSON")}if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("call record: content \u4E0D\u662F\u5BF9\u8C61");return t}function Sy(e){if(e===0)return "video";if(e===1)return "audio";throw new Error(`call record: Android \u672C\u5730 callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function hl(e,n){if(e===0)return "audio";if(e===1)return "video";throw new Error(`call record: ${n} \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ay(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function hy(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function Ry(e,n){switch(e){case 0:case 5:return "missed";case 1:return n>0?"completed":"cancelled";case 2:return n>0?"completed":"missed";case 3:case 4:return "rejected";case 6:return "busy";case 7:return "no-permission";case 8:return "interrupted";default:return "unknown"}}function My(e){let n=Ln(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=Ln(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return xa({callKind:hl(n,"Android \u540C\u6B65 callType"),outcome:hy(t),durationMs:Ba(e.callDuration,"ms")},ka(e.isCaller))}function Ey(e){let n=Ln(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=Ln(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return xa({callKind:Sy(n),outcome:Ay(t),durationMs:Ba(e.duration,"ms")},ka(e.isCaller))}function Ty(e){let n=Ln(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=Ln(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=Ba(e.content,"s");return xa({callKind:hl(n,"iOS type"),outcome:Ry(t,r),durationMs:r},ka(e.isCaller))}function Rl(e){if(e===null||typeof e!="object")return false;let n=e;return !(!yy.has(n.callKind)||!Iy.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function Ml(e){let n=Cy(e.content);if("callDuration"in n)return My(n);if(Ln(n.callType)!==void 0&&Ln(n.callStatus)!==void 0)return Ey(n);if(Ln(n.type)!==void 0&&Ln(n.status)!==void 0)return Ty(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function El(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function vy(e){switch(e){case 0:return {kind:"individual"};case 1:return {kind:"group"};case 2:return {kind:"channel"};case 3:return {kind:"robot"};default:return {kind:"unknown",rawKind:e}}}function by(e,n){switch(e){case "individual":return 0;case "group":return 1;case "channel":return 2;case "robot":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("contact body: unknown \u540D\u7247\u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawKind/visitCardKey");return n}}function Tl(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...vy(e.visitCardKey)}}function vl(e){return {contentType:8,content:"",id:e.targetId,...e.avatar===void 0||e.avatar===""?{}:{icon:e.avatar},name:e.displayName,...e.username===void 0||e.username===""?{}:{username:e.username},gender:e.gender,visitCardKey:by(e.kind,e.rawKind)}}function bl(e){let n={url:e.content,fileName:e.fielName};return e.extension!==""&&(n.extension=e.extension),e.fileType!==0&&(n.fileType=e.fileType),e.fileLength>0n&&(n.size=Number(e.fileLength)),e.MD5!==""&&(n.md5=e.MD5),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Nl(e){return {contentType:11,content:e.url,...e.fileName!==""?{fielName:e.fileName}:{},...e.extension!==void 0&&e.extension!==""?{extension:e.extension}:{},...e.fileType!==void 0&&e.fileType!==0?{fileType:e.fileType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size))}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function mr(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.value!="number"||!Number.isInteger(n.value)?false:n.gameType==="rock-paper-scissors"?n.value>=1&&n.value<=3:n.gameType==="dice"&&n.value>=1&&n.value<=6}function _l(e){let n=Number(e.gameType),t=Number(e.gameValue);if(n===0){if(t!==1&&t!==2&&t!==3)throw new Error(`game body: \u77F3\u5934\u526A\u5200\u5E03\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"rock-paper-scissors",value:t}}if(n===1){if(t!==1&&t!==2&&t!==3&&t!==4&&t!==5&&t!==6)throw new Error(`game body: \u9AB0\u5B50\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"dice",value:t}}throw new Error(`game body: gameType \u975E\u6CD5\uFF08${String(e.gameType)}\uFF09`)}function Dl(e){let n=e;if(!mr(e))throw new Error(`game body: \u51FA\u7AD9\u7ED3\u679C\u975E\u6CD5\uFF08${String(n.gameType)}/${String(n.value)}\uFF09`);return {contentType:27,content:"",gameType:e.gameType==="dice"?1n:0n,gameValue:BigInt(e.value)}}function Wo(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function vt(e,n){if(e<0n)throw new Error(`gift body: ${n} \u975E\u6CD5`);return e.toString()}function bt(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`gift body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Gl(e){return e===0||e===1||e===2}function Ul(e){return e===0||e===1||e===2||e===3}function kl(e){return e===1||e===2}function Nt(e){return typeof e=="string"&&/^\d+$/.test(e.trim())}function Ho(e){if(e===null||typeof e!="object")return false;let n=e;return !(!Nt(n.fromUid)||!Nt(n.toUid)||!Nt(n.serialNumber)||typeof n.giftName!="string"||n.giftName.trim()===""||!Gl(n.giftType)||!Ul(n.state)||!kl(n.sessionType)||typeof n.initiateTime!="number"||!Number.isSafeInteger(n.initiateTime)||n.initiateTime<0||n.amount!==void 0&&!Nt(n.amount)||n.zhangCount!==void 0&&!Nt(n.zhangCount)||n.benCount!==void 0&&!Nt(n.benCount)||n.fissionNumber!==void 0&&!Nt(n.fissionNumber))}function wa(e){let n=e.giftType;if(!Gl(n))throw new Error(`gift body: giftType \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.state;if(!Ul(t))throw new Error(`gift body: state \u975E\u6CD5\uFF08${String(t)}\uFF09`);let r=e.sessionType;if(!kl(r))throw new Error(`gift body: sessionType \u975E\u6CD5\uFF08${String(r)}\uFF09`);return {fromUid:vt(e.fromUid,"fromUid"),toUid:vt(e.toUid,"toUid"),giftType:n,state:t,serialNumber:vt(e.serialNumber,"serialNumber"),sessionType:r,initiateTime:Number(e.initiateTime),giftName:e.giftName.trim(),...e.amount===0n?{}:{amount:vt(e.amount,"amount")},...Wo(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Wo(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Wo(e.explain)===void 0?{}:{explain:e.explain.trim()},...Wo(e.giftIcon)===void 0?{}:{giftIcon:e.giftIcon.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...e.zhangCount===0n?{}:{zhangCount:vt(e.zhangCount,"zhangCount")},...e.benCount===0n?{}:{benCount:vt(e.benCount,"benCount")},...e.fissionNumber===0n?{}:{fissionNumber:vt(e.fissionNumber,"fissionNumber")}}}function Fa(e){let n=e;if(!Ho(e))throw new Error(`gift body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.giftType)}\uFF09`);return {contentType:17,content:"",fromUid:bt(e.fromUid,"fromUid"),toUid:bt(e.toUid,"toUid"),giftType:e.giftType,state:e.state,serialNumber:bt(e.serialNumber,"serialNumber"),sessionType:e.sessionType,initiateTime:BigInt(e.initiateTime),giftName:e.giftName,...e.amount===void 0?{}:{amount:bt(e.amount,"amount")},...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.explain===void 0?{}:{explain:e.explain},...e.giftIcon===void 0?{}:{giftIcon:e.giftIcon},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.zhangCount===void 0?{}:{zhangCount:bt(e.zhangCount,"zhangCount")},...e.benCount===void 0?{}:{benCount:bt(e.benCount,"benCount")},...e.fissionNumber===void 0?{}:{fissionNumber:bt(e.fissionNumber,"fissionNumber")}}}function xl(e){let n={url:e.content,width:e.width,height:e.height};return e.thumbData.length>0&&(n.thumbData=e.thumbData),e.MD5!==""&&(n.md5=e.MD5),e.imageType!==0&&(n.imageType=e.imageType),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Bl(e){return {contentType:2,content:e.url,width:e.width,height:e.height,...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.imageType!==void 0&&e.imageType!==0?{imageType:e.imageType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Un(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function wl(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:void 0}function Ny(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};case 3:return {showType:"game-preview"};default:return {showType:"unknown",rawShowType:e}}}function _y(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "game-preview":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function Dy(e){return e.showType==="unknown"&&e.rawShowType===3}function Vt(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.appId!="string"||n.appId.trim()===""||typeof n.isDynamicHost!="boolean"?false:n.showType==="unknown"?typeof n.rawShowType=="number"&&Number.isInteger(n.rawShowType)&&n.rawShowType>3&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"||n.showType==="game-preview"}function Pa(e){return {appId:e.miniProgramAppId,...Un(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...Un(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...Un(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...Un(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...Un(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...Un(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...Ny(e.miniProgramShowType),...Un(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...Un(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...Un(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...Un(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...Un(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()},...Un(e.miniProgramGamePreviewUrl)===void 0?{}:{gamePreviewUrl:e.miniProgramGamePreviewUrl.trim()},...wl(e.miniProgramGamePreviewWidth)===void 0?{}:{gamePreviewWidth:e.miniProgramGamePreviewWidth},...wl(e.miniProgramGamePreviewHeight)===void 0?{}:{gamePreviewHeight:e.miniProgramGamePreviewHeight}}}function Va(e){let n=e;if(!Vt(e))throw new Error(`miniProgram body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.appId)}/${String(n.showType)}\uFF09`);return {contentType:22,content:"",miniProgramAppId:e.appId,...e.host===void 0?{}:{miniProgramHost:e.host},...e.developerId===void 0?{}:{miniProgramDeveloperId:e.developerId},...e.name===void 0?{}:{miniProgramName:e.name},...e.icon===void 0?{}:{miniProgramIcon:e.icon},...e.productId===void 0?{}:{miniProgramProductId:e.productId},miniProgramIsDynamicHost:e.isDynamicHost?1:0,...e.suffixAddress===void 0?{}:{miniProgramSuffixAddress:e.suffixAddress},miniProgramShowType:_y(e.showType,e.rawShowType),...e.description===void 0?{}:{miniProgramDescription:e.description},...e.currencySource===void 0?{}:{currencySource:e.currencySource},...e.currencyType===void 0?{}:{miniProgramCurrencyType:e.currencyType},...e.gamePath===void 0?{}:{miniProgramGamePath:e.gamePath},...e.subGameName===void 0?{}:{miniProgramSubGameName:e.subGameName},...e.gamePreviewUrl===void 0?{}:{miniProgramGamePreviewUrl:e.gamePreviewUrl},...e.gamePreviewWidth===void 0?{}:{miniProgramGamePreviewWidth:e.gamePreviewWidth},...e.gamePreviewHeight===void 0?{}:{miniProgramGamePreviewHeight:e.gamePreviewHeight}}}function fr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Yo(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function Jo(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`red packet body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Fl(e){return e===1||e===2||e===3||e===4}function Gy(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Fl(n.packetType)||n.amount!==void 0&&(typeof n.amount!="string"||n.amount.trim()==="")||n.count!==void 0&&(typeof n.count!="string"||!/^\d+$/.test(n.count.trim()))||n.thunderRate!==void 0&&typeof n.thunderRate!="string"||n.thunderNumber!==void 0&&(typeof n.thunderNumber!="string"||!/^\d+$/.test(n.thunderNumber.trim()))||n.fromUid!==void 0&&(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim()))||n.toUid!==void 0&&(typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim()))||n.currencyType!==void 0&&(typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0)||n.coinName!==void 0&&typeof n.coinName!="string"||n.showAmount!==void 0&&typeof n.showAmount!="boolean"||n.isThunder!==void 0&&typeof n.isThunder!="boolean")}function Pl(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Fl(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:Yo(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:Yo(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...fr(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...fr(e.redPacketThunderRate)===void 0?{}:{thunderRate:e.redPacketThunderRate.trim()},...e.redPacketIsThunder?{isThunder:true}:{},...e.redPacketThunderNumber===0n?{}:{thunderNumber:e.redPacketThunderNumber.toString()},...t===void 0?{}:{fromUid:t},...r===void 0?{}:{toUid:r},...e.currencyType===0?{}:{currencyType:e.currencyType},...fr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function Vl(e){let n=e;if(!Gy(e))throw new Error(`red packet body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.packetId)}/${String(n.packetType)}\uFF09`);return {contentType:25,content:"",radPacketId:e.packetId.trim(),radPacketType:e.packetType,...e.amount===void 0?{}:{radPacketAmount:e.amount.trim()},...e.count===void 0?{}:{redPacketCount:Jo(e.count,"count")},...e.showAmount===true?{redPacketIsShowAmount:true}:{},...e.thunderRate===void 0?{}:{redPacketThunderRate:e.thunderRate},...e.isThunder===true?{redPacketIsThunder:true}:{},...e.thunderNumber===void 0?{}:{redPacketThunderNumber:Jo(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:Jo(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:Jo(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Ol(e){let n=Yo(e.fromUid,"fromUid"),t=Yo(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=fr(e.radPacketId),i=fr(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...i===void 0?{}:{amount:i},isThunder:r}}}function Oa(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Kl(e,n){if(!Oa(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:i,...a}=e;return a}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}var Uy=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function Ot(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function Zn(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function Ka(e){return Array.isArray(e)?e:[]}function yn(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function ky(e){let n=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;if(!(!Number.isFinite(n)||n<=0))return n>1e12?n:n*1e3}function xy(e){let n=Ot(e)??e,t=Zn(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=Ot(t.content)??t.content,i=Zn(o);return i===void 0?{content:o,children:void 0}:{content:Ot(i.content)??i.content,children:i.children}}return {content:Ot(t.content)??t.content,children:t.children}}function By(e){let n=e.trim();if(!n.startsWith("["))return;let t=Ot(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>Zn(o)?.type!==void 0))return;let r=Zl(t);return r.length>0?r:void 0}function wy(e){let n=Zn(e.text),t=yn(n?.content)??"",r=By(t);return r!==void 0?r:{type:"section",textType:yn(n?.type)??"plain-text",content:t}}function Fy(e){let n=Ka(e.elements).map(t=>yn(Zn(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function Py(e){let n=ky(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function Vy(e){let n=Zn(e);if(n===void 0)return;let t=yn(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return wy(n);if(t==="image-group")return Fy(n);if(t==="countdown")return Py(n)}}function Zl(e){let n=Array.isArray(e)?e:Ka(Ot(e)),t=[];for(let r of n){let o=Vy(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function Oy(e){let n=Zn(e);if(n===void 0)return;let t=yn(n.path),r=yn(n.app_id)??yn(n.appId),o=yn(n.domain);if(!(t===void 0&&r===void 0&&o===void 0))return {...t===void 0?{}:{path:t},...r===void 0?{}:{appId:r},...o===void 0?{}:{domain:o}}}function Ll(e){let n=Zn(e),t=yn(n?.menu_name)??yn(n?.menuName);if(n===void 0||t===void 0)return;let r=yn(n.menu_id)??yn(n.menuId),o=yn(n.msg_type)??yn(n.messageType),i=Oy(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function Ky(e){let n=[];for(let t of Ka(e)){if(Array.isArray(t)){let o=t.map(Ll).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=Ll(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function Ly(e){let n=Zn(e);return n===void 0?false:n.type==="section"?typeof n.textType=="string"&&typeof n.content=="string":n.type==="image-group"?Array.isArray(n.images)&&n.images.every(t=>typeof t=="string"&&t.trim()!==""):n.type==="countdown"?typeof n.endTimeMs=="number"&&Number.isFinite(n.endTimeMs)&&n.endTimeMs>0:false}function Zy(e){let n=Zn(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function La(e){let n=Zn(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(Ly)&&n.commands.every(t=>Array.isArray(t)&&t.every(Zy))}function Qy(e){let n=xy(e);return {modules:Zl(n.content),commands:Ky(n.children)}}function Ql(e){try{return Qy(e.content)}catch{return Uy}}function Wy(e){return e.type==="section"?{type:"section",text:{type:e.textType,content:e.content}}:e.type==="image-group"?{type:"image-group",elements:e.images.map(n=>({type:"image",src:n}))}:{type:"countdown",endTime:String(e.endTimeMs)}}function Hy(e){return {menu_name:e.menuName,...e.menuId===void 0?{}:{menu_id:e.menuId},...e.messageType===void 0?{}:{msg_type:e.messageType},...e.miniProgram===void 0?{}:{msg_content:{...e.miniProgram.path===void 0?{}:{path:e.miniProgram.path},...e.miniProgram.appId===void 0?{}:{app_id:e.miniProgram.appId},...e.miniProgram.domain===void 0?{}:{domain:e.miniProgram.domain}}}}}function Wl(e){if(!La(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:18,content:JSON.stringify({content:e.modules.map(Wy),children:e.commands.map(n=>n.map(Hy))})}}function Kt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Xo(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function zo(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`transfer body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Hl(e){return e===0||e===1||e===2||e===3}function Jl(e){return e===1||e===2}function qo(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim())||typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim())||typeof n.amount!="string"||!/^\d+$/.test(n.amount.trim())||typeof n.serialNumber!="string"||!/^\d+$/.test(n.serialNumber.trim())||typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0||typeof n.transferTime!="number"||!Number.isSafeInteger(n.transferTime)||n.transferTime<0||!Hl(n.status)||!Jl(n.sessionType))}function Za(e){let n=e.status;if(!Hl(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Jl(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:Xo(e.fromUid,"fromUid"),toUid:Xo(e.toUid,"toUid"),amount:Xo(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:Xo(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...Kt(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Kt(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Kt(e.remark)===void 0?{}:{remark:e.remark.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...Kt(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...Kt(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...Kt(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Qa(e){let n=e;if(!qo(e))throw new Error(`transfer body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.status)}\uFF09`);return {contentType:16,content:"",fromUid:zo(e.fromUid,"fromUid"),toUid:zo(e.toUid,"toUid"),amount:zo(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:zo(e.serialNumber,"serialNumber"),sessionType:e.sessionType,transferTime:BigInt(e.transferTime),...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.remark===void 0?{}:{remark:e.remark},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.transferMsgId===void 0?{}:{msgId:e.transferMsgId},...e.coinName===void 0?{}:{coinName:e.coinName},...e.coinIcon===void 0?{}:{coinIcon:e.coinIcon}}}function Yl(e){let n={url:e.content,width:e.width,height:e.height},t=Jy(e);return t!==void 0&&(n.duration=t,t!==e.duration&&(n.durationUnit="seconds")),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.unverifiedFileLength=e.fileLength.toString()),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Wa(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function Jy(e){let n=e.duration;if(!Number.isFinite(n)||n<=0)return;let t=e.fileEncryptType===0&&e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300;return Wa(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function jo(e){if(e.size!==void 0&&e.sizeUnit!=="bytes"){let{size:n,...t}=e;e={...t,...t.unverifiedFileLength===void 0&&Number.isSafeInteger(n)&&n>0?{unverifiedFileLength:String(Math.round(n/1024))}:{}};}return e.durationUnit==="seconds"||e.duration===void 0||!Number.isFinite(e.duration)||e.duration<=0||!Wa(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Xl(e){let n=Wa(e.fileEncryptType,e.teaKey)?1e3:1,t=Yy(e);return {contentType:3,content:e.url,width:e.width,height:e.height,...e.duration!==void 0&&Number.isFinite(e.duration)&&e.duration>0?{duration:Math.max(1,Math.round(e.duration*n))}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...t===void 0?{}:{fileLength:t},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Yy(e){if(e.size!==void 0){if(!Number.isSafeInteger(e.size)||e.size<0)throw new RangeError("\u89C6\u9891 size \u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");return e.size===0?void 0:BigInt(e.size)}if(e.unverifiedFileLength!==void 0){if(!/^\d{1,20}$/.test(e.unverifiedFileLength)||BigInt(e.unverifiedFileLength)>0xFFFFFFFFFFFFFFFFn)throw new RangeError("\u89C6\u9891\u5386\u53F2 fileLength \u5FC5\u987B\u4E3A uint64 \u5341\u8FDB\u5236\u6574\u6570");return BigInt(e.unverifiedFileLength)}}function zl(e){let n={url:e.content,durationMs:e.duration};return e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function ql(e){return {contentType:4,content:e.url,duration:Math.max(0,Math.round(e.durationMs)),...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}var ru=1,ou=[{wireContentType:29,domainContentType:"filesAlbum",parse:e=>({filesAlbum:ml(e)}),build:e=>e.filesAlbum===void 0?void 0:fl(e.filesAlbum)},{wireContentType:2,domainContentType:"image",parse:e=>({image:xl(e)}),build:e=>e.image!==void 0?Bl(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Yl(e)}),build:e=>e.video!==void 0?Xl(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:zl(e)}),build:e=>e.voice!==void 0?ql(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:bl(e)}),build:e=>e.file!==void 0?Nl(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:Da(e)}),build:e=>e.sticker!==void 0?Ga(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:Tl(e)}),build:e=>e.contact!==void 0?vl(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:Pa(e)}),build:e=>e.miniProgram!==void 0?Va(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:_l(e)}),build:e=>e.game!==void 0?Dl(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:Za(e)}),build:e=>e.transfer!==void 0?Qa(e.transfer):void 0},{wireContentType:17,domainContentType:"gift",parse:e=>({gift:wa(e)}),build:e=>e.gift!==void 0?Fa(e.gift):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:Ml(e)}),build:e=>e.call!==void 0?El(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:Pl(e)}),build:e=>e.redPacket!==void 0?Vl(e.redPacket):void 0},{wireContentType:Ko,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:Na(e)}),build:e=>e.mediaAlbum!==void 0?ur(e.mediaAlbum):void 0},{wireContentType:18,domainContentType:"robot",parse:e=>({robot:Ql(e)}),build:e=>e.robot!==void 0&&La(e.robot)?Wl(e.robot):void 0}],iI=[{contentType:"text",read:e=>e.text},{contentType:"system",read:e=>e.system},{contentType:"image",read:e=>e.image},{contentType:"video",read:e=>e.video},{contentType:"voice",read:e=>e.voice},{contentType:"file",read:e=>e.file},{contentType:"filesAlbum",read:e=>e.filesAlbum},{contentType:"sticker",read:e=>e.sticker},{contentType:"contact",read:e=>e.contact},{contentType:"miniProgram",read:e=>e.miniProgram},{contentType:"game",read:e=>e.game},{contentType:"transfer",read:e=>e.transfer},{contentType:"gift",read:e=>e.gift},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"mediaAlbum",read:e=>e.mediaAlbum},{contentType:"robot",read:e=>e.robot},{contentType:"unknown",read:e=>e.unknown}];function Yn(e,n){if(e.contentType===ru)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Kl(Ol(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=ou.find(r=>r.wireContentType===e.contentType);if(t===void 0)return {contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}}};try{return {contentType:t.domainContentType,body:t.parse(e)}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}}function Ha(e,n,t="outgoing message"){let r=iI.filter(o=>o.read(n)!==void 0).map(o=>o.contentType);if(r.length!==1||r[0]!==e){let o=r.length===0?"empty":r.join(",");throw new Error(`${t}: contentType/body \u4E0D\u4E00\u81F4\uFF08contentType=${e}, body=${o}\uFF09`)}En(n);}function En(e){if(e.unknown!==void 0)throw new Error("unknown message body \u4E0D\u53EF\u7F16\u7801\u4E3A\u51FA\u7AD9\u6D88\u606F");for(let n of ou){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:ru,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var Ja=/^[0-9a-f]{32}$/;function kn(e){return Ja.test(e.replace(/-/g,"").toLowerCase())}function Tn(){return globalThis.crypto.randomUUID()}function be(e){let n=e.replace(/-/g,"").toLowerCase();if(!kn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function cn(e){let n=e.replace(/-/g,"").toLowerCase();return Ja.test(n)?n:e}function ye(e){let n=e.toLowerCase();return Ja.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function $o(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function Xn(e){return $o(e)??e.createdAt}function zn(e){let n=e.conversationType==="channel"?e.extensions?.channelSequence:void 0,t=typeof n=="string"&&/^\d+$/.test(n)?`${n.padStart(20,"0")}:${e.id}`:e.id;return _e(Xn(e),t)}function _e(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function nn(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Ya=9,sI=20;function pr(e,n){let t=BigInt(e.conversationId),r=BigInt(n.selfId);if(t<=0n)throw new Error("channel outgoing: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(r<=0n)throw new Error("channel outgoing: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Number.isFinite(n.createdAt)||n.createdAt<0)throw new Error("channel outgoing: createdAt \u975E\u6CD5");let o={sRadioId:t,sFromId:r,sMsgId:be(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:Ya,encrypt:2,bMessage:En(e.body)};return e.mention!==void 0&&Object.assign(o,aI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=cn(e.refMessageId)),o}function aI(e){let n={nNotifyCount:e.atAll?-1:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(BigInt));let t=e.ranges!==void 0&&e.ranges.length>0,r=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;return (t||r)&&(n.extend=JSON.stringify({sendType:0,...r?{atUsersName:e.atUsersName}:{},...t?{atRange:e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))}:{}})),n}function qn(e,n,t){return za({senderId:gr(e.sFromId,e.botId),channelId:e.sRadioId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sId,sequence:e.nIncrId,notifyCount:e.nNotifyCount,notifyUsers:e.sNotifyUsers.map(String),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==""&&e.isEdit!=="0",oldMessageId:e.oldMsgId},n,t)}function Xa(e,n,t){return za(su(e),n,t)}function iu(e,n,t){return za(su(e),void 0,t,n)}function su(e){return {senderId:gr(e.sFromId,e.botId),channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:cI(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function za(e,n,t,r){dI(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=ye(e.messageId),i=e.senderId,a=e.channelId.toString(),s=Number(e.msgTime),l=s>0?s:t.receivedAt??Date.now(),f=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:Yn(n,t.selfId),I=lI(e,f.body.text??""),C=e.sequence.toString(),k={channelMessageType:Ya,channelSequence:C,historyCursor:e.historyCursor};e.oldMessageId!==""&&(k.previousMessageId=ye(e.oldMessageId));let N={id:o,conversationId:a,conversationType:"channel",senderId:i,contentType:f.contentType,body:f.body,createdAt:l,sortKey:_e(l,`${C.padStart(sI,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:k};return t.decryptFailed===true&&(N.encryption.decryptFailed=true),s>0&&(N.serverTime=s),e.parentMessageId!==""&&(N.refMessageId=ye(e.parentMessageId)),(e.edited||t.edited===true)&&(N.edited=true),I!==void 0&&(N.mention=I),t.keepRaw&&(N.raw=yI(e,n,t.cmdId,r)),N}function dI(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Al(e.senderId))throw new Error("channel message: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel message: message id \u7F3A\u5931");if(e.historyCursor.trim()===""&&!n)throw new Error("channel message: history cursor \u7F3A\u5931")}function cI(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(ei)}catch{}return n.split(/[\s,;]+/).filter(ei)}function lI(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=gI(e.notifyUsers.filter(ei),uI(n)),{ranges:o,atUsersName:i}=mI(e.extend);if(!(!t&&r.length===0&&o===void 0&&i===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...i===void 0?{}:{atUsersName:i}}}function uI(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function gI(e,n){return [...new Set([...e,...n])]}function ei(e){return /^[1-9]\d*$/.test(e)}function mI(e){if(e==="")return {};try{let n=JSON.parse(e),t=fI(n.atRange),r=pI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function fI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t;(typeof r.user_id=="string"||typeof r.user_id=="number")&&typeof r.start=="number"&&Number.isInteger(r.start)&&r.start>=0&&typeof r.end=="number"&&Number.isInteger(r.end)&&r.end>=r.start&&n.push({userId:String(r.user_id),start:r.start,end:r.end});}return n.length===0?void 0:n}function pI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))ei(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function yI(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:Ya,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,parentMsgId:e.parentMessageId||void 0},...n===void 0?{}:{content:{contentType:n.contentType,text:n.content||void 0}},...r===void 0?{}:{contentDecodeFailure:{codec:"BMessage",byteLength:r}}}}var xn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var Cn=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),au=messageDesc(Cn,0);var du=messageDesc(Cn,2);var cu=messageDesc(Cn,5);var lu=messageDesc(Cn,7),uu=messageDesc(Cn,8);var gu=messageDesc(Cn,10);messageDesc(Cn,11);messageDesc(Cn,12);messageDesc(Cn,13);messageDesc(Cn,15);var Iu=messageDesc(Cn,16),Cu=messageDesc(Cn,17);messageDesc(Cn,18);messageDesc(Cn,20);var wn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(wn,0);messageDesc(wn,1);var Mu=messageDesc(wn,2),Eu=messageDesc(wn,3),Tu=messageDesc(wn,4),vu=messageDesc(wn,5);var bu=messageDesc(wn,11),Nu=messageDesc(wn,12);var _u=messageDesc(wn,17),Du=messageDesc(wn,18),Gu=messageDesc(wn,19),Uu=messageDesc(wn,20);var xu=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi4hAKCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCRIhChltaW5pUHJvZ3JhbUdhbWVQcmV2aWV3VXJsGF4gASgJEiMKG21pbmlQcm9ncmFtR2FtZVByZXZpZXdXaWR0aBhfIAEoDRIkChxtaW5pUHJvZ3JhbUdhbWVQcmV2aWV3SGVpZ2h0GGAgASgNYgZwcm90bzM");var Bu=messageDesc(xu,1),wu=messageDesc(xu,2);var ft=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),_t=messageDesc(ft,0),Lt=messageDesc(ft,1),yr=messageDesc(ft,2),Ir=messageDesc(ft,3),qa=messageDesc(ft,4),ja=messageDesc(ft,5),$a=messageDesc(ft,6),Fu=messageDesc(ft,7);var An=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),Cr=messageDesc(An,0),ni=messageDesc(An,1),Pu=messageDesc(An,2);var Vu=messageDesc(An,5),Ou=messageDesc(An,6),Ku=messageDesc(An,7),Lu=messageDesc(An,8),Zu=messageDesc(An,9),Qu=messageDesc(An,10),Wu=messageDesc(An,11);var Hu=messageDesc(An,14),ed=messageDesc(An,15),nd=messageDesc(An,16),Ju=messageDesc(An,17);var Ar=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[xn]),Yu=messageDesc(Ar,0),Xu=messageDesc(Ar,1),zu=messageDesc(Ar,2),qu=messageDesc(Ar,3),ju=messageDesc(Ar,4);var Qe=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[xn]),Zt=messageDesc(Qe,0),td=messageDesc(Qe,1),$u=messageDesc(Qe,2),rd=messageDesc(Qe,3),eg=messageDesc(Qe,4);var od=messageDesc(Qe,7);var ng=messageDesc(Qe,9),tg=messageDesc(Qe,10),id=messageDesc(Qe,11),sd=messageDesc(Qe,12),rg=messageDesc(Qe,13);var og=messageDesc(Qe,15),ig=messageDesc(Qe,16),sg=messageDesc(Qe,17);var ag=messageDesc(Qe,26);var dg=messageDesc(Qe,29);var cg=messageDesc(Qe,33);var ad=messageDesc(Qe,48),ti=messageDesc(Qe,49);var lg=messageDesc(Qe,51),ug=messageDesc(Qe,52);var gg=messageDesc(Qe,55);var mg=messageDesc(Qe,58),fg=messageDesc(Qe,59),pg=messageDesc(Qe,60);var cd=fileDesc("Cg5pbS5yb2JvdC5wcm90bxIKaW0uYXBwLnB0bCJdCghSb2JvdE1zZxIOCgZ1c2VySWQYASABKAMSDwoHcm9ib3RJZBgCIAEoCRIPCgdjb250ZW50GAMgASgJEg8KB21zZ1RpbWUYBCABKAMSDgoGc01zZ0lkGAUgASgJImMKC1JvYm90TXNnQWNrEg4KBnVzZXJJZBgBIAEoAxIPCgdyb2JvdElkGAIgASgJEiQKB2VyckNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDQoFbXNnSWQYBCABKAkiZgoRUm9ib3RSZXBseVVzZXJNc2cSDgoGdXNlcklkGAEgASgDEg8KB3JvYm90SWQYAiABKAkSDgoGc01zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoA0IfChNjb20ubW9zYW50LmltLnByb3RvSANaBi4uL2FwcGIGcHJvdG8z",[xn]),yg=messageDesc(cd,0),Ig=messageDesc(cd,1),Cg=messageDesc(cd,2);var je=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[xn]),ld=messageDesc(je,0),Sg=messageDesc(je,1),Ag=messageDesc(je,2),ud=messageDesc(je,3),hg=messageDesc(je,4),Rg=messageDesc(je,5),gd=messageDesc(je,6);var Mg=messageDesc(je,8),md=messageDesc(je,9),Eg=messageDesc(je,10),Tg=messageDesc(je,11),fd=messageDesc(je,12),vg=messageDesc(je,13),bg=messageDesc(je,14),pd=messageDesc(je,15),rt=messageDesc(je,16),ot=messageDesc(je,17),yd=messageDesc(je,18),Id=messageDesc(je,19),hr=messageDesc(je,20),Cd=messageDesc(je,21),Sd=messageDesc(je,22),Ad=messageDesc(je,23);var oi=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var Ng=messageDesc(oi,1),_g=messageDesc(oi,2);var Dg=messageDesc(oi,4),Gg=messageDesc(oi,5);function w(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Ge(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Bg(e=[]){let n=new Map,t=r=>{n.set(r.command,r);};for(let r of e)t(r);return {register:t,get:r=>n.get(r),has:r=>n.has(r)}}var Rr=w(257,Yu),Mr=w(261,qu),ii=w(262,ju),si=w(258,Xu),hd=w(264,zu),pt=w(4097,Zt),ai=w(4098,td),di=w(4100,Zt),yt=w(4099,rd),Er=w(4647,yg),ci=w(4648,Ig),li=w(4649,Cg),ui=w(24579,mg),gi=w(4650,Zt),mi=w(4651,Zt),fi=w(4652,td),pi=w(4653,Zt),yi=w(4631,lg),Tr=w(4632,ug),Ii=w(4633,gg),Ci=w(4627,ag),vr=w(4628,dg),Rd=Ge(cg),Si=w(4356,rg),br=w(4355,og),Ai=w(4360,ig),Nr=w(4359,sg),_r=w(4107,id),hi=w(4108,sd),Ri=w(4110,id),Dr=w(4109,sd),Gr=w(8197,Lu),Mi=w(8198,Zu),Ei=w(4644,fg),Ti=w(4646,pg),vi=w(8976,Ju),bi=w(8977,ni),Ni=w(4102,rd),Ur=w(4101,eg),kr=w(4103,od),_i=w(4104,ng),Di=w(4106,od),xr=w(4105,tg),Dt=w(4117,ad),Gi=w(4118,ti),Ui=w(4119,ad),jn=w(8193,Cr),ki=w(8194,ni),xi=w(8196,Cr),Br=w(8195,Pu),wr=w(8978,Cr),Bi=w(8979,ni),wi=w(8980,Cr),Fr=w(8967,nd),Fi=w(8968,ti),Pi=w(8969,nd),Qt=w(8708,Wu),Pr=w(8707,Ou),Vi=w(8452,Qu),Vr=w(8451,Vu),Oi=w(8964,Hu),Or=w(8963,ed),Ki=w(8966,ed),Kr=w(8965,Ku),it=w(12289,_t),Li=w(12290,Lt),Lr=w(12291,yr),Zi=w(12292,_t),wg=w(12816,_t),Zr=w(12817,_t),Qi=w(12818,Lt),Wi=w(12819,_t),Qr=w(12293,Ir),Hi=w(12294,Lt),Ji=w(12295,yr),Yi=w(12296,Ir),Wr=w(12297,Ir),Xi=w(12298,Lt),zi=w(12299,yr),qi=w(12300,Ir),Hr=w(12547,ja),ji=w(12548,qa),Fg=w(12551,ja),Pg=w(12552,qa),Jr=w(12803,yr),$i=w(12804,_t),Yr=w(12805,$a),es=w(12806,ti),ns=w(12807,$a),ts=w(12808,Fu),rs=w(12809,Lt),Xr=w(16385,ld),os=w(16386,Sg),zr=w(16387,Ag),is=w(16388,ld),qr=w(16389,ud),ss=w(16390,hg),jr=w(16391,Rg),as=w(16392,ud),$r=w(16395,Mg),ds=w(16396,gd),Wt=w(16397,md),cs=w(16398,Eg),eo=w(16399,Tg),Vg=w(16400,md),no=w(16401,fd),ls=w(16402,vg),to=w(16403,bg),us=w(16404,fd),ro=w(16641,pd),gs=w(16642,rt),oo=w(16643,ot),ms=w(16644,pd),io=w(16645,yd),fs=w(16646,rt),Og=w(16647,ot),ps=w(16648,yd),so=w(16649,Id),ys=w(16650,rt),Kg=w(16651,ot),Is=w(16652,Id),ao=w(16653,hr),Cs=w(16654,rt),Lg=w(16655,ot),Ss=w(16656,hr),co=w(16657,hr),As=w(16658,rt),Zg=w(16659,ot),hs=w(16660,hr),lo=w(16661,Cd),Rs=w(16662,rt),Qg=w(16663,ot),Ms=w(16664,Cd),Wg=w(16665,Sd),Hg=w(16666,rt),Jg=w(16667,ot),Es=w(16668,Sd),uo=w(16669,Ad),Ts=w(16670,rt),Yg=w(16671,ot),vs=w(16672,Ad),Se=Ge(wu),Ke=Ge(Bu),Ht=Ge($u),bs=Ge(Ng),Md=Ge(_g),Ns=Ge(Dg),Ed=Ge(Gg),_s=Ge(Tu),Td=Ge(vu),Ds=Ge(bu),vd=Ge(Nu),Gs=Ge(_u),Us=Ge(Du),ks=Ge(Gu),bd=Ge(Uu),xs=Ge(Mu),Nd=Ge(Eu),Bs=Ge(au),_d=Ge(du),ws=Ge(cu),go=Ge(lu),GI=Ge(uu),UI=Ge(gu),Fs=Ge(Iu),Dd=Ge(Cu);Bg([Rr,Mr,ii,si,pt,ai,Er,ci,li,ui,di,yt,gi,mi,fi,pi,yi,Tr,Ii,Ci,vr,Si,br,Ai,Nr,_r,hi,Ri,Dr,Ti,Ni,Ur,kr,_i,Di,xr,Dt,Gi,Ui,jn,ki,Gr,Mi,bi,xi,Br,wr,Bi,wi,Fr,Fi,Pi,Qt,Pr,Vi,Vr,Oi,Or,Ki,Kr,it,Li,Lr,Zi,wg,Zr,Qi,Wi,Qr,Hi,Ji,Yi,Wr,Xi,zi,qi,Hr,ji,Fg,Pg,Jr,$i,Yr,es,ns,rs,Xr,os,zr,is,qr,ss,jr,as,$r,ds,Wt,cs,eo,Vg,no,ls,to,us,ro,gs,oo,ms,io,fs,Og,ps,so,ys,Kg,Is,ao,Cs,Lg,Ss,co,As,Zg,hs,lo,Rs,Qg,Ms,Wg,Hg,Jg,Es,uo,Ts,Yg,vs]);var hn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function qg(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new hn(n,"board pinned message Base64 \u975E\u6CD5");try{let t=globalThis.atob(e);if(globalThis.btoa(t)!==e)throw new Error("Base64 \u975E\u89C4\u8303\u7F16\u7801");return Uint8Array.from(t,r=>r.charCodeAt(0))}catch(t){throw new hn(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Xg(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function OI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function KI(e){return e===void 0||Number.isInteger(e)}function mo(e){return e===void 0||e===0||e===1}function zg(e){return e===void 0||typeof e=="string"}function jg(e){if(!OI(e)||e.convType!==2&&e.convType!==3||typeof e.msgContent!="string"||e.msgContent===""||typeof e.msgId!="string"||e.msgId===""||typeof e.msgTime!="string"||!/^\d+$/.test(e.msgTime)||!Number.isInteger(e.msgType)||Number(e.msgType)<=0||typeof e.receiverId!="string"||e.receiverId===""||typeof e.senderId!="string"||e.senderId===""||!mo(e.isBrowse)||!mo(e.isCancel)||!mo(e.isEdit)||!mo(e.isNotifyAll)||!zg(e.notifyUsersName)||!zg(e.parentMsgId)||!mo(e.readStatus)||!KI(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new hn("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function LI(e){let n;try{if(n=qg(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=Se.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof hn?t:new hn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function fo(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(qg(e,"INVALID_BASE64"));}catch(r){throw r instanceof hn?r:new hn("INVALID_BASE64","board pinned message \u5916\u5C42 UTF-8/Base64 \u975E\u6CD5",{cause:r})}let t;try{t=JSON.parse(n);}catch(r){throw new hn("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return jg(t),{envelope:t,message:LI(t.msgContent)}}function po(e){let n=Se.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new hn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Xg(n)};return jg(t),Xg(new TextEncoder().encode(JSON.stringify(t)))}var ZI=new Uint8Array(0);function Ps(e,n,t){let r=2**n-1;if(!Number.isInteger(e)||e<0||e>r)throw new Error(`\u5E27\u5B57\u6BB5 ${t} \u8D8A\u754C\uFF1A${e}\uFF0C\u5E94\u4E3A [0, ${r}] \u5185\u6574\u6570`)}function X(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;Ps(e.command,16,"command"),Ps(n,8,"flags"),Ps(t,8,"appId"),Ps(r,32,"msgSeq");let o=e.body??ZI,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let a=new Uint8Array(16+i),s=new DataView(a.buffer);return s.setUint32(0,12+i,false),s.setUint8(4,n),s.setUint8(5,t),s.setUint16(6,e.command,false),s.setUint32(8,i,false),s.setUint32(12,r,false),a.set(o,16),a}function Gd(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let i=4+o;if(e.length-r<i)break;let a=t.getUint32(r+8,false);if(o!==12+a)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${a} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let s={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:a,msgSeq:t.getUint32(r+12,false)},l=e.subarray(r+16,r+i);n.push({header:s,body:l}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var QI=5;function It(e,n,t){let r=gr(e.sFromId,e.botId),o=Number(e.msgTime),i=ye(e.sMsgId),a=Yn(n,t.selfId),s=a.contentType==="text",l=o>0?o:t.receivedAt??Date.now(),f={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:a.contentType,body:a.body,createdAt:l,sortKey:_e(l,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(f.encryption.decryptFailed=true),o>0&&(f.serverTime=o),e.parentMsgId&&(f.refMessageId=ye(e.parentMsgId)),t.edited===true&&(f.edited=true);let I=WI(e,s?n.content:"");return I!==void 0&&(f.mention=I),t.keepRaw&&(f.raw=XI(e,n,t.cmdId)),f}function Jt(e,n){let t=$g(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=em(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function WI(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=em(e.sNotifyUsers.map(s=>s.toString()),$g(n)),{ranges:o,atUsersName:i}=HI(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let a={atAll:t,atUserIds:r};return o!==void 0&&(a.ranges=o),i!==void 0&&(a.atUsersName=i),a}function $g(e){if(e==="")return [];let n=[];for(let t of e.matchAll(/\[(\d{17,20})\]/g))t[1]!==void 0&&n.push(t[1]);return n}function em(e,n){if(n.length===0)return e;let t=new Set(e),r=[...e];for(let o of n)t.has(o)||(t.add(o),r.push(o));return r}function HI(e){if(e==="")return {};try{let n=JSON.parse(e),t=JI(n.atRange),r=YI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function JI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:i,end:a}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof a=="number"&&Number.isInteger(a)&&a>=i&&n.push({userId:String(o),start:i,end:a});}return n.length>0?n:void 0}function YI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length>0?n:void 0}function XI(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sGrpId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function yo(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:be(e.id),msgType:QI,encrypt:e.encryption.encrypted?1:0,bMessage:En(e.body)};return e.mention!==void 0&&Object.assign(t,zI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=cn(e.refMessageId)),t}function zI(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=qI(e);return t!==void 0&&(n.extend=t),n}function qI(e){let n=e.ranges!==void 0&&e.ranges.length>0,t=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;if(!n&&!t)return;let r={sendType:0};return t&&(r.atUsersName=e.atUsersName),n&&(r.atRange=e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))),JSON.stringify(r)}var dn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function Io(e){return e instanceof hn||e instanceof dn?e.code:"INVALID_SNAPSHOT"}function Vs(e,n){let t=fo(e),{envelope:r}=t;if(r.convType!==2)throw new dn("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new dn("CONVERSATION_MISMATCH","board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new dn("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=jn.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});i=It(s,t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new dn("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function jI(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new dn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684\u666E\u901A\u7FA4\u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new dn("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Se.create(En(e.body)),r=po({envelope:{convType:2,msgContent:"",msgId:be(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:"0",notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":cn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Vs(r,{conversationId:e.conversationId})}}function Os(e,n){let t=fo(e),{envelope:r}=t;if(r.convType!==3)throw new dn("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new dn("CONVERSATION_MISMATCH","channel board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new dn("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=r.nIncrId??"0";i=qn(it.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:s,nIncrId:BigInt(s),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new dn("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function $I(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new dn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684 CHANNEL \u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new dn("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Se.create(En(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=po({envelope:{convType:3,msgContent:"",msgId:be(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:o,notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":cn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:Os(i,{conversationId:e.conversationId})}}var eC=new Set(["group_info_changed","group_member_renamed","channel_name_changed","channel_avatar_changed","channel_all_muted","channel_all_unmuted","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function nC(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Ct(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Oa(n.eventType)||!nC(e,n.eventType))return e;let t=eC.has(n.eventType);if(t===(n.timelineVisibility==="hidden"))return e;let r={...n};return t?r.timelineVisibility="hidden":delete r.timelineVisibility,{...e,body:{...e.body,system:r}}}var tC={1:"channel_name_changed",2:"channel_avatar_changed",3:"channel_announcement_changed",4:"channel_member_left",5:"channel_member_removed",6:"channel_member_joined",7:"channel_member_invited",8:"channel_owner_transferred",9:"channel_admin_added",10:"channel_admin_removed",11:"channel_dismissed",12:"channel_all_muted",13:"channel_all_unmuted",14:"channel_created",15:"channel_private_chat_disabled",16:"channel_private_chat_enabled",19:"channel_member_renamed",20:"channel_member_muted",21:"channel_member_unmuted",23:"channel_message_pinned",24:"channel_message_unpinned"},nm=new Set([17,18,22,23,24]),rC=20;function Ks(e){let n=e.body.system;if(e.conversationType!=="channel"||e.contentType!=="system"||n===void 0)return e;let t=n.eventType==="channel_unknown"&&n.rawNotifyType!==void 0?kd(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&nm.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,a=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!a)return Ct(e);let s={...n,eventType:t};return o&&delete s.fallbackText,a&&i!==void 0&&(s.targetUserIds=[i]),Ct({...e,body:{...e.body,system:s}})}function tm(e){return e.conversationType==="channel"&&e.extensions?.unsupportedContentType===101&&(e.contentType==="text"||e.contentType==="system"&&e.body.system?.eventType==="channel_unknown"&&e.body.system.rawNotifyType===void 0)}function Ud(e){if(!tm(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Ks({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function kd(e){return tC[e]??"channel_unknown"}function Co(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=ye(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,a={eventType:kd(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(a.operatorId=e.operatorId.toString());let s=e.targetUserIds?.filter(l=>l>0n).map(l=>l.toString())??[];if(s.length>0&&(a.targetUserIds=s),e.content!==void 0&&e.content!==""&&!nm.has(e.notifyType)&&(a.fallbackText=e.content),e.notifyType===23)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Os(e.content??"",{conversationId:e.channelId.toString(),...a.operatorId===void 0?{}:{operatorId:a.operatorId}})};}catch(l){a.pinnedMessageAction={type:"invalid",code:Io(l)};}else e.notifyType===24&&(a.pinnedMessageAction={type:"unpin"});return Ks({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:a},createdAt:o,...r>0?{serverTime:r}:{},sortKey:_e(o,i===void 0?t:`${i.padStart(rC,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...i===void 0?{}:{channelSequence:i}},...n.keepRaw?{raw:{...n.cmdId===void 0?{}:{cmdId:n.cmdId},channelNotify:{notifyType:e.notifyType,...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...e.sequence===void 0?{}:{sequence:e.sequence.toString()},...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}}:{}})}function So(e){return /^\[[^[\]\s]+\]$/.test(e)}function Ao(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function oC(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function iC(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function xd(e,n,t){let r=new Map;for(let s of e){let l=r.get(s.senderId);(l===void 0||oC(l,s)<0)&&r.set(s.senderId,s);}let o=new Map,i;for(let s of r.values()){if(s.action===1)continue;let l=o.get(s.emoji)??{participants:[],latestAt:0};l.participants.push(s.senderId),l.latestAt=Math.max(l.latestAt,s.createdAt),o.set(s.emoji,l),s.senderId===n&&(i=s.emoji);}let a=[...o.entries()].map(([s,l])=>Object.freeze({emoji:s,count:l.participants.length,mine:l.participants.includes(n),latestAt:l.latestAt,participantIds:Object.freeze([...l.participants].sort())})).sort((s,l)=>Number(l.mine)-Number(s.mine)||l.latestAt-s.latestAt||s.emoji.localeCompare(l.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((s,l)=>s+l.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(iC)),aggregates:Object.freeze(a)})}function Bd(e,n,t){if(!So(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(Ao(n.emoji))throw new Error(`\u6E38\u620F\u8D34\u56FE\u4E0D\u80FD\u4F5C\u4E3A Reaction\uFF1A${n.emoji}`);if(n.id.trim()===""||n.parentMessageId.trim()===""||n.senderId.trim()==="")throw new Error("Reaction \u4E8B\u4EF6\u7F3A\u5C11 id\u3001parentMessageId \u6216 senderId");if(n.action!==0&&n.action!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${n.action}`);if(!Number.isSafeInteger(n.createdAt)||n.createdAt<0)throw new Error(`Reaction createdAt \u975E\u6CD5\uFF1A${n.createdAt}`);return e?.events.some(r=>r.id===n.id)?e:xd([...e?.events??[],n],t,(e?.version??0)+1)}function wd(e,n,t){if(e===void 0)return;let r=e.events.filter(o=>o.id!==n);if(r.length===e.events.length)return e;if(r.length!==0)return xd(r,t,e.version+1)}function Fd(e,n,t){if(e===void 0)return n;if(n===void 0)return e;let r=new Map(e.events.map(o=>[o.id,o]));for(let o of n.events)r.set(o.id,o);return xd([...r.values()],t,Math.max(e.version,n.version))}var rm={unread:0,delivered:1,read:2};function Ls(e,n){return rm[n]>rm[e]?n:e}function im(e,n){return e==="sent"||n==="sent"?"sent":n}function Yt(e,n,t=""){let r=$o(e)??0,o=$o(n)??0,i=o>=r,a=i?{...e,...n}:{...n,...e},s=Math.max(r,o),l=Math.min(e.createdAt,n.createdAt),f=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},I=zn({...a,createdAt:l,serverTime:s,extensions:f}),k=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":im(e.status,n.status),N=k==="failed"?n.failure??e.failure:void 0,R=Fd(e.reactions,n.reactions,t),U=e.encryption.decryptFailed===true,_=n.encryption.decryptFailed===true,E=a.contentType,T=a.body,A=a.encryption,b=a.mention;U&&!_?(E=n.contentType,T=n.body,A=n.encryption,b=n.mention):!U&&_&&(E=e.contentType,T=e.body,A=e.encryption,b=e.mention),n.edited===true&&!_&&(E=n.contentType,T=n.body,A=n.encryption,b=n.mention);let F=e.body.voice?.waveform??n.body.voice?.waveform;if(T.voice!==void 0&&T.voice.waveform===void 0&&F!==void 0&&(T={...T,voice:{...T.voice,waveform:F}}),T.video!==void 0&&T.video.size===void 0){let re=T.video,me=[e.body.video,n.body.video].find(pe=>pe?.sizeUnit==="bytes"&&pe.size!==void 0&&pe.url===re.url&&pe.fileEncryptType===re.fileEncryptType&&pe.md5===re.md5&&$n(pe.teaKey,re.teaKey)&&(re.unverifiedFileLength===void 0||re.unverifiedFileLength===String(pe.size)));me!==void 0&&(T={...T,video:{...re,size:me.size,sizeUnit:"bytes"}});}let L=e.edited===true||n.edited===true,W=e.deletedForEveryone??n.deletedForEveryone;if(W!==void 0){let re={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,recalled:void 0,deletedForEveryone:W,body:{},encryption:a.encryption};return delete re.reactions,re}let ie=e.recalled??n.recalled;if(ie!==void 0){let re={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,recalled:ie,body:{},encryption:a.encryption};return delete re.reactions,re}let Te={...a,id:e.id,createdAt:l,serverTime:s>0?s:void 0,status:k,failure:N,receipt:Ls(e.receipt,n.receipt),sortKey:I,extensions:f,contentType:E,body:T,encryption:A,...R===void 0?{}:{reactions:R},...L?{edited:true}:{}};return b!==void 0?Te.mention=b:delete Te.mention,Te}function sC(e,n){return e===void 0||n===void 0?e===n:e.version===n.version&&e.total===n.total&&e.currentUserEmoji===n.currentUserEmoji&&e.events.length===n.events.length&&e.events.every((t,r)=>{let o=n.events[r];return o!==void 0&&t.id===o.id&&t.senderId===o.senderId&&t.emoji===o.emoji&&t.action===o.action&&t.createdAt===o.createdAt})}function st(e,n=""){let t=new Map;for(let r of e){let o=t.get(r.id);t.set(r.id,o===void 0?r:Yt(o,r,n));}return [...t.values()]}function aC(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function dC(e,n){if(e===void 0||n===void 0)return e===n;let t=Object.keys(e);return t.length!==Object.keys(n).length?false:t.every(r=>e[r]===n[r])}function cC(e,n){return e===void 0||n===void 0?e===n:e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&AC(e.targetUserIds,n.targetUserIds)&&Pd(e.payload,n.payload)&&Pd(e.action,n.action)&&Pd(e.pinnedMessageAction,n.pinnedMessageAction)}function om(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.fileName===n.fileName&&e.size===n.size&&e.extension===n.extension&&e.fileType===n.fileType&&e.mimeType===n.mimeType&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function lC(e,n){return e===void 0||n===void 0?e===n:e.targetId===n.targetId&&e.avatar===n.avatar&&e.displayName===n.displayName&&e.username===n.username&&e.gender===n.gender&&e.kind===n.kind&&e.rawKind===n.rawKind}function uC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.exprType===n.exprType&&e.imageType===n.imageType&&e.size===n.size&&e.describe===n.describe&&e.contentId===n.contentId&&e.packageName===n.packageName&&$n(e.thumbData,n.thumbData)}function gC(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function mC(e,n){return e===void 0||n===void 0?e===n:JSON.stringify(e.modules)===JSON.stringify(n.modules)&&JSON.stringify(e.commands)===JSON.stringify(n.commands)}function fC(e,n){return e===void 0||n===void 0?e===n:e.appId===n.appId&&e.host===n.host&&e.developerId===n.developerId&&e.name===n.name&&e.icon===n.icon&&e.productId===n.productId&&e.isDynamicHost===n.isDynamicHost&&e.suffixAddress===n.suffixAddress&&e.showType===n.showType&&e.rawShowType===n.rawShowType&&e.description===n.description&&e.currencySource===n.currencySource&&e.currencyType===n.currencyType&&e.gamePath===n.gamePath&&e.subGameName===n.subGameName&&e.gamePreviewUrl===n.gamePreviewUrl&&e.gamePreviewWidth===n.gamePreviewWidth&&e.gamePreviewHeight===n.gamePreviewHeight}function pC(e,n){return e===void 0||n===void 0?e===n:e.callKind===n.callKind&&e.outcome===n.outcome&&e.durationMs===n.durationMs&&e.outgoing===n.outgoing}function yC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.amount===n.amount&&e.currencyType===n.currencyType&&e.status===n.status&&e.serialNumber===n.serialNumber&&e.remark===n.remark&&e.sessionType===n.sessionType&&e.transferTime===n.transferTime&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.transferMsgId===n.transferMsgId&&e.coinName===n.coinName&&e.coinIcon===n.coinIcon}function IC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.giftType===n.giftType&&e.giftName===n.giftName&&e.giftIcon===n.giftIcon&&e.explain===n.explain&&e.state===n.state&&e.serialNumber===n.serialNumber&&e.sessionType===n.sessionType&&e.initiateTime===n.initiateTime&&e.amount===n.amount&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.zhangCount===n.zhangCount&&e.benCount===n.benCount&&e.fissionNumber===n.fissionNumber}function CC(e,n){return e===void 0||n===void 0?e===n:e.packetId===n.packetId&&e.packetType===n.packetType&&e.amount===n.amount&&e.count===n.count&&e.showAmount===n.showAmount&&e.thunderRate===n.thunderRate&&e.isThunder===n.isThunder&&e.thunderNumber===n.thunderNumber&&e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.currencyType===n.currencyType&&e.coinName===n.coinName}function SC(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function AC(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Pd(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function hC(e,n){return e===void 0||n===void 0?e===n:e.atAll!==n.atAll||e.atUserIds.length!==n.atUserIds.length||e.atUserIds.some((t,r)=>t!==n.atUserIds[r])?false:dC(e.atUsersName,n.atUsersName)}function $n(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function RC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function MC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.duration===n.duration&&e.durationUnit===n.durationUnit&&e.sizeUnit===n.sizeUnit&&e.unverifiedFileLength===n.unverifiedFileLength&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)}function EC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.durationMs===n.durationMs&&e.size===n.size&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function TC(e,n){return e.kind===n.kind&&e.url===n.url&&e.width===n.width&&e.height===n.height&&e.durationMs===n.durationMs&&e.thumbUrl===n.thumbUrl&&$n(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&$n(e.teaKey,n.teaKey)&&e.hd===n.hd}function vC(e,n){return e===void 0||n===void 0?e===n:e.caption!==n.caption||e.items.length!==n.items.length?false:e.items.every((t,r)=>TC(t,n.items[r]))}function Gt(e,n){return e.id===n.id&&e.conversationId===n.conversationId&&e.conversationType===n.conversationType&&e.senderId===n.senderId&&e.contentType===n.contentType&&e.body.text===n.body.text&&cC(e.body.system,n.body.system)&&e.createdAt===n.createdAt&&e.sortKey===n.sortKey&&e.status===n.status&&e.serverTime===n.serverTime&&e.receipt===n.receipt&&e.refMessageId===n.refMessageId&&e.edited===n.edited&&(e.recalled?.by??"")===(n.recalled?.by??"")&&(e.recalled?.at??0)===(n.recalled?.at??0)&&(e.deletedForEveryone?.by??"")===(n.deletedForEveryone?.by??"")&&(e.deletedForEveryone?.at??0)===(n.deletedForEveryone?.at??0)&&(e.deletedForEveryone?.reason??"")===(n.deletedForEveryone?.reason??"")&&sC(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&hC(e.mention,n.mention)&&RC(e.body.image,n.body.image)&&MC(e.body.video,n.body.video)&&EC(e.body.voice,n.body.voice)&&om(e.body.file,n.body.file)&&(e.body.filesAlbum===void 0||n.body.filesAlbum===void 0?e.body.filesAlbum===n.body.filesAlbum:e.body.filesAlbum.caption===n.body.filesAlbum.caption&&e.body.filesAlbum.items.length===n.body.filesAlbum.items.length&&e.body.filesAlbum.items.every((t,r)=>om(t,n.body.filesAlbum.items[r])))&&uC(e.body.sticker,n.body.sticker)&&lC(e.body.contact,n.body.contact)&&fC(e.body.miniProgram,n.body.miniProgram)&&mC(e.body.robot,n.body.robot)&&gC(e.body.game,n.body.game)&&yC(e.body.transfer,n.body.transfer)&&IC(e.body.gift,n.body.gift)&&pC(e.body.call,n.body.call)&&CC(e.body.redPacket,n.body.redPacket)&&vC(e.body.mediaAlbum,n.body.mediaAlbum)&&SC(e.body.unknown,n.body.unknown)&&aC(e.failure,n.failure)}var bC=20;function Xt(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(cn(r));}return [...n]}function zt(e){let n=new Set;for(let t of e)t!==""&&n.add(ye(t));return [...n]}var sm=2;function NC(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function ho(e){let n=Ht.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:NC(n.action)}}function Ro(e,n){let t=ho(e.sContent),r=e.sFromId.toString();return {id:ye(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:ye(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Mo(e){let n=ho(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Vd(e){let n=ho(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Od(e){if(e.eventType===sm)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=ho(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function Kd(e){let n=ho(e.sContent);return {id:ye(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:ye(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Zs(e,n,t){return n===e?t:n}var _C=102,am=1,DC=2;function Ld(e,n){let t=ye(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,a=i?String(e.sGroupId):Zs(n,r,String(e.sToId)),s=Number(e.msgTime)||o;return {id:t,conversationId:a,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:s,sortKey:_e(s,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function Zd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function Qd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function Wd(e){let n=ye(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:_e(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function Eo(e,n){if(n.contentType!==_C||n.type!==am&&n.type!==DC||!kn(n.content))return null;let t=ye(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===am?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var GC=Se.create({contentType:1,content:""}),UC=101;function dm(e){if(e.sChnnId<=0n)throw new Error("channel session: channel id \u7F3A\u5931\u6216\u975E\u6CD5");let n=e.uStatus===0||e.uStatus===1,t=e.uExistAt===1||e.uExistAt===2,r=e.uStatus===0&&t?"active":"unknown_restricted",o=e.uExistAt===1?false:e.uExistAt===2?true:void 0,i={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(i.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(i.raw={status:e.uStatus,mentionStatus:e.uExistAt}),i}function kC(e){return Bs.encode(Bs.create({sUserId:To(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:To(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function cm(e){return ws.encode(ws.create({sUserId:To(e.userId,"user"),clientType:e.clientType,lsPull:e.pulls.map(n=>{if(!Number.isInteger(n.count)||n.count<=0)throw new Error("channel offline request: count \u7F3A\u5931\u6216\u975E\u6CD5");return {sChnnId:To(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function xC(e){return cm({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function BC(e,n,t){let r=_d.decode(e);Hd(r.errcode,"sessions");let o=Ws(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let a=i.sChnnId.toString();Hs(a,o,"sessions");let s=dm(i);if(i.last!==void 0){if(i.last.sChnnId!==i.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${i.sChnnId}, last=${i.last.sChnnId}\uFF09`);let l=Qs(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);l!==null&&(s.last=l);}return s})}}function lm(e,n,t){let r=go.decode(e);Hd(r.errcode,"offlineMessages");let o=Ws(n.expectedChannelIds),i={},a={},s=[];for(let l of r.lsMessage){let f=l.sChnnId.toString();Hs(f,o,"offlineMessages"),i[f]=l.sIndex,a[f]=(a[f]??0)+1;let I=Qs(l,n,t);I!==null&&s.push(I);}return {messages:st(s,n.selfId).sort(nn),batchSize:r.lsMessage.length,messageCounts:a,nextBaseIndexes:i}}async function wC(e,n,t,r){r.signal?.throwIfAborted();let o=go.decode(e);Hd(o.errcode,"offlineMessages");let i=Ws(n.expectedChannelIds),a={},s={},l=[],f=0;for(let C of o.lsMessage){r.signal?.throwIfAborted(),f>0&&f%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let k=C.sChnnId.toString();Hs(k,i,"offlineMessages"),a[k]=C.sIndex,s[k]=(s[k]??0)+1;let N=Qs(C,n,t);N!==null&&l.push(N),f+=1;}r.signal?.throwIfAborted();let I=o.lsMessage[0]?.sIndex;return {messages:st(l,n.selfId).sort(nn),batchSize:o.lsMessage.length,messageCounts:s,nextBaseIndexes:a,firstBaseIndex:I}}function um(e,n,t,r="specificMsgs"){let o=Ws(n.expectedChannelIds),i=[];for(let a of e){let s=a.sChnnId.toString();Hs(s,o,r);let l=Qs(a,n,t);l!==null&&i.push(l);}return st(i,n.selfId).sort(nn)}function FC(e){return Fs.encode(Fs.create({sUserId:BigInt(e.userId),sChnnId:To(e.channelId,"channel"),lsMsgId:Xt(e.messageIds),clientType:e.clientType??0}))}function PC(e,n,t){let r=Dd.decode(e);return {messages:um(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:zt(r.lsMissingMsgId),code:r.errcode}}function VC(e,n,t){if(!Number.isInteger(n.requestedCount)||n.requestedCount<=0)throw new Error("channel history: requestedCount \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=go.decode(e),o=lm(e,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,expectedChannelIds:[n.channelId],...n.diagnostic===void 0?{}:{diagnostic:n.diagnostic},onContentDecodeError:n.onContentDecodeError,onReaction:n.onReaction},t),i=r.lsMessage[0]?.sIndex;if(i!==void 0&&i===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${i}\uFF09`);return {messages:o.messages,...i===void 0?{}:{nextBaseIndex:i},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function Qs(e,n,t){if(Od(e)){try{n.onReaction?.(Kd(e));}catch(a){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a});}return null}if(e.uOperationType===1||e.uOperationType===2)return Wd(e);let r=GC,o=false;if(e.encrypt===0)try{r=Se.decode(e.sContent);}catch(a){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a}),iu(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let a=t.resolveUserPrivateKey?.()??null;if(a===null)o=true,t.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let s;try{if(s=Ke.decode(e.sContent),s.secretKey.length===0||s.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(l){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:l})),s=Ke.create();}if(!o){let l;try{l=t.crypto.decryptEndToEnd({secretKey:s.secretKey,cipherData:s.cipherData,privateKey:a});}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,cause:f})),l=new Uint8Array;}if(!o)try{r=Se.decode(l);}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,decryptedByteLength:l.length,cause:f}));}}}}else if(e.encrypt===2&&t!==void 0){let a=e.sChnnId.toString(),s=t.resolveChannelKey(a);if(s===null||s.length!==16)o=true,t.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:s?.length??0,keySource:s===null?"miss":"cache"}));else {let l;try{let f=Ke.decode(e.sContent);if(f.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");l=f.cipherData;}catch(f){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:s.length,keySource:"cache",cause:f})),l=new Uint8Array;}if(!o){let f;try{f=t.crypto.decryptSymmetric({teaKey:s,cipherData:l});}catch(I){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:l.length,cause:I})),f=new Uint8Array;}if(!o)try{r=Se.decode(f);}catch(I){o=true,t.onDecryptError?.(at(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:l.length,decryptedByteLength:f.length,cause:I}));}}}}else o=true,t?.onDecryptError?.(at(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let a=Eo({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(a!==null)return a}if(!o&&r.contentType===UC)return Co({channelId:e.sChnnId,messageId:e.sMsgId,occurredAt:e.msgTime,notifyType:r.type,operatorId:r.oprUserId,targetUserIds:r.mnpledUserId,content:r.content,extend:e.extend,historyCursor:e.sIndex,sequence:e.sIncrId,encrypted:e.encrypt!==0},{keepRaw:n.keepRaw});let i=Xa(e,r,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw===true||o,decryptFailed:o});return o&&(e.encrypt===1||e.encrypt===2)&&t?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:i.conversationId},messageId:i.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),i}function at(e,n,t){return {...n.diagnostic??{endpoint:"unknown",surface:"unknown"},messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,payloadByteLength:e.sContent.length,...t}}function Hd(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function Ws(e){return e===void 0?void 0:new Set(e)}function Hs(e,n,t){if(n!==void 0&&!n.has(e))throw new Error(`channel ${t}: \u54CD\u5E94\u9891\u9053\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\u6279\u6B21\uFF08channelId=${e}\uFF09`)}function To(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function OC(e,n,t){let r=Yn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Js="system",KC=32768;function gm(e){switch(e){case 7:return "group_activated";case 1:return "group_info_changed";case 2:return "group_member_left";case 3:return "group_member_removed";case 4:return "group_member_joined";case 5:return "group_member_invited";case 6:return "group_master_changed";case 10:return "group_member_renamed";case 11:return "group_dismissed";case 12:return "group_message_pinned";case 13:return "group_message_unpinned";default:return "unknown"}}function Jd(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Ct(e):Ct({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function LC(e){let n=e.trim();if(!(n===""||!n.startsWith("{")&&!n.startsWith("[")))try{let t=JSON.parse(n);return typeof t=="object"&&t!==null?t:void 0}catch{return}}function vo(e,n){let t=ye(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),a=e.sMnpledUserId.map(N=>N.toString()),s={eventType:gm(e.notifyType),rawNotifyType:e.notifyType},l=Number(e.errcode);l!==0&&(s.errcode=l),i!==void 0&&(s.operatorId=i),a.length>0&&(s.targetUserIds=a);let f=e.notifyType===12,I=e.notifyType===13;!f&&!I&&e.sContent!==""&&(s.fallbackText=e.sContent);let C=f||I?void 0:LC(e.sContent);if(C!==void 0&&(s.payload=C),f)try{s.pinnedMessageAction={type:"pin",pinnedMessage:Vs(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(N){s.pinnedMessageAction={type:"invalid",code:Io(N)};}else I&&(s.pinnedMessageAction={type:"unpin"});let k={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Js,contentType:"system",body:{system:s},createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(k.serverTime=r),n.keepRaw&&(k.raw={cmdId:n.cmdId}),Jd(k)}function Yd(e,n){let t=e.targetUserIds?.includes(n)??false;switch(e.eventType){case "group_member_left":return t?{state:"left",reason:"you_left_group"}:null;case "group_member_removed":return t?{state:"removed",reason:"you_were_removed"}:null;case "group_dismissed":return {state:"dismissed",reason:"group_dismissed"};case "group_member_joined":case "group_member_invited":{if(!t)return null;let r=e.errcode;return r!==void 0&&r!==KC?null:{state:"active",reason:""}}default:return null}}function Xd(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var ZC=new Set([8196,8976]),mm=Se.create({contentType:1,content:""});function QC(e){return Ds.encode(Ds.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function WC(e){return _s.encode(_s.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function HC(e,n,t){let r=t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(r===null)return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let o=Ke.decode(e.sContent);if(o.secretKey.length===0||o.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${o.secretKey.length}B cipherData=${o.cipherData.length}B`);let i=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return Se.decode(i)}catch(o){return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:o}),null}}function bo(e,n,t){if(Ys(e.sGroupId,n.expectedGroupId),e.cmdId===8980){let l=jn.decode(e.sMsgData),f={...l,sMsgId:l.sMsgId||e.sMsgId,sFromId:l.sFromId===0n?e.sFromId:l.sFromId,sGrpId:l.sGrpId===0n?e.sGroupId:l.sGrpId,sToId:l.sToId===0n?e.sGroupId:l.sToId,msgTime:l.msgTime===0n?e.msgTime:l.msgTime,parentMsgId:l.parentMsgId||e.parentMsgId};return Ys(f.sGrpId,n.expectedGroupId),n.onReaction?.(Mo(f)),null}if(e.cmdId===8708){let l=Qt.decode(e.sMsgData);return Ys(l.sGrpId,n.expectedGroupId),vo(l,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw})}if(!ZC.has(e.cmdId))return null;let r=jn.decode(e.sMsgData);Ys(r.sGrpId,n.expectedGroupId);let o=mm,i=false,a=false;if(r.encrypt===0)try{o=Se.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let l=HC(r,r.sGrpId.toString(),t);o=l??mm,i=l===null;}else i=true;let s=It(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ye(e.parentMsgId)),e.isEdit===1&&(s.edited=true),s}function Ys(e,n){if(n!==void 0&&e.toString()!==n)throw new Error(`group history: \u54CD\u5E94\u7FA4\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\uFF08groupId=${e}\uFF09`)}function JC(e,n,t){let r=vd.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=bo(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function YC(e,n,t){let r=Td.decode(e),o=[],i=[];for(let a of r.sessionList){o.push({groupId:a.groupId.toString(),unreadCount:Number(a.unreadCount)});for(let s of a.msgList){let l=bo(s,n,t);l!==null&&i.push(l);}}return {unreads:o,messages:i}}function XC(e){return Gs.encode(Gs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function zC(e,n,t){let r=Us.decode(e),o=[];for(let a of r.msgList){let s=bo(a,n,t);s!==null&&o.push(s);}let i=r.msgList.map(a=>Number(a.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}async function qC(e,n,t,r){r.signal?.throwIfAborted();let o=Us.decode(e);if(o.code!==200)throw new Error(`group history: code=${o.code}`);let i=[],a,s,l=0;for(let f of o.msgList){r.signal?.throwIfAborted(),l>0&&l%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let I=bo(f,n,t);I!==null&&i.push(I);let C=Number(f.msgTime);a=a===void 0?C:Math.min(a,C),s=s===void 0?C:Math.max(s,C),l+=1;}return r.signal?.throwIfAborted(),{messages:i,batchSize:o.msgList.length,...a===void 0?{}:{oldestEntryTime:a,newestEntryTime:s}}}function jC(e){return ks.encode(ks.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:Xt(e.messageIds),clientType:e.clientType??0}))}function $C(e,n,t){let r=bd.decode(e),o=[];for(let i of r.msgList){let a=bo(i,n,t);a!==null&&(i.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),o.push(a));}return {messages:o,missingMessageIds:zt(r.missingMsgIds),code:r.code}}function eS(e){return xs.encode(xs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function nS(e){return {code:Nd.decode(e).code}}var tS=1;function qt(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),a=ye(e.sMsgId),s=Yn(n,t.selfId),l=i>0?i:t.receivedAt??Date.now(),f={id:a,conversationId:Zs(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:s.contentType,body:s.body,createdAt:l,sortKey:_e(l,a),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(f.encryption.decryptFailed=true),i>0&&(f.serverTime=i),e.parentMsgId&&(f.refMessageId=ye(e.parentMsgId)),t.edited===true&&(f.edited=true),t.keepRaw&&(f.raw=rS(e,n,t.cmdId)),f}function rS(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sToId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function No(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:be(e.id),msgType:tS,encrypt:e.encryption.encrypted?1:0,bMessage:En(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:cn(e.refMessageId)}:{}}}function zd(e){return {id:ye(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function Xs(e){switch(e){case 33281:return {code:e,reason:"rejected",displayCode:"forbiddenOrLeft",retryable:false};case 33282:return {code:e,reason:"rejected",displayCode:"contentRejected",retryable:false};case 33557:return {code:e,reason:"rejected",displayCode:"groupDismissed",retryable:false};case 33540:return {code:e,reason:"network",displayCode:"groupUnavailable",retryable:true};default:return {code:e,reason:"rejected",retryable:true}}}function oS(e){return bs.encode(bs.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var iS=new Set([4100,4113,4644,4645]),fm=Se.create({contentType:1,content:""});function sS(e,n){let t=n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(t===null)return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let r=Ke.decode(e.sContent);if(r.secretKey.length===0||r.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${r.secretKey.length}B cipherData=${r.cipherData.length}B`);let o=n.crypto.decryptEndToEnd({secretKey:r.secretKey,cipherData:r.cipherData,privateKey:t});return Se.decode(o)}catch(r){return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:r}),null}}function aS(e,n,t){let r=Md.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=pm(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function pm(e,n,t){if(e.cmdId===4653){let l=pt.decode(e.sMsgData),f={...l,sMsgId:l.sMsgId||e.sMsgId,sFromId:l.sFromId===0n?e.sFromId:l.sFromId,sToId:l.sToId===0n?e.sToId:l.sToId,msgTime:l.msgTime===0n?e.msgTime:l.msgTime,parentMsgId:l.parentMsgId||e.parentMsgId};return n.onReaction?.(Ro(f,n.selfId)),null}if(!iS.has(e.cmdId))return null;let r=pt.decode(e.sMsgData),o=fm,i=false,a=false;if(r.encrypt===0)try{o=Se.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let l=sS(r,t);o=l??fm,i=l===null;}else i=true;let s=qt(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ye(e.parentMsgId)),e.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),e.isEdit===1&&(s.edited=true),s}function dS(e){return Ns.encode(Ns.create({userId:BigInt(e.userId),msgIds:Xt(e.messageIds),clientType:e.clientType??0}))}function cS(e,n,t){let r=Ed.decode(e),o=[];for(let i of r.msgList){let a=pm(i,n,t);a!==null&&o.push(a);}return {messages:o,missingMessageIds:zt(r.missingMsgIds),code:r.code}}function vn(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r;if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function jt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""&&Number.isFinite(Number(r)))return Number(r)}}function lS(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,i=n?.[2]===void 0?void 0:Number(n[2]),a=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let s=r.getMonth()+1;(s<i||s===i&&a!==void 0&&r.getDate()<a)&&(o-=1);}return o>=0&&o<200?o:void 0}function uS(e){let n=t=>t.map(r=>typeof r=="string"?r.trim():r!==null&&typeof r=="object"&&typeof r.email=="string"?r.email.trim():"").filter(r=>r!=="");for(let t of ["extend_email","extendEmail"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim()!==""){let o=r.trim();if(o.startsWith("["))try{let i=JSON.parse(o);if(Array.isArray(i))return n(i)}catch{}return [o]}}return []}function gS(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let a=i.trim(),s=o.mobile.trim();return a===""||s===""?[]:[{countryCode:a,mobile:s}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var mS=["user_id","userId","id","uid"],fS=["nick_name","nickName","nickname","name"],pS=["remark_name","remarkName"],yS=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],IS=["per_signature","signature","sign"],CS=["mid"],SS=["birthday"],AS=["public_key","publicKey"],ym=["is_undisturb","isUndisturb"];function hS(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=vn(t,mS);if(r===void 0)throw new Error("toUserProfile: \u7F3A\u5C11\u7528\u6237 id \u5B57\u6BB5\uFF08user_info.user_id / user_id\uFF09");let o={id:r,nickname:vn(t,fS)??""},i=vn(e,pS);i!==void 0&&(o.remark=i);let a=vn(t,yS);a!==void 0&&(o.avatar=a);let s=vn(t,IS);s!==void 0&&(o.signature=s);let l=vn(t,CS);l!==void 0&&(o.miCallId=l);let f=vn(t,SS);if(f!==void 0){o.birthday=f;let R=lS(f);R!==void 0&&(o.age=R);}let I=uS(e);I.length>0&&(o.remarkEmail=I);let C=gS(e);C.length>0&&(o.remarkPhones=C);let k=vn(t,AS);k!==void 0&&(o.publicKey=k);let N=jt(e,ym);return N!==void 0&&(o.muted=N===1),o}var RS=["group_id","groupId","id","gid"],MS=["group_name","groupName","name"],ES=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],TS=["total_users","member_count","memberCount","member_num","memberNum"],vS=["status"],bS=["is_ingroup","isInGroup","isIngroup"],NS=["user_id","userId","owner_id","ownerId","master_id","masterId"],_S=["verify_way","verifyWay"],DS=["invite_code","inviteCode"];function GS(e){let n=vn(e,RS);if(n===void 0)throw new Error("toGroupProfile: \u7F3A\u5C11\u7FA4 id \u5B57\u6BB5\uFF0809b \u5F85\u6838\u5BF9\u771F\u5B9E\u63A5\u53E3\u5B57\u6BB5\uFF09");let t={id:n,name:vn(e,MS)??""},r=vn(e,ES);r!==void 0&&(t.avatar=r);let o=jt(e,TS);o!==void 0&&(t.memberCount=o);let i=jt(e,vS);i!==void 0&&(t.status=i);let a=jt(e,bS);a!==void 0&&(t.isInGroup=a===1);let s=vn(e,NS);s!==void 0&&(t.ownerId=s);let l=jt(e,_S);l!==void 0&&(t.verifyWay=l);let f=vn(e,DS);f!==void 0&&(t.inviteCode=f);let I=e.to_user;if(I!==null&&typeof I=="object"){let C=jt(I,ym);C!==void 0&&(t.muted=C===1);}return t}function qd(e,n){if(e.robotId.trim()==="")throw new Error("robot reply: robotId \u7F3A\u5931");if(e.userId<=0n)throw new Error("robot reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");let t=ye(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=Im(e.content),a=Yn(i,n.selfId),s={id:t,conversationId:e.robotId,conversationType:"robot",senderId:e.robotId,contentType:a.contentType,body:a.body,createdAt:o,sortKey:_e(o,t),status:"sent",receipt:"unread",encryption:{encrypted:false}};return r>0&&(s.serverTime=r),n.keepRaw&&(s.raw={cmdId:n.cmdId,chat:{sMsgId:e.sMsgId,sFromId:e.robotId,sToId:e.userId.toString(),msgType:11,encrypt:0,msgTime:e.msgTime.toString()},content:{contentType:i.contentType,text:i.content||void 0}}),s}function jd(e){if(e.msgId.trim()==="")throw new Error("robot ack: msgId \u7F3A\u5931");return {id:ye(e.msgId),serverTime:0,errcode:e.errCode}}function $d(e,n){if(e.encryption.encrypted)throw new Error("robot \u79C1\u804A\u53EA\u8D70\u660E\u6587 JSON\uFF08EncryptType.NONE\uFF09\uFF0C\u7981\u6B62 encrypt=1");if(e.conversationId.trim()==="")throw new Error("robot \u51FA\u7AD9: robotId \u7F3A\u5931");let t=En(e.body);return {userId:BigInt(n.selfId),robotId:e.conversationId,sMsgId:be(e.id),msgTime:BigInt(e.createdAt),content:kS(t,e.refMessageId)}}function Im(e){let n=e.trim();if(n.startsWith("{"))try{let t=JSON.parse(n);if(t!==null&&typeof t=="object"&&!Array.isArray(t))return Se.create(US(t))}catch{}try{return Se.decode(new TextEncoder().encode(e))}catch{return Se.create({contentType:1,content:e})}}function US(e){let n=et(e.contentType)??1,t=typeof e.content=="string"?e.content:"",r=zs(e.md5)??zs(e.MD5),o=et(e.fileLength);return {contentType:n,content:t,...et(e.width)!==void 0?{width:et(e.width)}:{},...et(e.height)!==void 0?{height:et(e.height)}:{},...et(e.duration)!==void 0?{duration:et(e.duration)}:{},...zs(e.describe)!==void 0?{describe:zs(e.describe)}:{},...r!==void 0?{MD5:r}:{},...et(e.imageType)!==void 0?{imageType:et(e.imageType)}:{},...o!==void 0&&o>0?{fileLength:BigInt(Math.round(o))}:{}}}function kS(e,n){let t={contentType:e.contentType,content:e.content};return e.contentType===1&&(t.logicType=0),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.duration!==void 0&&(t.duration=e.duration),e.describe!==void 0&&e.describe!==""&&(t.describe=e.describe),e.MD5!==void 0&&e.MD5!==""&&(t.md5=e.MD5),e.imageType!==void 0&&(t.imageType=e.imageType),e.fileLength!==void 0&&e.fileLength>0n&&(t.fileLength=Number(e.fileLength)),n!==void 0&&n!==""&&(t.parentMsgId=cn(n)),JSON.stringify(t)}function et(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function zs(e){return typeof e=="string"&&e!==""?e:void 0}function xS(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function BS(e){if(St(e)){if(e.deletedForEveryone!==void 0)return {kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.encryption.decryptFailed===true)return {kind:"decrypt-failed"};if(e.body.text)return {kind:"text",text:e.body.text};if(e.contentType==="image")return {kind:"image"};if(e.contentType==="video")return {kind:"video"};if(e.contentType==="voice")return e.body.voice?.durationMs!==void 0?{kind:"voice",durationMs:e.body.voice.durationMs}:{kind:"voice"};if(e.contentType==="filesAlbum"&&e.body.filesAlbum!==void 0)return {kind:"filesAlbum",count:e.body.filesAlbum.items.length,...e.body.filesAlbum.caption===void 0?{}:{caption:e.body.filesAlbum.caption}};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:_a(e.body.sticker?.imageType??0)};if(e.contentType==="mediaAlbum"&&e.body.mediaAlbum!==void 0){let n=e.body.mediaAlbum.items,t=e.body.mediaAlbum.caption,r=n[0]?.kind;return {kind:"mediaAlbum",imageCount:n.filter(o=>o.kind==="image").length,videoCount:n.filter(o=>o.kind==="video").length,...t!==void 0&&t.trim()!==""?{caption:t}:{},...r===void 0?{}:{firstItemKind:r}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="robot")return {kind:"robot"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="gift")return {kind:"gift"};if(e.contentType==="call"&&e.body.call!==void 0)return {kind:"call",callKind:e.body.call.callKind};if(e.contentType==="redPacket")return {kind:"redPacket"};if(e.contentType==="game"&&e.body.game!==void 0)return {kind:"game",gameType:e.body.game.gameType};if(e.contentType==="unknown")return {kind:"unknown"};if(e.contentType==="system"&&e.body.system!==void 0){let{pinnedMessageAction:n,...t}=e.body.system;return {kind:"system",system:t}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function wS(e,n){return e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&JSON.stringify(e.action)===JSON.stringify(n.action)&&FS(e.targetUserIds,n.targetUserIds)&&PS(e.payload,n.payload)}function St(e){return e.body.system?.timelineVisibility!=="hidden"}function FS(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function PS(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function ec(e,n){if(e===void 0||n===void 0)return e===n;if(e.kind!==n.kind)return false;switch(e.kind){case "text":return e.text===n.text;case "voice":return e.durationMs===n.durationMs;case "recalled":return e.by===n.by;case "channel-moderation-deleted":return e.by===n.by;case "system":return wS(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "filesAlbum":{let t=n;return e.count===t.count&&e.caption===t.caption}case "mediaAlbum":{let t=n;return e.imageCount===t.imageCount&&e.videoCount===t.videoCount&&e.caption===t.caption&&e.firstItemKind===t.firstItemKind}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "robot":case "transfer":case "gift":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function VS(e,n){if(n!==void 0&&n!==""?e.senderId===n:e.senderId!==e.conversationId){if(e.status==="failed")return "failed";if(e.status==="pending"||e.status==="uploading"||e.status==="sending")return "sending"}}function nc(e,n={}){let t=e.contentType==="system"&&St(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:xS(e),lastMessageSummary:BS(e),lastMessageSenderId:e.senderId,lastMessageSystemEvent:t?.eventType,lastMessageSystemTargetsSelf:t!==void 0&&n.selfId!==void 0&&n.selfId!==""?t.targetUserIds?.includes(n.selfId)??false:void 0,...r!==void 0?{lastMessageMention:r}:{},...e.recalled!==void 0?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:Xn(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:VS(e,n.selfId)}}function Sm(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function tc(e,n){let t=Uint8Array.of(e<<3),r=Sm(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function Cm(e,n){let t=e<<3|2,r=Sm(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function OS(e){let n=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function $t(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let i=BigInt(e[o]);if(o+=1,t|=(i&0x7Fn)<<r,(i&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function Am(e,n,t){if(t===0)return $t(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=$t(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function KS(e){let n=new TextEncoder,t=[tc(1,BigInt(e.userId)),Cm(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(Cm(3,n.encode(r)));return t.push(tc(4,BigInt(e.limit??100))),t.push(tc(5,BigInt(e.clientType??0))),OS(t)}function LS(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let a=e[n];n+=1;let s=a>>>3,l=a&7;if(s===1&&l===0){let f=$t(e,n);t=Number(f.value),n=f.offset;continue}if(s===2&&l===2){let f=$t(e,n),I=f.offset+Number(f.value);if(I>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(f.offset,I)),n=I;continue}if(s===3&&l===2){let f=$t(e,n),I=f.offset+Number(f.value);if(I>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(f.offset,I)),n=I;continue}n=Am(e,n,l);}return {cmdId:t,body:r,msgId:o}}function ZS(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let a=$t(e,t),s=a.offset+Number(a.value);if(s>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(LS(e.subarray(a.offset,s))),t=s;continue}t=Am(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var hm=-5,dt=-4,QS=new Set(["image","video","voice","file","sticker"]);function WS(e){let n=[];return e.text!==void 0&&n.push("text"),e.system!==void 0&&n.push("system"),e.image!==void 0&&n.push("image"),e.video!==void 0&&n.push("video"),e.voice!==void 0&&n.push("voice"),e.file!==void 0&&n.push("file"),e.sticker!==void 0&&n.push("sticker"),e.contact!==void 0&&n.push("contact"),e.miniProgram!==void 0&&n.push("miniProgram"),e.game!==void 0&&n.push("game"),e.transfer!==void 0&&n.push("transfer"),e.gift!==void 0&&n.push("gift"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.filesAlbum!==void 0&&n.push("filesAlbum"),e.mediaAlbum!==void 0&&n.push("mediaAlbum"),e.robot!==void 0&&n.push("robot"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function At(e){let n=Jd(Ks(Ud(e)));if(n.body.video!==void 0){let i=jo(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}n.body.game!==void 0&&!mr(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Rl(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=WS(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Ct(n),n.contentType!=="text"||n.extensions?.unsupportedContentType===void 0)return n;let{unsupportedContentType:r,...o}=n.extensions;return {...n,contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}},...Object.keys(o).length===0?{extensions:void 0}:{extensions:o}}}function rc(e){if(e.status==="uploading"){let n=QS.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:hm,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===dt){let n=e.contentType==="video"||e.contentType==="file"?e.contentType:void 0,t=n===void 0?e.failure.displayCode:"media.uploadInterrupted";return e.failure.retryable===false&&e.failure.displayCode===t&&(n===void 0||e.failure.mediaKind===n)?e:{...e,failure:{...e.failure,...t===void 0?{}:{displayCode:t},...n===void 0?{}:{mediaKind:n},retryable:false}}}return e}function HS(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function qs(e,n){return {...e,status:n.status,...n.receiveTime===void 0?{}:{receiveTime:n.receiveTime},...n.returnTime===void 0?{}:{returnTime:n.returnTime},...n.isRead===void 0?{}:{isRead:n.isRead}}}function Rm(e){let n=e.body.transfer,r=(n?.status===1?n.receiveTime:n?.status===2||n?.status===3?n.returnTime:void 0)??e.serverTime??e.createdAt;return !Number.isFinite(r)||r<=0?0:r<1e12?r*1e3:r}function Em(e,n){let t=e.body.transfer,r=n.body.transfer;if(t===void 0)return n;if(r===void 0)return e;if(t.status===0&&r.status!==0)return n;if(r.status===0&&t.status!==0)return e;let o=Rm(e),i=Rm(n);return o!==i?i>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function Mm(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function Tm(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function oc(e,n){let t=new Map,r=new Set(n.map(a=>a.id)),o=new Map(n.map(a=>[a.id,a]));for(let a of n){let s=Mm(a);s!==null&&t.set(s,[...t.get(s)??[],a]);}if(t.size===0)return [...n];for(let a of e){let s=Mm(a);s===null||!t.has(s)||r.has(a.id)||t.get(s)?.push(a);}let i=[];for(let a of t.values()){let l=a.reduce(Em).body.transfer;if(l!==void 0)for(let f of a){let I=f.body.transfer;if(I===void 0||Tm(I,l))continue;let C={...f,body:{transfer:qs(I,l)}};r.has(f.id)?o.set(f.id,C):i.push(C);}}return [...n.map(a=>o.get(a.id)??a),...i]}function js(e,n,t,r){let o=[];for(let i of e){if(!HS(i,n))continue;let a=i.body.transfer;if(a===void 0)continue;let s={...a,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??a.returnTime}:{}},l={...i,body:{transfer:s}};Em(i,l)!==l||Tm(a,s)||o.push({...i,body:{transfer:s}});}return o}function ic(e,n){return e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function vm(e,n,t=e.encrypt){return it.encode(it.create({sRadioId:e.sRadioId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgTime:e.msgTime,encrypt:t,sContent:n,...e.nNotifyCount===void 0?{}:{nNotifyCount:e.nNotifyCount},...e.sNotifyUsers===void 0?{}:{sNotifyUsers:e.sNotifyUsers},...e.extend===void 0||e.extend===""?{}:{extend:e.extend},...e.parentMsgId===void 0||e.parentMsgId===""?{}:{parentMsgId:e.parentMsgId}}))}function YS(e,n,t){return X({command:12289,body:vm(e,n,t)})}function bm(e){return Se.encode(Se.create(e.bMessage))}function ac(e,n,t){if(t.length!==16)throw new Error(`channel encrypt=2 key \u5FC5\u987B\u4E3A 16 bytes\uFF0C\u5B9E\u9645 ${t.length}`);let r=n.encryptSymmetric({teaKey:t,plain:bm(e)}),o=Ke.encode(Ke.create({cipherData:r}));return vm(e,o,2)}function Nm(e){return YS(e,bm(e),0)}function _m(e,n,t){return X({command:12289,body:ac(e,n,t)})}function dc(e,n){let t=pt.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return pt.encode(t)}function Dm(e,n){return X({command:4097,body:dc(e,n)})}function Gm(e,n){let t=dc(e,n);return [X({command:4097,body:t}),X({command:4113,body:t})]}function cc(e){return Se.encode(Se.create(e.bMessage))}function lc(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:cc(e),publicKey:t});return Ke.encode(Ke.create({secretKey:r,cipherData:o}))}function Um(e){return Dm(e,cc(e))}function km(e){return Gm(e,cc(e))}function xm(e,n,t){return Dm(e,lc(e,n,t))}function Bm(e,n,t){return Gm(e,lc(e,n,t))}function wm(e,n,t){return dc(e,lc(e,n,t))}function Fm(e,n,t){let r=jn.create({sGrpId:e.sGrpId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.nNotifyCount!==void 0?{nNotifyCount:e.nNotifyCount}:{},...e.sNotifyUsers!==void 0?{sNotifyUsers:e.sNotifyUsers}:{},...e.extend!==void 0&&e.extend!==""?{extend:e.extend}:{},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{},...t!==void 0&&t!==""?{encryptVersion:t}:{}});return jn.encode(r)}function Pm(e,n,t){return X({command:8193,body:Fm(e,n,t)})}function Vm(e){return Se.encode(Se.create(e.bMessage))}function Om(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Vm(e),publicKey:t});return Ke.encode(Ke.create({secretKey:r,cipherData:o}))}function Km(e){return Pm(e,Vm(e))}function Lm(e,n,t,r){return Pm(e,Om(e,n,t),r)}function Zm(e,n,t,r){return Fm(e,Om(e,n,t),r)}function Qm(e){let n=Ei.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:be(e.messageId),content:e.content});return X({command:4644,body:Ei.encode(n)})}function Wm(e){let n=vi.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:be(e.messageId),content:e.content});return X({command:8976,body:vi.encode(n)})}function Hm(e){let n=ts.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:be(e.messageId),content:e.content,IncrId:e.incrementId});return X({command:12808,body:ts.encode(n)})}function Jm(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u7F16\u8F91\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Ym(){return {conversationType:"direct",async prepare(e,n,t){if(t.crypto===void 0||t.resolvePublicKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolvePublicKey(n.conversationId);if(r===null||r==="")return {ok:false,reason:"no-key"};let o=No({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=wm(o,t.crypto,r);return {ok:true,frame:Qm({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function Xm(){return {conversationType:"group",async prepare(e,n,t){if(t.crypto===void 0||t.resolveGroupKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolveGroupKey(n.conversationId);if(r===null||r.publicKey==="")return {ok:false,reason:"no-key"};let o=yo({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=Zm(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:Wm({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function XS(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let a=t.serverTime??t.createdAt,s=pr({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:a}),l=ac(s,r.crypto,i),f=t.extensions?.channelSequence,I=typeof f=="string"&&/^\d+$/.test(f)?BigInt(f):0n;return {ok:true,frame:Hm({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:l,incrementId:I})}}}}function uc(){return Jm([Ym(),Xm()])}var zm=120*1e3,zS=15e3;function gc(e){let n=e.now??(()=>Date.now()),t=e.strategies??uc(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {edit(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==a.conversationId||i.conversationType!==a.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let s=e.getSelfId();if(a.senderId!==s)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(a.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let l=t.resolve(i.conversationType);if(l===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(a.serverTime??a.createdAt)>zm)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=be(i.messageId),I=r.get(f);if(I!==void 0)return I.promise;let C,k=new Promise(R=>{C=R;}),N={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:C,timer:setTimeout(()=>{},0),promise:k};return clearTimeout(N.timer),r.set(f,N),(async()=>{let R;try{R=await l.prepare(i,a,{selfId:s,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{if(r.get(f)!==N)return;o(f,{ok:false,reason:"encrypt-failed"});return}if(r.get(f)===N){if(!R.ok){o(f,R);return}N.timer=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),zS),e.sendFrame(R.frame);}})(),k},onEditAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s!==void 0){if(a===32768||a===0){e.domainState.editMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{text:s.text},s.mention),o(i,{ok:true});return}o(i,s.conversationType==="channel"?{ok:false,reason:"failed",errcode:a}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function er(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function Fn(e){if(e!==void 0)return new Uint8Array(e)}function qS(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Ut(e){let{id:n,createdAt:t}=e.outbox.allocateMessageIdentity(e.target);return e.outbox.enqueueMedia({id:n,conversationId:e.target.conversationId,conversationType:e.target.conversationType,contentType:e.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var jS={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:qS},$S={contentType:"image",isContentReady:e=>er(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=Fn(n.thumbData),r=Fn(n.teaKey);return {image:{url:n.url,width:n.width,height:n.height,...n.md5!==void 0?{md5:n.md5}:{},...n.imageType!==void 0?{imageType:n.imageType}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Ut},eA={contentType:"video",isContentReady:e=>er(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=Fn(n.thumbData),r=Fn(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration,durationUnit:"seconds"}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.sizeUnit!==void 0?{sizeUnit:n.sizeUnit}:{},...n.unverifiedFileLength!==void 0?{unverifiedFileLength:n.unverifiedFileLength}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Ut},nA={contentType:"file",isContentReady:e=>er(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=Fn(n.teaKey);return {file:{url:n.url,fileName:n.fileName,...n.size!==void 0?{size:n.size}:{},...n.extension!==void 0?{extension:n.extension}:{},...n.fileType!==void 0?{fileType:n.fileType}:{},...n.mimeType!==void 0?{mimeType:n.mimeType}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{teaKey:t}:{}}}},enqueue:Ut},tA={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>er(t.url))},cloneBody:e=>{let n=e.body.mediaAlbum;return n===void 0?{}:{mediaAlbum:{...n.caption!==void 0?{caption:n.caption}:{},items:n.items.map(t=>{let r=Fn(t.thumbData),o=Fn(t.teaKey);return {kind:t.kind,url:t.url,width:t.width,height:t.height,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.thumbUrl!==void 0?{thumbUrl:t.thumbUrl}:{},...t.md5!==void 0?{md5:t.md5}:{},...t.size!==void 0?{size:t.size}:{},...t.fileEncryptType!==void 0?{fileEncryptType:t.fileEncryptType}:{},...t.hd!==void 0?{hd:t.hd}:{},...r!==void 0?{thumbData:r}:{},...o!==void 0?{teaKey:o}:{}}})}}},enqueue:Ut};function rA(e){let n=Fn(e.thumbData),t=Fn(e.teaKey);return {image:{url:e.url,width:e.width,height:e.height,...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function oA(e){let n=Fn(e.thumbData),t=Fn(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3,durationUnit:"seconds"}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size,sizeUnit:"bytes"}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function qm(e,n){let t=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||t===void 0)return {ok:false,reason:"not-media-album"};let r=Number.isInteger(n)&&n>=0?t.items[n]:void 0;return r===void 0?{ok:false,reason:"item-not-found"}:er(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?oA(r):rA(r)}:{ok:false,reason:"item-not-ready"}}var iA={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?er(n.url):Zo(n.url)&&Tt(n.width)&&n.width>0&&Tt(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=Fn(n.thumbData);return {sticker:{url:n.url,width:n.width,height:n.height,exprType:n.exprType,imageType:n.imageType,...n.size!==void 0?{size:n.size}:{},...n.describe!==void 0?{describe:n.describe}:{},...n.contentId!==void 0?{contentId:n.contentId}:{},...n.packageName!==void 0?{packageName:n.packageName}:{},...t!==void 0?{thumbData:t}:{}}}},enqueue:e=>Ut({...e,encryption:{encrypted:false}})},sA={contentType:"game",isContentReady:e=>e.body.game!==void 0&&mr(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Ut},aA={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&Vt(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Ut},dA=[jS,$S,eA,nA,tA,iA,sA,aA],cA=new Map(dA.map(e=>[e.contentType,e]));function _o(e){return cA.get(e)}function lA(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function $s(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:_o(e.contentType)!==void 0}function jm(e){let n=_o(e.contentType);return n===void 0?false:n.isContentReady(e)}function mc(e){return $s(e)&&jm(e)}var $m=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","gift","call","redPacket","mediaAlbum"]);function fc(e){return $m.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function ea(e,n){let t=e==="admin"||e==="owner",r=e==="owner";return {sendMessages:(e==="member"||t)&&n==="active",mentionAll:t,editProfile:t,manageMembers:t,manageAdmins:r,moderateMessages:t,manageMute:t,dismissChannel:r,transferOwnership:r}}function uA(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),i=Number(t[3]),a=Number(t[4]);if(r>23||i>23||o>59||a>59)return false;let s=new Date(n),l=s.getHours()*60+s.getMinutes(),f=r*60+o,I=i*60+a;return f<=I&&f<=l&&l<=I}function pc(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??ea("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:ea(t.role,n)};let r=t.baseState,o,i=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!i&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||uA(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:ea(t.role,r),...o===void 0?{}:{muteReason:o}}}function ef(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function yc(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):ef(t)-ef(n))}var gA=new Set(["direct","group","channel","supergroup","robot"]);function Ve(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function Pn(e){return {conversationType:e.type,conversationId:e.id}}function ht(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function le(e){if(!gA.has(e.conversationType)||e.conversationId.length===0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u8EAB\u4EFD\uFF08type=${e.conversationType}, id=${e.conversationId}\uFF09`);return `v1:${e.conversationType}:${encodeURIComponent(e.conversationId)}`}function ct(e){let n=/^v1:(direct|group|channel|supergroup|robot):(.+)$/.exec(e);if(n===null)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);let[,t,r]=n;if(t===void 0||r===void 0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);try{let o=decodeURIComponent(r);if(o.length===0||encodeURIComponent(o)!==r)throw new Error("\u4F1A\u8BDD id \u4E0D\u662F canonical \u7F16\u7801");return {conversationType:t,conversationId:o}}catch(o){throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`,{cause:o})}}function nf(){let e=new Map;return {get:n=>e.get(le(n))??null,getAll:()=>[...e.values()],set:n=>e.set(le(n.ref),n),delete:n=>e.delete(le(n)),clear:()=>e.clear()}}function tf(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return le(i);let a=[...t.keys()].filter(s=>ct(s).conversationId===i);if(a.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return a[0]}function o(i){let a=le(Ve(i)),s=t.get(a);s===void 0&&(s=new Set,t.set(a,s)),s.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let a=r(i),s=a===void 0?void 0:t.get(a);if(s===void 0)return [];let l=[];for(let f of s){let I=n.get(f);I!==void 0&&l.push(I);}return l.sort(nn)},has:i=>n.has(i),get size(){return n.size},upsert(i,a){let s=n.get(i.id);if(s===void 0){let I={...i,sortKey:zn(i)};return n.set(i.id,I),o(I),{message:I,isNew:true,changed:true}}let l=Yt(s,i,e?.getSelfId?.()??""),f=a?.authoritativeFailure===true&&i.status==="failed"?{...l,status:"failed",failure:i.failure}:l;return n.set(f.id,f),o(f),{message:f,isNew:false,changed:!Gt(s,f)}},delete(i,a){let s=n.get(a);if(s===void 0||s.conversationType!==i.conversationType||s.conversationId!==i.conversationId)return false;n.delete(a);let l=le(i),f=t.get(l);return f?.delete(a),f?.size===0&&t.delete(l),true},deleteByConversation(i){let a=r(i);if(a===void 0)return;let s=t.get(a);if(s!==void 0){for(let l of s)n.delete(l);t.delete(a);}},clear(){n.clear(),t.clear();}}}var Do=class extends Error{constructor(n){super(n instanceof Error?n.message:"\u672C\u5730\u6D88\u606F\u7A97\u53E3\u8BFB\u53D6\u5931\u8D25",{cause:n}),this.name="LocalMessageWindowReadError";}};function Rt(e){let n=At(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=Jt(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function Go(...e){let n=new Set,t=[];for(let r of e)for(let o of r)n.has(o.id)||(n.add(o.id),t.push(o));return t}function rf(e){let n=e.retention?.maxMessages;if(n!==void 0&&(!Number.isSafeInteger(n)||n<=0))throw new Error("\u6D88\u606F\u7A97\u53E3 maxMessages \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u5B89\u5168\u6574\u6570");let t=0,r=new AbortController;function o(){return r.abort(),r=new AbortController,++t}let i=null,a=null,s=[],l,f,I=false,C=false;async function k(H,J){if(e.storage===void 0)return [];try{let K=await e.storage.getMessages(H,J);return e.normalizeStoredUpload===void 0?K:K.map(e.normalizeStoredUpload)}catch(K){throw new Do(K)}}let N=false,R,U=false,_=true,E,T=false,A=null;function b(){l=s[0],f=s.at(-1);}function F(){let H=s[0],J=s.at(-1);(!I||l===void 0||H!==void 0&&H.sortKey>=l.sortKey)&&(l=H),(!C||f===void 0||J!==void 0&&J.sortKey<=f.sortKey)&&(f=J);}function L(H){let J=s.filter(K=>(l===void 0||K.sortKey>=l.sortKey)&&(f===void 0||K.sortKey<=f.sortKey));if(J.length===0){let K=H==="start"?s.at(-1):s[0];l=K,f=K;return}H==="start"?l=J[0]:f=J.at(-1);}function W(H){if(!(n===void 0||s.length<=n)){if(H==="start"){s=s.slice(-n),I=true,L(H),R=void 0,T&&(N=false);return}s=s.slice(0,n),C=true,L(H),_=false,E=void 0;}}function ie(H){if(n===void 0||s.length<=n)return;let J=s.findIndex(ve=>ve.sortKey===H);if(J<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let K=s.length-n,he=J-Math.floor((n-1)/2),fe=Math.min(K,Math.max(0,he)),Me=fe+n,ue=Me<s.length;fe>0&&(I=true,R=void 0,T&&(N=false)),ue&&(C=true,_=false,E=void 0),s=s.slice(fe,Me),fe>0&&L("start"),ue&&L("end");}function Te(H,J,K){return H.conversationId===J&&(K===null||H.conversationType===K)}function re(H,J,K){let he=H.filter(fe=>Te(fe,J,K));if(K===null&&new Set(he.map(fe=>fe.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${J}`);return he}function me(H,J){return J===null?H:{conversationType:J,conversationId:H}}function pe(H,J=true){if(i!==null){for(let K of H){if(!Te(K,i,a))continue;if(A!==null){A.push(K);continue}let he=s.findIndex(Me=>Me.id===K.id);if(he>=0){let Me=s[he].sortKey!==K.sortKey;s[he]=K,Me&&(s.sort(nn),F()),l?.id===K.id&&l.sortKey===K.sortKey&&(l=K),f?.id===K.id&&f.sortKey===K.sortKey&&(f=K);continue}let fe=f;fe===void 0||K.sortKey>fe.sortKey?C||(s.push(K),s.sort(nn),F()):l!==void 0&&K.sortKey>=l.sortKey&&(s.push(K),s.sort(nn));}J&&W(C?"end":"start");}}return {async open(H,{limit:J}){let K=typeof H=="string"?H:H.conversationId,he=typeof H=="string"?null:H.conversationType,fe=o();i=K,a=he,s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=[];try{let Me=e.storage===void 0?[]:await k(me(K,he),{limit:J}),ve=re(Me,K,he).map(Rt).filter(P=>e.shouldIncludeMessage?.(P)??!0);if(fe!==t)return {conversationId:K,messages:ve,stale:!0};let V=A??[];return s=[...ve].sort(nn),b(),I=ve.length===J||e.loadOlderFromRemote!==void 0,U=e.loadOlderFromRemote!==void 0&&(ve.length<J||he!==null&&e.shouldEstablishRemoteLatest?.({conversationType:he,conversationId:K},ve)===!0),C=!1,_=!0,E=void 0,A=null,pe(V,!1),W("start"),{conversationId:K,messages:s,stale:!1}}finally{fe===t&&(A=null);}},async openAt(H,{anchorSortKey:J,limit:K,seedMessages:he,seedHasNewer:fe,seedRemotePagination:Me}){let ue=typeof H=="string"?H:H.conversationId,ve=typeof H=="string"?null:H.conversationType,V=i===ue&&a===ve&&A===null,P=o();i=ue,a=ve;let y=()=>{l=void 0,f=void 0,I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false;};V||(s=[],y()),A=[];try{if(he!==void 0&&he.length>0){if(he.some(j=>!Te(j,ue,ve)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${ue}\uFF09`);let G=Go(he).map(Rt).filter(j=>e.shouldIncludeMessage?.(j)??!0).sort(nn);if(!G.some(j=>j.sortKey===J))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${ue}\uFF09`);let D=A??[];return y(),s=G,b(),I=e.loadOlderFromRemote!==void 0,C=fe??G.length===K,_=!C,E=Me?.newerCursor,T=Me!==void 0,A=null,pe(D,!1),ie(J),{conversationId:ue,messages:s,stale:P!==t}}if(e.storage===void 0)return s=[],y(),{conversationId:ue,messages:[],stale:P!==t};let[d,u]=await Promise.all([k(me(ue,ve),{beforeSortKey:J,limit:K}),k(me(ue,ve),{afterSortKey:J,limit:K})]),g=re(d,ue,ve).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??!0),h=re(u,ue,ve).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??!0);if(P!==t)return {conversationId:ue,messages:Go(g,h).map(Rt),stale:!0};let S=A??[];return y(),s=Go(g,h).sort(nn),b(),I=g.length===K||e.loadOlderFromRemote!==void 0,C=h.length===K,_=!C,E=void 0,A=null,pe(S,!1),ie(J),{conversationId:ue,messages:s,stale:!1}}finally{if(P===t){let d=A;A=null,V&&d!==null&&pe(d);}}},async loadOlder({limit:H}){let J=i,K=a;if(J===null||!I)return {conversationId:J??"",messages:[],stale:false};let he=t,fe=e.storage===void 0||R!==void 0||T||U?[]:await k(me(J,K),{beforeSortKey:l?.sortKey,limit:H}),Me=re(fe,J,K).map(Rt).filter(h=>e.shouldIncludeMessage?.(h)??true);if(he!==t||i!==J||a!==K)return {conversationId:J,messages:Me,stale:true};let ue=Me.length===H,ve=[...Me],V=false;if(Me.length>0&&(R=void 0),!ue&&e.loadOlderFromRemote!==void 0&&!N){if(K===null)throw new Error("\u8FDC\u7AEF\u5386\u53F2\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let h=await e.loadOlderFromRemote({conversation:{conversationType:K,conversationId:J},signal:r.signal,oldestLoaded:Me[0]??l,...R===void 0?{}:{cursor:R},intent:U?"establish-latest":"older",limit:H});if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};U=false,N=h.exhausted,R=h.nextCursor;let S=re(h.messages,J,K),G=S.map(Rt).filter(D=>e.shouldIncludeMessage?.(D)??true);if(h.replaceWindow){if(!h.exhausted&&(h.nextCursor===void 0||h.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${K}, conversationId=${J}\uFF09`);let D=new Set(s.map(de=>de.id)),j=Go(G).sort(nn),O=j.at(-1)?.sortKey,z=O===void 0?s:s.filter(de=>de.sortKey>O);s=Go(j,z).sort(nn),b(),I=!N;let Re=j.filter(de=>!D.has(de.id));return W("start"),{conversationId:J,messages:Re,stale:false}}V=S.length>0&&G.length===0,V&&(N=true,R=void 0),ve.push(...G);}let P=new Set(s.map(h=>h.id)),y=new Set,d=ve.filter(h=>P.has(h.id)||y.has(h.id)?false:(y.add(h.id),true)).sort(nn);d.length>0&&(s=[...d,...s].sort(nn));let u=[...ve].sort(nn),g=u[0];return g!==void 0&&(l===void 0||g.sortKey<l.sortKey)&&(l=g),f??=u.at(-1),I=ue||e.loadOlderFromRemote!==void 0&&!N&&!V,I||(l=s[0]),W("end"),{conversationId:J,messages:d,stale:false}},async loadNewer({limit:H}){let J=i,K=a;if(J===null||!C)return {conversationId:J??"",messages:[],stale:false};let he=t,fe=f,Me=fe?.sortKey,ue=e.storage===void 0||Me===void 0||T?[]:await k(me(J,K),{afterSortKey:Me,limit:H+1}),ve=re(ue,J,K).map(Rt).filter(G=>e.shouldIncludeMessage?.(G)??true);if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};let V=ve.filter(G=>Me===void 0||G.sortKey>Me).slice(0,H),P=V.length===H,y=[...V];if(V.length>0&&(E=void 0),!P&&e.loadNewerFromRemote!==void 0&&!_){if(K===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let G=await e.loadNewerFromRemote({conversation:{conversationType:K,conversationId:J},signal:r.signal,newestLoaded:V.at(-1)??fe,...E===void 0?{}:{cursor:E},limit:H});if(he!==t||i!==J||a!==K)return {conversationId:J,messages:[],stale:true};_=G.exhausted,E=G.nextCursor,y.push(...re(G.messages,J,K).filter(D=>e.shouldIncludeMessage?.(D)??true));}let d=new Set(s.map(G=>G.id)),u=new Set,g=y.filter(G=>Me!==void 0&&G.sortKey<=Me||d.has(G.id)||u.has(G.id)?false:(u.add(G.id),true)).sort(nn);g.length>0&&(s=[...s,...g].sort(nn));let h=[...y].sort(nn),S=h.at(-1);return S!==void 0&&(f===void 0||S.sortKey>f.sortKey)&&(f=S),l??=h[0],C=P||e.loadNewerFromRemote!==void 0&&!_,C||(f=s.at(-1)),W("start"),{conversationId:J,messages:g,stale:false}},applyIncoming:pe,removeMessage(H,J){if(i!==H.conversationId||a!==H.conversationType)return false;let K=s.findIndex(he=>he.id===J);return K<0?false:(o(),s.splice(K,1),F(),R=void 0,E=void 0,A=null,true)},clearConversation(H){return i!==H.conversationId||a!==H.conversationType?false:(o(),s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=null,true)},list(){return [...s]},info(){return {conversationId:i,...i===null||a===null?{}:{conversation:{conversationType:a,conversationId:i}},hasMore:I,hasNewer:C}},getRevision(){return t},reset(){o(),i=null,a=null,s=[],b(),I=false,C=false,N=false,R=void 0,U=false,_=true,E=void 0,T=false,A=null;}}}function Ic(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((a,s)=>a===n[s]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((a,s)=>Ic(a,n[s]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&Ic(t[a],r[a]))}function of(){let e=new Map;function n(t){if(typeof t!="string")return le(t);let r=[...e.keys()].filter(o=>ct(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set(t){let r=le(ht(t)),o=e.get(r);return o!==void 0&&Ic(o,t)?false:(e.set(r,t),true)},clear(t){let r=n(t);return r===void 0?false:e.delete(r)},isPinnedMessage(t,r){let o=n(t);return o!==void 0&&e.get(o)?.messageId===r},clearAll(){e.clear();}}}function sf(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:le(r)}function t(r){if(typeof r!="string"){let i=le(r);if(e.has(i))return i;let a=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(a)?a:i}let o=[...e.entries()].filter(([i,a])=>a.conversationId===r||!i.startsWith("legacy:")&&ct(i).conversationId===r).map(([i])=>i);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([a,s])=>!a.startsWith("legacy:")&&s.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let i=o[0];if(i!==void 0){let[a,s]=i;e.set(a,{...r,conversationType:s.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Cc(){let e=new Map;function n(t){if(typeof t!="string")return le(t);let r=[...e.keys()].filter(o=>ct(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set:t=>{e.set(le(Pn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function gf(e){return e==="direct"||e==="robot"?"local":"server"}function mf(e,n){let t=n?.includeMuted??false,r=0;for(let o of e)!t&&o.muted||(r+=o.unreadCount>0?o.unreadCount:o.manuallyUnread===true?1:0);return r}var mA=50,af="im:deleted-conversations",df="im:terminated-conversations",cf="im:membership-reset-sort-keys",lf="im:pending-message-reactions",uf="im:transfer-status-records",fA=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function ff(e,n){return e===n?true:e===void 0||n===void 0?false:fA.every(t=>e[t]===n[t])}function pf(e,n){return e===n?true:e!==void 0&&n!==void 0&&e.role===n.role&&e.baseState===n.baseState&&e.resolvedState===n.resolvedState&&e.allMembersMuted===n.allMembersMuted&&e.currentUserMuted===n.currentUserMuted&&e.mutePeriod===n.mutePeriod}function na(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&ec(e.lastMessageSummary,n.lastMessageSummary)&&e.timestamp===n.timestamp&&e.unreadCount===n.unreadCount&&(e.manuallyUnread??false)===(n.manuallyUnread??false)&&(e.mentionUnreadCount??0)===(n.mentionUnreadCount??0)&&e.pinned===n.pinned&&e.muted===n.muted&&e.topTime===n.topTime&&e.lastMessageSendState===n.lastMessageSendState&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&ff(e.channelPermissions,n.channelPermissions)&&pf(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function pA(e){let n=tf({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Cc(),i=Cc(),a=sf(),s=nf(),l=of(),f=new Map,I=new Map,C=0;function k(c){I.set(c,++C);}let N=1,R=new Set,U=new Set,_=new Map,{storage:E}=e,T=Promise.resolve(),A=new Map,b=new Map,F=new Map,L=0,W=e.unreadMode??gf,ie=new Set;function Te(c={}){let m=rf({storage:E,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:ee,normalizeStoredUpload:Oo,...c});return ie.add(m),m}let re=Te();function me(c={}){let m=Te(c),p=false;return {window:m,dispose(){p||(p=true,m.reset(),ie.delete(m));}}}function pe(c){for(let m of ie){let p=m.list().find(M=>M.id===c);if(p!==void 0)return p}}function H(c,m){let p=n.get(m);if(p?.conversationId===c.conversationId&&p.conversationType===c.conversationType)return p;for(let M of ie){let x=M.list().find(B=>B.id===m&&B.conversationId===c.conversationId&&B.conversationType===c.conversationType);if(x!==void 0)return x}}function J(c,m){let p=H(Ve(c),c.id);p!==void 0&&!n.has(c.id)&&n.upsert(p);let M=n.upsert(c,m);return {...M,previous:p,changed:p===void 0?M.changed:!Gt(p,M.message)}}function K(c){let m=new Map(n.getByConversation(c).map(p=>[p.id,p]));for(let p of ie)if(he(p,c))for(let M of p.list())M.conversationType===c.conversationType&&M.conversationId===c.conversationId&&!m.has(M.id)&&m.set(M.id,M);return [...m.values()].sort((p,M)=>p.sortKey.localeCompare(M.sortKey))}function he(c,m){let p=c.info();return p.conversation===void 0?p.conversationId===m.conversationId:le(p.conversation)===le(m)}let fe=false;function Me(c){return `${le(c.conversation)}\0${c.parentMessageId}`}function ue(){if(E===void 0||fe)return;let c=[...t.values()].flat();E.setMeta(lf,c).catch(m=>Y("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",m));}async function ve(){if(E===void 0)return;let c=[...r.values()],m=T.then(()=>E.setMeta(uf,c));T=m.catch(()=>{});try{await m;}catch(p){throw Y("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",p),p}}function V(c,m){if(c===void 0||c.status===0&&m.status!==0)return m;if(m.status===0&&c.status!==0)return c;let p=c.occurredTime??0,M=m.occurredTime??0;return p!==M?M>p?m:c:m.status>c.status?m:c}function P(c){let m=c.body.transfer;if(c.contentType!=="transfer"||m===void 0)return c;let p=r.get(m.serialNumber);if(p===void 0||m.status!==0&&p.status===0)return c;let M={...m,status:p.status,...p.status===1&&p.occurredTime!==void 0?{receiveTime:p.occurredTime}:{},...p.status===2||p.status===3?{returnTime:p.occurredTime??m.returnTime}:{}};return m.status===M.status&&m.receiveTime===M.receiveTime&&m.returnTime===M.returnTime&&m.isRead===M.isRead?c:{...c,body:{transfer:qs(m,M)}}}function y(c,m){let p=`${le(c)}\0${m}`;return t.delete(p)?(ue(),true):false}function d(c){let m=`${le(c)}\0`,p=false;for(let M of t.keys())M.startsWith(m)&&(t.delete(M),p=true);return p&&ue(),p}function u(c,m){let p=H(c.conversation,c.parentMessageId);if(p===void 0){let x=Me(c),B=t.get(x)??[];return B.some(Q=>Q.id===c.id)?"duplicate":(t.set(x,[...B,c]),ue(),"pending")}if(p.recalled!==void 0||p.deletedForEveryone!==void 0)return "duplicate";let M=Bd(p.reactions,c,e.getSelfId?.()??"");return M===p.reactions?"duplicate":(Kn([{...p,reactions:M}],m),"applied")}function g(c,m,p){let M=H(c,m);if(M===void 0){let Q=`${le(c)}\0${m}`,ne=t.get(Q);if(ne===void 0)return false;let oe=ne.filter(ge=>ge.id!==p);return oe.length===ne.length?false:(oe.length===0?t.delete(Q):t.set(Q,oe),ue(),true)}let x=wd(M.reactions,p,e.getSelfId?.()??"");if(x===M.reactions)return false;let B={...M};return x===void 0?delete B.reactions:B.reactions=x,Kn([B],"live"),true}function h(c,m){let p=Ve(c),M=`${le(p)}\0${c.id}`,x=t.get(M);if(x!==void 0){t.delete(M),ue();for(let B of x)u(B,m);}}function S(c){for(let m of [...t.values()]){let p=m[0];if(p===void 0)continue;let M=H(p.conversation,p.parentMessageId);M!==void 0&&(M.recalled!==void 0||M.deletedForEveryone!==void 0?y(p.conversation,p.parentMessageId):h(M,c));}}let G=0,D=new Map,j=new Map;function O(c){return le(c)}function z(c){return Re(c)||R.has(O(c))||R.has(c.conversationId)}function Re(c){return U.has(O(c))||U.has(c.conversationId)}function de(c){let m=R.delete(O(c)),p=R.delete(c.conversationId);return m||p}function Oe(c){let m=de(c),p=U.delete(O(c)),M=U.delete(c.conversationId);return {deleted:m,terminal:p||M}}function Pe(c,m){if(m===""||c.contentType!=="system")return false;let p=c.body.system;return p?.targetUserIds?.includes(m)!==true?false:c.conversationType==="group"?p.eventType==="group_member_joined"||p.eventType==="group_member_invited":c.conversationType==="channel"&&(p.eventType==="channel_member_joined"||p.eventType==="channel_member_invited"||p.eventType==="channel_created")}function ee(c){let m=Ve(c);if(Re(m)||z(m)&&i.get(m)===void 0)return false;if(m.conversationType!=="group")return true;let p=_.get(le(m));return p===void 0||c.sortKey>=p}function v(c){let m=new Map;if(_.size===0)return m;for(let p of st(c,e.getSelfId?.()??"")){if(p.conversationType!=="group")continue;let M=Ve(p),x=le(M),B=_.get(x);if(B===void 0)continue;let Q=H(M,p.id);if(Q===void 0||Q.sortKey!==B)continue;let ne=Yt(Q,p,e.getSelfId?.()??"");ne.sortKey!==B&&(_.set(x,ne.sortKey),m.set(x,ne.id));}return m.size>0&&_n(),m}function Z(c){let m=le(c),p=(D.get(m)??0)+1;return D.set(m,p),p}function Y(c,m){e.emitter.emit({type:"error",error:{scope:"storage",message:c,cause:m}});}function se(c){e.emitter.emit({type:"session:updated",session:c,conversation:Pn(c)});}let Be=new Set,He=Promise.resolve(),Qn=0;function Ye(c){let m=Qn===0?c():He.then(c),p=m.then(()=>{},()=>{});return Be.add(p),p.finally(()=>Be.delete(p)),m}function Rn(c){Qn+=1;let m=Promise.all([...Be]),p=He.then(()=>m).then(c);return He=p.then(()=>{},()=>{}),He.finally(()=>{Qn-=1;}),p}function Wn(c){let m=c.body.system;if(m?.pinnedMessageAction===void 0)return c;let{pinnedMessageAction:p,...M}=m;return {...c,body:{...c.body,system:M}}}function q(c){E===void 0||fe||c.length===0||Ye(()=>E.saveMessages(c.map(Wn))).catch(m=>Y("\u6D88\u606F\u843D\u76D8\u5931\u8D25",m));}function bn(c){let{lastMessageSendState:m,manuallyUnread:p,...M}=c;return M}function Nn(c){E===void 0||fe||Ye(()=>E.saveSessions([bn(c)])).catch(m=>Y("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",m));}function un(){E===void 0||fe||E.setMeta(af,[...R]).catch(c=>Y("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function Hn(){E===void 0||fe||E.setMeta(df,[...U]).catch(c=>Y("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function _n(){E===void 0||fe||E.setMeta(cf,[..._.entries()]).catch(c=>Y("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",c));}function mn(c){E===void 0||fe||Ye(()=>E.saveReadState(c)).catch(m=>Y("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",m));}function Mt(c){E===void 0||fe||E.savePinnedMessage(c).catch(m=>Y("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",m));}function Vn(c){E===void 0||fe||E.removePinnedMessage(c).catch(m=>Y("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",m));}function Ie(c){if(le(c),c.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function De(c){return Ie(c),Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId})}function ce(c){return s.get(De(c))}function Ne(){let c=[];for(let m of o.getAll()){let p=Pn(m);c.push({...m,draft:s.get(p)});}return yc(c)}function ke(c,m,p){if(Ie(c),typeof m.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(m.attachments!==void 0&&m.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(m.mentions!==void 0&&!Array.isArray(m.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let M=(m.mentions??[]).map(B=>{if(typeof B.userId!="string"||B.userId.trim()===""||typeof B.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:B.userId,displayName:B.displayName})}),x=Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId});return Object.freeze({ref:x,text:m.text,mentions:Object.freeze(M),...m.replyToMessageId===void 0?{}:{replyToMessageId:m.replyToMessageId},attachments:Object.freeze([]),updatedAt:p})}function Xe(c,m){return c.text===m.text&&c.replyToMessageId===m.replyToMessageId&&c.mentions.length===m.mentions.length&&c.mentions.every((p,M)=>{let x=m.mentions[M];return x!==void 0&&p.userId===x.userId&&p.displayName===x.displayName})}function tn(c,m){Ie(c);let p=le(c),x=(A.get(p)??Promise.resolve()).catch(()=>{}).then(m),B=x.then(()=>{},()=>{});return A.set(p,B),B.finally(()=>{A.get(p)===B&&A.delete(p);}),x}async function rn(c,m){let p=De(c),M=le(p),x=ke(p,m,0),B=L,Q=F.get(M)??0;return await tn(p,async()=>{let ne=s.get(p),oe=Math.max(Date.now(),(b.get(M)??ne?.updatedAt??0)+1),ge=ke(p,x,oe);if(ne!==null&&Xe(ne,ge))return ne;if(E!==void 0&&await E.saveDraft(ge),B!==L||Q!==(F.get(M)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return s.set(ge),b.set(M,oe),e.emitter.emit({type:"draft:updated",conversation:ge.ref,draft:ge}),ge})}async function nt(c,m){let p=De(c),M=le(p);if(m!==void 0&&(!Number.isFinite(m)||m<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${m}`);let x=L,B=F.get(M)??0;return await tn(p,async()=>{let Q=s.get(p);if(Q===null||m!==void 0&&Q.updatedAt!==m)return false;if(E!==void 0&&await E.deleteDraft(p),x!==L||B!==(F.get(M)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return s.delete(p),e.emitter.emit({type:"draft:cleared",conversation:p}),true})}async function Bt(c){await nt(c);}async function sr(c,m){return await nt(c,m)}function ar(c){let m=De(c),p=le(m);F.set(p,(F.get(p)??0)+1),s.get(m)!==null&&(s.delete(m),e.emitter.emit({type:"draft:cleared",conversation:m})),tn(m,async()=>{E!==void 0&&await E.deleteDraft(m);}).catch(M=>Y("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",M));}async function $e(){for(L+=1;A.size>0;)await Promise.all([...A.values()]);}function Le(c){let m=H(ht(c),c.messageId);return m===void 0?c:{...c,preview:{state:"ready",message:m}}}function Mn(c,m){let p=Le(c);l.set(p)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:p.conversationId,conversation:{conversationType:p.conversationType,conversationId:p.conversationId},pinnedMessage:p,reason:m}),Mt(p));}function Dn(c,m){let p=typeof c=="string"?c:c.conversationId,M=l.get(c);if(!l.clear(c))return;let x=typeof c=="string"?M===void 0?void 0:ht(M):c;if(x===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${p}`);e.emitter.emit({type:"pinned-message:updated",conversationId:p,conversation:x,pinnedMessage:null,reason:m}),Vn(c);}function on(c,m,p,M){let x=Gn(c);if(x===void 0)return;let B={...x,title:m,avatar:p??x.avatar,...M!==void 0?{muted:M}:{}};na(x,B)||tt(B);}async function dr(c,m){let{conversationId:p,conversationType:M}=c,x=le(c),B=m?.force===true;if(!B&&j.has(x))return false;let Q=G,ne=Z(c);B&&j.set(x,ne);let{profile:oe,channelProfile:ge}=e,ae=3,te=B?{forceRefresh:true}:void 0;try{if(M==="direct"){if(oe===void 0)return !1;let $=await oe.getUserProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;$!==null&&on(c,$.remark??$.nickname,$.avatar,$.muted);}else if(M==="group"){if(oe===void 0)return !1;let $=await oe.getGroupProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;$!==null&&(on(c,$.name,$.avatar,$.muted),$.status===ae&&Sa({conversationType:"group",conversationId:p},"group_dismissed"),B&&e.emitter.emit({type:"profile:updated",profileType:"group",id:p}));}else if(M==="channel"){if(ge===void 0)return !1;let $=await ge.getProfile(p,te);if(Q!==G||ne!==D.get(x))return !1;if($!==null){on(c,$.name,$.avatar,$.muted);let we=Gn(c)?.channelState,Ae=we==="left"||we==="removed"||we==="dismissed",Je=$.channelState==="left"||$.channelState==="removed"||$.channelState==="dismissed";if(m?.allowChannelRecovery===!0&&Ae&&we!=="dismissed"&&$.channelState==="active")return Ca(p,"active",void 0,{permissions:$.permissions,...$.accessSnapshot===void 0?{}:{snapshot:$.accessSnapshot}}),B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!0;let Fe=Ae&&(!Je||we==="dismissed"||$.channelState!=="dismissed");if(Je&&!Fe)return Sa({conversationType:"channel",conversationId:p},`channel_${$.channelState}`),B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!1;if(!Fe){let sn=$.permissions.sendMessages?void 0:`channel_${$.channelState}`;Ca(p,$.channelState,sn,{permissions:$.permissions,...$.accessSnapshot===void 0?{}:{snapshot:$.accessSnapshot}});}B&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}});}}return !1}catch($){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:$}}),false}finally{B&&j.get(x)===ne&&j.delete(x);}}function Ap(c,m){dr({conversationType:m,conversationId:c},{force:true});}function hp(c){return dr({conversationType:"channel",conversationId:c},{force:true,allowChannelRecovery:true})}function Rp(c,m){let p=Gn(c);if(p===void 0)return;let M={...p,...m.title!==void 0?{title:m.title}:{},...m.avatar!==void 0?{avatar:m.avatar}:{}};na(p,M)||tt(M);}function ma(c){return ic(c,e.getSelfId?.()??"")}function fa(c){let m=a.get(c);if(m===void 0||m.readCursor==="")return;let p=typeof c=="string"?m.conversationType:c.conversationType;if(p==="channel"){let x={conversationType:p,conversationId:typeof c=="string"?c:c.conversationId};return K(x).find(B=>B.extensions?.historyCursor===m.readCursor)?.sortKey??m.readCursorSortKey}return (typeof c=="string"?n.get(m.readCursor):H(c,m.readCursor))?.sortKey??m.readCursorSortKey}function el(c,m){let p=0;for(let M of n.getByConversation(c))St(M)&&ma(M)&&(m===void 0||M.sortKey>m)&&(p+=1);return p}function nl(c){let m=e.getSelfId?.();if(m===void 0||m===""||c.senderId===m)return false;let{mention:p}=c;return p===void 0?false:p.atAll||p.atUserIds.includes(m)}function Mp(c,m){let p=0;for(let M of n.getByConversation(c))nl(M)&&(m===void 0||M.sortKey>m)&&(p+=1);return p}function Jn(c,m=true){let p=c.conversationType===void 0?o.get(c.conversationId):void 0,M=c.conversationType===void 0&&p!==void 0?{...c,conversationType:p.type}:c,x=M.conversationType===void 0?M.conversationId:{conversationType:M.conversationType,conversationId:M.conversationId},B=a.get(x);if(M.conversationType==="channel"&&k(M.conversationId),a.set(M),m&&mn(M),B===void 0||B.readCursor!==M.readCursor||B.readCursorSortKey!==M.readCursorSortKey||B.unreadCount!==M.unreadCount||(B.manuallyUnread??false)!==(M.manuallyUnread??false)){if(M.conversationType===void 0){e.emitter.emit({type:"error",error:{scope:"storage",message:`\u5DF2\u8BFB\u72B6\u6001\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF0C\u62D2\u7EDD\u53D1\u5E03 read:updated\uFF08conversationId=${M.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:M.conversationId,conversation:{conversationType:M.conversationType,conversationId:M.conversationId},readCursor:M.readCursor,unreadCount:M.unreadCount,...M.manuallyUnread===true?{manuallyUnread:true}:{}});}}function tl(c,m){if(c===void 0||c.sortKey===m.sortKey)return;let p=Ve(m),M=a.get(p),x=m.conversationType==="channel"?m.extensions?.historyCursor:void 0,B=m.conversationType==="direct"||m.conversationType==="group"||m.conversationType==="robot";M!==void 0&&(B&&M.readCursor===m.id||typeof x=="string"&&x!==""&&M.readCursor===x||M.readCursorSortKey===c.sortKey)&&Jn({...M,readCursorSortKey:m.sortKey});let Q=le(p);m.conversationType==="group"&&_.get(Q)===c.sortKey&&(_.set(Q,m.sortKey),_n());}function Vo(c,m,p,M){let x=Gn(c),B=M??a.get(c);if(m===void 0){if(x===void 0)return typeof c=="string"||B===void 0||B.unreadCount<=0?void 0:{id:c.conversationId,type:c.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:B.unreadCount,mentionUnreadCount:B.mentionUnreadCount,readCursor:B.readCursor,pinned:false,muted:false};let ae={...x,...p==="clear"?{lastMessagePreview:"",timestamp:0}:{},...B===void 0?{}:{unreadCount:B.unreadCount,manuallyUnread:B.manuallyUnread,mentionUnreadCount:B.mentionUnreadCount,readCursor:B.readCursor||x.readCursor}};return p==="clear"&&(delete ae.lastMessageSummary,delete ae.lastMessageSenderId,delete ae.lastMessageSystemEvent,delete ae.lastMessageSystemTargetsSelf,delete ae.lastMessageMention,delete ae.lastMessageRecalled,delete ae.lastMessageDeletedForEveryone,delete ae.lastMessageSendState),ae}let Q=B?.unreadCount??x?.unreadCount??0,ne=B===void 0?x?.manuallyUnread:B.manuallyUnread,oe=B?.mentionUnreadCount??x?.mentionUnreadCount??0,ge=nc(m,{unreadCount:Q,mentionUnreadCount:oe,selfId:e.getSelfId?.()});return x===void 0?{...ge,...ne===void 0?{}:{manuallyUnread:ne},readCursor:(B?.readCursor??"")||ge.readCursor}:{...ge,title:x.title||ge.title,avatar:x.avatar??ge.avatar,pinned:x.pinned,muted:x.muted,topTime:x.topTime,...ne===void 0?{}:{manuallyUnread:ne},readCursor:(B?.readCursor??"")||x.readCursor,groupState:x.groupState,channelState:x.channelState,channelPermissions:x.channelPermissions,channelAccessSnapshot:x.channelAccessSnapshot,sendDisabledReason:x.sendDisabledReason}}function pa(c,m){if(c===void 0)return;let p=o.get({conversationType:c.type,conversationId:c.id});p!==void 0&&na(p,c)||(o.set(c),i.delete({conversationType:c.type,conversationId:c.id}),se(c),m&&Nn(c),c.title===""&&dr({conversationType:c.type,conversationId:c.id}));}function On(c,m=false){if(!m&&o.get(c)===void 0)return;let p=n.getByConversation(c).findLast(St);pa(Vo(c,p,"preserve"),true);}function Oo(c){if(c.status!=="uploading"&&!(c.status==="failed"&&c.failure?.code===dt))return c;let m=n.get(c.id);return m!==void 0&&m.conversationType===c.conversationType&&m.conversationId===c.conversationId?m:rc(At(c))}function rl(c,m=()=>true){let p=[],M=st(c,e.getSelfId?.()??"").map(oe=>{let ge=Oo(oe),ae={...ge,sortKey:zn(ge)};if(ae=At(ae),ae.conversationType==="group"&&ae.contentType==="text"){let te=Jt(ae.body.text??"",ae.mention);te!==void 0&&(ae.mention=te);}return P(ae)}),x=new Map;for(let oe of M){if(oe.contentType!=="transfer"||oe.body.transfer===void 0)continue;let ge=Ve(oe);x.set(le(ge),ge);}let B=[...x.values()].flatMap(oe=>K(oe)),Q=oc(B,M),ne=new Set(M.map(oe=>oe.id));for(let oe of Q){if(!m())break;let{previous:ge,message:ae,isNew:te,changed:$}=J(oe);if(tl(ge,ae),ge!==void 0&&$)for(let we of ie){if(!m())return p;we.list().some(Ae=>Ae.id===ae.id&&Ae.conversationType===ae.conversationType&&Ae.conversationId===ae.conversationId)&&we.applyIncoming([ae]);}if(!m())return p;te?e.emitter.emit({type:"message:received",message:ae,conversation:Ve(ae),source:"offline",channelLifecycleEffects:false}):$&&e.emitter.emit({type:"message:updated",message:ae,conversation:Ve(ae),source:"offline",channelLifecycleEffects:false}),ne.has(ae.id)&&p.push(ae);}return p}function ol(c){let m=Oo(c),p={...m,sortKey:zn(m)};if(p=At(p),p.conversationType==="group"&&p.contentType==="text"){let M=Jt(p.body.text??"",p.mention);M!==void 0&&(p.mention=M);}return P(p)}async function Ep(c,m){let p=H(c,m);if(p!==void 0||E===void 0)return p;try{let M=await E.getMessage(c,m);return M===null||le(Ve(M))!==le(c)?void 0:ol(M)}catch(M){Y("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",M);return}}function Kn(c,m,p={}){let M=e.getSelfId?.()??"";if(m==="live"){let Ce=false,ze=false;for(let Ue of c){let en=Ve(Ue);if(Pe(Ue,M)){let fn=Oe(en);fn.deleted&&(Ce=true),fn.terminal&&(en.conversationType==="group"?(_.set(le(en),Ue.sortKey),_n()):en.conversationType==="channel"&&_.delete(le(en)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:en,data:{source:m,eventType:Ue.body.system?.eventType,groupHistoryLowerBoundApplied:en.conversationType==="group"}})),ze=true);}else (M===""||Ue.senderId!==M||p.newOutgoing===true)&&!Re(en)&&de(en)&&(Ce=true);}Ce&&un(),ze&&Hn();}let B=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,Q=(Ce,ze)=>{if(B===void 0)return;let Ue=Ve(Ce),en=le(Ue),fn=B.get(en)??{ref:Ue,tombstone:0,groupLowerBound:0};ze==="tombstone"?fn.tombstone+=1:fn.groupLowerBound+=1,B.set(en,fn);},ne=R.size>0||U.size>0?c.filter(Ce=>{let ze=Ve(Ce),Ue=!z(ze)||p.backfillOnly===true&&i.get(ze)!==void 0&&!Re(ze);return Ue||Q(Ce,"tombstone"),Ue}):c,oe=v(ne),ge=Ce=>oe.get(le(Ve(Ce)))===Ce.id,ae=_.size>0?ne.filter(Ce=>{let ze=ge(Ce)||ee(Ce);return ze||Q(Ce,"groupLowerBound"),ze}):ne,te=oe.size===0?ae:[...ae.filter(ge),...ae.filter(Ce=>!ge(Ce))];for(let Ce of B?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:Ce.ref,data:{source:m,tombstoneDroppedCount:Ce.tombstone,groupHistoryLowerBoundDroppedCount:Ce.groupLowerBound}}));let $=new Map,we=new Map,Ae=new Map,Je=new Set,Fe=st(te,M).map(P),sn=new Map;for(let Ce of Fe){if(Ce.contentType!=="transfer"||Ce.body.transfer===void 0)continue;let ze=Ve(Ce);sn.set(le(ze),ze);}let lr=[...sn.values()].flatMap(Ce=>K(Ce)),jp=oc(lr,Fe),Aa=[],ha=[];for(let Ce of jp){let{previous:ze,message:Ue,isNew:en,changed:fn}=J(Ce,{authoritativeFailure:p.authoritativeOutboxFailure===true});if(p.backfillOnly===true&&p.refreshSessionSummary===true){let Et=Ve(Ue);$.set(le(Et),Et);}if(!en&&!fn)continue;tl(ze,Ue);for(let Et of ie)Et.applyIncoming([Ue]);en?e.emitter.emit({type:"message:received",message:Ue,conversation:Ve(Ue),source:m,channelLifecycleEffects:p.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Ue,conversation:Ve(Ue),source:m,channelLifecycleEffects:p.applyChannelLifecycleEffects===true});let pn=Ve(Ue);Re(pn)||(Aa.push(Ue),$.set(le(pn),pn),en&&p.backfillOnly!==true&&ha.push(Ue));}let Ra=new Map;for(let Ce of ha){let ze=Ve(Ce),Ue=le(ze);ma(Ce)&&Je.add(Ue),Ra.has(Ue)||Ra.set(Ue,fa(ze));let en=Ra.get(Ue),fn=en===void 0||Ce.sortKey>en;if(St(Ce)&&fn&&ma(Ce)&&Ce.recalled===void 0&&Ce.deletedForEveryone===void 0){let pn=W(Ce.conversationType);(pn==="local"||pn==="server"&&m==="live")&&we.set(Ue,(we.get(Ue)??0)+1);}fn&&nl(Ce)&&Ce.recalled===void 0&&Ce.deletedForEveryone===void 0&&Ae.set(Ue,(Ae.get(Ue)??0)+1);}for(let Ce of $.values()){if(p.backfillOnly===true){p.refreshSessionSummary===true&&On(Ce);continue}let ze=le(Ce),Ue=we.get(ze)??0,en=Ae.get(ze)??0,fn=Je.has(ze);if(Ue>0||en>0||fn){let pn=a.get(Ce)??{...Ce,readCursor:"",unreadCount:0},Et={...pn,unreadCount:pn.unreadCount+Ue,mentionUnreadCount:(pn.mentionUnreadCount??0)+en};fn&&delete Et.manuallyUnread,Jn(Et);}On(Ce,ha.some(pn=>pn.conversationType===Ce.conversationType&&pn.conversationId===Ce.conversationId&&St(pn)));}q(Aa);for(let Ce of Aa)Ce.recalled===void 0&&Ce.deletedForEveryone===void 0?h(Ce,m):y(Ve(Ce),Ce.id);}function il(c,m,p=Date.now()){let M={conversationType:"direct",conversationId:c},x=H(M,m),B=n.getByConversation(M).findLast(oe=>oe.body.system?.eventType==="direct_contact_established");if(x!==void 0&&B!==void 0&&Xn(B)>=Xn(x))return;let Q=`${m}:contact-required`;if(n.get(Q)!==void 0)return;let ne={id:Q,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[c],action:{type:"request-contact",userId:c}}},createdAt:p,sortKey:_e(p,Q),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Kn([ne],"live");}function Tp(c,m,p=Date.now()){let M=`${m}:message-refused`;if(n.get(M)!==void 0)return;let x=n.get(m),B=x?.conversationType==="direct"&&x.conversationId===c?Xn(x):p,Q={id:M,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[c]}},createdAt:B,sortKey:_e(B,M),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Kn([Q],"live");}function vp(c,m=Date.now()){let p=Tn(),M={id:p,conversationId:c.conversationId,conversationType:"direct",senderId:c.senderId,contentType:"text",body:{text:c.text},createdAt:m,sortKey:_e(m,p),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...c.refMessageId===void 0?{}:{refMessageId:c.refMessageId}};return Kn([M],"live"),il(c.conversationId,p,m+1),M}function bp(c,m){return `${c.trim()===""?`contact-established:${m}`:c}:contact-established`}function Np(c,m,p=Date.now(),M=p){let x=bp(m,M);if(n.get(x)!==void 0)return;let B={id:x,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[c]}},createdAt:p,sortKey:_e(p,x),status:"sent",receipt:"unread",encryption:{encrypted:false}};Kn([B],"live");}let cr=new Map,ya=0;function _p(c,m,p=Date.now()){let M=cr.get(c);if(M!==void 0)return M;let x={conversationType:"direct",conversationId:c},B=ya,Q=(async()=>{let ne=n.getByConversation(x).filter(Fe=>{let sn=Fe.body.system?.eventType;return sn==="direct_contact_required"||sn==="direct_contact_established"}),oe=ne.filter(Fe=>Fe.body.system?.eventType==="direct_contact_required"),ge=oe.at(-1)?.createdAt??0,ae=ne.findLast(Fe=>Fe.body.system?.eventType==="direct_contact_established")?.createdAt??0,te=ae>=ge&&ae>0;if(oe.length===0&&te)return;let $=fa(x);for(let Fe of oe)try{let sn=await cl(x,Fe.id),lr=H(x,Fe.id);!sn&&lr?.body.system?.eventType==="direct_contact_required"&&e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u672A\u80FD\u5220\u9664",cause:{conversation:x,messageId:Fe.id}}});}catch(sn){e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u5220\u9664\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u5931\u8D25",cause:{conversation:x,messageId:Fe.id,error:sn}}});}if(B!==ya)return;let we=a.get(x);if(we!==void 0&&(Jn({...we,...we.readCursorSortKey===void 0&&$!==void 0?{readCursorSortKey:$}:{},unreadCount:el(x,$)}),On(x)),te)return;let Ae=Number.isFinite(p)&&p>0?p:Date.now(),Je=Math.max(Ae,ge+1);Np(c,m,Je,Ae);})().finally(()=>{cr.get(c)===Q&&cr.delete(c);});return cr.set(c,Q),Q}function Dp(c,m){let p=typeof c=="string"?n.get(m)??pe(m):H(c,m);if(p===void 0)return;let M=typeof c=="string"?Ve(p):c,x=typeof c=="string"?c:c.conversationId;if(p.conversationId!==x||p.conversationType!==M.conversationType)return;let B=fa(M);if(B!==void 0&&B>=p.sortKey){typeof c!="string"&&sl(c);return}let Q={...M,readCursor:m,readCursorSortKey:p.sortKey,unreadCount:el(M,p.sortKey),mentionUnreadCount:Mp(M,p.sortKey)};return Jn(Q),On(M),Q}function Gp(c){let m=o.get(c);if(m===void 0)return false;let p=a.get(c)??{...c,readCursor:m.readCursor??"",unreadCount:m.unreadCount,mentionUnreadCount:m.mentionUnreadCount};return p.unreadCount>0||p.manuallyUnread===true?false:(Jn({...p,manuallyUnread:true}),On(c),true)}function sl(c){let m=a.get(c);if(m?.manuallyUnread!==true)return false;let p={...m};return delete p.manuallyUnread,Jn(p),On(c),true}function al(c,m,p,M,x){let B=typeof c=="string"?c:c.conversationId,Q=Gn(c),ne=typeof c=="string"?Q===void 0?void 0:Pn(Q):c;if(Q!==void 0&&W(Q.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${B}, type=${Q.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(m)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${B}, count=${m}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}ne?.conversationType==="channel"&&f.delete(B);let oe=a.get(c),ge=oe?.readCursor??"",ae=oe?.readCursorSortKey,te=p===void 0||p===""?void 0:ne===void 0?n.get(p)??pe(p):H(ne,p);te!==void 0&&te.conversationId===B&&(ae===void 0||te.sortKey>ae)&&(ge=te.id,ae=te.sortKey),M!==void 0&&(ge=M),Jn({...ne===void 0?{conversationId:B}:ne,readCursor:ge,readCursorSortKey:ae,unreadCount:Math.max(0,Math.floor(m)),...m>0?{}:{manuallyUnread:oe?.manuallyUnread},mentionUnreadCount:m===0||x===false?0:x===true?Math.max(1,oe?.mentionUnreadCount??0):oe?.mentionUnreadCount}),On(c,m>0&&ne!==void 0&&!z(ne));}function Ia(c){let m=f.get(c.conversation.conversationId);return m?.handle.transactionId===c.transactionId?m:void 0}function dl(c,m,p,M=false){let x=Gn(c),B=H(c,m);if(x?.type!=="channel"||B?.conversationType!=="channel"||B.conversationId!==c.conversationId||B.extensions?.historyCursor!==p)throw new Error(`CHANNEL \u5DF2\u8BFB\u4F4D\u7F6E\u4E0D\u53EF\u4FE1\uFF08channelId=${c.conversationId}, messageId=${m}\uFF09`);M||f.delete(c.conversationId);let Q=a.get(c),ne=Q===void 0?x.mentionUnreadCount:Q.mentionUnreadCount;Jn({...c,readCursor:p,readCursorSortKey:B.sortKey,unreadCount:Q?.unreadCount??x.unreadCount,...ne===void 0?{}:{mentionUnreadCount:ne}}),On(c);}function Up(c){let m=c.conversationId,p=Gn(c);if(p===void 0||p.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${m}, type=${p?.type??"missing"}\uFF09`);if(f.has(m))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${m}\uFF09`);let M={conversation:c,transactionId:N++},B=a.get(c)??{conversationId:m,readCursor:p.readCursor??"",unreadCount:p.unreadCount,...p.mentionUnreadCount===void 0?{}:{mentionUnreadCount:p.mentionUnreadCount}};return f.set(m,{handle:M,baseReadState:{...B},steps:[],committedThrough:-1}),k(m),M}function kp(c,m,p){let M=c.conversation,x=M.conversationId,B=Ia(c);if(B===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${x}\uFF09`);let Q=H(M,m);if(Q===void 0||Q.conversationId!==x||Q.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${x}, messageId=${m}\uFF09`);if(Q.extensions?.historyCursor!==p)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${x}, messageId=${m}\uFF09`);B.steps.at(-1)?.readCursor!==p&&(B.steps.push({readCursor:p,messageId:m,sortKey:Q.sortKey}),dl(M,m,p,true));}function xp(c,m){let p=Ia(c);if(p===void 0)return false;let M=p.steps.findLastIndex(x=>x.readCursor===m);if(M<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${c.conversation.conversationId}, cursor=${m}\uFF09`);return p.committedThrough=Math.max(p.committedThrough,M),k(c.conversation.conversationId),p.committedThrough===p.steps.length-1&&f.delete(c.conversation.conversationId),true}function Bp(c){let m=Ia(c);if(m===void 0)return false;let p=c.conversation,M=p.conversationId,x=a.get(p),B=m.committedThrough>=0?m.steps[m.committedThrough]:void 0,Q=B===void 0?m.baseReadState:void 0,ne=x?.unreadCount??Q?.unreadCount??0,oe=x?.mentionUnreadCount??Q?.mentionUnreadCount??0,ge=Q?.mentionUnreadCount!==void 0||x?.mentionUnreadCount!==void 0,ae={conversationId:M,conversationType:"channel",readCursor:B?.readCursor??Q?.readCursor??"",readCursorSortKey:B?.sortKey??Q?.readCursorSortKey,unreadCount:ne,...ge?{mentionUnreadCount:oe}:{}};return f.delete(M),Jn(ae),On(p),true}function wp(c,m,p){let x=Gn({conversationType:"group",conversationId:c});if(x===void 0){tt({id:c,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:m,sendDisabledReason:p});return}if(x.groupState===m&&x.sendDisabledReason===p)return;let B={...x,groupState:m,sendDisabledReason:p};tt(B);}function Ca(c,m,p,M){let x={conversationType:"channel",conversationId:c},B=le(x);if(z(x)&&i.get(x)===void 0)return;let Q=Gn(x);if(Q===void 0){Z(x),j.delete(B);let ae={id:c,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:m,channelPermissions:M?.permissions,channelAccessSnapshot:M?.snapshot,sendDisabledReason:p};tt(ae);return}if(Q.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${c} \u7C7B\u578B\u4E3A ${Q.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);Z(x),j.delete(B);let ne=M?.permissions,oe=M?.snapshot;if(Q.channelState===m&&Q.sendDisabledReason===p&&ff(Q.channelPermissions,ne)&&pf(Q.channelAccessSnapshot,oe))return;let ge={...Q,channelState:m,channelPermissions:ne,channelAccessSnapshot:oe,sendDisabledReason:p};tt(ge);}function Fp(c,m){let p=o.get(c);if(p===void 0||p.pinned===m)return;let M={...p,pinned:m,topTime:m?Date.now():void 0};o.set(M),se(M),Nn(M);}function Pp(c,m){let p=Gn(c);if(p===void 0||p.muted===m)return;let M={...p,muted:m};tt(M);}async function cl(c,m){if(m.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let p=n.get(m),M=p!==void 0&&p.conversationType===c.conversationType&&p.conversationId===c.conversationId,x=n.getByConversation(c).filter(te=>te.id!==m),B=o.get(c)===void 0?void 0:Vo(c,x.at(-1),"clear"),Q=B===void 0?void 0:bn(B);function ne(te){return te!==void 0&&(p===void 0||!Gt(p,te))}let oe=E===void 0?{deleted:false,superseded:false}:await Rn(async()=>ne(n.get(m))?{deleted:false,superseded:true}:{deleted:await E.deleteMessage(c,m,Q),superseded:false});if(oe.superseded||ne(n.get(m)))return false;let ge=M&&n.delete(c,m),ae=false;for(let te of ie)ae=te.removeMessage(c,m)||ae;return !oe.deleted&&!ge&&!ae?false:(pa(B,false),y(c,m),e.emitter.emit({type:"message:removed",conversation:{...c},messageId:m,scope:"local-only"}),true)}async function Vp(c){let m={...c},p=new Map(n.getByConversation(m).map(ae=>[ae.id,ae])),M=o.get(m),x=a.get(m),B=x===void 0&&M===void 0?void 0:{...m,readCursor:x?.readCursor??M?.readCursor??"",...x?.readCursorSortKey===void 0?{}:{readCursorSortKey:x.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},Q=M===void 0?void 0:Vo(m,void 0,"clear",B);if(E!==void 0){if(E.clearConversationHistory===void 0)throw new Error("\u5F53\u524D storage \u672A\u5B9E\u73B0 clearConversationHistory\uFF0C\u62D2\u7EDD\u975E\u539F\u5B50\u6E05\u7A7A\u672C\u673A\u4F1A\u8BDD\u5386\u53F2");await Rn(()=>E.clearConversationHistory(m,Q===void 0?void 0:bn(Q),B));}let ne=a.get(m),oe=ne?.conversationType===x?.conversationType&&ne?.conversationId===x?.conversationId&&ne?.readCursor===x?.readCursor&&ne?.readCursorSortKey===x?.readCursorSortKey&&ne?.unreadCount===x?.unreadCount&&ne?.mentionUnreadCount===x?.mentionUnreadCount;B!==void 0&&oe&&Jn(B,false);for(let[ae,te]of p){let $=n.get(ae);$!==void 0&&Gt(te,$)&&n.delete(m,ae);}let ge=n.getByConversation(m);for(let ae of ie)ae.clearConversation(m)&&ae.applyIncoming(ge);d(m),o.get(m)!==void 0&&pa(Vo(m,ge.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:m,scope:"local-only"});}function ll(c,m={}){let p=typeof c=="string"?c:c.conversationId,M=o.get(c),x=l.get(c),B=typeof c=="string"?M!==void 0?{conversationType:M.type,conversationId:p}:x===void 0?void 0:ht(x):c;if(B===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${p}`);let Q=n.getByConversation(B).length;ar(B),d(B),o.delete(c),i.delete(c),B.conversationType==="channel"&&(k(B.conversationId),f.delete(B.conversationId)),a.delete(c),n.deleteByConversation(c),l.clear(c);let ne=O(B);if(m.terminal===true){U.add(ne);let oe=_.delete(ne);R.delete(ne),R.delete(p),oe&&_n(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:B,data:{reason:m.terminalReason??"membership-terminated",removedMessageCount:Q}}));}else R.add(ne);for(let oe of ie)he(oe,B)&&oe.reset();e.emitter.emit({type:"session:removed",conversationId:p,conversation:B}),un(),m.terminal===true&&Hn(),E!==void 0&&(E.deleteConversationMessages(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",oe)),E.deleteSession(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u5931\u8D25",oe)),E.deleteReadState(B).catch(oe=>Y("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",oe)),E.removePinnedMessage(B).catch(oe=>Y("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",oe)));}function Op(c){ll(c);}function Sa(c,m){ll(c,{terminal:true,terminalReason:m});}function Kp(c){let m=Pn(c);if(le(m),m.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let p=o.get(m);if(p!==void 0)return p;let M={...c,id:m.conversationId,type:m.conversationType,...c.channelPermissions===void 0?{}:{channelPermissions:{...c.channelPermissions}},...c.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...c.channelAccessSnapshot}},...c.extensions===void 0?{}:{extensions:{...c.extensions}}},x=Oe(m);return x.deleted&&un(),x.terminal&&Hn(),o.set(M),i.delete(m),se(M),Nn(M),M}function Gn(c){if(typeof c=="string"){let m=[...o.getAll(),...i.getAll()].filter(p=>p.id===c);if(m.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${c}`);return m[0]}return o.get(c)??i.get(c)}function tt(c){let m=Pn(c);o.get(m)!==void 0?(o.set(c),se(c),Nn(c)):(i.set(c),e.emitter.emit({type:"conversation-context:updated",conversation:m}));}function Lp(c,m={}){let p=Pn(c);if(p.conversationType==="supergroup")throw new Error("prepareConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let M=Gn(p);if(M!==void 0){let x=M.title||c.title,B=M.avatar??c.avatar;(x!==M.title||B!==M.avatar)&&tt({...M,title:x,avatar:B});return}if(Re(p)){if(m.membershipConfirmed!==true)throw new Error("\u51C6\u5907\u804A\u5929\u5931\u8D25\uFF1A\u9700\u8981\u91CD\u65B0\u786E\u8BA4\u6210\u5458\u8D44\u683C");U.delete(O(p)),U.delete(p.conversationId),Hn();}tt({...c,...c.channelPermissions===void 0?{}:{channelPermissions:{...c.channelPermissions}},...c.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...c.channelAccessSnapshot}}}),(a.get(p)?.unreadCount??0)>0&&!z(p)&&On(p,true);}function Zp(c){return mf(o.getAll(),c)}async function Qp(c=()=>true){if(!(E===void 0||!c())){fe=true;try{let m=await E.getMeta(af);if(!c())return;if(m!==null)for(let te of m)R.add(te);let p=await E.getMeta(df);if(!c())return;if(p!==null)for(let te of p)U.add(te);let M=await E.getMeta(cf);if(!c())return;if(M!==null)for(let[te,$]of M)typeof te=="string"&&typeof $=="string"&&_.set(te,$);let x=await E.getMeta(lf);if(!c())return;if(x!==null)for(let te of x){let $=Me(te);t.set($,[...t.get($)??[],te]);}let B=await E.getMeta(uf);if(!c())return;if(Array.isArray(B))for(let te of B){if(typeof te!="object"||te===null)continue;let $=Reflect.get(te,"serialNumber"),we=Reflect.get(te,"status"),Ae=Reflect.get(te,"occurredTime");typeof $!="string"||$.trim()===""||we!==0&&we!==1&&we!==2&&we!==3||Ae!==void 0&&(typeof Ae!="number"||!Number.isFinite(Ae)||Ae<=0)||r.set($,{serialNumber:$,status:we,...Ae===void 0?{}:{occurredTime:Ae}});}let Q=await E.getPinnedMessages();if(!c())return;for(let te of Q){if(!c())return;z({conversationType:te.conversationType,conversationId:te.conversationId})||l.set(te)&&e.emitter.emit({type:"pinned-message:updated",conversationId:te.conversationId,conversation:ht(te),pinnedMessage:te,reason:"hydrate"});}let ne=(await E.getSessions()).filter(te=>!z({conversationType:te.type,conversationId:te.id}));if(!c())return;for(let te of ne){if(!c())return;let $=Pn(te),we=o.get($);o.set(te),i.delete($),(we===void 0||!na(we,te))&&se(te);}let oe=await E.getReadStates();if(!c())return;for(let te of oe)te.conversationType==="channel"&&k(te.conversationId),a.set(te);let ge=L,ae=await E.getDrafts();if(!c()||ge!==L)return;for(let te of ae){if(!c())return;if(!Number.isFinite(te.updatedAt)||te.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${te.updatedAt}`);let $=ke(te.ref,te,te.updatedAt);if(z($.ref)){try{if(await E.deleteDraft($.ref),!c())return}catch(Je){if(!c())return;Y("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Je);}continue}let we=le($.ref);b.set(we,Math.max(b.get(we)??0,$.updatedAt));let Ae=s.get($.ref);Ae!==null&&Ae.updatedAt===$.updatedAt&&Xe(Ae,$)||(s.set($),e.emitter.emit({type:"draft:updated",conversation:$.ref,draft:$}));}for(let te of ne){if(!c())return;let $=Pn(te),we=(await E.getMessages($,{limit:mA})).filter(Fe=>le(Ve(Fe))===le($)).filter(ee);if(!c())return;let Ae=[],Je=we.map(Fe=>{let sn=Oo(At(Fe));return sn!==Fe&&Ae.push(sn),sn});if(rl(Je,c),!c())return;if(Ae.length>0)try{if(await E.saveMessages(Ae),!c())return}catch(Fe){if(!c())return;Y("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Fe);}if(!c())return;On($);}}catch(m){c()&&Y("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",m);}finally{fe=false,c()&&S("offline");}}}async function Wp(c,m){if(E===void 0)return [];try{let p=await E.getMessages(c,m),M=typeof c=="string"?p.filter(ee):p.filter(Q=>le(Ve(Q))===le(c)).filter(ee),x=fe;fe=!0;let B;try{B=rl(M);}finally{fe=x;}return fe||S("offline"),B.map(Q=>H(Ve(Q),Q.id)??Q)}catch(p){return Y("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",p),[]}}function Hp(c,m){let p=m?.match(Qo(c));return {message:c,ranges:p?.ranges.map(({start:M,end:x})=>[M,x])??[]}}async function Jp(c,m){let p=m.keyword?.trim()??"",M=m.contentTypes;if(p===""&&(M===void 0||M.length===0))return {results:[],exhausted:true};let x=p===""?void 0:await Ua(p),B=Ae=>{let Je=M===void 0||M.includes(Ae.contentType),Fe=x===void 0||x.match(Qo(Ae))!==null;return Je&&Fe},Q=(Ae,Je)=>Ae.sortKey<Je.sortKey?1:Ae.sortKey>Je.sortKey?-1:0,ne=Ae=>Hp(Ae,x),oe=()=>{let Ae=n.getByConversation(c).filter(B).sort(Q),Fe=(m.beforeSortKey===void 0?Ae:Ae.filter(lr=>lr.sortKey<m.beforeSortKey)).slice(0,m.limit),sn=Fe.length<m.limit;return {results:Fe.map(ne),exhausted:sn,...sn?{}:{nextBeforeSortKey:Fe.at(-1)?.sortKey}}};if(E===void 0)return oe();let ge;try{ge=await E.searchMessages(c,{...m.keyword!==void 0?{keyword:m.keyword}:{},...M!==void 0?{contentTypes:M}:{},limit:m.limit,...m.beforeSortKey!==void 0?{beforeSortKey:m.beforeSortKey}:{}});}catch(Ae){throw Y("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Ae),Ae}let ae=ge.exhausted?void 0:ge.nextBeforeSortKey,te=new Map(n.getByConversation(c).map(Ae=>[Ae.id,Ae])),$=new Map;for(let Ae of ge.items){let Je=ol(Ae);le(Ve(Je))===le(c)&&$.set(Je.id,te.get(Je.id)??Je);}for(let Ae of te.values()){let Je=m.beforeSortKey===void 0||Ae.sortKey<m.beforeSortKey,Fe=ae===void 0||Ae.sortKey>=ae;Je&&Fe&&B(Ae)&&$.set(Ae.id,Ae);}return {results:[...$.values()].filter(B).sort(Q).map(ne),exhausted:ge.exhausted,...ge.exhausted?{}:{nextBeforeSortKey:ge.nextBeforeSortKey}}}function Yp(c,m,p){let M=H(c,m);M!==void 0&&Kn([{...M,recalled:p,body:{}}],"live");}function Xp(c,m,p){let M=H(c,m);M===void 0||M.conversationType!=="channel"||Kn([{...M,recalled:void 0,deletedForEveryone:p,body:{}}],"live");}function zp(c,m,p,M){let x=H(c,m);if(x===void 0)return;let B={...x,body:p,edited:true};M!==void 0?B.mention=M:delete B.mention,Kn([B],"live");}async function qp(c,m,p){let M=r.get(c),x={serialNumber:c,status:m,...p===void 0?{}:{occurredTime:p}},B=V(M,x);r.set(B.serialNumber,B),await ve();let Q=new Map;for(let ne of js(n.getAll(),c,B.status,B.occurredTime))Q.set(ne.id,ne);for(let ne of o.getAll()){let oe=K({conversationType:ne.type,conversationId:ne.id});for(let ge of js(oe,c,B.status,B.occurredTime))Q.set(ge.id,ge);}Q.size!==0&&Kn([...Q.values()],"live");}return {upsertMessages:Kn,applyReaction:u,rollbackReaction:g,appendDirectContactRequiredNotice:il,appendDirectMessageRefusedNotice:Tp,appendDirectContactRequiredTextFailure:vp,reconcileDirectContactEstablishedNotice:_p,recallMessage:Yp,deleteChannelMessageForEveryone:Xp,editMessage:zp,applyTransferStatusBySerialNumber:qp,getMessage:c=>n.get(c),getConversationMessage:H,getLoadedMessagesByConversation:K,resolveConversationMessage:Ep,getMessages:()=>n.getAll(),getMessagesByConversation:c=>n.getByConversation(c),deleteLocalMessage:cl,clearLocalConversationHistory:Vp,getSession:c=>o.get(c),getConversationContext:Gn,isMembershipTerminated:Re,prepareConversation:Lp,ensureConversation:Kp,getSessions:()=>o.getAll(),getConversationList:Ne,getReadState:c=>a.get(c),getPinnedMessage:c=>l.get(c),setPinnedMessage:Mn,clearPinnedMessage:Dn,isPinnedMessage:(c,m)=>l.isPinnedMessage(c,m),setReadState:c=>{let m=c.conversationType===void 0?o.get(c.conversationId):void 0,p=c.conversationType===void 0&&m!==void 0?{...c,conversationType:m.type}:c;p.conversationType==="channel"&&k(p.conversationId),a.set(p),mn(p);},markConversationUnread:Gp,clearConversationManualUnread:sl,advanceRead:Dp,applyServerUnread:al,applyChannelReadPosition:dl,getChannelReadRevision:c=>I.get(c.conversationId)??C,hasPendingChannelRead:c=>f.has(c.conversationId),applyChannelReadSummary:(c,m)=>al(c,m.unreadCount,void 0,m.readCursor,m.hasUnreadMention),beginChannelReadTransaction:Up,applyChannelReadOptimistically:kp,commitChannelReadTransaction:xp,rollbackChannelReadTransaction:Bp,setGroupRestriction:wp,setChannelRestriction:Ca,setPinned:Fp,setMuted:Pp,removeConversation:Op,removeConversationForMembershipTermination:Sa,refreshConversationProfile:Ap,recoverChannelFromProfile:hp,updateConversationProfile:Rp,getTotalUnread:Zp,getDraft:ce,saveDraft:rn,clearDraft:Bt,clearDraftIfUnchanged:sr,invalidateAndDrainDraftOperations:$e,clearSession(){G+=1,L+=1,ya+=1,cr.clear(),D.clear(),j.clear(),n.clear(),o.clear(),i.clear(),a.clear(),s.clear(),A.clear(),b.clear(),F.clear(),f.clear(),I.clear(),C+=1,l.clearAll(),R.clear(),U.clear(),_.clear(),t.clear();for(let c of ie)c.reset();},hydrate:Qp,loadOlderMessages:Wp,searchMessages:Jp,messageWindow:re,createMessageWindow:me}}var yA=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function IA(e){let n=new Set,t=new Map,r=new Map,o=true;function i(f){let I=f.extensions?.channelSequence,C=typeof I=="string"?I:f.raw?.channelNotify?.sequence;if(C===void 0||!/^\d+$/.test(C))return;let k=BigInt(C);return k>0n?k:void 0}function a(f){return n.has(f)?false:(n.add(f),n.size>2048&&n.delete(n.values().next().value),true)}function s(f,I,C,k){k!==void 0&&r.set(f,k),e.clearChannelKey(f),e.stopChannelHistory(f),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:f},C);}function l(f){let I=e.domainState.getSession(f);e.domainState.setChannelRestriction(f,I?.channelState??"unknown_restricted",I?.channelState===void 0?"channel_access_requires_refresh":I.sendDisabledReason);}return {handleMessage(f,I={source:"live"}){if(!o||f.conversationType!=="channel"||f.contentType!=="system"||f.body.system===void 0||I.source!=="live"&&I.applyLifecycleEffects!==true||!a(f.id))return;let C=f.conversationId,k=f.body.system,N=k.targetUserIds?.includes(e.getSelfId())??false,R=k.targetUserIds===void 0||k.targetUserIds.length===0,U=i(f),_=t.get(C);if(U!==void 0){if(_!==void 0&&U<=_)return;t.set(C,U);}switch(k.eventType){case "channel_member_left":N?s(C,"left","channel_left",U):e.domainState.refreshConversationProfile(C,"channel");return;case "channel_member_removed":N?s(C,"removed","channel_removed",U):e.domainState.refreshConversationProfile(C,"channel");return;case "channel_dismissed":s(C,"dismissed","channel_dismissed",U);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!N){e.domainState.refreshConversationProfile(C,"channel");return}let E=e.domainState.getSession(C)?.channelState;if(E==="dismissed")return;if(E==="left"||E==="removed"){let T=r.get(C);if(!(U!==void 0&&T!==void 0&&U>T)){e.domainState.recoverChannelFromProfile(C).then(b=>{!o||!b||(r.delete(C),e.clearConversationTermination?.({conversationType:"channel",conversationId:C}),e.prepareChannelKey(C));});return}r.delete(C);}if(!o)return;e.domainState.setChannelRestriction(C,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:C}),e.prepareChannelKey(C),e.domainState.refreshConversationProfile(C,"channel");return}case "channel_all_muted":case "channel_all_unmuted":l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(N||R)&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_admin_added":case "channel_admin_removed":(N||R)&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;case "channel_owner_transferred":(N||R||k.operatorId===e.getSelfId())&&l(C),e.domainState.refreshConversationProfile(C,"channel");return;default:yA.has(k.eventType)&&e.domainState.refreshConversationProfile(C,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function CA(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let a=i.body.system;if(i.contentType==="system"&&a!==void 0){if(a.eventType==="group_info_changed"||a.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let s=Yd(a,t());if(s===null)return;s.state==="active"?(n.setGroupRestriction(i.conversationId,s.state,s.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let s=Xd(i.failure?.code);s!==null?(o(i.conversationId),s.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason):n.setGroupRestriction(i.conversationId,s.state,s.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function SA(e){return {handleMessage(n){let t={conversationType:n.conversationType,conversationId:n.conversationId},r=n.body.system?.pinnedMessageAction;if(r!==void 0){if(r.type==="pin"){e.domainState.setPinnedMessage(r.pinnedMessage,"notify:pin");return}if(r.type==="unpin"){e.domainState.clearPinnedMessage(t,"notify:unpin");return}e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u7F6E\u9876\u6D88\u606F\u901A\u77E5 payload \u89E3\u6790\u5931\u8D25",cause:{conversationId:n.conversationId,notifyMessageId:n.id,code:r.code}}}),e.requestReconcile(n.conversationId);return}if(n.contentType!=="system"&&e.domainState.isPinnedMessage(t,n.id)){let o=e.domainState.getPinnedMessage(t);o!==void 0&&e.domainState.setPinnedMessage({...o,preview:{state:"ready",message:n}},"message:updated");}}}}function AA(e){let n={callKind:e.callKind,outcome:e.outcome,durationMs:e.durationMs,outgoing:e.outgoing};return {id:e.callId,conversationId:e.peerId,conversationType:"direct",senderId:e.outgoing?e.selfId:e.peerId,contentType:"call",body:{call:n},createdAt:e.createdAt,sortKey:_e(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function kt(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([AA(n)],"live");}var nr=3e4,yf=0,If=1,Cf=0;function Sf(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var hA=5,RA=6,Af=1,hf=2;function Sc(e){return e==="video"?RA:hA}function Rf(e){return e==="audio"?If:yf}function Mf(e){if(e===If)return "audio";if(e===yf)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function ta(e,n,t=nr){if(!Number.isFinite(e)||e<=0)throw new Error(`call signaling: msgTime \u975E\u6CD5\uFF08${String(e)}\uFF09`);if(!Number.isFinite(n)||n<=0)throw new Error(`call signaling: now \u975E\u6CD5\uFF08${String(n)}\uFF09`);return n-e>t}function Ef(e){if(e===32768)return "accept";if(e===33792||e===0)return "reject";if(e===33793)return "busy";if(e===33796)return "token-failed";if(e===33797)return "connect-failed";throw new Error(`call signaling: \u5E94\u7B54 errcode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Tf(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function Ac(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function ra(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Ee(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function ln(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function We(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var MA=new Set([33281,33299]);function tr(e){return {conversationType:"direct",conversationId:e}}function vf(e){return e==="accepted"||e==="connected"}function EA(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let V=e.getSelfId();if(V.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return V}function i(V){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${V}`);return o()}function a(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function s(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function l(V,P){e.emitter.emit({type:"call:hangup",conversation:tr(V.peerId),callId:V.callId,peerId:V.peerId,outcome:P});}function f(V,P=r(),y=true){if(t===void 0)return;let d=t;return s(),C(d,V,P),t=void 0,y&&l(d,V),d}function I(V,P){return V.connectedAt===void 0?0:Math.max(0,P-V.connectedAt)}function C(V,P,y,d){kt(e.domainState,{callId:V.callId,peerId:V.peerId,selfId:o(),callKind:V.callKind,outcome:P,durationMs:I(V,y),outgoing:V.direction==="outgoing",createdAt:y,...d});}function k(V,P){n!==void 0&&C(n,V,P);}function N(V,P=r(),y=true){if(n===void 0)return;let d=n;return a(),k(V,P),n=void 0,y&&l(d,V),t!==void 0&&(n=t,t=void 0),d}function R(V,P,y){let d=V===16387?zr.encode(zr.create({sUserId:P,sMsgId:y})):V===16391?jr.encode(jr.create({sUserId:P,sMsgId:y})):V===16399?eo.encode(eo.create({sUserId:P,sMsgId:y})):V===16403?to.encode(to.create({sUserId:P,sMsgId:y})):$r.encode($r.create({sUserId:P,sMsgId:y}));e.sendFrame(X({command:V,body:d}));}function U(V){return setTimeout(V,nr)}function _(){return be(Tn())}function E(V,P,y,d){let u=Xr.encode(Xr.create({sInviteId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),encrypt:Cf,sContent:Sf(),callType:Rf(d),scallId:y}));e.sendFrame(X({command:16385,body:u}));}function T(V,P,y,d){let u=qr.encode(qr.create({sToId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),errcode:Tf(d),scallId:y}));e.sendFrame(X({command:16389,body:u}));}function A(V,P,y,d){let u=Wt.encode(Wt.create({sToId:Ee(P,"peerId"),sFromId:Ee(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),scallId:y,hangupReasonCode:Ac(d)}));e.sendFrame(X({command:16397,body:u}));}function b(V,P){let y=We(V.callId);if(Ee(V.peerId,"peerId"),n===void 0||n.callId!==y||n.peerId!==V.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${P}`);return n}function F(V){let P=i("\u53D1\u8D77\u901A\u8BDD"),y=V.callKind??"audio",d=String(Ee(V.peerId,"peerId"));if(d===P)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let u=We(V.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let g=r();return n={callId:u,peerId:d,callKind:y,direction:"outgoing",phase:"outgoing-ringing",startedAt:g},E(P,d,u,y),n.ringTimer=U(()=>{n?.callId!==u||n.phase!=="outgoing-ringing"||(A(P,d,u,"no-answer"),N("cancelled"));}),{callId:u,conversation:tr(d)}}function L(V){let P=i("\u63A5\u542C"),y=We(V.callId);if(Ee(V.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===V.peerId){if(n!==void 0)throw new Error("call signaling: \u8BF7\u5148\u7ED3\u675F\u5F53\u524D\u901A\u8BDD\u518D\u63A5\u542C\u7B49\u5F85\u6765\u7535");n=t,t=void 0;}let d=b(V,"\u63A5\u542C");if(d.direction!=="incoming"||d.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");a(),T(P,d.peerId,d.callId,"accept"),d.phase="accepted";}function W(V){let P=i("\u62D2\u7EDD"),y=We(V.callId);if(Ee(V.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===V.peerId){T(P,t.peerId,t.callId,"reject"),f("rejected");return}let d=b(V,"\u62D2\u7EDD");if(d.direction!=="incoming"||d.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");T(P,d.peerId,d.callId,"reject"),N("rejected");}function ie(V){let P=i("\u56DE\u5FD9"),y=We(V.callId),d=String(Ee(V.peerId,"peerId"));if(T(P,d,y,"busy"),n?.callId===y){N("busy");return}if(t?.callId===y){f("busy");return}kt(e.domainState,{callId:y,peerId:d,selfId:P,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function Te(V){let P=i("\u6302\u65AD"),y=b(V,"\u6302\u65AD");A(P,y.peerId,y.callId,V.reason);let d=y.phase==="connected",u=ra(Ac(V.reason),y.direction,d);N(u);}function re(V,P){let y=P==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",d=i(y),u=b(V,y);if(u.callKind!==P)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${P==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(u.phase!=="accepted"&&u.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let g=no.encode(no.create({sToId:Ee(u.peerId,"peerId"),sFromId:Ee(d,"selfId"),sMsgId:_(),msgTime:BigInt(r()),notifyType:Sc(P),notifyValue:V.role==="caller"?Af:hf,scallId:u.callId}));e.sendFrame(X({command:16401,body:g}));}function me(V){re(V,"audio");}function pe(V){re(V,"video");}function H(V){let P=is.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let y=o();R(16387,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId),u=P.sFromId.toString();if(P.sFromId<=0n||P.sInviteId.toString()!==y)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(u===y)return;let g=Number(P.msgTime),h=Mf(P.callType),S=ta(g,r()),G=tr(u);if(S){kt(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"missed",durationMs:0,outgoing:false,createdAt:g}),e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:true});return}if(n?.callId===d||t?.callId===d)return;if(n!==void 0&&!vf(n.phase)){T(y,u,d,"busy"),kt(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}if(n!==void 0&&n.peerId===u){T(y,u,d,"busy"),kt(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}if(t!==void 0){T(y,u,d,"busy"),kt(e.domainState,{callId:d,peerId:u,selfId:y,callKind:h,outcome:"busy",durationMs:0,outgoing:false,createdAt:g});return}let D={callId:d,peerId:u,callKind:h,direction:"incoming",phase:"incoming-ringing",startedAt:g};if(D.ringTimer=U(()=>{if(t?.callId===d&&t.phase==="incoming-ringing"){f("missed");return}n?.callId!==d||n.phase!=="incoming-ringing"||N("missed",g);}),n!==void 0&&vf(n.phase)){t=D,e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:false});return}n=D,e.emitter.emit({type:"call:incoming",conversation:G,callId:d,peerId:u,callKind:h,createdAt:g,expired:false});}function J(V){let P=os.decode(V);if(n===void 0||n.direction!=="outgoing"||P.errcode===32768)return;let y=P.errcode===33794?"peer-offline":"ack-error",d=n,u=r();a(),n=void 0,MA.has(P.errcode)?(C(d,"cancelled",u,{status:"failed",failure:{code:P.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(d.peerId,d.callId,u+1)):C(d,"cancelled",u),e.emitter.emit({type:"call:failed",conversation:tr(d.peerId),callId:d.callId,peerId:d.peerId,reason:y});}function K(V,P){P!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${V} ACK \u5931\u8D25`,cause:{errcode:P}}});}function he(V){let P=as.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let y=o();R(16391,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId);if(n===void 0||n.callId!==d||n.direction!=="outgoing")return;let u=Ef(P.errcode);if(e.emitter.emit({type:"call:answered",conversation:tr(n.peerId),callId:d,peerId:n.peerId,result:u}),u==="accept"){a(),n.phase="accepted";return}N(u==="reject"?"rejected":u==="busy"?"busy":"cancelled");}function fe(V){let P=Wt.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let y=o();R(16399,Ee(y,"selfId"),P.sMsgId);let d=We(P.scallId);if(t!==void 0&&t.callId===d){let g=ra(P.hangupReasonCode,t.direction,false);f(g);return}if(n===void 0||n.callId!==d)return;let u=ra(P.hangupReasonCode,n.direction,n.phase==="connected");N(u);}function Me(V){let P=us.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let y=o();if(R(16403,Ee(y,"selfId"),P.sMsgId),n===void 0||P.notifyType!==Sc(n.callKind))return;let d=We(P.scallId);n.callId===d&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=r()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:tr(n.peerId),callId:d,peerId:n.peerId})));}function ue(V){let P=ds.decode(V);if(P.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");R(16395,Ee(o(),"selfId"),P.sMsgId);}return {handlers:[{command:16388,handler:(V,P)=>H(P)},{command:16386,handler:(V,P)=>J(P)},{command:16392,handler:(V,P)=>he(P)},{command:16390,handler:(V,P)=>K("answer",ss.decode(P).errcode)},{command:16400,handler:(V,P)=>fe(P)},{command:16398,handler:(V,P)=>K("hangup",cs.decode(P).errcode)},{command:16404,handler:(V,P)=>Me(P)},{command:16402,handler:(V,P)=>K("state-notify",ls.decode(P).errcode)},{command:16396,handler:(V,P)=>ue(P)}],invite:F,accept:L,reject:W,busy:ie,hangup:Te,notifyPeerAudioBegin:me,notifyPeerVideoBegin:pe,dispose(){a(),s(),n=void 0,t=void 0;}}}var TA={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function vA(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return n>>>0}function bf(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>vA(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return ye(r)}function bA(e){let n=bf(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Js,contentType:"system",body:{system:{eventType:TA[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:_e(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Nf(e,n){let t=bf(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([bA(n)],"live");}var hc=9;function NA(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function _f(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],i=0;for(let l of t){let f=NA(l),I=new Uint8Array(1+f.length);I[0]=r,I.set(f,1),o.push(I),i+=I.length;}let a=new Uint8Array(e.length+i),s=0;for(let l of o)a.set(l,s),s+=l.length;return a}function gn(e){return {conversationType:"group",conversationId:e}}function _A(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function DA(e){return e.members.filter(n=>n.status==="in-call").length}function oa(e){return e.filter(n=>n.status==="in-call").length<=1}function GA(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(u,g,h,S,G){Nf(e.domainState,{kind:u,groupId:g,callId:h,createdAt:S,...G===void 0?{}:{operatorId:G}});}function a(){let u=e.getSelfId();if(u.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return u}function s(u){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${u}`);return a()}function l(){return be(Tn())}function f(u){if(u.trim()===""||t.has(u))return false;if(t.add(u),r.push(u),r.length>256){let g=r.shift();g!==void 0&&t.delete(g);}return true}function I(u){let g=n.get(u);return g===void 0?null:_A(g)}function C(u){u.incomingRingTimer!==void 0&&clearTimeout(u.incomingRingTimer),u.incomingRingTimer=void 0;}function k(u,g,h){let S=u.members.find(G=>G.userId===g);if(S!==void 0){S.status=h;return}u.members.push({userId:g,status:h});}function N(u,g){u.members=u.members.filter(h=>h.userId!==g);}function R(u){let g=n.get(u.groupId);g!==void 0&&C(g);let h=[];for(let G of u.inCallIds)h.some(D=>D.userId===G)||h.push({userId:G,status:"in-call"});for(let G of u.ringingIds)h.some(D=>D.userId===G)||h.push({userId:G,status:"ringing"});let S={groupId:u.groupId,callId:u.callId,inviterId:u.inviterId,createdAt:u.createdAt,members:h};return n.set(u.groupId,S),S}function U(u,g){let h=n.get(u);if(h!==void 0&&!(g!==void 0&&h.callId!==g))return C(h),n.delete(u),h}function _(u,g){for(let h of n.values())if(h.groupId!==g&&h.members.some(S=>ln(S.userId,u)))return true;return false}function E(u,g,h){let S=oo.encode(oo.create({userId:g,msgId:h}));e.sendFrame(X({command:u,body:S}));}function T(u,g,h,S){let G=S.map(j=>Ee(j,"inviteId")),D=_f(ro.encode(ro.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,inviteIds:G})),6,G);e.sendFrame(X({command:16641,body:D}));}function A(u,g,h,S,G){let D=S.map(O=>Ee(O,"inviteId")),j=_f(so.encode(so.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,joinType:G?1:0,inviteIds:D})),5,D);e.sendFrame(X({command:16649,body:j}));}function b(u,g,h,S){let G=io.encode(io.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h,ansType:S?1:0}));e.sendFrame(X({command:16645,body:G}));}function F(u,g,h){let S=ao.encode(ao.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h}));e.sendFrame(X({command:16653,body:S}));}function L(u,g,h){let S=co.encode(co.create({groupId:Ee(g,"groupId"),userId:Ee(u,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:h}));e.sendFrame(X({command:16657,body:S}));}function W(u,g,h){let S=s("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),G=We(g),D=[...new Set(h.map(O=>O.trim()).filter(O=>O!==""&&!ln(O,S)))];if(D.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(D.length+1>hc)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${hc}`);let j=n.get(u);if(j!==void 0&&DA(j)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");T(S,u,G,D),R({groupId:u,callId:G,inviterId:S,createdAt:o(),inCallIds:[S],ringingIds:D}),i("started",u,G,o(),S);}function ie(u,g,h,S){let G=s("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),D=We(g),j=[...new Set(h.map(z=>z.trim()).filter(z=>z!==""&&!ln(z,G)))];A(G,u,D,j,S);let O=n.get(u);if(O!==void 0&&O.callId===D&&(k(O,G,"in-call"),S))for(let z of j)k(O,z,"ringing");}function Te(u,g,h){let S=s("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),G=We(g),D=n.get(u);if(D!==void 0&&D.callId===G&&C(D),b(S,u,G,h),!(D===void 0||D.callId!==G)){if(h){k(D,S,"in-call");return}N(D,S),e.emitter.emit({type:"group-call:answered",conversation:gn(u),callId:G,groupId:u,userId:S,agreed:false});}}function re(u,g){let h=s("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),S=We(g),G=n.get(u);if(G!==void 0&&G.callId===S&&oa(G.members)){L(h,u,S),U(u,S),i("ended",u,S,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(u),callId:S,groupId:u,userId:h});return}F(h,u,S),G!==void 0&&G.callId===S&&(C(G),N(G,h)),e.emitter.emit({type:"group-call:left",conversation:gn(u),callId:S,groupId:u,userId:h});}function me(u,g){let h=s("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),S=We(g);L(h,u,S),U(u,S),i("ended",u,S,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(u),callId:S,groupId:u,userId:h});}function pe(u,g,h,S){let G=s("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),D=lo.encode(lo.create({groupId:Ee(u,"groupId"),userId:Ee(G,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:We(g),statusType:h?1:0,status:S?1:0}));e.sendFrame(X({command:16661,body:D}));}function H(u,g,h){let S=s("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),G=uo.encode(uo.create({groupId:Ee(u,"groupId"),userId:Ee(S,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:We(g),hintUser:Ee(h,"hintUserId")}));e.sendFrame(X({command:16669,body:G}));let D=n.get(u);D!==void 0&&D.callId===g&&N(D,S);}function J(u){let g=ms.decode(u);if(g.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let h=a();if(E(16643,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.inviteIds.map(v=>v.toString()).filter(v=>v!=="0"),O=Number(g.msgTime),z=ta(O,o(),nr),Re=gn(S),de=ln(G,h),Oe=j.some(v=>ln(v,h))||j.length===0&&!de;if(de){R({groupId:S,callId:D,inviterId:G,createdAt:O,inCallIds:[h],ringingIds:j.filter(v=>!ln(v,h))});return}let Pe=n.get(S);if(Pe!==void 0&&Pe.callId!==D&&Pe.members.some(v=>ln(v.userId,h)&&v.status==="in-call")){L(h,S,D),i("ended",S,D,Number.isFinite(O)?O:o());return}if(R({groupId:S,callId:D,inviterId:G,createdAt:O,inCallIds:[G],ringingIds:Oe?[...new Set([h,...j.filter(v=>!ln(v,G))])]:j.filter(v=>!ln(v,G))}),i("started",S,D,Number.isFinite(O)?O:o(),G),!Oe)return;if(z){e.emitter.emit({type:"group-call:incoming",conversation:Re,callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:O,expired:true});return}if(_(h,S)){H(S,D,G);return}let ee=n.get(S);ee!==void 0&&(ee.incomingRingTimer=setTimeout(()=>{let v=n.get(S);if(v===void 0||v.callId!==D)return;let Z=v.members.find(Y=>ln(Y.userId,h));if(!(Z===void 0||Z.status!=="ringing")){try{Te(S,D,!1);}catch{N(v,h);}i("missed",S,D,o());}},nr)),e.emitter.emit({type:"group-call:incoming",conversation:Re,callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:O,expired:false});}function K(u){let g=ps.decode(u);if(g.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let h=a();if(E(16647,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.ansType===1,O=n.get(S);O===void 0||O.callId!==D||(j?k(O,G,"in-call"):N(O,G),e.emitter.emit({type:"group-call:answered",conversation:gn(S),callId:D,groupId:S,userId:G,agreed:j}));}function he(u){let g=Is.decode(u);if(g.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let h=a();if(E(16651,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=g.inviteIds.map(de=>de.toString()).filter(de=>de!=="0"&&de!==G),O=n.get(S);if(O===void 0||O.callId!==D)O=R({groupId:S,callId:D,inviterId:G,createdAt:Number(g.msgTime),inCallIds:[G],ringingIds:j});else if(k(O,G,"in-call"),g.joinType===1)for(let de of j)k(O,de,"ringing");e.emitter.emit({type:"group-call:joined",conversation:gn(S),callId:D,groupId:S,userId:G,inviteIds:j,isInvite:g.joinType===1});let z=j.some(de=>ln(de,h))||j.length===0&&g.joinType===1&&!ln(G,h),Re=O.members.find(de=>ln(de.userId,h));z&&g.joinType===1&&!ln(G,h)&&Re?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:gn(S),callId:D,groupId:S,inviterId:G,inviteIds:j,createdAt:Number(g.msgTime),expired:false});}function fe(u){let g=Ss.decode(u);if(g.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let h=a();if(E(16655,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=n.get(S);j===void 0||j.callId!==D||(N(j,G),e.emitter.emit({type:"group-call:left",conversation:gn(S),callId:D,groupId:S,userId:G}),oa(j.members)&&(U(S,D),i("ended",S,D,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:D,groupId:S,userId:G})));}function Me(u){let g=hs.decode(u);if(g.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let h=a();if(E(16659,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId);U(S,D),i("ended",S,D,Number(g.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:D,groupId:S,userId:G});}function ue(u){let g=vs.decode(u);if(g.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let h=a();if(E(16671,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=g.userId.toString(),D=We(g.callId),j=n.get(S);j!==void 0&&j.callId===D&&N(j,G),e.emitter.emit({type:"group-call:busy",conversation:gn(S),callId:D,groupId:S,userId:G,hintUserId:g.hintUser.toString()});}function ve(u){let g=Es.decode(u);if(g.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let h=a();if(E(16667,Ee(h,"selfId"),g.msgId),!f(g.msgId))return;let S=g.groupId.toString(),G=We(g.callId),D=n.get(S);if(!(D===void 0||D.callId!==G)){for(let j of g.users){let O=j.toString();N(D,O),e.emitter.emit({type:"group-call:left",conversation:gn(S),callId:G,groupId:S,userId:O});}oa(D.members)&&(U(S,G),i("ended",S,G,o()),e.emitter.emit({type:"group-call:finished",conversation:gn(S),callId:G,groupId:S,userId:g.userId.toString()}));}}function V(u){let g=Ms.decode(u);if(g.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");E(16663,Ee(a(),"selfId"),g.msgId);}function P(u){let g=gs.decode(u);if(g.errCode===32768)return;let h=a();for(let S of n.values()){if(!ln(S.inviterId,h))continue;let G=U(S.groupId,S.callId);if(G!==void 0){e.emitter.emit({type:"group-call:failed",conversation:gn(G.groupId),callId:G.callId,groupId:G.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:g.errCode}}});}function y(u,g){g!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${u} ACK \u5931\u8D25`,cause:{errCode:g}}});}return {commandHandlers:[{command:16644,handler:(u,g)=>J(g)},{command:16642,handler:(u,g)=>P(g)},{command:16648,handler:(u,g)=>K(g)},{command:16646,handler:(u,g)=>y("answer",fs.decode(g).errCode)},{command:16652,handler:(u,g)=>he(g)},{command:16650,handler:(u,g)=>y("join",ys.decode(g).errCode)},{command:16656,handler:(u,g)=>fe(g)},{command:16654,handler:(u,g)=>y("hangup",Cs.decode(g).errCode)},{command:16660,handler:(u,g)=>Me(g)},{command:16658,handler:(u,g)=>y("finish",As.decode(g).errCode)},{command:16672,handler:(u,g)=>ue(g)},{command:16670,handler:(u,g)=>y("busy",Ts.decode(g).errCode)},{command:16668,handler:(u,g)=>ve(g)},{command:16664,handler:(u,g)=>V(g)},{command:16662,handler:(u,g)=>y("status",Rs.decode(g).errCode)}],createRoom:W,joinRoom:ie,answer:Te,hangup:re,finish:me,setStatus:pe,busy:H,inspectMeeting:I,dispose(){for(let u of n.values())C(u);n.clear();}}}function rr(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function Rc(e){return [{command:4646,handler:(n,t)=>{let r=Ti.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=bi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=rs.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Df=9;function UA(){return {encrypted:true}}function kA(e,n){if(e.length===0)return "empty-input";if(e.length>Df)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function xA(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var BA={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function Mc(e,n){let t=e.now??(()=>Date.now()),r=[],o=[];if(n.messages.length===0)return {results:[{ok:false,sourceMessageId:"",targetConversationId:"",targetConversationType:"direct",reason:"empty-input"}],skippedSourceIds:[]};let i=kA(n.targets,e.sendStrategies);if(i!==void 0){for(let s of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let l of n.messages)r.push({ok:false,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let a=[];for(let s of n.messages){let l=e.resolveCurrentMessage===void 0?xA(s)?s:void 0:e.resolveCurrentMessage(s);if(l===void 0||l.id!==s.id||l.conversationId!==s.conversationId||l.conversationType!==s.conversationType){o.push(s.id);continue}if(!(s.itemIndex===void 0?mc(l):$s(l))){o.push(s.id);continue}a.push(s.itemIndex===void 0?{message:l}:{message:l,itemIndex:s.itemIndex});}for(let s of n.targets)for(let{message:l,itemIndex:f}of a)try{let I=f===void 0?void 0:qm(l,f);if(I!==void 0&&!I.ok){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:BA[I.reason]});continue}let C=I?.ok===!0?I.contentType:l.contentType,k=_o(C);if(k===void 0){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"type-not-allowed"});continue}let N=I?.ok===!0?I.body:k.cloneBody(l),R=UA(),U=k.enqueue({outbox:e.outbox,target:s,source:l,body:N,encryption:R,now:t,contentType:C});r.push({ok:!0,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,newMessageId:U});}catch{r.push({ok:false,sourceMessageId:l.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function Gf(e,n){if(n.conversationType==="channel")throw new Error("sendGift: CHANNEL \u4E0D\u53D1\u9001\u793C\u7269");if(!Ho(n.gift))throw new Error("sendGift: \u793C\u7269\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"gift",body:{gift:n.gift},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var or=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function Uf(e){let n=new Map;for(let t of e){if(n.has(t.kind))throw new Error(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${t.kind}`);if(!Number.isSafeInteger(t.softMaxBytes)||t.softMaxBytes<=0||!Number.isSafeInteger(t.maxEntries)||t.maxEntries<=0||!Number.isSafeInteger(t.maxEntryBytes)||t.maxEntryBytes<=0)throw new RangeError(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u53C2\u6570\u975E\u6CD5\uFF1A${t.kind}`);n.set(t.kind,Object.freeze({...t}));}return Object.freeze({resolve:t=>n.get(t),list:()=>Object.freeze([...n.values()])})}function Uo(e){let n=2166136261,t=2654435761;for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);n=Math.imul(n^o,16777619),t=Math.imul(t^o,2246822507);}return `${(n>>>0).toString(16).padStart(8,"0")}${(t>>>0).toString(16).padStart(8,"0")}`}var kf=1,wA=2,Ec=3,FA=3,xf=5,Bf=3,wf=6,PA=16*1024*1024,VA=1e3;function Tc(e){return Number.isFinite(e)&&e>0}var OA=320,KA=12*1024,Ff=20*1024,LA=.9,ZA=.72,QA=320,WA=10*1024,Uc=16*1024,HA=.84,JA=.68,YA=Uc;function vc(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!Tc(e.width)||!Tc(e.height)||n==="video"&&e.duration!==void 0&&!Tc(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>YA)))return {width:e.width,height:e.height,...n==="video"&&e.duration!==void 0?{duration:e.duration}:{},...n==="video"&&e.posterData!==void 0?{thumbData:new Uint8Array(e.posterData)}:{}}}function ia(e,n){return n===void 0?e:{...e,width:n.width,height:n.height,...n.thumbData===void 0?{}:{thumbData:n.thumbData},...e.duration===void 0&&n.duration!==void 0?{duration:n.duration}:{}}}var bc={contentType:"image",uploadKind:"image",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r),i=await t.imageThumbnail(e,{mimeType:n,maxSize:OA,targetBytes:KA,maxBytes:Ff,quality:LA,minQuality:ZA},r);return {width:o.width,height:o.height,...i.data.byteLength<=Ff?{thumbData:i.data}:{}}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o}){return {image:{url:e,width:n.width,height:n.height,...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},ko={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:QA,targetBytes:WA,maxBytes:Uc,quality:HA,minQuality:JA},r);return {width:o.width,height:o.height,...o.data.byteLength<=Uc?{thumbData:o.data}:{},duration:o.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},i){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...i.caption!==void 0&&i.caption!==""?{describe:i.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t,sizeUnit:"bytes"}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},XA={contentType:"voice",uploadKind:"voice",encryptMode:"integral",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){return {voice:{url:e,durationMs:o.durationMs??0,...o.waveform!==void 0&&o.waveform.length>0?{waveform:o.waveform}:{},...n!==void 0?{size:n}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},zA={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r);return {width:o.width,height:o.height}},buildBody({url:e,meta:n,size:t}){return {sticker:{url:e,width:n.width,height:n.height,exprType:2,imageType:1,...t===void 0?{}:{size:t}}}}};function qA(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function jA(e,n){let t=n??"";return t.startsWith("image/")||["jpg","jpeg","png","gif","webp","bmp","heic","svg"].includes(e)?1:t.startsWith("video/")||["mp4","mov","m4v","3gp","avi","mkv","webm","flv"].includes(e)?2:t.startsWith("audio/")||["mp3","m4a","wav","aac","flac","ogg"].includes(e)?3:["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip","rar","7z","apk","json"].includes(e)?4:0}var Bo={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",a=qA(i),s=jA(a,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...a!==""?{extension:a}:{},...s!==0?{fileType:s}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},Nc={...Bo,contentType:"filesAlbum",buildBody(e,n){let t=Bo.buildBody(e,n).file;return {filesAlbum:{...n.caption?.trim()?{caption:n.caption}:{},items:[{...t,extension:t.extension??"",fileType:t.fileType??0,...["zip","rar","torrent"].includes(t.extension??"")?{fileType:5}:{},...e.md5===void 0?{}:{md5:e.md5}}]}}}};function aa(e){switch(e){case "empty":return "media.empty";case "no-crypto":return "media.noCrypto";case "preview-failed":return "media.previewFailed";case "encrypt-failed":return "media.encryptFailed";case "upload-failed":case "offline":return "media.uploadFailed";case "cancelled":return "media.cancelled";case "paused":throw new Error("\u6682\u505C\u4E0D\u662F\u5931\u8D25\u72B6\u6001\uFF0C\u4E0D\u5E94\u751F\u6210\u5931\u8D25\u6587\u6848");case "invalid-duration":return "media.invalidDuration";case "content-too-large":return "media.contentTooLarge"}}function Pf(e,n){return e==="video"||n===void 0||n>PA?"large":"small"}function sa(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function xo(e){return e.kind==="album"?e.items.flatMap(n=>n.resume===void 0?[]:[{resume:n.resume,kind:n.uploadKind}]):e.resume===void 0?[]:[{resume:e.resume,kind:e.spec.uploadKind}]}function _c(e){if(e.kind==="album")return {code:dt,reason:"unknown",displayCode:aa(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file"||e.spec.contentType==="filesAlbum";return {code:dt,reason:"unknown",displayCode:n?"media.uploadInterrupted":aa(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function $A(e){return typeof e=="function"}function eh(e){return typeof Blob<"u"&&e instanceof Blob}function nh(e){let n=0,t=0,r=[];function o(s){return n<e.total&&(s!=="large"||t<e.largeFiles)}function i(s){n+=1,s==="large"&&(t+=1);let l=false;return ()=>{l||(l=true,n-=1,s==="large"&&(t-=1),a());}}function a(){let s=0;for(;s<r.length;){let l=r[s];if(l.signal.aborted){r.splice(s,1),l.signal.removeEventListener("abort",l.onAbort),l.reject(sa());continue}if(!o(l.tier)){s+=1;continue}r.splice(s,1),l.signal.removeEventListener("abort",l.onAbort),l.resolve(i(l.tier));}}return {acquire(s,l){return l.aborted?Promise.reject(sa()):new Promise((f,I)=>{let C={tier:s,signal:l,resolve:f,reject:I,onAbort:()=>{let k=r.indexOf(C);k>=0&&r.splice(k,1),I(sa());}};r.push(C),l.addEventListener("abort",C.onAbort,{once:true}),a();})}}}function Dc(e,n){if(!Number.isInteger(e)||e<1||e>wf)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${wf} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function th(e){if(e===void 0)return {total:xf,largeFiles:Bf};if(typeof e=="number")return Dc(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??xf;Dc(n,"total");let t=e.largeFiles??Math.min(Bf,n);if(Dc(t,"largeFiles"),t>n)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5927\u6587\u4EF6\u6863\u5E76\u53D1\u6570 ${t} \u4E0D\u80FD\u8D85\u8FC7\u603B\u5E76\u53D1\u6570 ${n}`);return {total:n,largeFiles:t}}function kc(e){let n=nh(th(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,a=false,s=new Map,l=new Map,f=new Set,I=new Map,C=new Map;function k(d,u){let g=I.get(d)??new Set;I.set(d,g),g.add(u),f.add(u),u.finally(()=>{g.delete(u),f.delete(u),g.size===0&&I.get(d)===g&&I.delete(d);});}function N(d){return [...I.get(d)??[]]}let R=new Map,U=new Set,_=new Map,E=new Map,T=new Map,A=new Map,b=true,F=0,L=0;function W(d){return {conversationType:d.conversationType,conversationId:d.conversationId}}function ie(d,u,g,h){e.mediaTransfer.abandonUpload(d).catch(S=>{e.onMediaTransferError?.({stage:"upload",kind:u,messageId:g,conversation:h,cause:S});});}function Te(d,u,g){let h=e.recoveryPort;if(h===void 0)return;let S=N(d),G=Promise.all(S).then(()=>h.remove(W(u),d)).catch(D=>{e.onMediaTransferError?.({stage:"upload",kind:g,messageId:d,conversation:W(u),cause:D});});k(d,G);}function re(d,u,g,h,S,G){if(!b)return;let D=W(u);_.set(d,{input:W(u),state:g,percent:h,phase:G}),e.emitter.emit({type:"media-task:updated",conversation:D,task:{id:`upload:${d}`,messageId:d,ref:D,direction:"upload",state:g,percent:Math.max(0,Math.min(100,Math.round(h))),attempt:i.get(d)?.attempt??1,maxAttempts:3,...E.get(d),...l.get(d),...G===void 0?{}:{phase:G},...S===void 0?{}:{failure:S}}});}function me(d,u){for(A.delete(d),A.set(d,u);A.size>FA;){let g=A.keys().next().value;if(g===void 0)break;let h=A.get(g);A.delete(g);let S=i.get(g);if(S!==void 0&&(S.stopped="cancelled",S.waiting?.abort()),i.delete(g),E.delete(g),l.delete(g),s.delete(g),_.delete(g),h===void 0)continue;for(let D of xo(h))ie(D.resume,D.kind,g,W(h.input));if(Te(g,h.input,h.kind==="media"?h.spec.uploadKind:"image"),!b)continue;let G=_c(h);e.domainState.upsertMessages([{...h.message,status:"failed",failure:G}],"live"),re(g,h.input,"failed",T.get(g)??0,G);}}async function pe(d,u,g,h,S,G,D=false){let j=F,O=()=>b&&j===F;if(!O())return G!==void 0&&g!==void 0&&ie(G,d.uploadKind,g,W(u)),{ok:false,reason:"cancelled"};let z=L,Re=S,de=G,Oe,Pe=Promise.resolve(void 0),ee,v=new Set,Z=$A(u.data),Y=eh(u.data)?u.data:void 0,se=Z||Y!==void 0?void 0:u.data,Be=Z||Y!==void 0,He=d.streamUpload===true&&Y!==void 0,Qn=ke=>{if(Y!==void 0)return Y;if(ke===void 0)throw new Error("\u5A92\u4F53\u9884\u89C8\u7F3A\u5C11\u5185\u5BB9\uFF1A\u975E Blob \u8F93\u5165\u5FC5\u987B\u5148\u8BFB\u51FA\u5B57\u8282");return new Blob([ke],u.mimeType===void 0?void 0:{type:u.mimeType})};if(se?.length===0||Y?.size===0)return {ok:false,reason:"empty"};let Ye=u.encrypted??true;if(Ye&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Rn=vc(u.localPreviewMetadata,d.contentType);if((d.contentType==="video"||d.contentType==="image")&&u.localPreviewMetadata!==void 0&&Rn===void 0)return {ok:false,reason:"preview-failed"};let Wn=g===void 0||h===void 0?e.outbox.allocateMessageIdentity({conversationId:u.conversationId,conversationType:u.conversationType}):{id:g,createdAt:h},{id:q,createdAt:bn}=Wn,Nn=e.getSelfId(),un=Rn??{width:0,height:0};if(!Be)try{un=ia(await d.buildPreview(Qn(se),u.mimeType,e.mediaPreview),Rn);}catch{}if(!O())return de!==void 0&&ie(de,d.uploadKind,q,W(u)),{ok:false,reason:"cancelled"};let Hn=Y?.size??se?.byteLength,_n={url:u.localPreviewUrl??"",...Hn===void 0?{}:{size:Hn}},mn={id:q,conversationId:u.conversationId,conversationType:u.conversationType,senderId:Nn,contentType:d.contentType,body:d.buildBody({..._n,meta:un},u),createdAt:bn,sortKey:_e(bn,q),status:"uploading",receipt:"unread",encryption:{encrypted:Ye},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}};e.domainState.upsertMessages([mn],"live",{newOutgoing:true});let Mt=D?0:T.get(q)??0;D&&E.delete(q),T.set(q,Mt),re(q,u,"queued",Mt,void 0,"waiting-upload-slot");let Vn=(ke,Xe=false)=>{let tn={code:dt,reason:"unknown",displayCode:Oe==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":Oe==="resume-unavailable"?"media.resumeUnavailable":Oe==="timeout"?"media.uploadTimeout":aa(ke),mediaKind:d.uploadKind,retryable:Xe};if(!O())return {ok:false,reason:ke};let rn=i.get(q);return rn?.stopped==="paused"?(re(q,u,"paused",T.get(q)??0),{ok:false,reason:ke}):rn!==void 0&&rn.stopped===void 0&&rn.attempt<3&&(rn.failure==="network"||rn.failure==="timeout"||rn.failure==="credentials-expired"||ke==="offline"&&e.waitUntilOnline!==void 0)?(re(q,u,"queued",T.get(q)??0,void 0,"waiting-retry"),{ok:false,reason:ke}):rn?.stopped==="cancelled"||rn!==void 0&&rn.attempt>=3&&(rn.failure==="network"||rn.failure==="timeout"||rn.failure==="credentials-expired")?{ok:false,reason:ke}:(e.domainState.upsertMessages([{...mn,status:"failed",failure:tn}],"live"),re(q,u,ke==="cancelled"?"canceled":"failed",T.get(q)??0,tn),{ok:false,reason:ke})},Ie=async()=>{if(de!==void 0)try{await e.mediaTransfer.abandonUpload(de),de=void 0;}catch(ke){throw Oe="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:ke}),ke}},De=async ke=>{if(await Pe,await Promise.all([...v]),ke==="cancelled"&&i.get(q)?.stopped!=="paused"&&Oe!=="cleanup-unconfirmed")try{await Ie();}catch{}return ke==="cancelled"&&i.get(q)?.stopped!=="paused"&&e.recoveryPort!==void 0&&(await Promise.all([...v]),await e.recoveryPort.remove(W(u),q).catch(Xe=>e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:Xe}))),O()?(me(q,{kind:"media",spec:d,input:u,createdAt:bn,message:mn,failureReason:ke,...Oe==="cleanup-unconfirmed"||Oe==="resume-unavailable"?{restartRequired:true}:{},...Re===void 0?{}:{teaKey:Re},...de===void 0?{}:{resume:de}}),Vn(ke,true)):{ok:false,reason:"cancelled"}},ce=new AbortController;t.set(q,ce),r.set(q,W(u));let Ne=i.get(q)?.stopped;Ne!==void 0&&ce.abort(Ne),e.isOnline?.()===false&&Me(q,"offline");try{if(D&&(await Ie(),!O()))return {ok:!1,reason:"cancelled"};if(Y!==void 0&&!(d.contentType==="video"&&Rn?.thumbData!==void 0)){try{un=ia(await d.buildPreview(Y,u.mimeType,e.mediaPreview,ce.signal),Rn);}catch{}if(!O())return {ok:!1,reason:"cancelled"};mn={...mn,body:d.buildBody({url:u.localPreviewUrl??"",meta:un,size:Y.size},u)},e.domainState.upsertMessages([mn],"live");}let ke=await n.acquire(Pf(d.contentType,Y?.size??se?.byteLength),ce.signal);try{re(q,u,"running",T.get(q)??0);let Xe;try{He||(Xe=Z?await u.data():Y!==void 0?new Uint8Array(await Y.arrayBuffer()):se);}catch{return Vn("upload-failed",!0)}let tn=He?Y.size:Xe.length;if(tn===0)return Vn("empty");if(Z&&!(d.contentType==="video"&&Rn?.thumbData!==void 0)){try{un=ia(await d.buildPreview(Qn(Xe),u.mimeType,e.mediaPreview,ce.signal),Rn);}catch{}if(!O())return {ok:!1,reason:"cancelled"};mn={...mn,body:d.buildBody({url:u.localPreviewUrl??"",meta:un,size:tn},u)},e.domainState.upsertMessages([mn],"live");}if(ce.signal.throwIfAborted(),(d.contentType==="video"||d.contentType==="file"||d.contentType==="filesAlbum")&&e.recoveryPort!==void 0&&e.shouldPersistUpload?.(d.uploadKind,tn)===!0){ee=new AbortController,C.set(q,ee);let $e=ee.signal;l.set(q,{recovery:"session-only",recoveryReason:"fingerprint-pending"}),Pe=Promise.resolve().then(()=>e.recoveryPort.fingerprint(He?Y:Xe,$e)).catch(Le=>{!$e.aborted&&O()&&(l.set(q,{recovery:"session-only",recoveryReason:"unavailable"}),e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:Le}));}),He||await Pe;}if(ce.signal.aborted)throw sa();let rn=He?Y:Xe,nt,Bt=kf;if(Ye&&e.crypto!==void 0&&d.encryptMode!=="none"){let $e=e.crypto;try{Re??=$e.randomTeaKey();let Le=Re;d.encryptMode==="simple"?(rn=He?new Blob([new Uint8Array($e.encryptFileSimple({teaKey:Le,plain:new Uint8Array(await Y.slice(0,32).arrayBuffer())})),Y.slice(32)]):$e.encryptFileSimple({teaKey:Le,plain:Xe}),Bt=wA):He?(nt=Mn=>$e.encryptSymmetricChunked({teaKey:Le,plain:Mn,signal:ce.signal}),Bt=Ec):(rn=$e.encryptSymmetric({teaKey:Le,plain:Xe}),Bt=Ec);}catch{return Vn("encrypt-failed")}}let sr;try{e.isOnline?.()===!1&&Me(q,"offline"),await e.waitUntilOnline?.(ce.signal),ce.signal.throwIfAborted(),sr=(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:i.get(q)?.refreshCredentials===!0,data:rn,...nt===void 0?{}:{transformPart:nt},kind:d.uploadKind,conversationType:u.conversationType,signal:ce.signal,...de===void 0?{}:{resume:de},onFailure:Le=>{if(O()&&t.get(q)===ce){Oe=Le;let Mn=i.get(q);Mn!==void 0&&(Mn.failure=Le);}},onResumeInvalidated:()=>{O()&&t.get(q)===ce&&(de=void 0);},onResumable:Le=>{if(!(!O()||t.get(q)!==ce)&&(de=Le,i.get(q)?.stopped!=="cancelled"&&ee!==void 0&&e.recoveryPort!==void 0&&(d.contentType==="video"||d.contentType==="file"||d.contentType==="filesAlbum"))){let Mn=s.get(q)??Date.now();s.set(q,Mn);let Dn=Pe.then(async on=>{on===void 0||ee?.signal.aborted||!O()&&!a||t.get(q)!==ce||i.get(q)?.stopped==="cancelled"&&!a||(await e.recoveryPort.save({version:1,ref:W(u),messageId:q,kind:d.contentType==="video"?"video":"file",createdAt:bn,savedAt:Mn,source:{...on,...u.filename===void 0?{}:{filename:u.filename},...u.mimeType===void 0?{}:{mimeType:u.mimeType}},encrypted:Ye,...Re===void 0?{}:{teaKey:Re},resume:Le,...u.caption===void 0?{}:{caption:u.caption},...u.filesAlbum===void 0?{}:{filesAlbum:u.filesAlbum},...u.refMessageId===void 0?{}:{refMessageId:u.refMessageId},...d.contentType==="video"?{preview:un}:{}}),t.get(q)===ce&&!ee?.signal.aborted&&l.set(q,{recovery:"available"}));}).catch(on=>{let dr=typeof on=="object"&&on!==null&&"reason"in on?String(on.reason):"storage";(t.get(q)===ce||A.has(q))&&l.set(q,{recovery:"session-only",recoveryReason:dr}),e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:on});});v.add(Dn),k(q,Dn),Dn.finally(()=>{v.delete(Dn);let on=_.get(q);b&&on!==void 0&&(on.state==="running"||on.state==="paused"||on.state==="queued")&&re(q,on.input,on.state,on.percent,void 0,on.phase);});}},...u.filename!==void 0?{filename:u.filename}:{},...u.mimeType!==void 0?{mimeType:u.mimeType}:{},onProgress:Le=>{if(!O()||ce.signal.aborted||t.get(q)!==ce)return;let Mn=Number.isFinite(Le.percent)?Math.max(0,Math.min(100,Math.round(Le.percent))):0,Dn=Math.max(T.get(q)??0,Mn);E.set(q,{bytesTransferred:Le.bytesTransferred,bytesTotal:Le.bytesTotal}),T.set(q,Dn),e.emitter.emit({type:"media:progress",conversation:W(u),messageId:q,percent:Dn}),!ce.signal.aborted&&t.get(q)===ce&&re(q,u,"running",Dn,void 0,Le.phase);}})).url;}catch($e){if((!ce.signal.aborted||!($e instanceof Error&&$e.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:$e}),!O())return {ok:!1,reason:"cancelled"};let Le=ce.signal.aborted?o.get(q)??"cancelled":"upload-failed";return await De(Le)}if(!O())return {ok:!1,reason:"cancelled"};if(ce.signal.aborted){let $e=o.get(q)??"cancelled";return await De($e)}if(z===L&&(d.contentType==="image"||d.contentType==="video")&&e.mediaAssetCache!==void 0){let $e=d.contentType,Le=Y??new Blob([Xe],u.mimeType===void 0?void 0:{type:u.mimeType}),Mn=Le.size;e.mediaAssetCache.put({kind:$e,messageId:q,resourceVersion:Uo(sr),blob:Le,...u.mimeType===void 0?{}:{mimeType:u.mimeType}}).catch(Dn=>{e.onMediaAssetCacheError?.({operation:"put",kind:$e,messageId:q,byteLength:Mn,cause:Dn});});}let ar=d.contentType==="filesAlbum"?await e.mediaPreview.fileMd5?.(Qn(Xe),ce.signal):void 0;if(!O())return {ok:!1,reason:"cancelled"};if(ce.signal.throwIfAborted(),d.contentType==="filesAlbum"&&ar===void 0)throw new Error("FILES_ALBUM requires fileMd5");return await Pe,await Promise.all([...v]),O()?(ce.signal.throwIfAborted(),e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:q,conversationId:u.conversationId,conversationType:u.conversationType,contentType:d.contentType,body:d.buildBody({url:sr,meta:un,size:tn,...ar===void 0?{}:{md5:ar},...d.encryptMode==="none"?{}:{teaKey:Re,fileEncryptType:Bt}},u),encryption:{encrypted:Ye},createdAt:bn,...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}}),await Promise.all([...v]),e.recoveryPort!==void 0&&await e.recoveryPort.remove(W(u),q).catch($e=>e.onMediaTransferError?.({stage:"upload",kind:d.uploadKind,messageId:q,conversation:W(u),cause:$e})),re(q,u,"completed",100),{ok:!0,messageId:q}):{ok:!1,reason:"cancelled"}}finally{ke();}}catch{if(!O())return {ok:false,reason:"cancelled"};let ke=ce.signal.aborted?o.get(q)??"cancelled":"upload-failed";return await De(ke)}finally{await Pe,await Promise.all([...v]),C.get(q)===ee&&C.delete(q),!O()&&a&&await Promise.all([...v]),!O()&&de!==void 0&&!(a&&l.get(q)?.recovery==="available")&&ie(de,d.uploadKind,q,W(u)),t.get(q)===ce&&(t.delete(q),r.delete(q),A.has(q)||T.delete(q),o.delete(q));}}async function H(d){let{conversation:u,encryptWith:g,isCurrentAttempt:h,item:S,onBytesUploaded:G,onPreviewReady:D,onSlotAcquired:j,signal:O,state:z}=d,Re=S.kind==="video"?ko:bc,de=vc(S.localPreviewMetadata,S.kind),Oe=de??{width:0,height:0};if(!(S.kind==="video"&&de?.thumbData!==void 0))try{Oe=ia(await Re.buildPreview(S.data,S.mimeType,e.mediaPreview,O),de);}catch{}Oe.thumbData===void 0&&z.preview?.thumbData!==void 0&&(Oe=z.preview),z.preview=Oe,D();let Pe=await n.acquire(Pf(S.kind,S.data.size),O);try{j();let ee,v=kf;if(g!==void 0){z.teaKey??=g.randomTeaKey();let Y=z.teaKey;ee=se=>g.encryptSymmetricChunked({teaKey:Y,plain:se,signal:O}),v=Ec;}return {url:(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:d.forceRefreshCredentials,data:S.data,...ee===void 0?{}:{transformPart:ee},kind:Re.uploadKind,conversationType:u.conversationType,signal:O,...z.resume===void 0?{}:{resume:z.resume},onFailure:Y=>{h()&&d.onFailure(Y);},onResumeInvalidated:()=>{h()&&delete z.resume;},onResumable:Y=>{!b||!h()||(z.resume=Y);},...S.filename!==void 0?{filename:S.filename}:{},...S.mimeType!==void 0?{mimeType:S.mimeType}:{},onProgress:Y=>{!b||O.aborted||!h()||G(Y.bytesTransferred);}})).url,meta:Oe,size:S.data.size,...z.teaKey===void 0?{}:{teaKey:z.teaKey},fileEncryptType:v}}finally{Pe();}}function J(d,u,g){let h=u.uploaded,S=h?.meta??u.preview??vc(d.localPreviewMetadata,d.kind)??{width:0,height:0};return {kind:d.kind,url:h?.url??d.localPreviewUrl??"",width:S.width,height:S.height,...d.kind==="video"&&S.duration!==void 0&&S.duration>0?{durationMs:Math.max(1,Math.round(S.duration*1e3))}:{},...S.thumbData===void 0?{}:{thumbData:S.thumbData},size:h?.size??d.data.size,...h?.teaKey===void 0?{}:{teaKey:h.teaKey},...h===void 0?{}:{fileEncryptType:h.fileEncryptType},...g===void 0?{}:{hd:g}}}async function K(d,u,g,h,S=false){let G=F,D=()=>b&&G===F,j=W(d),O=(Ie,De)=>{for(let ce of De)ce.resume!==void 0&&ie(ce.resume,ce.uploadKind,Ie,j);};if(!D())return u!==void 0&&h!==void 0&&O(u,h),{ok:false,reason:"cancelled"};if(d.items.length===0)return {ok:false,reason:"empty"};if(d.items.length>Pt)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${Pt} \u9879\uFF0C\u6536\u5230 ${d.items.length} \u9879`);let z=d.caption!==void 0&&d.caption.trim()!==""?d.caption:void 0;if(z!==void 0&&z.length>gt)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${gt} \u5B57\u7B26\uFF0C\u6536\u5230 ${z.length}`);if(d.items.some(Ie=>Ie.data.size===0))return {ok:false,reason:"empty"};if(h===void 0&&va(d)!=="mediaAlbum"){let Ie=d.items[0];return pe(Ie.kind==="video"?ko:bc,{conversationId:d.conversationId,conversationType:d.conversationType,data:Ie.data,...Ie.mimeType!==void 0?{mimeType:Ie.mimeType}:{},...Ie.filename!==void 0?{filename:Ie.filename}:{},...Ie.localPreviewUrl!==void 0?{localPreviewUrl:Ie.localPreviewUrl}:{},...Ie.localPreviewMetadata!==void 0?{localPreviewMetadata:Ie.localPreviewMetadata}:{},...d.encrypted!==void 0?{encrypted:d.encrypted}:{},...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}},u,g)}let Re=d.encrypted??true;if(Re&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let de=Re?e.crypto:void 0,Oe=L,Pe=u===void 0||g===void 0?e.outbox.allocateMessageIdentity(j):{id:u,createdAt:g},{id:ee,createdAt:v}=Pe,Z=d.items.map((Ie,De)=>{let ce=h?.[De];return {uploadKind:Ie.kind,...ce?.uploaded===void 0?{}:{uploaded:ce.uploaded},...ce?.preview===void 0?{}:{preview:ce.preview},...ce?.teaKey===void 0?{}:{teaKey:ce.teaKey},...ce?.resume===void 0?{}:{resume:ce.resume}}}),Y=()=>({...z===void 0?{}:{caption:z},items:d.items.map((Ie,De)=>J(Ie,Z[De],d.hd))}),se={id:ee,conversationId:d.conversationId,conversationType:d.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:Y()},createdAt:v,sortKey:_e(v,ee),status:"uploading",receipt:"unread",encryption:{encrypted:Re},...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}};e.domainState.upsertMessages([se],"live",{newOutgoing:true});let Be=S?0:T.get(ee)??0;S&&E.delete(ee),T.set(ee,Be),re(ee,d,"queued",Be,void 0,"waiting-upload-slot");let He,Qn=(Ie,De)=>{let ce={code:dt,reason:"unknown",displayCode:He==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":He==="resume-unavailable"?"media.resumeUnavailable":He==="timeout"?"media.uploadTimeout":aa(Ie),retryable:De};if(!D())return {ok:false,reason:Ie};let Ne=i.get(ee);return Ne?.stopped==="paused"?(re(ee,d,"paused",T.get(ee)??0),{ok:false,reason:Ie}):Ne!==void 0&&Ne.stopped===void 0&&Ne.attempt<3&&(Ne.failure==="network"||Ne.failure==="timeout"||Ne.failure==="credentials-expired"||Ie==="offline"&&e.waitUntilOnline!==void 0)?(re(ee,d,"queued",T.get(ee)??0,void 0,"waiting-retry"),{ok:false,reason:Ie}):Ne?.stopped==="cancelled"||Ne!==void 0&&Ne.attempt>=3&&(Ne.failure==="network"||Ne.failure==="timeout"||Ne.failure==="credentials-expired")?{ok:false,reason:Ie}:(e.domainState.upsertMessages([{...se,status:"failed",failure:ce}],"live"),re(ee,d,Ie==="cancelled"?"canceled":"failed",T.get(ee)??0,ce),{ok:false,reason:Ie})},Ye=new AbortController;t.set(ee,Ye),r.set(ee,j);let Rn=i.get(ee)?.stopped;Rn!==void 0&&Ye.abort(Rn),e.isOnline?.()===false&&Me(ee,"offline");let Wn=()=>D()&&t.get(ee)===Ye,q=()=>{!D()||!Wn()||(se={...se,body:{mediaAlbum:Y()}},e.domainState.upsertMessages([se],"live"));},bn=d.items.reduce((Ie,De)=>Ie+De.data.size,0),Nn=Z.map((Ie,De)=>Ie.uploaded!==void 0?d.items[De].data.size:Ie.resume?.bytesUploaded??0),un=false,Hn=()=>{if(!D()||!Wn()||Ye.signal.aborted)return;let Ie=Nn.reduce((ce,Ne)=>ce+Ne,0),De=Math.min(99,Math.max(T.get(ee)??0,Math.floor(Ie/bn*100)));E.set(ee,{bytesTransferred:Ie,bytesTotal:bn}),T.set(ee,De),e.emitter.emit({type:"media:progress",conversation:j,messageId:ee,percent:De}),!Ye.signal.aborted&&Wn()&&re(ee,d,"running",De,void 0,"transferring");},_n,mn=(Ie,De)=>{_n===void 0&&(_n=Ye.signal.aborted?o.get(ee)??"cancelled":"upload-failed",_n==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:Ie,messageId:ee,conversation:j,cause:De}),Ye.abort("offline"));},Mt=async()=>{let Ie=true;return await Promise.all(Z.map(async De=>{if(De.resume!==void 0)try{await e.mediaTransfer.abandonUpload(De.resume),delete De.resume;}catch(ce){Ie=false,He="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:De.uploadKind,messageId:ee,conversation:j,cause:ce});}})),Ie},Vn=Ie=>(me(ee,{kind:"album",input:d,createdAt:v,message:se,failureReason:Ie,items:Z,...He==="cleanup-unconfirmed"||He==="resume-unavailable"?{restartRequired:true}:{}}),Qn(Ie,true));try{if(S){let ce=await Mt();if(!D())return {ok:!1,reason:"cancelled"};if(!ce)return Vn(o.get(ee)==="cancelled"?"cancelled":"upload-failed");for(let Ne=0;Ne<Z.length;Ne+=1)Z[Ne].uploaded===void 0&&(Nn[Ne]=0);}if(await Promise.all(d.items.map(async(ce,Ne)=>{let ke=Z[Ne];if(ke.uploaded===void 0)try{e.isOnline?.()===!1&&Me(ee,"offline"),await e.waitUntilOnline?.(Ye.signal),Ye.signal.throwIfAborted();let Xe=await H({item:ce,state:ke,conversation:j,encryptWith:de,signal:Ye.signal,isCurrentAttempt:Wn,onPreviewReady:q,onSlotAcquired:()=>{un||!D()||!Wn()||(un=!0,re(ee,d,"running",T.get(ee)??0));},forceRefreshCredentials:i.get(ee)?.refreshCredentials===!0,onFailure:tn=>{let rn=tn==="cleanup-unconfirmed"||tn==="resume-unavailable";if(Ye.signal.aborted&&!rn)return;(tn==="cleanup-unconfirmed"||He!=="cleanup-unconfirmed"&&(tn==="resume-unavailable"||He!=="resume-unavailable"))&&(He=tn);let nt=i.get(ee);nt!==void 0&&(nt.failure=He);},onBytesUploaded:tn=>{Nn[Ne]=Math.max(Nn[Ne]??0,tn),Hn();}});ke.uploaded=Xe,Nn[Ne]=ce.data.size,Hn();}catch(Xe){mn(ce.kind,Xe);}})),!D())return {ok:!1,reason:"cancelled"};if(!Wn())return {ok:!1,reason:"cancelled"};if(o.get(ee)==="cancelled")return He!=="cleanup-unconfirmed"&&await Mt(),D()?Vn("cancelled"):{ok:!1,reason:"cancelled"};if(_n!==void 0)return Vn(_n);if(Ye.signal.aborted){let ce=o.get(ee)??"cancelled";return Vn(ce)}let Ie=Y(),De;try{De=Lo(ur(Ie).content);}catch(ce){return e.onMediaAlbumContentSize?.({messageId:ee,conversation:j,itemCount:Ie.items.length,outcome:"rejected",cause:ce}),Qn("content-too-large",!1)}if(De>=ba&&e.onMediaAlbumContentSize?.({messageId:ee,conversation:j,itemCount:Ie.items.length,contentBytes:De,outcome:"warn"}),Oe===L&&e.mediaAssetCache!==void 0){let ce=e.mediaAssetCache;d.items.forEach((Ne,ke)=>{let Xe=Z[ke].uploaded;Xe!==void 0&&ce.put({kind:Ne.kind,messageId:ee,resourceVersion:Uo(Xe.url),blob:Ne.data,...Ne.mimeType===void 0?{}:{mimeType:Ne.mimeType}}).catch(tn=>{e.onMediaAssetCacheError?.({operation:"put",kind:Ne.kind,messageId:ee,byteLength:Ne.data.size,cause:tn});});});}return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:ee,conversationId:d.conversationId,conversationType:d.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:Ie},encryption:{encrypted:Re},createdAt:v,...d.refMessageId!==void 0?{refMessageId:d.refMessageId}:{}}),re(ee,d,"completed",100),{ok:!0,messageId:ee}}finally{D()||O(ee,Z),t.get(ee)===Ye&&(t.delete(ee),r.delete(ee),A.has(ee)||T.delete(ee),o.delete(ee));}}function he(d,u,g,h=1){let{id:S,createdAt:G}=g??e.outbox.allocateMessageIdentity(W(d)),D={attempt:h};i.set(S,D);let j,O,z=new Promise((Re,de)=>{j=Re,O=de;});return D.done=z,(async()=>{let Re=await u(S,G);for(;i.get(S)===D&&D.stopped===void 0&&D.attempt<3;){let Pe=A.get(S);if(!b||Re.ok||Pe===void 0||Pe.restartRequired||!(D.failure==="network"||D.failure==="timeout"||D.failure==="credentials-expired"||!Re.ok&&Re.reason==="offline"&&e.waitUntilOnline!==void 0))break;let ee=new AbortController;if(D.waiting=ee,await e.waitUntilOnline?.(ee.signal).catch(()=>{}),await new Promise(v=>{let Z=setTimeout(Y,D.attempt===1?1e3:3e3);function Y(){clearTimeout(Z),ee.signal.removeEventListener("abort",Y),v();}ee.signal.addEventListener("abort",Y,{once:true}),ee.signal.aborted&&Y();}),await e.waitUntilOnline?.(ee.signal).catch(()=>{}),delete D.waiting,!b||D.stopped!==void 0||i.get(S)!==D)break;D.attempt+=1,D.refreshCredentials=D.failure==="credentials-expired",delete D.failure,A.delete(S),Re=await fe(S,Pe,false);}let de=A.get(S),Oe=D.attempt>=3&&(D.failure==="network"||D.failure==="timeout"||D.failure==="credentials-expired");if(b&&i.get(S)===D&&de!==void 0&&(D.stopped==="cancelled"||Oe)){D.stopped="cancelled";let Pe={..._c(de),displayCode:D.failure==="timeout"?"media.uploadTimeout":"media.cancelled",retryable:false};await V(S,de),b&&i.get(S)===D&&(e.domainState.upsertMessages([{...de.message,status:"failed",failure:Pe}],"live"),re(S,de.input,"canceled",T.get(S)??0,Pe)),Re={ok:false,reason:"cancelled"};}return D.stopped==="paused"?{ok:false,reason:"paused"}:Re})().then(Re=>{D.settled=true,j(Re);},Re=>{D.settled=true,O(Re);}),z.then(()=>{i.get(S)===D&&D.stopped!=="paused"&&(i.delete(S),A.has(S)||(T.delete(S),E.delete(S),l.delete(S),s.delete(S),_.delete(S)));},()=>{i.get(S)===D&&i.delete(S);}),z}function fe(d,u,g){return u.kind==="album"?K(u.input,d,u.createdAt,u.items,g):pe(u.spec,u.input,d,u.createdAt,u.teaKey,u.resume,g)}function Me(d,u){let g=i.get(d);if(!b||g===void 0||g.stopped==="cancelled")return;if(g.stopped==="paused"){u==="pagehide"&&g.pauseReason==="offline"&&(g.pauseReason="pagehide");return}g.stopped="paused",g.pauseReason=u;let h=t.get(d);g.waiting?.abort(),h?.abort("paused");let S=_.get(d);S!==void 0&&i.get(d)===g&&g.stopped==="paused"&&re(d,S.input,"paused",T.get(d)??S.percent);}async function ue(d,u="manual"){let g=i.get(d);if(!b||g===void 0||g.stopped==="cancelled")return false;if(g.stopped==="paused")return u==="pagehide"&&g.pauseReason==="offline"&&(g.pauseReason="pagehide"),await g.done,b&&i.get(d)===g&&A.has(d);Me(d,u),await g.done,await Promise.all(N(d));let h=A.get(d);return !b||i.get(d)!==g||g.stopped!=="paused"||h===void 0?false:(re(d,h.input,"paused",T.get(d)??0),true)}function ve(d){let u=i.get(d),g=A.get(d);if(!b||u?.stopped!=="paused"||u.settled!==true||g===void 0||t.has(d))return false;A.delete(d);let h=F;return he(g.input,()=>fe(d,g,false),{id:d,createdAt:g.createdAt},u.attempt).catch(S=>{b&&h===F&&e.onMediaTransferError?.({stage:"upload",kind:g.kind==="media"?g.spec.uploadKind:"image",messageId:d,conversation:W(g.input),cause:S});}),true}async function V(d,u){A.delete(d),l.delete(d),s.delete(d),E.delete(d),U.add(d);try{await Promise.all(N(d)),await e.recoveryPort?.remove(W(u.input),d).catch(g=>{e.onMediaTransferError?.({stage:"upload",kind:u.kind==="media"?u.spec.uploadKind:"image",messageId:d,conversation:W(u.input),cause:g});}),await Promise.all(xo(u).map(async g=>{try{await e.mediaTransfer.abandonUpload(g.resume);}catch(h){e.onMediaTransferError?.({stage:"upload",kind:g.kind,messageId:d,conversation:W(u.input),cause:h});}}));}catch(g){e.onMediaTransferError?.({stage:"upload",kind:u.kind==="media"?u.spec.uploadKind:"image",messageId:d,conversation:W(u.input),cause:g});}finally{U.delete(d),l.delete(d),s.delete(d),E.delete(d);}}function P(d,u){if(e.recoveryPort===void 0)return;let g=N(d),h=e.domainState.getConversationMessage?.(u,d)?.contentType==="video"?"video":"file",S=Promise.all(g).then(()=>e.recoveryPort.remove(u,d)).catch(G=>{e.onMediaTransferError?.({stage:"upload",kind:h,messageId:d,conversation:u,cause:G});});k(d,S);}function y(d){if(!b)return false;let u=i.get(d),g=t.get(d);if(C.get(d)?.abort(),u!==void 0&&(u.stopped="cancelled",u.waiting?.abort()),g!==void 0){let D=r.get(d);return D!==void 0&&P(d,D),o.set(d,"cancelled"),g.abort("cancelled"),true}let h=A.get(d);if(h===void 0||u===void 0)return u!==void 0&&_.get(d)?.state==="queued";let S=V(d,h);k(d,S);let G={..._c(h),displayCode:"media.cancelled",retryable:false};return e.domainState.upsertMessages([{...h.message,status:"failed",failure:G}],"live"),re(d,h.input,"canceled",T.get(d)??0,G),i.delete(d),T.delete(d),_.delete(d),true}return {sendImage:d=>he(d,(u,g)=>pe(bc,d,u,g)),sendVideo:d=>he(d,(u,g)=>pe(ko,d,u,g)),replaceVideo:(d,u,g)=>(s.delete(d),he(g,()=>pe(ko,g,d,u,void 0,void 0,true),{id:d,createdAt:u})),sendVoice:d=>{let u=d.durationMs;return u===void 0||!Number.isFinite(u)||u<VA?Promise.resolve({ok:false,reason:"invalid-duration"}):he(d,(g,h)=>pe(XA,d,g,h))},sendFile:d=>d.caption!==void 0&&d.caption.length>gt?Promise.resolve({ok:false,reason:"content-too-large"}):he(d,(u,g)=>pe(d.filesAlbum||d.caption?.trim()?Nc:Bo,d,u,g)),sendGif:d=>he(d,(u,g)=>pe(zA,{...d,encrypted:false},u,g)),sendMediaAlbum:d=>he(d,(u,g)=>K(d,u,g)),replaceFile:(d,u,g)=>g.caption!==void 0&&g.caption.length>gt?Promise.resolve({ok:false,reason:"content-too-large"}):(s.delete(d),he(g,()=>pe(g.filesAlbum||g.caption?.trim()?Nc:Bo,g,d,u,void 0,void 0,true),{id:d,createdAt:u})),cancel:y,pause:ue,async pauseAll(d="pagehide"){for(let{controller:u}of R.values())u.abort();await Promise.all([...i.keys()].map(u=>ue(u,d)));},async resumePaused(d,u){await Promise.all([...i.entries()].map(async([g,h])=>{if(u?.aborted||h.stopped!=="paused"||h.pauseReason==="manual"||d===void 0&&h.pauseReason!=="offline")return;let S=_.get(g)?.input;if(d!==void 0&&(S?.conversationType!==d.conversationType||S.conversationId!==d.conversationId))return;await h.done;let G=A.get(g);u?.aborted||i.get(g)!==h||G===void 0||d===void 0&&h.pauseReason!=="offline"||d!==void 0&&(G.input.conversationType!==d.conversationType||G.input.conversationId!==d.conversationId)||ve(g);}));},resume:ve,cancelConversation(d,u="offline"){for(let g of R.values())g.ref.conversationType===d.conversationType&&g.ref.conversationId===d.conversationId&&g.controller.abort();for(let[g,h]of A)if(h.input.conversationType===d.conversationType&&h.input.conversationId===d.conversationId){if(i.has(g))y(g);else {for(let S of xo(h))ie(S.resume,S.kind,g,W(h.input));e.recoveryPort?.remove(W(h.input),g).catch(S=>e.onMediaTransferError?.({stage:"upload",kind:h.kind==="media"?h.spec.uploadKind:"image",messageId:g,conversation:d,cause:S}));}A.delete(g);}if(b)for(let[g,h]of r){if(h.conversationType!==d.conversationType||h.conversationId!==d.conversationId)continue;let S=t.get(g);if(S===void 0)continue;let G=i.get(g);G!==void 0&&(G.stopped="cancelled"),o.set(g,u),C.get(g)?.abort(),S.abort(u);}},cancelAll(d="offline"){if(b){if(d==="offline"){let u=F;for(let g of i.keys()){let h=_.get(g)?.input;ue(g,"offline").catch(S=>{b&&u===F&&h!==void 0&&e.onMediaTransferError?.({stage:"upload",kind:e.domainState.getConversationMessage?.(h,g)?.contentType==="video"?"video":"file",messageId:g,conversation:h,cause:S});});}return}if(d==="session-ended"){for(let{controller:u}of R.values())u.abort();for(let u of i.values())u.stopped="cancelled",u.waiting?.abort();F+=1,L+=1;}for(let u of C.values())u.abort(d);for(let u of t.values())u.abort(d);}},retry(d,u){if(U.has(d)||!b)return false;let g=A.get(d);if(g===void 0||g.restartRequired&&u?.restartUpload!==true)return false;let h=u?.restartUpload===true||g.failureReason==="cancelled";return A.delete(d),re(d,g.input,"queued",0),he(g.input,()=>fe(d,g,h),{id:d,createdAt:g.createdAt}),true},invalidateAssetCacheWrites(){L+=1;},async dispose(d){if(!b)return;a=d?.preserveRecovery===true;for(let{controller:g}of R.values())g.abort();let u=[...i.values()].flatMap(g=>g.done===void 0?[]:[g.done]);for(let g of i.values())g.stopped="cancelled",g.waiting?.abort();if(b=false,L+=1,!a)for(let g of C.values())g.abort();for(let g of t.values())g.abort(a?"page-preserve":"cancelled");for(let[g,h]of A)if(!(a&&l.get(g)?.recovery==="available"))for(let S of xo(h))ie(S.resume,S.kind,g,W(h.input));A.clear(),await Promise.allSettled(u),await Promise.all([...f]),t.clear(),T.clear(),o.clear();for(let[g,h]of A)if(!(a&&l.get(g)?.recovery==="available"))for(let S of xo(h))ie(S.resume,S.kind,g,W(h.input));A.clear(),i.clear(),E.clear(),l.clear(),s.clear(),_.clear(),await e.recoveryPort?.drain();},async recoverUpload(d,u,g){let h=e.recoveryPort;if(!b||h===void 0)throw new Error("IM_MEDIA_RECOVERY_UNAVAILABLE");if(i.has(u)||R.has(u))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let S=new AbortController;R.set(u,{controller:S,ref:d});let G=()=>{if(!b||S.signal.aborted||R.get(u)?.controller!==S)throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE")},D=(O,z)=>{if(O===void 0||O.senderId!==e.getSelfId()||O.recalled!==void 0||O.deletedForEveryone!==void 0||O.failure?.displayCode==="media.cancelled"||O.failure?.displayCode==="media.uploadTimeout"&&O.failure.retryable===false||O.status!=="failed"&&O.status!=="uploading")return false;let Re=O.contentType==="video",de=O.contentType==="file"||O.contentType==="filesAlbum"&&O.body.filesAlbum?.items.length===1;return (Re||de)&&(z===void 0||O.contentType===z)},j;try{j=await h.acquireLease(S.signal),G();let O=e.domainState.getConversationMessage?.(d,u);if(!D(O))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let z=await h.get(d,u);if(G(),z===void 0)throw new Error("IM_MEDIA_RECOVERY_NOT_FOUND");let Re=z.kind==="video"?"video":z.filesAlbum||z.caption?.trim()?"filesAlbum":"file";if(!D(O,Re))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let de=await h.fingerprint(g,S.signal);if(G(),de.size!==z.source.size||de.sha256!==z.source.sha256)throw new Error("IM_MEDIA_RECOVERY_FILE_MISMATCH");let Oe=e.domainState.getConversationMessage?.(d,u);if(i.has(u)||!D(Oe,Re))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Pe={conversationId:d.conversationId,conversationType:d.conversationType,data:g,encrypted:z.encrypted,filename:z.source.filename,mimeType:z.source.mimeType,caption:z.caption,filesAlbum:z.filesAlbum,refMessageId:z.refMessageId,...z.preview===void 0?{}:{localPreviewMetadata:{width:z.preview.width,height:z.preview.height,duration:z.preview.duration,posterData:z.preview.thumbData}}};return s.set(u,z.savedAt),await he(Pe,()=>pe(z.kind==="video"?ko:z.filesAlbum||z.caption?.trim()?Nc:Bo,Pe,u,z.createdAt,z.teaKey,z.resume),{id:u,createdAt:z.createdAt})}finally{R.get(u)?.controller===S&&R.delete(u),j?.release();}}}}function Vf(e,n){if(!Vt(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function rh(e){return e.id.trim()!==""&&e.conversation.conversationId.trim()!==""&&e.parentMessageId.trim()!==""&&e.senderId.trim()!==""&&(e.action===0||e.action===1)&&Number.isSafeInteger(e.createdAt)&&e.createdAt>=0}function oh(e,n){return Ht.encode(Ht.create({emoji:e,action:n}))}function ih(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(I,C){let k=BigInt(e.getSelfId()),N=BigInt(I.conversation.conversationId),R=oh(I.emoji,I.action),U=be(I.id),_=cn(I.parentMessageId);switch(I.conversation.conversationType){case "direct":{let E=C===4651?mi:gi,T=E.create({sToId:N,sFromId:k,sMsgId:U,msgType:1,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:C??4650,body:E.encode(T)})}case "group":{let E=wr.create({sGrpId:N,sToId:N,sFromId:k,sMsgId:U,msgType:5,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:8978,body:wr.encode(E)})}case "channel":{let E=Zr.create({sRadioId:N,sFromId:k,sMsgId:U,msgTime:BigInt(I.createdAt),encrypt:0,sContent:R,parentMsgId:_});return X({command:12817,body:Zr.encode(E)})}}}function a(I,C,k){clearTimeout(I.timer),n.delete(I.event.id),e.domainState.rollbackReaction(I.event.conversation,I.event.parentMessageId,I.event.id),I.resolve({ok:false,reason:C,...k===void 0?{}:{errcode:k}});}function s(I){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let C=e.domainState.getConversationMessage(I.conversation,I.parentMessageId);if(C===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!fc(C))return Promise.resolve({ok:false,reason:"unsupported-message"});if(I.action===0&&I.conversation.conversationType==="channel"){let N=e.domainState.getConversationContext(I.conversation),R=pc({channelState:N?.type==="channel"?N.channelState??"unknown_restricted":"unknown_restricted",snapshot:N?.type==="channel"?N.channelAccessSnapshot:void 0,permissions:N?.type==="channel"?N.channelPermissions:void 0,nowMs:t()});if(R.channelState!=="active"||!R.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!So(I.emoji)||Ao(I.emoji)||e.isEmojiSupported?.(I.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let k=Object.freeze({id:Tn(),conversation:Object.freeze({...I.conversation}),parentMessageId:I.parentMessageId,senderId:e.getSelfId(),emoji:I.emoji,action:I.action,createdAt:t()});return e.domainState.applyReaction(k,"live"),new Promise(N=>{let R=setTimeout(()=>{let U=n.get(k.id);U!==void 0&&a(U,"timeout");},r);n.set(k.id,{event:k,resolve:N,timer:R});try{e.sendFrame(i(k));}catch(U){e.logger?.("reaction-send-frame-failed",{eventId:k.id,cause:U});let _=n.get(k.id);_!==void 0&&a(_,"failed");}})}function l(I){let k=e.domainState.getConversationMessage(I.conversation,I.parentMessageId)?.reactions?.currentUserEmoji===I.emoji?1:0;return s({...I,action:k})}function f(I){let C=n.get(I.eventId);if(C!==void 0){if(I.errcode!==32768&&I.errcode!==0){a(C,"failed",I.errcode);return}if(clearTimeout(C.timer),n.delete(C.event.id),C.event.conversation.conversationType==="direct")try{e.sendFrame(i(C.event,4651));}catch(k){e.logger?.("reaction-opposite-end-send-failed",{eventId:C.event.id,cause:k});}C.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(C.event.emoji).catch(k=>e.logger?.("reaction-report-failed",{emoji:C.event.emoji,cause:k})),C.resolve({ok:true,event:C.event});}}return {set:s,toggle:l,onAck:f,ingest:(I,C="live")=>!rh(I)||!So(I.emoji)||Ao(I.emoji)||e.isEmojiSupported?.(I.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:I.id,parentMessageId:I.parentMessageId,emoji:I.emoji}),"ignored"):e.domainState.applyReaction(I,C),dispose(){o=true;for(let I of [...n.values()])a(I,"disconnected");}}}function sh(e){return [{command:4652,handler:(n,t)=>{let r=fi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Ro(pi.decode(t),e.getSelfId());e.manager.ingest(r,"live"),e.logger?.("direct-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:8979,handler:(n,t)=>{let r=Bi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Mo(wi.decode(t));e.manager.ingest(r,"live"),e.logger?.("group-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:12818,handler:(n,t)=>{let r=Qi.decode(t);e.manager.onAck({eventId:ye(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Vd(Wi.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function ah(e){return [{command:12806,handler:(n,t)=>{let r=es.decode(t);try{e.logger?.("channel-sync-read-ack",{errcode:r.errcode});}catch{}r.errcode!==32768&&e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08cmdId=${n}, errcode=${r.errcode}\uFF09`}});}},{command:12807,handler:(n,t)=>{let r=ns.decode(t),o=r.sUserId.toString();if(r.sUserId<=0n||o!==e.getSelfId())throw new Error(`CHANNEL 0x3207 \u7528\u6237\u4E0D\u5339\u914D\uFF08received=${o}\uFF09`);if(r.radioId<=0n)throw new Error("CHANNEL 0x3207 \u9891\u9053 id \u7F3A\u5931\u6216\u975E\u6CD5");let i=r.lastReadIndex.trim();if(i==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:i});}}]}function dh(e){let n=new Map,t=new Map,r=new Map,o=0;function i(T,A){let b={conversationType:"channel",conversationId:T},F=e.domainState.getConversationContext(b);if(F===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${T}\uFF09`);if(F.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${F.type}\uFF08channelId=${T}\uFF09`);if(A.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${T}\uFF09`);let L=e.domainState.getConversationMessage(b,A),W=e.domainState.getLoadedMessagesByConversation(b).find(re=>re.extensions?.historyCursor===A),Te=(L===void 0?void 0:wo(L))??(W===void 0?void 0:wo(W));if(Te===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${T}, cursor=${A}\uFF09`);return Te}function a(T){let A={conversationType:"channel",conversationId:T},b=e.domainState.getReadState(A);if(b?.readCursor!==void 0&&b.readCursor!==""){let F=e.domainState.getLoadedMessagesByConversation(A).find(L=>L.extensions?.historyCursor===b.readCursor);if(F!==void 0){let L=wo(F);if(L!==void 0)return L}}return b?.readCursorSortKey===void 0?void 0:{sortKey:b.readCursorSortKey}}function s(T,A){return Of(T,A)}function l(T,A){let b=r.get(T),F=b===void 0?a(T):b.committed;return F!==void 0&&s(F,A)>=0}function f(T,A){let b=r.get(T);if(b!==void 0){if(s(b.optimistic,A)>=0)return;e.domainState.applyChannelReadOptimistically(b.transaction,A.messageId,A.cursor),b.optimistic=A;return}let F=a(T),L=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:T});e.domainState.applyChannelReadOptimistically(L,A.messageId,A.cursor),r.set(T,{transaction:L,committed:F,optimistic:A});}function I(T,A){let b=n.get(T);(b===void 0||s(A,b)>0)&&n.set(T,A);}function C(T,A){if(e.syncRead!==void 0)try{let b=Yr.encode(Yr.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(T),lastReadIndex:A}));e.syncRead.sendFrame(X({command:12805,body:b}));}catch(b){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${T}\uFF09`,cause:b}});}}function k(T,A){try{e.onReadCommitted?.({channelId:T,readCursor:A});}catch(b){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u6821\u51C6\u672A\u542F\u52A8\uFF08channelId=${T}\uFF09`,cause:b}});}}async function N(T,A){let b;try{for(;;){if(A!==o)return;let F=n.get(T);if(F===void 0)return;if(n.delete(T),l(T,F))continue;try{await e.updateReadIndex({channelId:T,readCursor:F.cursor});}catch(ie){if(A!==o)return;let Te=r.get(T);throw Te!==void 0&&(e.domainState.rollbackChannelReadTransaction(Te.transaction),r.delete(T)),I(T,F),ie}if(A!==o)return;if(l(T,F))continue;let L=r.get(T);L!==void 0&&e.domainState.commitChannelReadTransaction(L.transaction,F.cursor)||e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T},F.messageId,F.cursor),L!==void 0&&(L.committed=F,s(L.optimistic,F)===0&&r.delete(T)),e.logger?.("channel-read-index",{channelId:T,cursor:F.cursor}),C(T,F.cursor),b=F.cursor;}}finally{if(A===o){b!==void 0&&k(T,b);try{e.onReadSettled?.({channelId:T});}catch(F){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u7B49\u5F85\u672A\u89E3\u9664\uFF08channelId=${T}\uFF09`,cause:F}});}}}}function R(T,A){let b=Promise.resolve().then(()=>N(T,A)).then(()=>{if(t.get(T)===b&&(t.delete(T),A===o&&n.has(T)))return R(T,A)},F=>{throw t.get(T)===b&&t.delete(T),F});return t.set(T,b),b}function U(T){let A;try{A=i(T.conversationId,T.readCursor);}catch(F){return Promise.reject(F)}if(l(T.conversationId,A))return Promise.resolve();f(T.conversationId,A),I(T.conversationId,A);let b=t.get(T.conversationId);return b!==void 0?b:R(T.conversationId,o)}function _(T){let A=i(T.conversationId,T.readCursor);l(T.conversationId,A)||(e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T.conversationId},A.messageId,A.cursor),r.delete(T.conversationId),k(T.conversationId,A.cursor));}function E(){o+=1;for(let T of r.values())e.domainState.rollbackChannelReadTransaction(T.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:U,applyRemoteRead:_,reset:E}}function ch(e){return e===void 0?void 0:wo(e)?.cursor}function wo(e){let n=e.extensions?.historyCursor;if(typeof n!="string"||n.trim()==="")return;let t=e.extensions?.channelSequence,r=typeof t=="string"&&/^\d+$/.test(t)?BigInt(t):void 0;return {cursor:n,messageId:e.id,sortKey:e.sortKey,...r===void 0?{}:{sequence:r}}}function lh(e){let n;for(let t of e){let r=wo(t);r!==void 0&&(n===void 0||Of(r,n)>0)&&(n=r);}return n?.cursor}function Of(e,n){return e.sequence!==void 0&&n.sequence!==void 0?e.sequence<n.sequence?-1:e.sequence>n.sequence?1:0:e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var da=50;function Kf(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function uh(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:kn(e.id)}function gh(e,n,t,r){let o=Kf(e,n,r);if(o===void 0)return;let i=Kf(e,n,t),a=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(s=>uh(s)&&s.senderId!==a&&s.sortKey<=o&&(i===void 0||s.sortKey>i)).map(s=>s.id)}function xc(e){let n=new Set,t=new Map,r=new Map;function o(a){let s=r.get(a);if(s===void 0||s.size===0||!e.isAuthenticated())return;for(let f of s)kn(f)||s.delete(f);if(s.size===0){r.delete(a);return}let l=[...s];for(let f=0;f<l.length;f+=da){let I=l.slice(f,f+da);try{let C=Dt.encode(Dt.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:I.map(be)}));e.sendFrame(X({command:4117,body:C}));for(let k of I)s.delete(k);}catch(C){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:C}});break}}s.size===0&&r.delete(a);}function i(a){let s=e.domainState.getReadState({conversationType:"direct",conversationId:a})?.readCursor??"";if(s===""||!e.isAuthenticated())return;let l=gh(e,a,t.get(a),s);if(l===void 0)return;if(l.length===0){t.set(a,s);return}let f,I=true;for(let C=0;C<l.length;C+=da){let k=l.slice(C,C+da),N=k.map(be);try{let R=Dt.encode(Dt.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:N}));e.sendFrame(X({command:4117,body:R})),f=k.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:a,count:N.length,offset:C});}catch(R){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:R}}),I=false;break}}I?t.set(a,s):f!==void 0&&t.set(a,f);}return {report(a){n.add(a),i(a);},reportConsumedMedia(a,s){let l=e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},s);if(l===void 0||l.senderId===e.getSelfId()||l.contentType!=="voice"&&l.contentType!=="video")return;n.add(a);let f=r.get(a);f===void 0&&(f=new Set,r.set(a,f)),f.add(s),o(a);},onAck({errcode:a}){e.logger?.("direct-sync-read-ack",{errcode:a}),a!==32768&&a!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${a}\uFF09`,code:4118}});},onDeliver({userId:a,peerId:s,msgIdList:l}){if(a!==e.getSelfId())return;let I=l.map(C=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},ye(C))).filter(C=>C!==void 0).sort((C,k)=>C.sortKey<k.sortKey?-1:C.sortKey>k.sortKey?1:0).at(-1);I!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:s},I.id);},onAuthenticated(){for(let a of n)i(a),o(a);},reset(){}}}function mh(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:kn(e.id)}var Bc=50;function fh(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function a(l,f){let{syncRead:I}=e;if(I===void 0||!i())return;let C=I.getSelfId(),k=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:l}),N=k.find(b=>b.id===f);if(N===void 0)return;let R=o.get(l),U=R===void 0?void 0:k.find(b=>b.id===R)?.sortKey,_=k.filter(b=>mh(b)&&b.senderId!==C&&b.sortKey<=N.sortKey&&(U===void 0||b.sortKey>U));if(_.length===0){o.set(l,f);return}let E=_.map(b=>be(b.id)),T,A=true;for(let b=0;b<E.length;b+=Bc){let F=E.slice(b,b+Bc);try{let L=Fr.encode(Fr.create({sUserId:BigInt(C),msgIdList:F,groupId:BigInt(l)}));I.sendFrame(X({command:8967,body:L})),T=_[Math.min(b+Bc,_.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:l,count:F.length,offset:b});}catch(L){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:L}}),A=false;break}}A?o.set(l,f):T!==void 0&&o.set(l,T);}async function s(l){if(!(t.has(l)||!i())){t.add(l);try{for(;i();){let f=n.get(l);if(f===void 0)return;if(n.delete(l),r.get(l)!==f){a(l,f);try{await e.markGroupReadAll(l),r.set(l,f);}catch(I){if(!i()){n.has(l)||n.set(l,f);return}n.get(l)===f&&n.delete(l),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:I}});return}}}}finally{t.delete(l),i()&&n.has(l)&&s(l);}}}return {conversationType:"group",markRead({conversationId:l,readCursor:f}){e.domainState.applyServerUnread({conversationType:"group",conversationId:l},0,f),e.logger?.("grp-read-all",{groupId:l}),n.set(l,f),s(l);},onAuthenticated(){for(let l of n.keys())s(l);}}}function ph(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u5DF2\u8BFB\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r),onAuthenticated:()=>{for(let r of n.values())r.onAuthenticated?.();}}}function yh(e){return {conversationType:"robot",markRead:({conversationId:n,readCursor:t})=>{e.domainState.advanceRead({conversationType:"robot",conversationId:n},t);}}}function Lf(e){let n=_r.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:4107,body:_r.encode(n)})}function Zf(e){let n=Gr.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:8197,body:Gr.encode(n)})}function Qf(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:be(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function Wf(e){let n=Wr.create(Qf(e));return X({command:12297,body:Wr.encode(n)})}function Hf(e){let n=Qr.create(Qf(e));return X({command:12293,body:Qr.encode(n)})}var Ih=15e3;function wc(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let a=t.get(o);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),t.delete(o),a.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let a;try{a=be(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let s=t.get(a);if(s!==void 0)return s.promise;let l,f=new Promise(C=>{l=C;}),I={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:l,promise:f};return t.set(a,I),e.resolveProfile(i.conversationId).then(C=>{if(t.get(a)===I){if(C===null||C.role!=="admin"&&C.role!=="owner"){r(a,{ok:false,reason:"forbidden"});return}I.timer=setTimeout(()=>r(a,{ok:false,reason:"timeout"}),Ih),e.sendFrame(Hf({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>{t.get(a)===I&&r(a,{ok:false,reason:"failed"});}),f},onDeleteAck({sMsgId:o,errcode:i}){let a=t.get(o);if(a!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:a.channelId,conversationType:"channel"},a.messageId,{by:e.getSelfId(),at:a.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(a.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var ir=300*1e3;function Jf(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u64A4\u56DE\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Yf(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>ir)return "expired"}function Xf(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:ir,prepare(e,n,t){let r=Yf(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Lf({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function zf(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:ir,prepare(e,n,t){let r=Yf(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Zf({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Ch(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:ir,async prepare(n,t,r){if(n.conversationId!==t.conversationId||t.conversationType!=="channel")return {ok:false,reason:"not-found"};if(t.senderId!==r.selfId)return {ok:false,reason:"not-own"};let o=t.serverTime??t.createdAt;if(r.now-o>ir)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:Wf({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function Fc(){return Jf([Xf(),zf()])}var qf=15e3;function Pc(e){let n=e.now??(()=>Date.now()),t=e.strategies??Fc(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {recall(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(a.recalled!==void 0)return Promise.resolve({ok:true});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let s=t.resolve(i.conversationType);if(s===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let l=e.getSelfId();if(s.ownMessageOnly===true&&a.senderId!==l)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let f=n();if(s.recallWindowMs!==void 0&&f-(a.serverTime??a.createdAt)>s.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let I=be(i.messageId),C=r.get(I);if(C!==void 0)return C.promise;let k=s.prepare(i,a,{selfId:l,now:f});function N(E){if(!E.ok)return Promise.resolve(E);let T,A=new Promise(F=>{T=F;}),b=setTimeout(()=>o(I,{ok:false,reason:"timeout"}),qf);return r.set(I,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:E.recalledAt,resolve:T,timer:b,promise:A}),e.sendFrame(E.frame),A}if(!(k instanceof Promise))return N(k);let R,U=new Promise(E=>{R=E;}),_={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:f,resolve:R,promise:U};return r.set(I,_),k.then(E=>{if(r.get(I)===_){if(!E.ok){o(I,E);return}_.cancelTime=E.recalledAt,_.timer=setTimeout(()=>o(I,{ok:false,reason:"timeout"}),qf),e.sendFrame(E.frame);}}).catch(()=>{r.get(I)===_&&o(I,{ok:false,reason:"failed"});}),U},onRecallAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s===void 0)return;if(a===32768||a===0){e.domainState.recallMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{by:e.getSelfId(),at:s.cancelTime}),o(i,{ok:true});return}let l=a===33284?"server-expired":"failed";o(i,s.conversationType==="channel"?{ok:false,reason:l,errcode:a}:{ok:false,reason:l});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Vc(e){function n(r){let o=Ri.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Ld(o,e.getSelfId())],"live");let i=Dr.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(X({command:4109,body:Dr.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let a=(o?Yi:qi).decode(r);if(a.sFromId<=0n||a.sRadioId<=0n||a.sMsgId.trim()==="")return;let s=o?Ji:zi,l=o?12295:12299,f=s.create({sFromId:a.sFromId,sRadioId:a.sRadioId,sMsgId:a.sMsgId,sIndex:a.sIndex});e.sendFrame(X({command:l,body:s.encode(f)})),e.domainState.upsertMessages([o?Qd(a):Zd(a)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:a.sMsgId,sFromId:a.sFromId.toString(),sRadioId:a.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=hi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=Mi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=Xi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=Hi.decode(o);e.onChannelMessageDeletionAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function Oc(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function Sh(e){let n=e.getSelfId().trim();if(!/^[1-9]\d*$/.test(n))throw new Error("channel application: \u5F53\u524D\u8D26\u53F7 id \u7F3A\u5931\u6216\u975E\u6CD5");return BigInt(n).toString()}function Ah(e){let n=Oc(e.sFromId,"applicant"),t=Oc(e.sToId,"recipient"),r=Oc(e.sRadioId,"channel"),o=e.sMsgId.trim();if(o==="")throw new Error("channel application: message id \u7F3A\u5931");return {messageId:o,applicantId:n,recipientId:t,channelId:r,messageTime:e.msgTime.toString(),extend:e.extend,selfIntroduction:e.sSelfIntroduce,description:e.sDesc}}function hh(e){function n(t){let r=ji.decode(t),o=Sh(e),i=Ah(r),a=Hr.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(X({command:12547,body:Hr.encode(a)}));}catch(s){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:s}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function Rh(e){if(e.sFromId<0n)throw new Error("channel notify: sender id \u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.sId.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931")}function Mh(e){function n(i){let a=Jr.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(X({command:12803,body:Jr.encode(a)}));}function t(i,a,s,l="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${l}\uFF08channelId=${a.sRadioId.toString()}, messageId=${a.sMsgId}\uFF09`,cause:s}});}function r(i){if(i.encrypt===0)return Se.decode(i.sContent);if(i.encrypt===1){if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 Web \u79C1\u94A5\u89E3\u5BC6\u4F9D\u8D56");let l=e.decrypt.resolveUserPrivateKey?.()??null;if(l===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let f=Ke.decode(i.sContent);if(f.secretKey.length===0||f.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return Se.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:f.secretKey,cipherData:f.cipherData,privateKey:l}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let a=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(a===null||a.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let s=Ke.decode(i.sContent);if(s.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return Se.decode(e.decrypt.crypto.decryptSymmetric({teaKey:a,cipherData:s.cipherData}))}function o(i,a){let s=$i.decode(a);Rh(s);try{n(s);}catch(f){t("transport",s,f,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let l;try{l=r(s);}catch(f){t(s.encrypt===0?"protocol":"crypto",s,f);let I=qn(s,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:s.encrypt!==0});e.domainState.upsertMessages([I],"live"),(s.encrypt===1||s.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:I.conversationId},messageId:I.id,wireEncrypt:s.encrypt,sContent:s.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let f=Co({channelId:s.sRadioId,messageId:s.sMsgId,occurredAt:s.msgTime,notifyType:l.type,operatorId:l.oprUserId,targetUserIds:l.mnpledUserId,content:l.content,historyCursor:s.sId,sequence:s.nIncrId,encrypted:s.encrypt!==0,extend:s.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([f],"live"),e.logger?.("channel-notify-deliver",{channelId:s.sRadioId.toString(),messageId:s.sMsgId,notifyType:l.type});}catch(f){t("protocol",s,f);}}return [{command:12804,handler:(i,a)=>o(i,a)}]}function Eh(e){let t=new Map([[34049,"channelDismissed"],[34050,"channelMuted"],[34051,"channelNotMember"],[34052,"channelAdminRequired"]]).get(e);return t===void 0?void 0:{code:e,reason:"rejected",displayCode:t,retryable:false}}function Th(e){switch(e){case 34049:return {state:"dismissed",reason:"channel_dismissed"};case 34050:return {state:"muted",reason:"channel_muted"};case 34051:return {state:"unknown_restricted",reason:"channel_not_member"};default:return}}function jf(e,n=true){if(e.sFromId<=0n&&e.botId.trim()==="")throw new Error("channel deliver: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel deliver: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel deliver: message id \u7F3A\u5931");if(n&&e.sId.trim()==="")throw new Error("channel deliver: history cursor \u7F3A\u5931")}function vh(e){function n(l){let f=Li.decode(l),I={...f.sIndex===""?{}:{historyCursor:f.sIndex},...f.nIncrId===0n?{}:{channelSequence:f.nIncrId.toString()}},C=Eh(f.errcode);e.outbox.onChatAck({id:ye(f.sMsgId),serverTime:Number(f.msgTime),errcode:f.errcode,...Object.keys(I).length===0?{}:{extensions:I},...C===void 0?{}:{failure:C}});let k=Th(f.errcode);k!==void 0&&f.sRadioId>0n&&e.domainState.setChannelRestriction(f.sRadioId.toString(),k.state,k.reason),e.logger?.("channel-chat-ack",{messageId:f.sMsgId,channelId:f.sRadioId.toString(),errcode:f.errcode});}function t(l){let f=Lr.create({sFromId:l.sFromId,sRadioId:l.sRadioId,sMsgId:l.sMsgId,sIndex:l.sId});e.sendFrame(X({command:12291,body:Lr.encode(f)}));}function r(l,f,I){let C=l.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:f,messageId:l.sMsgId,channelId:C,encrypt:l.encrypt,payloadByteLength:l.sContent.length,...I}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${I.reason}, channelId=${C}\uFF09`,...I.cause===void 0?{}:{cause:I.cause}}});}function o(l,f){let I;if(l.encrypt===0)try{I=Se.decode(l.sContent);}catch(C){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${l.sRadioId.toString()}\uFF09`,cause:C}});return}else if(l.encrypt===1&&e.decrypt!==void 0){let C=e.decrypt.resolveUserPrivateKey?.()??null;if(C===null){r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let k;try{if(k=Ke.decode(l.sContent),k.secretKey.length===0||k.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:R});return}let N;try{N=e.decrypt.crypto.decryptEndToEnd({secretKey:k.secretKey,cipherData:k.cipherData,privateKey:C});}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:k.cipherData.length,cause:R});return}try{I=Se.decode(N);}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:k.cipherData.length,decryptedByteLength:N.length,cause:R});return}}else if(l.encrypt===2&&e.decrypt!==void 0){let C=e.decrypt.resolveChannelKey(l.sRadioId.toString());if(C===null||C.length!==16){r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:C?.length??0,keySource:C===null?"miss":"cache"});return}let k;try{let R=Ke.decode(l.sContent);if(R.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");k=R.cipherData;}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:C.length,keySource:"cache",cause:R});return}let N;try{N=e.decrypt.crypto.decryptSymmetric({teaKey:C,cipherData:k});}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:k.length,cause:R});return}try{I=Se.decode(N);}catch(R){r(l,f,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:k.length,decryptedByteLength:N.length,cause:R});return}}else {r(l,f,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return I}function i(l,f){let I=qn(l,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:f,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([I],"live"),(l.encrypt===1||l.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:I.conversationId},messageId:I.id,wireEncrypt:l.encrypt,sContent:l.sContent.slice(),cmdId:f,source:"live",createdAt:Date.now()});}function a(l,f){let I=Zi.decode(f);jf(I),t(I);let C=o(I,"live-deliver");if(C===void 0){i(I,l);return}let k=Eo({channelId:I.sRadioId,senderId:I.sFromId,msgTime:I.msgTime,encrypt:I.encrypt},C);if(k!==null){e.domainState.upsertMessages([k],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:I.sMsgId,targetMessageId:k.id,channelId:I.sRadioId.toString(),operation:k.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:l});return}let N=qn(I,C,{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw});e.domainState.upsertMessages([N],"live"),e.logger?.("channel-chat-deliver",{messageId:I.sMsgId,channelId:I.sRadioId.toString(),encrypt:I.encrypt,command:l});}function s(l,f){let I=it.decode(f);if(jf(I,false),I.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(I.isEdit===""||I.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(I.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let C=ye(I.oldMsgId),k=o(I,"live-edit");if(k===void 0){let R={conversationType:"channel",conversationId:I.sRadioId.toString()};if(e.domainState.getConversationMessage(R,C)===void 0){let U=qn(I,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...U,id:C}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:R,messageId:C,wireEncrypt:2,sContent:I.sContent.slice(),cmdId:l,source:"live",createdAt:Date.now()});return}let N=qn(I,k,{selfId:e.getSelfId(),cmdId:l,keepRaw:e.keepRaw,edited:true});if(N.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:N.conversationId},C,N.body,N.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:N.conversationId},C)===void 0&&e.domainState.upsertMessages([{...N,id:C,edited:true,extensions:{...N.extensions,editOperationMessageId:N.id,previousMessageId:C}}],"live");}return [{command:12290,handler:(l,f)=>n(f)},{command:12292,handler:(l,f)=>a(l,f)},{command:12816,handler:(l,f)=>a(l,f)},{command:12808,handler:(l,f)=>s(l,f)}]}function Kc(){let e=new Map;return {register(n,t){if(e.has(n))throw new Error(`\u6536\u5305\u547D\u4EE4\u5904\u7406\u5668\u91CD\u590D\u6CE8\u518C\uFF1AcmdId=${n}`);e.set(n,t);},resolve:n=>e.get(n)}}function bh(e){if(e.extend.trim()==="")return false;try{let n=JSON.parse(e.extend);if(n===null||typeof n!="object")return !1;let t=n.friend_info;if(t===null||typeof t!="object")return !1;let r=t.user_id;return (typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&String(r).trim()===e.sFromId.toString()}catch{return false}}function Nh(e){return [{command:4360,handler:(n,t)=>{let r=Ai.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application answer: \u5904\u7406\u4EBA\u3001\u7533\u8BF7\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(X({command:4359,body:Nr.encode(Nr.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),a=r.errcode===32768||r.errcode===33300||bh(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";a==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:s}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:a}});}}]}function _h(e){return [{command:4356,handler:(n,t)=>{let r=Si.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application: \u7533\u8BF7\u4EBA\u3001\u63A5\u6536\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(X({command:4355,body:br.encode(br.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=Number(r.msgTime);if(!Number.isSafeInteger(i)||i<=0)throw new Error("contact application: \u6D88\u606F\u65F6\u95F4\u975E\u6CD5");e.emitter.emit({type:"contact-application:received",notification:{applicantId:r.sFromId.toString(),recipientId:o,messageId:r.sMsgId,createdAt:i}});}}]}function Lc(e){function n(N){let R=yt.create({sFromId:N.sFromId,sToId:N.sToId,sMsgId:N.sMsgId,msgTime:N.msgTime});e.sendFrame(X({command:4099,body:yt.encode(R)}));}function t(N){let R=zd(ai.decode(N));e.logger?.("chat-ack",{id:R.id,errcode:R.errcode,serverTime:R.serverTime}),e.outbox.onChatAck(R);}function r(N,R,U){let _=qt(N,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:R,keepRaw:e.keepRaw,decryptFailed:true,edited:U});e.domainState.upsertMessages([_],"live"),N.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:_.conversationId},messageId:_.id,wireEncrypt:1,sContent:N.sContent.slice(),...N.encryptVersion===""?{}:{encryptVersion:N.encryptVersion},cmdId:R,source:"live",createdAt:Date.now()});}function o(N,R,U=false){let _=di.decode(R),E;if(_.encrypt===0)E=Se.decode(_.sContent);else if(_.encrypt===1&&e.decrypt!==void 0){let A=e.decrypt.resolvePrivateKey({msgType:_.msgType,encrypt:_.encrypt,encryptVersion:_.encryptVersion});if(A===null){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:N,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,N,U);return}try{let b=Ke.decode(_.sContent);if(b.secretKey.length===0||b.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${b.secretKey.length}B cipherData=${b.cipherData.length}B`);let F=e.decrypt.crypto.decryptEndToEnd({secretKey:b.secretKey,cipherData:b.cipherData,privateKey:A});E=Se.decode(F);}catch(b){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:N,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"decrypt-failed",cause:b}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${_.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:b}}),r(_,N,U);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,N,U);return}let T=qt(_,E,{selfId:e.getSelfId(),cmdId:N,keepRaw:e.keepRaw,edited:U});e.domainState.upsertMessages([T],"live"),n(_),e.logger?.("chat-deliver",{sMsgId:_.sMsgId,sFromId:String(_.sFromId),sToId:String(_.sToId),encrypt:_.encrypt});}function i(N){let R=Ur.create({sUserId:N.sToId,sMsgId:N.sMsgId});e.sendFrame(X({command:4101,body:Ur.encode(R)})),e.logger?.("delivered-notif-ack",{sUserId:String(R.sUserId),sMsgId:R.sMsgId});}function a(N,R){let U=Ni.decode(R);if(e.logger?.("delivered-notif",{sMsgId:U.sMsgId,sFromId:String(U.sFromId),sToId:String(U.sToId)}),U.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}i(U),e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function s(N){let R=xr.create({sUserId:N.sToId,sMsgId:N.sMsgId});e.sendFrame(X({command:4105,body:xr.encode(R)})),e.logger?.("read-deliver-ack",{sUserId:String(R.sUserId),sMsgId:R.sMsgId});}function l(N,R){let U=e.getSelfId(),_=[];for(let E of R){let T=e.domainState.getConversationMessage({conversationType:"direct",conversationId:N},ye(E.sMsgId));T!==void 0&&T.senderId===U&&T.receipt!=="read"&&_.push({...T,receipt:"read"});}_.length>0&&e.domainState.upsertMessages(_,"live");}function f(N,R){let U=Di.decode(R);if(e.logger?.("read-deliver",{sMsgId:U.sMsgId,sFromId:String(U.sFromId),sToId:String(U.sToId),readResults:U.readResults.length,readReceiptOff:U.readReceiptOff}),U.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_READ_DELIVER(4106) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}if(s(U),U.readReceiptOff!==1){let _=e.getSelfId(),E=U.sFromId.toString(),T=U.sToId.toString();l(E===_?T:E,U.readResults);}e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_READ_DELIVER"});}function I(N){let R=_i.decode(N);e.logger?.("read-report-ack",{notifyId:R.sMsgId,sUserId:String(R.sUserId),errcode:R.errcode}),e.onReadAck?.({notifyId:R.sMsgId,errcode:R.errcode});}function C(N){let R=Gi.decode(N);e.logger?.("direct-sync-read-ack",{errcode:R.errcode}),e.onSyncReadAck?.({errcode:R.errcode});}function k(N,R){let U=Ui.decode(R),_=U.sUserId.toString(),E=U.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:_,peerId:E,msgIds:U.msgIdList.length}),e.onSyncReadDeliver?.({userId:_,peerId:E,msgIdList:U.msgIdList}),e.emitter.emit({type:"notification",cmdId:N,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(N,R)=>t(R)},{command:4100,handler:(N,R)=>o(N,R)},{command:4644,handler:(N,R)=>o(N,R,true)},{command:4102,handler:(N,R)=>a(N,R)},{command:4106,handler:(N,R)=>f(N,R)},{command:4104,handler:(N,R)=>I(R)},{command:4118,handler:(N,R)=>C(R)},{command:4119,handler:(N,R)=>k(N,R)}]}function Dh(e){function n(t){let r=yi.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Tr.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(X({command:4632,body:Tr.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),a=r.friendNotifyType===0,s=r.friendNotifyType===1&&r.blackStatus===2;(a||s)&&(e.onRelationshipChanged?.(i,a?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(l=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:l}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:i}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function Gh(e){function n(i,a){let s=Qt.decode(a),l=e.getSelfId(),f=vo(s,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([f],"live");let I=Pr.create({sUserId:BigInt(l),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8707,body:Pr.encode(I)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:s.sGrpId.toString(),sMsgId:s.sMsgId,notifyType:s.notifyType});}function t(i,a){let s=Vi.decode(a),l=Vr.create({sUserId:BigInt(e.getSelfId()),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8451,body:Vr.encode(l)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:s.sGrpId.toString(),sMsgId:s.sMsgId});}function r(i){let a=Oi.decode(i),s=Or.create({sFromId:BigInt(e.getSelfId()),sToId:a.sFromId,sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(X({command:8963,body:Or.encode(s)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:a.sMsgId});}function o(i){let a=Ki.decode(i),s=Kr.create({sUserId:BigInt(e.getSelfId()),sMsgId:a.sMsgId});e.sendFrame(X({command:8965,body:Kr.encode(s)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:a.sMsgId});}return [{command:8708,handler:(i,a)=>n(i,a)},{command:8452,handler:(i,a)=>t(i,a)},{command:8964,handler:(i,a)=>r(a)},{command:8966,handler:(i,a)=>o(a)}]}function Uh(e){let n=new Map;function t(R){let U=ki.decode(R),_={id:ye(U.sMsgId),serverTime:Number(U.sendtime),errcode:U.errcode};e.logger?.("grp-chat-ack",{id:_.id,errcode:_.errcode,serverTime:_.serverTime}),e.outbox.onChatAck(_);}function r(R){let U=Br.create({sFromId:BigInt(e.getSelfId()),sGrpId:R.sGrpId,sMsgId:R.sMsgId});e.sendFrame(X({command:8195,body:Br.encode(U)}));}function o(){return e.isActive?.()??true}function i(R,U,_,E,T=false){let A=R.sGrpId.toString(),b=It(R,Se.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:U,keepRaw:e.keepRaw,decryptFailed:true,edited:T});e.domainState.upsertMessages([b],"live"),R.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:A},messageId:b.id,wireEncrypt:1,sContent:R.sContent.slice(),...R.encryptVersion===""?{}:{encryptVersion:R.encryptVersion},cmdId:U,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:R.sMsgId,groupId:A,fromId:String(R.sFromId),msgType:R.msgType,cmdId:U,encrypt:R.encrypt,encryptVersion:R.encryptVersion,reason:_,...E===void 0?{}:{cause:E}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:_==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${R.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u7FA4\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`:`\u5B9E\u65F6\u7FA4\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${R.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...E===void 0?{}:{cause:E}}});}function a(R,U,_,E){let T=It(R,_,{selfId:e.getSelfId(),cmdId:U,keepRaw:e.keepRaw,edited:E});e.domainState.upsertMessages([T],"live"),r(R),e.logger?.("grp-chat-deliver",{sMsgId:R.sMsgId,sGrpId:String(R.sGrpId),sFromId:String(R.sFromId),encrypt:R.encrypt});}function s(R,U){let _=Ke.decode(R.sContent);if(_.secretKey.length===0||_.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${_.secretKey.length}B cipherData=${_.cipherData.length}B`);let E=e.decrypt.crypto.decryptEndToEnd({secretKey:_.secretKey,cipherData:_.cipherData,privateKey:U});return Se.decode(E)}async function l(R,U,_){if(!o())return;if(R.encrypt===0){try{a(R,U,Se.decode(R.sContent),_);}catch(F){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u660E\u6587\u6295\u9012\u89E3\u6790\u6216\u63D0\u4EA4\u5931\u8D25",cause:F}});}return}if(R.encrypt!==1||e.decrypt===void 0){i(R,U,"no-key",void 0,_);return}let T={groupId:R.sGrpId.toString(),msgType:R.msgType,encrypt:R.encrypt,encryptVersion:R.encryptVersion},A;try{A=e.decrypt.resolvePrivateKey(T),A===null&&e.decrypt.preparePrivateKey!==void 0&&(A=await e.decrypt.preparePrivateKey(T));}catch(F){o()&&i(R,U,"no-key",F,_);return}if(!o())return;if(A===null){i(R,U,"no-key",void 0,_);return}let b;try{b=s(R,A);}catch(F){i(R,U,"decrypt-failed",F,_);return}if(o())try{a(R,U,b,_);}catch(F){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:F}});}}function f(R,U,_){let E=R.sGrpId.toString(),A=(n.get(E)??Promise.resolve()).then(()=>l(R,U,_));n.set(E,A),A.finally(()=>{n.get(E)===A&&n.delete(E);});}function I(R,U,_=false){let E=xi.decode(U),T=E.sGrpId.toString();if(n.has(T)){f(E,R,_);return}if(E.encrypt===0){a(E,R,Se.decode(E.sContent),_);return}if(E.encrypt!==1||e.decrypt===void 0){i(E,R,"no-key",void 0,_);return}let A={groupId:T,msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion},b=e.decrypt.resolvePrivateKey(A);if(b===null){if(e.decrypt.preparePrivateKey!==void 0){f(E,R,_);return}i(E,R,"no-key",void 0,_);return}let F;try{F=s(E,b);}catch(L){i(E,R,"decrypt-failed",L,_);return}a(E,R,F,_);}function C(R){let U=Fi.decode(R);e.logger?.("grp-sync-read-ack",{errcode:U.errcode});}function k(R,U){for(let _=U.length-1;_>=0;_-=1){let E=U[_];if(E===void 0||E==="")continue;let T=ye(E),A=e.domainState.getConversationMessage({conversationType:"group",conversationId:R},T);if(A!==void 0&&A.conversationId===R)return T}}function N(R,U){let _=Pi.decode(U),E=_.groupId.toString();if(_.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:E,sUserId:String(_.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:E,sUserId:String(_.sUserId),msgIds:_.msgIdList.length});let T=k(E,_.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:E},0,T),e.emitter.emit({type:"notification",cmdId:R,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(R,U)=>t(U)},{command:8196,handler:(R,U)=>I(R,U)},{command:8976,handler:(R,U)=>I(R,U,true)},{command:8968,handler:(R,U)=>C(U)},{command:8969,handler:(R,U)=>N(R,U)}]}function kh(e){function n(o){let i=jd(ci.decode(o));e.logger?.("robot-ack",{id:i.id,errcode:i.errcode}),e.outbox.onChatAck(i);}function t(o,i){let a=li.decode(i),s=qd(a,{selfId:e.getSelfId(),cmdId:o,keepRaw:e.keepRaw});e.domainState.upsertMessages([s],"live");let l=yt.create({sFromId:BigInt(a.robotId),sToId:a.userId,sMsgId:a.sMsgId,msgTime:a.msgTime});e.sendFrame(X({command:4099,body:yt.encode(l)}));}function r(o){let i=ui.decode(o);if(i.robotId.trim()==="")throw new Error("robot delete: robotId \u7F3A\u5931");e.domainState.removeConversation({conversationType:"robot",conversationId:i.robotId}),e.emitter.emit({type:"notification",cmdId:24579,name:"BOT_MSG_ROBOT_DELETE_SEND"});}return [{command:4648,handler:(o,i)=>n(i)},{command:4649,handler:(o,i)=>t(o,i)},{command:24579,handler:(o,i)=>r(i)}]}function xh(e){function n(t){let r=Ii.decode(t);if(r.userId<=0n)throw new Error("session favorite notify: user id \u7F3A\u5931\u6216\u975E\u6CD5");e.getSelfId()===r.userId.toString()&&e.emitter.emit({type:"session-favorites:changed"});}return [{command:4633,handler:(t,r)=>n(r)}]}function Bh(e){function n(t){let r=Ci.decode(t),o=()=>e.sendFrame(X({command:4628,body:vr.encode(vr.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=Rd.decode(r.sContent),a=i.serialNumber.trim();if(a==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let s=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(a,3,Number.isFinite(s)&&s>0?s:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(l=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u6301\u4E45\u5316\u94B1\u5305\u8F6C\u8D26\u72B6\u6001\u5931\u8D25\uFF0C\u672A\u53D1\u9001 ACK",cause:l}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function wh(e){return e.sticker!==void 0&&e.text===void 0&&e.system===void 0&&e.image===void 0&&e.video===void 0&&e.voice===void 0&&e.file===void 0&&e.contact===void 0&&e.miniProgram===void 0&&e.robot===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function Fh(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&wh(n.body)&&n.encryption.encrypted===false,o=pr({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Nm(o);let{crypto:i}=t,{resolveChannelKey:a}=e;return (async()=>{if(i===void 0||a===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let s=await a(n.conversationId);if(s===null||s.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return _m(o,i,s)})()}}}function $f(e,n){return No({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Zc(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=$f(t,r);if(o.encrypt!==1)return Um(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return xm(o,i,s)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=$f(t,r);if(o.encrypt!==1)return km(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Bm(o,i,s)})()}}}function Ph(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=yo({id:n.id,conversationId:n.conversationId,body:n.body,encryption:n.encryption,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId});if(r.encrypt!==1)return Km(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let a=await i(n.conversationId);if(a===null||a.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Lm(r,o,a.publicKey,a.version)})()}}}function ep(e){let n=Er.encode(Er.create({userId:e.userId,robotId:e.robotId,content:e.content,msgTime:e.msgTime,sMsgId:e.sMsgId}));return X({command:4647,body:n})}function Vh(){return {conversationType:"robot",buildOutgoingFrame(e,n){return ep($d({id:e.id,conversationId:e.conversationId,body:e.body,createdAt:e.createdAt,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId}))}}}function np(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u53D1\u9001\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Fo(){return np([Zc()])}function tp(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!qo(n.transfer))throw new Error("sendTransfer: \u8F6C\u8D26\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"transfer",body:{transfer:n.transfer},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function xt(e){return typeof e=="string"?e:e==null?"":String(e)}function ca(e){let n=typeof e=="number"?e:Number(xt(e).trim());return Number.isFinite(n)?n:0}function rp(e){if(typeof e!="string")return "";let n=e.trim();return n.startsWith("data:image/")?n:n.includes("://")||n.length<32?"":`data:image/jpeg;base64,${n}`}function Oh(...e){for(let n of e){let t=xt(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function la(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function Kh(e){return e.url!==""||la(e)!==""}function op(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=ca(r.mediaType??r.media_type),i=xt(r.kind).trim(),a={kind:o===2||i==="video"?"video":"image",width:ca(r.width),height:ca(r.height),url:xt(r.url).trim(),thumbUrl:xt(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:rp(r.thumbData??r.thumb_data),durationMs:ca(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return Kh(a)?[a]:[]}):[]}function Lh(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||xt(e.body.caption).trim()}function ip(e){return la({url:Oh(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:xt(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:rp(e.thumbData??e.thumb_data??e.thumbBase64)})}function Zh(e,n){if(e==="mediaAlbum"){let t=op(n)[0];return t===void 0?"":la(t)}return e==="image"||e==="video"?ip(n):""}var Qh=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,Wh=/^[a-z0-9][a-z0-9._-]{0,63}$/,Hh=new Set(["durable","rebuildable","ephemeral"]);function ap(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!Qh.test(e))throw new Error("cache.prefix \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 3-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26\uFF0C\u4E14\u9996\u5C3E\u4E3A\u5B57\u6BCD\u6216\u6570\u5B57");return e}function sp(e,n){if(!Wh.test(e))throw new Error(`cache namespace ${n} \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 1-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26`)}function Jh(e){let n=ap(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,i,a){if(!Hh.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return sp(i,"domain"),sp(a,"resource"),o==="durable"&&i==="storage"&&a==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${a}`}}}}}function Yh(e){return e===32768||e===0}function Xh(e,n){if(Yh(e))return {type:"success"};switch(e){case 33025:return {type:"auth-invalid",issue:{code:e,reason:"token_expired"}};case 33040:return {type:"auth-invalid",issue:{code:e,reason:"kicked",...n===void 0||n<=0?{}:{lastLoginTime:n}}};case 33026:case 33043:return {type:"auth-invalid",issue:{code:e,reason:"banned"}};default:return {type:"retry",error:{scope:"login",code:e,message:`\u672A\u77E5\u767B\u5F55\u9519\u8BEF\u7801\uFF1A${e}`}}}}function zh(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function qh(e){let n=Rr.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return X({command:257,body:Rr.encode(n)})}function dp(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(s,l){if(o===void 0||o.generation!==s)return;clearTimeout(o.timer);let{resolve:f}=o;o=void 0,f(l);}function a(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:s}=o;o=void 0,s({type:"canceled"});}return {async login(){let s=++r;a();let l;try{l=await e.authProvider.getLoginContext();}catch(I){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:I}}}if(s!==r)return {type:"canceled"};if(l===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let f;try{f=qh(l);}catch(I){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:I}}}return new Promise(I=>{let C=setTimeout(()=>{i(s,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:s,resolve:I,timer:C,selfId:l.userId},e.logger?.("connection:login-frame-sent",{userId:l.userId,deviceToken:zh(l.deviceToken),clientType:l.clientType,channelType:l.channelType,tokenLength:l.token.length,generation:s}),e.sendFrame(f);})},onLoginAck(s){if(o===void 0)return;let{generation:l,selfId:f}=o,I;try{let C=si.decode(s),k=Number(C.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(C.sUserId),requestUserId:f,errCode:`0x${k.toString(16)}`,isKickedOut:k===33040,lastLoginTime:String(C.nLastLoginTime)}),I=Xh(k,Number(C.nLastLoginTime)),I.type==="success"&&(I={type:"success",selfId:f});}catch(C){I={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:C}};}i(l,I);},cancel(){r+=1,a();},get awaitingAck(){return o!==void 0}}}var cp=4294967295,jh=2,$h=2.2,eR=2880;function nR(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function lp(e,n){if(!Number.isSafeInteger(e)||e<=0||e>cp)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${cp} \u7684\u6574\u6570`);return e}function tR(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>$h&&t>eR?jh:0}function Qc(e,n){if(e===void 0)throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);let t=e.trim();if(t==="")throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function rR(e,n){return e===void 0?void 0:Qc(e,n)}function oR(e){let n=e.trim(),t;try{t=new URL(n);}catch{throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u6709\u6548\u7684 http(s) URL")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!=="")throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u65E0\u51ED\u636E\u7684 http(s) URL");return t.href}function iR(e){let n=e.kind;if(n!=="sticker"&&n!=="gif")throw new Error(`sendExpression: \u4E0D\u652F\u6301\u7684 asset.kind\uFF08${String(n)}\uFF09`);if(e.kind==="gif"&&Object.prototype.hasOwnProperty.call(e,"packageId"))throw new Error("sendExpression: GIF \u4E0D\u5141\u8BB8\u63D0\u4F9B asset.packageId");let t=lp(e.width,"asset.width"),r=lp(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?Qc(e.resourceId,"asset.resourceId"):rR(e.resourceId,"asset.resourceId"),a=e.kind==="sticker"?Qc(e.packageId,"asset.packageId"):void 0;return {sticker:{url:oR(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:tR(t,r),...i===void 0?{}:{contentId:i},...a===void 0?{}:{packageName:a},...e.size===void 0?{}:{size:nR(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function up(e,n){let t=iR(n.asset),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"sticker",body:t,encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function sR(){let e=globalThis.crypto;if(e===void 0||typeof e.getRandomValues!="function")throw new Error("sendGame: \u5F53\u524D runtime \u672A\u63D0\u4F9B crypto.getRandomValues\uFF0C\u5FC5\u987B\u6CE8\u5165 randomUint32");return e.getRandomValues(new Uint32Array(1))[0]}function gp(e,n=sR){if(!Number.isSafeInteger(e)||e<=0||e>4294967296)throw new Error("sendGame: maxExclusive \u975E\u6CD5");let t=Math.floor(4294967296/e)*e;for(let r=0;r<128;r+=1){let o=n();if(!Number.isSafeInteger(o)||o<0||o>=4294967296)throw new Error("sendGame: randomUint32 \u5FC5\u987B\u8FD4\u56DE uint32");if(o<t)return o%e}throw new Error("sendGame: \u968F\u673A\u6E90\u8FDE\u7EED\u843D\u5165\u62D2\u7EDD\u533A\u95F4")}function aR(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:gp(3,n)+1};if(e==="dice")return {gameType:e,value:gp(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function mp(e,n){let t=aR(n.gameType,e.randomUint32),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"game",body:{game:t},encryption:{encrypted:true},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var fp=new Set([32768,0]),Hc=new Set([33281,33299]),Jc=33298,dR=new Set([...Hc,Jc]),ua=-2,cR=-1,ga=-3,Wc=-4;function an(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>an(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=an(r);return n}return e}function ut(e){return an(e)}function Po(e){return an(e)}function Yc(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??Fo(),a=new Map,s=new Map,l=new Map,f=new Map,I=0,C=new Set,k=new Map,N=new Set,R=new Set,U=new Set,_=new Map;function E(y){return le(y)}function T(y,d){return y.createdAt!==d.createdAt?y.createdAt-d.createdAt:y.id<d.id?-1:y.id>d.id?1:0}function A(y){let d=E(y),u=s.get(d);if(u!==void 0)return u;let g=0;for(let h of e.domainState.getMessagesByConversation({conversationType:y.conversationType,conversationId:y.conversationId}))g=Math.max(g,Xn(h));for(let h of a.values())E(h)===d&&(g=Math.max(g,h.createdAt));return s.set(d,g),g}function b(y,d){let u=E(y),g=s.get(u)??A(y);d>g&&s.set(u,d);}function F(y){let d=A(y),u=Math.max(o(),d+1);return s.set(E(y),u),{id:Tn(),createdAt:u}}function L(y,d){e.onUpdated?.({messageId:y.id,conversation:{conversationType:y.conversationType,conversationId:y.conversationId},state:d,...y.lastError===void 0?{}:{failure:{reason:y.lastError.reason,retryable:y.lastError.retryable}}});}function W(y){e.storage!==void 0&&e.storage.saveOutboxMessage(ut(y)).catch(d=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",d));}function ie(y){e.storage!==void 0&&e.storage.removeOutboxMessage(y).catch(d=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",d));}function Te(y){let d=l.get(y);d!==void 0&&(clearTimeout(d),l.delete(y));}function re(y,d,u){let g=u?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,h=e.domainState.getMessage(y);if(h!==void 0){e.domainState.upsertMessages([{...h,...d}],"live",g);return}let S=a.get(y);if(S===void 0)return;let D={...{id:S.id,conversationId:S.conversationId,conversationType:S.conversationType,senderId:e.getSelfId(),contentType:S.contentType,body:Po(S.body),createdAt:S.createdAt,sortKey:_e(S.createdAt,S.id),status:S.status,receipt:"unread",encryption:an(S.encryption),failure:S.lastError===void 0?void 0:an(S.lastError),...S.mention!==void 0?{mention:an(S.mention)}:{},...S.refMessageId!==void 0?{refMessageId:S.refMessageId}:{}},...d};e.domainState.upsertMessages([{...D,sortKey:zn(D)}],"live",g);}function me(y){if(!dR.has(y.errcode))return;let d=e.domainState.getMessage(y.id);if(d===void 0||d.conversationType!=="direct"||d.senderId!==e.getSelfId())return;let u=Hc.has(y.errcode),g=y.errcode===Jc,h=y.failure??Xs(y.errcode);u?h={...h,displayCode:"contactRequired",retryable:false}:g&&(h={...h,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...d,status:"failed",failure:h}],"live",{authoritativeOutboxFailure:true}),u?e.domainState.appendDirectContactRequiredNotice(d.conversationId,d.id):g&&e.domainState.appendDirectMessageRefusedNotice(d.conversationId,d.id);}function pe(y,d){Te(y);let u=a.get(y);u!==void 0&&(u.status="failed",u.lastError=d,re(y,{status:"failed",failure:d}),W(u),L(u,"failed"),J(y));}async function H(y){if(f.has(y.id))return;if(C.has(E(y))){pe(y.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:false});return}let d=Symbol("outbox-dispatch");f.set(y.id,d);let u=I;try{let g=i.resolve(y.conversationType);if(g===void 0){pe(y.id,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:rr(y.conversationType,"outbox.dispatch"),retryable:!1});return}let h;try{let S={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},G=g.buildOutgoingFrames===void 0?g.buildOutgoingFrame(y,S):g.buildOutgoingFrames(y,S);if(G instanceof Uint8Array)h=[G];else if(Array.isArray(G))h=G;else {let D=await G;h=D instanceof Uint8Array?[D]:D;}if(u!==I)return;if(h.length===0||h.some(D=>!(D instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${y.conversationType}\uFF09`)}catch{if(u!==I)return;y.attempts+=1,pe(y.id,{code:ua,reason:"unknown"});return}if(C.has(E(y))){pe(y.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:!1});return}if(!e.isAuthenticated()){y.status="pending",re(y.id,{status:"pending"}),W(y),L(y,"queued");return}y.status="sending",y.attempts+=1,re(y.id,{status:"sending"}),W(y),L(y,"sending");for(let S of h)e.sendFrame(S);Te(y.id),l.set(y.id,setTimeout(()=>pe(y.id,{code:cR,reason:"timeout"}),t));}finally{f.get(y.id)===d&&f.delete(y.id);}}function J(y){let d=_.get(y);d!==void 0&&(_.delete(y),d());}function K(y){let d=a.get(y);return d===void 0||d.status!=="sending"?Promise.resolve():new Promise(u=>_.set(y,u))}function he(y){return (y.status==="pending"||y.status==="failed")&&!(y.status==="failed"&&y.lastError?.retryable===false)&&y.resumePolicy!=="manual"&&(y.attempts<r||R.has(y.id))&&i.resolve(y.conversationType)!==void 0}function fe(y,d){let u;for(let g of a.values())d.has(g.id)||E(g)!==y||!he(g)||(u===void 0||T(g,u)<0)&&(u=g);return u}function Me(y,d=false){let u=E(y);if(d&&U.add(u),k.has(u)){N.add(u);return}ve(u);}function ue(){let y=new Set;for(let d of a.values())he(d)&&y.add(E(d));for(let d of y)V(d,true);}async function ve(y){let d=Symbol("outbox-drain"),u=I;k.set(y,d);try{do{N.delete(y);let g=new Set;for(;u===I&&e.isAuthenticated();){let h=fe(y,g);if(h===void 0)break;if(g.add(h.id),R.delete(h.id),await H(h),u!==I)return;U.has(y)&&await K(h.id);}}while(u===I&&N.has(y)&&e.isAuthenticated())}finally{k.get(y)===d&&(k.delete(y),U.delete(y));}}function V(y,d=false){if(d&&U.add(y),k.has(y)){N.add(y);return}ve(y);}function P(y){let d={code:ua,reason:"unknown",displayCode:"sendCanceled",retryable:false};y.lastError=d,re(y.id,{status:"failed",failure:d}),R.delete(y.id),a.delete(y.id),ie(y.id),L(y,"canceled"),J(y.id);}return {allocateMessageIdentity:F,enqueueText(y){let{id:d,createdAt:u}=F(y),g={encrypted:y.encrypted??false},h=i.resolve(y.conversationType)!==void 0,S=h&&e.isAuthenticated(),G={id:d,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:y.text},createdAt:u,sortKey:_e(u,d),status:"pending",receipt:"unread",encryption:an(g),...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},D={id:d,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"text",body:{text:y.text},encryption:an(g),status:"pending",attempts:0,createdAt:u,...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(d,D),W(D),L(D,"queued"),e.domainState.upsertMessages([G],"live",{newOutgoing:true}),h?(S&&Me(D),ut(D)):(pe(d,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:rr(y.conversationType,"outbox.enqueueText"),retryable:false}),ut(D))},enqueueContact(y){let d=y.contact.targetId.trim(),u=y.contact.displayName.trim();if(d==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(u==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(y.contact.kind!=="individual"&&y.contact.kind!=="group"&&y.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(y.contact.kind)} \u540D\u7247`);let{id:g,createdAt:h}=F(y),S={encrypted:y.encrypted??false},G=i.resolve(y.conversationType)!==void 0,D=G&&e.isAuthenticated(),j={contact:{...y.contact,targetId:d,displayName:u}},O={id:g,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"contact",body:Po(j),createdAt:h,sortKey:_e(h,g),status:"pending",receipt:"unread",encryption:an(S),...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}},z={id:g,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"contact",body:Po(j),encryption:an(S),status:"pending",attempts:0,createdAt:h,...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}};return a.set(g,z),W(z),L(z,"queued"),e.domainState.upsertMessages([O],"live",{newOutgoing:true}),G?(D&&Me(z),ut(z)):(pe(g,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:rr(y.conversationType,"outbox.enqueueContact"),retryable:false}),ut(z))},enqueueMedia(y){let{id:d,createdAt:u}=y,g=Po(y.body);Ha(y.contentType,g,"outbox.enqueueMedia"),b(y,u);let h=i.resolve(y.conversationType)!==void 0,S=h&&e.isAuthenticated(),G={id:d,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:y.contentType,body:Po(g),createdAt:u,sortKey:_e(u,d),status:"pending",receipt:"unread",encryption:an(y.encryption),...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},D={id:d,conversationId:y.conversationId,conversationType:y.conversationType,contentType:y.contentType,body:g,encryption:an(y.encryption),status:"pending",attempts:0,createdAt:u,...y.mention!==void 0?{mention:an(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(d,D),W(D),L(D,"queued"),e.domainState.upsertMessages([G],"live",{newOutgoing:y.optimisticAlreadyCreated!==true}),h?(S&&Me(D),ut(D)):(pe(d,{code:ga,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:rr(y.conversationType,"outbox.enqueueMedia"),retryable:false}),Me(D,true),ut(D))},onChatAck(y){Te(y.id);let d=a.get(y.id);if(d===void 0){fp.has(y.errcode)||me(y);return}if(fp.has(y.errcode))a.delete(y.id),ie(y.id),re(y.id,{status:"sent",serverTime:y.serverTime>0?y.serverTime:void 0,...y.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(y.id)?.extensions,...y.extensions}}}),L(d,"sent"),J(y.id);else {d.status="failed",d.lastError=y.failure??Xs(y.errcode);let u=d.conversationType==="direct"&&Hc.has(y.errcode),g=d.conversationType==="direct"&&y.errcode===Jc;u?d.lastError={...d.lastError,displayCode:"contactRequired",retryable:false}:g&&(d.lastError={...d.lastError,displayCode:"messageRefused",retryable:false}),re(y.id,{status:"failed",failure:d.lastError},{authoritativeFailure:true}),u?e.domainState.appendDirectContactRequiredNotice(d.conversationId,d.id):g&&e.domainState.appendDirectMessageRefusedNotice(d.conversationId,d.id),W(d),L(d,"failed"),J(y.id);}},onAuthenticated(){ue();},retry(y){let d=a.get(y);return d===void 0?{accepted:false,reason:"not-found"}:d.status==="sending"||f.has(y)?{accepted:false,reason:"in-flight"}:d.status==="failed"&&d.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:d.status!=="failed"&&!(d.status==="pending"&&d.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(d.resumePolicy==="manual"&&(d.resumePolicy="automatic",W(d)),R.add(d.id),Me(d),{accepted:true})},cancel(y){let d=a.get(y);return d===void 0?{accepted:false,reason:"not-found"}:d.status==="sending"||f.has(y)?{accepted:false,reason:"in-flight"}:d.status!=="pending"?{accepted:false,reason:"invalid-state"}:d.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(P(d),{accepted:true})},markConversationTerminated(y,d){let u=E(y);C.add(u);for(let g of [...a.values()])if(E(g)===u){if(g.status==="pending"&&g.attempts===0&&!f.has(g.id)){P(g);continue}pe(g.id,{code:Wc,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${d}`,retryable:false});}},clearConversationTerminated(y){let d=E(y);C.delete(d),V(d);},markForLogout(y){for(let d of a.values())if(!(d.status!=="pending"&&d.status!=="sending"&&d.status!=="failed")){if(Te(d.id),d.resumePolicy="manual",y.policy==="fail"){let u={code:ua,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};d.status="failed",d.lastError=u,re(d.id,{status:"failed",failure:u}),L(d,"failed");}W(d),J(d.id);}},getPending(){return [...a.values()].map(ut)},reset(y){y?.discardInFlight&&(I+=1,f.clear(),k.clear(),N.clear(),U.clear());for(let d of [...l.keys()])Te(d);for(let d of a.values())d.status==="sending"&&(d.status="pending",re(d.id,{status:"pending"}),W(d),L(d,"queued"),J(d.id));},async hydrate(y=()=>true){if(!(e.storage===void 0||!y()))try{let d=await e.storage.getOutbox();if(!y())return;for(let u of d){if(!y())return;let g=ut(u);if(g.status==="sent"){ie(g.id);continue}try{Ha(g.contentType,g.body,`outbox.hydrate(${g.id})`),g.body.video!==void 0&&(g.body={...g.body,video:jo(g.body.video)});}catch(G){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${g.id}\uFF09`,G),!y())return;if(ie(g.id),e.domainState.getMessage(g.id)!==void 0){let D={code:ua,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};re(g.id,{status:"failed",failure:D},{authoritativeFailure:!0});}continue}let h=g.status==="sending"?"pending":g.status,S={...g,status:h};if(a.set(g.id,S),b(S,S.createdAt),L(S,h==="pending"?"queued":h),!y())return;e.domainState.getMessage(g.id)!==void 0&&re(g.id,{status:h,failure:g.lastError===void 0?void 0:an(g.lastError)});}}catch(d){y()&&e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",d);}}}}function pp(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Kc(),r={domainState:e.domainState,outbox:e.outbox,onReadAck:e.onReadAck,onSyncReadAck:e.onSyncReadAck,onSyncReadDeliver:e.onSyncReadDeliver,sendFrame:e.sendFrame,getSelfId:e.getSelfId,emitter:e.emitter,logger:e.logger,keepRaw:e.keepRaw,decrypt:e.decrypt};for(let{command:o,handler:i}of Lc(r))t.register(o,i);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,i,a){let s=t.resolve(o);if(s===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return s(o,i,a),!0}catch(l){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,l),false}}}}var lR=new Set([32768,0]);function Xc(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),a=new Map,s=new Map,l=new Map,f=new Set,I=new Map;function C(A){return A!==e.getSelfId()}function k(A){let b=A.body.system?.eventType;return A.contentType==="voice"||A.contentType==="video"?false:!(A.conversationType==="direct"&&(b==="direct_contact_established"||b==="direct_contact_required"||b==="direct_message_refused"))}function N(A,b){if(b!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b)?.sortKey}function R(A,b){let F=N(A,l.get(A)??""),L=new Set;for(let W of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:A}))k(W)&&C(W.senderId)&&kn(W.id)&&W.sortKey<=b&&(F===void 0||W.sortKey>F)&&L.add(W.id);for(let W of I.get(A)??[]){let ie=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},W);ie!==void 0&&C(ie.senderId)&&kn(ie.id)&&(ie.contentType==="voice"||ie.contentType==="video")&&L.add(ie.id);}return [...L].sort((W,ie)=>{let Te=N(A,W)??"",re=N(A,ie)??"";return Te<re?-1:Te>re?1:0})}function U(A){let b=s.get(A);b!==void 0&&(clearTimeout(b.timer),s.delete(A));}function _(A){let b=a.get(A);b!==void 0&&(clearTimeout(b),a.delete(A)),U(A),I.delete(A);let F=e.domainState.getReadState(A)?.readCursor??"";F!==""&&l.set(A,F);}function E(A,b){let F=s.get(A);if(F!==void 0){if(clearTimeout(F.timer),F.attempts<o&&e.isAuthenticated()){F.attempts+=1,e.sendFrame(F.frame),F.timer=setTimeout(()=>E(A,"timeout"),r);return}s.delete(A),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${b}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function T(A){let b=e.domainState.getReadState(A)?.readCursor??"";if(b==="")return;let F=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b);if(F===void 0||s.has(A))return;let L=R(A,F.sortKey);if(L.length===0){l.set(A,b);return}if(!e.isAuthenticated())return;let W=e.canSendReadReceipt?.(A);if(W===false){l.set(A,b);return}if(W===void 0&&e.canSendReadReceipt!==void 0)return;let ie=L.slice(0,i),Te=I.get(A),re=ie.filter(K=>Te?.has(K)===true),pe=L.length<=i?b:ie[ie.length-1],H=Tn(),J;try{J=X({command:4103,body:kr.encode(kr.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(A),sMsgId:H,readResults:ie.map(K=>({sMsgId:be(K),errcode:0})),readReceiptOff:0}))});}catch(K){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:K}});return}e.sendFrame(J),e.logger?.("read-report",{conversationId:A,notifyId:H,count:ie.length,remaining:L.length-ie.length}),s.set(A,{conversationId:A,cursor:pe,notifyId:H,frame:J,explicitMediaIds:re,attempts:1,timer:setTimeout(()=>E(A,"timeout"),r)});}return {report(A){f.add(A);let b=a.get(A);if(b!==void 0&&clearTimeout(b),e.canSendReadReceipt?.(A)===false){_(A);return}a.set(A,setTimeout(()=>{a.delete(A),T(A);},t));},reportConsumedMedia(A,b){let F=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},b);if(F===void 0||!C(F.senderId)||F.contentType!=="voice"&&F.contentType!=="video"||(f.add(A),e.canSendReadReceipt?.(A)===false))return;let L=I.get(A);L===void 0&&(L=new Set,I.set(A,L)),L.add(b),e.isAuthenticated()&&T(A);},onReadAck({notifyId:A,errcode:b}){let F;for(let L of s.values())if(L.notifyId===A){F=L;break}if(F!==void 0)if(e.logger?.("read-report-ack",{conversationId:F.conversationId,notifyId:A,errcode:b}),lR.has(b)){clearTimeout(F.timer),s.delete(F.conversationId),l.set(F.conversationId,F.cursor);let L=I.get(F.conversationId);for(let W of F.explicitMediaIds)L?.delete(W);L?.size===0&&I.delete(F.conversationId),T(F.conversationId);}else E(F.conversationId,"rejected");},onAuthenticated(){for(let A of f)T(A);},suppress(A){if(A!==void 0){_(A);return}let b=new Set([...f,...a.keys(),...s.keys()]);for(let F of b)_(F);},resume(A){if(!f.has(A))return;let b=a.get(A);b!==void 0&&clearTimeout(b),a.set(A,setTimeout(()=>{a.delete(A),T(A);},t));},reset(){for(let A of a.values())clearTimeout(A);a.clear();for(let A of [...s.keys()])U(A);}}}function yp(e,n){let t=Math.min(n.maxDelayMs,n.baseDelayMs*2**e);return n.jitter?Math.round(t/2+Math.random()*(t/2)):t}function Ip(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,a,s=false,l=0;function f(){a!==void 0&&(clearTimeout(a),a=void 0);}function I(){i!==void 0&&(clearInterval(i),i=void 0),f(),s=false,l=0;}function C(){if(l>=r){I(),e.onUnhealthy();return}e.sendPing(),l+=1;}return {start(){i===void 0&&(l=0,i=setInterval(C,t));},stop:I,onAck(){f(),s=false,l=0;},probe(){i!==void 0&&(s||(s=true,e.sendPing(),l=1,clearInterval(i),i=setInterval(C,t),o!==void 0&&(a=setTimeout(()=>{a=void 0,I(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return l}}}function uR(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function gR(e,n){if(e.length===0)return n;let t=new Uint8Array(e.length+n.length);return t.set(e,0),t.set(n,e.length),t}function mR(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function fR(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,a=n.heartbeatIntervalMs??1e4,s=n.heartbeatMaxMissed??3,l=n.foregroundProbeTimeoutMs??5e3,f=n.loginTimeoutMs??n.readTimeoutMs??3e4,I={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},C="idle",k=true,N=0,R,U=false,_=new Uint8Array(0),E=false,T=0,A="";function b(v){C!==v&&(e.logger?.("connection:state-transition",{from:C,to:v,selfId:A}),C=v,i.emit({type:"connection:changed",state:v}));}function F(v){i.emit({type:"error",error:v});}function L(v,Z){let Y=T;v?.catch(se=>{Y===T&&F({scope:"unknown",message:Z,cause:se});});}function W(v){t.send(uR(v)).catch(Z=>{F({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:Z});});}let ie=Ip({sendPing:()=>W(X({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:C,selfId:A}),F({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),G();}},{intervalMs:a,maxMissed:s,probeTimeoutMs:l}),Te=dp({authProvider:r,sendFrame:W,logger:e.logger},{timeoutMs:f}),re=e.sendStrategies??Fo(),me=e.domainState?Yc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",sendStrategies:re,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(v,Z)=>F({scope:"storage",message:v,cause:Z}),onUpdated:v=>e.emitter.emit({type:"outbox:updated",conversation:v.conversation,item:v})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,pe=e.domainState?Xc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,H=e.domainState?xc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",emitter:i,logger:e.logger}):void 0,J=e.domainState?Pc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",strategies:e.recallStrategies}):void 0,K=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?wc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,isAuthenticated:()=>C==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,he=e.domainState!==void 0&&J!==void 0?Vc({domainState:e.domainState,sendFrame:W,getSelfId:()=>A,onRecallAck:J.onRecallAck,onChannelMessageDeletionAck:v=>K?.onDeleteAck(v),logger:e.logger}):[],fe=e.domainState?gc({getSelfId:()=>A,sendFrame:W,isAuthenticated:()=>C==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,Me=e.domainState!==void 0&&fe!==void 0?Rc({onEditAck:fe.onEditAck}):[],ue=e.domainState!==void 0&&me!==void 0&&e.media!==void 0?kc({getSelfId:()=>A,domainState:e.domainState,outbox:me,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,onMediaAlbumContentSize:e.media.onAlbumContentSize,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads,recoveryPort:e.media.recoveryPort,shouldPersistUpload:e.media.shouldPersistUpload,waitUntilOnline:e.media.waitUntilOnline,isOnline:e.isOnline}):void 0;function ve(v,Z){return ue===void 0?Promise.reject(new Error(`${v} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):A===""?Promise.reject(new Error(`${v} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):Z(ue)}function V(v,Z,Y,se){let Be=e.domainState?.getConversationMessage({conversationId:Y.conversationId,conversationType:Y.conversationType},Z);if(Be===void 0||Be.conversationId!==Y.conversationId||Be.conversationType!==Y.conversationType||Be.contentType!==se&&!(se==="file"&&Be.contentType==="filesAlbum"&&Be.body.filesAlbum?.items.length===1)||Be.status!=="failed"||Be.recalled!==void 0||Be.deletedForEveryone!==void 0||Be.senderId!==A||!(Be.failure?.displayCode==="media.uploadInterrupted"||Be.failure?.displayCode==="media.cancelled"||Be.failure?.displayCode==="media.uploadTimeout"&&Be.failure.retryable===false))throw new Error(`${v} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u6E90\u6587\u4EF6\u5DF2\u91CA\u653E\u7684${se==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Be}let P=e.domainState&&me?pp({domainState:e.domainState,outbox:me,onReadAck:pe?.onReadAck,onSyncReadAck:H?.onAck,onSyncReadDeliver:H?.onDeliver,sendFrame:W,getSelfId:()=>A,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...he,...Me]}):void 0;function y(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function d(){R!==void 0&&(clearTimeout(R),R=void 0);}function u(v){return v!==null&&v.userId.trim()!==""&&v.token.trim()!==""}async function g(){try{return u(await r.getLoginContext())?"available":"missing"}catch(v){return F({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:v}),"unavailable"}}function h(v,Z){F({scope:"transport",message:v,cause:Z}),ie.stop(),b("disconnected");}function S(){if(R!==void 0)return;let v=yp(N,I);N+=1,R=setTimeout(()=>{R=void 0,de();},v);}function G(){if(C==="reconnecting"||C==="suspended")return;let v=++T;ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),b("reconnecting"),y(),g().then(Z=>{if(!(C!=="reconnecting"||v!==T)){if(Z==="missing"){O({code:0,reason:"token_expired"});return}S();}});}function D(v="offline"){let Z=C==="idle"||C==="disconnected"||C==="disconnecting";if(v==="offline"&&(Z||C==="suspended")){L(ue?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25");return}d(),T+=1,v==="offline"&&L(ue?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),ie.stop(),Te.cancel(),v==="session-ended"&&ue?.cancelAll("session-ended"),me?.reset({discardInFlight:v==="session-ended"}),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),Z||b("suspended"),y();}function j(){if(!(C!=="suspended"||!k)){if(e.isOnline?.()===false){b("offline");return}N=0,de();}}function O(v){C==="idle"||C==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:v.reason,code:`0x${v.code.toString(16)}`,stateBefore:C,selfId:A}),d(),T+=1,ie.stop(),Te.cancel(),b("disconnected"),y(),ue?.cancelAll("session-ended"),me?.reset({discardInFlight:true}),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),i.emit({type:"auth:invalid",issue:v}),Promise.resolve().then(()=>r.onAuthInvalid?.(v)).catch(Z=>F({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:Z})));}function z(v){switch(v.type){case "success":N=0,E=false,v.selfId&&(A=v.selfId),b("authenticated"),ie.start(),me?.onAuthenticated(),L(ue?.resumePaused(),"\u7F51\u7EDC\u6062\u590D\u540E\u7EE7\u7EED\u4E0A\u4F20\u5931\u8D25"),pe?.onAuthenticated(),H?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(v.issue.reason==="token_expired"&&v.issue.code!==0&&!E){E=true,F({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),G();return}O(v.issue);break;case "retry":F(v.error),G();break;}}async function Re(){let v=await Te.login();v.type!=="canceled"&&C==="authenticating"&&z(v);}async function de(){if(!k){d(),b("suspended");return}if(e.isOnline?.()===false){d(),ie.stop(),L(ue?.pauseAll("offline"),"\u79BB\u7EBF\u63A2\u9488\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),b("offline");return}let v=++T;b("connecting"),U=false,_=new Uint8Array(0);let Z=await g();if(v!==T)return;if(Z==="missing"){O({code:0,reason:"token_expired"});return}if(Z==="unavailable"){G();return}let Y;try{Y=await o.getEndpoints();}catch(Be){if(v!==T)return;h("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Be);return}if(v!==T)return;let se=Y[0];if(se===void 0){h("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!mR(se.url)){h(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${se.url}`);return}try{await t.connect([se]);}catch(Be){if(v!==T)return;F({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Be}),G();return}v!==T&&y();}function Oe(v,Z,Y){switch(v){case 258:Te.onLoginAck(Z);break;case 2:ie.onAck();break;case 264:if(e.logger!==void 0)try{let se=hd.decode(Z);e.logger("connection:kickout-received",{kickedUserId:String(se.sUserId),selfId:A,matchesSelf:String(se.sUserId)===A,entryIp:se.ip,entryPort:se.port,stateBefore:C});}catch(se){e.logger("connection:kickout-decode-failed",{message:se?.message,stateBefore:C});}O({code:33040,reason:"kicked"});break;default:P?.route(v,Z,{msgSeq:Y});break}}function Pe(){return C==="authenticating"||C==="authenticated"}function ee(v){if(!Pe())return;let Z=T;_=gR(_,new Uint8Array(v));let Y;try{let se=Gd(_);Y=se.frames,_=se.remainder;}catch(se){F({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:se}),G();return}for(let se of Y){if(!Pe()||Z!==T)return;Oe(se.header.command,se.body,se.header.msgSeq);}}return t.on("open",()=>{C==="connecting"&&(b("authenticating"),Re());}),t.on("message",({data:v})=>ee(v)),t.on("error",({error:v})=>{F({scope:"transport",message:"transport \u9519\u8BEF",cause:v});}),t.on("close",({code:v,reason:Z,wasClean:Y})=>{if(ie.stop(),e.logger?.("connection:transport-closed",{code:v,reason:Z,wasClean:Y,stateBefore:C,intentionalClose:U,nextPath:U||C==="disconnecting"?"disconnected":C==="idle"||C==="disconnected"||C==="reconnecting"||C==="suspended"||C==="offline"?"ignored":"reconnect"}),U||C==="disconnecting"){U=false,b("disconnected");return}C==="idle"||C==="disconnected"||C==="reconnecting"||C==="suspended"||C==="offline"||G();}),{get state(){return C},setConnectionAllowed(v){k!==v&&(k=v,v||D("session-ended"));},async connect(){C==="connecting"||C==="authenticating"||C==="authenticated"||(d(),N=0,await de());},disconnect(){if(d(),T+=1,ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),U=true,C==="idle"||C==="disconnected"){b("disconnected");return}b("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&b("disconnected");},notifyOnline(){if(C==="offline"){N=0,de();return}C==="reconnecting"&&(d(),de());},notifyOffline(){L(ue?.pauseAll("offline"),"\u7F51\u7EDC\u79BB\u7EBF\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),!(C==="idle"||C==="disconnected"||C==="disconnecting"||C==="suspended"||C==="offline")&&(d(),T+=1,ie.stop(),Te.cancel(),me?.reset(),pe?.reset(),J?.reset(),K?.reset(),fe?.reset(),b("offline"),y());},notifyVisible(){if(C==="suspended"){j();return}if(C==="offline"&&e.isOnline?.()===true){N=0,de();return}if(C==="reconnecting"){d(),de();return}if(C==="authenticated"){let v=T;g().then(Z=>{if(!(C!=="authenticated"||v!==T)){if(Z==="missing"){O({code:0,reason:"token_expired"});return}ie.probe();}});}},suspendForPageLifecycle:D,resumeFromPageLifecycle:j,suppressDirectReadReceipts(v){pe?.suppress(v);},resumeDirectReadReceipts(v){pe?.resume(v);},reportDirectMediaConsumed(v,Z){pe?.reportConsumedMedia(v,Z),H?.reportConsumedMedia?.(v,Z);},sendText(v){if(me===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendText \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return me.enqueueText(v)},sendContact(v){if(me===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendContact \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return me.enqueueContact(v)},forwardMessages(v){if(me===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let Z=e.domainState;if(Z===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("forwardMessages \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Mc({outbox:me,sendStrategies:re,resolveCurrentMessage:Y=>Z.getConversationMessage(Y,Y.id)},v)},recallMessage(v){return J===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):J.recall(v)},deleteChannelMessageForEveryone(v){return K===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):K.deleteForEveryone(v)},editMessage(v){return fe===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):fe.edit(v)},sendImage(v){return ve("sendImage",Z=>Z.sendImage(v))},sendVideo(v){return ve("sendVideo",Z=>Z.sendVideo(v))},sendVoice(v){return ve("sendVoice",Z=>Z.sendVoice(v))},sendFile(v){return ve("sendFile",Z=>Z.sendFile(v))},sendGif(v){return ve("sendGif",Z=>Z.sendGif(v))},sendMediaAlbum(v){return ve("sendMediaAlbum",Z=>Z.sendMediaAlbum(v))},sendExpression(v){if(me===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendExpression \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return up({outbox:me},v)},sendGame(v){if(me===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendGame \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return mp({outbox:me,randomUint32:e.randomUint32},v)},sendMiniProgram(v){if(me===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendMiniProgram \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Vf({outbox:me},v)},sendTransfer(v){if(me===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendTransfer \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return tp({outbox:me},v)},sendGift(v){if(me===void 0)throw new Error("sendGift \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(A==="")throw new Error("sendGift \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Gf({outbox:me},v)},replaceInterruptedVideo(v,Z){return ve("replaceInterruptedVideo",Y=>{let se=V("replaceInterruptedVideo",v,Z,"video");return Y.replaceVideo(v,se.createdAt,{...Z,...Z.caption===void 0&&se.body.video?.describe!==void 0?{caption:se.body.video.describe}:{},...Z.refMessageId===void 0&&se.refMessageId!==void 0?{refMessageId:se.refMessageId}:{}})})},replaceInterruptedFile(v,Z){return ve("replaceInterruptedFile",Y=>{let se=V("replaceInterruptedFile",v,Z,"file");return Y.replaceFile(v,se.createdAt,{...Z,...se.contentType==="filesAlbum"?{filesAlbum:true,caption:se.body.filesAlbum?.caption}:{},...Z.refMessageId===void 0&&se.refMessageId!==void 0?{refMessageId:se.refMessageId}:{}})})},cancelMedia(v){ue?.cancel(v);},cancelMediaUpload(v){return ue?.cancel(v)??false},pauseMediaUpload(v){return ue?.pause(v)??Promise.resolve(false)},resumeMediaUpload(v){return ue?.resume(v)??false},resumePausedMediaUploads(v,Z){return ue?.resumePaused(v,Z)??Promise.resolve()},retryMediaUpload(v,Z){return ue?.retry(v,Z)??false},invalidateMediaAssetCacheWrites(){ue?.invalidateAssetCacheWrites();},async disposeMediaTasks(v){await ue?.dispose(v);},recoverMediaUpload(v,Z,Y){return ue===void 0?Promise.reject(new Error("IM_MEDIA_RECOVERY_UNAVAILABLE")):ve("recoverMediaUpload",se=>se.recoverUpload(v,Z,Y))},retryMessage(v){ue?.retry(v)!==true&&me?.retry(v);},retryOutboxMessage(v){return me?.retry(v)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(v){return me?.cancel(v)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(v,Z){me?.markConversationTerminated(v,Z);},clearOutboxConversationTerminated(v){me?.clearConversationTerminated(v);},terminateConversationSending(v,Z){ue?.cancelConversation(v),me?.markConversationTerminated(v,Z);},markRead(v,Z,Y){if(e.domainState===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let se=Y??e.domainState.getSession(v)?.type;if(se===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${v}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(se==="direct"){if(pe===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(v,Z),pe.report(v),H?.report(v);return}let Be=e.readStrategies?.resolve(se);if(Be===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${se}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Be.markRead({conversationId:v,readCursor:Z})},sendFrame(v){W(v);},onChatAck(v){me?.onChatAck(v);},getPendingOutbox(){return me?.getPending()??[]},async hydrateOutbox(v){await me?.hydrate(v);},markOutboxForLogout(v){me?.markForLogout({policy:v});}}}var Cp={error:0,warn:1,info:2,debug:3,trace:4},pR=8,zc=50,qc=100,yR="[REDACTED]",IR="[REDACTED_PRIVATE_KEY]",CR="[SIGNED_URL_REDACTED]",SR=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,AR=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,hR=/(["'])(authorization|cookie|set[_-]?cookie|password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)\1(\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}]+)/gi,RR=/\b(password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)(\s*[:=]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;]+)/gi,MR=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function ER(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function TR(e){let n=ER(e);return n==="authorization"||n==="cookie"||n==="setcookie"||n==="password"||n==="passwd"||n.includes("apikey")||n.includes("accesskey")||n==="token"||n.endsWith("token")||n.includes("secret")||n.includes("privatekey")||n.includes("secretkey")||n.includes("sessionkey")||n.includes("teakey")||n.includes("signature")||n.includes("credential")}function vR(e){try{let n=new URL(e);return n.protocol!=="http:"&&n.protocol!=="https:"?!1:[...n.searchParams.keys()].some(t=>{let r=t.toLowerCase();return r==="signature"||r==="sig"||r==="token"||/^x-(?:amz|goog)-(?:signature|credential|security-token)$/.test(r)})}catch{return false}}function bR(e){return e.replace(SR,n=>vR(n)?CR:n)}function jc(e){return bR(e).replace(MR,IR).replace(AR,"$1$2[REDACTED]").replace(hR,"$1$2$1$3[REDACTED]").replace(RR,"$1$2[REDACTED]")}function NR(e){if(e instanceof ArrayBuffer)return {type:"ArrayBuffer",byteLength:e.byteLength};if(ArrayBuffer.isView(e))return {type:e.constructor.name,byteLength:e.byteLength};if(typeof Blob<"u"&&e instanceof Blob){let n={type:e.constructor.name,byteLength:e.size,mimeType:e.type};return typeof File<"u"&&e instanceof File&&(n.name=e.name,n.lastModified=e.lastModified),n}}function $c(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&TR(i))return yR;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return jc(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=pR)return "[MAX_DEPTH]";let a=NR(r);if(a!==void 0)return a;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let f=r;return {name:f.name,message:jc(f.message),...f.code===void 0?{}:{code:f.code},...f.category===void 0?{}:{category:f.category},...f.retryable===void 0?{}:{retryable:f.retryable},...f.stack===void 0?{}:{stack:jc(f.stack)},...f.data===void 0?{}:{data:t(f.data,o+1,"data")}}}if(typeof r!="object")return String(r);if(n.has(r))return "[CIRCULAR]";if(n.add(r),Array.isArray(r)){let f=r.slice(0,zc).map(I=>t(I,o+1));return r.length>zc&&f.push({omittedItems:r.length-zc}),f}let s=Object.entries(r),l={};for(let[f,I]of s.slice(0,qc))l[f]=t(I,o+1,f);return s.length>qc&&(l.omittedKeys=s.length-qc),l}return t(e,0)}function _R(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function a(l,f){return e.enabled&&o!==void 0&&Cp[l]<=Cp[e.level]&&n.has(f)}function s(l){if(i||e.fallbackSink===void 0)return;i=true;let f={message:"diagnostic-sink-failed"};try{f={message:"diagnostic-sink-failed",data:$c(l)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:f}));}catch{}}return {isEnabled:a,record(l,f,I,C,k){if(!a(l,I))return;let N;try{N={...e.getRuntimeContext?.(),...k?.()};}catch(E){N={error:{message:"diagnostic-payload-factory-failed",data:E}};}let R;try{R=t();}catch{R=Date.now();}let U=++r,_;try{_=$c({timestamp:R,sequence:U,level:l,layer:f,category:I,event:C,...N});}catch{_={timestamp:R,sequence:U,level:l,layer:f,category:I,event:C,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(_));}catch(E){o=void 0,s(E);}}}}function DR(e){return (n,t)=>{let r=n.includes("crypto")?"crypto":n.includes("sync")?"sync":n.includes("read")?"message":n.includes("outbox")?"outbox":n.includes("chat")||n.includes("message")||n.includes("deliver")?"message":"protocol";e.record("trace","core",r,n,()=>({data:t}));}}function GR(){let e=new Set;function n(t){for(let r of [...e])try{r(t);}catch(o){t.type!=="error"&&n({type:"error",error:{scope:"unknown",message:"\u4E8B\u4EF6\u8BA2\u9605\u8005\u56DE\u8C03\u5F02\u5E38",cause:o}});}}return {emit:n,subscribe(t){return e.add(t),()=>{e.delete(t);}},clear(){e.clear();}}}function Sp(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let a=t.get(i);if(a!==void 0)return clearTimeout(a.timer),t.delete(i),a}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,a){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((s,l)=>{let f=setTimeout(()=>{t.delete(i),l(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${a??n}ms \u65E0\u54CD\u5E94`));},a??n);t.set(i,{resolve:s,reject:l,timer:f});})},resolve(i,a){let s=o(i);return s?.resolve(a),s!==void 0},reject(i,a){let s=o(i);return s?.reject(a),s!==void 0},rejectAll(i){for(let a of [...t.values()])clearTimeout(a.timer),a.reject(i);t.clear();},get pendingCount(){return t.size}}}function UR(e){let n=false,t=false,r=false,o,i,a=Sp(),s,l,f={status:"idle"},I=new Set;function C(E){try{E({...f});}catch{e.onListenerError();}}function k(E){f=E;for(let T of [...I])C(T);}function N(){l&&clearTimeout(l.timer),l=void 0;}function R(E,T){N(),r=E!=="server-rejected";let A={status:"error",error:E,requiresReconnect:r,...T===void 0?{}:{serverCode:T}};o=r?A:void 0,k(i?A:{status:"idle"});}function U(){if(t||r||l||!i)return;if(!n){k({status:"pending"});return}if(i.token===s?.token){k(s.snapshot);return}let E=i,T=a.nextSeq(),A=X({command:261,msgSeq:T,body:Mr.encode(Mr.create({sUserId:BigInt(E.userId),nPushType:20,nPushTokenType:0,sPushToken:E.token}))}),b={...E,msgSeq:T,timer:setTimeout(()=>R("timeout"),e.timeoutMs??3e4)};if(l=b,k({status:"syncing"}),!(l!==b||t||!n)){if(!i){N();return}try{e.sendFrame(A);}catch{l===b&&R("send-failed");}}}return {api:{setWebSubscription({userId:E,subscription:T}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(E)||E!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:A,keys:b,expirationTime:F}=T;if(!A||!b?.p256dh||!b.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let L=new URL(A);if(L.protocol!=="https:"||L.username||L.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(F!=null&&(!Number.isFinite(F)||F<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let W=JSON.stringify({endpoint:A,expirationTime:F??null,keys:{p256dh:b.p256dh,auth:b.auth}});i={userId:E,token:W},o?k(o):l&&k({status:"syncing"}),U();},clear(){t||(i=void 0,s=void 0,k({status:"idle"}));},snapshot:()=>({...f}),subscribe(E){return t||I.add(E),C(E),()=>{I.delete(E);}}},commandHandlers:[{command:262,handler(E,T,A){if(!l||!n||t||r||A?.msgSeq!==l.msgSeq)return;let b;try{b=ii.decode(T);}catch{R("invalid-ack");return}let F=b.nErr===0&&(String(b.sUserId)===l.userId||String(b.sUserId)==="0");if(!F&&String(b.sUserId)!==l.userId)return;let L=l;if(N(),!F&&b.nErr!==32768){R("server-rejected",Number(b.nErr));return}if(s={token:L.token,snapshot:F?{status:"unconfirmed",serverCode:Number(b.nErr)}:{status:"synced"}},!i){k({status:"idle"});return}U();}}],setAuthenticated(E){t||n===E||(n=E,N(),s=void 0,r=false,o=void 0,i&&U());},dispose(){t||(t=true,N(),i=void 0,s=void 0,k({status:"disposed"}),I.clear());}}}var kR=200,xR=20;function BR(e){return e instanceof or&&e.status>=500}function wR(e){let n=e.maxBatchesPerEndpoint??kR,t=e.reducedBatchLimit??xR,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function a(l,f){let I=[],C="",k=0,N;async function R(){try{return await l.pullBatch({deliveredMsgInfos:I,...N===void 0?{}:{limit:N}})}catch(U){if(N!==void 0||!BR(U))throw U;return N=t,e.logger?.("sync-batch-reduced",{endpoint:l.endpoint,limit:N,status:U.status}),await l.pullBatch({deliveredMsgInfos:I,limit:N})}}for(let U=1;;U++){if(U>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${l.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let _=await R();if(_.messages.length>0){e.domainState.upsertMessages(_.messages,"offline"),k+=_.messages.length;for(let A of _.messages){let b={conversationType:A.conversationType,conversationId:A.conversationId};f.set(le(b),b);}}let E=_.batchSize>0;if(e.logger?.("sync-batch",{endpoint:l.endpoint,batchNo:U,fetched:_.batchSize,newMessages:_.messages.length,responseBytes:_.responseBytes,endpointTotal:k,hasMore:E}),!E)break;let T=_.deliveredMsgInfos.at(-1)?.msgId??"";if(T!==""&&T===C)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${l.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${T}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);C=T,I=_.deliveredMsgInfos,await r();}return k}async function s(){let l=new Map,f=0;for(let I of e.pullers)f+=await a(I,l);e.logger?.("sync-done",{totalMessages:f,conversations:l.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...l.values()]});}return {async sync(){if(o){i=true;return}o=true;try{do{i=!1;try{await s();}catch(l){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:l}});}}while(i)}finally{o=false;}}}}
|
|
2
|
+
export{aS as $,hh as $a,Os as A,fc as Aa,$I as B,ea as Ba,tm as C,pc as Ca,Co as D,IA as Da,bC as E,Ve as Ea,kC as F,Pn as Fa,cm as G,ht as Ga,xC as H,le as Ha,BC as I,Do as Ia,lm as J,yc as Ja,wC as K,mf as Ka,FC as L,pA as La,PC as M,CA as Ma,VC as N,SA as Na,OC as O,ih as Oa,QC as P,sh as Pa,WC as Q,ah as Qa,JC as R,dh as Ra,YC as S,ch as Sa,XC as T,lh as Ta,zC as U,fh as Ua,qC as V,ph as Va,jC as W,yh as Wa,$C as X,Jf as Xa,eS as Y,Xf as Ya,nS as Z,zf as Za,oS as _,Ch as _a,ap as a,dS as aa,Mh as ab,Jh as b,cS as ba,vh as bb,Se as c,hS as ca,Nh as cb,Ke as d,GS as da,_h as db,go as e,Qo as ea,Dh as eb,GI as f,dy as fa,Gh as fb,UI as g,Ua as ga,Uh as gb,hn as h,St as ha,kh as hb,fo as i,KS as ia,xh as ib,Tn as j,ZS as ja,Bh as jb,Xn as k,At as ka,Fh as kb,zn as l,ly as la,Zc as lb,nn as m,ic as ma,Ph as mb,EA as n,Jm as na,Vh as nb,Ho as o,Ym as oa,np as ob,gt as p,Xm as pa,fR as pb,Pt as q,XS as qa,_R as qb,va as r,zm as ra,DR as rb,Dy as s,lA as sa,GR as sb,Vt as t,$s as ta,UR as tb,_a as u,jm as ua,la as ub,qo as v,mc as va,op as vb,dn as w,or as wa,Lh as wb,Vs as x,Uf as xa,Zh as xb,jI as y,Uo as ya,wR as yb,GA as z,$m as za};
|