Files
im_webapp/umd/index.prod.js
T
Your NameandClaude Sonnet 5 4e8f45d7d8 路由从 hash 换成 History API(pushState/replaceState/popstate),不再依赖 location.hash
HashNavigation 改名 Navigation(src/lib/navigation.js),接口不变,内部改用真实路径:
parseUrlHash/composeUrlHash 改名 parseUrl/composeUrl;navigateTo/navigateReplace 改调
pushState/replaceState 后手动派发 popstate(pushState/replaceState 不会像赋值 location.hash
那样自动触发事件,这里复用 navigateReplace 早就在用的同一个手动 dispatch 手法);goBack()
不用改,history.back() 本来就是真实浏览器历史机制。新增 Navigation.currentUrl() 替代调用方
原本直接读的 window.location.hash(这个类从来没包装过这个读取)。

一处需要专门处理的边界情况:当 path[0] 是空字符串("不选中侧栏视图、只开一个会话"这个仓库里
的合法状态)时,拼出的真实路径开头会变成双斜杠,被浏览器当协议相对地址解析、试图跳到一个叫
会话id的host,pushState 直接抛 SecurityError。composeUrl/parseUrl 内部用占位 token "_" 处理
这种情况,对外的调用方(19个文件)完全无感。

tinode-web.jsx 的 handleHashRoute 改名 handleRouteChange,监听从 hashchange 换成 popstate;
service-worker.js 的推送通知点击跳转手动改写成同样的路径格式(这个文件在打包之外单独执行,
没法 import Navigation)。index.html/index-dev.html 加了 <base href="/">——所有静态资源引用
都是相对路径,hash 路由下页面路径永远是 /,换真实路径后深层地址刷新会按当前目录解析出错误
资源地址导致白屏,这一行是标准修法。nginx.conf 的 try_files 兜底规则本来就适用两种路由,只
更新了注释。

实机验证:地址栏不再有 #;点击会话/设置等各类视图正常跳转;浏览器前进后退和应用内"返回"
按钮都正常;收藏页内部的类型 tab 切换(navigateReplace)确认不产生新的历史记录;在会话页/
个人中心页刷新、直接用完整深层路径打开新标签页都能正确恢复到位,资源正常加载不白屏。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 21:00:39 +08:00

3 lines
978 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*! For license information please see index.prod.js.LICENSE.txt */
!function(){var e,n,t,s,i={3272:function(e,n,t){"use strict";const s="MeetingIM",i=s+"/0.25.3",o={hosted:"web.118im.com",local:"localhost:6060"},a=o.hosted;t.d(n,["C3",0,i,"HX",0,a,"Lq",0,"AQAAAAABAAAoeOI7tA3HsYvdzDhYhZJy","S",0,{type:"patt",index:0,path:"img/bkg/"},"SE",0,o,"Uv",0,"application/json","Yd",0,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=","iv",0,s,"kA",0,["http","https","ftp","ftps"],"qy",0,1<<23])},7981:function(e,n,t){"use strict";t.d(n,{$Z:function(){return p},CO:function(){return d},F8:function(){return x},Pv:function(){return f},QJ:function(){return j},Sk:function(){return u},ae:function(){return r},ag:function(){return c},bB:function(){return h},i:function(){return m},iJ:function(){return g},to:function(){return a}});var s=t(4532);const i=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],o=["jpg","gif","png","svg","svg"];function a(e){if(e&&"object"==typeof e){if(e.ref)return e.ref;if(e.data&&e.type)return"data:"+(e.type.startsWith("image/")?e.type:"image/"+e.type)+";base64,"+e.data}return null}function r(e,n,t,s,i){if(n|=0,t|=0,s|=0,(e|=0)<=0||n<=0||t<=0||s<=0)return null;i&&(t=s=Math.min(t,s));const o=Math.min(Math.min(e,t)/e,Math.min(n,s)/n),a={dstWidth:e*o|0,dstHeight:n*o|0};return i?(a.dstWidth=a.dstHeight=Math.min(a.dstWidth,a.dstHeight),a.srcWidth=a.srcHeight=Math.min(e,n),a.xoffset=(e-a.srcWidth)/2|0,a.yoffset=(n-a.srcWidth)/2|0):(a.xoffset=a.yoffset=0,a.srcWidth=e,a.srcHeight=n),a}function l(e,n){const t=i.indexOf(n);if(t<0||!e)return e;const s=o[t],a=e.lastIndexOf(".");return a>=0&&(e=e.substring(0,a)),e+"."+s}function c(e,n,t,s,o){return new Promise((a,c)=>{const d=new Image;d.crossOrigin="Anonymous",d.onerror=function(e){c(new Error("Image format unrecognized"))},d.onload=async function(){URL.revokeObjectURL(d.src);const h=r(d.width,d.height,n,t,o);if(!h)return void c(new Error("Invalid image"));let u=document.createElement("canvas");u.width=h.dstWidth,u.height=h.dstHeight;let g=u.getContext("2d");g.imageSmoothingEnabled=!0,g.drawImage(d,h.xoffset,h.yoffset,h.srcWidth,h.srcHeight,0,0,h.dstWidth,h.dstHeight);const p=i.includes(e.type)?e.type:"image/jpeg";let m=await new Promise(e=>u.toBlob(e,p));if(m){for(;s>0&&m.length>s;)h.dstWidth=.70710678118*h.dstWidth|0,h.dstHeight=.70710678118*h.dstHeight|0,u.width=h.dstWidth,u.height=h.dstHeight,g=u.getContext("2d"),g.clearRect(0,0,u.width,u.height),g.drawImage(d,h.xoffset,h.yoffset,h.srcWidth,h.srcHeight,0,0,h.dstWidth,h.dstHeight),m=await new Promise(e=>u.toBlob(e,p));u=null,a({mime:p,blob:m,width:h.dstWidth,height:h.dstHeight,name:l(e.name,p)})}else c(new Error("Unsupported image format"))},d.src=URL.createObjectURL(e)})}function d(e,n,t,s,o,a,r){return new Promise((l,c)=>{const d=new Image;d.crossOrigin="Anonymous",d.onerror=e=>{c(new Error("Image format unrecognized"))},d.onload=n=>{URL.revokeObjectURL(d.src);let h=document.createElement("canvas");h.width=o*r,h.height=a*r;let u=h.getContext("2d");u.imageSmoothingEnabled=!0,u.drawImage(d,t,s,o,a,0,0,h.width,h.height),e=i.includes(e)?e:"image/jpeg",h.toBlob(n=>{h=null,n?l({mime:e,blob:n,width:o,height:a}):c(new Error("Unsupported image format"))},e)},d.src=n})}function h(e){return new Promise((n,t)=>{const s=new FileReader;s.onerror=e=>{t(s.error)},s.onload=t=>{n({mime:e.type,bits:s.result.split(",")[1],name:e.name})},s.readAsDataURL(e)})}function u(e){return new Promise((n,t)=>{const s=new FileReader;s.onerror=e=>{t(s.error)},s.onload=t=>{n({mime:e.type,bits:s.result.split(",")[1]})},s.readAsDataURL(e)})}function g(e,n,t,s){const i=(e.clipboardData||e.originalEvent.clipboardData||{}).items;if(!i||!i.length)return!1;for(let e in i){const o=i[e];if("file"===o.kind){const e=o.getAsFile();if(!e){console.error("Failed to get file object from pasted file item",o.kind,o.type),s("Failed to get file object from pasted file item");continue}return e.type&&"image"==e.type.split("/")[0]?n(e):t(e),!0}}return!1}function p(e){if(e){e=e.replace(/-/g,"+").replace(/_/g,"/");try{e=btoa(atob(e))}catch(n){console.error("Failed to base64 re-encode string.",n),e=null}}return e}function m(e,n){if(!e)return null;try{const t=atob(e),s=t.length,i=new ArrayBuffer(s),o=new Uint8Array(i);for(let e=0;e<s;e++)o[e]=t.charCodeAt(e);return new Blob([i],{type:n})}catch(e){console.error("Failed to convert base64 to blob: ",e)}return null}function f(e){if(!Array.isArray(e))return null;try{let n="";return new Uint8Array(e).forEach(e=>n+=String.fromCharCode(e)),window.btoa(n)}catch(e){}return null}function x(e){const n=[];try{return[...window.atob(e)].forEach(e=>{n.push(e.charCodeAt(0))}),n}catch(e){}return null}function j(e){return new Promise((n,t)=>{const i=new FileReader;i.onerror=e=>{t(i.error)},i.onload=e=>{const o=s.TheCard.importVCard(i.result);o?n(o):t(new Error("Failed to parse vCard"))},i.readAsText(e)})}},2067:function(e,n,t){"use strict";t.d(n,{e3:function(){return C},TU:function(){return S},NV:function(){return q}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(8492),l=t(7256),c=t(4848);class d extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),n="material-icons medium "+(e?"red":"green"),t=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made",s=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"calls_incoming",defaultMessage:"Incoming call",description:"Incoming call label"}):(0,c.jsx)(o.FormattedMessage,{id:"calls_outgoing",defaultMessage:"Outgoing call",description:"Outgoing call label"});let i;if(e)switch(this.props.callState){case"busy":i=(0,c.jsx)(o.FormattedMessage,{id:"call_busy",defaultMessage:"busy",description:"Label for busy call line"});break;case"declined":i=(0,c.jsx)(o.FormattedMessage,{id:"call_declined",defaultMessage:"declined",description:"Label for declined call"});break;case"missed":i=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"call_missed",defaultMessage:"missed",description:"Label for missed incoming call"}):(0,c.jsx)(o.FormattedMessage,{id:"call_cancelled",defaultMessage:"cancelled",description:"Label for cancelled outgoing call"});break;default:i=(0,c.jsx)(o.FormattedMessage,{id:"call_disconnected",defaultMessage:"disconnected",description:"Label for disconnected call"})}else i=["accepted","started"].includes(this.props.callState)&&!this.props.duration?(0,c.jsx)(o.FormattedMessage,{id:"call_in_progress",defaultMessage:"in progress",description:"Label for call in progress"}):(0,c.jsx)("span",{children:(0,l.Ye)(this.props.duration/1e3)});return(0,c.jsxs)("div",{className:"call-message",children:[(0,c.jsx)("div",{children:(0,c.jsx)("i",{className:"material-icons big gray",children:"call"})}),(0,c.jsxs)("div",{className:"flex-column narrow",children:[(0,c.jsx)("div",{children:s}),(0,c.jsxs)("div",{className:"duration",children:[(0,c.jsx)("i",{className:n,children:t})," ",i]})]})]})}}class h extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),n=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made";let t;if(e)switch(this.props.callState){case"busy":t=(0,c.jsx)(o.FormattedMessage,{id:"call_busy",defaultMessage:"busy",description:"Label for busy call line"});break;case"declined":t=(0,c.jsx)(o.FormattedMessage,{id:"call_declined",defaultMessage:"declined",description:"Label for declined call"});break;case"missed":t=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"call_missed",defaultMessage:"missed",description:"Label for missed incoming call"}):(0,c.jsx)(o.FormattedMessage,{id:"call_cancelled",defaultMessage:"cancelled",description:"Label for cancelled outgoing call"});break;default:t=(0,c.jsx)(o.FormattedMessage,{id:"call_disconnected",defaultMessage:"disconnected",description:"Label for disconnected call"})}else t=["accepted","started"].includes(this.props.callState)&&!this.props.duration?(0,c.jsx)(o.FormattedMessage,{id:"call_in_progress",defaultMessage:"in progress",description:"Label for call in progress"}):(0,c.jsx)("span",{children:(0,l.Ye)(this.props.duration/1e3)});return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"composed-material",children:[(0,c.jsx)("i",{className:"material-icons",children:"call"}),(0,c.jsx)("i",{className:"material-icons second",children:n})]})," ",t]})}}class u extends i().PureComponent{constructor(e){super(e),this.videoRef=i().createRef(),this.handleClick=this.handleClick.bind(this)}handleClick(e){this.props.onClick&&this.props.onClick(e)}render(){const e=(0,l.Ye)(this.props["data-duration"]/1e3),n="inline-video"+(this.props.onClick?" image-clickable":"");return(0,c.jsxs)("div",{className:n,children:[i().createElement("img",this.props),(0,c.jsx)("div",{className:"play-control",children:this.props.onClick?(0,c.jsx)("i",{className:"material-icons white x-big",children:"play_arrow"}):(0,c.jsx)("img",{src:"img/broken_video.png",style:{filter:"invert(100%)"},width:"36",height:"36"})}),e?(0,c.jsx)("div",{className:"duration",children:e}):null]})}}class g extends i().PureComponent{constructor(e){super(e),this.state={src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:Object.assign({padding:"4px"},this.props.style),className:this.props.className,alt:this.props.alt,onClick:this.props.onClick}}componentDidMount(){this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"}))}componentWillUnmount(){this.props.whenDone.cancel()}componentDidUpdate(e){e.whenDone!=this.props.whenDone&&(this.setState({src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:{...this.state.style,padding:"4px"}}),this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"})))}render(){return i().createElement("img",this.state)}}var p=t(5247);const m=(0,o.defineMessages)({unknown_name:{id:"unknown_name",defaultMessage:"Unknown",description:"Name to show when the name is missing"}});class f extends i().PureComponent{constructor(e){super(e),this.handleDownload=this.handleDownload.bind(this),this.handleMessage=this.handleMessage.bind(this)}handleDownload(e){e.preventDefault();try{const e=a.TheCard.exportVCard(this.props.content),n=new Blob([e],{type:"text/vcard"}),t=URL.createObjectURL(n),s=document.createElement("a");s.style.display="none",s.href=t,s.download=(this.props.content.fn||"contact")+".vcf",document.body.appendChild(s),s.click(),window.URL.revokeObjectURL(t),document.body.removeChild(s)}catch(e){console.error("Failed to download vcard",e),this.props.onError&&this.props.onError("Failed to download vcard","err")}}handleMessage(e){}render(){const e=this.props.content;if(!e)return null;const n=a.TheCard.getFirstTinodeID(e),t=a.TheCard.getEmails(e).concat(a.TheCard.getPhones(e)),s=a.TheCard.getOrg(e);return(0,c.jsxs)("div",{className:"contact-card",children:[(0,c.jsxs)("div",{className:"contact-body",children:[(0,c.jsx)("div",{className:"avatar-box",children:(0,c.jsx)(p.A,{authorizeURL:this.props.authorizeURL,topic:n||"usr123XXX",avatar:a.TheCard.getPhotoUrl(e)||!0,title:e.fn})}),(0,c.jsxs)("div",{className:"name-box",children:[(0,c.jsx)("div",{className:"name",children:e.fn||(0,c.jsx)(o.FormattedMessage,{...m.unknown_name})}),s&&(0,c.jsx)("div",{className:"org",children:s})]})]}),(0,c.jsxs)("div",{className:"contact-actions",children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("a",{className:"flat-button","data-val":n,onClick:this.props.onChatClick,children:(0,c.jsx)(o.FormattedMessage,{id:"chat_now",defaultMessage:"Chat",description:"Label for message button in contact card"})}),(0,c.jsx)("div",{className:"divider"})]}):t.length>0?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("a",{className:"flat-button","data-val":t.join(","),onClick:this.props.onFindClick,children:(0,c.jsx)(o.FormattedMessage,{id:"find_user",defaultMessage:"Find",description:"Label for search button in contact card"})}),(0,c.jsx)("div",{className:"divider"})]}):null,(0,c.jsx)("a",{className:"flat-button",onClick:this.handleDownload,children:(0,c.jsx)(o.FormattedMessage,{id:"save_action",defaultMessage:"Save",description:"Label for Save button"})})]})]})}}var x=(0,o.injectIntl)(f),j=t(4752);class b extends i().PureComponent{constructor(e){super(e)}render(){return(0,c.jsxs)("div",{className:"inline-image",children:[i().createElement("img",this.props),(0,c.jsx)("div",{className:"rounded-container",children:(0,c.jsx)(j.A,{progress:this.props.progress,onCancel:this.props.onCancelUpload})})]})}}var y=t(3272),w=t(7981),v=t(7849);const k=(0,o.defineMessages)({drafty_form:{id:"drafty_form",defaultMessage:"Form: ",description:"Comment for form in Drafty"},drafty_attachment:{id:"drafty_attachment",defaultMessage:"Attachment",description:"Comment for attachment in Drafty"},drafty_image:{id:"drafty_image",defaultMessage:"Picture",description:"Comment for embedded images in Drafty"},drafty_video:{id:"drafty_video",defaultMessage:"Video recording",description:"Comment for videos embedded in Drafty"},drafty_unknown:{id:"drafty_unknown",defaultMessage:"Unsupported",description:"Unsupported entity in drafty"}});function C(e,n,t,s,o){if(o.includes("QQ"))return B.call(this,e,n,t,s);if(!e)return t;let c=a.Drafty.tagName(e),h=a.Drafty.attrValue(e,n)||{};switch(h.key=s,e){case"AU":h.src&&(h.src=this.authorizeURL((0,v.wk)(h.src,"audio")),h.duration=n.duration>0?0|n.duration:void 0,h.preview=n.preview,h.loading="lazy",h.onPlay=this.onVoicePlayed),c=r.A,t=null;break;case"BR":t=null;break;case"EX":case"RW":break;case"HL":h.className="highlight";break;case"HD":c=null,t=null;break;case"IM":c=z.call(this,c,n,h),t=null;break;case"BN":h.onClick=e=>this.onHandleClick(e,"form_button");let e=i().Children.map(t,e=>"string"==typeof e?e:void 0);e&&0!=e.length||(e=[h.name]),h["data-title"]=e.join("");break;case"LN":h&&(h.href="string"==typeof h.href?(0,v.Jf)(h.href,y.kA):"");break;case"MN":h.className="mention",n&&(h.className+=" "+(0,l.kJ)(n.val,!1,!0));break;case"FM":h.className="bot-form";break;case"QQ":h.className="reply-quote",h.onClick=e=>this.onHandleClick(e,"quote");break;case"TC":c=x,h.content=n,h.authorizeURL=this.authorizeURL,h.onChatClick=e=>this.onHandleClick(e,"contact_chat"),h.onFindClick=e=>this.onHandleClick(e,"contact_find"),t=null;break;case"VC":c=d,t=null,n&&(h.callState=n.state,h.incoming=n.incoming,h.duration=n.duration);break;case"VD":c=_.call(this,c,n,h),t=null;break;default:if(!c){c=i().Fragment,h={key:s};let e=t;Array.isArray(t)&&t.join("").trim()||(e=[i().createElement("span",{key:"x1",className:"gray"},this.formatMessage(k.drafty_unknown))]),t=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," "].concat(e)}}return c?i().createElement(c,h,t):t}function z(e,n,t){if(!n)return t.src="img/broken_image.png",t.style={width:"36px",height:"36px"},e;t.className="inline-image";const s=(0,w.ae)(n.width,n.height,this.viewportWidth>0?Math.min(this.viewportWidth-84.5,448.5):448.5,312,!1)||{dstWidth:32,dstHeight:32};return t.style={width:s.dstWidth+"px",height:s.dstHeight+"px",minWidth:s.dstWidth+"px",minHeight:s.dstHeight+"px"},a.Drafty.isProcessing(n)?e=b:(t.src=this.authorizeURL((0,v.wk)(t.src,"image")),t.alt=n.name,t.src?(Math.max(n.width||0,n.height||0)>36&&(t.onClick=e=>this.onHandleClick(e,"image"),t.className+=" image-clickable"),t.loading="lazy"):t.src=null),e}function _(e,n,t){if(!n)return t.src="img/broken_video.png",t.style={width:"36px",height:"36px"},e;t.className="inline-image";const s=(0,w.ae)(n.width,n.height,this.viewportWidth>0?Math.min(this.viewportWidth-84.5,448.5):448.5,312,!1)||{dstWidth:128,dstHeight:128};return t.style={width:s.dstWidth+"px",height:s.dstHeight+"px",minWidth:s.dstWidth+"px",minHeight:s.dstHeight+"px"},a.Drafty.isProcessing(n)?e=b:(t.src=this.authorizeURL((0,v.wk)(t.src,"image")),t.alt=n.name,(n.ref||n.val)&&(t.onClick=e=>this.onHandleClick(e,"video"),t.loading="lazy"),e=u),e}function S(e,n,t,s){if(!e)return t;let o=a.Drafty.tagName(e);const r={key:s};switch(e){case"AU":o=i().Fragment,t=[i().createElement("i",{key:"au",className:"material-icons"},"mic")," ",(0,l.Ye)(n.duration/1e3)];break;case"BR":o=i().Fragment,t=[" "];break;case"HL":r.className="highlight preview";break;case"LN":case"MN":o="span";break;case"IM":o=i().Fragment,t=[i().createElement("i",{key:"im",className:"material-icons"},"photo")," ",this.formatMessage(k.drafty_image)];break;case"BN":o="span",r.className="flat-button faux";break;case"FM":o=i().Fragment,t=[i().createElement("i",{key:"fm",className:"material-icons"},"dashboard"),this.formatMessage(k.drafty_form)].concat(" ",t||[]);break;case"RW":o=i().Fragment;break;case"EX":if(n){if(a.Drafty.isFormResponseType(n.mime))return null;delete n.val,delete n.ref}o=i().Fragment,t=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment")," ",this.formatMessage(k.drafty_attachment)];break;case"VC":o=h,n&&(r.callState=n.state,r.incoming=n.incoming,r.duration=n.duration),t=null;break;case"QQ":case"HD":o=null,t=null;break;case"TC":o=i().Fragment,t=[i().createElement("i",{key:"tc",className:"material-icons"},"contact_mail")," ",a.TheCard.getFn(n)||this.formatMessage(k.drafty_unknown)];break;case"VD":o=i().Fragment,t=[i().createElement("i",{key:"im",className:"material-icons"},"play_circle_outline")," ",this.formatMessage(k.drafty_video)];break;default:o||(o=i().Fragment,t=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," ",this.formatMessage(k.drafty_unknown)])}return o?i().createElement(o,r,t):t}function N(e,n){return e.style={width:"36px",height:"36px",maxWidth:"36px",maxHeight:"36px"},e.className="inline-image",e.alt=this.formatMessage(k.drafty_image),e.src=n&&e.src||"img/broken_image.png",e.title=e.alt,e}function T(e,n){const t=(0,w.ae)(n.width,n.height,48,36);return e.style={width:t.width+"px",height:t.height+"px",maxWidth:"48px",maxHeight:"36px"},e.className="inline-image",e.alt=this.formatMessage(k.drafty_video),e.title=e.alt,e.src=n&&e.src||"img/broken_video.png",e}function B(e,n,t,s){if(["BR","EX","IM","MN","VD"].includes(e)){let o=a.Drafty.tagName(e),r=a.Drafty.attrValue(e,n)||{};switch(r.key=s,e){case"BR":t=null;break;case"IM":r=N.call(this,r,n),t=[i().createElement("img",r,null)," ",r.alt],o=i().Fragment,r={key:s};break;case"VD":r=T.call(this,r,n),t=[i().createElement("img",r,null)," ",r.alt],o=i().Fragment,r={key:s};break;case"MN":o="span",r.className="mention",n&&(r.className+=" "+(0,l.kJ)(n.val,!1,!0));break;case"EX":let e;if(n){if(a.Drafty.isFormResponseType(n.mime))return null;e=n.name,delete n.val,delete n.ref}o=i().Fragment,t=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment"),(0,l.Tu)(e,16)||this.formatMessage(k.drafty_attachment)]}return i().createElement(o,r,t)}return S.call(this,e,n,t,s)}function P(e,n){let t,s,i,o;if(n?(s=e.preview,o=e.premime||"image/jpeg",i=e.preref):(s=e.val,o=e.mime,i=e.ref),s){const e=(0,w.i)(s,o);if(!e)throw new Error("Invalid image");t=Promise.resolve(e)}else{if(!i)throw new Error("Missing image data");t=fetch(this.authorizeURL((0,v.wk)(i,"image"))).then(e=>{if(e.ok)return e.blob();throw new Error(`Image fetch unsuccessful: ${e.status} ${e.statusText}`)})}return t.then(e=>(0,w.ag)(e,n?48:36,36,-1,!n)).then(t=>(n?e.premime=t.mime:e.mime=t.mime,e.size=t.blob.size,e.width=t.width,e.height=t.height,delete e.ref,delete e.preref,e.src=URL.createObjectURL(t.blob),(0,w.Sk)(t.blob))).then(t=>(n?e.preview=t.bits:e.val=t.bits,e)).catch(n=>{throw delete e.val,delete e.preview,delete e.src,e.width=36,e.height=36,n})}function q(e,n,t,s,o){if("IM"==e||"VD"==e){const o="IM"==e?N.call(this,{key:s},n):T.call(this,{key:s},n);let a;try{a=(0,v.iE)(P.call(this,n,"VD"==e))}catch(e){console.warn("Failed to quote image:",e.message),a=(0,v.iE)(e)}return o.whenDone=a,t=[i().createElement(g,o,null)," ",o.alt],i().createElement(i().Fragment,{key:s},t)}if("QQ"==e){if(o.includes("QQ"))return i().createElement("span",{key:s},[i().createElement("i",{key:"qq",className:"material-icons"},"format_quote")," "]);const e=a.Drafty.attrValue("QQ",n)||{};return e.key=s,e.className="reply-quote",i().createElement(a.Drafty.tagName("QQ"),e,t)}return B.call(this,e,n,t,s)}},8353:function(e,n,t){"use strict";t.d(n,{E6:function(){return d},Ey:function(){return b},II:function(){return O},Jh:function(){return W},Jv:function(){return R},Lf:function(){return T},R4:function(){return U},RE:function(){return D},WJ:function(){return K},_B:function(){return H},aQ:function(){return E},cd:function(){return $},jP:function(){return M},jp:function(){return L},lX:function(){return P},mO:function(){return B},pI:function(){return x},q8:function(){return A},r8:function(){return V},rD:function(){return N},rW:function(){return _},sd:function(){return I},uX:function(){return F},w8:function(){return G}});var s=t(3272),i=t(99);const o="/v1/im",a="/v0/file";class r extends Error{constructor(e,n,t,s){super(e),this.reason=n,this.status=t,this.details=s}}const l={API_KEY_REQUIRED:"服务暂不可用,请刷新页面重试",METHOD_NOT_ALLOWED:"请求方式有误,请刷新页面重试",TENANT_UNAVAILABLE:"企业码不存在或已停用",TENANT_MISMATCH:"登录状态异常,请重新进入企业码",AUTH_FAILED:"账号或密码错误",TOKEN_EXPIRED:"登录已过期,请重新登录",ACCOUNT_DISABLED:"账号已被禁用",RATE_LIMITED:"操作过于频繁,请稍后再试",VALIDATION_FAILED:"提交的内容不符合要求",IDEMPOTENCY_CONFLICT:"内容已发生变化,请刷新后重试",RESOURCE_NOT_FOUND:"内容不存在或已被删除",PERMISSION_DENIED:"没有权限执行此操作",NOT_FOUND:"内容不存在或已被删除",VERSION_CONFLICT:"内容已被修改,请刷新后重试",MALFORMED_REQUEST:"请求内容有误,请稍后重试",AUTH_REQUIRED:"请先登录",ACTION_TOKEN_INVALID:"操作凭证已失效,请重新操作",SCHEMA_UNSUPPORTED:"当前版本过旧,请刷新页面后重试",IDEMPOTENCY_IN_PROGRESS:"上一次操作正在处理中,请稍后再试",INTERNAL_ERROR:"服务器繁忙,请稍后重试",UNSUPPORTED_MEDIA_TYPE:"不支持的文件类型",CHALLENGE_EXPIRED:"验证码已过期,请重新获取",SMS_DELIVERY_FAILED:"短信发送失败,请稍后重试",PASSWORD_POLICY_VIOLATION:"密码不符合安全要求",VERIFICATION_RATE_LIMITED:e=>e&&e.retry_after_seconds?`操作过于频繁,请 ${e.retry_after_seconds} 秒后重试`:"操作过于频繁,请稍后再试",ALREADY_GROUP_MEMBER:"对方已经是群成员",DESCRIPTION_REQUIRED:"请填写简介内容",DESCRIPTION_TOO_LONG:"简介内容过长",GROUP_ADMIN_LIMIT_EXCEEDED:"群管理员数量已达上限",INVALID_CREDIT_CODE:"统一社会信用代码格式不正确",INVALID_EMAIL:"邮箱格式不正确",MAILBOX_UNAVAILABLE:"总经理信箱暂不可用",TOO_MANY_FILES:"文件数量超出限制",FRIEND_RELATION_REQUIRED:"需要先添加对方为好友",MESSAGE_NOT_ALLOWED:"当前状态无法发送消息",GROUP_MUTED:"你已被禁言,无法发言",GROUP_MEMBER_LIMIT_EXCEEDED:"群成员数量已达上限",TENANT_USER_QUOTA_EXCEEDED:"企业账号数已达上限",TENANT_GROUP_QUOTA_EXCEEDED:"企业群组数已达上限",FILE_TOO_LARGE:"文件大小超出限制",FILE_FORBIDDEN:"没有权限访问此文件",FILE_UNAVAILABLE:"文件暂不可用",STORAGE_QUOTA_EXCEEDED:"存储空间已达上限",REALNAME_REQUIRED:"需要先完成实名认证",YOUTH_MODE_RESTRICTED:"青少年模式下无法使用此功能",RISK_CONFIRMATION_REQUIRED:"需要先完成安全确认",RISK_ACTION_BLOCKED:"该操作已被安全策略拦截",CODE_INVALID:"验证码或独立密码不正确",TOO_MANY_ATTEMPTS:e=>e&&e.retry_after_seconds?`连续输错次数过多,请 ${e.retry_after_seconds} 秒后重试`:"连续输错次数过多,请稍后重试"};function c(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"web_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2)}function d(){return i.A.getObject("im-tenant")}function h(){const e=d();return e&&e.code||"default"}function u(){const e=d();return(e&&e.endpoints&&e.endpoints.api||o).replace(/\/$/,"")}function g(){const e=d();return(e&&e.endpoints&&e.endpoints.file||a).replace(/\/$/,"")}function p(){return sessionStorage.getItem("im-session-token")||""}function m(e){return e&&0===e.code&&void 0!==e.data?e.data:e}async function f(e,{method:n="GET",body:t,headers:i,auth:o=!0,tenantCodeOverride:a}={}){const l={"Content-Type":"application/json","X-MeetingIM-APIKey":s.Lq,"X-IM-Schema":"1","X-Tenant-Code":a||h(),"X-Request-ID":c(),...i};if(o){const e=p();e&&(l.Authorization="Bearer "+e)}const d=await fetch(u()+e,{method:n,headers:l,body:void 0!==t?JSON.stringify(t):void 0}),g=await d.text();let f={};if(g)try{f=JSON.parse(g)}catch(e){throw new r(d.ok?"接口返回非 JSON 数据":d.statusText||"接口请求失败","NON_JSON_RESPONSE",d.status,g.slice(0,160))}if(!d.ok||f&&f.code&&0!==f.code){const e=x(f.reason,f.details);throw new r(e||f.message||f.reason||d.statusText||"请求失败",f.reason,d.status,f.details)}return m(f)}function x(e,n){const t=e&&l[e];return("function"==typeof t?t(n):t)||null}const j=()=>({"Idempotency-Key":c()});async function b(e,n=""){let t=n,s=[];for(;;){const n=await e(t);s=s.concat(n&&n.items||[]);const i=n&&n.next_cursor||"";if(!i||i===t)break;t=i}return s}const y=(e,n)=>f(e,n),w=(e,n,t={})=>f(e,{method:"POST",body:n,headers:j(),...t}),v=(e,n,t={})=>f(e,{method:"PATCH",body:n,headers:j(),...t}),k=(e,n,t={})=>f(e,{method:"PUT",body:n,headers:j(),...t}),C=(e,n={})=>f(e,{method:"DELETE",headers:j(),...n});function z(e){const n=new URLSearchParams;Object.entries(e||{}).forEach(([e,t])=>{null!=t&&""!==t&&n.set(e,t)});const t=n.toString();return t?"?"+t:""}async function _(e,n,t){const i=new FormData;return i.append("purpose",n),i.append("file",e),new Promise((e,n)=>{const o=new XMLHttpRequest;o.open("POST",u()+"/public/uploads"),o.setRequestHeader("X-MeetingIM-APIKey",s.Lq),o.setRequestHeader("X-IM-Schema","1"),o.setRequestHeader("X-Tenant-Code",h()),o.setRequestHeader("X-Request-ID",c()),t&&(o.upload.onprogress=e=>t(e.lengthComputable?e.loaded/e.total:0)),o.onload=()=>{let t={};try{t=JSON.parse(o.responseText)}catch(e){}o.status>=200&&o.status<300&&0===t.code?e(m(t)):n(new r(t.message||t.reason||"上传失败",t.reason,o.status,t.details))},o.onerror=()=>n(new r("网络错误,上传失败","NETWORK_ERROR",0)),o.send(i)})}const S={"too large":"文件大小超出限制",malformed:"请求内容有误,请稍后重试","permission denied":"没有权限执行此操作",gone:"内容不存在或已被删除","not found":"内容不存在或已被删除"};function N(e,n,t){const i=e&&e.getAuthToken&&e.getAuthToken();if(!i)return Promise.reject(new r("尚未登录,无法上传文件","AUTH_REQUIRED",401));const o=new FormData;return o.append("file",n),o.set("id",e.getNextUniqueId()),new Promise((e,n)=>{const a=new XMLHttpRequest;a.open("POST",g()+"/u/"),a.setRequestHeader("X-MeetingIM-APIKey",s.Lq),a.setRequestHeader("Authorization","Token "+i.token),t&&(a.upload.onprogress=e=>t(e.lengthComputable?e.loaded/e.total:0)),a.onload=()=>{let t={};try{t=JSON.parse(a.responseText)}catch(e){}const s=t.ctrl||{};if(a.status>=200&&a.status<300&&s.params&&s.params.url){const n=s.params.url;e({fileId:n.slice(n.lastIndexOf("/")+1),url:n,expires:s.params.expires})}else{const e=s.text&&S[s.text.trim().toLowerCase()];n(new r(e||s.text||"上传失败","UPLOAD_FAILED",a.status))}},a.onerror=()=>n(new r("网络错误,上传失败","NETWORK_ERROR",0)),a.send(o)})}function T(e){const n=[];return{onProgress:null,upload(t){const i=this,o=e&&e.getAuthToken&&e.getAuthToken();return o?new Promise((a,l)=>{const c=new FormData;c.append("file",t),c.set("id",e.getNextUniqueId());const d=new XMLHttpRequest;n.push(d),d.open("POST",g()+"/u/"),d.setRequestHeader("X-MeetingIM-APIKey",s.Lq),d.setRequestHeader("Authorization","Token "+o.token),d.upload.onprogress=e=>{e.lengthComputable&&i.onProgress&&i.onProgress(e.loaded/e.total)},d.onload=()=>{let e={};try{e=JSON.parse(d.responseText)}catch(e){}const n=e.ctrl||{};if(d.status>=200&&d.status<300&&n.params&&n.params.url)a(n.params.url);else{const e=n.text&&S[n.text.trim().toLowerCase()];l(new r(e||n.text||"上传失败","UPLOAD_FAILED",d.status))}},d.onerror=()=>l(new r("网络错误,上传失败","NETWORK_ERROR",0)),d.send(c)}):Promise.reject(new r("尚未登录,无法上传文件","AUTH_REQUIRED",401))},cancel(){n.forEach(e=>{e.readyState<4&&e.abort()})}}}function B(e){const n=[];return{download(t,i,o,a,l){const c=e&&e.getAuthToken&&e.getAuthToken();if(!c){const e=new r("尚未登录,无法下载文件","AUTH_REQUIRED",401);return l&&l(e),Promise.reject(e)}return new Promise((e,d)=>{const h=new XMLHttpRequest;n.push(h),h.open("GET",t,!0),h.setRequestHeader("X-MeetingIM-APIKey",s.Lq),h.setRequestHeader("Authorization","Token "+c.token),h.responseType="blob",h.onprogress=e=>{a&&a(e.loaded)},h.onload=()=>{if(200===h.status){const n=document.createElement("a");n.href=window.URL.createObjectURL(new Blob([h.response],{type:o})),n.style.display="none",n.setAttribute("download",i),document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(n.href),e()}else{const e=new FileReader;e.onload=function(){let e;try{const n=JSON.parse(this.result),t=n.ctrl&&n.ctrl.text,s=t&&S[t.trim().toLowerCase()];e=new r(s||t||"下载失败","DOWNLOAD_FAILED",h.status)}catch(n){e=new r("下载失败","DOWNLOAD_FAILED",h.status)}l&&l(e),d(e)},e.readAsText(h.response)}},h.onerror=()=>{const e=new r("网络错误,下载失败","NETWORK_ERROR",0);l&&l(e),d(e)},h.send()})},cancel(){n.forEach(e=>{e.readyState<4&&e.abort()})}}}function P(e){return f("/tenants/resolve",{method:"POST",auth:!1,tenantCodeOverride:e,body:{tenant_code:e,platform:"web",app_version:"0.25.3"}})}function q(){return{platform:"web",app_version:"0.25.3",user_agent:"undefined"!=typeof navigator&&navigator.userAgent||"",language:"undefined"!=typeof navigator&&navigator.language||"",network:"undefined"!=typeof navigator&&navigator.connection&&navigator.connection.effectiveType||void 0}}function M(e){return f("/tenant-applications",{method:"POST",auth:!1,headers:j(),body:{client_context:q(),...e}})}function A(e){return f("/tenant-entry-feedback",{method:"POST",auth:!1,headers:j(),body:{client_context:q(),...e}})}function E(e,n){return f("/auth/verification-codes",{method:"POST",auth:!1,headers:j(),body:{scene:e,phone:n}})}function I(e,n){return f("/auth/verification-codes/"+encodeURIComponent(e)+"/verify",{method:"POST",auth:!1,body:{code:n}})}function D(e,n){return f("/auth/password-reset/challenges/"+encodeURIComponent(e)+"/verify",{method:"POST",auth:!1,body:{code:n}})}function U(e,n){return f("/auth/password-reset/confirm",{method:"POST",auth:!1,headers:j(),body:{reset_token:e,new_password:n}})}function R(){return f("/bootstrap")}function L(){return f("/me")}function O(){return f("/security/realname")}function F(e){return w("/security/realname/submissions",e)}function $(e){return w("/security/challenges",{scene:e,channel:"sms"})}function V(e,n){return w("/security/challenges/"+encodeURIComponent(e)+"/verify",{code:n})}function H(e,n,t){return w("/settings/independent-password",{password:e,purpose:n,action_token:t})}function W(e,n,t){return w("/settings/independent-password/verify",{password:e,purpose:n,action:t})}function K(e){return e?g()+"/s/"+encodeURIComponent(e):null}const X=new Map;function G(e){if(!e)return Promise.resolve(null);if(X.has(e))return X.get(e);const n={"X-MeetingIM-APIKey":s.Lq,"X-IM-Schema":"1","X-Tenant-Code":h(),"X-Request-ID":c()},t=p();t&&(n.Authorization="Token "+t);const i=fetch(K(e),{headers:n}).then(e=>{if(!e.ok)throw new r("文件加载失败","FILE_FETCH_FAILED",e.status);return e.blob()}).then(e=>URL.createObjectURL(e)).catch(n=>{throw X.delete(e),n});return X.set(e,i),i}t.d(n,["A0",0,e=>C("/friends/"+encodeURIComponent(e)),"BK",0,(e,n="")=>y("/organization/departments/"+encodeURIComponent(e)+"/members"+z({cursor:n})),"BT",0,()=>y("/me/privacy"),"Bc",0,e=>w("/favorites/batch",{messages:e.map(e=>({...e,seq:String(e.seq)}))}),"By",0,(e,{fileId:n,fileName:t="",mimeType:s="",fileType:i="",fileSize:o=0,sourceTopic:a="",sourceSeq:r}={})=>w("/groups/"+encodeURIComponent(e)+"/files",{file_id:n,file_name:t,mime_type:s,file_type:i,file_size:o,source_topic:a,source_seq:r}),"C5",0,e=>C("/favorites/"+encodeURIComponent(e)),"DU",0,(e,n)=>w("/reports/monthly/"+encodeURIComponent(e)+"/reopen",{version:n}),"E5",0,(e,n,t="时间冲突")=>w("/meetings/"+encodeURIComponent(e)+"/cancel",{version:n,reason:t}),"EA",0,(e,n)=>v("/conversations/"+encodeURIComponent(e)+"/settings",n),"EC",0,(e,n="",t="search",s="")=>w("/friend-requests",{target_user_id:e,message:n,source:t,source_topic:s}),"FI",0,(e="",n=20)=>y("/meetings"+z({limit:n,cursor:e})),"Fo",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/join-requests/"+encodeURIComponent(n)+"/accept",t?{version:t}:{}),"Hw",0,(e,n)=>v("/groups/"+encodeURIComponent(e)+"/governance",n),"IW",0,(e,n,t="")=>w("/groups/"+encodeURIComponent(e)+"/invitations",{user_ids:n,message:t}),"Iv",0,(e,n="favorite")=>w("/security/urls/check",{url:e,source:n}),"K2",0,()=>y("/settings/youth-mode"),"KN",0,()=>y("/feedback/config"),"M7",0,(e="",n="",t="")=>y("/friends"+z({query:e,cursor:n,initial:t})),"N1",0,(e,n,t=1,s="mistake")=>w("/topics/"+encodeURIComponent(e)+"/messages/"+encodeURIComponent(n)+"/recall",{version:t,reason:s}),"NZ",0,(e,n,t)=>k("/meetings/"+encodeURIComponent(e)+"/my-response",{response:n,version:t}),"Nk",0,(e,{query:n="",cursor:t="",role:s="",eligibleRole:i="",mentionable:o,muteEligible:a}={})=>y("/groups/"+encodeURIComponent(e)+"/members"+z({query:n,cursor:t,role:s,eligible_role:i,mentionable:o?"true":"",mute_eligible:a?"true":""})),"Q2",0,(e="",n=20)=>y("/system-notifications"+z({cursor:e,limit:n})),"Ql",0,(e,n="")=>y("/groups/"+encodeURIComponent(e)+"/mutes"+z({cursor:n})),"Qq",0,(e,n,t)=>k("/groups/"+encodeURIComponent(e)+"/announcements/current",{content:n,version:t}),"RH",0,({query:e="",departmentId:n="",cursor:t="",limit:s=""}={})=>y("/organization/members"+z({q:e,department_id:n,cursor:t,limit:s})),"RM",0,e=>y("/conversations/"+encodeURIComponent(e)+"/settings"),"Ro",0,(e="inbound",n="all",t="")=>y("/friend-requests"+z({direction:e,status:n,cursor:t})),"S",0,e=>w("/reports/daily",{report_date:e}),"Sk",0,(e,n)=>v("/friends/"+encodeURIComponent(e),{remark:n}),"T0",0,e=>y("/favorites/"+encodeURIComponent(e)),"Tr",0,(e="")=>y("/blocks"+z({cursor:e})),"U3",0,(e,{pinned:n,mute_notifications:t})=>v("/groups/"+encodeURIComponent(e)+"/member-settings",{pinned:n,mute_notifications:t}),"V6",0,e=>y("/topics/"+encodeURIComponent(e)+"/draft"),"VM",0,e=>y("/users/"+encodeURIComponent(e)+"/profile"),"VX",0,e=>v("/me/profile",e),"Vw",0,(e,{query:n="",type:t="",cursor:s=""}={})=>y("/groups/"+encodeURIComponent(e)+"/files"+z({q:n,type:t,cursor:s})),"W",0,(e,n=86400)=>w("/users/"+encodeURIComponent(e)+"/qrcodes",{purpose:"add_friend",expires_in_seconds:n}),"Wj",0,e=>v("/me/privacy",e),"Wx",0,e=>y("/groups/"+encodeURIComponent(e)),"Wz",0,e=>w("/feedback",{client_context:q(),...e}),"YU",0,(e,n)=>w("/settings/youth-mode/enable",{policy_version:e,action_token:n}),"Yx",0,e=>y("/groups/"+encodeURIComponent(e)+"/announcements/latest"),"ZV",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/admins/batch",{user_ids:n,version:t}),"ZY",0,e=>w("/settings/youth-mode/disable",{},{headers:{...j(),"X-Action-Token":e}}),"Zo",0,(e,n)=>w("/reports/daily/"+encodeURIComponent(e)+"/submit",{version:n}),"aE",0,e=>w("/reports/monthly",{month:e}),"aY",0,(e,n,t,s=[])=>k("/reports/daily/"+encodeURIComponent(e)+"/draft",{content:n,attachments:s,version:t}),"ae",0,(e,n,t,s,i=[])=>k("/reports/monthly/"+encodeURIComponent(e)+"/draft",{work_summary:n,next_plan:t,attachments:i,version:s}),"af",0,(e,n,t)=>k("/groups/"+encodeURIComponent(e)+"/members/me/profile",{nickname:n,version:t}),"ap",0,e=>y("/reports/daily/"+encodeURIComponent(e)),"bL",0,e=>w("/favorites/batch-delete",{favorite_ids:e}),"bo",0,e=>w("/group-invitations/"+encodeURIComponent(e)+"/accept",{}),"cB",0,(e,n,t)=>C("/groups/"+encodeURIComponent(e)+"/admins/"+encodeURIComponent(n),t?{headers:{...j(),"If-Match":String(t)}}:{}),"cR",0,(e,n)=>C("/groups/"+encodeURIComponent(e)+"/mutes/"+encodeURIComponent(n)),"dv",0,(e,n)=>C("/groups/"+encodeURIComponent(e)+"/files/"+encodeURIComponent(n)),"eO",0,(e,{query:n="",type:t="all",cursor:s=""}={})=>y("/topics/"+encodeURIComponent(e)+"/messages/search"+z({q:n,type:t,cursor:s})),"er",0,e=>y("/reports/monthly/"+encodeURIComponent(e)),"f",0,({category:e="joined",query:n="",cursor:t=""}={})=>y("/groups"+z({category:e,query:n,cursor:t})),"fi",0,e=>w("/meetings/"+encodeURIComponent(e)+"/reminders",{}),"hO",0,(e,{message:n="",source:t="qr",qrToken:s=""}={})=>w("/groups/"+encodeURIComponent(e)+"/join-requests",{message:n,source:t,qr_token:s}),"iH",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/join-requests/"+encodeURIComponent(n)+"/reject",t?{version:t}:{}),"iK",0,(e,n,t,s="")=>w("/groups/"+encodeURIComponent(e)+"/owner-transfer",{target_user_id:n,version:t},s?{headers:{...j(),"X-Action-Token":s}}:{}),"ig",0,(e,n)=>w("/reports/monthly/"+encodeURIComponent(e)+"/submit",{version:n}),"j",0,e=>w("/groups/"+encodeURIComponent(e)+"/leave",{}),"jx",0,(e=86400)=>w("/me/qrcodes",{purpose:"add_friend",expires_in_seconds:e}),"k8",0,(e,n,t,s)=>k("/topics/"+encodeURIComponent(e)+"/draft",{content:n,entities:t,version:s}),"kV",0,e=>C("/blocks/"+encodeURIComponent(e)),"kX",0,e=>y("/meetings/"+encodeURIComponent(e)),"kY",0,(e,n,t="")=>w("/groups/"+encodeURIComponent(e)+"/mutes",{members:n,reason:t}),"lB",0,(e,n="")=>y("/reports/daily/statistics"+z({date:e,department_id:n})),"lD",0,(e,n=[])=>w("/reports/daily/reminders",{date:e,user_ids:n}),"lL",0,()=>y("/executive-mailbox/config"),"le",0,(e,n,t=20,s=20)=>y("/topics/"+encodeURIComponent(e)+"/messages/"+encodeURIComponent(n)+"/context"+z({before:t,after:s})),"ly",0,e=>y("/groups/"+encodeURIComponent(e)+"/members/me/profile"),"nI",0,(e,n)=>w("/groups/"+encodeURIComponent(e)+"/announcements/"+encodeURIComponent(n)+"/read",{}),"nW",0,(e,n="")=>y("/reports/monthly/statistics"+z({month:e,department_id:n})),"no",0,e=>y("/groups/"+encodeURIComponent(e)+"/settings"),"oI",0,(e="",n="department,user",t="")=>y("/organization/search"+z({q:e,types:n,cursor:t})),"ob",0,(e="user")=>y("/reports/abuse/reasons"+z({target_type:e})),"oo",0,(e,n=86400)=>w("/groups/"+encodeURIComponent(e)+"/qrcodes",{expires_in_seconds:n}),"pl",0,e=>y("/conversations/"+encodeURIComponent(e)+"/context"),"ps",0,(e,n="add_friend")=>w("/qrcodes/resolve",{token:e,purpose:n}),"qM",0,({type:e="all",query:n="",cursor:t="",limit:s}={})=>y("/favorites"+z({type:e,q:n,cursor:t,limit:s})),"qm",0,()=>y("/workbench"),"qr",0,e=>w("/meetings",e),"rF",0,(e,n="continue")=>w("/security/risk-challenges/"+encodeURIComponent(e)+"/confirm",{decision:n}),"rX",0,(e,n)=>y("/groups/"+encodeURIComponent(e)+"/members/"+encodeURIComponent(n)+"/profile"),"rn",0,e=>k("/blocks/"+encodeURIComponent(e),{}),"s7",0,(e,n="pending",t="")=>y("/groups/"+encodeURIComponent(e)+"/join-requests"+z({status:n,cursor:t})),"t$",0,(e,n,t="")=>w("/favorites/forward",{favorite_ids:e,target_topics:n,comment:t}),"tb",0,e=>w("/reports/abuse",e),"uT",0,(e,n,t,s="")=>w("/messages/forward",{mode:e,sources:n,target_topics:t,comment:s}),"uj",0,e=>y("/groups/"+encodeURIComponent(e)+"/governance"),"uv",0,e=>w("/executive-mailbox/submissions",e),"v",0,(e="root",n="")=>y("/organization/departments"+z({parent_id:e,cursor:n})),"vW",0,(e,n)=>v("/groups/"+encodeURIComponent(e),n),"w",0,()=>y("/me/profile"),"w4",0,e=>w("/system-notifications/"+encodeURIComponent(e)+"/read",{read_at:(new Date).toISOString()}),"wI",0,(e,n)=>w("/friend-requests/"+encodeURIComponent(e)+"/accept",n?{version:n}:{}),"wj",0,({name:e,description:n="",memberUserIds:t=[],avatarFileId:s=""})=>w("/groups",{name:e,description:n,member_user_ids:t,avatar_file_id:s}),"x5",0,(e,n="account",t="")=>y("/users/search"+z({q:e,type:n,cursor:t})),"xn",0,({scope:e="mine",fromMonth:n="",toMonth:t="",status:s="",cursor:i=""}={})=>y("/reports/monthly"+z({scope:e,from_month:n,to_month:t,status:s,cursor:i})),"xz",0,(e,n)=>w("/friend-requests/"+encodeURIComponent(e)+"/reject",n?{version:n}:{}),"yP",0,(e,n="image",t="")=>y("/topics/"+encodeURIComponent(e)+"/media"+z({type:n,cursor:t})),"zY",0,({scope:e="mine",from:n="",to:t="",status:s="",cursor:i=""}={})=>y("/reports/daily"+z({scope:e,from:n,to:t,status:s,cursor:i}))])},99:function(e,n,t){"use strict";t.d(n,{A:function(){return s}});class s{static setObject(e,n){localStorage.setItem(e,JSON.stringify(n))}static getObject(e){const n=localStorage.getItem(e);return n&&JSON.parse(n)}static updateObject(e,n){const t=this.getObject(e);this.setObject(e,Object.assign(t||{},n))}static removeItem(e){localStorage.removeItem(e)}}},184:function(e,n,t){"use strict";t.d(n,{A:function(){return i}});let s=0;class i{static parseUrl(e){const n=e.split("?",2),t={};let s=[];return n[0]&&(s=n[0].replace(/^\//,"").split("/"),s.length>1&&"_"===s[0]&&(s[0]="")),n[1]&&n[1].split("&").forEach(e=>{const n=e.indexOf("=");n>0&&(t[e.slice(0,n)]=decodeURIComponent(e.slice(n+1)))}),{path:s,params:t}}static currentUrl(){return window.location.pathname+window.location.search}static navigateTo(e){s++,window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate"))}static navigateReplace(e){window.history.replaceState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate"))}static goBack(){return s>0&&(s--,window.history.back(),!0)}static composeUrl(e,n){let t=e;t.length>1&&!t[0]&&(t=["_",...t.slice(1)]);let s="/"+t.join("/");const i=[];for(const e in n)n.hasOwnProperty(e)&&void 0!==n[e]&&i.push(e+"="+encodeURIComponent(n[e]));return i.length>0&&(s+="?"+i.join("&")),s}static addUrlParam(e,n,t){const s=i.parseUrl(e);return s.params[n]=t,i.composeUrl(s.path,s.params)}static removeUrlParam(e,n){const t=i.parseUrl(e);return delete t.params[n],i.composeUrl(t.path,t.params)}static removeUrlParams(e,n){Array.isArray(n)||(n=[n]);const t=i.parseUrl(e);for(const e of n)delete t.params[e];return i.composeUrl(t.path,t.params)}static setUrlSidePanel(e,n){const t=i.parseUrl(e);return t.path[0]=n,i.composeUrl(t.path,t.params)}static setUrlInfoPanel(e,n){const t=i.parseUrl(e);return n?t.params.info=n:delete t.params.info,i.composeUrl(t.path,t.params)}static setUrlTopic(e,n){const t=i.parseUrl(e);return t.path[1]=n,delete t.params.info,i.composeUrl(t.path,t.params)}}},7256:function(e,n,t){"use strict";function s(e,n){n=n||window.navigator.userLanguage||window.navigator.language;const t=new Date;return e.getFullYear()==t.getFullYear()?e.getMonth()==t.getMonth()&&e.getDate()==t.getDate()?e.toLocaleTimeString(n,{hour12:!1,hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(n,{hour12:!1,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(n,{year:"numeric",month:"short",day:"numeric"})}function i(e,n){n=n||window.navigator.userLanguage||window.navigator.language;const t=new Date,s=Math.floor((e.getTime()-6e4*e.getTimezoneOffset())/864e5)-Math.floor((t.getTime()-6e4*t.getTimezoneOffset())/864e5);return Math.abs(s)<2?new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(s,"day"):new Intl.DateTimeFormat(n).format(e)}function o(e,n){if("number"!=typeof e)return"";let t=(0|Math.floor(e/60))%60,s=0|Math.floor(e/3600);(n||s>0)&&(t=t<10?`0${t}`:t);let i=(0|e)%60;return i=i<10?`0${i}`:i,0==s?`${t}:${i}`:`${s}:${t}:${i}`}function a(e){if(!e||0==e)return"0 Bytes";const n=["Bytes","KB","MB","GB","TB","PB"],t=Math.min(0|Math.floor(Math.log2(e)/10),n.length-1),s=e/Math.pow(1024,t),i=t>0?s<3?2:s<30?1:0:0;return s.toFixed(i)+" "+n[t]}function r(e,n){return"string"!=typeof e?e:e.length>n?e.slice(0,n/2-1)+"…"+e.slice(1-n/2):e}function l(e,n,t){return(n?"lt-":"dk-")+(t?"fg-":"bg-")+(s=e,Math.abs(function(e){let n=0;e=""+e;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n&=n;return n}(s))%16);var s}function c(e){const n=e.toUpperCase().split("").map(e=>127397+e.charCodeAt());return String.fromCodePoint(...n)}function d(e,n){return"string"!=typeof e||e.length<=n?e:/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/.test(e)?"…"+e.slice(0,n-1):e.slice(0,n-1)+"…"}t.d(n,{Tu:function(){return r},W5:function(){return d},Ye:function(){return o},cq:function(){return s},kJ:function(){return l},lX:function(){return a},lb:function(){return c},mf:function(){return i}})},2795:function(e,n,t){"use strict";t.d(n,{Ug:function(){return l},o_:function(){return c},sK:function(){return a},ze:function(){return r}});var s=t(1594),i=t.n(s);const o=new Map;function a(e,n,t){const[s,a]=i().useState(()=>e?o.get(e):void 0),[r,l]=i().useState(()=>!!e&&!o.has(e));return i().useEffect(()=>{if(!e)return;let t=!0,s=!1;l(!o.has(e));const i=()=>n().then(n=>{t&&(o.set(e,n),a(n),l(!1))}).catch(()=>{if(t)return s||o.has(e)?void l(!1):(s=!0,void window.setTimeout(()=>{t&&i()},3e3))});return i(),()=>{t=!1}},[e,...t||[]]),[s,r]}function r(e){return e?o.get(e):void 0}function l(e,n){e&&o.set(e,n)}function c(e,n=300){const[t,s]=i().useState(e);return i().useEffect(()=>{if(e===t)return;const i=window.setTimeout(()=>s(e),n);return()=>window.clearTimeout(i)},[e,n,t]),t}},7849:function(e,n,t){"use strict";t.d(n,{FH:function(){return p},Jf:function(){return u},Jt:function(){return c},KY:function(){return x},LO:function(){return m},MC:function(){return b},OM:function(){return a},TP:function(){return o},YO:function(){return h},af:function(){return l},iE:function(){return f},k6:function(){return r},t7:function(){return j},wk:function(){return g},xH:function(){return d}});var s=t(4532),i=t(3272);function o(e,n,t){return n&&n.fn||(n&&s.Tinode.isGroupTopicName(e)&&n.name?n.name:s.Tinode.isSelfTopicName(e)?"已保存的消息":t)}function a(e){const n=document.getElementById("shortcut-icon"),t=document.head||document.getElementsByTagName("head")[0],s=document.createElement("link");s.type="image/png",s.id="shortcut-icon",s.rel="shortcut icon",s.href="img/logo32x32"+(e>0?"a":"")+".png",n&&t.removeChild(n),t.appendChild(s),document.title=(e>0?"("+e+") ":"")+i.iv}function r(e,n,t,i){let o=null;if((e=e&&e.trim())&&(o={fn:e}),"string"==typeof(i=i&&i.trim())&&(o=o||{},o.note=i||s.Tinode.DEL_CHAR),n){o=o||{};let e=t;const i=/^data:(image\/[-a-z0-9+.]+)?(;base64)?,/i.exec(n);i?(e=i[1],o.photo={data:n.substring(n.indexOf(",")+1),ref:s.Tinode.DEL_CHAR}):o.photo={data:s.Tinode.DEL_CHAR,ref:n},o.photo.type=(e||"image/jpeg").substring(6)}return o}function l(e,n){if(e===n)return!0;if(!Array.isArray(e)||!Array.isArray(n))return!1;if(e.length!=n.length)return!1;e.sort(),n.sort();for(let t=0,s=e.length;t<s;t++)if(e[t]!==n[t])return!1;return!0}function c(e){return e=e.trim(),/^(?:\+?(\d{1,3}))?[- (.]*(\d{3})[- ).]*(\d{3})[- .]*(\d{2})[- .]*(\d{2})?$/.test(e)?e.replaceAll(/[- ().]*/g,""):null}function d(e){return e=e.trim(),/^[a-z0-9_.+-]+@[a-z0-9-]+(\.[a-z0-9-]+)+$/i.test(e)?e:null}function h(e){return e&&!/^\s*([a-z][a-z0-9+.-]*:|\/\/)/im.test(e.replace(/\\/g,"/"))}function u(e,n){if("string"!=typeof e)return e;if(e=(e=e.replace(/[^\x21-\x7E]/gim,"").trim()).replace(/\\/g,"/"),!/^([a-z][a-z0-9+.-]*:|\/\/)/i.test(e))return e;if(/^blob:http/.test(e))return e;const t=Array.isArray(n)?n.join("|"):"http|https";return new RegExp("^(("+t+"):|//)","i").test(e)?e:null}function g(e,n){if(!e)return null;const t=u(e);return t||(new RegExp(`data:${n}/[-+.a-z0-9]+;base64,`,"i").test(e.trim())?e:null)}function p(e){if(e.startsWith("data:")||e.startsWith("blob:"))return e;let n="",t="";const s=e.indexOf("#");s>0&&(t=e.substring(s+1),e=e.substring(0,s));const i=e.indexOf("?");i>0&&(n=e.substring(i+1),e=e.substring(0,i));const o=new URLSearchParams(n);return o.append("asatt","1"),`${e}?${o.toString()}`+(t?`#${t}`:"")}function m(e){switch(e){case s.Tinode.MESSAGE_STATUS_SENDING:return{name:"access_time"};case s.Tinode.MESSAGE_STATUS_FAILED:case s.Tinode.MESSAGE_STATUS_FATAL:return{name:"warning",color:"red"};case s.Tinode.MESSAGE_STATUS_SENT:return{name:"done"};case s.Tinode.MESSAGE_STATUS_RECEIVED:return{name:"done_all"};case s.Tinode.MESSAGE_STATUS_READ:return{name:"done_all",color:"blue"}}return null}function f(e){let n=!1;return{promise:e instanceof Error?Promise.reject(e):new Promise((t,s)=>{e.then(e=>n?s({isCanceled:!0}):t(e),e=>s(n?{isCanceled:!0}:e))}),cancel(){n=!0}}}function x(){const e=t(1781)[i.S.type][i.S.index];return{name:`../${i.S.path}${e.name}`,size:e.size}}function j(e){const n=e.split("/");return n[n.length-1]}function b(e){const n=j(e),s=t(1781);for(const e in s)for(let t=0;t<s[e].length;t++)if(s[e][t].name==n)return e;return null}},781:function(e,n,t){"use strict";t.d(n,{Ay:function(){return j},wW:function(){return p}});var s=t(1594),i=t.n(s),o=t(184),a=t(8353),r=t(2795),l=t(4848);const c=(e,n)=>{let t=o.A.setUrlSidePanel(o.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?o.A.addUrlParam(t,e,n):o.A.removeUrlParam(t,e)}),o.A.navigateTo(t)};function d({children:e}){return(0,l.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function h({title:e,back:n}){return(0,l.jsxs)("header",{className:"support-header",children:[(0,l.jsx)("button",{type:"button",onClick:()=>{o.A.goBack()||c(n)},"aria-label":"返回",children:(0,l.jsx)(d,{children:"arrow_back_ios_new"})}),(0,l.jsx)("h1",{children:e}),(0,l.jsx)("span",{})]})}function u({message:e,onDone:n}){return i().useEffect(()=>{if(!e)return;const t=window.setTimeout(n,2200);return()=>window.clearTimeout(t)},[e,n]),e?(0,l.jsx)("div",{className:"support-toast",role:"status",children:e}):null}function g({secondary:e}){return(0,l.jsxs)("div",{className:"support-page risk-warning-page",children:[(0,l.jsx)(h,{title:"安全提醒",back:e?"fraud-risk-warning":"personal-center"}),(0,l.jsxs)("main",{className:"risk-info-page risk-dialog",children:[(0,l.jsx)("span",{className:"risk-symbol",children:(0,l.jsx)(d,{children:e?"warning_amber":"verified_user"})}),e?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{className:"risk-emphasis",children:"您发送的内容可能涉及诈骗风险,请注意甄别。"}),(0,l.jsx)("p",{children:"切勿轻信陌生人的投资理财、兼职刷单、网络贷款等信息,谨防上当受骗。"}),(0,l.jsxs)("aside",{children:[(0,l.jsx)(d,{children:"phone_in_talk"}),(0,l.jsx)("span",{children:"如遇诈骗请立即拨打 110 报警。"})]})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{children:"为保障您的账号及资金安全,请您注意:"}),(0,l.jsxs)("ul",{children:[(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"receipt_long"}),"不参与刷单返利活动"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"currency_yuan"}),"不轻信高收益投资、理财信息"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"person_off"}),"不出租、出借、出售账号及实名信息"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"lock"}),"不向任何人泄露验证码、密码等敏感信息"]})]}),(0,l.jsx)("p",{className:"risk-emphasis",children:"请提高安全防范意识,谨防电信网络诈骗。"})]}),(0,l.jsx)("button",{type:"button",className:"primary",onClick:()=>c(e?"fraud-risk-warning":"personal-center"),children:e?"我已知晓":"我已阅读并知晓"})]})]})}function p({level:e,blocked:n,onConfirm:t,onCancel:s}){return(0,l.jsx)("div",{className:"risk-overlay",children:(0,l.jsxs)("section",{className:"risk-dialog secondary",role:"alertdialog","aria-modal":"true",children:[(0,l.jsx)("span",{className:"risk-symbol",children:(0,l.jsx)(d,{children:n?"block":"warning_amber"})}),(0,l.jsx)("h2",{children:"安全提醒"}),n?(0,l.jsx)("p",{className:"risk-emphasis",children:"检测到该内容存在较高安全风险,暂无法发送。"}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{className:"risk-emphasis",children:"您发送的内容可能涉及诈骗风险,请注意甄别。"}),(0,l.jsx)("p",{children:"切勿轻信陌生人的投资理财、兼职刷单、网络贷款等信息,谨防上当受骗。如遇诈骗请立即拨打 110 报警。"})]}),n?(0,l.jsx)("button",{type:"button",onClick:s,children:"我已知晓"}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("button",{type:"button",className:"danger",onClick:t,children:"我已知晓,继续发送"}),(0,l.jsx)("button",{type:"button",onClick:s,children:"取消发送"})]})]})})}function m({hashParams:e,onToast:n}){const t=e&&e.target_type||"user",s=e&&e.target_name||"",[o,r]=i().useState(null);return i().useEffect(()=>{(0,a.ob)(t).then(e=>r(Array.isArray(e)?e:e&&(e.reasons||e.items)||[])).catch(e=>{n(e.message||"加载失败"),r([])})},[t]),(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"举报",back:"messages-home"}),(0,l.jsxs)("main",{className:"report-reasons",children:[s?(0,l.jsxs)("section",{className:"report-target",children:[(0,l.jsx)(d,{children:"account_circle"}),(0,l.jsxs)("span",{children:[(0,l.jsxs)("strong",{children:["举报",s]}),(0,l.jsx)("small",{children:"举报人身份不会向对方公开"})]})]}):null,(0,l.jsx)("h2",{children:"请选择举报原因"}),null===o?(0,l.jsx)("p",{className:"report-loading",children:"加载中…"}):(0,l.jsx)("section",{className:"report-reason-list",children:o.map(n=>(0,l.jsxs)("button",{type:"button",onClick:()=>(n=>c("abuse-report-details",{...e,reason_code:n.reason_code||n.code,reason_label:n.label,requires_description:n.requires_description?"1":""}))(n),children:[(0,l.jsx)("span",{children:(0,l.jsx)("strong",{children:n.label})}),(0,l.jsx)(d,{children:"chevron_right"})]},n.reason_code||n.code))})]})]})}function f({hashParams:e,tinode:n,onToast:t}){const s=e&&e.reason_label||"",o=e&&e.reason_code||"",r="1"===(e&&e.requires_description),[u,g]=i().useState(""),[p,m]=i().useState([]),[f,x]=i().useState(!1),[j,b]=i().useState(!1),[y,w]=i().useState(null),v=i().useRef(null);return(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"举报",back:"abuse-report-reasons"}),y?(0,l.jsxs)("main",{className:"support-success",children:[(0,l.jsx)(d,{children:"task_alt"}),(0,l.jsx)("h2",{children:"举报已受理"}),(0,l.jsx)("p",{children:"我们会依据平台规则核实处理,举报人身份不会向被举报方公开。"}),(0,l.jsx)("dl",{children:(0,l.jsxs)("div",{children:[(0,l.jsx)("dt",{children:"受理编号"}),(0,l.jsx)("dd",{children:y.report_id})]})}),(0,l.jsx)("button",{type:"button",onClick:()=>c("messages-home"),children:"完成"})]}):(0,l.jsxs)("main",{className:"report-details",children:[(0,l.jsxs)("section",{className:"report-selected-reason",children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("small",{children:"举报原因"}),(0,l.jsx)("strong",{children:s})]}),(0,l.jsx)("button",{type:"button",onClick:()=>c("abuse-report-reasons",e),children:"修改"})]}),(0,l.jsxs)("label",{className:"support-textarea",children:[(0,l.jsxs)("span",{children:["问题描述",r?(0,l.jsx)("b",{children:"*"}):null]}),(0,l.jsx)("textarea",{value:u,maxLength:"500",onChange:e=>g(e.target.value),placeholder:"请描述具体情况、发生时间和相关行为"}),(0,l.jsxs)("small",{children:[u.length,"/500"]})]}),(0,l.jsxs)("section",{className:"evidence-section",children:[(0,l.jsxs)("header",{children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("strong",{children:"证据材料"}),(0,l.jsx)("small",{children:"图片或文件,最多 9 个"})]}),(0,l.jsxs)("em",{children:[p.length,"/9"]})]}),(0,l.jsxs)("div",{children:[p.map(e=>(0,l.jsxs)("article",{children:[(0,l.jsx)(d,{children:"image"}),(0,l.jsx)("span",{children:e.name}),(0,l.jsx)("button",{type:"button",onClick:()=>m(n=>n.filter(n=>n.id!==e.id)),"aria-label":"删除证据",children:(0,l.jsx)(d,{children:"close"})})]},e.id)),(0,l.jsxs)("button",{type:"button",className:"evidence-upload",disabled:f,onClick:()=>v.current&&v.current.click(),children:[(0,l.jsx)(d,{children:"add_photo_alternate"}),(0,l.jsx)("span",{children:f?"上传中…":"添加证据"})]}),(0,l.jsx)("input",{ref:v,type:"file",accept:"image/*",style:{display:"none"},onChange:e=>{const s=e.target.files&&e.target.files[0];e.target.value="",s&&n&&(p.length>=9?t("最多上传 9 个证据文件"):(x(!0),(0,a.rD)(n,s).then(({fileId:e})=>m(n=>n.concat({id:e,name:s.name}))).catch(e=>t(e.message||"上传失败")).finally(()=>x(!1))))}})]})]}),(0,l.jsxs)("aside",{className:"report-privacy-note",children:[(0,l.jsx)(d,{children:"lock"}),(0,l.jsx)("span",{children:"证据仅用于平台审核,将按照安全策略保存和访问。"})]})]}),y?null:(0,l.jsx)("footer",{className:"support-submit-bar",children:(0,l.jsx)("button",{type:"button",disabled:j,onClick:()=>{if(r&&!u.trim())return void t("请补充问题描述");const n={type:e.target_type||"user"};"message"===e.target_type?(n.topic=e.topic,n.seq=String(e.seq)):"group"===e.target_type?n.topic=e.topic||e.target_id:n.user_id=e.target_id,b(!0),(0,a.tb)({target:n,reason_code:o,description:u.trim(),evidence_file_ids:p.map(e=>e.id)}).then(e=>w(e)).catch(e=>t(e.message||"提交失败")).finally(()=>b(!1))},children:j?"提交中…":"提交举报"})})]})}function x({tinode:e,onToast:n}){const t=(0,r.ze)("feedback-config"),[s]=(0,r.sK)("feedback-config",a.KN,[]),[o,u]=i().useState(()=>t&&t.categories&&t.categories[0]||""),[g,p]=i().useState(""),[m,f]=i().useState([]),[x,j]=i().useState(!1),[b,y]=i().useState(!1),[w,v]=i().useState(!1),[k,C]=i().useState(null),z=i().useRef(null),_=s&&s.attachment_policy&&s.attachment_policy.max_files||5,S=s&&s.max_length||300;i().useEffect(()=>{s&&s.categories&&s.categories.length&&!o&&u(s.categories[0])},[s]);const N={bug:"功能异常",suggestion:"产品建议",complaint:"服务投诉",other:"其他"};return k?(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"意见反馈",back:"personal-center"}),(0,l.jsxs)("main",{className:"support-success",children:[(0,l.jsx)(d,{children:"mark_email_read"}),(0,l.jsx)("h2",{children:"反馈已受理"}),(0,l.jsx)("p",{children:"感谢你的反馈,我们会尽快查看并用于改进产品。"}),(0,l.jsx)("dl",{children:(0,l.jsxs)("div",{children:[(0,l.jsx)("dt",{children:"反馈编号"}),(0,l.jsx)("dd",{children:k.feedback_id})]})}),(0,l.jsx)("button",{type:"button",onClick:()=>c("personal-center"),children:"返回我的"})]})]}):(0,l.jsxs)("div",{className:"support-page feedback-page",children:[(0,l.jsx)(h,{title:"意见反馈",back:"personal-center"}),(0,l.jsxs)("main",{children:[s&&s.categories&&s.categories.length>1?(0,l.jsxs)("section",{className:"feedback-categories",children:[(0,l.jsx)("h2",{children:"反馈类型"}),(0,l.jsx)("div",{children:s.categories.map(e=>(0,l.jsx)("button",{type:"button",className:o===e?"active":"",onClick:()=>u(e),children:N[e]||e},e))})]}):null,(0,l.jsxs)("label",{className:"support-textarea",children:[(0,l.jsxs)("span",{children:["问题反馈",(0,l.jsx)("b",{children:"*"})]}),(0,l.jsx)("textarea",{value:g,maxLength:S,onChange:e=>p(e.target.value),placeholder:"为了更好的帮您解决问题,请在提交问题时上传截图信息,方便我们更快速的帮助您解决问题。"}),(0,l.jsxs)("small",{children:[g.length,"/",S]})]}),(0,l.jsxs)("section",{className:"feedback-upload",children:[(0,l.jsx)("header",{children:(0,l.jsxs)("strong",{children:["图片(",m.length,"/",_,")"]})}),(0,l.jsxs)("button",{type:"button",disabled:x,onClick:()=>z.current&&z.current.click(),children:[(0,l.jsx)(d,{children:"add_a_photo"}),(0,l.jsx)("span",{children:x?"上传中…":"点击上传"})]}),(0,l.jsx)("input",{ref:z,type:"file",accept:"image/*",style:{display:"none"},onChange:t=>{const s=t.target.files&&t.target.files[0];t.target.value="",s&&e&&(m.length>=_?n(`最多上传 ${_} 张图片`):(j(!0),(0,a.rD)(e,s).then(({fileId:e})=>f(n=>n.concat({id:e}))).catch(e=>n(e.message||"上传失败")).finally(()=>j(!1))))}})]}),s&&s.diagnostics_notice?(0,l.jsxs)("label",{className:"diagnostics-consent",children:[(0,l.jsx)("input",{type:"checkbox",checked:b,onChange:e=>y(e.target.checked)}),(0,l.jsxs)("span",{children:[(0,l.jsx)("strong",{children:"同意上传脱敏诊断信息"}),(0,l.jsx)("small",{children:s.diagnostics_notice})]})]}):null]}),(0,l.jsx)("footer",{className:"support-submit-bar",children:(0,l.jsx)("button",{type:"button",disabled:w,onClick:()=>{g.trim()?o?(v(!0),(0,a.Wz)({category:o,content:g.trim(),attachment_file_ids:m.map(e=>e.id),include_diagnostics:b}).then(e=>C(e)).catch(e=>n(e.message||"提交失败")).finally(()=>v(!1))):n("请选择反馈类型"):n("请填写反馈内容")},children:w?"提交中…":"提交"})})]})}function j({view:e,hashParams:n,tinode:t}){const[s,o]=i().useState("");let a;return a="fraud-risk-warning"===e||"fraud-risk-confirmation"===e?(0,l.jsx)(g,{secondary:"fraud-risk-confirmation"===e}):"abuse-report-reasons"===e?(0,l.jsx)(m,{hashParams:n,onToast:o}):"abuse-report-details"===e?(0,l.jsx)(f,{hashParams:n,tinode:t,onToast:o}):(0,l.jsx)(x,{tinode:t,onToast:o}),(0,l.jsxs)(l.Fragment,{children:[a,(0,l.jsx)(u,{message:s,onDone:()=>o("")})]})}t.d(n,["oq",0,["fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback"]])},6916:function(e,n,t){"use strict";t.d(n,{A:function(){return y}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(995),l=t(3889),c=t(6948),d=t(1192),h=t(3272),u=t(7981),g=t(8353),p=t(7256),m=t(7849),f=t(4848);const x=(0,o.defineMessages)({alias_invalid:{id:"alias_invalid",defaultMessage:"(invalid)",description:"Error message for invalid alias"},alias_already_taken:{id:"alias_already_taken",defaultMessage:"(already taken)",description:"Error message for alias already taken"},self_topic_name:{id:"self_topic_name",defaultMessage:"Saved messages",description:"Name of self topic for UI"},self_topic_comment:{id:"self_topic_comment",defaultMessage:"Notes, messages, links, files saved for posterity",description:"Comment for self topic for UI"}});class j extends i().Component{constructor(e){super(e);const n=this.props.tinode.getTopic(this.props.topic),t=n.getAccessMode(),s=a.Tinode.isSelfTopicName(this.props.topic);this.state={isMe:a.Tinode.isMeTopicName(this.props.topic),isSelf:s,owner:t&&t.isOwner(),fullName:n.public?n.public.fn:s?this.props.intl.formatMessage(x.self_topic_name):null,private:n.private?n.private.comment:null,description:n.public?n.public.note:s?this.props.intl.formatMessage(x.self_topic_comment):null,avatar:(0,u.to)(n.public?n.public.photo:null),tags:n.tags()||[],newAvatar:null,newAvatarMime:null,aliasError:""},this.previousOnTags=null,this.aliasCheckTimer=null,this.aliasCheckPromise=null,this.tnNewTags=this.tnNewTags.bind(this),this.handleFullNameUpdate=this.handleFullNameUpdate.bind(this),this.handleImageUpdated=this.handleImageUpdated.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handlePrivateUpdate=this.handlePrivateUpdate.bind(this),this.handleAliasUpdate=this.handleAliasUpdate.bind(this),this.handleDescriptionUpdate=this.handleDescriptionUpdate.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this),this.validateAlias=this.validateAlias.bind(this),this.cancelValidator=this.cancelValidator.bind(this)}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnTags=e.onTagsUpdated,e.onTagsUpdated=this.tnNewTags}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousOnTags,this.cancelValidator()}tnNewTags(e){this.setState({tags:e})}handleFullNameUpdate(e){(e=(0,p.W5)(e.trim(),60))&&this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(e,null)))}handlePrivateUpdate(e){e=e.trim().substring(0,60),this.state.private!==e&&(this.setState({private:e}),this.props.onUpdateTopicDesc(this.props.topic,null,e||a.Tinode.DEL_CHAR))}handleDescriptionUpdate(e){(e=e.trim().substring(0,360))&&(this.setState({description:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,null,null,e)))}handleImageUpdated(e,n){this.setState({newAvatar:n,newAvatarMime:e}),n||(this.setState({avatar:null}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,a.Tinode.DEL_CHAR)))}handleAvatarCropped(e,n,t,s){const i=n?URL.createObjectURL(n):null;this.setState({avatar:i,newAvatar:null,newAvatarMime:null}),n&&this.uploadAvatar(e,n,t,s)}uploadAvatar(e,n,t,s){const i=e=>{let{mime:n,blob:t}=e;t.size>4096?(0,g.Lf)(this.props.tinode).upload(t).then(e=>this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,e))).catch(e=>this.props.onError(e.message,"err")):(0,u.Sk)(t).then(e=>{const t=(0,u.to)({data:e.bits,type:n});this.setState({source:t}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,t))})};t>384||s>384||t!=s?(0,u.ag)(n,384,384,h.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:n,width:t,height:s})}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}handleAliasUpdate(e){const n=(e=(e||"").trim())?a.Tinode.setUniqueTag(this.state.tags,a.Tinode.TAG_ALIAS+e.toLowerCase()):a.Tinode.clearTagPrefix(this.state.tags,a.Tinode.TAG_ALIAS);this.handleTagsUpdated(n)}validateAlias(e){if(this.cancelValidator(),!(e=e.trim()))return this.setState({aliasError:""}),!0;if(!a.Tinode.isValidTagValue(e))return this.setState({aliasError:this.props.intl.formatMessage(x.alias_invalid)}),!1;this.setState({aliasError:""});const n=this.props.tinode.getFndTopic();if(!n)return this.setState({aliasError:""}),!0;this.aliasCheckPromise={};const t=new Promise((e,n)=>{this.aliasCheckPromise.resolve=e,this.aliasCheckPromise.reject=n});return this.aliasCheckTimer=setTimeout(t=>{this.aliasCheckTimer=null,n.checkTagUniqueness(`${a.Tinode.TAG_ALIAS}${e}`,this.props.topic).then(e=>{this.aliasCheckPromise.resolve(e),this.setState({aliasError:e?"":this.props.intl.formatMessage(x.alias_already_taken)})}).catch(e=>{this.aliasCheckPromise.reject(e),this.setState({aliasError:e.message})})},1e3),t}cancelValidator(){this.aliasCheckTimer&&(clearTimeout(this.aliasCheckTimer),this.aliasCheckTimer=null,this.aliasCheckPromise.reject(null))}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}render(){if(this.state.newAvatar)return(0,f.jsx)(r.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});const e=this.state.isMe||this.state.owner&&!this.state.isSelf;let n=this.state.tags&&this.state.tags.find(e=>e.startsWith("alias:"));return n&&(n=n.substring(6)),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"panel-form-column",children:[(0,f.jsx)("center",{children:(0,f.jsx)(l.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!e,uid:this.props.topic,title:this.state.fullName,onImageUpdated:this.handleImageUpdated,onError:this.props.onError})}),this.state.isMe?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name",description:"Label for full name editing"})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"full_name_prompt",defaultMessage:"Full name, e.g. John Doe",description:"Input placeholder for person's full name",children:e=>(0,f.jsx)(c.A,{placeholder:e,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})})})]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name",description:"Label for editing topic name"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group",description:"Prompt for entering topic name",children:n=>(0,f.jsx)(c.A,{placeholder:n,readOnly:!e,value:this.state.fullName,required:!0,maxLength:32,onFinished:this.handleFullNameUpdate})})})]}),(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_private",defaultMessage:"Private comment",description:"Label for editing 'private'"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only",description:"Placeholder for editing 'private'",children:e=>(0,f.jsx)(c.A,{placeholder:e,value:this.state.private,onFinished:this.handlePrivateUpdate})})})]})]}),e||n?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsxs)("label",{className:"small "+(this.state.aliasError?"invalid":""),children:[(0,f.jsx)(o.FormattedMessage,{id:"label_alias_edit",defaultMessage:"Alias",description:"Label for editing user or topic alias"})," ",this.state.aliasError]})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"alias_editing_placeholder",defaultMessage:"Alias (optional)",description:"Placeholder for editing user or topic alias",children:t=>(0,f.jsx)(c.A,{placeholder:t,readOnly:!e,value:n,validator:this.validateAlias,iconLeft:"alternate_email",maxLength:24,spellCheck:!1,onFinished:this.handleAliasUpdate})})})]}):null,e||this.state.description?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_description",defaultMessage:"Description",description:"Label for description of user or topic"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:"Description (optional)",description:"Placeholder for editing topic description",children:n=>(0,f.jsx)(c.A,{placeholder:n,readOnly:!e,value:this.state.description,multiline:2,onFinished:this.handleDescriptionUpdate})})})]}):null]}),e&&!this.state.isMe?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"hr"}),(0,f.jsx)(o.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (search & discovery)",description:"Section title for TagManager",children:e=>(0,f.jsx)(d.A,{tinode:this.props.tinode,title:e,activated:!1,tags:this.state.tags,onSubmit:this.handleTagsUpdated})})]}):null]})}}var b=(0,o.injectIntl)(j);class y extends i().Component{constructor(e){super(e),this.props.tinode.getTopic(this.props.topic).getAccessMode(),this.state={tags:[]},this.previousTagsUpdated=void 0,this.onTagsUpdated=this.onTagsUpdated.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this)}componentDidUpdate(e){const n=this.props.tinode.getTopic(e.topic);n&&(n.onTagsUpdated!=this.onTagsUpdated&&("grp"==n.getType()?(this.previousTagsUpdated=n.onTagsUpdated,n.onTagsUpdated=this.onTagsUpdated):this.previousTagsUpdated=void 0),this.state.topic!=e.topic&&this.setState({topic:e.topic}))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousTagsUpdated}onTagsUpdated(e){this.setState({tags:e}),this.previousTagsUpdated&&this.previousTagsUpdated!=this.onTagsUpdated&&this.previousTagsUpdated(e)}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTagsRequest(this.props.topic,e)}render(){return(0,f.jsx)("div",{className:"scrollable-panel",children:(0,f.jsx)(b,{tinode:this.props.tinode,topic:this.props.topic,onUpdateTopicDesc:this.props.onUpdateTopicDesc,onUpdateTags:this.handleTagsUpdated,onError:this.props.onError})})}}},8492:function(e,n,t){"use strict";var s=t(1594),i=t.n(s),o=t(8181),a=t(7256),r=t(7981),l=t(4848);const c="#666C";let d=null;const h=(0,o.defineMessages)({icon_title_play:{id:"icon_title_play",defaultMessage:"Play recording",description:"Icon tool tip for starting audio playback"}});class u extends i().PureComponent{constructor(e){super(e);let n=(0,r.F8)(this.props.preview);(!Array.isArray(n)||n.length<16)&&(n=null),this.state={canPlay:!1,playing:!1,currentTime:"0:00",duration:this.props.duration>0?(0,a.Ye)(this.props.duration/1e3):"-:--",longMin:this.props.duration>=6e5,preview:n},this.initAudio=this.initAudio.bind(this),this.initCanvas=this.initCanvas.bind(this),this.resampleBars=this.resampleBars.bind(this),this.visualize=this.visualize.bind(this),this.handlePlay=this.handlePlay.bind(this),this.handleSeek=this.handleSeek.bind(this),this.handleError=this.handleError.bind(this),this.audioPlayer=null,this.viewBuffer=[],this.canvasRef=i().createRef()}componentDidMount(){this.props.src&&this.initAudio(),this.initCanvas()}componentWillUnmount(){d===this&&(d=null),this.audioPlayer&&(this.audioPlayer.onloadedmetadata=null,this.audioPlayer.ontimeupdate=null,this.audioPlayer.onended=null,this.audioPlayer.pause(),this.audioPlayer=null)}pauseForOtherPlayer(){this.audioPlayer&&this.audioPlayer.pause(),this.setState({playing:!1})}componentDidUpdate(e){if(this.props.src!=e.src&&this.initAudio(),this.props.preview!=e.preview){let e=(0,r.F8)(this.props.preview);(!Array.isArray(e)||e.length<16)&&(e=null),this.setState({preview:e},this.initCanvas)}}initAudio(){this.audioPlayer=new Audio(this.props.src),this.audioPlayer.onloadedmetadata=e=>this.setState({canPlay:!0}),this.audioPlayer.ontimeupdate=e=>this.setState({currentTime:(0,a.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.audioPlayer.onended=e=>{this.audioPlayer.currentTime=0,this.setState({playing:!1,currentTime:(0,a.Ye)(0,this.state.longMin)}),d===this&&(d=null)}}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.viewBuffer=this.resampleBars(this.state.preview),this.visualize()}visualize(){if(!this.canvasRef.current)return;const e=this.effectiveWidth,n=this.canvasRef.current.height;this.canvasContext.lineWidth=6;const t=s=>{if(this.canvasRef.current&&this.audioPlayer&&(this.canvasContext.clearRect(0,0,this.canvasRef.current.width,n),this.viewBuffer)){this.state.playing&&window.requestAnimationFrame(t);const s=this.props.duration?Math.max(0,Math.min(1e3*this.audioPlayer.currentTime/this.props.duration,1))*(e-12):-1;this.canvasContext.beginPath(),this.canvasContext.strokeStyle=c;for(let e=0;e<this.viewBuffer.length;e++){let t=1+10*e+3,i=Math.max(this.viewBuffer[e]*n*.9,1);const o=t<s?c:"#888A";this.canvasContext.strokeStyle!=o&&(this.canvasContext.stroke(),this.canvasContext.beginPath(),this.canvasContext.strokeStyle=o),this.canvasContext.moveTo(t,.5*(n-i)),this.canvasContext.lineTo(t,.5*(n+i))}this.canvasContext.stroke(),this.props.duration&&(this.canvasContext.beginPath(),this.canvasContext.arc(s+12,.5*n,12,0,2*Math.PI),this.canvasContext.fillStyle="#1781d7",this.canvasContext.fill())}};t()}resampleBars(e){const n=(this.canvasRef.current.width-4)/10|0;if(this.effectiveWidth=10*n+4,!Array.isArray(e)||0==e.length)return Array.apply(null,Array(n)).map(e=>.01);const t=e.length/n;let s=[],i=-1;for(let o=0;o<n;o++){let n=o*t|0,a=(o+1)*t|0;if(a==n)s[o]=e[n];else{let t=0;for(let s=n;s<a;s++)t+=e[s];s[o]=Math.max(0,t/(a-n))}i=Math.max(s[o],i)}return i>0?s.map(e=>e/i):Array.apply(null,Array(n)).map(e=>.01)}handlePlay(e){e.preventDefault(),this.state.canPlay&&(this.state.playing?(this.audioPlayer.pause(),this.setState({playing:!1})):this.audioPlayer.readyState>=2&&(d&&d!==this&&d.pauseForOtherPlayer(),d=this,this.audioPlayer.play(),this.setState({playing:!0},this.visualize),this.props.onPlay&&this.props.onPlay()))}handleError(e){console.error(e)}handleSeek(e){if(e.preventDefault(),e.target&&this.props.duration){const n=e.target.getBoundingClientRect(),t=(e.clientX-n.left)/this.effectiveWidth*2;this.audioPlayer.currentTime=this.props.duration*t/1e3,this.setState({currentTime:(0,a.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.state.playing||this.visualize()}}render(){const e="material-icons"+(this.props.short?"":" large")+(this.state.canPlay?"":" disabled"),n=(0,l.jsx)("a",{href:"#",onClick:this.handlePlay,title:this.props.intl.formatMessage(h.icon_title_play),children:(0,l.jsx)("i",{className:e,children:this.state.playing?"pause_circle":this.state.canPlay?"play_circle":"not_interested"})});return(0,l.jsx)("div",{className:"audio-player",children:this.props.short?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),n]}):(0,l.jsxs)(l.Fragment,{children:[n,(0,l.jsxs)("div",{className:"playback-row",children:[(0,l.jsx)("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),(0,l.jsxs)("div",{className:"timer",children:[this.state.currentTime,"/",this.state.duration]})]})]})})}}n.A=(0,o.injectIntl)(u)},995:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);class r extends i().Component{constructor(e){super(e),this.state={panX:0,panY:0,originX:0,originY:0,zoom:1,minZoom:.001,maxZoom:8},this.overlay=i().createRef(),this.cutout=i().createRef(),this.preview=i().createRef(),this.boundingBox=i().createRef(),this.imageWidth=0,this.imageHeight=0,this.mouseX=0,this.mouseY=0,this.prevDistance=0,this.cutoutRect={},this.bBoxRect={},this.originX=0,this.originY=0,this.initScaling=this.initScaling.bind(this),this.onZoom=this.onZoom.bind(this),this.handleZoom=this.handleZoom.bind(this),this.mouseDown=this.mouseDown.bind(this),this.mouseUp=this.mouseUp.bind(this),this.mouseMove=this.mouseMove.bind(this),this.mouseTouch=this.mouseTouch.bind(this),this.positionAll=this.positionAll.bind(this),this.translate=this.translate.bind(this)}componentDidMount(){this.overlay.current.addEventListener("mousedown",this.mouseDown,{passive:!0}),this.overlay.current.addEventListener("touchstart",this.mouseDown,{passive:!0}),this.bBoxRect=this.boundingBox.current.getBoundingClientRect(),this.originX=this.bBoxRect.width/2,this.originY=this.bBoxRect.height/2,this.cutoutRect=this.cutout.current.getBoundingClientRect()}componentWillUnmount(){this.overlay.current&&(this.overlay.current.removeEventListener("mousedown",this.mouseDown),this.overlay.current.removeEventListener("touchstart",this.mouseDown))}positionAll(e,n,t){this.setState({panX:e,panY:n,zoom:t,originX:this.originX-e,originY:this.originY-n});const s=(this.originX-e)*t-this.originX,i=(this.originY-n)*t-this.originY;this.props.onChange((s+this.cutoutRect.left-this.bBoxRect.left)/t,(i+this.cutoutRect.top-this.bBoxRect.top)/t,this.cutoutRect.width/t,this.cutoutRect.height/t,t)}static checkBound(e,n,t,s){let i=Math.min(0,t[0]-n[0]-s,n[1]-t[1]+s);return(0==i||Math.min(0,t[0]-n[0],n[1]-t[1])<i)&&(e+=s),e}initScaling(){const e=this.preview.current.getBoundingClientRect();this.imageWidth=e.width,this.imageHeight=e.height;const n=Math.max(this.cutoutRect.width/e.width,this.cutoutRect.height/e.height);this.setState({minZoom:n,maxZoom:8*n});const t=Math.max(this.bBoxRect.width/e.width,this.bBoxRect.height/e.height),s=this.cutoutRect.left-this.bBoxRect.left-(e.width-this.cutoutRect.width)/2,i=this.cutoutRect.top-this.bBoxRect.top-(e.height-this.cutoutRect.height)/2;this.positionAll(s,i,t)}onZoom(e){this.handleZoom(e.target.value)}handleZoom(e){let n=this.state.panX,t=this.state.panY;const s=this.originX-(this.originX-n)*e,i=s+this.imageWidth*e,o=this.originY-(this.originY-t)*e,a=o+this.imageHeight*e,r=this.cutoutRect.left-this.bBoxRect.left,l=r+this.cutoutRect.width,c=this.cutoutRect.top-this.bBoxRect.top,d=c+this.cutoutRect.height;r<s?n-=(s-r)/e:l>i&&(n+=(l-i)/e),c<o?t-=(o-c)/e:d>a&&(t+=(d-a)/e),this.positionAll(n,t,e)}mouseDown(e){e.touches?(this.mouseX=e.touches[0].pageX,this.mouseY=e.touches[0].pageY):(this.mouseX=e.pageX,this.mouseY=e.pageY),window.addEventListener("mousemove",this.mouseMove,{passive:!1}),window.addEventListener("touchmove",this.mouseTouch,{passive:!1}),window.addEventListener("mouseup",this.mouseUp,{passive:!0}),window.addEventListener("touchend",this.mouseUp,{passive:!0}),document.body.style.userSelect="none"}translate(e,n){const t=(e-this.mouseX)/this.state.zoom,s=(n-this.mouseY)/this.state.zoom;this.mouseX=e,this.mouseY=n;const i=this.preview.current.getBoundingClientRect(),o=r.checkBound(this.state.panX,[i.left,i.right],[this.cutoutRect.left,this.cutoutRect.right],t),a=r.checkBound(this.state.panY,[i.top,i.bottom],[this.cutoutRect.top,this.cutoutRect.bottom],s);this.positionAll(o,a,this.state.zoom)}mouseMove(e){e.preventDefault(),this.translate(e.pageX,e.pageY)}mouseTouch(e){if(e.preventDefault(),1==e.touches.length)return void this.translate(e.touches[0].pageX,e.touches[0].pageY);const[n,t]=e.touches,s=Math.sqrt((n.pageX-t.pageX)*(n.pageX-t.pageX)+(n.pageY-t.pageY)*(n.pageY-t.pageY));this.prevDistance||(this.prevDistance=s/this.state.zoom);let i=s/this.prevDistance;this.handleZoom(Math.max(this.minZoom,Math.min(this.maxZoom,i)))}mouseUp(e){window.removeEventListener("mousemove",this.mouseMove),window.removeEventListener("touchmove",this.mouseTouch),window.removeEventListener("mouseup",this.mouseUp),window.removeEventListener("touchend",this.mouseUp),document.body.style.userSelect="",this.positionAll(this.state.panX,this.state.panY,this.state.zoom)}render(){const e=`translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`,n=`${this.state.originX}px ${this.state.originY}px`,t={top:this.originY-this.state.originY*this.state.zoom+"px",left:this.originX-this.state.originX*this.state.zoom+"px",width:this.imageWidth*this.state.zoom+"px",height:this.imageHeight*this.state.zoom+"px"};return(0,a.jsxs)("div",{className:"cropper",children:[(0,a.jsxs)("div",{className:"bounding-box",ref:this.boundingBox,children:[(0,a.jsx)("img",{src:this.props.source,className:"preview",alt:"",style:{transform:e,transformOrigin:n},ref:this.preview,onLoad:this.initScaling}),(0,a.jsx)("div",{className:"cutout circle",ref:this.cutout}),(0,a.jsx)("div",{className:"overlay",style:t,ref:this.overlay})]}),(0,a.jsx)("div",{className:"zoom-wrapper",children:(0,a.jsx)("input",{type:"range",className:"zoomer",step:"0.001",min:this.state.minZoom,max:this.state.maxZoom,value:this.state.zoom,onChange:this.onZoom})})]})}}var l=t(7981);class c extends i().PureComponent{constructor(e){super(e),this.state={top:0,left:0,width:0,height:0,scale:1},this.handleSubmit=this.handleSubmit.bind(this),this.handleChange=this.handleChange.bind(this)}handleChange(e,n,t,s,i){this.setState({left:e,top:n,width:t,height:s,scale:i})}handleSubmit(){(0,l.CO)(this.props.mime,this.props.avatar,this.state.left,this.state.top,this.state.width,this.state.height,this.state.scale).then(e=>{this.props.onSubmit(e.mime,e.blob,e.width,e.height)}).catch(e=>{this.props.onError(e)})}render(){return(0,a.jsxs)("div",{className:"panel-form",children:[(0,a.jsx)("div",{className:"panel-form-row",children:(0,a.jsx)(r,{source:this.props.avatar,onChange:this.handleChange})}),(0,a.jsxs)("div",{className:"dialog-buttons",children:[this.props.onCancel?(0,a.jsx)("button",{className:"secondary",onClick:this.props.onCancel,children:(0,a.jsx)(o.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}):null,(0,a.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,a.jsx)(o.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})})]})]})}}},3889:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(5247),a=t(9304),r=t(7849),l=(t(3272),t(4848));class c extends i().Component{constructor(e){super(e),this.state={source:e.avatar},this.handleFileReceived=this.handleFileReceived.bind(this)}componentDidUpdate(e){this.props.avatar!=e.avatar&&this.setState({source:this.props.avatar})}handleFileReceived(e){const n=e.target.files[0];this.props.onImageUpdated(n.type,URL.createObjectURL(n),n.name),e.target.value=""}render(){const e="file-input-avatar-"+(""+Math.random()).substring(0,4),n="avatar-upload"+(this.props.readOnly?" read-only":"");return(0,l.jsxs)("div",{className:n,children:[this.props.readOnly||!this.state.source?null:(0,l.jsx)("a",{href:"#",className:"clear-avatar",onClick:e=>{e.preventDefault(),this.props.onImageUpdated()},children:(0,l.jsx)("i",{className:"material-icons",children:"clear"})}),this.state.source?(0,l.jsx)("img",{src:this.props.tinode.authorizeURL((0,r.wk)(this.state.source,"image")),className:"preview"}):this.props.readOnly&&this.props.uid?(0,l.jsx)("div",{className:"avatar-box",children:(0,l.jsx)(o.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:!0,topic:this.props.uid,title:this.props.title})}):(0,l.jsxs)("div",{className:"blank",children:[384,"×",384]}),this.props.readOnly?null:(0,l.jsx)("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileReceived}),this.props.readOnly?null:(0,l.jsx)("label",{htmlFor:e,className:"round",children:(0,l.jsx)("i",{className:"material-icons",children:"file_upload"})}),(0,l.jsx)(a.A,{show:this.props.uploading,large:!0,clear:!0,centered:!0})]})}}},6686:function(e,n,t){"use strict";var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);const r={staff:"verified_user"},l=(0,o.defineMessages)({badge_verified:{id:"badge_verified",defaultMessage:"Verified/official",description:"Explanation of a verified account or topic badge"},badge_staff:{id:"badge_staff",defaultMessage:"Staff-managed",description:"Explanation of a staff-managed account or topic badge"},badge_danger:{id:"badge_danger",defaultMessage:"Untrustworthy",description:"Suspicious or untrustworthy account or topic badge"}});class c extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl;let n=null;return this.props.trustedBadges&&this.props.trustedBadges.length>0?(n=[],this.props.trustedBadges.forEach(t=>{const s=this.props.short?null:e(l["badge_"+t]),i="material-icons "+t+"-color";n.push((0,a.jsxs)("div",{className:"trusted-badge",children:[(0,a.jsx)("i",{className:i,children:r[t]||t})," ",s]},t))}),(0,a.jsx)(a.Fragment,{children:n})):null}}n.A=(0,o.injectIntl)(c)},3207:function(e,n,t){"use strict";t.d(n,{A:function(){return o}});var s=t(1594),i=t.n(s);class o extends i().PureComponent{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}handleChange(){this.props.onChange(this.props.name,!this.props.checked)}render(){let e,n=["material-icons"];Array.isArray(this.props.className)?n.push(...this.props.className):this.props.className&&n.push(this.props.className),this.props.onChange?this.props.checked?(n.push("blue","clickable"),e="check_box"):!1===this.props.checked?(n.push("blue","clickable"),e="check_box_outline_blank"):(n.push("lt-blue"),e="indeterminate_check_box"):e=this.props.checked?"check_box":"check_box_outline_blank";let t={className:n.join(" "),id:this.props.id};return this.props.onChange&&(t.onClick=this.handleChange),i().createElement("i",t,e)}}},4306:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(5247),a=t(4848);class r extends i().PureComponent{constructor(e){super(e),this.handleCancel=this.handleCancel.bind(this)}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.topic,this.props.index)}render(){const e=this.props.title||this.props.topic,n=this.props.invalid?"chip invalid":"chip";return(0,a.jsxs)("div",{className:n,children:[this.props.noAvatar?(0,a.jsx)("span",{className:"spacer"}):(0,a.jsx)("div",{className:"avatar-box",children:(0,a.jsx)(o.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})}),(0,a.jsx)("span",{children:e}),this.props.onCancel&&!this.props.required?(0,a.jsx)("a",{href:"#",onClick:this.handleCancel,children:"×"}):(0,a.jsx)("span",{className:"spacer"})]})}}var l=t(7981);class c extends i().Component{constructor(e){super(e),this.state=c.deriveStateFromProps(e),this.state.input="",this.state.focused=!1,this.handleTextInput=this.handleTextInput.bind(this),this.removeChipAt=this.removeChipAt.bind(this),this.handleChipCancel=this.handleChipCancel.bind(this),this.handleFocusGained=this.handleFocusGained.bind(this),this.handleFocusLost=this.handleFocusLost.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}static deriveStateFromProps(e){return{sortedChips:c.sortChips(e.chips,e.staticMembers),chipIndex:c.indexChips(e.chips)}}componentDidUpdate(e,n){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(c.deriveStateFromProps(this.props)),(!n||this.props.chips.length>n.sortedChips.length)&&this.setState({input:""})}static indexChips(e){const n={};let t=0;return e.forEach(e=>{n[e.user]=t,t++}),n}static sortChips(e,n){const t=[],s=[];return e.forEach(e=>{n&&n.includes(e.user)?t.push(e):s.push(e)}),t.concat(s)}handleTextInput(e){this.setState({input:e.target.value}),this.props.filterFunc&&this.props.filterFunc(e.target.value)}removeChipAt(e){const n=this.state.sortedChips[e];this.props.onChipRemoved(n.user,this.state.chipIndex[n.user])}handleChipCancel(e,n){this.removeChipAt(n)}handleFocusGained(){this.setState({focused:!0})}handleFocusLost(){this.setState({focused:!1}),this.props.onFocusLost&&this.props.onFocusLost(this.state.input)}handleKeyDown(e){if("Backspace"===e.key){if(0==this.state.input.length&&this.state.sortedChips.length>0){const e=this.state.sortedChips.length-1;this.state.sortedChips[e].user!==this.props.staticMembers&&this.removeChipAt(e)}}else"Enter"===e.key?this.props.onEnter&&this.props.onEnter(this.state.input):"Escape"===e.key&&this.props.onCancel&&this.props.onCancel()}render(){const e=[];let n=0;const t=this.props.staticMembers||[];this.state.sortedChips.forEach(s=>{e.push((0,a.jsx)(r,{tinode:this.props.tinode,onCancel:this.handleChipCancel,avatar:(0,l.to)(s.public?s.public.photo:null),title:s.public?s.public.fn:void 0,noAvatar:this.props.avatarDisabled,topic:s.user,required:t.includes(s.user),invalid:s.invalid,index:n},s.user)),n++});const s="chip-input"+(this.state.focused?" focused":""),i=!(this.props.tabIndex>0);return(0,a.jsxs)("div",{className:s,children:[e,(0,a.jsx)("input",{type:"text",placeholder:this.props.prompt,onChange:this.handleTextInput,onFocus:this.handleFocusGained,onBlur:this.handleFocusLost,onKeyDown:this.handleKeyDown,value:this.state.input,tabIndex:this.props.tabIndex,autoFocus:i})]})}}},6565:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(4848);const a={muted:"notifications_off",banned:"block",staff:"verified_user"};class r extends i().PureComponent{render(){let e=null;return this.props.badges&&this.props.badges.length>0?(e=[],this.props.badges.forEach(n=>{const t=n.color?" "+n.color:"";n.icon?e.push((0,o.jsx)("i",{className:"material-icons as-badge"+t,children:a[n.icon]||n.icon},n.key||n.icon)):e.push((0,o.jsx)("span",{className:"badge"+t,children:n.name},n.key||n.name))}),(0,o.jsx)(o.Fragment,{children:e})):null}}},3717:function(e,n,t){"use strict";t.d(n,{A:function(){return m}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(1974),l=t(4848);class c extends i().PureComponent{constructor(e){super(e),this.handleClick=this.handleClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onAction(this.props.action)}render(){const{formatMessage:e}=this.props.intl;return(0,l.jsx)("li",{onClick:this.handleClick,className:"action",children:(0,l.jsx)("div",{className:"action-text",children:e(this.props.title,this.props.values)})})}}var d=(0,o.injectIntl)(c),h=t(7981),u=t(7849);t(3272);const g=(0,o.defineMessages)({badge_you:{id:"badge_you",defaultMessage:"you",description:"Badge for indicating the current user"},badge_owner:{id:"badge_owner",defaultMessage:"owner",description:"Badge for indicating the owner"}});class p extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl,n=Array.isArray(this.props.topicSelected),t=[];let s=0;if(this.props.showSelfTopic){const e=n?this.props.topicSelected.some(a.Tinode.isSelfTopicName):a.Tinode.isSelfTopicName(this.props.topicSelected);t.push((0,l.jsx)(r.A,{tinode:this.props.tinode,avatar:!0,showMode:this.props.showMode,selected:e,showCheckmark:n,onSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,index:t.length,item:"slf"},"slf")),s++}if(this.props.contacts&&this.props.contacts.length>0){const i={};this.props.contacts.forEach(o=>{if(o.action)t.push((0,l.jsx)(d,{title:o.title,action:o.action,values:o.values,onAction:this.props.onAction},o.action));else{const c=this.props.showMode?o.user:o.topic||o.user;if(i[c])return;if(i[c]=!0,this.props.filterFunc&&this.props.filter){const e=[c];o.private&&o.private.comment&&e.push((""+o.private.comment).toLowerCase());const n=(0,u.TP)(c,o.public,null);if(n&&e.push((""+n).toLowerCase()),!this.props.filterFunc(this.props.filter,e))return}const d=a.Tinode.isChannelTopicName(c),p=!d&&a.Tinode.isGroupTopicName(c),m=n?this.props.topicSelected.indexOf(c)>-1:this.props.topicSelected===c,f=[];this.props.showMode&&(c==this.props.myUserId&&f.push({name:e(g.badge_you),color:"green"}),o.acs&&o.acs.isOwner()&&f.push({name:e(g.badge_owner),color:"blue"}));const x=Array.isArray(o.private)?o.private.join(","):o.private?o.private.comment:null;let j,b,y,w;if(!this.props.showMode&&o.latestMessage){const e=o.latestMessage();e&&(b=e.head?e.head.forwarded:null,w=e._status||o.msgStatus(e,!0),y=e.from!=this.props.myUserId,e.content&&(j="string"==typeof e.content?e.content.substr(0,80):a.Drafty.preview(e.content,80)))}t.push((0,l.jsx)(r.A,{tinode:this.props.tinode,title:o.public?(0,u.TP)(c,o.public,null):null,avatar:(0,h.to)(o.public?o.public.photo:null),comment:x,preview:j,previewIsResponse:y,forwarded:b,received:w,unread:this.props.showUnread?o.unread:0,now:o.online&&this.props.connected,acs:o.acs,showMode:this.props.showMode,badges:f,showCheckmark:n,selected:m,pinned:o.pinned,showOnline:this.props.showOnline&&!d,isChannel:d,isGroup:p,showContextMenu:this.props.showContextMenu,isVerified:o.trusted&&o.trusted.verified,isStaff:o.trusted&&o.trusted.staff,isDangerous:o.trusted&&o.trusted.danger,deleted:o._deleted,onSelected:this.props.onTopicSelected,item:c,index:t.length},c)),s++}},this)}return(0,l.jsxs)("div",{className:this.props.noScroll?null:"scrollable-panel",children:[0==s?(0,l.jsx)("div",{className:"center-medium-text",style:{whiteSpace:"pre-line"},children:this.props.emptyListMessage}):null,t.length>0?(0,l.jsx)("ul",{className:"contact-box",children:t}):null]})}}var m=(0,o.injectIntl)(p)},1974:function(e,n,t){"use strict";t.d(n,{A:function(){return f}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(6565),l=t(5247),c=t(4848);class d extends i().PureComponent{render(){return this.props.count>0?(0,c.jsx)("span",{className:"unread",children:this.props.count>9?"9+":this.props.count}):null}}var h=t(2067),u=t(7849),g=t(7256);const p=(0,o.defineMessages)({self_topic_name:{id:"self_topic_name",defaultMessage:"Saved messages",description:"Name of self topic for UI"},self_topic_comment:{id:"self_topic_comment",defaultMessage:"Notes, messages, links, files saved for posterity",description:"Comment for self topic for UI"}});class m extends i().Component{constructor(e){super(e),this.handleClick=this.handleClick.bind(this),this.handleContextClick=this.handleContextClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onSelected&&this.props.onSelected(this.props.item,this.props.index)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.props.item,topicTitle:this.props.title,y:e.pageY,x:e.pageX})}render(){let e=this.props.title;const n=a.Tinode.isSelfTopicName(this.props.item);e?e.length>30&&(e=(0,g.W5)(e,30)):e=n?this.props.intl.formatMessage(p.self_topic_name):(0,c.jsx)("i",{children:(0,c.jsx)(o.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed",description:"Title shown when the topic has no name"})});const t=this.props.now?"online":"offline",s=!this.props.avatar||this.props.avatar,m=this.props.badges?this.props.badges.slice():[],f=[];let x;this.props.isVerified&&f.push({icon:"verified",color:"verified-color"}),this.props.isStaff&&f.push({icon:"staff",color:"staff-color"}),this.props.isDangerous&&f.push({icon:"dangerous",color:"danger-color"}),this.props.acs&&(this.props.showMode&&m.push({name:this.props.acs.getMode(),key:"mode"}),this.props.acs.isMuted()&&f.push({icon:"muted"}),this.props.acs.isJoiner()||f.push({icon:"banned"})),"string"==typeof this.props.preview?x=this.props.preview:a.Drafty.isValid(this.props.preview)?x=i().createElement(i().Fragment,null,a.Drafty.format(this.props.preview,h.TU,{formatMessage:this.props.intl.formatMessage,previewIsResponse:this.props.previewIsResponse})):this.props.preview&&(x=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("i",{className:"material-icons gray",children:"warning_amber"})," ",(0,c.jsx)("i",{className:"gray",children:(0,c.jsx)(o.FormattedMessage,{id:"invalid_content",defaultMessage:"invalid content",description:"Shown when the message is unreadable"})})]}));const j=(0,u.LO)(this.props.received),b=j?(0,c.jsx)("i",{className:"material-icons small space-right"+(j.color?" "+j.color:""),children:j.name}):null,y="contact-title"+(this.props.deleted?" deleted":""),w=x||this.props.comment||(n?this.props.intl.formatMessage(p.self_topic_comment):" "),v=this.props.showCheckmark?null:this.props.selected?"selected":this.props.pinned?"tpinned":null;return(0,c.jsxs)("li",{className:v,onClick:this.handleClick,children:[(0,c.jsxs)("div",{className:"avatar-box",children:[(0,c.jsx)(l.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:s,title:this.props.title,topic:this.props.item,deleted:this.props.deleted}),this.props.deleted?(0,c.jsx)("i",{className:"deleted material-icons",children:"cancel"}):!n&&this.props.showOnline?(0,c.jsx)("span",{className:t}):this.props.showCheckmark&&this.props.selected?(0,c.jsx)("i",{className:"checkmark material-icons",children:"check_circle"}):null]}),(0,c.jsxs)("div",{className:"text-box",children:[(0,c.jsxs)("div",{children:[(0,c.jsx)("span",{className:y,children:e}),this.props.isGroup?(0,c.jsx)("i",{className:"material-icons as-badge",children:"group"}):null,this.props.isChannel?(0,c.jsx)("i",{className:"material-icons as-badge",children:"podcasts"}):null,n?null:(0,c.jsx)(r.A,{badges:f}),this.props.deleted?null:(0,c.jsx)(d,{count:this.props.unread})]}),this.props.showMode?(0,c.jsx)("span",{children:(0,c.jsx)(r.A,{badges:m})}):this.props.small?null:(0,c.jsxs)("div",{className:"contact-comment",children:[b,(0,c.jsx)("span",{children:w})]})]}),this.props.showContextMenu?(0,c.jsx)("span",{className:"menuTrigger",children:(0,c.jsx)("a",{href:"#",onClick:this.handleContextClick,children:(0,c.jsx)("i",{className:"material-icons",children:"expand_more"})})}):null]})}}var f=(0,o.injectIntl)(m)},3405:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(5370),a=t(4848);class r extends i().PureComponent{constructor(e){super(e),this.state={show:!1},this.hide=this.hide.bind(this)}componentDidUpdate(e){e.level!==this.props.level&&this.setState({show:!!this.props.level})}hide(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}render(){const e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",n="info-box "+e;return(0,a.jsxs)("div",{className:n,children:[(0,a.jsx)("div",{className:"icon",children:(0,a.jsx)("i",{className:"material-icons",children:e})}),(0,a.jsxs)("span",{children:[this.props.text,this.props.action?(0,a.jsxs)(a.Fragment,{children:["  ",(0,a.jsx)("a",{href:"#",style:{whiteSpace:"nowrap"},onClick:e=>{e.preventDefault(),this.props.action()},children:this.props.actionText})]}):null]}),(0,a.jsx)("div",{className:"cancel",children:(0,a.jsx)(o.A,{onCancel:this.hide})})]})}}},4752:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);class r extends i().PureComponent{render(){return(0,a.jsxs)("div",{className:"uploader",children:[(0,a.jsx)("div",{children:(0,a.jsx)("span",{style:{width:100*this.props.progress+"%"}})}),this.props.progress<.999?(0,a.jsxs)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()},children:[(0,a.jsx)("i",{className:"material-icons",children:"close"})," ",(0,a.jsx)(o.FormattedMessage,{id:"action_cancel",defaultMessage:"cancel",description:"Call to action [cancel]"})]}):(0,a.jsx)(o.FormattedMessage,{id:"upload_finishing",defaultMessage:"finishing...",description:"Notification that upload is finishing"})]})}}},6948:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{constructor(e){super(e),this.inputRef=i().createRef(),this.state={value:this.props.value||"",visible:!1},this.handleVisibility=this.handleVisibility.bind(this),this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this)}componentDidMount(){this.props.autoFocus&&this.inputRef.current.focus()}handeTextChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e)}handleVisibility(e){e.preventDefault(),this.setState({visible:!this.state.visible})}handleKeyDown(e){27==e.keyCode?(this.setState({value:this.props.value||"",visible:!1}),this.props.onFinished&&this.props.onFinished()):13==e.keyCode&&this.handleEditingFinished()}handleEditingFinished(e){if(e){let n=e.currentTarget;setTimeout(e=>{n.contains(document.activeElement)||this.props.onFinished&&this.props.onFinished(this.state.value)},0)}else this.props.onFinished&&this.props.onFinished(this.state.value.trim())}render(){return(0,o.jsxs)("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished,children:[(0,o.jsx)("input",{className:"with-icon-right",type:this.state.visible?"text":"password",value:this.state.value,placeholder:this.props.placeholder,maxLength:32,required:this.props.required?"required":"",autoFocus:this.props.autoFocus?"autoFocus":"",autoComplete:this.props.autoComplete,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown,ref:this.inputRef}),(0,o.jsx)("span",{onClick:this.handleVisibility,children:(0,o.jsx)("i",{className:"material-icons clickable light-gray",children:this.state.visible?"visibility":"visibility_off"})})]})}}class r extends i().Component{constructor(e){super(e),this.selfRef=i().createRef(),this.state={active:e.active,initialValue:e.value||"",value:e.value||"",valid:!0},this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleStartEditing=this.handleStartEditing.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handlePasswordFinished=this.handlePasswordFinished.bind(this)}componentDidUpdate(e,n){const t=this.props.value||"";n.initialValue==t||n.active||this.setState({initialValue:t,value:t})}handeTextChange(e){this.setState({value:e.target.value||""}),this.props.validator&&Promise.resolve(this.props.validator(e.target.value)).then(e=>{this.setState({valid:e})}).catch(e=>{e&&this.setState({valid:!1})})}handleKeyDown(e){27===e.keyCode?this.setState({value:this.props.value,active:!1}):13===e.keyCode&&this.handleEditingFinished(e)}handleStartEditing(){this.props.readOnly||this.setState({active:!0},e=>{this.selfRef.current&&this.selfRef.current.focus()})}handleEditingFinished(e){const n=this.state.value.trim();!this.props.required||e.target.checkValidity()&&n?(this.setState({active:!1}),(n||this.props.value)&&n!==this.props.value&&this.state.valid&&this.props.onFinished(n)):this.setState({value:this.props.value,active:!1})}handlePasswordFinished(e){this.setState({active:!1}),e&&e!==this.props.value&&this.props.onFinished(e)}render(){if(!this.state.active){let e="password"==this.props.type?"••••••••":this.state.value,n="in-place-edit"+(this.props.readOnly?" disabled":"");return e||(e=this.props.placeholder,n+=" placeholder"),this.props.multiline&&1!=this.props.multiline||(n+=" short"),(0,o.jsxs)("span",{className:n,onClick:this.handleStartEditing,children:[this.props.iconLeft&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconLeft}),(0,o.jsx)("span",{children:e}),this.props.iconRight&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconRight})]})}let e;const n={};return"password"==this.props.type?(e=a,n.onFinished=this.handlePasswordFinished):(this.props.multiline>1?(e="textarea",n.rows=this.props.multiline,n.className="in-place-edit"):(e="input",n.type=this.props.type||"text",n.className="in-place-edit"+(this.props.iconLeft?" with-icon-left":this.props.iconRight?" with-icon-right":""),this.props.maxLength&&(n.maxLength=this.props.maxLength)),n.value=this.state.value,n.className+=this.state.valid?"":" invalid",n.ref=this.selfRef,n.onChange=this.handeTextChange,n.onKeyDown=this.handleKeyDown,n.onBlur=this.handleEditingFinished),n.placeholder=this.props.placeholder,n.required=this.props.required?"required":"",n.autoComplete=this.props.autoComplete,n.autoFocus=!0,void 0!==this.props.spellCheck&&(n.spellCheck=this.props.spellCheck?"true":"false"),this.props.iconLeft||this.props.iconRight?(0,o.jsxs)(o.Fragment,{children:[this.props.iconLeft&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconLeft}),i().createElement(e,n,null),this.props.iconRight&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconRight})]}):i().createElement(e,n,null)}}},5247:function(e,n,t){"use strict";t.d(n,{A:function(){return d}});var s=t(1594),i=t.n(s),o=t(4532),a=t(7256),r=t(7849),l=t(3272),c=t(4848);class d extends i().PureComponent{render(){let e;if(!0===this.props.avatar)if(o.Tinode.isSelfTopicName(this.props.topic))e=(0,c.jsx)("img",{className:"avatar self",alt:"avatar",src:l.Yd});else{const n=o.Tinode.isGroupTopicName(this.props.topic),t=(0,a.kJ)(this.props.topic,n);if(this.props.topic&&this.props.title&&this.props.title.trim()){const n=this.props.title.trim().charAt(0),s="lettertile "+t+(this.props.deleted?" disabled":"");e=(0,c.jsx)("div",{className:s,children:(0,c.jsx)("div",{children:n})})}else{const s="material-icons "+t+(this.props.deleted?" disabled":"");e=n?(0,c.jsx)("i",{className:s,children:"group"}):(0,c.jsx)("i",{className:s,children:"person"})}}else if(this.props.avatar){const n=this.props.authorizeURL((0,r.wk)(this.props.avatar,"image")),t="avatar"+(this.props.deleted?" deleted":"");e=(0,c.jsx)("img",{className:t,alt:"avatar",src:n,onError:e=>{e.target.onerror=null,e.target.src="img/broken_image.png"}})}else e=null;return e}}},9304:function(e,n,t){"use strict";t.d(n,{A:function(){return a}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{render(){const e="load-spinner-box"+(this.props.large?" large":"")+(this.props.clear?" clear":"")+(this.props.centered?" centered":"");return this.props.show?(0,o.jsx)("div",{className:e,children:(0,o.jsx)("div",{className:"loader-spinner"})}):null}}},5370:function(e,n,t){"use strict";t.d(n,{A:function(){return a}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{render(){return(0,o.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()},children:(0,o.jsx)("i",{className:"material-icons",children:"close"})})}}},1192:function(e,n,t){"use strict";t.d(n,{A:function(){return d}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4306),r=t(4532),l=(t(3272),t(7849)),c=t(4848);class d extends i().Component{constructor(e){super(e),this.state={tags:this.props.tags||[],alias:r.Tinode.tagByPrefix(this.props.tags,r.Tinode.TAG_ALIAS)||"",tagInput:"",activated:this.props.activated},this.handleTagInput=this.handleTagInput.bind(this),this.handleAddTag=this.handleAddTag.bind(this),this.handleRemoveTag=this.handleRemoveTag.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,n){const t=e.tags||[];return(0,l.af)(t,n.tags)||n.activated?null:{tags:t||[],alias:r.Tinode.tagByPrefix(t,r.Tinode.TAG_ALIAS)||""}}handleTagInput(e){if(this.setState({tagInput:e}),e.length>0){const n=e[e.length-1];'"'==e[0]?e.length>1&&'"'==n&&this.handleAddTag(e.substring(1,e.length-1)):","!=n&&" "!=n&&";"!=n&&'"'!=n||this.handleAddTag(e.substring(0,e.length-1).trim())}}handleAddTag(e){const n=this.props.tinode.getServerParam(r.Tinode.MAX_TAG_COUNT,16);if(e.length>0&&this.state.tags.length<n){const n=this.state.tags.slice(0);return n.push(e),this.setState({tags:n,tagInput:""}),this.props.onTagsChanged&&this.props.onTagsChanged(n),n}return this.state.tags}handleRemoveTag(e,n){const t=this.state.tags.slice(0);t.splice(n,1),this.setState({tags:t}),this.props.onTagsChanged&&this.props.onTagsChanged(t)}handleSubmit(){let e=this.handleAddTag(this.state.tagInput.trim());e=r.Tinode.setUniqueTag(e,this.state.alias),this.props.onSubmit(e),this.setState({activated:!1,tags:this.props.tags||[]})}handleCancel(){this.setState({activated:!1,tagInput:"",tags:this.props.tags||[]}),this.props.onCancel&&this.props.onCancel()}render(){const e=this.props.tinode.getServerParam(r.Tinode.MIN_TAG_LENGTH,2),n=this.props.tinode.getServerParam(r.Tinode.MAX_TAG_LENGTH,96);let t=[];return this.state.activated?this.state.tags.forEach(s=>{s!=this.state.alias&&t.push({user:s,invalid:s.length<e||s.length>n})}):(this.state.tags.forEach(e=>{e!=this.state.alias&&t.push((0,c.jsx)("span",{className:"badge",children:e},t.length))}),0==t.length&&(t=(0,c.jsx)("i",{children:(0,c.jsx)(o.FormattedMessage,{id:"tags_not_found",defaultMessage:"No tags defined. Add some.",description:""})}))),(0,c.jsxs)("div",{className:"panel-form-column",children:[(0,c.jsx)("div",{className:"panel-form-row",children:(0,c.jsx)("label",{className:"small",children:this.props.title})}),this.state.activated?(0,c.jsxs)("div",{children:[(0,c.jsx)(o.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:"Add some tags",description:"Tag editor prompt when no tags are found.",children:e=>(0,c.jsx)(a.A,{tinode:this.props.tinode,chips:t,avatarDisabled:!0,prompt:e,tabIndex:this.props.tabIndex,onEnter:this.handleAddTag,onFocusLost:this.handleAddTag,onCancel:this.handleCancel,onChipRemoved:this.handleRemoveTag,filterFunc:this.handleTagInput})}),this.props.onSubmit||this.props.onCancel?(0,c.jsxs)("div",{id:"tag-manager-buttons",className:"dialog-buttons panel-form-row",children:[(0,c.jsx)("button",{className:"outline",onClick:this.handleCancel,children:(0,c.jsx)(o.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}),(0,c.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,c.jsx)(o.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})})]}):null]}):(0,c.jsxs)("div",{className:"quoted",children:[(0,c.jsxs)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.setState({activated:!0})},children:[(0,c.jsx)("i",{className:"material-icons",children:"edit"}),"  ",(0,c.jsx)(o.FormattedMessage,{id:"title_manage_tags",defaultMessage:"Manage",description:"Section title for the list of tags"})]}),(0,c.jsx)(c.Fragment,{children:t})]})]})}}},6624:function(e){var n;"undefined"!=typeof self&&self,n=function(){return function(e){var n={};function t(s){if(n[s])return n[s].exports;var i=n[s]={i:s,l:!1,exports:{}};return e[s].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=n,t.d=function(e,n,s){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=3)}([function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(e,n){this.width=n,this.height=e.length/n,this.data=e}return e.createEmpty=function(n,t){return new e(new Uint8ClampedArray(n*t),n)},e.prototype.get=function(e,n){return!(e<0||e>=this.width||n<0||n>=this.height||!this.data[n*this.width+e])},e.prototype.set=function(e,n,t){this.data[n*this.width+e]=t?1:0},e.prototype.setRegion=function(e,n,t,s,i){for(var o=n;o<n+s;o++)for(var a=e;a<e+t;a++)this.set(a,o,!!i)},e}();n.BitMatrix=s},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(2);n.addOrSubtractGF=function(e,n){return e^n};var i=function(){function e(e,n,t){this.primitive=e,this.size=n,this.generatorBase=t,this.expTable=new Array(this.size),this.logTable=new Array(this.size);for(var i=1,o=0;o<this.size;o++)this.expTable[o]=i,(i*=2)>=this.size&&(i=(i^this.primitive)&this.size-1);for(o=0;o<this.size-1;o++)this.logTable[this.expTable[o]]=o;this.zero=new s.default(this,Uint8ClampedArray.from([0])),this.one=new s.default(this,Uint8ClampedArray.from([1]))}return e.prototype.multiply=function(e,n){return 0===e||0===n?0:this.expTable[(this.logTable[e]+this.logTable[n])%(this.size-1)]},e.prototype.inverse=function(e){if(0===e)throw new Error("Can't invert 0");return this.expTable[this.size-this.logTable[e]-1]},e.prototype.buildMonomial=function(e,n){if(e<0)throw new Error("Invalid monomial degree less than 0");if(0===n)return this.zero;var t=new Uint8ClampedArray(e+1);return t[0]=n,new s.default(this,t)},e.prototype.log=function(e){if(0===e)throw new Error("Can't take log(0)");return this.logTable[e]},e.prototype.exp=function(e){return this.expTable[e]},e}();n.default=i},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(1),i=function(){function e(e,n){if(0===n.length)throw new Error("No coefficients.");this.field=e;var t=n.length;if(t>1&&0===n[0]){for(var s=1;s<t&&0===n[s];)s++;if(s===t)this.coefficients=e.zero.coefficients;else{this.coefficients=new Uint8ClampedArray(t-s);for(var i=0;i<this.coefficients.length;i++)this.coefficients[i]=n[s+i]}}else this.coefficients=n}return e.prototype.degree=function(){return this.coefficients.length-1},e.prototype.isZero=function(){return 0===this.coefficients[0]},e.prototype.getCoefficient=function(e){return this.coefficients[this.coefficients.length-1-e]},e.prototype.addOrSubtract=function(n){var t;if(this.isZero())return n;if(n.isZero())return this;var i=this.coefficients,o=n.coefficients;i.length>o.length&&(i=(t=[o,i])[0],o=t[1]);for(var a=new Uint8ClampedArray(o.length),r=o.length-i.length,l=0;l<r;l++)a[l]=o[l];for(l=r;l<o.length;l++)a[l]=s.addOrSubtractGF(i[l-r],o[l]);return new e(this.field,a)},e.prototype.multiply=function(n){if(0===n)return this.field.zero;if(1===n)return this;for(var t=this.coefficients.length,s=new Uint8ClampedArray(t),i=0;i<t;i++)s[i]=this.field.multiply(this.coefficients[i],n);return new e(this.field,s)},e.prototype.multiplyPoly=function(n){if(this.isZero()||n.isZero())return this.field.zero;for(var t=this.coefficients,i=t.length,o=n.coefficients,a=o.length,r=new Uint8ClampedArray(i+a-1),l=0;l<i;l++)for(var c=t[l],d=0;d<a;d++)r[l+d]=s.addOrSubtractGF(r[l+d],this.field.multiply(c,o[d]));return new e(this.field,r)},e.prototype.multiplyByMonomial=function(n,t){if(n<0)throw new Error("Invalid degree less than 0");if(0===t)return this.field.zero;for(var s=this.coefficients.length,i=new Uint8ClampedArray(s+n),o=0;o<s;o++)i[o]=this.field.multiply(this.coefficients[o],t);return new e(this.field,i)},e.prototype.evaluateAt=function(e){var n=0;if(0===e)return this.getCoefficient(0);var t=this.coefficients.length;if(1===e)return this.coefficients.forEach(function(e){n=s.addOrSubtractGF(n,e)}),n;n=this.coefficients[0];for(var i=1;i<t;i++)n=s.addOrSubtractGF(this.field.multiply(e,n),this.coefficients[i]);return n},e}();n.default=i},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(4),i=t(5),o=t(11),a=t(12);function r(e){var n=a.locate(e);if(!n)return null;for(var t=0,s=n;t<s.length;t++){var r=s[t],l=o.extract(e,r),c=i.decode(l.matrix);if(c)return{binaryData:c.bytes,data:c.text,chunks:c.chunks,version:c.version,location:{topRightCorner:l.mappingFunction(r.dimension,0),topLeftCorner:l.mappingFunction(0,0),bottomRightCorner:l.mappingFunction(r.dimension,r.dimension),bottomLeftCorner:l.mappingFunction(0,r.dimension),topRightFinderPattern:r.topRight,topLeftFinderPattern:r.topLeft,bottomLeftFinderPattern:r.bottomLeft,bottomRightAlignmentPattern:r.alignmentPattern}}}return null}var l={inversionAttempts:"attemptBoth"};function c(e,n,t,i){void 0===i&&(i={});var o=l;Object.keys(o||{}).forEach(function(e){o[e]=i[e]||o[e]});var a="attemptBoth"===o.inversionAttempts||"invertFirst"===o.inversionAttempts,c="onlyInvert"===o.inversionAttempts||"invertFirst"===o.inversionAttempts,d=s.binarize(e,n,t,a),h=d.binarized,u=d.inverted,g=r(c?u:h);return g||"attemptBoth"!==o.inversionAttempts&&"invertFirst"!==o.inversionAttempts||(g=r(c?h:u)),g}c.default=c,n.default=c},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0);function i(e,n,t){return e<n?n:e>t?t:e}var o=function(){function e(e,n){this.width=e,this.data=new Uint8ClampedArray(e*n)}return e.prototype.get=function(e,n){return this.data[n*this.width+e]},e.prototype.set=function(e,n,t){this.data[n*this.width+e]=t},e}();n.binarize=function(e,n,t,a){if(e.length!==n*t*4)throw new Error("Malformed data passed to binarizer.");for(var r=new o(n,t),l=0;l<n;l++)for(var c=0;c<t;c++){var d=e[4*(c*n+l)+0],h=e[4*(c*n+l)+1],u=e[4*(c*n+l)+2];r.set(l,c,.2126*d+.7152*h+.0722*u)}for(var g=Math.ceil(n/8),p=Math.ceil(t/8),m=new o(g,p),f=0;f<p;f++)for(var x=0;x<g;x++){var j=0,b=1/0,y=0;for(c=0;c<8;c++)for(l=0;l<8;l++){var w=r.get(8*x+l,8*f+c);j+=w,b=Math.min(b,w),y=Math.max(y,w)}var v=j/Math.pow(8,2);if(y-b<=24&&(v=b/2,f>0&&x>0)){var k=(m.get(x,f-1)+2*m.get(x-1,f)+m.get(x-1,f-1))/4;b<k&&(v=k)}m.set(x,f,v)}var C=s.BitMatrix.createEmpty(n,t),z=null;for(a&&(z=s.BitMatrix.createEmpty(n,t)),f=0;f<p;f++)for(x=0;x<g;x++){for(var _=i(x,2,g-3),S=i(f,2,p-3),N=(j=0,-2);N<=2;N++)for(var T=-2;T<=2;T++)j+=m.get(_+N,S+T);var B=j/25;for(N=0;N<8;N++)for(T=0;T<8;T++){l=8*x+N,c=8*f+T;var P=r.get(l,c);C.set(l,c,P<=B),a&&z.set(l,c,!(P<=B))}}return a?{binarized:C,inverted:z}:{binarized:C}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0),i=t(6),o=t(9),a=t(10);function r(e,n){for(var t=e^n,s=0;t;)s++,t&=t-1;return s}function l(e,n){return n<<1|e}var c=[{bits:21522,formatInfo:{errorCorrectionLevel:1,dataMask:0}},{bits:20773,formatInfo:{errorCorrectionLevel:1,dataMask:1}},{bits:24188,formatInfo:{errorCorrectionLevel:1,dataMask:2}},{bits:23371,formatInfo:{errorCorrectionLevel:1,dataMask:3}},{bits:17913,formatInfo:{errorCorrectionLevel:1,dataMask:4}},{bits:16590,formatInfo:{errorCorrectionLevel:1,dataMask:5}},{bits:20375,formatInfo:{errorCorrectionLevel:1,dataMask:6}},{bits:19104,formatInfo:{errorCorrectionLevel:1,dataMask:7}},{bits:30660,formatInfo:{errorCorrectionLevel:0,dataMask:0}},{bits:29427,formatInfo:{errorCorrectionLevel:0,dataMask:1}},{bits:32170,formatInfo:{errorCorrectionLevel:0,dataMask:2}},{bits:30877,formatInfo:{errorCorrectionLevel:0,dataMask:3}},{bits:26159,formatInfo:{errorCorrectionLevel:0,dataMask:4}},{bits:25368,formatInfo:{errorCorrectionLevel:0,dataMask:5}},{bits:27713,formatInfo:{errorCorrectionLevel:0,dataMask:6}},{bits:26998,formatInfo:{errorCorrectionLevel:0,dataMask:7}},{bits:5769,formatInfo:{errorCorrectionLevel:3,dataMask:0}},{bits:5054,formatInfo:{errorCorrectionLevel:3,dataMask:1}},{bits:7399,formatInfo:{errorCorrectionLevel:3,dataMask:2}},{bits:6608,formatInfo:{errorCorrectionLevel:3,dataMask:3}},{bits:1890,formatInfo:{errorCorrectionLevel:3,dataMask:4}},{bits:597,formatInfo:{errorCorrectionLevel:3,dataMask:5}},{bits:3340,formatInfo:{errorCorrectionLevel:3,dataMask:6}},{bits:2107,formatInfo:{errorCorrectionLevel:3,dataMask:7}},{bits:13663,formatInfo:{errorCorrectionLevel:2,dataMask:0}},{bits:12392,formatInfo:{errorCorrectionLevel:2,dataMask:1}},{bits:16177,formatInfo:{errorCorrectionLevel:2,dataMask:2}},{bits:14854,formatInfo:{errorCorrectionLevel:2,dataMask:3}},{bits:9396,formatInfo:{errorCorrectionLevel:2,dataMask:4}},{bits:8579,formatInfo:{errorCorrectionLevel:2,dataMask:5}},{bits:11994,formatInfo:{errorCorrectionLevel:2,dataMask:6}},{bits:11245,formatInfo:{errorCorrectionLevel:2,dataMask:7}}],d=[function(e){return(e.y+e.x)%2==0},function(e){return e.y%2==0},function(e){return e.x%3==0},function(e){return(e.y+e.x)%3==0},function(e){return(Math.floor(e.y/2)+Math.floor(e.x/3))%2==0},function(e){return e.x*e.y%2+e.x*e.y%3==0},function(e){return(e.y*e.x%2+e.y*e.x%3)%2==0},function(e){return((e.y+e.x)%2+e.y*e.x%3)%2==0}];function h(e){var n=function(e){var n=e.height,t=Math.floor((n-17)/4);if(t<=6)return a.VERSIONS[t-1];for(var s=0,i=5;i>=0;i--)for(var o=n-9;o>=n-11;o--)s=l(e.get(o,i),s);var c=0;for(o=5;o>=0;o--)for(i=n-9;i>=n-11;i--)c=l(e.get(o,i),c);for(var d,h=1/0,u=0,g=a.VERSIONS;u<g.length;u++){var p=g[u];if(p.infoBits===s||p.infoBits===c)return p;var m=r(s,p.infoBits);m<h&&(d=p,h=m),(m=r(c,p.infoBits))<h&&(d=p,h=m)}return h<=3?d:void 0}(e);if(!n)return null;var t=function(e){for(var n=0,t=0;t<=8;t++)6!==t&&(n=l(e.get(t,8),n));for(var s=7;s>=0;s--)6!==s&&(n=l(e.get(8,s),n));var i=e.height,o=0;for(s=i-1;s>=i-7;s--)o=l(e.get(8,s),o);for(t=i-8;t<i;t++)o=l(e.get(t,8),o);for(var a=1/0,d=null,h=0,u=c;h<u.length;h++){var g=u[h],p=g.bits,m=g.formatInfo;if(p===n||p===o)return m;var f=r(n,p);f<a&&(d=m,a=f),n!==o&&(f=r(o,p))<a&&(d=m,a=f)}return a<=3?d:null}(e);if(!t)return null;var h=function(e,n,t){var s=n.errorCorrectionLevels[t],i=[],o=0;if(s.ecBlocks.forEach(function(e){for(var n=0;n<e.numBlocks;n++)i.push({numDataCodewords:e.dataCodewordsPerBlock,codewords:[]}),o+=e.dataCodewordsPerBlock+s.ecCodewordsPerBlock}),e.length<o)return null;e=e.slice(0,o);for(var a=s.ecBlocks[0].dataCodewordsPerBlock,r=0;r<a;r++)for(var l=0,c=i;l<c.length;l++)c[l].codewords.push(e.shift());if(s.ecBlocks.length>1){var d=s.ecBlocks[0].numBlocks,h=s.ecBlocks[1].numBlocks;for(r=0;r<h;r++)i[d+r].codewords.push(e.shift())}for(;e.length>0;)for(var u=0,g=i;u<g.length;u++)g[u].codewords.push(e.shift());return i}(function(e,n,t){for(var i=d[t.dataMask],o=e.height,a=function(e){var n=17+4*e.versionNumber,t=s.BitMatrix.createEmpty(n,n);t.setRegion(0,0,9,9,!0),t.setRegion(n-8,0,8,9,!0),t.setRegion(0,n-8,9,8,!0);for(var i=0,o=e.alignmentPatternCenters;i<o.length;i++)for(var a=o[i],r=0,l=e.alignmentPatternCenters;r<l.length;r++){var c=l[r];6===a&&6===c||6===a&&c===n-7||a===n-7&&6===c||t.setRegion(a-2,c-2,5,5,!0)}return t.setRegion(6,9,1,n-17,!0),t.setRegion(9,6,n-17,1,!0),e.versionNumber>6&&(t.setRegion(n-11,0,3,6,!0),t.setRegion(0,n-11,6,3,!0)),t}(n),r=[],c=0,h=0,u=!0,g=o-1;g>0;g-=2){6===g&&g--;for(var p=0;p<o;p++)for(var m=u?o-1-p:p,f=0;f<2;f++){var x=g-f;if(!a.get(x,m)){h++;var j=e.get(x,m);i({y:m,x:x})&&(j=!j),c=l(j,c),8===h&&(r.push(c),h=0,c=0)}}u=!u}return r}(e,n,t),n,t.errorCorrectionLevel);if(!h)return null;for(var u=h.reduce(function(e,n){return e+n.numDataCodewords},0),g=new Uint8ClampedArray(u),p=0,m=0,f=h;m<f.length;m++){var x=f[m],j=o.decode(x.codewords,x.codewords.length-x.numDataCodewords);if(!j)return null;for(var b=0;b<x.numDataCodewords;b++)g[p++]=j[b]}try{return i.decode(g,n.versionNumber)}catch(e){return null}}n.decode=function(e){if(null==e)return null;var n=h(e);if(n)return n;for(var t=0;t<e.width;t++)for(var s=t+1;s<e.height;s++)e.get(t,s)!==e.get(s,t)&&(e.set(t,s,!e.get(t,s)),e.set(s,t,!e.get(s,t)));return h(e)}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s,i,o=t(7),a=t(8);function r(e,n){for(var t=[],s="",i=[10,12,14][n],o=e.readBits(i);o>=3;){if((c=e.readBits(10))>=1e3)throw new Error("Invalid numeric value above 999");var a=Math.floor(c/100),r=Math.floor(c/10)%10,l=c%10;t.push(48+a,48+r,48+l),s+=a.toString()+r.toString()+l.toString(),o-=3}if(2===o){if((c=e.readBits(7))>=100)throw new Error("Invalid numeric value above 99");a=Math.floor(c/10),r=c%10,t.push(48+a,48+r),s+=a.toString()+r.toString()}else if(1===o){var c;if((c=e.readBits(4))>=10)throw new Error("Invalid numeric value above 9");t.push(48+c),s+=c.toString()}return{bytes:t,text:s}}!function(e){e.Numeric="numeric",e.Alphanumeric="alphanumeric",e.Byte="byte",e.Kanji="kanji",e.ECI="eci"}(s=n.Mode||(n.Mode={})),function(e){e[e.Terminator=0]="Terminator",e[e.Numeric=1]="Numeric",e[e.Alphanumeric=2]="Alphanumeric",e[e.Byte=4]="Byte",e[e.Kanji=8]="Kanji",e[e.ECI=7]="ECI"}(i||(i={}));var l=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function c(e,n){for(var t=[],s="",i=[9,11,13][n],o=e.readBits(i);o>=2;){var a=e.readBits(11),r=Math.floor(a/45),c=a%45;t.push(l[r].charCodeAt(0),l[c].charCodeAt(0)),s+=l[r]+l[c],o-=2}return 1===o&&(r=e.readBits(6),t.push(l[r].charCodeAt(0)),s+=l[r]),{bytes:t,text:s}}function d(e,n){for(var t=[],s="",i=[8,16,16][n],o=e.readBits(i),a=0;a<o;a++){var r=e.readBits(8);t.push(r)}try{s+=decodeURIComponent(t.map(function(e){return"%"+("0"+e.toString(16)).substr(-2)}).join(""))}catch(e){}return{bytes:t,text:s}}function h(e,n){for(var t=[],s="",i=[8,10,12][n],o=e.readBits(i),r=0;r<o;r++){var l=e.readBits(13),c=Math.floor(l/192)<<8|l%192;c+=c<7936?33088:49472,t.push(c>>8,255&c),s+=String.fromCharCode(a.shiftJISTable[c])}return{bytes:t,text:s}}n.decode=function(e,n){for(var t,a,l,u,g=new o.BitStream(e),p=n<=9?0:n<=26?1:2,m={text:"",bytes:[],chunks:[],version:n};g.available()>=4;){var f=g.readBits(4);if(f===i.Terminator)return m;if(f===i.ECI)0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(7)}):0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(14)}):0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(21)}):m.chunks.push({type:s.ECI,assignmentNumber:-1});else if(f===i.Numeric){var x=r(g,p);m.text+=x.text,(t=m.bytes).push.apply(t,x.bytes),m.chunks.push({type:s.Numeric,text:x.text})}else if(f===i.Alphanumeric){var j=c(g,p);m.text+=j.text,(a=m.bytes).push.apply(a,j.bytes),m.chunks.push({type:s.Alphanumeric,text:j.text})}else if(f===i.Byte){var b=d(g,p);m.text+=b.text,(l=m.bytes).push.apply(l,b.bytes),m.chunks.push({type:s.Byte,bytes:b.bytes,text:b.text})}else if(f===i.Kanji){var y=h(g,p);m.text+=y.text,(u=m.bytes).push.apply(u,y.bytes),m.chunks.push({type:s.Kanji,bytes:y.bytes,text:y.text})}}if(0===g.available()||0===g.readBits(g.available()))return m}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(e){this.byteOffset=0,this.bitOffset=0,this.bytes=e}return e.prototype.readBits=function(e){if(e<1||e>32||e>this.available())throw new Error("Cannot read "+e.toString()+" bits");var n=0;if(this.bitOffset>0){var t=8-this.bitOffset,s=e<t?e:t,i=255>>8-s<<(o=t-s);n=(this.bytes[this.byteOffset]&i)>>o,e-=s,this.bitOffset+=s,8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(e>0){for(;e>=8;)n=n<<8|255&this.bytes[this.byteOffset],this.byteOffset++,e-=8;var o;e>0&&(i=255>>(o=8-e)<<o,n=n<<e|(this.bytes[this.byteOffset]&i)>>o,this.bitOffset+=e)}return n},e.prototype.available=function(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset},e}();n.BitStream=s},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.shiftJISTable={32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:165,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:8254,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:92,33120:12316,33121:8214,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:8722,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:162,33170:163,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:172,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(1),i=t(2);n.decode=function(e,n){var t=new Uint8ClampedArray(e.length);t.set(e);for(var o=new s.default(285,256,0),a=new i.default(o,t),r=new Uint8ClampedArray(n),l=!1,c=0;c<n;c++){var d=a.evaluateAt(o.exp(c+o.generatorBase));r[r.length-1-c]=d,0!==d&&(l=!0)}if(!l)return t;var h=new i.default(o,r),u=function(e,n,t,s){var i;n.degree()<t.degree()&&(n=(i=[t,n])[0],t=i[1]);for(var o=n,a=t,r=e.zero,l=e.one;a.degree()>=s/2;){var c=o,d=r;if(r=l,(o=a).isZero())return null;a=c;for(var h=e.zero,u=o.getCoefficient(o.degree()),g=e.inverse(u);a.degree()>=o.degree()&&!a.isZero();){var p=a.degree()-o.degree(),m=e.multiply(a.getCoefficient(a.degree()),g);h=h.addOrSubtract(e.buildMonomial(p,m)),a=a.addOrSubtract(o.multiplyByMonomial(p,m))}if(l=h.multiplyPoly(r).addOrSubtract(d),a.degree()>=o.degree())return null}var f=l.getCoefficient(0);if(0===f)return null;var x=e.inverse(f);return[l.multiply(x),a.multiply(x)]}(o,o.buildMonomial(n,1),h,n);if(null===u)return null;var g=function(e,n){var t=n.degree();if(1===t)return[n.getCoefficient(1)];for(var s=new Array(t),i=0,o=1;o<e.size&&i<t;o++)0===n.evaluateAt(o)&&(s[i]=e.inverse(o),i++);return i!==t?null:s}(o,u[0]);if(null==g)return null;for(var p=function(e,n,t){for(var i=t.length,o=new Array(i),a=0;a<i;a++){for(var r=e.inverse(t[a]),l=1,c=0;c<i;c++)a!==c&&(l=e.multiply(l,s.addOrSubtractGF(1,e.multiply(t[c],r))));o[a]=e.multiply(n.evaluateAt(r),e.inverse(l)),0!==e.generatorBase&&(o[a]=e.multiply(o[a],r))}return o}(o,u[1],g),m=0;m<g.length;m++){var f=t.length-1-o.log(g[m]);if(f<0)return null;t[f]=s.addOrSubtractGF(t[f],p[m])}return t}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.VERSIONS=[{infoBits:null,versionNumber:1,alignmentPatternCenters:[],errorCorrectionLevels:[{ecCodewordsPerBlock:7,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:13,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:13}]},{ecCodewordsPerBlock:17,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:2,alignmentPatternCenters:[6,18],errorCorrectionLevels:[{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:34}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:28}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]}]},{infoBits:null,versionNumber:3,alignmentPatternCenters:[6,22],errorCorrectionLevels:[{ecCodewordsPerBlock:15,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:55}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:13}]}]},{infoBits:null,versionNumber:4,alignmentPatternCenters:[6,26],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:80}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:32}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:5,alignmentPatternCenters:[6,30],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:43}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:11},{numBlocks:2,dataCodewordsPerBlock:12}]}]},{infoBits:null,versionNumber:6,alignmentPatternCenters:[6,34],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:27}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:31892,versionNumber:7,alignmentPatternCenters:[6,22,38],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:78}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:31}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:13},{numBlocks:1,dataCodewordsPerBlock:14}]}]},{infoBits:34236,versionNumber:8,alignmentPatternCenters:[6,24,42],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:97}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:38},{numBlocks:2,dataCodewordsPerBlock:39}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:18},{numBlocks:2,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:14},{numBlocks:2,dataCodewordsPerBlock:15}]}]},{infoBits:39577,versionNumber:9,alignmentPatternCenters:[6,26,46],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:12},{numBlocks:4,dataCodewordsPerBlock:13}]}]},{infoBits:42195,versionNumber:10,alignmentPatternCenters:[6,28,50],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68},{numBlocks:2,dataCodewordsPerBlock:69}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:43},{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]}]},{infoBits:48118,versionNumber:11,alignmentPatternCenters:[6,30,54],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:81}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:50},{numBlocks:4,dataCodewordsPerBlock:51}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:22},{numBlocks:4,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:12},{numBlocks:8,dataCodewordsPerBlock:13}]}]},{infoBits:51042,versionNumber:12,alignmentPatternCenters:[6,32,58],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:92},{numBlocks:2,dataCodewordsPerBlock:93}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:20},{numBlocks:6,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:55367,versionNumber:13,alignmentPatternCenters:[6,34,62],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:37},{numBlocks:1,dataCodewordsPerBlock:38}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:20},{numBlocks:4,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:11},{numBlocks:4,dataCodewordsPerBlock:12}]}]},{infoBits:58893,versionNumber:14,alignmentPatternCenters:[6,26,46,66],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:40},{numBlocks:5,dataCodewordsPerBlock:41}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:16},{numBlocks:5,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:5,dataCodewordsPerBlock:13}]}]},{infoBits:63784,versionNumber:15,alignmentPatternCenters:[6,26,48,70],errorCorrectionLevels:[{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:87},{numBlocks:1,dataCodewordsPerBlock:88}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:41},{numBlocks:5,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:7,dataCodewordsPerBlock:13}]}]},{infoBits:68472,versionNumber:16,alignmentPatternCenters:[6,26,50,74],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:98},{numBlocks:1,dataCodewordsPerBlock:99}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:70749,versionNumber:17,alignmentPatternCenters:[6,30,54,78],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:1,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22},{numBlocks:15,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:17,dataCodewordsPerBlock:15}]}]},{infoBits:76311,versionNumber:18,alignmentPatternCenters:[6,30,56,82],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:120},{numBlocks:1,dataCodewordsPerBlock:121}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:43},{numBlocks:4,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:1,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:19,dataCodewordsPerBlock:15}]}]},{infoBits:79154,versionNumber:19,alignmentPatternCenters:[6,30,58,86],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:113},{numBlocks:4,dataCodewordsPerBlock:114}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:44},{numBlocks:11,dataCodewordsPerBlock:45}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:21},{numBlocks:4,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:13},{numBlocks:16,dataCodewordsPerBlock:14}]}]},{infoBits:84390,versionNumber:20,alignmentPatternCenters:[6,34,62,90],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:41},{numBlocks:13,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:5,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:15},{numBlocks:10,dataCodewordsPerBlock:16}]}]},{infoBits:87683,versionNumber:21,alignmentPatternCenters:[6,28,50,72,94],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:116},{numBlocks:4,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:16},{numBlocks:6,dataCodewordsPerBlock:17}]}]},{infoBits:92361,versionNumber:22,alignmentPatternCenters:[6,26,50,74,98],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:111},{numBlocks:7,dataCodewordsPerBlock:112}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:13}]}]},{infoBits:96236,versionNumber:23,alignmentPatternCenters:[6,30,54,74,102],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:121},{numBlocks:5,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:47},{numBlocks:14,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:16,dataCodewordsPerBlock:15},{numBlocks:14,dataCodewordsPerBlock:16}]}]},{infoBits:102084,versionNumber:24,alignmentPatternCenters:[6,28,54,80,106],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:45},{numBlocks:14,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:30,dataCodewordsPerBlock:16},{numBlocks:2,dataCodewordsPerBlock:17}]}]},{infoBits:102881,versionNumber:25,alignmentPatternCenters:[6,32,58,84,110],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:106},{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:47},{numBlocks:13,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:110507,versionNumber:26,alignmentPatternCenters:[6,30,58,86,114],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:114},{numBlocks:2,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:46},{numBlocks:4,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:28,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:33,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]}]},{infoBits:110734,versionNumber:27,alignmentPatternCenters:[6,34,62,90,118],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:23},{numBlocks:26,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:117786,versionNumber:28,alignmentPatternCenters:[6,26,50,74,98,122],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:117},{numBlocks:10,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:45},{numBlocks:23,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:24},{numBlocks:31,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:31,dataCodewordsPerBlock:16}]}]},{infoBits:119615,versionNumber:29,alignmentPatternCenters:[6,30,54,78,102,126],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:116},{numBlocks:7,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:21,dataCodewordsPerBlock:45},{numBlocks:7,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:23},{numBlocks:37,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:26,dataCodewordsPerBlock:16}]}]},{infoBits:126325,versionNumber:30,alignmentPatternCenters:[6,26,52,78,104,130],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:115},{numBlocks:10,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:47},{numBlocks:10,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:25,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:25,dataCodewordsPerBlock:16}]}]},{infoBits:127568,versionNumber:31,alignmentPatternCenters:[6,30,56,82,108,134],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:3,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:46},{numBlocks:29,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:24},{numBlocks:1,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:133589,versionNumber:32,alignmentPatternCenters:[6,34,60,86,112,138],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:24},{numBlocks:35,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:35,dataCodewordsPerBlock:16}]}]},{infoBits:136944,versionNumber:33,alignmentPatternCenters:[6,30,58,86,114,142],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:21,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:24},{numBlocks:19,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:141498,versionNumber:34,alignmentPatternCenters:[6,34,62,90,118,146],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:6,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:44,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:59,dataCodewordsPerBlock:16},{numBlocks:1,dataCodewordsPerBlock:17}]}]},{infoBits:145311,versionNumber:35,alignmentPatternCenters:[6,30,54,78,102,126,150],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:121},{numBlocks:7,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:47},{numBlocks:26,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:39,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:41,dataCodewordsPerBlock:16}]}]},{infoBits:150283,versionNumber:36,alignmentPatternCenters:[6,24,50,76,102,128,154],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:121},{numBlocks:14,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:47},{numBlocks:34,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:46,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:64,dataCodewordsPerBlock:16}]}]},{infoBits:152622,versionNumber:37,alignmentPatternCenters:[6,28,54,80,106,132,158],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:46},{numBlocks:14,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:49,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:24,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:158308,versionNumber:38,alignmentPatternCenters:[6,32,58,84,110,136,162],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:122},{numBlocks:18,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:46},{numBlocks:32,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:48,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:15},{numBlocks:32,dataCodewordsPerBlock:16}]}]},{infoBits:161089,versionNumber:39,alignmentPatternCenters:[6,26,54,82,110,138,166],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:40,dataCodewordsPerBlock:47},{numBlocks:7,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:43,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:15},{numBlocks:67,dataCodewordsPerBlock:16}]}]},{infoBits:167017,versionNumber:40,alignmentPatternCenters:[6,30,58,86,114,142,170],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:118},{numBlocks:6,dataCodewordsPerBlock:119}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:18,dataCodewordsPerBlock:47},{numBlocks:31,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:24},{numBlocks:34,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:15},{numBlocks:61,dataCodewordsPerBlock:16}]}]}]},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0);function i(e,n,t,s){var i=e.x-n.x+t.x-s.x,o=e.y-n.y+t.y-s.y;if(0===i&&0===o)return{a11:n.x-e.x,a12:n.y-e.y,a13:0,a21:t.x-n.x,a22:t.y-n.y,a23:0,a31:e.x,a32:e.y,a33:1};var a=n.x-t.x,r=s.x-t.x,l=n.y-t.y,c=s.y-t.y,d=a*c-r*l,h=(i*c-r*o)/d,u=(a*o-i*l)/d;return{a11:n.x-e.x+h*n.x,a12:n.y-e.y+h*n.y,a13:h,a21:s.x-e.x+u*s.x,a22:s.y-e.y+u*s.y,a23:u,a31:e.x,a32:e.y,a33:1}}n.extract=function(e,n){for(var t,o,a=function(e,n,t,s){var o=i({x:3.5,y:3.5},n,t,s);return{a11:o.a22*o.a33-o.a23*o.a32,a12:o.a13*o.a32-o.a12*o.a33,a13:o.a12*o.a23-o.a13*o.a22,a21:o.a23*o.a31-o.a21*o.a33,a22:o.a11*o.a33-o.a13*o.a31,a23:o.a13*o.a21-o.a11*o.a23,a31:o.a21*o.a32-o.a22*o.a31,a32:o.a12*o.a31-o.a11*o.a32,a33:o.a11*o.a22-o.a12*o.a21}}(0,{x:n.dimension-3.5,y:3.5},{x:n.dimension-6.5,y:n.dimension-6.5},{x:3.5,y:n.dimension-3.5}),r=(o=a,{a11:(t=i(n.topLeft,n.topRight,n.alignmentPattern,n.bottomLeft)).a11*o.a11+t.a21*o.a12+t.a31*o.a13,a12:t.a12*o.a11+t.a22*o.a12+t.a32*o.a13,a13:t.a13*o.a11+t.a23*o.a12+t.a33*o.a13,a21:t.a11*o.a21+t.a21*o.a22+t.a31*o.a23,a22:t.a12*o.a21+t.a22*o.a22+t.a32*o.a23,a23:t.a13*o.a21+t.a23*o.a22+t.a33*o.a23,a31:t.a11*o.a31+t.a21*o.a32+t.a31*o.a33,a32:t.a12*o.a31+t.a22*o.a32+t.a32*o.a33,a33:t.a13*o.a31+t.a23*o.a32+t.a33*o.a33}),l=s.BitMatrix.createEmpty(n.dimension,n.dimension),c=function(e,n){var t=r.a13*e+r.a23*n+r.a33;return{x:(r.a11*e+r.a21*n+r.a31)/t,y:(r.a12*e+r.a22*n+r.a32)/t}},d=0;d<n.dimension;d++)for(var h=0;h<n.dimension;h++){var u=c(h+.5,d+.5);l.set(h,d,e.get(Math.floor(u.x),Math.floor(u.y)))}return{matrix:l,mappingFunction:c}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(e,n){return Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2))};function i(e){return e.reduce(function(e,n){return e+n})}function o(e,n,t,i){var o,a,r,l,c=[{x:Math.floor(e.x),y:Math.floor(e.y)}],d=Math.abs(n.y-e.y)>Math.abs(n.x-e.x);d?(o=Math.floor(e.y),a=Math.floor(e.x),r=Math.floor(n.y),l=Math.floor(n.x)):(o=Math.floor(e.x),a=Math.floor(e.y),r=Math.floor(n.x),l=Math.floor(n.y));for(var h=Math.abs(r-o),u=Math.abs(l-a),g=Math.floor(-h/2),p=o<r?1:-1,m=a<l?1:-1,f=!0,x=o,j=a;x!==r+p;x+=p){var b=d?j:x,y=d?x:j;if(t.get(b,y)!==f&&(f=!f,c.push({x:b,y:y}),c.length===i+1))break;if((g+=u)>0){if(j===l)break;j+=m,g-=h}}for(var w=[],v=0;v<i;v++)c[v]&&c[v+1]?w.push(s(c[v],c[v+1])):w.push(0);return w}function a(e,n,t,s){var i,a=n.y-e.y,r=n.x-e.x,l=o(e,n,t,Math.ceil(s/2)),c=o(e,{x:e.x-r,y:e.y-a},t,Math.ceil(s/2)),d=l.shift()+c.shift()-1;return(i=c.concat(d)).concat.apply(i,l)}function r(e,n){var t=i(e)/i(n),s=0;return n.forEach(function(n,i){s+=Math.pow(e[i]-n*t,2)}),{averageSize:t,error:s}}function l(e,n,t){try{var s=a(e,{x:-1,y:e.y},t,n.length),i=a(e,{x:e.x,y:-1},t,n.length),o=a(e,{x:Math.max(0,e.x-e.y)-1,y:Math.max(0,e.y-e.x)-1},t,n.length),l=a(e,{x:Math.min(t.width,e.x+e.y)+1,y:Math.min(t.height,e.y+e.x)+1},t,n.length),c=r(s,n),d=r(i,n),h=r(o,n),u=r(l,n),g=Math.sqrt(c.error*c.error+d.error*d.error+h.error*h.error+u.error*u.error),p=(c.averageSize+d.averageSize+h.averageSize+u.averageSize)/4;return g+(Math.pow(c.averageSize-p,2)+Math.pow(d.averageSize-p,2)+Math.pow(h.averageSize-p,2)+Math.pow(u.averageSize-p,2))/p}catch(e){return 1/0}}function c(e,n){for(var t=Math.round(n.x);e.get(t,Math.round(n.y));)t--;for(var s=Math.round(n.x);e.get(s,Math.round(n.y));)s++;for(var i=(t+s)/2,o=Math.round(n.y);e.get(Math.round(i),o);)o--;for(var a=Math.round(n.y);e.get(Math.round(i),a);)a++;return{x:i,y:(o+a)/2}}function d(e,n,t,o,r){var c,d,h;try{c=function(e,n,t,o){var r=(i(a(e,t,o,5))/7+i(a(e,n,o,5))/7+i(a(t,e,o,5))/7+i(a(n,e,o,5))/7)/4;if(r<1)throw new Error("Invalid module size");var l=Math.round(s(e,n)/r),c=Math.round(s(e,t)/r),d=Math.floor((l+c)/2)+7;switch(d%4){case 0:d++;break;case 2:d--}return{dimension:d,moduleSize:r}}(o,t,r,e),d=c.dimension,h=c.moduleSize}catch(e){return null}var u=t.x-o.x+r.x,g=t.y-o.y+r.y,p=(s(o,r)+s(o,t))/2/h,m=1-3/p,f={x:o.x+m*(u-o.x),y:o.y+m*(g-o.y)},x=n.map(function(n){var t=(n.top.startX+n.top.endX+n.bottom.startX+n.bottom.endX)/4,o=(n.top.y+n.bottom.y+1)/2;if(e.get(Math.floor(t),Math.floor(o)))return i([n.top.endX-n.top.startX,n.bottom.endX-n.bottom.startX,n.bottom.y-n.top.y+1]),{x:t,y:o,score:l({x:Math.floor(t),y:Math.floor(o)},[1,1,1],e)+s({x:t,y:o},f)}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score});return{alignmentPattern:p>=15&&x.length?x[0]:f,dimension:d}}n.locate=function(e){for(var n=[],t=[],o=[],a=[],r=function(s){for(var r=0,l=!1,c=[0,0,0,0,0],d=function(n){var o=e.get(n,s);if(o===l)r++;else{c=[c[1],c[2],c[3],c[4],r],r=1,l=o;var d=i(c)/7,h=Math.abs(c[0]-d)<d&&Math.abs(c[1]-d)<d&&Math.abs(c[2]-3*d)<3*d&&Math.abs(c[3]-d)<d&&Math.abs(c[4]-d)<d&&!o,u=i(c.slice(-3))/3,g=Math.abs(c[2]-u)<u&&Math.abs(c[3]-u)<u&&Math.abs(c[4]-u)<u&&o;if(h){var p=n-c[3]-c[4],m=p-c[2],f={startX:m,endX:p,y:s};(x=t.filter(function(e){return m>=e.bottom.startX&&m<=e.bottom.endX||p>=e.bottom.startX&&m<=e.bottom.endX||m<=e.bottom.startX&&p>=e.bottom.endX&&c[2]/(e.bottom.endX-e.bottom.startX)<1.5&&c[2]/(e.bottom.endX-e.bottom.startX)>.5})).length>0?x[0].bottom=f:t.push({top:f,bottom:f})}if(g){var x,j=n-c[4],b=j-c[3];f={startX:b,y:s,endX:j},(x=a.filter(function(e){return b>=e.bottom.startX&&b<=e.bottom.endX||j>=e.bottom.startX&&b<=e.bottom.endX||b<=e.bottom.startX&&j>=e.bottom.endX&&c[2]/(e.bottom.endX-e.bottom.startX)<1.5&&c[2]/(e.bottom.endX-e.bottom.startX)>.5})).length>0?x[0].bottom=f:a.push({top:f,bottom:f})}}},h=-1;h<=e.width;h++)d(h);n.push.apply(n,t.filter(function(e){return e.bottom.y!==s&&e.bottom.y-e.top.y>=2})),t=t.filter(function(e){return e.bottom.y===s}),o.push.apply(o,a.filter(function(e){return e.bottom.y!==s})),a=a.filter(function(e){return e.bottom.y===s})},h=0;h<=e.height;h++)r(h);n.push.apply(n,t.filter(function(e){return e.bottom.y-e.top.y>=2})),o.push.apply(o,a);var u=n.filter(function(e){return e.bottom.y-e.top.y>=2}).map(function(n){var t=(n.top.startX+n.top.endX+n.bottom.startX+n.bottom.endX)/4,s=(n.top.y+n.bottom.y+1)/2;if(e.get(Math.round(t),Math.round(s))){var o=[n.top.endX-n.top.startX,n.bottom.endX-n.bottom.startX,n.bottom.y-n.top.y+1],a=i(o)/o.length;return{score:l({x:Math.round(t),y:Math.round(s)},[1,1,3,1,1],e),x:t,y:s,size:a}}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score}).map(function(e,n,t){if(n>4)return null;var s=t.filter(function(e,t){return n!==t}).map(function(n){return{x:n.x,y:n.y,score:n.score+Math.pow(n.size-e.size,2)/e.size,size:n.size}}).sort(function(e,n){return e.score-n.score});if(s.length<2)return null;var i=e.score+s[0].score+s[1].score;return{points:[e].concat(s.slice(0,2)),score:i}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score});if(0===u.length)return null;var g=function(e,n,t){var i,o,a,r,l,c,d,h=s(e,n),u=s(n,t),g=s(e,t);return u>=h&&u>=g?(l=(i=[n,e,t])[0],c=i[1],d=i[2]):g>=u&&g>=h?(l=(o=[e,n,t])[0],c=o[1],d=o[2]):(l=(a=[e,t,n])[0],c=a[1],d=a[2]),(d.x-c.x)*(l.y-c.y)-(d.y-c.y)*(l.x-c.x)<0&&(l=(r=[d,l])[0],d=r[1]),{bottomLeft:l,topLeft:c,topRight:d}}(u[0].points[0],u[0].points[1],u[0].points[2]),p=g.topRight,m=g.topLeft,f=g.bottomLeft,x=d(e,o,p,m,f),j=[];x&&j.push({alignmentPattern:{x:x.alignmentPattern.x,y:x.alignmentPattern.y},bottomLeft:{x:f.x,y:f.y},dimension:x.dimension,topLeft:{x:m.x,y:m.y},topRight:{x:p.x,y:p.y}});var b=c(e,p),y=c(e,m),w=c(e,f),v=d(e,o,b,y,w);return v&&j.push({alignmentPattern:{x:v.alignmentPattern.x,y:v.alignmentPattern.y},bottomLeft:{x:w.x,y:w.y},topLeft:{x:y.x,y:y.y},topRight:{x:b.x,y:b.y},dimension:v.dimension}),0===j.length?null:j}}]).default},e.exports=n()},5338:function(e,n,t){"use strict";var s=t(5206);n.H=s.createRoot,s.hydrateRoot},1020:function(e,n,t){"use strict";var s=t(1594),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,r=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,n,t){var s,o={},c=null,d=null;for(s in void 0!==t&&(c=""+t),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(d=n.ref),n)a.call(n,s)&&!l.hasOwnProperty(s)&&(o[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===o[s]&&(o[s]=n[s]);return{$$typeof:i,type:e,key:c,ref:d,props:o,_owner:r.current}}n.Fragment=o,n.jsx=c,n.jsxs=c},4848:function(e,n,t){"use strict";e.exports=t(1020)},9593:function(e){"use strict";e.exports=QRCode},1594:function(e){"use strict";e.exports=React},5206:function(e){"use strict";e.exports=ReactDOM},8181:function(e){"use strict";e.exports=ReactIntl},4532:function(e){"use strict";e.exports=tinode},1781:function(e){"use strict";e.exports=JSON.parse('{"patt":[{"name":"a00.png","size":200},{"name":"a01.jpg","size":384},{"name":"a02.jpg","size":384},{"name":"a03.jpg","size":384},{"name":"a04.png","size":400},{"name":"a05.jpg","size":400},{"name":"a06.jpg","size":256},{"name":"a07.jpg","size":384},{"name":"a08.jpg","size":384},{"name":"a09.jpg","size":400},{"name":"a10.jpg","size":256},{"name":"a11.png","size":200}],"img":[{"name":"w01.jpg","pr":"p01.jpg"},{"name":"w02.jpg","pr":"p02.jpg"},{"name":"w03.jpg","pr":"p03.jpg"},{"name":"w04.jpg","pr":"p04.jpg"},{"name":"w05.jpg","pr":"p05.jpg"},{"name":"w06.jpg","pr":"p06.jpg"},{"name":"w07.jpg","pr":"p07.jpg"},{"name":"w08.jpg","pr":"p08.jpg"},{"name":"w09.jpg","pr":"p09.jpg"},{"name":"w10.jpg","pr":"p10.jpg"},{"name":"w11.jpg","pr":"p11.jpg"},{"name":"w12.jpg","pr":"p12.jpg"},{"name":"w13.jpg","pr":"p13.jpg"},{"name":"w14.jpg","pr":"p14.jpg"},{"name":"w15.jpg","pr":"p15.jpg"},{"name":"w16.jpg","pr":"p16.jpg"},{"name":"w17.jpg","pr":"p17.jpg"},{"name":"w18.jpg","pr":"p18.jpg"},{"name":"w19.jpg","pr":"p19.jpg"},{"name":"w20.jpg","pr":"p20.jpg"},{"name":"w21.jpg","pr":"p21.jpg"},{"name":"w22.jpg","pr":"p22.jpg"},{"name":"w23.jpg","pr":"p23.jpg"},{"name":"w24.jpg","pr":"p24.jpg"}]}')}},o={};function a(e){var n=o[e];if(void 0!==n)return n.exports;var t=o[e]={exports:{}};return i[e].call(t.exports,t,t.exports,a),t.exports}a.m=i,a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,{a:n}),n},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},a.t=function(t,s){if(1&s&&(t=this(t)),8&s)return t;if("object"==typeof t&&t){if(4&s&&t.__esModule)return t;if(16&s&&"function"==typeof t.then)return t}var i=Object.create(null);a.r(i);var o={};e=e||[null,n({}),n([]),n(n)];for(var r=2&s&&t;("object"==typeof r||"function"==typeof r)&&!~e.indexOf(r);r=n(r))Object.getOwnPropertyNames(r).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},a.d(i,o),i},a.d=function(e,n){if(Array.isArray(n))for(var t=0;t<n.length;){var s=n[t++],i=n[t++];a.o(e,s)?0===i&&t++:0===i?Object.defineProperty(e,s,{enumerable:!0,value:n[t++]}):Object.defineProperty(e,s,{enumerable:!0,get:i})}else for(var s in n)a.o(n,s)&&!a.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:n[s]})},a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce(function(n,t){return a.f[t](e,n),n},[]))},a.u=function(e){return e+".prod.js"},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t={},s="tinode-webapp:",a.l=function(e,n,i,o){if(t[e])t[e].push(n);else{var r,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var h=c[d];if(h.getAttribute("src")==e||h.getAttribute("data-webpack")==s+i){r=h;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",a.nc&&r.setAttribute("nonce",a.nc),r.setAttribute("data-webpack",s+i),r.src=e),t[e]=[n];var u=function(n,s){r.onerror=r.onload=null,clearTimeout(g);var i=t[e];if(delete t[e],r.parentNode&&r.parentNode.removeChild(r),i&&i.forEach(function(e){return e(s)}),n)return n(s)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),l&&document.head.appendChild(r)}},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.dn=function(e){(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},a.p="/umd/",function(){var e={57:0};a.f.j=function(n,t){var s=a.o(e,n)?e[n]:void 0;if(0!==s)if(s)t.push(s[2]);else{var i=new Promise(function(t,i){s=e[n]=[t,i]});t.push(s[2]=i);var o=a.p+a.u(n),r=new Error;a.l(o,function(t){if(a.o(e,n)&&(0!==(s=e[n])&&(e[n]=void 0),s)){var i=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;r.message="Loading chunk "+n+" failed.\n("+i+": "+o+")",r.name="ChunkLoadError",r.type=i,r.request=o,s[1](r)}},"chunk-"+n,n)}};var n=function(n,t){var s,i,o=t[0],r=t[1],l=t[2],c=0;if(o.some(function(n){return 0!==e[n]})){for(s in r)a.o(r,s)&&(a.m[s]=r[s]);l&&l(a)}for(n&&n(t);c<o.length;c++)i=o[c],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0},t=self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}(),function(){"use strict";var e=a(1594),n=a.n(e),t=a(5338),s=a(8181);const i=function(e){const n=[];let t=0;for(let s=0;s<e.length;s++){let i=e.charCodeAt(s);i<128?n[t++]=i:i<2048?(n[t++]=i>>6|192,n[t++]=63&i|128):55296==(64512&i)&&s+1<e.length&&56320==(64512&e.charCodeAt(s+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++s)),n[t++]=i>>18|240,n[t++]=i>>12&63|128,n[t++]=i>>6&63|128,n[t++]=63&i|128):(n[t++]=i>>12|224,n[t++]=i>>6&63|128,n[t++]=63&i|128)}return n},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,n){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const t=n?this.byteToCharMapWebSafe_:this.byteToCharMap_,s=[];for(let n=0;n<e.length;n+=3){const i=e[n],o=n+1<e.length,a=o?e[n+1]:0,r=n+2<e.length,l=r?e[n+2]:0,c=i>>2,d=(3&i)<<4|a>>4;let h=(15&a)<<2|l>>6,u=63&l;r||(u=64,o||(h=64)),s.push(t[c],t[d],t[h],t[u])}return s.join("")},encodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(e):this.encodeByteArray(i(e),n)},decodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?atob(e):function(e){const n=[];let t=0,s=0;for(;t<e.length;){const i=e[t++];if(i<128)n[s++]=String.fromCharCode(i);else if(i>191&&i<224){const o=e[t++];n[s++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){const o=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536;n[s++]=String.fromCharCode(55296+(o>>10)),n[s++]=String.fromCharCode(56320+(1023&o))}else{const o=e[t++],a=e[t++];n[s++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}}return n.join("")}(this.decodeStringToByteArray(e,n))},decodeStringToByteArray(e,n){this.init_();const t=n?this.charToByteMapWebSafe_:this.charToByteMap_,s=[];for(let n=0;n<e.length;){const i=t[e.charAt(n++)],o=n<e.length?t[e.charAt(n)]:0;++n;const a=n<e.length?t[e.charAt(n)]:64;++n;const l=n<e.length?t[e.charAt(n)]:64;if(++n,null==i||null==o||null==a||null==l)throw new r;const c=i<<2|o>>4;if(s.push(c),64!==a){const e=o<<4&240|a>>2;if(s.push(e),64!==l){const e=a<<6&192|l;s.push(e)}}}return s},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class r extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(e){return function(e){const n=i(e);return o.encodeByteArray(n,!0)}(e).replace(/\./g,"")},c=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==a.g)return a.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const n=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return n&&JSON.parse(n)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},d=()=>c()?.config;class h{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,t)=>{n?this.reject(n):this.resolve(t),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(n):e(n,t))}}}function u(){try{return"object"==typeof indexedDB}catch(e){return!1}}function g(){return new Promise((e,n)=>{try{let t=!0;const s="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(s);i.onsuccess=()=>{i.result.close(),t||self.indexedDB.deleteDatabase(s),e(!0)},i.onupgradeneeded=()=>{t=!1},i.onerror=()=>{n(i.error?.message||"")}}catch(e){n(e)}})}class p extends Error{constructor(e,n,t){super(n),this.code=e,this.customData=t,this.name="FirebaseError",Object.setPrototypeOf(this,p.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,n,t){this.service=e,this.serviceName=n,this.errors=t}create(e,...n){const t=n[0]||{},s=`${this.service}/${e}`,i=this.errors[e],o=i?function(e,n){return e.replace(f,(e,t)=>{const s=n[t];return null!=s?String(s):`<${t}?>`})}(i,t):"Error",a=`${this.serviceName}: ${o} (${s}).`;return new p(s,a,t)}}const f=/\{\$([^}]+)}/g;function x(e,n){if(e===n)return!0;const t=Object.keys(e),s=Object.keys(n);for(const i of t){if(!s.includes(i))return!1;const t=e[i],o=n[i];if(j(t)&&j(o)){if(!x(t,o))return!1}else if(t!==o)return!1}for(const e of s)if(!t.includes(e))return!1;return!0}function j(e){return null!==e&&"object"==typeof e}function b(e){return e&&e._delegate?e._delegate:e}class y{constructor(e,n,t){this.name=e,this.instanceFactory=n,this.type=t,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const w="[DEFAULT]";class v{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const e=new h;if(this.instancesDeferred.set(n,e),this.isInitialized(n)||this.shouldAutoInitialize())try{const t=this.getOrInitializeService({instanceIdentifier:n});t&&e.resolve(t)}catch(e){}}return this.instancesDeferred.get(n).promise}getImmediate(e){const n=this.normalizeInstanceIdentifier(e?.identifier),t=e?.optional??!1;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(t)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(t)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:w})}catch(e){}for(const[e,n]of this.instancesDeferred.entries()){const t=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:t});n.resolve(e)}catch(e){}}}}clearInstance(e=w){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=w){return this.instances.has(e)}getOptions(e=w){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,t=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(t))throw Error(`${this.name}(${t}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const s=this.getOrInitializeService({instanceIdentifier:t,options:n});for(const[e,n]of this.instancesDeferred.entries())t===this.normalizeInstanceIdentifier(e)&&n.resolve(s);return s}onInit(e,n){const t=this.normalizeInstanceIdentifier(n),s=this.onInitCallbacks.get(t)??new Set;s.add(e),this.onInitCallbacks.set(t,s);const i=this.instances.get(t);return i&&e(i,t),()=>{s.delete(e)}}invokeOnInitCallbacks(e,n){const t=this.onInitCallbacks.get(n);if(t)for(const s of t)try{s(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let t=this.instances.get(e);if(!t&&this.component&&(t=this.component.instanceFactory(this.container,{instanceIdentifier:(s=e,s===w?void 0:s),options:n}),this.instances.set(e,t),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(t,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,t)}catch{}var s;return t||null}normalizeInstanceIdentifier(e=w){return this.component?this.component.multipleInstances?e:w:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class k{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new v(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}const C=[];var z;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(z||(z={}));const _={debug:z.DEBUG,verbose:z.VERBOSE,info:z.INFO,warn:z.WARN,error:z.ERROR,silent:z.SILENT},S=z.INFO,N={[z.DEBUG]:"log",[z.VERBOSE]:"log",[z.INFO]:"info",[z.WARN]:"warn",[z.ERROR]:"error"},T=(e,n,...t)=>{if(n<e.logLevel)return;const s=(new Date).toISOString(),i=N[n];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${n})`);console[i](`[${s}] ${e.name}:`,...t)};let B,P;const q=new WeakMap,M=new WeakMap,A=new WeakMap,E=new WeakMap,I=new WeakMap;let D={get(e,n,t){if(e instanceof IDBTransaction){if("done"===n)return M.get(e);if("objectStoreNames"===n)return e.objectStoreNames||A.get(e);if("store"===n)return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return R(e[n])},set(e,n,t){return e[n]=t,!0},has(e,n){return e instanceof IDBTransaction&&("done"===n||"store"===n)||n in e}};function U(e){return"function"==typeof e?(n=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(P||(P=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(n)?function(...e){return n.apply(L(this),e),R(q.get(this))}:function(...e){return R(n.apply(L(this),e))}:function(e,...t){const s=n.call(L(this),e,...t);return A.set(s,e.sort?e.sort():[e]),R(s)}:(e instanceof IDBTransaction&&function(e){if(M.has(e))return;const n=new Promise((n,t)=>{const s=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",o),e.removeEventListener("abort",o)},i=()=>{n(),s()},o=()=>{t(e.error||new DOMException("AbortError","AbortError")),s()};e.addEventListener("complete",i),e.addEventListener("error",o),e.addEventListener("abort",o)});M.set(e,n)}(e),t=e,(B||(B=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,D):e);var n,t}function R(e){if(e instanceof IDBRequest)return function(e){const n=new Promise((n,t)=>{const s=()=>{e.removeEventListener("success",i),e.removeEventListener("error",o)},i=()=>{n(R(e.result)),s()},o=()=>{t(e.error),s()};e.addEventListener("success",i),e.addEventListener("error",o)});return n.then(n=>{n instanceof IDBCursor&&q.set(n,e)}).catch(()=>{}),I.set(n,e),n}(e);if(E.has(e))return E.get(e);const n=U(e);return n!==e&&(E.set(e,n),I.set(n,e)),n}const L=e=>I.get(e);function O(e,n,{blocked:t,upgrade:s,blocking:i,terminated:o}={}){const a=indexedDB.open(e,n),r=R(a);return s&&a.addEventListener("upgradeneeded",e=>{s(R(a.result),e.oldVersion,e.newVersion,R(a.transaction),e)}),t&&a.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),r.then(e=>{o&&e.addEventListener("close",()=>o()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),r}function F(e,{blocked:n}={}){const t=indexedDB.deleteDatabase(e);return n&&t.addEventListener("blocked",e=>n(e.oldVersion,e)),R(t).then(()=>{})}const $=["get","getKey","getAll","getAllKeys","count"],V=["put","add","delete","clear"],H=new Map;function W(e,n){if(!(e instanceof IDBDatabase)||n in e||"string"!=typeof n)return;if(H.get(n))return H.get(n);const t=n.replace(/FromIndex$/,""),s=n!==t,i=V.includes(t);if(!(t in(s?IDBIndex:IDBObjectStore).prototype)||!i&&!$.includes(t))return;const o=async function(e,...n){const o=this.transaction(e,i?"readwrite":"readonly");let a=o.store;return s&&(a=a.index(n.shift())),(await Promise.all([a[t](...n),i&&o.done]))[0]};return H.set(n,o),o}var K;K=D,D={...K,get:(e,n,t)=>W(e,n)||K.get(e,n,t),has:(e,n)=>!!W(e,n)||K.has(e,n)};class X{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const n=e.getComponent();return"VERSION"===n?.type}(e)){const n=e.getImmediate();return`${n.library}/${n.version}`}return null}).filter(e=>e).join(" ")}}const G="@firebase/app",J="0.15.0",Y=new class{constructor(e){this.name=e,this._logLevel=S,this._logHandler=T,this._userLogHandler=null,C.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in z))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?_[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,z.DEBUG,...e),this._logHandler(this,z.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,z.VERBOSE,...e),this._logHandler(this,z.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,z.INFO,...e),this._logHandler(this,z.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,z.WARN,...e),this._logHandler(this,z.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,z.ERROR,...e),this._logHandler(this,z.ERROR,...e)}}("@firebase/app"),Z="@firebase/app-compat",Q="@firebase/analytics-compat",ee="@firebase/analytics",ne="@firebase/app-check-compat",te="@firebase/app-check",se="@firebase/auth",ie="@firebase/auth-compat",oe="@firebase/database",ae="@firebase/data-connect",re="@firebase/database-compat",le="@firebase/functions",ce="@firebase/functions-compat",de="@firebase/installations",he="@firebase/installations-compat",ue="@firebase/messaging",ge="@firebase/messaging-compat",pe="@firebase/performance",me="@firebase/performance-compat",fe="@firebase/remote-config",xe="@firebase/remote-config-compat",je="@firebase/storage",be="@firebase/storage-compat",ye="@firebase/firestore",we="@firebase/ai",ve="@firebase/firestore-compat",ke="firebase",Ce="[DEFAULT]",ze={[G]:"fire-core",[Z]:"fire-core-compat",[ee]:"fire-analytics",[Q]:"fire-analytics-compat",[te]:"fire-app-check",[ne]:"fire-app-check-compat",[se]:"fire-auth",[ie]:"fire-auth-compat",[oe]:"fire-rtdb",[ae]:"fire-data-connect",[re]:"fire-rtdb-compat",[le]:"fire-fn",[ce]:"fire-fn-compat",[de]:"fire-iid",[he]:"fire-iid-compat",[ue]:"fire-fcm",[ge]:"fire-fcm-compat",[pe]:"fire-perf",[me]:"fire-perf-compat",[fe]:"fire-rc",[xe]:"fire-rc-compat",[je]:"fire-gcs",[be]:"fire-gcs-compat",[ye]:"fire-fst",[ve]:"fire-fst-compat",[we]:"fire-vertex","fire-js":"fire-js",[ke]:"fire-js-all"},_e=new Map,Se=new Map,Ne=new Map;function Te(e,n){try{e.container.addComponent(n)}catch(t){Y.debug(`Component ${n.name} failed to register with FirebaseApp ${e.name}`,t)}}function Be(e){const n=e.name;if(Ne.has(n))return Y.debug(`There were multiple attempts to register component ${n}.`),!1;Ne.set(n,e);for(const n of _e.values())Te(n,e);for(const n of Se.values())Te(n,e);return!0}function Pe(e,n){const t=e.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),e.container.getProvider(n)}const qe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Me{constructor(e,n,t){this._isDeleted=!1,this._options={...e},this._config={...n},this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=t,this.container.addComponent(new y("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw qe.create("app-deleted",{appName:this._name})}}function Ae(e,n={}){let t=e;"object"!=typeof n&&(n={name:n});const s={name:Ce,automaticDataCollectionEnabled:!0,...n},i=s.name;if("string"!=typeof i||!i)throw qe.create("bad-app-name",{appName:String(i)});if(t||(t=d()),!t)throw qe.create("no-options");const o=_e.get(i);if(o){if(x(t,o.options)&&x(s,o.config))return o;throw qe.create("duplicate-app",{appName:i})}const a=new k(i);for(const e of Ne.values())a.addComponent(e);const r=new Me(t,s,a);return _e.set(i,r),r}function Ee(e,n,t){let s=ze[e]??e;t&&(s+=`-${t}`);const i=s.match(/\s|\//),o=n.match(/\s|\//);if(i||o){const e=[`Unable to register library "${s}" with version "${n}":`];return i&&e.push(`library name "${s}" contains illegal characters (whitespace or "/")`),i&&o&&e.push("and"),o&&e.push(`version name "${n}" contains illegal characters (whitespace or "/")`),void Y.warn(e.join(" "))}Be(new y(`${s}-version`,()=>({library:s,version:n}),"VERSION"))}const Ie="firebase-heartbeat-store";let De=null;function Ue(){return De||(De=O("firebase-heartbeat-database",1,{upgrade:(e,n)=>{if(0===n)try{e.createObjectStore(Ie)}catch(e){console.warn(e)}}}).catch(e=>{throw qe.create("idb-open",{originalErrorMessage:e.message})})),De}async function Re(e,n){try{const t=(await Ue()).transaction(Ie,"readwrite"),s=t.objectStore(Ie);await s.put(n,Le(e)),await t.done}catch(e){if(e instanceof p)Y.warn(e.message);else{const n=qe.create("idb-set",{originalErrorMessage:e?.message});Y.warn(n.message)}}}function Le(e){return`${e.name}!${e.options.appId}`}class Oe{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new $e(n),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{const e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Fe();if(null==this._heartbeatsCache?.heartbeats&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats))return;if(this._heartbeatsCache.lastSentHeartbeatDate===n||this._heartbeatsCache.heartbeats.some(e=>e.date===n))return;if(this._heartbeatsCache.heartbeats.push({date:n,agent:e}),this._heartbeatsCache.heartbeats.length>30){const e=function(e){if(0===e.length)return-1;let n=0,t=e[0].date;for(let s=1;s<e.length;s++)e[s].date<t&&(t=e[s].date,n=s);return n}(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(e,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){Y.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)return"";const e=Fe(),{heartbeatsToSend:n,unsentEntries:t}=function(e,n=1024){const t=[];let s=e.slice();for(const i of e){const e=t.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),Ve(t)>n){e.dates.pop();break}}else if(t.push({agent:i.agent,dates:[i.date]}),Ve(t)>n){t.pop();break}s=s.slice(1)}return{heartbeatsToSend:t,unsentEntries:s}}(this._heartbeatsCache.heartbeats),s=l(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=e,t.length>0?(this._heartbeatsCache.heartbeats=t,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),s}catch(e){return Y.warn(e),""}}}function Fe(){return(new Date).toISOString().substring(0,10)}class $e{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!u()&&g().then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const n=(await Ue()).transaction(Ie),t=await n.objectStore(Ie).get(Le(e));return await n.done,t}catch(e){if(e instanceof p)Y.warn(e.message);else{const n=qe.create("idb-get",{originalErrorMessage:e?.message});Y.warn(n.message)}}}(this.app);return e?.heartbeats?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){const n=await this.read();return Re(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){const n=await this.read();return Re(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Ve(e){return l(JSON.stringify({version:2,heartbeats:e})).length}Be(new y("platform-logger",e=>new X(e),"PRIVATE")),Be(new y("heartbeat",e=>new Oe(e),"PRIVATE")),Ee(G,J,""),Ee(G,J,"esm2020"),Ee("fire-js",""),Ee("firebase","12.15.0","app");const He="@firebase/installations",We="0.6.22",Ke=`w:${We}`,Xe="FIS_v2",Ge=new m("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function Je(e){return e instanceof p&&e.code.includes("request-failed")}function Ye({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function Ze(e){return{token:e.token,requestStatus:2,expiresIn:(n=e.expiresIn,Number(n.replace("s","000"))),creationTime:Date.now()};var n}async function Qe(e,n){const t=(await n.json()).error;return Ge.create("request-failed",{requestName:e,serverCode:t.code,serverMessage:t.message,serverStatus:t.status})}function en({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function nn(e){const n=await e();return n.status>=500&&n.status<600?e():n}function tn(e){return new Promise(n=>{setTimeout(n,e)})}const sn=/^[cdef][\w-]{21}$/;function on(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const n=function(e){var n;return(n=e,btoa(String.fromCharCode(...n)).replace(/\+/g,"-").replace(/\//g,"_")).substr(0,22)}(e);return sn.test(n)?n:""}catch{return""}}function an(e){return`${e.appName}!${e.appId}`}const rn=new Map;function ln(e,n){const t=an(e);cn(t,n),function(e,n){const t=hn();t&&t.postMessage({key:e,fid:n}),un()}(t,n)}function cn(e,n){const t=rn.get(e);if(t)for(const e of t)e(n)}let dn=null;function hn(){return!dn&&"BroadcastChannel"in self&&(dn=new BroadcastChannel("[Firebase] FID Change"),dn.onmessage=e=>{cn(e.data.key,e.data.fid)}),dn}function un(){0===rn.size&&dn&&(dn.close(),dn=null)}const gn="firebase-installations-store";let pn=null;function mn(){return pn||(pn=O("firebase-installations-database",1,{upgrade:(e,n)=>{0===n&&e.createObjectStore(gn)}})),pn}async function fn(e,n){const t=an(e),s=(await mn()).transaction(gn,"readwrite"),i=s.objectStore(gn),o=await i.get(t);return await i.put(n,t),await s.done,o&&o.fid===n.fid||ln(e,n.fid),n}async function xn(e){const n=an(e),t=(await mn()).transaction(gn,"readwrite");await t.objectStore(gn).delete(n),await t.done}async function jn(e,n){const t=an(e),s=(await mn()).transaction(gn,"readwrite"),i=s.objectStore(gn),o=await i.get(t),a=n(o);return void 0===a?await i.delete(t):await i.put(a,t),await s.done,!a||o&&o.fid===a.fid||ln(e,a.fid),a}async function bn(e){let n;const t=await jn(e.appConfig,t=>{const s=function(e){return vn(e||{fid:on(),registrationStatus:0})}(t),i=function(e,n){if(0===n.registrationStatus){if(!navigator.onLine)return{installationEntry:n,registrationPromise:Promise.reject(Ge.create("app-offline"))};const t={fid:n.fid,registrationStatus:1,registrationTime:Date.now()},s=async function(e,n){try{const t=await async function({appConfig:e,heartbeatServiceProvider:n},{fid:t}){const s=Ye(e),i=en(e),o=n.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const a={fid:t,authVersion:Xe,appId:e.appId,sdkVersion:Ke},r={method:"POST",headers:i,body:JSON.stringify(a)},l=await nn(()=>fetch(s,r));if(l.ok){const e=await l.json();return{fid:e.fid||t,registrationStatus:2,refreshToken:e.refreshToken,authToken:Ze(e.authToken)}}throw await Qe("Create Installation",l)}(e,n);return fn(e.appConfig,t)}catch(t){throw Je(t)&&409===t.customData.serverCode?await xn(e.appConfig):await fn(e.appConfig,{fid:n.fid,registrationStatus:0}),t}}(e,t);return{installationEntry:t,registrationPromise:s}}return 1===n.registrationStatus?{installationEntry:n,registrationPromise:yn(e)}:{installationEntry:n}}(e,s);return n=i.registrationPromise,i.installationEntry});return""===t.fid?{installationEntry:await n}:{installationEntry:t,registrationPromise:n}}async function yn(e){let n=await wn(e.appConfig);for(;1===n.registrationStatus;)await tn(100),n=await wn(e.appConfig);if(0===n.registrationStatus){const{installationEntry:n,registrationPromise:t}=await bn(e);return t||n}return n}function wn(e){return jn(e,e=>{if(!e)throw Ge.create("installation-not-found");return vn(e)})}function vn(e){return 1===(n=e).registrationStatus&&n.registrationTime+1e4<Date.now()?{fid:e.fid,registrationStatus:0}:e;var n}async function kn({appConfig:e,heartbeatServiceProvider:n},t){const s=function(e,{fid:n}){return`${Ye(e)}/${n}/authTokens:generate`}(e,t),i=function(e,{refreshToken:n}){const t=en(e);return t.append("Authorization",function(e){return`${Xe} ${e}`}(n)),t}(e,t),o=n.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const a={installation:{sdkVersion:Ke,appId:e.appId}},r={method:"POST",headers:i,body:JSON.stringify(a)},l=await nn(()=>fetch(s,r));if(l.ok)return Ze(await l.json());throw await Qe("Generate Auth Token",l)}async function Cn(e,n=!1){let t;const s=await jn(e.appConfig,s=>{if(!_n(s))throw Ge.create("not-registered");const i=s.authToken;if(!n&&(2===(o=i).requestStatus&&!function(e){const n=Date.now();return n<e.creationTime||e.creationTime+e.expiresIn<n+36e5}(o)))return s;var o;if(1===i.requestStatus)return t=async function(e,n){let t=await zn(e.appConfig);for(;1===t.authToken.requestStatus;)await tn(100),t=await zn(e.appConfig);const s=t.authToken;return 0===s.requestStatus?Cn(e,n):s}(e,n),s;{if(!navigator.onLine)throw Ge.create("app-offline");const n=function(e){return{...e,authToken:{requestStatus:1,requestTime:Date.now()}}}(s);return t=async function(e,n){try{const t=await kn(e,n),s={...n,authToken:t};return await fn(e.appConfig,s),t}catch(t){if(!Je(t)||401!==t.customData.serverCode&&404!==t.customData.serverCode){const t={...n,authToken:{requestStatus:0}};await fn(e.appConfig,t)}else await xn(e.appConfig);throw t}}(e,n),n}});return t?await t:s.authToken}function zn(e){return jn(e,e=>{if(!_n(e))throw Ge.create("not-registered");return 1===(n=e.authToken).requestStatus&&n.requestTime+1e4<Date.now()?{...e,authToken:{requestStatus:0}}:e;var n})}function _n(e){return void 0!==e&&2===e.registrationStatus}function Sn(e){return Ge.create("missing-app-config-values",{valueName:e})}const Nn="installations";Be(new y(Nn,e=>{const n=e.getProvider("app").getImmediate(),t=function(e){if(!e||!e.options)throw Sn("App Configuration");if(!e.name)throw Sn("App Name");const n=["projectId","apiKey","appId"];for(const t of n)if(!e.options[t])throw Sn(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(n);return{app:n,appConfig:t,heartbeatServiceProvider:Pe(n,"heartbeat"),_delete:()=>Promise.resolve()}},"PUBLIC")),Be(new y("installations-internal",e=>{const n=Pe(e.getProvider("app").getImmediate(),Nn).getImmediate();return{getId:()=>async function(e){const n=e,{installationEntry:t,registrationPromise:s}=await bn(n);return s?s.catch(console.error):Cn(n).catch(console.error),t.fid}(n),getToken:e=>async function(e,n=!1){const t=e;return await async function(e){const{registrationPromise:n}=await bn(e);n&&await n}(t),(await Cn(t,n)).token}(n,e)}},"PRIVATE")),Ee(He,We),Ee(He,We,"esm2020");const Tn="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Bn="google.c.a.c_id";var Pn,qn;function Mn(e){const n=new Uint8Array(e);return btoa(String.fromCharCode(...n)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function An(e){const n=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),t=atob(n),s=new Uint8Array(t.length);for(let e=0;e<t.length;++e)s[e]=t.charCodeAt(e);return s}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(Pn||(Pn={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked",e.FID_REGISTERED="fid-registered"}(qn||(qn={}));const En="fcm_token_details_db",In="fcm_token_object_Store",Dn=new m("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","fid-registration-failed":"A problem occurred while creating an FCM registration via FID: {$errorInfo}","fid-unregister-failed":"A problem occurred while unregistering the FCM registration via FID: {$errorInfo}","fid-registration-idb-schema-unavailable":"Unable to read or persist FID registration metadata because the messaging IndexedDB schema is unavailable (for example, the database could not be upgraded to the latest version).","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used.","invalid-on-registered-handler":"No onRegistered callback handler was provided or registered. Implement onRegistered() before register()."}),Un="firebase-messaging-database",Rn="firebase-messaging-store",Ln="firebase-messaging-fid-registration-store";let On={openDB:O,deleteDB:F},Fn=null;function $n(e){return{upgrade:(n,t)=>{!function(e,n,t){switch(n){case 0:if(e.createObjectStore(Rn),1===t)break;case 1:2===t&&e.createObjectStore(Ln)}}(n,t,e)},blocked:()=>{},blocking:(e,n,t)=>{Fn=null,t.target?.close()},terminated:()=>{Fn=null}}}function Vn(){if(!Fn){const e=On.openDB(Un,2,$n(2));Fn=e.catch(()=>On.openDB(Un,1,$n(1)))}return Fn}function Hn(e,n){return e.objectStoreNames.contains(n)}function Wn(e){if(!Hn(e,Ln))throw Dn.create("fid-registration-idb-schema-unavailable")}async function Kn(e){const n=Jn(e),t=await Vn(),s=await t.transaction(Rn).objectStore(Rn).get(n);if(s)return s;{const n=await async function(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map(e=>e.name);if(!e.includes(En))return null}let n=null;return(await O(En,5,{upgrade:async(t,s,i,o)=>{if(s<2)return;if(!t.objectStoreNames.contains(In))return;const a=o.objectStore(In),r=await a.index("fcmSenderId").get(e);if(await a.clear(),r)if(2===s){const e=r;if(!e.auth||!e.p256dh||!e.endpoint)return;n={token:e.fcmToken,createTime:e.createTime??Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:Mn(e.vapidKey)}}}else if(3===s){const e=r;n={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Mn(e.auth),p256dh:Mn(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Mn(e.vapidKey)}}}else if(4===s){const e=r;n={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Mn(e.auth),p256dh:Mn(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Mn(e.vapidKey)}}}}})).close(),await F(En),await F("fcm_vapid_details_db"),await F("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:n}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof n.auth&&n.auth.length>0&&"string"==typeof n.p256dh&&n.p256dh.length>0&&"string"==typeof n.endpoint&&n.endpoint.length>0&&"string"==typeof n.swScope&&n.swScope.length>0&&"string"==typeof n.vapidKey&&n.vapidKey.length>0}(n)?n:null}(e.appConfig.senderId);if(n)return await Xn(e,n),n}}async function Xn(e,n){const t=Jn(e),s=await Vn(),i=[Rn],o=Hn(s,Ln);o&&i.push(Ln);const a=s.transaction(i,"readwrite");return await a.objectStore(Rn).put(n,t),o&&await a.objectStore(Ln).delete(t),await a.done,n}async function Gn(e){const n=Jn(e),t=await Vn();return Wn(t),await t.transaction(Ln).objectStore(Ln).get(n)}function Jn({appConfig:e}){return e.appId}const Yn="@firebase/messaging",Zn="0.13.0";async function Qn(e,n){const t=await st(e),s=ot(n,e.appConfig.appName,!0),i={method:"POST",headers:t,body:JSON.stringify(s)};let o,a;try{o=await async function(e){let n;for(let t=0;t<3;t++)try{return await e()}catch(e){if(n=e,t<2){const e=1e3*Math.pow(2,t);await new Promise(n=>setTimeout(n,e))}}throw n}(()=>fetch(tt(e.appConfig),i))}catch(e){throw Dn.create("fid-registration-failed",{errorInfo:e?.toString()})}if(o.ok){const e=await async function(e){const n=await e.text();if(!n.trim())throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is empty"});let t;try{t=JSON.parse(n)}catch{throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is not valid JSON"})}const s=t.name;if("string"!=typeof s||0===s.length)throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response did not include a non-empty name"});return function(e){const n=e.indexOf(et);if(-1!==n){const t=e.slice(n+et.length);if(t.length>0)return t}throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response name is not a valid registration resource name"})}(s)}(o);return{responseFid:e}}try{a=await o.json()}catch(e){throw Dn.create("fid-registration-failed",{errorInfo:o.statusText})}const r=a.error?.message??o.statusText;throw Dn.create("fid-registration-failed",{errorInfo:r})}const et="/registrations/";async function nt(e,n){const t={method:"DELETE",headers:await st(e)};try{const s=await fetch(`${tt(e.appConfig)}/${n}`,t),i=await s.json();if(i.error){const e=i.error.message;throw Dn.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw Dn.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function tt({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function st({appConfig:e,installations:n}){const t=await n.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${t}`})}function it(e,n){try{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e))return new URL(e).host}catch{}try{if("undefined"!=typeof self&&self.location?.href)return new URL(e,self.location.origin).host}catch{}return"undefined"!=typeof self&&self.location?.host?self.location.host:n}function ot({p256dh:e,auth:n,endpoint:t,vapidKey:s,swScope:i},o,a){const r={web:{origin:it(i,o),endpoint:t,auth:n,p256dh:e}};return a&&(r.fcm_sdk_version=Zn),s!==Tn&&(r.web.applicationPubKey=s),r}async function at(e){const n=await Kn(e.firebaseDependencies);n?await async function(e,n){await nt(e.firebaseDependencies,n.token),await async function(e){const n=Jn(e),t=(await Vn()).transaction(Rn,"readwrite");await t.objectStore(Rn).delete(n),await t.done}(e.firebaseDependencies),await lt(e.firebaseDependencies)}(e,n):await async function(e){const n=await Gn(e.firebaseDependencies).catch(()=>{}),t=n?.fid;t&&await async function(e,n){const t={method:"DELETE",headers:await st(e)};let s;try{s=await fetch(`${tt(e.appConfig)}/${n}`,t)}catch(e){throw Dn.create("fid-unregister-failed",{errorInfo:e?.toString()})}if(!s.ok)try{const e=await s.json();throw e.error?.message??s.statusText}catch(e){throw Dn.create("fid-unregister-failed",{errorInfo:"string"==typeof e&&e||s.statusText||e?.toString()})}}(e.firebaseDependencies,t),await lt(e.firebaseDependencies),t&&function(e,n){const t=e.onUnregisteredHandler;t&&("function"==typeof t?t(n):t.next(n))}(e,t)}(e);const t=await e.swRegistration.pushManager.getSubscription();return!t||t.unsubscribe()}async function rt(e,n){const t=await async function(e,n){const t=await st(e),s=ot(n,e.appConfig.appName,!1),i={method:"POST",headers:t,body:JSON.stringify(s)};let o;try{const n=await fetch(tt(e.appConfig),i);o=await n.json()}catch(e){throw Dn.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(o.error){const e=o.error.message;throw Dn.create("token-subscribe-failed",{errorInfo:e})}if(!o.token)throw Dn.create("token-subscribe-no-token");return o.token}(e,n),s={token:t,createTime:Date.now(),subscriptionOptions:n};return await Xn(e,s),s.token}async function lt(e){try{await async function(e){const n=Jn(e),t=await Vn();Wn(t);const s=t.transaction(Ln,"readwrite");await s.objectStore(Ln).delete(n),await s.done}(e)}catch{}}async function ct(e){try{e.swRegistration=await navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}),e.swRegistration.update().catch(()=>{}),await async function(e){return new Promise((n,t)=>{const s=setTimeout(()=>t(new Error("Service worker not registered after 10000 ms")),1e4),i=e.installing||e.waiting;e.active?(clearTimeout(s),n()):i?i.onstatechange=e=>{"activated"===e.target?.state&&(i.onstatechange=null,clearTimeout(s),n())}:(clearTimeout(s),t(new Error("No incoming service worker found.")))})}(e.swRegistration)}catch(e){throw Dn.create("failed-service-worker-registration",{browserErrorMessage:e?.message})}}async function dt(e,n){if(n||e.swRegistration||await ct(e),n||!e.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw Dn.create("invalid-sw-registration");e.swRegistration=n}}async function ht(e,n){n?e.vapidKey=n:e.vapidKey||(e.vapidKey=Tn)}async function ut(e,n){if(!navigator)throw Dn.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw Dn.create("permission-blocked");if(!e.onRegisteredHandler)throw Dn.create("invalid-on-registered-handler");await ht(e,n?.vapidKey),await dt(e,n?.serviceWorkerRegistration);const t=e._registerNotifyChain.catch(()=>{});return e._registerNotifyChain=t.then(async()=>{const n=await e.firebaseDependencies.installations.getId(),t=await Gn(e.firebaseDependencies),s=Date.now();if((!t||t.fid!==n||s>=t.lastRegisterTime+6048e5)&&(await async function(e,n){const t=await async function(e,n){return await e.pushManager.getSubscription()||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:An(n)})}(e.swRegistration,e.vapidKey),s={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:Mn(t.getKey("auth")),p256dh:Mn(t.getKey("p256dh"))},i=e.firebaseDependencies.installations;for(let t=0;t<3;t++){const{responseFid:o}=await Qn(e.firebaseDependencies,s);if(o===n)return;t<2&&await i.getToken(!0)}throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration response FID does not match Firebase Installation ID"})}(e,n),await async function(e,n){const t=Jn(e),s=await Vn();Wn(s);const i=s.transaction([Rn,Ln],"readwrite");return await i.objectStore(Ln).put(n,t),await i.objectStore(Rn).delete(t),await i.done,n}(e.firebaseDependencies,{fid:n,lastRegisterTime:s,vapidKey:e.vapidKey})),!e.onRegisteredHandler)throw Dn.create("invalid-on-registered-handler");!function(e,n){const t=e.onRegisteredHandler;t&&("function"==typeof t?t(n):t.next(n))}(e,n)}),e._registerNotifyChain}function gt(e){const n={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function(e,n){if(!n.notification)return;e.notification={};const t=n.notification.title;t&&(e.notification.title=t);const s=n.notification.body;s&&(e.notification.body=s);const i=n.notification.image;i&&(e.notification.image=i);const o=n.notification.icon;o&&(e.notification.icon=o)}(n,e),function(e,n){n.data&&(e.data=n.data)}(n,e),function(e,n){if(!n.fcmOptions&&!n.notification?.click_action)return;e.fcmOptions={};const t=n.fcmOptions?.link??n.notification?.click_action;t&&(e.fcmOptions.link=t);const s=n.fcmOptions?.analytics_label;s&&(e.fcmOptions.analyticsLabel=s)}(n,e),n}function pt(e){return Dn.create("missing-app-config-values",{valueName:e})}!function(e,n){const t=[];for(let s=0;s<20;s++)t.push(e.charAt(s)),s<19&&t.push(n.charAt(s));t.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class mt{constructor(e,n,t){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.onRegisteredHandler=null,this.onUnregisteredHandler=null,this._registerNotifyChain=Promise.resolve(),this._fidChangeUnsubscribe=null,this.logEvents=[],this.logQueue={state:"stopped"};const s=function(e){if(!e||!e.options)throw pt("App Configuration Object");if(!e.name)throw pt("App Name");const n=["projectId","apiKey","appId","messagingSenderId"],{options:t}=e;for(const e of n)if(!t[e])throw pt(e);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:s,installations:n,analyticsProvider:t}}_delete(){return this._fidChangeUnsubscribe&&(this._fidChangeUnsubscribe(),this._fidChangeUnsubscribe=null),"scheduled"===this.logQueue.state&&clearTimeout(this.logQueue.timerId),this.logQueue={state:"stopped"},Promise.resolve()}}async function ft(e,n){if(!navigator)throw Dn.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw Dn.create("permission-blocked");return await ht(e,n?.vapidKey),await dt(e,n?.serviceWorkerRegistration),async function(e){const n=await async function(e,n){return await e.pushManager.getSubscription()||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:An(n)})}(e.swRegistration,e.vapidKey),t={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:n.endpoint,auth:Mn(n.getKey("auth")),p256dh:Mn(n.getKey("p256dh"))},s=await Kn(e.firebaseDependencies);if(s){if(function(e,n){const t=n.vapidKey===e.vapidKey,s=n.endpoint===e.endpoint,i=n.auth===e.auth,o=n.p256dh===e.p256dh;return t&&s&&i&&o}(s.subscriptionOptions,t))return Date.now()>=s.createTime+6048e5?async function(e,n){try{const t=await async function(e,n){const t=await st(e),s=ot(n.subscriptionOptions,e.appConfig.appName,!1),i={method:"PATCH",headers:t,body:JSON.stringify(s)};let o;try{const t=await fetch(`${tt(e.appConfig)}/${n.token}`,i);o=await t.json()}catch(e){throw Dn.create("token-update-failed",{errorInfo:e?.toString()})}if(o.error){const e=o.error.message;throw Dn.create("token-update-failed",{errorInfo:e})}if(!o.token)throw Dn.create("token-update-no-token");return o.token}(e.firebaseDependencies,n),s={...n,token:t,createTime:Date.now()};return await Xn(e.firebaseDependencies,s),t}catch(e){throw e}}(e,{token:s.token,createTime:Date.now(),subscriptionOptions:t}):s.token;try{await nt(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}return rt(e.firebaseDependencies,t)}return rt(e.firebaseDependencies,t)}(e)}async function xt(e,n){const t=n.data;if(!t.isFirebaseMessaging)return;if(e.onMessageHandler&&t.messageType===qn.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(gt(t)):e.onMessageHandler.next(gt(t))),e.onRegisteredHandler&&t.messageType===qn.FID_REGISTERED){const n=t.fid;"function"==typeof e.onRegisteredHandler?e.onRegisteredHandler(n):e.onRegisteredHandler.next(n)}const s=t.data;var i;"object"==typeof(i=s)&&i&&Bn in i&&"1"===s["google.c.a.e"]&&await async function(e,n,t){const s=function(e){switch(e){case qn.NOTIFICATION_CLICKED:return"notification_open";case qn.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(n);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(s,{message_id:t[Bn],message_name:t["google.c.a.c_l"],message_time:t["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}(e,t.messageType,s)}function jt(e=function(e=Ce){const n=_e.get(e);if(!n&&e===Ce&&d())return Ae();if(!n)throw qe.create("no-app",{appName:e});return n}()){return async function(){try{await g()}catch(e){return!1}return"undefined"!=typeof window&&u()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}().then(e=>{if(!e)throw Dn.create("unsupported-browser")},e=>{throw Dn.create("indexed-db-unsupported")}),Pe(b(e),"messaging").getImmediate()}async function bt(e,n){return ft(e=b(e),n)}function yt(e){return async function(e){if(!navigator)throw Dn.create("only-available-in-window");return e.swRegistration||await ct(e),at(e)}(e=b(e))}Be(new y("messaging",e=>{const n=new mt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>xt(n,e)),n._fidChangeUnsubscribe=function(e,n){return function(e,n){const{appConfig:t}=e;return function(e,n){hn();const t=an(e);let s=rn.get(t);s||(s=new Set,rn.set(t,s)),s.add(n)}(t,n),()=>{!function(e,n){const t=an(e),s=rn.get(t);s&&(s.delete(n),0===s.size&&rn.delete(t),un())}(t,n)}}(n,()=>{(async()=>{e.onRegisteredHandler&&await Gn(e.firebaseDependencies)&&await ut(e).catch(()=>{})})()})}(n,e.getProvider("installations").getImmediate()),n},"PUBLIC")),Be(new y("messaging-internal",e=>{const n=e.getProvider("messaging").getImmediate();return{getToken:e=>ft(n,e),register:e=>ut(n,e)}},"PRIVATE")),Ee(Yn,Zn),Ee(Yn,Zn,"esm2020");var wt=a(4532),vt=a(4848);class kt extends n().PureComponent{render(){return(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"alert",children:[(0,vt.jsx)("div",{className:"title",children:this.props.title}),(0,vt.jsx)("div",{className:"content",children:this.props.content}),(0,vt.jsxs)("div",{className:"dialog-buttons",children:[this.props.onReject?(0,vt.jsx)("button",{className:"outline",onClick:this.props.onReject,children:this.props.reject||(0,vt.jsx)(s.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}):null,this.props.onConfirm?(0,vt.jsx)("button",{className:"primary",onClick:this.props.onConfirm,children:this.props.confirm||(0,vt.jsx)(s.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})}):null]})]})})}}var Ct=a(3272),zt=a(8353);const _t=new Map;function St(e,n){return e+":"+n}function Nt(e,n){return(0,zt.qM)({type:"all"}).then(t=>(t.items||[]).find(t=>t.source&&t.source.topic===e&&String(t.source.seq)===String(n)))}const Tt=(0,s.defineMessages)({info:{id:"menu_item_info",defaultMessage:"Info",description:"Show extended topic information"},clear_messages:{id:"menu_item_clear_messages",defaultMessage:"Clear messages",description:"Delete all messages"},clear_for_all:{id:"menu_item_clear_messages_for_all",defaultMessage:"Clear for All",description:"Delete all message(s) for all members"},delete:{id:"menu_item_delete",defaultMessage:"Delete",description:"Delete selected messages"},delete_for_all:{id:"menu_item_delete_for_all",defaultMessage:"Delete for All",description:"Delete selected message(s) for all members"},send_retry:{id:"menu_item_send_retry",defaultMessage:"Retry",description:"Retry sending message"},mute:{id:"menu_item_mute",defaultMessage:"Mute",description:"Turn off notifications"},unmute:{id:"menu_item_unmute",defaultMessage:"Unmute",description:"Turn notifications on"},reply:{id:"menu_item_reply",defaultMessage:"Reply",description:"Reply to message"},forward:{id:"menu_item_forward",defaultMessage:"Forward",description:"Forward message"},edit:{id:"menu_item_edit",defaultMessage:"Edit",description:"Edit message"},topic_delete:{id:"menu_item_delete_topic",defaultMessage:"Delete",description:"Delete entire topic"},topic_delete_warning:{id:"topic_delete_warning",defaultMessage:"Are you sure you want to delete this conversation? It cannot be undone.",description:"Alert warning when deleting entire topic"},delete_messages_warning:{id:"delete_messages_warning",defaultMessage:"Are you sure you want to delete all messages for everyone? It cannot be undone.",description:"Alert dialog warning when hard-deleting all messages."},unblock:{id:"menu_item_unblock",defaultMessage:"Unblock",description:"Unblock topic or user"},block:{id:"menu_item_block",defaultMessage:"Block",description:"Block topic or user"},topic_block_warning:{id:"topic_block_warning",defaultMessage:"Are you sure you want to block this conversation?",description:"Alert warning when blocking a topic."},member_delete:{id:"menu_item_member_delete",defaultMessage:"Remove",description:"Remove user from topic"},archive:{id:"menu_item_archive_topic",defaultMessage:"Archive",description:"Move topic from the list of active chats to archive"},unarchive:{id:"menu_item_restore_topic",defaultMessage:"Restore",description:"Restore topic from archive"},edit_permissions:{id:"menu_item_edit_permissions",defaultMessage:"Edit permissions",description:"Menu item [Edit permissions]"},clear_messages_warning:{id:"clear_messages_warning",defaultMessage:"Are you sure you want to clear all messages? It cannot be undone.",description:"Alert dialog warning when deleting all messages."},pin_message:{id:"pin_message",defaultMessage:"Pin",description:"Menu item [Pin] for pinning message to the top."},unpin_message:{id:"unpin_message",defaultMessage:"Unpin",description:"Menu item [Unpin] for un-pinning the message."},pin_chat:{id:"pin_chat",defaultMessage:"Pin",description:"Menu item [Pin] for pinning chat to the top."},unpin_chat:{id:"unpin_chat",defaultMessage:"Unpin",description:"Menu item [Unpin] for un-pinning the chat."}});class Bt extends n().Component{constructor(e){super(e),this.selfRef=n().createRef();const{formatMessage:t}=e.intl;this.handlePageClick=this.handlePageClick.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClick=this.handleClick.bind(this),this.MenuItems={topic_info:{id:"topic_info",title:t(Tt.info),handler:null},messages_clear:{id:"messages_clear",title:t(Tt.clear_messages),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.clear_messages),t(Tt.clear_messages_warning),e=>{this.deleteMessages(!0,!1,n,s)},null,!0,null)},messages_clear_hard:{id:"messages_clear_hard",title:t(Tt.clear_for_all),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.clear_for_all),t(Tt.delete_messages_warning),e=>this.deleteMessages(!0,!0,n,s),null,!0,null)},message_delete:{id:"message_delete",title:t(Tt.delete),handler:(e,n)=>this.deleteMessages(!1,!1,e,n)},message_delete_hard:{id:"message_delete_hard",title:t(Tt.delete_for_all),handler:(e,n)=>this.deleteMessages(!1,!0,e,n)},message_delete_generic:{id:"message_delete_generic",title:t(Tt.delete),handler:(e,n)=>this.deleteMessages(!1,!0,e,n)},menu_item_send_retry:{id:"menu_item_send_retry",title:t(Tt.send_retry),handler:(e,n)=>this.retryMessage(e,n)},menu_item_reply:{id:"menu_item_reply",title:t(Tt.reply),handler:(e,n)=>this.replyToMessage(e,n)},menu_item_forward:{id:"menu_item_forward",title:t(Tt.forward),handler:e=>{}},menu_item_copy:{id:"menu_item_copy",title:"复制",handler:(e,n)=>this.copyMessageText(e,n)},menu_item_favorite:{id:"menu_item_favorite",title:_t.has(St(e.params&&e.params.topicName,e.params&&e.params.seq))?"取消收藏":"收藏",handler:(e,n)=>_t.has(St(e.topicName,e.seq))?this.removeFavorite(e,n):this.addFavorite(e,n)},menu_item_recall:{id:"menu_item_recall",title:"撤回",handler:(e,n)=>this.recallOwnMessage(e,n)},menu_item_select:{id:"menu_item_select",title:"多选",handler:e=>{}},menu_item_edit:{id:"menu_item_edit",title:t(Tt.edit),handler:(e,n)=>this.editMessage(e,n)},menu_item_pin:{id:"menu_item_pin",title:t(Tt.pin_message),handler:(e,n)=>this.pinMessage(!0,e,n)},menu_item_unpin:{id:"menu_item_unpin",title:t(Tt.unpin_message),handler:(e,n)=>this.pinMessage(!1,e,n)},topic_unmute:{id:"topic_unmute",title:t(Tt.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},topic_mute:{id:"topic_mute",title:t(Tt.mute),handler:this.topicPermissionSetter.bind(this,"-P")},topic_unblock:{id:"topic_unblock",title:t(Tt.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")},topic_block:{id:"topic_block",title:t(Tt.block),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.block),t(Tt.topic_block_warning),e=>this.topicPermissionSetter("-JP",n,s).then(e=>(this.props.onTopicRemoved(n.topicName),e)),null,!0,null)},topic_delete:{id:"topic_delete",title:t(Tt.topic_delete),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.topic_delete),t(Tt.topic_delete_warning),e=>{const t=this.props.tinode.getTopic(n.topicName);if(t)return t.delTopic(!0).catch(e=>{s&&s(e.message,"err")});console.warn("Topic not found: ",n.topicName)},null,!0,null)},topic_archive:{id:"topic_archive",title:t(Tt.archive),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t)return t.archive(!0).catch(e=>{n&&n(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_restore:{id:"topic_restore",title:t(Tt.unarchive),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t)return t.archive(!1).catch(e=>{n&&n(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_pin:{id:"topic_pin",title:t(Tt.pin_chat),handler:(e,n)=>{const t=this.props.tinode.getMeTopic();if(t)return t.pinTopic(e.topicName,!0).catch(e=>{n&&n(e.message,"err")});console.warn("'me' topic not found")}},topic_unpin:{id:"topic_unpin",title:t(Tt.unpin_chat),handler:(e,n)=>{const t=this.props.tinode.getMeTopic();if(t)return t.pinTopic(e.topicName,!1).catch(e=>{n&&n(e.message,"err")});console.warn("'me' topic not found")}},permissions:{id:"permissions",title:t(Tt.edit_permissions),handler:null},member_delete:{id:"member_delete",title:t(Tt.member_delete),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t&&e.user)return t.delSubscription(e.user).catch(e=>{n&&n(e.message,"err")});console.warn("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{id:"member_mute",title:t(Tt.mute),handler:this.topicPermissionSetter.bind(this,"-P")},member_unmute:{id:"member_unmute",title:t(Tt.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},member_block:{id:"member_block",title:t(Tt.block),handler:this.topicPermissionSetter.bind(this,"-JP")},member_unblock:{id:"member_unblock",title:t(Tt.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")}}}componentDidMount(){document.addEventListener("mousedown",this.handlePageClick,!1),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("mousedown",this.handlePageClick,!1),document.removeEventListener("keyup",this.handleEscapeKey,!1)}handlePageClick(e){this.selfRef.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),this.props.hide())}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.hide();let n=this.props.items[e.currentTarget.dataset.id];"string"==typeof n&&(n=this.MenuItems[n]),n?this.props.onAction(n.id,n.handler(this.props.params,this.props.onError),this.props.params):console.error("Invalid menu item ID",e.currentTarget.dataset.id)}deleteMessages(e,n,t,s){const i=this.props.tinode.getTopic(t.topicName);if(i){if(e||!i.cancelSend(t.seq))return(e?i.delMessagesAll(n):t.replace>0?i.delMessagesEdits(t.replace,n):i.delMessagesList([t.seq],n)).catch(e=>{s&&s(e.message,"err")})}else console.warn("Topic not found: ",t.topicName)}copyMessageText(e,n){const t="string"==typeof e.content?e.content:wt.Drafty.toPlainText(e.content);return navigator.clipboard.writeText(t||"").catch(e=>{n&&n(e.message,"err")})}addFavorite(e,n){return(0,zt.Bc)([{topic:e.topicName,seq:e.seq}]).then(t=>{const s=t&&t.failed&&t.failed[0];if(s)return void(n&&n("NOT_FOUND"===s.reason?"收藏失败,该消息暂无法收藏,请稍后重试":"收藏失败","err"));const i=St(e.topicName,e.seq);_t.set(i,!0),Nt(e.topicName,e.seq).then(e=>{e&&_t.set(i,e.favorite_id)}).catch(()=>{})}).catch(e=>{n&&n(e.message,"err")})}removeFavorite(e,n){const t=St(e.topicName,e.seq),s=_t.get(t);return(s&&!0!==s?Promise.resolve(s):Nt(e.topicName,e.seq).then(e=>e&&e.favorite_id)).then(e=>{if(e)return(e=>(0,zt.C5)(e).then(()=>_t.delete(t)))(e);n&&n("未找到对应收藏","err")}).catch(e=>{n&&n(e.message||"取消收藏失败","err")})}recallOwnMessage(e,n){return(0,zt.N1)(e.topicName,e.seq).then(t=>this.deleteMessages(!1,!0,e,n)).catch(e=>{n&&n(e.message,"err")})}retryMessage(e,n){const t=this.props.tinode.getTopic(e.topicName);if(!t||!t.flushMessage(e.seq))return;const s=t.createMessage(e.content,!1);return e.head&&(s.head=Object.assign(s.head||{},e.head)),t.publishDraft(s).catch(e=>{n&&n(e.message,"err")})}pinMessage(e,n,t){const s=this.props.tinode.getTopic(n.topicName);s&&s.pinMessage(n.seq,e).catch(e=>t?t(e.message,"err"):null)}topicPermissionSetter(e,n,t){const s=this.props.tinode.getTopic(n.topicName);if(!s)return void console.warn("Topic not found",n.topicName);let i=s.updateMode(n.user,e);return t&&(i=i.catch(e=>t(e.message,"err"))),i}replyToMessage(e,n){e.pickReply(e.seq,e.content,e.userFrom,e.userName,n)}editMessage(e,n){e.editMessage(e.replace||e.seq,e.content,n)}render(){const e=[];let n=0;this.props.items.forEach(t=>{if("string"==typeof t&&(t=this.MenuItems[t]),t&&t.title){const s=t.disabled?"disabled":void 0;e.push("-"==t.title?(0,vt.jsx)("li",{className:"separator"},n):(0,vt.jsx)("li",{className:s,onClick:this.handleClick,"data-id":n,children:t.title},n))}n++});const t=13*(.7+2.5*e.length),s={left:(this.props.bounds.right-this.props.clickAt.x<156?this.props.clickAt.x-this.props.bounds.left-156:this.props.clickAt.x-this.props.bounds.left)+"px",top:(this.props.bounds.bottom-this.props.clickAt.y<t?this.props.clickAt.y-this.props.bounds.top-t:this.props.clickAt.y-this.props.bounds.top)+"px"};return(0,vt.jsx)("ul",{className:"menu",style:s,ref:this.selfRef,children:e})}}var Pt=(0,s.injectIntl)(Bt),qt=a(3717);class Mt extends n().PureComponent{constructor(e){super(e),this.state={edited:!1,search:this.props.initialQuery||""},this.handleSearchChange=this.handleSearchChange.bind(this),this.handleSearch=this.handleSearch.bind(this),this.handleClear=this.handleClear.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentWillUnmount(){this.state.edited&&(this.setState({search:"",edited:!1}),this.props.onSearchContacts(wt.Tinode.DEL_CHAR))}handleSearchChange(e){this.setState({search:e.target.value})}handleSearch(e){e.preventDefault();const n=this.state.search.trim();this.setState({edited:n.length>0}),this.props.onSearchContacts(n.length>0?n:wt.Tinode.DEL_CHAR)}handleClear(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(wt.Tinode.DEL_CHAR),this.setState({search:"",edited:!1})}handleKeyDown(e){"Enter"===e.key?this.handleSearch(e):"Escape"===e.key&&(e.stopPropagation(),this.handleClear(e))}render(){return(0,vt.jsx)("div",{className:"panel-form",children:(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("i",{className:"material-icons search",children:"search"}),(0,vt.jsx)("input",{className:"search",type:"text",placeholder:this.props.placeholder,value:this.state.search,onChange:this.handleSearchChange,onKeyDown:this.handleKeyDown,required:!0,autoFocus:!0}),this.state.search?(0,vt.jsx)("a",{href:"#",onClick:this.handleClear,children:(0,vt.jsx)("i",{className:"material-icons",children:"highlight_off"})}):(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:" "})})]})})}}class At extends n().Component{constructor(e){super(e),this.state={query:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this)}componentDidMount(){this.props.onInitFind()}handleEscapeKey(e){27===e.keyCode&&this.props.hide(!1)}handleClose(e){e.preventDefault(),this.props.hide(!1)}handleSearchContacts(e){this.setState({query:wt.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleContactSelected(e){this.props.onTopicSelected(e),this.props.hide(!0)}render(){let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog",children:[(0,vt.jsxs)("div",{className:"title with-control",children:[(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"forward_to",defaultMessage:"Forward to",desription:"Title of the contact selector dialog when forwarding a message"})}),(0,vt.jsx)("div",{children:(0,vt.jsx)("a",{href:"#",onClick:this.handleClose,children:(0,vt.jsx)("i",{className:"material-icons",children:"close"})})})]}),(0,vt.jsx)(s.FormattedMessage,{id:"forward_to_search_placeholder",defaultMessage:"Search contacts",description:"Contact search prompt when forwarding a message.",children:e=>(0,vt.jsx)(Mt,{placeholder:e,onSearchContacts:this.handleSearchContacts})}),(0,vt.jsx)(s.FormattedMessage,{id:"search_no_results",defaultMessage:"Search returned no results",description:"Text shown in contacts view when query returned no results.",children:n=>(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:n,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected})})]})})}}var Et=a(7849),It=a(2795);class Dt extends n().Component{constructor(e){super(e),this.state={query:null,multiSelect:!1,selectedTargets:[],confirmTargets:null,comment:"",sending:!1,error:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this),this.handleToggleMultiSelect=this.handleToggleMultiSelect.bind(this),this.handleConfirmTargets=this.handleConfirmTargets.bind(this),this.handleCancelConfirm=this.handleCancelConfirm.bind(this),this.handleSend=this.handleSend.bind(this),this.handleCommentChange=this.handleCommentChange.bind(this)}componentDidMount(){this.props.onInitFind(),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("keyup",this.handleEscapeKey,!1)}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClose(e){e.preventDefault(),this.props.hide()}handleSearchContacts(e){this.setState({query:wt.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleToggleMultiSelect(e){e.preventDefault(),this.setState(e=>({multiSelect:!e.multiSelect,selectedTargets:[]}))}handleContactSelected(e){this.state.multiSelect?this.setState(n=>{if(n.selectedTargets.includes(e))return{selectedTargets:n.selectedTargets.filter(n=>n!=e),error:null};const t=this.forwardTargetLimit();return n.selectedTargets.length>=t?{error:`最多同时转发给 ${t} 个会话`}:{selectedTargets:n.selectedTargets.concat(e),error:null}}):this.setState({confirmTargets:[e]})}forwardTargetLimit(){const e=this.props.myUserId?(0,It.ze)("bootstrap:"+this.props.myUserId):null,n=e&&e.limits&&Number(e.limits.max_forward_targets);return n>0?Math.min(n,20):20}handleConfirmTargets(e){e.preventDefault(),this.state.selectedTargets.length&&this.setState({confirmTargets:this.state.selectedTargets.slice()})}forwardMode(){return this.state.multiSelect?"bundle":"separate"}handleCancelConfirm(){this.setState({confirmTargets:null,error:null})}handleCommentChange(e){this.setState({comment:e.target.value})}handleSend(){const e=this.props.seqs.map(e=>({topic:this.props.topicName,seq:String(e)}));e.length>100?this.setState({error:`一次最多转发 100 条消息,当前已选 ${e.length} 条`}):(this.setState({sending:!0,error:null}),(0,zt.uT)(this.forwardMode(),e,this.state.confirmTargets,this.state.comment.trim()).then(e=>{const n=e&&e.failed||[];n.length?this.setState({sending:!1,error:`${n.length} 条转发失败,请重试`}):this.props.hide(!0)}).catch(e=>{this.setState({sending:!1,error:e.message||"转发失败"})}))}render(){if(this.state.confirmTargets){const e=this.state.confirmTargets.map(e=>this.props.tinode.getTopic(e)||{name:e,public:null});return(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog batch-forward-confirm",children:[(0,vt.jsx)("div",{className:"title",children:"发送给"}),(0,vt.jsx)("ul",{className:"contact-box",children:e.map(e=>(0,vt.jsxs)("li",{className:"batch-forward-target",children:[(0,vt.jsx)("span",{children:wt.Tinode.isSelfTopicName(e.name)?"已保存的消息":(0,Et.TP)(e.name,e.public,e.name)}),(0,vt.jsx)("i",{className:"material-icons",children:"chevron_right"})]},e.name))}),(0,vt.jsx)("input",{className:"batch-forward-comment",type:"text",value:this.state.comment,onChange:this.handleCommentChange,disabled:this.state.sending,placeholder:("bundle"===this.forwardMode()?"[合并转发]共":"[逐条转发]共")+this.props.seqs.length+"条消息"}),this.state.error?(0,vt.jsx)("div",{className:"auth-field-error",children:this.state.error}):null,(0,vt.jsxs)("div",{className:"batch-forward-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:this.handleCancelConfirm,disabled:this.state.sending,children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:this.handleSend,disabled:this.state.sending,children:this.state.sending?"发送中…":"发送"})]})]})})}let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog",children:[(0,vt.jsxs)("div",{className:"title with-control",children:[(0,vt.jsx)("div",{children:"转发"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:this.handleToggleMultiSelect,children:this.state.multiSelect?"":"多选"}),this.state.multiSelect?(0,vt.jsx)("a",{href:"#",onClick:this.handleConfirmTargets,className:this.state.selectedTargets.length?"":"disabled",children:"确定"}):null,(0,vt.jsx)("a",{href:"#",onClick:this.handleClose,children:(0,vt.jsx)("i",{className:"material-icons",children:"close"})})]})]}),(0,vt.jsx)(Mt,{placeholder:"搜索联系人",onSearchContacts:this.handleSearchContacts}),this.state.error?(0,vt.jsx)("div",{className:"auth-field-error",children:this.state.error}):null,(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:"搜索返回任何结果",showOnline:!1,showUnread:!1,showContextMenu:!1,topicSelected:this.state.multiSelect?this.state.selectedTargets:null,onTopicSelected:this.handleContactSelected})]})})}}var Ut=a(6686),Rt=a(5247),Lt=a(7981),Ot=a(7256);const Ft=new Audio("audio/call-in.m4a");class $t extends n().Component{constructor(e){super(e),this.state={topic:null,fullName:void 0,avatar:null,trustedBadges:[],previousMetaDesc:void 0},this.resetDesc=this.resetDesc.bind(this),this.onMetaDesc=this.onMetaDesc.bind(this),this.handleRejectCall=this.handleRejectCall.bind(this),this.handleAcceptCall=this.handleAcceptCall.bind(this),this.ringTimer=null}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);e&&(this.resetDesc(e),2==this.props.callState&&(Ft.play().catch(e=>{}),this.ringTimer=setInterval(e=>{Ft.play().catch(e=>{})},2e3),this.props.onRinging(this.props.topic,this.props.seq)))}componentDidUpdate(e){const n=this.props.tinode.getTopic(e.topic);n&&(this.onMetaDesc!=n.onMetaDesc&&(this.previousMetaDesc=n.onMetaDesc,n.onMetaDesc=this.onMetaDesc),this.state.topic!=e.topic&&(this.setState({topic:e.topic}),this.resetDesc(n,e)))}componentWillUnmount(){null!=this.ringTimer&&(clearInterval(this.ringTimer),Ft.pause());const e=this.props.tinode.getTopic(this.props.topic);e&&(this.setState({topic:null}),e.onMetaDesc=this.previousMetaDesc)}resetDesc(e){const n=[];if(e.trusted)for(const[t,s]of Object.entries(e.trusted))s&&n.push(t);this.setState({fullName:(0,Ot.W5)(e.public?e.public.fn:void 0,60),avatar:(0,Lt.to)(e.public?e.public.photo:null),trustedBadges:n})}onMetaDesc(e){const n=this.props.tinode.getTopic(this.props.topic);n&&(this.resetDesc(n),this.previousMetaDesc&&this.previousMetaDesc!=this.onMetaDesc&&this.previousMetaDesc(e))}handleAcceptCall(){this.props.onAcceptCall(this.props.topic)}handleRejectCall(){this.props.onReject(this.props.topic,this.props.seq),this.props.onClose()}render(){const e=!!this.props.audioOnly,n=2==this.props.callState,t=e?"call-audio-surface":"call-video-surface",s=this.state.avatar?{"--incoming-call-photo":`url(${this.state.avatar})`}:null;return(0,vt.jsxs)("div",{className:`call-fullscreen incoming-call-overlay ${t} incoming`,children:[(0,vt.jsx)("div",{className:"call-ambient"}),this.state.avatar&&(0,vt.jsx)("div",{className:"incoming-call-photo-blur",style:s}),(0,vt.jsxs)("div",{className:"call-peer-card",children:[(0,vt.jsx)("div",{className:"avatar-box call-product-avatar",children:(0,vt.jsx)(Rt.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:this.state.avatar||!0,topic:this.props.topic,title:this.state.fullName})}),(0,vt.jsxs)("h1",{children:[(0,vt.jsx)("span",{children:(0,Ot.W5)(this.state.fullName,24)}),(0,vt.jsx)(Ut.A,{short:!0,trustedBadges:this.state.trustedBadges})]}),(0,vt.jsx)("p",{children:e?"对方邀请你语音通话...":"对方邀请你视频通话..."}),n&&(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]})]}),(0,vt.jsx)("footer",{className:"call-incoming-actions",children:n?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("button",{type:"button",className:"call-control danger",onClick:this.handleRejectCall,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:"call_end"})}),(0,vt.jsx)("small",{children:"拒绝"})]}),(0,vt.jsxs)("button",{type:"button",className:"call-control",onClick:this.handleAcceptCall,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:e?"call":"videocam"})}),(0,vt.jsx)("small",{children:"接听"})]})]}):null})]})}}var Vt=a(6624),Ht=a.n(Vt);function Wt({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}const Kt={inversionAttempts:"dontInvert"};class Xt extends n().Component{constructor(e){super(e),this.state={status:"starting",errorText:""},this.videoRef=n().createRef(),this.canvas=document.createElement("canvas"),this.stream=null,this.timer=null,this.detected=!1,this.start=this.start.bind(this),this.stopStream=this.stopStream.bind(this),this.tick=this.tick.bind(this)}componentDidMount(){this.start()}componentWillUnmount(){this.stopStream()}start(){navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?(this.detected=!1,this.setState({status:"starting",errorText:""}),navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"},audio:!1}).then(e=>{this.stream=e;const n=this.videoRef.current;n?(n.srcObject=e,n.play().catch(()=>{}),this.setState({status:"scanning"}),this.timer=window.setInterval(this.tick,200)):e.getTracks().forEach(e=>e.stop())}).catch(e=>{const n=e&&e.name,t="NotAllowedError"===n?"未获得摄像头权限,请在浏览器设置中允许访问摄像头":"NotFoundError"===n?"未检测到可用摄像头":"NotReadableError"===n?"摄像头正被其他程序占用":"摄像头启动失败,请重试";this.setState({status:"error",errorText:t})})):this.setState({status:"error",errorText:"当前浏览器不支持摄像头访问"})}stopStream(){this.timer&&(window.clearInterval(this.timer),this.timer=null),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=null)}tick(){if(this.detected)return;const e=this.videoRef.current;if(!e||e.readyState!==e.HAVE_ENOUGH_DATA)return;const n=e.videoWidth,t=e.videoHeight;if(!n||!t)return;const s=Math.min(1,480/Math.max(n,t)),i=Math.round(n*s),o=Math.round(t*s);this.canvas.width=i,this.canvas.height=o;const a=this.canvas.getContext("2d",{willReadFrequently:!0});let r;a.drawImage(e,0,0,i,o);try{r=a.getImageData(0,0,i,o)}catch(e){return}const l=Ht()(r.data,i,o,Kt);l&&l.data&&(this.detected=!0,this.setState({status:"resolving"}),this.stopStream(),this.props.onDetect(l.data))}render(){const{status:e,errorText:n}=this.state;return(0,vt.jsxs)("div",{className:"qr-scan-view",children:[(0,vt.jsx)("video",{ref:this.videoRef,className:"qr-scan-video",muted:!0,playsInline:!0,autoPlay:!0}),(0,vt.jsx)("div",{className:"qr-scan-mask",children:(0,vt.jsxs)("div",{className:"qr-scan-frame",children:[(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-tl"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-tr"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-bl"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-br"})]})}),(0,vt.jsxs)("header",{className:"qr-scan-header",children:[(0,vt.jsx)("button",{type:"button",onClick:this.props.onClose,"aria-label":"返回",children:(0,vt.jsx)(Wt,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"扫一扫"}),(0,vt.jsx)("span",{})]}),"starting"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"正在启动摄像头…"}):null,"scanning"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"将二维码放入框内,即可自动扫描"}):null,"resolving"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"识别中…"}):null,"error"===e?(0,vt.jsxs)("div",{className:"qr-scan-error",children:[(0,vt.jsx)(Wt,{children:"error_outline"}),(0,vt.jsx)("p",{children:n}),(0,vt.jsx)("button",{type:"button",onClick:this.start,children:"重试"})]}):null]})}}function Gt({group:e,onSubmit:t,onCancel:s}){const[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(null);return n().useEffect(()=>{if(!e.avatar_file_id)return;let n=!0;return(0,zt.w8)(e.avatar_file_id).then(e=>{n&&c(e)}).catch(()=>{}),()=>{n=!1}},[e.avatar_file_id]),(0,vt.jsx)("div",{className:"qr-join-backdrop",children:(0,vt.jsxs)("section",{className:"qr-join-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("span",{className:"qr-join-avatar",children:l?(0,vt.jsx)("img",{src:l,alt:""}):(0,vt.jsx)(Wt,{children:"group"})}),(0,vt.jsx)("h2",{children:e.name||"群聊"}),(0,vt.jsxs)("p",{children:[e.member_count||0," 人"]}),(0,vt.jsx)("input",{value:i,onChange:e=>o(e.target.value),placeholder:"验证消息(选填)",maxLength:60,disabled:a}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:a,onClick:()=>{r(!0),Promise.resolve(t(i.trim())).finally(()=>r(!1))},children:a?"提交中…":"申请加入"}),(0,vt.jsx)("button",{type:"button",onClick:s,disabled:a,children:"取消"})]})})}var Jt=a(3405),Yt=a(9304);class Zt extends n().PureComponent{render(){return(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onBack()},children:(0,vt.jsx)("i",{className:"material-icons",children:"arrow_back"})})}}var Qt=a(6565);class es extends n().PureComponent{render(){return(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onNewTopic()},children:(0,vt.jsx)("i",{className:"material-icons",children:"chat"})})," ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()},children:(0,vt.jsx)("i",{className:"material-icons",children:"settings"})})]})}}class ns extends n().PureComponent{render(){return(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSignUp()},children:(0,vt.jsx)("i",{className:"material-icons",children:"person_add"})})," ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()},children:(0,vt.jsx)("i",{className:"material-icons",children:"settings"})})]})}}class ts extends n().PureComponent{render(){const e=[];this.props.trustedBadges&&this.props.trustedBadges.forEach(n=>{e.push({icon:n,color:"badge-inv"})});let n=null;return this.props.tinode&&(n=this.props.tinode.authorizeURL((0,Et.wk)(this.props.avatar,"image"))),(0,vt.jsxs)("div",{id:"side-caption-panel",className:"caption-panel",children:[this.props.onCancel?(0,vt.jsx)(Zt,{onBack:this.props.onCancel}):null,n?(0,vt.jsx)("div",{id:"self-avatar",className:"avatar-box",children:(0,vt.jsx)(Rt.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:n,topic:this.props.myUserId,title:this.props.title})}):null,(0,vt.jsxs)("div",{id:"sidepanel-title",className:"panel-title",children:[this.props.title,(0,vt.jsx)(Qt.A,{badges:e})]}),"login"===this.props.state?(0,vt.jsx)(ns,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?(0,vt.jsx)(es,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null]})}}var ss=a(6916),is=a(184);const os=/^[a-z0-9]{1,10}$/,as=/^\d{11}$/,rs=/^[A-Za-z]{5}$/,ls=/^[0-9A-Z]{18}$/,cs=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ds=(e,n)=>is.A.navigateTo(is.A.composeUrl([e],n||{}));function hs({children:e,className:n=""}){return(0,vt.jsx)("i",{className:"material-icons "+n,"aria-hidden":"true",children:e})}function us({tenantName:e}){return(0,vt.jsxs)("div",{className:"auth-brand",children:[(0,vt.jsx)("div",{className:"auth-logo",children:(0,vt.jsx)("span",{children:Ct.iv[0]})}),(0,vt.jsx)("h1",{children:e||Ct.iv})]})}function gs({title:e,back:n="tenant"}){return(0,vt.jsxs)("header",{className:"auth-header",children:[(0,vt.jsx)("button",{type:"button",className:"auth-icon-button",onClick:()=>{is.A.goBack()||ds(n)},"aria-label":"返回",children:(0,vt.jsx)(hs,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),(0,vt.jsx)("span",{className:"auth-header-spacer"})]})}function ps({icon:e,onIconClick:n,action:t,error:s,className:i="",...o}){return(0,vt.jsxs)("div",{className:"auth-field-wrap "+i,children:[(0,vt.jsxs)("div",{className:"auth-field"+(s?" invalid":""),children:[e?n?(0,vt.jsx)("button",{type:"button",className:"auth-field-icon-button",onClick:n,children:(0,vt.jsx)(hs,{children:e})}):(0,vt.jsx)(hs,{className:"auth-field-icon",children:e}):null,(0,vt.jsx)("input",{...o}),t]}),s?(0,vt.jsx)("div",{className:"auth-field-error",children:s}):null]})}function ms(e){const[t,s]=n().useState(!1);return(0,vt.jsx)(ps,{...e,type:t?"text":"password",action:(0,vt.jsx)("button",{type:"button",className:"auth-inline-icon",onClick:()=>s(!t),"aria-label":t?"隐藏密码":"显示密码",children:(0,vt.jsx)(hs,{children:t?"visibility":"visibility_off"})})})}function fs({checked:e,onChange:n,prefix:t=`同意${Ct.iv}`}){return(0,vt.jsxs)("label",{className:"auth-agreement",children:[(0,vt.jsx)("input",{type:"checkbox",checked:e,onChange:e=>n(e.target.checked)}),(0,vt.jsxs)("span",{children:[t," ",(0,vt.jsx)("a",{href:"#agreement",onClick:e=>e.preventDefault(),children:"《用户协议》"})," 和 ",(0,vt.jsx)("a",{href:"#privacy",onClick:e=>e.preventDefault(),children:"《隐私政策》"})]})]})}function xs({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2800);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsxs)("div",{className:"auth-toast",role:"status",children:[(0,vt.jsx)(hs,{children:"check_circle"}),e]}):null}function js({text:e}){return e?(0,vt.jsxs)("div",{className:"auth-form-alert",children:[(0,vt.jsx)(hs,{children:"error_outline"}),e]}):null}function bs({onTenantResolved:e}){const[t,s]=n().useState(sessionStorage.getItem("im-tenant-code")||""),[i,o]=n().useState(""),[a,r]=n().useState(!1);return(0,vt.jsxs)("div",{className:"auth-landing",children:[(0,vt.jsx)("button",{className:"auth-top-link",type:"button",onClick:()=>ds("enterprise-register"),children:"企业注册"}),(0,vt.jsxs)("form",{className:"auth-landing-form",onSubmit:async n=>{n.preventDefault();const s=t.trim();if(!s||s.length>64)o(s?"企业码不能超过 64 个字符":"请输入企业码");else{r(!0),o("");try{const n=await(0,zt.lX)(s);sessionStorage.setItem("im-tenant-code",n.tenant.code||s),sessionStorage.setItem("im-tenant-name",n.tenant.name||n.tenant.code||s),e(n,s),ds("login")}catch(e){o("企业码不存在或已停用,请核实后重试")}finally{r(!1)}}},children:[(0,vt.jsx)(us,{}),(0,vt.jsx)(ps,{value:t,onChange:e=>{s(e.target.value),o("")},placeholder:"请输入企业码",autoComplete:"organization",maxLength:"64",error:i,autoFocus:!0}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!t.trim()||a,children:a?"进入中…":"进入企业"})]}),(0,vt.jsx)("button",{className:"auth-bottom-link",type:"button",onClick:()=>ds("enterprise-feedback"),children:"遇到问题?"})]})}function ys({tenantName:e,login:t,loginDisabled:s,persist:i,errorText:o,errorLevel:a,onLoginRequest:r,onPersistenceChange:l,onError:c}){const[d,h]=n().useState(t||""),[u,g]=n().useState(""),[p,m]=n().useState(!1);return n().useEffect(()=>{i||l(!0)},[]),n().useEffect(()=>{"err"===a&&o&&g("")},[o,a]),(0,vt.jsxs)("div",{className:"auth-landing auth-login-page",children:[(0,vt.jsxs)("button",{type:"button",className:"auth-back-link",onClick:()=>{c&&c(),ds("tenant")},children:[(0,vt.jsx)(hs,{children:"arrow_back_ios_new"}),"切换企业"]}),(0,vt.jsxs)("form",{className:"auth-landing-form",onSubmit:e=>{e.preventDefault(),d.trim()&&u&&p&&!s&&r(d.trim(),u)},children:[(0,vt.jsx)(us,{tenantName:e}),(0,vt.jsx)(js,{text:"err"===a?o:""}),(0,vt.jsx)(ps,{value:d,onChange:e=>h(e.target.value),placeholder:"请输入用户名/手机号",autoComplete:"username"}),(0,vt.jsx)(ms,{value:u,onChange:e=>g(e.target.value),placeholder:"请输入密码",autoComplete:"current-password"}),(0,vt.jsx)("div",{className:"auth-row auth-row-end",children:(0,vt.jsx)("button",{type:"button",className:"auth-text-button",onClick:()=>ds("reset"),children:"忘记密码"})}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!d.trim()||!u||!p||s,children:s?"登录中…":"登录"}),(0,vt.jsxs)("p",{className:"auth-switch",children:["没有账户? ",(0,vt.jsx)("button",{type:"button",onClick:()=>ds("register"),children:"马上注册"})]})]}),(0,vt.jsx)(fs,{checked:p,onChange:m})]})}function ws(){const[e,t]=n().useState(""),[s,i]=n().useState(""),[o,a]=n().useState(null),[r,l]=n().useState({}),[c,d]=n().useState(!1),[h,u]=n().useState(!1),[g,p]=n().useState(1),[m,f]=n().useState("");return n().useEffect(()=>()=>o&&URL.revokeObjectURL(o.url),[o]),(0,vt.jsxs)("div",{className:"auth-page",children:[(0,vt.jsx)(gs,{title:"企业注册"}),(0,vt.jsxs)("main",{className:"auth-content auth-content-narrow",children:[(0,vt.jsxs)("ol",{className:"auth-steps",children:[(0,vt.jsxs)("li",{className:"active",children:[(0,vt.jsx)("span",{children:"1"}),(0,vt.jsx)("b",{children:"填写企业信息"})]}),(0,vt.jsxs)("li",{className:h?"active":"",children:[(0,vt.jsx)("span",{children:"2"}),(0,vt.jsx)("b",{children:"确定信息"})]}),(0,vt.jsxs)("li",{className:h?"active":"",children:[(0,vt.jsx)("span",{children:"3"}),(0,vt.jsx)("b",{children:"提交审核"})]})]}),(0,vt.jsxs)("form",{className:"auth-form",onSubmit:async n=>{n.preventDefault();const t={};if(ls.test(e)||(t.creditCode="请输入 18 位统一社会信用代码"),s&&!cs.test(s)&&(t.email="请输入有效的企业邮箱"),l(t),!Object.keys(t).length){d(!0);try{let n="";o&&(n=(await(0,zt.rW)(o.blob,"enterprise_license")).file_id);const t=await(0,zt.jP)({credit_code:e,enterprise_email:s,license_file_id:n,tenant_code_hint:sessionStorage.getItem("im-tenant-code")||""});p(Math.max(1,Math.round((t.estimated_review_hours||24)/24))),u(!0),f("提交成功,我们会尽快联系你")}catch(e){l({...t,form:e.message||"提交失败,请稍后重试"})}finally{d(!1)}}},children:[(0,vt.jsx)(js,{text:r.form}),(0,vt.jsx)("label",{className:"auth-label",children:"统一社会信用代码"}),(0,vt.jsx)(ps,{value:e,onChange:e=>t(e.target.value.trim().toUpperCase().replace(/[^0-9A-Z]/g,"")),placeholder:"请输入18位统一社会信用代码",maxLength:"18",error:r.creditCode,action:(0,vt.jsx)("button",{type:"button",className:"auth-inline-icon",onClick:()=>f("扫码识别暂不可用,请手动输入"),children:(0,vt.jsx)(hs,{children:"qr_code_scanner"})})}),(0,vt.jsx)("p",{className:"auth-help",children:"请填写营业执照上的统一社会信用代码"}),(0,vt.jsxs)("label",{className:"auth-label",children:["上传营业执照 ",(0,vt.jsx)("span",{children:"选填"})]}),(0,vt.jsxs)("label",{className:"auth-upload"+(r.file?" invalid":""),children:[(0,vt.jsx)("input",{type:"file",accept:"image/jpeg,image/png,image/webp,application/pdf",onChange:e=>{const n=e.target.files[0];n&&(n.size>10485760||!["image/jpeg","image/png","image/webp","application/pdf"].includes(n.type)?l({...r,file:"支持 JPG、PNG、WebP、PDF,文件不超过 10MB"}):(o&&URL.revokeObjectURL(o.url),a({name:n.name,type:n.type,url:URL.createObjectURL(n),blob:n}),l({...r,file:""})))}}),o&&"application/pdf"!==o.type?(0,vt.jsx)("img",{src:o.url,alt:"营业执照预览"}):(0,vt.jsx)(hs,{children:"add_photo_alternate"}),(0,vt.jsx)("strong",{children:o?o.name:"点击上传营业执照"}),(0,vt.jsx)("small",{children:"支持 JPG、PNG、WebP、PDF,不超过 10MB"})]}),o?(0,vt.jsx)("button",{type:"button",className:"auth-remove-file",onClick:()=>{URL.revokeObjectURL(o.url),a(null)},children:"移除文件"}):null,r.file?(0,vt.jsx)("div",{className:"auth-field-error",children:r.file}):null,(0,vt.jsxs)("label",{className:"auth-label",children:["企业邮箱 ",(0,vt.jsx)("span",{children:"选填"})]}),(0,vt.jsx)(ps,{icon:"mail_outline",value:s,onChange:e=>i(e.target.value),placeholder:"请输入企业邮箱",type:"email",error:r.email}),(0,vt.jsx)("p",{className:"auth-help",children:"用于接收审核结果及企业通知"}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:h||c||18!==e.length,children:h?"已提交":c?"提交中…":"提交资料"}),(0,vt.jsxs)("p",{className:"auth-review-time",children:[(0,vt.jsx)(hs,{children:"schedule"}),"资料提交后,预计 ",g," 个工作日完成审核"]})]})]}),(0,vt.jsx)(xs,{message:m,onDone:()=>f("")})]})}function vs(){const[e,t]=n().useState(""),[s,i]=n().useState([]),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState("");return(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg",children:[(0,vt.jsx)(gs,{title:"意见反馈"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow",children:(0,vt.jsxs)("form",{className:"auth-form",onSubmit:async n=>{n.preventDefault();const o=e.trim().length;if(o<10||o>300)a("问题描述需为 10 至 300 个字符");else{l(!0);try{const n=[];for(const e of s){const t=await(0,zt.rW)(e.blob,"tenant_entry_feedback");n.push(t.file_id)}await(0,zt.q8)({description:e.trim(),tenant_code_hint:sessionStorage.getItem("im-tenant-code")||"",screenshot_file_ids:n}),d("已收到反馈,我们会尽快处理"),s.forEach(e=>URL.revokeObjectURL(e.url)),t(""),i([]),a("")}catch(e){a(e.message||"提交失败,请稍后重试")}finally{l(!1)}}},children:[(0,vt.jsx)("label",{className:"auth-label",children:"问题反馈"}),(0,vt.jsx)("textarea",{value:e,maxLength:"300",onChange:e=>{t(e.target.value),a("")},placeholder:"为了更好的帮您解决问题,请在提交问题时上传截图信息,方便我们更快速的帮助您解决问题。",className:o?"invalid":""}),(0,vt.jsxs)("div",{className:"auth-counter",children:[e.length,"/300"]}),o?(0,vt.jsx)("div",{className:"auth-field-error",children:o}):null,(0,vt.jsxs)("label",{className:"auth-label",children:["图片(",s.length,"/9)"]}),(0,vt.jsxs)("div",{className:"auth-screenshot-grid",children:[s.map((e,n)=>(0,vt.jsxs)("div",{className:"auth-screenshot",children:[(0,vt.jsx)("img",{src:e.url,alt:e.name}),(0,vt.jsx)("button",{type:"button",onClick:()=>{URL.revokeObjectURL(e.url),i(s.filter((e,t)=>t!==n))},"aria-label":"删除截图",children:(0,vt.jsx)(hs,{children:"close"})})]},e.url)),s.length<9?(0,vt.jsxs)("label",{className:"auth-add-screenshot",children:[(0,vt.jsx)("input",{type:"file",multiple:!0,accept:"image/jpeg,image/png,image/webp",onChange:e=>{const n=Array.from(e.target.files||[]).slice(0,9-s.length).filter(e=>e.size<=10485760&&["image/jpeg","image/png","image/webp"].includes(e.type));i(s.concat(n.map(e=>({name:e.name,url:URL.createObjectURL(e),blob:e}))))}}),(0,vt.jsx)(hs,{children:"photo_camera"}),(0,vt.jsx)("span",{children:"点击上传"})]}):null]}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:e.trim().length<10||r,children:r?"提交中…":"提交"})]})}),(0,vt.jsx)(xs,{message:c,onDone:()=>d("")})]})}function ks({phone:e,scene:t="register",onChallenge:s,onError:i}){const[o,a]=n().useState(0),[r,l]=n().useState(!1);return n().useEffect(()=>{if(!o)return;const e=window.setTimeout(()=>a(e=>e-1),1e3);return()=>window.clearTimeout(e)},[o]),(0,vt.jsx)("button",{type:"button",className:"auth-code-button",disabled:r||o>0||!as.test(e),onClick:async()=>{if(!(r||o>0)&&as.test(e)){l(!0);try{const n=await(0,zt.aQ)(t,e);s(n.challenge_id),a(n.resend_after_seconds||60)}catch(e){i&&i(e.message||"获取验证码失败"),e.details&&e.details.retry_after_seconds&&a(e.details.retry_after_seconds),e.details&&e.details.challenge_id&&s(e.details.challenge_id)}finally{l(!1)}}},children:o>0?`${o}s`:r?"发送中…":"获取验证码"})}function Cs({errorText:e,errorLevel:t,persist:s,onImRegisterRequest:i,onPersistenceChange:o}){const[a,r]=n().useState({username:"",phone:"",code:"",password:"",invite:""}),[l,c]=n().useState(""),[d,h]=n().useState(!1),[u,g]=n().useState({}),[p,m]=n().useState(!1),f=!!a.phone;return n().useEffect(()=>{s||o(!0)},[]),n().useEffect(()=>{"err"===t&&e&&m(!1)},[e,t]),(0,vt.jsxs)("div",{className:"auth-landing auth-register-page",children:[(0,vt.jsxs)("form",{className:"auth-landing-form auth-register-form",onSubmit:async e=>{e.preventDefault();const n={};if(a.username||a.phone||(n.username="用户名和手机号至少填写一项"),a.username&&!os.test(a.username)&&(n.username="用户名仅支持 1-10 位小写字母或数字"),f?(as.test(a.phone)||(n.phone="请输入 11 位手机号"),l?/^\d{6}$/.test(a.code)||(n.code="请输入 6 位验证码"):n.code="请先获取验证码"):rs.test(a.invite)||(n.invite="用户名注册需填写 5 位字母邀请码"),a.password.length<8&&(n.password="密码至少 8 位"),g(n),!Object.keys(n).length){m(!0);try{if(f){const e=await(0,zt.sd)(l,a.code),n=a.username||"+86"+a.phone;i(n,a.password,a.username||"",{username:a.username||"",phone:a.phone,invite_code:a.invite||""},{meth:"tel",val:a.phone,resp:e.verification_token,params:{challenge_id:l}})}else i(a.username,a.password,a.username,{username:a.username,phone:"",invite_code:a.invite},null)}catch(e){g({...n,code:e.message||"验证码错误或已过期"}),m(!1)}}},children:[(0,vt.jsx)(us,{tenantName:sessionStorage.getItem("im-tenant-name")||Ct.iv}),(0,vt.jsx)(js,{text:"err"===t?e:""}),(0,vt.jsx)(ps,{value:a.username,onChange:e=>r({...a,username:e.target.value.replace(/[^a-z0-9]/g,"").slice(0,10)}),placeholder:"请输入用户名",error:u.username,autoComplete:"username"}),(0,vt.jsx)(ps,{value:a.phone,onChange:e=>r({...a,phone:e.target.value.replace(/\D/g,"").slice(0,11)}),placeholder:"请输入手机号",error:u.phone,inputMode:"numeric"}),(0,vt.jsx)(ps,{value:a.code,onChange:e=>r({...a,code:e.target.value.replace(/\D/g,"").slice(0,6)}),placeholder:"请输入短信验证码",inputMode:"numeric",error:u.code,action:(0,vt.jsx)(ks,{phone:a.phone,scene:"register",onChallenge:c,onError:e=>g(n=>({...n,code:e}))})}),(0,vt.jsx)(ms,{value:a.password,onChange:(x="password",e=>r({...a,[x]:e.target.value})),placeholder:"请输入密码",autoComplete:"new-password",error:u.password}),(0,vt.jsx)(ps,{value:a.invite,onChange:e=>r({...a,invite:e.target.value.replace(/[^A-Za-z]/g,"").slice(0,5)}),placeholder:"请输入邀请码(非必填)",error:u.invite,autoCapitalize:"off",autoCorrect:"off"}),f?null:(0,vt.jsx)("p",{className:"auth-help",children:"未绑定手机号无法自助找回密码,忘记密码后只能联系企业管理员重置"}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!a.username&&!a.phone||!a.password||!d||p,children:p?"注册中…":"注册"}),(0,vt.jsxs)("p",{className:"auth-switch",children:["已有",Ct.iv,"账号? ",(0,vt.jsx)("button",{type:"button",onClick:()=>ds("login"),children:"登录"})]})]}),(0,vt.jsx)(fs,{checked:d,onChange:h,prefix:`注册即认同${Ct.iv}`})]});var x}function zs(){const[e,t]=n().useState({phone:"",code:"",password:"",confirm:""}),[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState(""),h=n=>s=>t({...e,[n]:s.target.value});return(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg",children:[(0,vt.jsx)(gs,{title:"忘记密码",back:"login"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow auth-reset-content",children:(0,vt.jsxs)("form",{className:"auth-list-form",onSubmit:async n=>{if(n.preventDefault(),!as.test(e.phone))return a("请输入 11 位手机号");if(!s||!/^\d{6}$/.test(e.code))return a("请先获取并输入 6 位验证码");if(e.password.length<8)return a("密码至少 8 位");if(e.password!==e.confirm)return a("两次输入的密码不一致");l(!0),a("");try{const n=await(0,zt.RE)(s,e.code);await(0,zt.R4)(n.reset_token,e.password),d("密码修改成功,请重新登录"),window.setTimeout(()=>ds("login"),1200)}catch(e){a(e.message||"验证码错误或已过期"),l(!1)}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"手机号"}),(0,vt.jsx)("input",{value:e.phone,onChange:n=>t({...e,phone:n.target.value.replace(/\D/g,"").slice(0,11)}),placeholder:"请输入手机号",inputMode:"numeric"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证码"}),(0,vt.jsx)("input",{value:e.code,onChange:n=>t({...e,code:n.target.value.replace(/\D/g,"").slice(0,6)}),placeholder:"请输入验证码",inputMode:"numeric"}),(0,vt.jsx)(ks,{phone:e.phone,scene:"reset_password",onChallenge:i,onError:a})]}),(0,vt.jsx)("div",{className:"auth-list-gap"}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"设置密码"}),(0,vt.jsx)("input",{type:"password",value:e.password,onChange:h("password"),placeholder:"至少 8 位"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"再次输入"}),(0,vt.jsx)("input",{type:"password",value:e.confirm,onChange:h("confirm"),placeholder:"请再次确定密码"})]}),o?(0,vt.jsxs)("div",{className:"auth-form-alert",children:[(0,vt.jsx)(hs,{children:"error_outline"}),o]}):null,(0,vt.jsx)("button",{className:"auth-primary auth-sticky-action",type:"submit",disabled:!e.phone||!e.code||!e.password||!e.confirm||r,children:r?"提交中…":"修改密码"})]})}),(0,vt.jsx)(xs,{message:c,onDone:()=>d("")})]})}const _s="set_independent_password";function Ss({authenticated:e,hashParams:t}){const s=t&&t.ym,[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(0),[u,g]=n().useState(!1),[p,m]=n().useState("");n().useEffect(()=>{if(!d)return;const e=window.setTimeout(()=>h(e=>e-1),1e3);return()=>window.clearTimeout(e)},[d]);const f=n().useCallback(async()=>{g(!0),m("");try{const e=await(0,zt.cd)(_s);r(e.challenge_id),o(e.phone_mask),h(e.resend_after_seconds||60)}catch(e){m("REALNAME_REQUIRED"===e.reason?"需要先完成实名认证并绑定手机号":e.message||"获取验证码失败"),e.details&&e.details.retry_after_seconds&&h(e.details.retry_after_seconds),e.details&&e.details.challenge_id&&r(e.details.challenge_id),e.details&&e.details.phone_mask&&o(e.details.phone_mask)}finally{g(!1)}},[]);return n().useEffect(()=>{f()},[f]),(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg auth-identity-check-page",children:[(0,vt.jsx)(gs,{title:"身份验证",back:e?"security":"login"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow auth-reset-content",children:(0,vt.jsxs)("form",{className:"auth-list-form",onSubmit:async e=>{if(e.preventDefault(),a&&6===l.length&&!u){g(!0);try{const e=await(0,zt.r8)(a,l);sessionStorage.setItem("im-action-token:"+_s,JSON.stringify(e)),ds("independent-password",s?{ym:s}:void 0)}catch(e){m(e.message||"验证码错误")}finally{g(!1)}}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"手机号"}),(0,vt.jsx)("input",{value:i,readOnly:!0,placeholder:"获取中…"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证码"}),(0,vt.jsx)("input",{value:l,onChange:e=>c(e.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"请输入验证码",inputMode:"numeric"}),(0,vt.jsx)("button",{type:"button",className:"auth-code-button",disabled:u||d>0,onClick:f,children:d>0?`${d}s`:"获取验证码"})]}),p?(0,vt.jsx)("div",{className:"auth-field-error",children:p}):null,(0,vt.jsx)("button",{className:"auth-primary auth-sticky-action",type:"submit",disabled:6!==l.length||u,children:"确定"})]})})]})}function Ns({authenticated:e=!1}){const[t,s]=n().useState("loading"),[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(!1);n().useEffect(()=>{(0,zt.II)().then(e=>{s(e.status),o(e.masked_name||""),r(e.masked_id_number||"")}).catch(e=>{g(e.message||"加载实名状态失败"),s("load_error")})},[]);const f="unverified"===t||"rejected"===t;return"loading"===t||"load_error"===t?(0,vt.jsxs)("div",{className:"auth-page auth-realname-page",children:[(0,vt.jsx)(gs,{title:"实名认证",back:e?"security":"login"}),(0,vt.jsx)("p",{className:"auth-privacy-note",style:{margin:"2rem 1rem"},children:"load_error"===t?u||"加载失败,请重试":"加载中…"})]}):(0,vt.jsxs)("div",{className:"auth-page auth-realname-page",children:[(0,vt.jsx)(gs,{title:"实名认证",back:e?"security":"login"}),(0,vt.jsxs)("div",{className:"auth-realname-hero",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"实名认证"}),(0,vt.jsx)("span",{children:"更加真实,更受欢迎"})]}),(0,vt.jsx)(hs,{children:"verified_user"})]}),(0,vt.jsxs)("main",{className:"auth-realname-content",children:[(0,vt.jsx)("h2",{children:"请您使用有效身份证信息认证"}),(0,vt.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),l.trim().length<2||!/^\d{17}[\dXx]$/.test(d))g("请输入有效姓名和 18 位身份证号码");else{m(!0);try{const e=await(0,zt.uX)({name:l.trim(),id_type:"cn_id",id_number:d.toUpperCase()});s(e.status||"pending"),g(""),(0,zt.II)().then(e=>{e.masked_name&&o(e.masked_name),e.masked_id_number&&r(e.masked_id_number)}).catch(()=>{})}catch(e){g(e.message||"提交失败,请稍后重试")}finally{m(!1)}}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"姓名"}),(0,vt.jsx)("input",{value:f?l:i||l,onChange:e=>c(e.target.value),readOnly:!f,placeholder:"请输入真实姓名"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"证件号码"}),(0,vt.jsx)("input",{value:f?d:a||d,onChange:e=>h(e.target.value),readOnly:!f,placeholder:"请输入证件号码"})]}),u?(0,vt.jsx)("div",{className:"auth-field-error",children:u}):null,(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!f||p,children:"verified"===t?"已实名":"pending"===t?"审核中":p?"提交中…":"提交"})]}),(0,vt.jsxs)("p",{className:"auth-privacy-note",children:[(0,vt.jsx)(hs,{children:"info"}),"我们将获取您的姓名、证件号用于认证,信息会被严格保护"]})]})]})}function Ts(){return(0,vt.jsxs)("div",{className:"auth-page auth-reminder-demo",children:[(0,vt.jsxs)("div",{className:"auth-demo-chat",children:[(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsxs)("div",{className:"auth-demo-search",children:[(0,vt.jsx)(hs,{children:"search"}),"搜索"]}),["系统消息","文件助手","项目协作群","陈经理"].map((e,n)=>(0,vt.jsxs)("div",{className:"auth-demo-row",children:[(0,vt.jsx)("span",{children:e[0]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("b",{children:e}),(0,vt.jsx)("small",{children:n?"最近一条消息内容":"安全通知与账号动态"})]})]},e))]}),(0,vt.jsx)("div",{className:"auth-modal-backdrop",children:(0,vt.jsxs)("div",{className:"auth-modal",children:[(0,vt.jsx)("h2",{children:"实名认证提醒"}),(0,vt.jsx)("p",{children:"根据国家法律法规要求,您需先进行实名认证才能使用该项 APP"}),(0,vt.jsx)("button",{className:"auth-primary",onClick:()=>ds("realname"),children:"去实名认证"})]})})]})}function Bs({authenticated:e,hashParams:t}){const s=t&&t.ym,[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(!1),u=["0000","1111","2222","3333","4444","5555","6666","7777","8888","9999","0123","1234","2345","3456","4567","5678","6789","9876","8765","7654","6543","5432","4321","3210"];return(0,vt.jsxs)("div",{className:"auth-page",children:[(0,vt.jsx)(gs,{title:"",back:e?"security":"login"}),(0,vt.jsxs)("main",{className:"auth-pin-content",children:[(0,vt.jsx)("h1",{children:"设置独立密码"}),(0,vt.jsxs)("div",{className:"auth-pin-wrap",children:[(0,vt.jsx)("div",{className:"auth-pin-boxes","aria-hidden":"true",children:[0,1,2,3].map(e=>(0,vt.jsx)("span",{children:i[e]?"●":""},e))}),(0,vt.jsx)("input",{className:"auth-pin-input",type:"text",value:i,onChange:e=>o(e.target.value.replace(/\D/g,"").slice(0,4)),inputMode:"numeric",autoComplete:"off","aria-label":"四位独立密码",autoFocus:!0})]}),a?(0,vt.jsx)("div",{className:"auth-field-error",children:a}):null,(0,vt.jsx)("button",{className:"auth-primary",disabled:4!==i.length||d,onClick:async e=>{if(e.preventDefault(),u.includes(i))return void r("请勿使用连续或重复数字");const n=sessionStorage.getItem("im-action-token:"+_s),t=n&&JSON.parse(n).action_token;if(t){h(!0);try{const e=await(0,zt._B)(i,"youth_mode",t);sessionStorage.removeItem("im-action-token:"+_s),o("");const n=e&&e.enable_action_token;if(n&&"enable"===s)try{const e=await(0,zt.K2)();return await(0,zt.YU)(e.policy_version,n),r(""),c("青少年模式已开启"),void window.setTimeout(()=>ds("youth-mode-on"),600)}catch(e){return r("独立密码已设置,但自动开启未成功:"+(e.message||"请返回重试")),void window.setTimeout(()=>ds("youth-mode-off"),1200)}if("disable"===s)return r(""),c("独立密码已重置,请使用新密码关闭青少年模式"),void window.setTimeout(()=>ds("youth-mode-verify",{ym:"disable"}),800);r(""),c("独立密码设置成功")}catch(e){r(e.message||"设置失败,请返回重新验证身份")}finally{h(!1)}}else r("身份验证已过期,请返回重新验证")},children:d?"提交中…":"确定"})]}),(0,vt.jsx)(xs,{message:l,onDone:()=>c("")})]})}function Ps({view:e,hashParams:t,onTenantResolved:s,authenticated:i=!1,login:o,loginDisabled:a,persist:r,errorText:l,errorLevel:c,onLoginRequest:d,onPersistenceChange:h,onImRegisterRequest:u,onError:g}){const p=sessionStorage.getItem("im-tenant-name")||"";switch(n().useEffect(()=>{g&&g()},[e]),e){case"tenant":default:return(0,vt.jsx)(bs,{onTenantResolved:s||(()=>{})});case"login":return(0,vt.jsx)(ys,{tenantName:p,login:o,loginDisabled:a,persist:r,errorText:l,errorLevel:c,onLoginRequest:d,onPersistenceChange:h,onError:g});case"enterprise-register":return(0,vt.jsx)(ws,{});case"enterprise-feedback":return(0,vt.jsx)(vs,{});case"register":return(0,vt.jsx)(Cs,{errorText:l,errorLevel:c,persist:r,onImRegisterRequest:u,onPersistenceChange:h});case"reset":return(0,vt.jsx)(zs,{});case"identity-check":return(0,vt.jsx)(Ss,{authenticated:i,hashParams:t});case"realname":case"realname-verified":return(0,vt.jsx)(Ns,{authenticated:i});case"realname-reminder":return(0,vt.jsx)(Ts,{});case"independent-password":return(0,vt.jsx)(Bs,{authenticated:i,hashParams:t})}}const qs=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"topic",n):is.A.removeUrlParam(t,"topic"),is.A.navigateTo(t)},Ms=[{id:"quote",icon:"format_quote",label:"引用"},{id:"copy",icon:"content_copy",label:"复制"},{id:"favorite",icon:"inventory_2",label:"收藏"},{id:"translate",icon:"translate",label:"翻译"},{id:"forward",icon:"reply",label:"转发"},{id:"recall",icon:"undo",label:"撤回",gated:!0},{id:"delete",icon:"delete_outline",label:"删除",gated:!0},{id:"select",icon:"select_all",label:"多选"},{id:"group_recall",icon:"restart_alt",label:"群撤回"}];function As({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Es({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2200);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"messages-toast",role:"status",children:e}):null}function Is({item:e,small:n=!1}){const t="messages-avatar "+(n?"small ":"")+"tone-"+(e.tone||"blue");return(0,vt.jsxs)("div",{className:t,children:[e.avatar?(0,vt.jsx)("img",{src:e.avatar,alt:""}):(0,vt.jsx)(As,{children:e.icon||"person"}),void 0!==e.online?(0,vt.jsx)("span",{className:e.online?"online":"offline"}):null]})}function Ds(e){if(!e)return"";const n=new Date(e),t=new Date,s=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),i=Math.round((s(t)-s(n))/864e5),o=()=>n.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"});return 0===i?o():1===i?"昨天"+o():i<7?["周日","周一","周二","周三","周四","周五","周六"][n.getDay()]:n.toLocaleDateString("zh-CN",{month:"numeric",day:"numeric"})}function Us(e){const n=new Date(e),t=String(n.getHours()).padStart(2,"0"),s=String(n.getMinutes()).padStart(2,"0");return`${n.getMonth()+1}月${n.getDate()}日 ${t}:${s}`}function Rs(){return(0,vt.jsxs)("nav",{className:"messages-bottom-nav","aria-label":"主导航",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),"workbench")),children:[(0,vt.jsx)(As,{children:"dashboard"}),(0,vt.jsx)("span",{children:"工作台"})]}),(0,vt.jsxs)("button",{type:"button",className:"active",children:[(0,vt.jsx)(As,{children:"person"}),(0,vt.jsx)("span",{children:"消息"})]})]})}function Ls({onClose:e,onAction:n,permissions:t}){const s=[{id:"friends",icon:"group",label:"朋友"},{id:"profile",icon:"person_outline",label:"我的"},{id:"create-group",icon:"add_comment",label:"创建群组",permission:"create_group"},{id:"add-friend",icon:"person_add_alt",label:"添加好友",permission:"user_search"},{id:"scan",icon:"qr_code_scanner",label:"扫一扫",permission:"scan_qr"}].filter(e=>!e.permission||!t||!1!==t[e.permission]);return(0,vt.jsx)("div",{className:"messages-menu-backdrop",onMouseDown:e,children:(0,vt.jsx)("div",{className:"messages-quick-menu",onMouseDown:e=>e.stopPropagation(),role:"menu",children:s.map(e=>(0,vt.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>n(e),children:[(0,vt.jsx)(As,{children:e.icon}),(0,vt.jsx)("span",{children:e.label})]},e.id))})})}function Os({allowSkip:e,onDismiss:n}){return(0,vt.jsx)("div",{className:"auth-modal-backdrop",onClick:e?n:void 0,children:(0,vt.jsxs)("div",{className:"auth-modal",onClick:e=>e.stopPropagation(),children:[e?(0,vt.jsx)("button",{type:"button",className:"auth-modal-close","aria-label":"关闭",onClick:n,children:(0,vt.jsx)(As,{children:"close"})}):null,(0,vt.jsx)("h2",{children:"实名认证提醒"}),(0,vt.jsx)("p",{children:"根据国家法律法规要求,您需先进行实名认证才能使用该项 APP"}),(0,vt.jsx)("button",{className:"auth-primary",onClick:()=>qs("realname"),children:"去实名认证"})]})})}function Fs({view:e,connected:t,chatList:s,myUserId:i,onTopicSelected:o,onOpenScanner:a}){const[r,l]=n().useState(""),[c,d]=n().useState("messages-menu"===e),[h,u]=n().useState(""),[g]=(0,It.sK)(i?"bootstrap:"+i:null,zt.Jv,[i]),p="messages-offline"===e||!i||!1===t,m=function(e,n){return e&&0!==e.length?e.map((e,t)=>{const s="function"==typeof e.latestMessage?e.latestMessage():null;let i=e.private&&e.private.comment?e.private.comment:"暂无消息";s&&(i=function(e){if("string"==typeof e||null==e)return e||"";if(Array.isArray(e.ent)&&e.ent.length){const n={IM:"[图片]",VD:"[视频]",AU:"[语音]",EX:"[文件]",TC:"[名片]",VC:"[通话]"}[e.ent[0].tp];if(n)return n}return"string"==typeof e.text&&e.text?e.text:"string"==typeof e.comment&&e.comment?e.comment:"string"==typeof e.title&&e.title?"[聊天记录] "+e.title:e.txt||"[消息]"}(s.content)),s&&s.from===n&&(i="我:"+i);const o="string"==typeof e.topic&&e.topic.startsWith("grp");return{id:e.topic||e.user||String(t),title:(0,Et.TP)(e.topic,e.public,"未命名会话"),summary:i,time:Ds(e.touched),unread:Math.max(Number(e.unread)||0,0),avatar:(0,Lt.to)(e.public&&e.public.photo),icon:o?"group":"person",online:o?void 0:!!e.online,muted:!!(e.acs&&e.acs.isMuted&&e.acs.isMuted()),pinned:!(!e.private||!e.private.pinned)}}):[]}(s,i).sort((e,n)=>(n.pinned?1:0)-(e.pinned?1:0)),f=function(e){if(!e||!e.entries)return[];const n=[],t=e.entries.system_messages;t&&t.enabled&&n.push({id:"system",title:"系统消息",summary:"最新公告",icon:"notifications",tone:"orange",system:!0,unread:t.unread_count||0});const s=e.entries.file_assistant;return s&&s.enabled&&n.push({id:"files",title:"文件助手",summary:"你上传1份文件",icon:"folder",tone:"green",fileAssistant:!0,topic:s.topic,unread:s.unread_count||0}),n}(g).concat(m),x=f.filter(e=>`${e.title}${e.summary}`.toLowerCase().includes(r.trim().toLowerCase())),j=function(e){return e&&0!==e.length?e.filter(e=>e.topic&&wt.Tinode.isP2PTopicName(e.topic)).slice().sort((e,n)=>new Date(n.touched||0).getTime()-new Date(e.touched||0).getTime()).slice(0,8).map(e=>({id:e.topic,name:e.public&&e.public.fn||"未命名",avatar:(0,Lt.to)(e.public&&e.public.photo),online:!!e.online})):[]}(s),b=g&&g.security&&g.security.realname,[y]=(0,It.sK)(i?"realname-status:"+i:null,zt.II,[i]),[w,v]=n().useState(!1),k=i&&y?`realname-reminder-dismissed:${i}:${y.submission_id||y.status}`:null;let C=0;try{C=k?Number(localStorage.getItem(k)||0):0}catch(e){}const z=C>0&&Date.now()-C<function(e){const n=/^(\d+)\s*([hdm])$/i.exec(String(e||"").trim());if(!n)return 864e5;const t=Number(n[1]);return"d"===n[2].toLowerCase()?864e5*t:"h"===n[2].toLowerCase()?36e5*t:6e4*t}(b&&b.remind_after),_=!(!y||w||z||"unverified"!==y.status&&"rejected"!==y.status);return(0,vt.jsxs)("div",{className:"messages-product-page",children:[(0,vt.jsxs)("header",{className:"messages-home-header",children:[p?(0,vt.jsxs)("div",{className:"messages-connection",children:[(0,vt.jsx)("span",{className:"messages-spinner"}),"加载中"]}):(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsx)("button",{type:"button",className:"messages-menu-button",onClick:()=>d(!0),"aria-label":"更多功能",children:(0,vt.jsx)(As,{children:"menu"})})]}),(0,vt.jsxs)("main",{className:"messages-home-content",children:[(0,vt.jsxs)("label",{className:"messages-search",children:[(0,vt.jsx)(As,{children:"search"}),(0,vt.jsx)("input",{value:r,onChange:e=>l(e.target.value),placeholder:"搜索"})]}),j.length>0?(0,vt.jsxs)("section",{className:"messages-frequent",children:[(0,vt.jsx)("h2",{children:"常联系的人"}),(0,vt.jsx)("div",{className:"messages-frequent-scroll",children:j.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>o&&o(e.id),children:[(0,vt.jsx)(Is,{item:e,small:!0}),(0,vt.jsx)("span",{children:e.name})]},e.id))})]}):null,(0,vt.jsxs)("section",{className:"messages-conversations","aria-label":"会话列表",children:[x.map(e=>(0,vt.jsxs)("button",{type:"button",className:"messages-conversation"+(e.pinned?" pinned":""),onClick:()=>(e=>{e.system?qs("system-messages"):e.fileAssistant&&e.topic&&o?o(e.topic):s&&s.length&&o?o(e.id):qs("chat-standard")})(e),children:[(0,vt.jsx)(Is,{item:e}),(0,vt.jsxs)("span",{className:"messages-conversation-copy",children:[(0,vt.jsx)("strong",{children:e.title}),(0,vt.jsx)("small",{children:e.summary})]}),(0,vt.jsxs)("span",{className:"messages-conversation-meta",children:[(0,vt.jsx)("time",{children:e.time}),e.unread?(0,vt.jsx)("b",{children:e.unread>99?"99+":e.unread}):e.muted?(0,vt.jsx)(As,{children:"notifications_off"}):null]})]},e.id)),0===x.length?r.trim()?(0,vt.jsxs)("div",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"search_off"}),(0,vt.jsx)("p",{children:"未找到相关会话"})]}):(0,vt.jsxs)("div",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"forum"}),(0,vt.jsx)("p",{children:"暂无会话"})]}):null]})]}),(0,vt.jsx)(Rs,{}),c?(0,vt.jsx)(Ls,{onClose:()=>d(!1),onAction:e=>(d(!1),"friends"===e.id?qs("address-book"):"profile"===e.id?qs("personal-center"):"create-group"===e.id?qs("group-list"):"add-friend"===e.id?qs("add-friend"):"scan"===e.id&&a?a():void u("scan"===e.id?"扫码功能暂不可用":`${e.label}页面将在对应章节中提供`)),permissions:g&&g.permissions}):null,(0,vt.jsx)(Es,{message:h,onDone:()=>u("")}),_?(0,vt.jsx)(Os,{allowSkip:!(!b||!b.allow_skip),onDismiss:()=>{if(k)try{localStorage.setItem(k,String(Date.now()))}catch(e){}v(!0)}}):null]})}function $s(){const[e,t]=n().useState(!0),[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(null);n().useEffect(()=>{(0,zt.Jv)().then(e=>l(e.message_policy&&e.message_policy.supported_actions)).catch(()=>{})},[]);const c=Ms.filter(e=>!e.gated||!r||r.includes(e.id));return(0,vt.jsxs)("div",{className:"message-actions-page",children:[(0,vt.jsxs)("header",{className:"messages-sub-header",children:[(0,vt.jsx)("button",{onClick:()=>qs("messages-home"),"aria-label":"返回",children:(0,vt.jsx)(As,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"项目协作群"}),(0,vt.jsx)("span",{})]}),(0,vt.jsxs)("main",{className:"message-actions-chat",children:[(0,vt.jsx)("p",{className:"message-time",children:"今天 10:24"}),(0,vt.jsxs)("div",{className:"message-demo-row",children:[(0,vt.jsx)(Is,{item:{avatar:"img/bkg/p09.jpg"}}),(0,vt.jsx)("button",{type:"button",className:"message-demo-bubble",onContextMenu:e=>{e.preventDefault(),t(!0)},children:"明天上午十点开项目会,请准时参加。"})]}),(0,vt.jsxs)("div",{className:"message-demo-row mine",children:[(0,vt.jsx)("button",{type:"button",className:"message-demo-bubble mine",onContextMenu:e=>{e.preventDefault(),t(!0)},children:"收到,我会提前准备材料。"}),(0,vt.jsx)(Is,{item:{avatar:"img/bkg/p05.jpg"}})]}),o?(0,vt.jsxs)("p",{className:"message-operation-result",children:["已选择:",Ms.find(e=>e.id===o).label]}):null]}),(0,vt.jsxs)("footer",{className:"message-demo-composer",children:[(0,vt.jsx)(As,{children:"mic_none"}),(0,vt.jsx)("span",{children:"输入消息"}),(0,vt.jsx)(As,{children:"sentiment_satisfied_alt"}),(0,vt.jsx)(As,{children:"add_circle_outline"})]}),e?(0,vt.jsx)("div",{className:"message-action-backdrop",onMouseDown:()=>t(!1),children:(0,vt.jsx)("div",{className:"message-action-menu",onMouseDown:e=>e.stopPropagation(),role:"menu",children:c.map(e=>(0,vt.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>(e=>{a(e.id),"copy"===e.id&&navigator.clipboard&&navigator.clipboard.writeText("明天上午十点开项目会,请准时参加。").catch(()=>{}),i(`${e.label}操作已选择`),t(!1)})(e),children:[(0,vt.jsx)("span",{children:e.label}),(0,vt.jsx)(As,{children:e.icon})]},e.id))})}):null,(0,vt.jsx)(Es,{message:s,onDone:()=>i("")})]})}const Vs={"group.created":"你创建了一个新群聊","group.join_request.created":"有人申请加入你管理的群聊","group.announcement.updated":"群公告有更新","group.member.joined":"有成员加入了群聊","group.member.left":"有成员退出了群聊","group.member.updated":"群成员资料有更新","group.mute.updated":"群禁言设置有变更","group.owner.transferred":"群主已转让","group.role.updated":"群成员角色有变更","group.settings.updated":"群设置有更新","group.join_request.accepted":"你的入群申请已通过","group.join_request.rejected":"你的入群申请被拒绝",accepted:"对方已通过你的好友申请",rejected:"对方拒绝了你的好友申请",continue:"你确认继续了一次安全风险提示",cancel:"你取消了一次风险操作确认"};function Hs(e){const n=(e.summary||"").trim();return Vs[n]||Vs[e.event_type]||n||"您有一条新的系统通知。"}function Ws({authenticated:e}){const[t,s]=n().useState([]),[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(!0),[d,h]=n().useState(""),[u,g]=n().useState("");return n().useEffect(()=>{(0,zt.Q2)().then(e=>{s(e.items||[]),o(e.next_cursor||"")}).catch(e=>h(e.message||"加载失败")).finally(()=>c(!1))},[]),(0,vt.jsxs)("div",{className:"system-messages-page",children:[(0,vt.jsxs)("header",{className:"messages-sub-header",children:[(0,vt.jsx)("button",{onClick:()=>{is.A.goBack()||qs("messages-home")},"aria-label":"返回",children:(0,vt.jsx)(As,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"系统消息"}),(0,vt.jsx)("span",{})]}),(0,vt.jsxs)("main",{className:"system-notification-list",children:[l?(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"hourglass_empty"}),"加载中…"]}):null,d?(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"error_outline"}),d]}):null,l||d||0!==t.length?null:(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"notifications_none"}),"暂无系统消息"]}),t.map(n=>(0,vt.jsxs)("article",{className:n.read_at?"read":"",onClick:()=>(e=>{e.read_at||(s(n=>n.map(n=>n.id===e.id?{...n,read_at:(new Date).toISOString()}:n)),(0,zt.w4)(e.id).catch(()=>{s(n=>n.map(n=>n.id===e.id?{...n,read_at:null}:n))}))})(n),children:[(0,vt.jsx)("time",{children:Us(n.created_at)}),(0,vt.jsxs)("div",{className:"system-notification-card",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsx)("h2",{children:n.title}),n.read_at?null:(0,vt.jsx)("span",{children:"新"})]}),(0,vt.jsx)("p",{children:Hs(n)}),n.action&&n.action.device?(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"设备:"}),(0,vt.jsx)("dd",{children:n.action.device})]}),n.action.ip?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"IP地址:"}),(0,vt.jsx)("dd",{children:n.action.ip})]}):null]}):null,n.action&&"string"==typeof n.action.topic&&n.action.topic.startsWith("grp")?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:e=>{e.stopPropagation(),qs("group-settings",n.action.topic)},children:["查看群聊 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):"friend.request.created"===n.event_type?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:e=>{e.stopPropagation(),qs("friend-requests")},children:["查看新朋友 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):n.action&&(n.action.device||n.action.ip)?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:n=>{n.stopPropagation(),qs(e?"security":"identity-check")},children:["前往安全设置 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):null,(0,vt.jsxs)("footer",{children:["保持警惕",(0,vt.jsx)("br",{}),Ct.iv,"安全团队"]})]})]},n.id)),i?(0,vt.jsx)("button",{type:"button",className:"system-notification-load-more",disabled:a,onClick:()=>{!a&&i&&(r(!0),(0,zt.Q2)(i).then(e=>{s(n=>n.concat(e.items||[])),o(e.next_cursor||"")}).catch(()=>{}).finally(()=>r(!1)))},children:a?"加载中…":"加载更多"}):null]}),(0,vt.jsx)(Es,{message:u,onDone:()=>g("")})]})}function Ks(e){switch(e.view){case"system-messages":return(0,vt.jsx)(Ws,{authenticated:!!e.myUserId});case"message-actions":return(0,vt.jsx)($s,{});default:return(0,vt.jsx)(Fs,{...e})}}const Xs=e=>is.A.navigateTo(e),Gs={"chat-inbound-request":{relationship:"pending_inbound",variant:"inbound-request"},"chat-inbound-message":{relationship:"pending_inbound",variant:"inbound-message"},"chat-outbound-request":{relationship:"pending_outbound",variant:"outbound-request"},"chat-status":{relationship:"friend",variant:"status"},"chat-friend":{relationship:"friend",variant:"friend"},"chat-media":{relationship:"friend",variant:"media"},"chat-blocked":{relationship:"blocked_by_peer",variant:"blocked"},"chat-deleted":{relationship:"none",variant:"deleted"},"chat-standard":{relationship:"friend",variant:"standard"},"chat-attachments":{relationship:"friend",variant:"attachments"},"chat-mixed":{relationship:"friend",variant:"mixed"},"chat-contact-card":{relationship:"friend",variant:"contact-card"}},Js=[{id:"photo",icon:"image",label:"照片"},{id:"camera",icon:"photo_camera",label:"拍摄"},{id:"call",icon:"call",label:"视频语音"},{id:"card",icon:"contact_page",label:"名片"},{id:"file",icon:"folder",label:"文件"},{id:"favorite",icon:"bookmark",label:"收藏"},{id:"video",icon:"videocam",label:"视频通话"}];function Ys({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Zs({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2200);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function Qs({mine:e=!1,peer:n=!1}){return(0,vt.jsx)("div",{className:"chat-avatar",children:(0,vt.jsx)("img",{src:e?"img/bkg/p05.jpg":n?"img/bkg/p09.jpg":"img/bkg/p14.jpg",alt:""})})}function ei({value:e,failedReason:n}){return e||n?(0,vt.jsxs)("div",{className:"chat-message-status"+(n?" failed":""),children:[n?(0,vt.jsx)(Ys,{children:"error"}):null,(0,vt.jsx)("span",{children:n||e})]}):null}function ni(){return(0,vt.jsxs)("div",{className:"chat-file-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"365天艾宾浩斯记忆曲线复习计划.pdf"}),(0,vt.jsx)("small",{children:"115KB"})]}),(0,vt.jsx)("span",{className:"chat-file-icon",children:"P"})]})}function ti({onOpen:e}){return(0,vt.jsxs)("button",{type:"button",className:"chat-contact-card",onClick:e,children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("img",{src:"img/bkg/p15.jpg",alt:""}),(0,vt.jsx)("strong",{children:"栗子来了"})]}),(0,vt.jsx)("small",{children:"个人名片 · 账号 QL1024"})]})}function si({duration:e=6,playing:n=!1}){return(0,vt.jsxs)("div",{className:"chat-voice-message",children:[(0,vt.jsx)(Ys,{children:n?"graphic_eq":"volume_up"}),(0,vt.jsxs)("strong",{children:[e,"″"]}),(0,vt.jsx)("span",{})]})}function ii({progress:e}){return(0,vt.jsxs)("div",{className:"chat-image-message",children:[(0,vt.jsx)("img",{src:"img/bkg/p22.jpg",alt:"会话图片"}),e<100?(0,vt.jsxs)("div",{className:"chat-upload-progress",children:[(0,vt.jsx)("progress",{value:e,max:"100"}),(0,vt.jsxs)("strong",{children:[e,"%"]})]}):null]})}function oi({mine:e=!1,children:n,status:t,failedReason:s,type:i="text",onOpenCard:o}){return(0,vt.jsxs)("div",{className:"chat-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(Qs,{peer:!0}),(0,vt.jsxs)("div",{className:"chat-message-stack",children:["file"===i?(0,vt.jsx)(ni,{}):"card"===i?(0,vt.jsx)(ti,{onOpen:o}):(0,vt.jsx)("div",{className:"chat-bubble "+i+(e?" mine":""),children:n}),(0,vt.jsx)(ei,{value:t,failedReason:s})]}),e?(0,vt.jsx)(Qs,{mine:!0}):null]})}function ai({children:e,action:n,onAction:t}){return(0,vt.jsxs)("div",{className:"chat-relation-notice",children:[(0,vt.jsx)("span",{children:e}),n?(0,vt.jsx)("button",{type:"button",onClick:t,children:n}):null]})}function ri({variant:e,uploadProgress:n,sendStatus:t,onRetry:s,onOpenCard:i,onFriendAction:o}){if("inbound-request"===e||"inbound-message"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{children:"inbound-request"===e?"请求添加你为好友":"我是祈万事安好"}),(0,vt.jsx)(ai,{children:"以上是打招呼的消息"}),(0,vt.jsxs)("div",{className:"chat-request-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>o("declined"),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:()=>o("accepted"),children:"通过申请"})]})]});if("outbound-request"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已发送",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"好友申请已发送,等待对方处理"})]});if("status"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:t,children:"我是祈万事安好"}),(0,vt.jsx)(ai,{children:"你已添加安妮,现在可以开始聊天。"})]});if("friend"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"8月27日 11:11"}),(0,vt.jsx)(ai,{children:"你们已成为好友,现在可以开始聊天"}),(0,vt.jsx)(oi,{children:"我们已成为好友,现在我们可以开始聊天"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你还好吗?"})]});if("media"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"8月27日 11:11"}),(0,vt.jsx)(ai,{children:"接雨彤创建群聊"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你还好吗?"}),(0,vt.jsx)(oi,{mine:!0,type:"image",children:(0,vt.jsx)(ii,{progress:n})}),(0,vt.jsx)(oi,{mine:!0,type:"voice",children:(0,vt.jsx)(si,{duration:6,playing:!0})}),(0,vt.jsx)(oi,{type:"voice",children:(0,vt.jsx)(si,{duration:6})})]});if("blocked"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"你已添加了安妮,现在可以开始聊天。"}),(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这边在网上看见你的留言,你想了解什么课程了"}),(0,vt.jsx)(oi,{children:"有课程辅导的老师?对新手友好吗?"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"消息已发送,但被对方拒收了",children:"这个不用担心特别好上手,学起来特别简单"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"消息已发送,但被对方拒收了",children:"拉黑我这么速度,真的牛"})]});if("deleted"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你好我是XXX推荐过来的,这边想了解课程是吗"}),(0,vt.jsx)(oi,{children:"这边目前找到更好的课程,不考虑你们家,谢谢"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这是我们导师名片,你可以加一下,对比一下价格"}),(0,vt.jsx)(ai,{action:"发送朋友验证",onAction:()=>o("resent"),children:"你还不是他(她)朋友。"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"发送失败,需重新添加好友",children:"这么突然把我删了,真心累了"}),(0,vt.jsx)(ai,{action:"发送朋友验证",onAction:()=>o("resent"),children:"你还不是他(她)朋友。"})]});const a=(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"你已添加了安妮,现在可以开始聊天。"}),(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你好,我是王珊珊,很高兴认识你,你怎么称呼"}),(0,vt.jsx)(oi,{children:"你好,我是安妮,想跟你咨询一下设计课程,方便?"})]});return"standard"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,status:"未读",children:"非常方便,这是我们的课程目录,你可以看看了解一下"}),(0,vt.jsx)(oi,{mine:!0,type:"file",status:"未读"})]}):"mixed"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,type:"file",status:"已送达"}),(0,vt.jsx)(oi,{type:"card",onOpenCard:i})]}):"contact-card"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这是我们导师名片,你可以加一下,有问题随时联系他"}),(0,vt.jsx)(oi,{mine:!0,type:"card",status:"已送达",onOpenCard:i}),(0,vt.jsx)(oi,{children:"好的,非常感谢,那我这边就直接联系他吧"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"没问题的,有疑问随时沟通"})]}):a}function li({onChoose:e}){return(0,vt.jsx)("div",{className:"chat-attachment-panel",children:Js.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>e(n),children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Ys,{children:n.icon})}),(0,vt.jsx)("small",{children:n.label})]},n.id))})}function ci({relationship:e,attachmentOpen:t,setAttachmentOpen:s,onSend:i}){const[o,a]=n().useState(sessionStorage.getItem("im-chat-draft")||""),r="friend"===e,l=e=>{a(e),sessionStorage.setItem("im-chat-draft",e)};return(0,vt.jsxs)("form",{className:"chat-composer"+(r?"":" locked"),onSubmit:e=>{e.preventDefault(),r&&o.trim()&&(i(o.trim()),l(""))},children:[(0,vt.jsx)("button",{type:"button","aria-label":"语音",disabled:!r,onClick:()=>Xs("voice-ready"),children:(0,vt.jsx)(Ys,{children:"record_voice_over"})}),(0,vt.jsx)("input",{value:o,onChange:e=>l(e.target.value),placeholder:r?"输入消息":"pending_inbound"===e?"请先处理好友申请":"pending_outbound"===e?"等待对方通过好友申请":"当前无法发送消息",disabled:!r}),(0,vt.jsx)("button",{type:"button","aria-label":"表情",disabled:!r,onClick:()=>Xs("emoji-panel"),children:(0,vt.jsx)(Ys,{children:"sentiment_satisfied_alt"})}),o.trim()?(0,vt.jsx)("button",{type:"submit",className:"chat-send-button",children:"发送"}):(0,vt.jsx)("button",{type:"button","aria-label":"更多",disabled:!r,onClick:()=>s(!t),children:(0,vt.jsx)(Ys,{children:t?"keyboard":"add_circle_outline"})})]})}function di({view:e}){const t=Gs[e]||Gs["chat-standard"],[s,i]=n().useState(t.relationship),[o,a]=n().useState(t.variant),[r,l]=n().useState("attachments"===t.variant),[c,d]=n().useState("media"===t.variant?76:100),[h,u]=n().useState("发送中"),[g,p]=n().useState([]),[m,f]=n().useState("");return n().useEffect(()=>{if("status"!==o)return;const e=["已发送","已送达","已读"].map((e,n)=>window.setTimeout(()=>u(e),600*(n+1)));return()=>e.forEach(e=>window.clearTimeout(e))},[o]),n().useEffect(()=>{if("media"!==o||c>=100)return;const e=window.setTimeout(()=>d(e=>Math.min(e+4,100)),350);return()=>window.clearTimeout(e)},[o,c]),(0,vt.jsxs)("div",{className:"chat-product-page",children:[(0,vt.jsxs)("header",{className:"chat-product-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Xs("messages-home"),"aria-label":"返回消息",children:(0,vt.jsx)(Ys,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:"接语彤"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("i",{}),"在线"]})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>Xs("friend-settings"),"aria-label":"会话设置",children:(0,vt.jsx)(Ys,{children:"more_vert"})})]}),(0,vt.jsxs)("main",{className:"chat-product-timeline",children:[(0,vt.jsx)(ri,{variant:o,uploadProgress:c,sendStatus:h,onRetry:()=>f("正在重试发送"),onOpenCard:()=>Xs("friend-profile"),onFriendAction:e=>{"declined"===e?(i("none"),f("已拒绝好友申请")):(i("accepted"===e?"friend":"pending_outbound"),"accepted"===e&&a("friend"),f("accepted"===e?"好友申请已通过":"好友验证已发送"))}}),g.map(e=>(0,vt.jsx)(oi,{mine:!0,status:e.status,children:e.text},e.id))]}),"friend"===s?null:(0,vt.jsxs)("div",{className:"chat-permission-banner",children:[(0,vt.jsx)(Ys,{children:"info_outline"}),"pending_inbound"===s?"通过好友申请后即可发送消息":"pending_outbound"===s?"好友申请正在等待处理":"none"===s?"对方已不是你的好友,发送消息前需重新验证":"当前关系状态下无法发送消息"]}),(0,vt.jsx)(ci,{relationship:s,attachmentOpen:r,setAttachmentOpen:l,onSend:e=>{const n=Date.now();p(t=>t.concat({id:n,text:e,status:"发送中"})),window.setTimeout(()=>p(e=>e.map(e=>e.id===n?{...e,status:"已发送"}:e)),600)}}),r&&"friend"===s?(0,vt.jsx)(li,{onChoose:e=>{f(`已选择${e.label},上传接口将在联调阶段接入`),"card"===e.id&&Xs("chat-contact-card"),"photo"!==e.id&&"camera"!==e.id||Xs("media-uploading"),"call"!==e.id&&"video"!==e.id||Xs("call-history"),"file"===e.id&&Xs("upload-file"),"favorite"===e.id&&Xs("favorites")}}):null,(0,vt.jsx)(Zs,{message:m,onDone:()=>f("")})]})}const hi=e=>is.A.navigateTo(e),ui=["compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle"],gi=[{id:"all",name:"所有人",note:"提醒群内所有成员",avatar:"campaign"},{id:"annie",name:"安妮",note:"产品设计组",image:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",note:"前端开发组",image:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",note:"市场运营组",image:"img/bkg/p14.jpg"},{id:"chen",name:"陈晨",note:"项目管理组",image:"img/bkg/p05.jpg"}],pi=[{id:"file",name:"文件助手",note:"仅自己可见",icon:"folder_special"},{id:"team",name:"产品研发群",note:"18人",image:"img/bkg/p22.jpg"},{id:"annie",name:"安妮",note:"在线",image:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",note:"刚刚活跃",image:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",note:"市场运营组",image:"img/bkg/p14.jpg"}],mi=["😀","😄","😂","🥰","😎","🤔","👍","👏","🎉","❤️","🔥","💡","✅","🙏","💪","🌟","📌","🚀"];function fi({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function xi({item:e}){return(0,vt.jsx)("span",{className:"compose-avatar",children:e.image?(0,vt.jsx)("img",{src:e.image,alt:""}):(0,vt.jsx)(fi,{children:e.icon||e.avatar||"person"})})}function ji({title:e="产品研发群",subtitle:n="18人",onMore:t}){return(0,vt.jsxs)("header",{className:"chat-product-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("messages-home"),"aria-label":"返回消息",children:(0,vt.jsx)(fi,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:e}),n?(0,vt.jsx)("span",{children:n}):null]}),(0,vt.jsx)("button",{type:"button",onClick:t,"aria-label":"会话设置",children:(0,vt.jsx)(fi,{children:"more_vert"})})]})}function bi({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function yi({mine:e=!1,duration:n=8,unread:t=!1}){return(0,vt.jsxs)("div",{className:"compose-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(xi,{item:gi[1]}),(0,vt.jsxs)("button",{type:"button",className:"compose-voice-bubble"+(e?" mine":""),"aria-label":`播放${n}秒语音`,children:[(0,vt.jsx)(fi,{children:"graphic_eq"}),(0,vt.jsx)("span",{className:"compose-wave"}),(0,vt.jsxs)("strong",{children:[n,"″"]}),t?(0,vt.jsx)("i",{}):null]}),e?(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}}):null]})}function wi({mine:e=!1,children:n,selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":t?"取消选择":"选择消息",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(xi,{item:gi[2]}),(0,vt.jsx)("div",{className:"compose-text-bubble"+(e?" mine":""),children:n}),e?(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}}):null]})]})}function vi({progress:e,failed:n=!1,selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":"选择图片",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row mine",children:[(0,vt.jsxs)("div",{className:"compose-media-card",children:[(0,vt.jsx)("img",{src:"img/bkg/p22.jpg",alt:"会议白板照片"}),e<100||n?(0,vt.jsxs)("div",{className:"compose-media-state",children:[(0,vt.jsx)(fi,{children:n?"refresh":"cloud_upload"}),(0,vt.jsx)("strong",{children:n?"上传失败,点击重试":`${e}%`}),n?null:(0,vt.jsx)("progress",{value:e,max:"100"})]}):null]}),(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}})]})]})}function ki(){return(0,vt.jsxs)("div",{className:"compose-message-row",children:[(0,vt.jsx)(xi,{item:gi[3]}),(0,vt.jsxs)("button",{type:"button",className:"compose-video-card","aria-label":"播放视频",children:[(0,vt.jsx)("img",{src:"img/bkg/p23.jpg",alt:"项目讨论视频封面"}),(0,vt.jsx)(fi,{children:"play_circle"}),(0,vt.jsx)("small",{children:"00:24"})]})]})}function Ci({progress:e=100,name:n="产品需求说明书.pdf",selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":"选择文件",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row mine",children:[(0,vt.jsxs)("div",{className:"compose-file-card",children:[(0,vt.jsx)("span",{className:"compose-file-type",children:"PDF"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:n}),(0,vt.jsxs)("small",{children:["2.4 MB · ",e<100?`上传中 ${e}%`:"已发送"]}),e<100?(0,vt.jsx)("progress",{value:e,max:"100"}):null]}),(0,vt.jsx)(fi,{children:e<100?"close":"download"})]}),(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}})]})]})}function zi({mode:e,uploadProgress:n,selected:t,toggleSelected:s}){const i="message-multiselect"===e||"favorite-success"===e;return(0,vt.jsxs)("main",{className:"chat-product-timeline compose-timeline",children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),(0,vt.jsx)(wi,{children:"上午的评审结论已经整理好了,大家有空看一下。"}),(0,vt.jsx)(wi,{mine:!0,selected:i?t.includes("text"):void 0,onSelect:()=>s("text"),children:"好的,我补充一下交互细节。"}),"mentions-message"===e?(0,vt.jsxs)(wi,{children:[(0,vt.jsx)("strong",{className:"compose-mention",children:"@安妮 @栗子来了"})," 下午三点一起确认新版流程。"]}):null,["media-uploading","media-gallery","media-retry"].includes(e)?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(yi,{duration:6}),(0,vt.jsx)(vi,{progress:"media-retry"===e?48:n,failed:"media-retry"===e}),"media-gallery"===e?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(yi,{mine:!0,duration:12,unread:!0}),(0,vt.jsx)(ki,{})]}):null]}):null,["file-message","message-multiselect","favorite-success"].includes(e)?(0,vt.jsx)(Ci,{selected:i?t.includes("file"):void 0,onSelect:()=>s("file")}):null,i?(0,vt.jsx)(vi,{progress:100,selected:t.includes("image"),onSelect:()=>s("image")}):null]})}function _i({onEmoji:e,onDelete:n}){return(0,vt.jsxs)("section",{className:"compose-emoji-panel","aria-label":"表情面板",children:[(0,vt.jsxs)("nav",{children:[(0,vt.jsx)("button",{type:"button",className:"active","aria-label":"最近使用",children:(0,vt.jsx)(fi,{children:"schedule"})}),(0,vt.jsx)("button",{type:"button","aria-label":"笑脸",children:(0,vt.jsx)(fi,{children:"sentiment_satisfied_alt"})}),(0,vt.jsx)("button",{type:"button","aria-label":"收藏表情",children:(0,vt.jsx)(fi,{children:"favorite_border"})})]}),(0,vt.jsx)("div",{children:mi.map(n=>(0,vt.jsx)("button",{type:"button",onClick:()=>e(n),children:n},n))}),(0,vt.jsx)("button",{type:"button",className:"compose-emoji-delete",onClick:n,"aria-label":"删除字符",children:(0,vt.jsx)(fi,{children:"backspace"})})]})}function Si({mode:e,draft:n,setDraft:t,onSend:s,setMode:i}){const o=["voice-ready","voice-hold","voice-recording"].includes(e),a=["emoji-panel","emoji-message"].includes(e);return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("form",{className:"compose-toolbar",onSubmit:e=>{e.preventDefault(),s()},children:[(0,vt.jsx)("button",{type:"button",onClick:()=>i(o?"compose-keyboard":"voice-ready"),"aria-label":o?"切换键盘":"切换语音",children:(0,vt.jsx)(fi,{children:o?"keyboard":"record_voice_over"})}),o?(0,vt.jsx)("button",{type:"button",className:"compose-hold-button",onPointerDown:()=>i("voice-hold"),onPointerUp:()=>i("media-uploading"),children:"按住说话"}):(0,vt.jsx)("input",{autoFocus:"compose-keyboard"===e,value:n,onChange:e=>t(e.target.value),onKeyDown:n=>{"@"===n.key&&"mentions-message"!==e&&window.setTimeout(()=>hi("mentions-select"),0)},placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",onClick:()=>i(a?"compose-keyboard":"emoji-panel"),"aria-label":"表情",children:(0,vt.jsx)(fi,{children:"sentiment_satisfied_alt"})}),n.trim()&&!o?(0,vt.jsx)("button",{type:"submit",className:"compose-send",children:"发送"}):(0,vt.jsx)("button",{type:"button",onClick:()=>hi("upload-file"),"aria-label":"更多",children:(0,vt.jsx)(fi,{children:"add_circle_outline"})})]}),a?(0,vt.jsx)(_i,{onEmoji:e=>t(n+e),onDelete:()=>t(n.slice(0,-1))}):null]})}function Ni({cancel:e=!1}){return(0,vt.jsxs)("div",{className:"compose-record-overlay"+(e?" cancel":""),role:"status",children:[(0,vt.jsx)(fi,{children:e?"delete_outline":"mic"}),(0,vt.jsx)("div",{className:"compose-meter",children:[2,5,8,12,9,6,11,4].map((e,n)=>(0,vt.jsx)("i",{style:{height:2*e+"px"}},n))}),(0,vt.jsx)("strong",{children:e?"松开手指,取消发送":"手指上滑,取消发送"}),(0,vt.jsx)("small",{children:"00:08"})]})}function Ti({complete:e}){const[t,s]=n().useState(""),[i,o]=n().useState(e?["annie","lizi"]:[]),a=gi.filter(e=>e.name.includes(t)||e.note.includes(t));return(0,vt.jsxs)("div",{className:"compose-picker-page",children:[(0,vt.jsxs)("header",{className:"compose-picker-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("compose-keyboard"),children:(0,vt.jsx)(fi,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"选择提醒人"}),(0,vt.jsxs)("button",{type:"button",className:"text",disabled:!i.length,onClick:()=>{sessionStorage.setItem("im-mentions",JSON.stringify(i)),hi("mentions-message")},children:["完成",i.length?`(${i.length})`:""]})]}),(0,vt.jsxs)("label",{className:"compose-search",children:[(0,vt.jsx)(fi,{children:"search"}),(0,vt.jsx)("input",{value:t,onChange:e=>s(e.target.value),placeholder:"搜索群成员"})]}),(0,vt.jsx)("p",{className:"compose-section-title",children:"群成员"}),(0,vt.jsx)("div",{className:"compose-picker-list",children:a.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.id,o(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n));var n},children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsx)("small",{children:e.note})]}),(0,vt.jsx)("i",{className:"compose-checkbox"+(i.includes(e.id)?" checked":""),children:i.includes(e.id)?(0,vt.jsx)(fi,{children:"check"}):null})]},e.id))})]})}function Bi({onToast:e}){const[t,s]=n().useState([{name:"产品需求说明书.pdf",size:"2.4 MB",progress:64}]);return n().useEffect(()=>{if(t.every(e=>e.progress>=100))return;const e=window.setTimeout(()=>s(e=>e.map(e=>({...e,progress:Math.min(100,e.progress+6)}))),300);return()=>window.clearTimeout(e)},[t]),(0,vt.jsxs)("div",{className:"compose-upload-page",children:[(0,vt.jsx)(ji,{title:"上传文件",subtitle:"最多选择 9 个文件",onMore:()=>e("单个文件最大 100 MB")}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"compose-upload-drop",children:[(0,vt.jsx)("input",{type:"file",multiple:!0,onChange:e=>s(Array.from(e.target.files).map(e=>({name:e.name,size:`${Math.max(1,e.size/1024/1024).toFixed(1)} MB`,progress:1})))}),(0,vt.jsx)(fi,{children:"cloud_upload"}),(0,vt.jsx)("strong",{children:"选择文件"}),(0,vt.jsx)("small",{children:"支持文档、压缩包及常用媒体格式"})]}),(0,vt.jsxs)("section",{className:"compose-upload-list",children:[(0,vt.jsx)("h2",{children:"待发送文件"}),t.map(e=>(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{className:"compose-file-type",children:e.name.split(".").pop().slice(0,4).toUpperCase()}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsxs)("small",{children:[e.size," · ",e.progress<100?`上传中 ${e.progress}%`:"上传完成"]}),(0,vt.jsx)("progress",{value:e.progress,max:"100"})]}),(0,vt.jsx)("button",{type:"button","aria-label":"移除文件",onClick:()=>s(n=>n.filter(n=>n.name!==e.name)),children:(0,vt.jsx)(fi,{children:"close"})})]},e.name))]})]}),(0,vt.jsx)("footer",{children:(0,vt.jsxs)("button",{type:"button",disabled:!t.length,onClick:()=>hi("file-message"),children:["发送",t.length?` (${t.length})`:""]})})]})}function Pi({mode:e,onToast:t}){const s="forward-select"!==e,i="forward-individual"===e||"forward-bundle"===e,[o,a]=n().useState(()=>{if(!i)return[];try{return JSON.parse(sessionStorage.getItem("im-forward-targets"))||["team","annie"]}catch(e){return["team","annie"]}}),[r,l]=n().useState(""),[c,d]=n().useState(""),h=pi.filter(e=>e.name.includes(r)||e.note.includes(r));return(0,vt.jsxs)("div",{className:"compose-forward-page",children:[(0,vt.jsxs)("header",{className:"compose-picker-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("message-multiselect"),children:(0,vt.jsx)(fi,{children:"close"})}),(0,vt.jsx)("h1",{children:i?"forward-bundle"===e?"合并转发":"逐条转发":"选择转发对象"}),i?(0,vt.jsx)("span",{}):(0,vt.jsx)("button",{type:"button",className:"text",onClick:()=>hi(s?"forward-select":"forward-multiple"),children:s?"单选":"多选"})]}),i?(0,vt.jsxs)("main",{className:"compose-forward-confirm",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h2",{children:"发送给"}),(0,vt.jsx)("div",{className:"compose-target-summary",children:pi.filter(e=>o.includes(e.id)).map(e=>(0,vt.jsxs)("span",{children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsx)("small",{children:e.name})]},e.id))})]}),(0,vt.jsxs)("section",{className:"compose-forward-preview",children:[(0,vt.jsx)("h2",{children:"forward-bundle"===e?"产品研发群的聊天记录":"将逐条发送 3 条消息"}),(0,vt.jsx)("p",{children:"栗子来了:上午的评审结论已经整理好了"}),(0,vt.jsx)("p",{children:"我:好的,我补充一下交互细节。"}),(0,vt.jsx)("p",{children:"我:[图片]"})]}),(0,vt.jsx)("textarea",{value:c,onChange:e=>d(e.target.value),placeholder:"给朋友留言"}),(0,vt.jsxs)("div",{className:"compose-forward-mode",children:[(0,vt.jsx)("button",{type:"button",className:"forward-individual"===e?"active":"",onClick:()=>hi("forward-individual"),children:"逐条转发"}),(0,vt.jsx)("button",{type:"button",className:"forward-bundle"===e?"active":"",onClick:()=>hi("forward-bundle"),children:"合并转发"})]}),(0,vt.jsx)("button",{type:"button",className:"compose-confirm-send",onClick:()=>{t(`已发送给 ${o.length} 个会话`),window.setTimeout(()=>hi("chat-standard"),900)},children:"发送"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("label",{className:"compose-search",children:[(0,vt.jsx)(fi,{children:"search"}),(0,vt.jsx)("input",{value:r,onChange:e=>l(e.target.value),placeholder:"搜索会话或联系人"})]}),(0,vt.jsx)("p",{className:"compose-section-title",children:"最近会话"}),(0,vt.jsx)("div",{className:"compose-picker-list",children:h.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{var n;n=e.id,a(e=>e.includes(n)?e.filter(e=>e!==n):s?e.concat(n).slice(0,9):[n]),s||(sessionStorage.setItem("im-forward-targets",JSON.stringify([e.id])),window.setTimeout(()=>hi("forward-individual"),0))},children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsx)("small",{children:e.note})]}),(0,vt.jsx)("i",{className:"compose-checkbox"+(o.includes(e.id)?" checked":""),children:o.includes(e.id)?(0,vt.jsx)(fi,{children:"check"}):null})]},e.id))}),s?(0,vt.jsxs)("footer",{className:"compose-target-footer",children:[(0,vt.jsxs)("span",{children:["已选择 ",o.length,"/9 个会话"]}),(0,vt.jsx)("button",{type:"button",disabled:!o.length,onClick:()=>{sessionStorage.setItem("im-forward-targets",JSON.stringify(o)),hi("forward-individual")},children:"下一步"})]}):null]})]})}function qi({view:e}){const[t,s]=n().useState(e),[i,o]=n().useState(()=>sessionStorage.getItem("im-message-composer-draft")||("emoji-message"===e?"收到啦 ":"")),[a,r]=n().useState("media-uploading"===e?22:100),[l,c]=n().useState("favorite-success"===e?["text","file","image"]:["text","image"]),[d,h]=n().useState("favorite-success"===e?"已收藏 3 条消息":""),u=e=>{o(e),sessionStorage.setItem("im-message-composer-draft",e)};if(n().useEffect(()=>{if("media-uploading"!==t||a>=100)return;const e=window.setTimeout(()=>r(e=>Math.min(100,e+5)),350);return()=>window.clearTimeout(e)},[t,a]),"mentions-select"===e||"mentions-complete"===e)return(0,vt.jsx)(Ti,{complete:"mentions-complete"===e});if("upload-file"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Bi,{onToast:h}),(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]});if(["forward-select","forward-multiple","forward-individual","forward-bundle"].includes(e))return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Pi,{mode:e,onToast:h}),(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]});const g="voice-hold"===t||"voice-recording"===t,p="message-multiselect"===t||"favorite-success"===t;return(0,vt.jsxs)("div",{className:"chat-product-page message-composer-page",children:[(0,vt.jsx)(ji,{onMore:()=>h("会话设置")}),p?(0,vt.jsxs)("div",{className:"compose-selection-bar",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("chat-standard"),children:(0,vt.jsx)(fi,{children:"close"})}),(0,vt.jsxs)("strong",{children:["已选择 ",l.length," 条"]}),(0,vt.jsx)("button",{type:"button",onClick:()=>c(l.length?[]:["text","file","image"]),children:l.length?"取消全选":"全选"})]}):null,(0,vt.jsx)(zi,{mode:t,uploadProgress:a,selected:l,toggleSelected:e=>c(n=>n.includes(e)?n.filter(n=>n!==e):n.concat(e))}),p?(0,vt.jsxs)("nav",{className:"compose-batch-actions",children:[(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>hi("forward-select"),children:[(0,vt.jsx)(fi,{children:"forward"}),(0,vt.jsx)("span",{children:"转发"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>{s("favorite-success"),h(`已收藏 ${l.length} 条消息`)},children:[(0,vt.jsx)(fi,{children:"bookmark_border"}),(0,vt.jsx)("span",{children:"收藏"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>{c([]),h("已删除所选消息")},children:[(0,vt.jsx)(fi,{children:"delete_outline"}),(0,vt.jsx)("span",{children:"删除"})]})]}):(0,vt.jsx)(Si,{mode:t,draft:i,setDraft:u,setMode:s,onSend:()=>{i.trim()&&(h("消息已发送"),u(""))}}),g?(0,vt.jsx)(Ni,{cancel:!1}):null,(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]})}var Mi=a(9593),Ai=a.n(Mi);const Ei=/^[\uD800-\uDBFF]$/,Ii=/^[\uDC00-\uDFFF]$/,Di=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var Ui;!function(e){e[e.Unknown=1e-13]="Unknown",e[e.Rule=1e-12]="Rule",e[e.DICT=2e-8]="DICT",e[e.Surname=1]="Surname",e[e.Custom=1]="Custom"}(Ui||(Ui={}));function Ri(e){var n;return e.length-((null===(n=e.match(Di))||void 0===n?void 0:n.length)||0)}function Li(e){if(Di.lastIndex=0,!Di.test(e))return e.split("");const n=[];let t=0;for(;t<e.length;){const s=e[t];Ei.test(s)&&Ii.test(e[t+1])?(n.push(e.substring(t,t+2)),t+=2):(n.push(s),t+=1)}return n}class Oi{constructor(){this.NumberDICT=[],this.StringDICT=new Map}get(e){if(e.length>1)return this.StringDICT.get(e);{const n=e.charCodeAt(0);return this.NumberDICT[n]}}set(e,n){if(e.length>1)this.StringDICT.set(e,n);else{const t=e.charCodeAt(0);this.NumberDICT[t]=n}}clear(){this.NumberDICT=[],this.StringDICT.clear()}}const Fi=["zh","ch","sh","z","c","s","b","p","m","f","d","t","n","l","g","k","h","j","q","x","r","y","w",""],$i=["j","q","x"],Vi=["uān","uán","uǎn","uàn","uan","uē","ué","uě","uè","ue","ūn","ún","ǔn","ùn","un","ū","ú","ǔ","ù","u"],Hi={"uān":"üān","uán":"üán","uǎn":"üǎn","uàn":"üàn",uan:"üan","uē":"üē","ué":"üé","uě":"üě","uè":"üè",ue:"üe","ūn":"ǖn","ún":"ǘn","ǔn":"ǚn","ùn":"ǜn",un:"ün","ū":"ǖ","ú":"ǘ","ǔ":"ǚ","ù":"ǜ",u:"ü"},Wi=["ia","ian","iang","iao","ie","iu","iong","ua","uai","uan","uang","ue","ui","uo","üan","üe","van","ve"],Ki={"一":"yì","二":"èr","三":"sān","四":"sì","五":"wǔ","六":"liù","七":"qī","八":"bā","九":"jiǔ","十":"shí","百":"bǎi","千":"qiān","万":"wàn","亿":"yì","单":"dān","两":"liǎng","双":"shuāng","多":"duō","几":"jǐ","十一":"shí yī","零一":"líng yī","第一":"dì yī","一十":"yī shí","一十一":"yī shí yī"},Xi={"重":"chóng","行":"háng","斗":"dǒu","更":"gēng"},Gi=function(){const e={"零一":"líng yī","〇一":"líng yī","十一":"shí yī","一十":"yī shí","第一":"dì yī","一十一":"yī shí yī"};for(let n in Ki)for(let t in Xi){const s=`${Ki[n]} ${Xi[t]}`;e[`${n}${t}`]=s}return e}(),Ji=Object.keys(Gi).map(e=>({zh:e,pinyin:Gi[e],probability:1e-12,length:Ri(e),priority:1,dict:Symbol("rule")})),Yi={"不":{"bú":[4]},"一":{"yí":[4],"yì":[1,2,3]}},Zi={"不":["的","而","之","后","也","还","地"],"一":["的","而","之","后","也","还","是"]},Qi=Object.keys(Yi),eo={"bǎng páng pāng":["膀"],"líng":["〇","伶","凌","刢","囹","坽","夌","姈","婈","孁","岺","彾","掕","昤","朎","柃","棂","櫺","欞","泠","淩","澪","灵","燯","爧","狑","玲","琌","瓴","皊","砱","祾","秢","竛","笭","紷","綾","绫","羐","羚","翎","聆","舲","苓","菱","蓤","蔆","蕶","蛉","衑","裬","詅","跉","軨","輘","酃","醽","鈴","錂","铃","閝","陵","零","霊","霗","霛","霝","靈","駖","魿","鯪","鲮","鴒","鸰","鹷","麢","齡","齢","龄","龗","㥄"],"yī":["一","乊","伊","依","医","吚","咿","噫","壱","壹","夁","嫛","嬄","弌","揖","撎","檹","毉","洢","渏","漪","瑿","畩","祎","禕","稦","繄","蛜","衤","譩","辷","郼","醫","銥","铱","鷖","鹥","黟","黳"],"dīng zhēng":["丁"],"kǎo qiǎo yú":["丂"],"qī":["七","倛","僛","凄","嘁","墄","娸","悽","慼","慽","戚","捿","柒","桤","桼","棲","榿","欺","沏","淒","漆","紪","緀","萋","褄","諆","迉","郪","鏚","霋","魌","鶈"],"shàng":["丄","尙","尚","恦","緔","绱"],"xià":["丅","下","乤","圷","夏","夓","懗","梺","疜","睱","罅","鎼","鏬"],"hǎn":["丆","喊","浫","罕","豃","㘎"],"wàn mò":["万"],"zhàng":["丈","仗","墇","嶂","帐","帳","幛","扙","杖","涱","痮","瘬","瘴","瞕","粀","胀","脹","賬","账","障"],"sān":["三","厁","叁","弎","毵","毶","毿","犙","鬖"],"shàng shǎng shang":["上"],"qí jī":["丌","其","奇"],"bù fǒu":["不"],"yǔ yù yú":["与"],"miǎn":["丏","偭","免","冕","勉","勔","喕","娩","愐","汅","沔","湎","睌","緬","缅","腼","葂","靦","鮸","𩾃"],"gài":["丐","乢","匃","匄","戤","概","槩","槪","溉","漑","瓂","葢","鈣","钙","𬮿"],"chǒu":["丑","丒","侴","吜","杽","瞅","矁","醜","魗"],"zhuān":["专","叀","嫥","専","專","瑼","甎","砖","磗","磚","蟤","諯","鄟","顓","颛","鱄","䏝"],"qiě jū":["且"],"pī":["丕","伓","伾","噼","坯","岯","憵","批","披","炋","狉","狓","砒","磇","礔","礕","秛","秠","耚","豾","邳","鈚","鉟","銔","錃","錍","霹","駓","髬","魾","𬳵"],"shì":["世","丗","亊","事","仕","侍","冟","势","勢","卋","呩","嗜","噬","士","奭","嬕","室","市","式","弑","弒","恀","恃","戺","拭","揓","是","昰","枾","柿","栻","澨","烒","煶","眂","眎","眡","睗","示","礻","筮","簭","舐","舓","襫","視","视","觢","試","誓","諡","謚","试","谥","貰","贳","軾","轼","逝","遾","釈","释","釋","鈰","鉃","鉽","铈","飾","餙","餝","饰","鰘","䏡","𬤊"],"qiū":["丘","丠","坵","媝","恘","恷","楸","秋","秌","穐","篍","緧","萩","蘒","蚯","蝵","蟗","蠤","趥","邱","鞦","鞧","鰌","鰍","鳅","鶖","鹙","龝"],"bǐng":["丙","屛","怲","抦","昞","昺","柄","棅","炳","禀","秉","稟","苪","蛃","邴","鈵","陃","鞆","餅","餠","饼"],"yè":["业","亱","僷","墷","夜","嶪","嶫","抴","捙","擛","擪","擫","晔","曄","曅","曗","曳","曵","枼","枽","業","洂","液","澲","烨","燁","爗","璍","皣","瞱","瞸","礏","腋","葉","謁","谒","邺","鄴","鍱","鐷","靥","靨","頁","页","餣","饁","馌","驜","鵺","鸈"],"cóng":["丛","从","叢","婃","孮","従","徔","徖","悰","樷","欉","淙","灇","爜","琮","藂","誴","賨","賩","錝"],"dōng":["东","倲","冬","咚","埬","岽","崬","徚","昸","東","氡","氭","涷","笗","苳","菄","蝀","鮗","鯟","鶇","鶫","鸫","鼕","𬟽"],"sī":["丝","俬","凘","厮","司","咝","嘶","噝","媤","廝","恖","撕","斯","楒","泀","澌","燍","禗","禠","私","糹","絲","緦","纟","缌","罳","蕬","虒","蛳","蜤","螄","蟖","蟴","鉰","銯","鍶","鐁","锶","颸","飔","騦","鷥","鸶","鼶","㟃"],"chéng":["丞","呈","城","埕","堘","塍","塖","宬","峸","惩","懲","成","承","挰","掁","揨","枨","棖","橙","檙","洆","溗","澂","珵","珹","畻","程","窚","筬","絾","脭","荿","誠","诚","郕","酲","鋮","铖","騬","鯎"],"diū":["丟","丢","銩","铥"],"liǎng":["両","两","兩","唡","啢","掚","緉","脼","蜽","裲","魉","魎","𬜯"],"yǒu":["丣","卣","友","梄","湵","牖","禉","羑","聈","苃","莠","蜏","酉","銪","铕","黝"],"yán":["严","厳","啱","喦","嚴","塩","壛","壧","妍","姸","娫","娮","岩","嵒","嵓","巌","巖","巗","延","揅","昖","楌","檐","櫩","欕","沿","炎","炏","狿","琂","盐","碞","筵","簷","莚","蔅","虤","蜒","言","訁","訮","詽","讠","郔","閆","閻","闫","阎","顏","顔","颜","鹽","麣","𫄧"],"bìng":["並","併","倂","傡","垪","摒","栤","病","窉","竝","誁","靐","鮩"],"sàng sāng":["丧"],"gǔn":["丨","惃","滚","滾","磙","緄","绲","蓘","蔉","衮","袞","輥","辊","鮌","鯀","鲧"],"jiū":["丩","勼","啾","揪","揫","朻","究","糾","纠","萛","赳","阄","鬏","鬮","鳩","鸠"],"gè gě":["个","個","各"],"yā":["丫","圧","孲","庘","押","枒","桠","椏","錏","鐚","鴉","鴨","鵶","鸦","鸭"],"pán":["丬","媻","幋","槃","洀","瀊","爿","盘","盤","磐","縏","蒰","蟠","蹒","蹣","鎜","鞶"],"zhōng zhòng":["中"],"jǐ":["丮","妀","己","戟","挤","掎","撠","擠","橶","泲","犱","脊","虮","蟣","魢","鱾","麂"],"jiè":["丯","介","借","唶","堺","屆","届","岕","庎","徣","戒","楐","犗","玠","琾","界","畍","疥","砎","蚧","蛶","衸","褯","誡","诫","鎅","骱","魪"],"fēng":["丰","仹","偑","僼","凨","凬","凮","妦","寷","封","峯","峰","崶","枫","楓","檒","沣","沨","渢","灃","烽","犎","猦","琒","疯","瘋","盽","砜","碸","篈","蘴","蜂","蠭","豐","鄷","酆","鋒","鎽","鏠","锋","霻","靊","飌","麷"],"guàn kuàng":["丱"],"chuàn":["串","汌","玔","賗","釧","钏"],"chǎn":["丳","产","冁","剷","囅","嵼","旵","浐","滻","灛","產","産","簅","蒇","蕆","諂","譂","讇","谄","鏟","铲","閳","闡","阐","骣","𬊤"],"lín":["临","冧","壣","崊","嶙","斴","晽","暽","林","潾","瀶","燐","琳","璘","瞵","碄","磷","粦","粼","繗","翷","臨","轔","辚","遴","邻","鄰","鏻","阾","隣","霖","驎","鱗","鳞","麐","麟","𬴊","𬭸"],"zhuó":["丵","劅","卓","啄","圴","妰","娺","撯","擆","擢","斫","斮","斱","斲","斵","晫","椓","浊","浞","濁","灼","烵","琸","硺","禚","窡","籗","籱","罬","茁","蠗","蠿","諁","諑","謶","诼","酌","鐲","镯","鵫","鷟","䓬","𬸦"],"zhǔ":["丶","主","劯","嘱","囑","宔","帾","拄","渚","濐","煑","煮","燝","瞩","矚","罜","詝","陼","鸀","麈","𬣞"],"bā":["丷","仈","八","叭","哵","夿","岜","巴","捌","朳","玐","疤","笆","粑","羓","芭","蚆","豝","釟"],"wán":["丸","刓","完","岏","抏","捖","汍","烷","玩","琓","笂","紈","纨","翫","芄","貦","頑","顽"],"dān":["丹","勯","匰","単","妉","媅","殚","殫","甔","眈","砃","箪","簞","耼","耽","聃","聸","褝","襌","躭","郸","鄲","酖","頕"],"wèi wéi":["为"],"jǐng dǎn":["丼"],"lì lí":["丽"],"jǔ":["举","弆","挙","擧","椇","榉","榘","櫸","欅","矩","筥","聥","舉","莒","蒟","襷","踽","齟","龃"],"piě":["丿","苤","鐅","𬭯"],"fú":["乀","伏","俘","凫","刜","匐","咈","哹","垘","孚","岪","巿","帗","幅","幞","弗","彿","怫","扶","柫","栿","桴","氟","泭","浮","涪","澓","炥","玸","甶","畉","癁","祓","福","稪","符","箙","紱","紼","絥","綍","绂","绋","罘","罦","翇","艀","芙","芣","苻","茀","茯","菔","葍","虙","蚨","蜉","蝠","袚","袱","襆","襥","諨","豧","踾","輻","辐","郛","鉘","鉜","韍","韨","颫","髴","鮄","鮲","鳧","鳬","鴔","鵩","黻"],"yí jí":["乁"],"yì":["乂","义","亄","亦","亿","伇","伿","佾","俋","億","兿","刈","劓","劮","勚","勩","匇","呓","呭","呹","唈","囈","圛","坄","垼","埸","奕","嫕","嬑","寱","屹","峄","嶧","帟","帠","幆","廙","异","弈","弋","役","忆","怈","怿","悒","意","憶","懌","懿","抑","挹","敡","易","晹","曀","曎","杙","枍","棭","榏","槸","檍","歝","殔","殪","殹","毅","浂","浥","浳","湙","溢","潩","澺","瀷","炈","焲","熠","熤","熼","燚","燡","燱","獈","玴","異","疫","痬","瘗","瘞","瘱","癔","益","瞖","穓","竩","篒","縊","繶","繹","绎","缢","義","羿","翊","翌","翳","翼","耴","肄","肊","膉","臆","艗","艺","芅","苅","萟","蓺","薏","藙","藝","蘙","虉","蜴","螠","衪","袣","裔","裛","褹","襼","訲","訳","詍","詣","誼","譯","議","讛","议","译","诣","谊","豙","豛","豷","貖","贀","跇","轶","逸","邑","鄓","醷","釴","鈠","鎰","鐿","镒","镱","阣","隿","霬","饐","駅","驛","驿","骮","鮨","鶂","鶃","鶍","鷁","鷊","鷧","鷾","鸃","鹝","鹢","黓","齸","𬬩","㑊","𫄷","𬟁"],"nǎi":["乃","倷","奶","嬭","廼","氖","疓","艿","迺","釢"],"wǔ":["乄","五","仵","伍","侮","倵","儛","午","啎","妩","娬","嫵","庑","廡","忤","怃","憮","摀","武","潕","熓","牾","玝","珷","瑦","甒","碔","舞","躌","迕","逜","陚","鵡","鹉","𣲘"],"jiǔ":["久","乆","九","乣","奺","杦","汣","灸","玖","紤","舏","酒","镹","韭","韮"],"tuō zhé":["乇","杔","馲"],"me mó ma yāo":["么"],"zhī":["之","倁","卮","巵","搘","支","栀","梔","椥","榰","汁","泜","疷","祗","祬","秓","稙","綕","肢","胑","胝","脂","芝","蘵","蜘","衼","隻","鳷","鴲","鼅","𦭜"],"wū wù":["乌"],"zhà":["乍","咤","宱","搾","榨","溠","痄","蚱","詐","诈","醡","霅","䃎"],"hū":["乎","乯","匢","匫","呼","唿","嘑","垀","寣","幠","忽","惚","昒","歑","泘","淴","滹","烀","苸","虍","虖","謼","軤","轷","雐"],"fá":["乏","伐","傠","坺","垡","墢","姂","栰","浌","瞂","笩","筏","罚","罰","罸","藅","閥","阀"],"lè yuè yào lào":["乐","樂"],"yín":["乑","吟","噖","嚚","圁","垠","夤","婬","寅","峾","崟","崯","檭","殥","泿","淫","滛","烎","犾","狺","璌","硍","碒","荶","蔩","訔","訚","訡","誾","鄞","鈝","銀","银","霪","鷣","齦"],"pīng":["乒","俜","娉","涄","甹","砯","聠","艵","頩"],"pāng":["乓","滂","胮","膖","雱","霶"],"qiáo":["乔","侨","僑","嫶","憔","桥","槗","樵","橋","櫵","犞","瞧","硚","礄","荍","荞","蕎","藮","譙","趫","鐈","鞒","鞽","顦"],"hǔ":["乕","琥","萀","虎","虝","錿","鯱"],"guāi":["乖"],"chéng shèng":["乗","乘","娍"],"yǐ":["乙","乛","以","倚","偯","嬟","崺","已","庡","扆","攺","敼","旑","旖","檥","矣","礒","笖","舣","艤","苡","苢","蚁","螘","蟻","裿","踦","輢","轙","逘","酏","釔","鈘","鉯","钇","顗","鳦","齮","𫖮","𬺈"],"háo yǐ":["乚"],"niè miē":["乜"],"qǐ":["乞","企","启","唘","啓","啔","啟","婍","屺","杞","棨","玘","盀","綺","绮","芑","諬","起","邔","闙"],"yě":["也","冶","嘢","埜","壄","漜","野"],"xí":["习","喺","媳","嶍","席","椺","檄","漝","習","蓆","袭","襲","覡","觋","謵","趘","郋","鎴","隰","霫","飁","騱","騽","驨","鰼","鳛","𠅤","𫘬"],"xiāng":["乡","厢","廂","忀","楿","欀","湘","瓖","稥","箱","緗","缃","膷","芗","萫","葙","薌","襄","郷","鄉","鄊","鄕","鑲","镶","香","驤","骧","鱜","麘","𬙋"],"shū":["书","倏","倐","儵","叔","姝","尗","抒","掓","摅","攄","書","枢","梳","樞","殊","殳","毹","毺","淑","瀭","焂","疎","疏","紓","綀","纾","舒","菽","蔬","踈","軗","輸","输","鄃","陎","鮛","鵨"],"dǒu":["乧","抖","枓","蚪","鈄","阧","陡"],"shǐ":["乨","使","兘","史","始","宩","屎","榁","矢","笶","豕","鉂","駛","驶"],"jī":["乩","僟","击","刉","刏","剞","叽","唧","喞","嗘","嘰","圾","基","墼","姬","屐","嵆","嵇","撃","擊","朞","机","枅","樭","機","毄","激","犄","玑","璣","畸","畿","癪","矶","磯","积","積","笄","筓","箕","簊","緁","羁","羇","羈","耭","肌","芨","虀","覉","覊","譏","譤","讥","賫","賷","赍","跻","踑","躋","躸","銈","錤","鐖","鑇","鑙","隮","雞","鞿","韲","飢","饑","饥","魕","鳮","鶏","鶺","鷄","鸄","鸡","齎","齏","齑","𬯀","𫓯","𫓹","𫌀"],"náng":["乪","嚢","欜","蠰","饢"],"jiā":["乫","佳","傢","加","嘉","抸","枷","梜","毠","泇","浃","浹","犌","猳","珈","痂","笳","糘","耞","腵","葭","袈","豭","貑","跏","迦","鉫","鎵","镓","鴐","麚","𬂩"],"jù":["乬","倨","倶","具","剧","劇","勮","埧","埾","壉","姖","屦","屨","岠","巨","巪","怇","惧","愳","懅","懼","拒","拠","昛","歫","洰","澽","炬","烥","犋","秬","窭","窶","簴","粔","耟","聚","虡","蚷","詎","讵","豦","距","踞","躆","遽","邭","醵","鉅","鐻","钜","颶","飓","駏","鮔"],"shí":["乭","十","埘","塒","姼","实","実","寔","實","峕","嵵","时","旹","時","榯","湜","溡","炻","祏","竍","蚀","蝕","辻","遈","鉐","飠","饣","鮖","鰣","鲥","鼫","鼭"],"mǎo":["乮","冇","卯","峁","戼","昴","泖","笷","蓩","鉚","铆"],"mǎi":["买","嘪","荬","蕒","買","鷶"],"luàn":["乱","亂","釠"],"rǔ":["乳","擩","汝","肗","辱","鄏"],"xué":["乴","学","學","峃","嶨","斈","泶","澩","燢","穴","茓","袕","踅","鷽","鸴"],"yǎn":["䶮","乵","俨","偃","儼","兖","兗","厣","厴","噞","孍","嵃","巘","巚","弇","愝","戭","扊","抁","掩","揜","曮","椼","檿","沇","渷","演","琰","甗","眼","罨","萒","蝘","衍","褗","躽","遃","郾","隒","顩","魇","魘","鰋","鶠","黡","黤","黬","黭","黶","鼴","鼹","齴","龑","𬸘","𬙂","𪩘"],"fǔ":["乶","俌","俛","俯","府","弣","抚","拊","撫","斧","椨","滏","焤","甫","盙","簠","腐","腑","蜅","輔","辅","郙","釜","釡","阝","頫","鬴","黼","㕮","𫖯"],"shā":["乷","唦","杀","桬","殺","毮","猀","痧","砂","硰","紗","繺","纱","蔱","裟","鎩","铩","閷","髿","魦","鯊","鯋","鲨"],"nǎ":["乸","雫"],"qián":["乹","亁","仱","偂","前","墘","媊","岒","拑","掮","榩","橬","歬","潛","潜","濳","灊","箝","葥","虔","軡","鈐","鉗","銭","錢","鎆","钤","钱","钳","靬","騚","騝","鰬","黔","黚"],"suǒ":["乺","唢","嗩","所","暛","溑","溹","琐","琑","瑣","索","褨","鎖","鎻","鏁","锁"],"yú":["乻","于","亐","伃","余","堣","堬","妤","娛","娯","娱","嬩","崳","嵎","嵛","愚","扵","揄","旟","楡","楰","榆","欤","歈","歟","歶","渔","渝","湡","漁","澞","牏","狳","玗","玙","瑜","璵","盂","睮","窬","竽","籅","羭","腴","臾","舁","舆","艅","茰","萮","萸","蕍","蘛","虞","虶","蝓","螸","衧","褕","覦","觎","諛","謣","谀","踰","輿","轝","逾","邘","酑","鍝","隅","雓","雩","餘","馀","騟","骬","髃","魚","魣","鮽","鯲","鰅","鱼","鷠","鸆","齵"],"zhù":["乼","伫","佇","住","坾","墸","壴","嵀","拀","杼","柱","樦","殶","注","炷","疰","眝","祝","祩","竚","筯","箸","篫","簗","紵","紸","纻","羜","翥","苎","莇","蛀","註","貯","贮","跓","軴","鉒","鋳","鑄","铸","馵","駐","驻"],"zhě":["乽","者","褶","襵","赭","踷","鍺","锗"],"qián gān":["乾"],"zhì luàn":["乿"],"guī":["亀","圭","妫","媯","嫢","嬀","帰","归","摫","椝","槻","槼","櫷","歸","珪","瑰","璝","瓌","皈","瞡","硅","茥","蘬","規","规","邽","郌","閨","闺","騩","鬶","鬹"],"lǐn lìn":["亃"],"jué":["亅","决","刔","劂","匷","厥","噊","孒","孓","崛","崫","嶥","彏","憠","憰","戄","抉","挗","掘","攫","桷","橛","橜","欮","氒","決","灍","焳","熦","爑","爴","爵","獗","玃","玦","玨","珏","瑴","瘚","矍","矡","砄","絕","絶","绝","臄","芵","蕝","蕨","虳","蟨","蟩","觖","觮","觼","訣","譎","诀","谲","貜","赽","趉","蹷","躩","鈌","鐍","鐝","钁","镢","鴂","鴃","鷢","𫘝","㵐","𫔎"],"le liǎo":["了"],"gè mā":["亇"],"yǔ yú":["予","懙"],"zhēng":["争","佂","凧","姃","媜","峥","崝","崢","征","徰","炡","烝","爭","狰","猙","癥","眐","睁","睜","筝","箏","篜","聇","脀","蒸","踭","鉦","錚","鏳","鬇"],"èr":["二","刵","咡","弍","弐","樲","誀","貮","貳","贰","髶"],"chù":["亍","傗","儊","怵","憷","搐","斶","歜","珿","琡","矗","竌","絀","绌","臅","触","觸","豖","鄐","閦","黜"],"kuī":["亏","刲","岿","巋","盔","窥","窺","聧","虧","闚","顝"],"yún":["云","伝","勻","匀","囩","妘","愪","抣","昀","橒","沄","涢","溳","澐","熉","畇","秐","筼","篔","紜","縜","纭","耘","芸","蒷","蕓","郧","鄖","鋆","雲"],"hù":["互","冱","嗀","嚛","婟","嫭","嫮","岵","帍","弖","怙","戶","户","戸","戽","扈","护","昈","槴","沍","沪","滬","熩","瓠","祜","笏","簄","粐","綔","蔰","護","豰","鄠","鍙","頀","鱯","鳠","鳸","鸌","鹱"],"qí":["亓","剘","埼","岐","岓","崎","嵜","愭","掑","斉","斊","旂","旗","棊","棋","檱","櫀","歧","淇","濝","猉","玂","琦","琪","璂","畦","疧","碁","碕","祁","祈","祺","禥","竒","簯","簱","籏","粸","綥","綦","肵","脐","臍","艩","芪","萁","萕","蕲","藄","蘄","蚑","蚚","蛴","蜝","蜞","螧","蠐","褀","軝","鄿","釮","錡","锜","陭","頎","颀","騎","騏","騹","骐","骑","鬐","鬿","鯕","鰭","鲯","鳍","鵸","鶀","麒","麡","𨙸","𬨂","䓫"],"jǐng":["井","儆","刭","剄","坓","宑","幜","憬","暻","殌","汫","汬","澋","璄","璟","璥","穽","肼","蟼","警","阱","頚","頸"],"sì":["亖","佀","価","儩","兕","嗣","四","姒","娰","孠","寺","巳","柶","榹","汜","泗","泤","洍","洠","涘","瀃","牭","祀","禩","竢","笥","耜","肂","肆","蕼","覗","貄","釲","鈶","鈻","飤","飼","饲","駟","騃","驷"],"suì":["亗","嬘","岁","嵗","旞","檖","歲","歳","澻","煫","燧","璲","砕","碎","祟","禭","穂","穗","穟","繀","繐","繸","襚","誶","譢","谇","賥","邃","鐆","鐩","隧","韢","𫟦","𬭼"],"gèn":["亘","亙","揯","搄","茛"],"yà":["亚","亜","俹","冴","劜","圔","圠","埡","娅","婭","揠","氩","氬","犽","砑","稏","聐","襾","覀","訝","讶","迓","齾"],"xiē suò":["些"],"qí zhāi":["亝","齊"],"yā yà":["亞","压","垭","壓","铔"],"jí qì":["亟","焏"],"tóu":["亠","投","頭","骰"],"wáng wú":["亡"],"kàng háng gāng":["亢"],"dà":["亣","眔"],"jiāo":["交","僬","娇","嬌","峧","嶕","嶣","憍","椒","浇","澆","焦","礁","穚","簥","胶","膠","膲","茭","茮","蕉","虠","蛟","蟭","跤","轇","郊","鐎","驕","骄","鮫","鲛","鵁","鷦","鷮","鹪","䴔"],"hài":["亥","嗐","害","氦","餀","饚","駭","駴","骇"],"hēng pēng":["亨"],"mǔ":["亩","姆","峔","拇","母","牡","牳","畂","畆","畒","畝","畞","畮","砪","胟","踇","鉧","𬭁","𧿹"],ye:["亪"],"xiǎng":["享","亯","响","想","晑","蚃","蠁","響","飨","餉","饗","饷","鮝","鯗","鱶","鲞"],"jīng":["京","亰","兢","坕","坙","婛","惊","旌","旍","晶","橸","泾","涇","猄","睛","秔","稉","粳","精","経","經","綡","聙","腈","茎","荆","荊","菁","葏","驚","鯨","鲸","鶁","鶄","麖","麠","鼱","䴖"],"tíng":["亭","停","婷","嵉","庭","廷","楟","榳","筳","聤","莛","葶","蜓","蝏","諪","邒","霆","鼮","䗴"],"liàng":["亮","喨","悢","晾","湸","諒","谅","輌","輛","辆","鍄"],"qīn qìng":["亲","親"],"bó":["亳","仢","侼","僰","博","帛","愽","懪","挬","搏","欂","浡","淿","渤","煿","牔","狛","瓝","礴","秡","箔","簙","糪","胉","脖","膊","舶","艊","萡","葧","袯","襏","襮","謈","踣","郣","鈸","鉑","鋍","鎛","鑮","钹","铂","镈","餺","馎","馛","馞","駁","駮","驳","髆","鵓","鹁"],"yòu":["亴","佑","佦","侑","又","右","哊","唀","囿","姷","宥","峟","幼","狖","祐","蚴","誘","诱","貁","迶","酭","釉","鼬"],"xiè":["亵","伳","偞","偰","僁","卨","卸","噧","塮","夑","媟","屑","屧","廨","徢","懈","暬","械","榍","榭","泻","洩","渫","澥","瀉","瀣","灺","炧","炨","燮","爕","獬","祄","禼","糏","紲","絏","絬","繲","纈","绁","缷","薢","薤","蟹","蠏","褉","褻","謝","谢","躞","邂","靾","韰","齂","齘","齛","齥","𬹼","𤫉"],"dǎn dàn":["亶","馾"],"lián":["亷","劆","匲","匳","嗹","噒","奁","奩","嫾","帘","廉","怜","憐","涟","漣","濂","濓","瀮","熑","燫","簾","籢","籨","縺","翴","联","聨","聫","聮","聯","臁","莲","蓮","薕","螊","蠊","裢","褳","覝","謰","蹥","连","連","鎌","鐮","镰","鬑","鰱","鲢"],"duǒ":["亸","哚","嚲","埵","崜","朵","朶","綞","缍","趓","躱","躲","軃"],"wěi mén":["亹","斖"],"rén":["人","亻","仁","壬","忈","忎","朲","秂","芢","魜","鵀"],"jí":["亼","亽","伋","佶","偮","卙","即","卽","及","叝","吉","堲","塉","姞","嫉","岌","嵴","嶯","彶","忣","急","愱","戢","揤","极","棘","楫","極","槉","檝","殛","汲","湒","潗","疾","瘠","皍","笈","箿","籍","級","级","膌","艥","蒺","蕀","蕺","蝍","螏","襋","觙","谻","踖","蹐","躤","輯","轚","辑","郆","銡","鍓","鏶","集","雧","霵","鹡","㴔"],"wáng":["亾","仼","兦","莣","蚟"],"shén shí":["什"],"lè":["仂","叻","忇","氻","泐","玏","砳","簕","艻","阞","韷","餎","鰳","鱳","鳓"],"dīng":["仃","叮","帄","玎","疔","盯","耵","虰","靪"],"zè":["仄","崱","庂","捑","昃","昗","汄"],"jǐn jìn":["仅","僅","嫤"],"pú pū":["仆"],"chóu qiú":["仇"],"zhǎng":["仉","幥","掌","礃"],"jīn":["今","堻","巾","惍","斤","津","珒","琻","璡","砛","筋","荕","衿","襟","觔","金","釒","釿","钅","鹶","黅","𬬱"],"bīng":["仌","仒","兵","冫","冰","掤","氷","鋲"],"réng":["仍","礽","芿","辸","陾"],"fó":["仏","坲","梻"],"jīn sǎn":["仐"],"lún":["仑","伦","侖","倫","囵","圇","婨","崘","崙","棆","沦","淪","磮","腀","菕","蜦","踚","輪","轮","錀","陯","鯩","𬬭"],"cāng":["仓","仺","倉","凔","嵢","沧","滄","濸","獊","舱","艙","苍","蒼","螥","鸧"],"zǎi zǐ zī":["仔"],"tā":["他","塌","它","榙","溻","牠","祂","褟","趿","遢","闧"],"fù":["付","偩","傅","冨","副","咐","坿","复","妇","婦","媍","嬔","富","復","椱","祔","禣","竎","緮","縛","缚","腹","萯","蕧","蚹","蛗","蝜","蝮","袝","複","覄","覆","訃","詂","讣","負","賦","賻","负","赋","赙","赴","輹","鍑","鍢","阜","附","馥","駙","驸","鮒","鰒","鲋","鳆","㳇"],"xiān":["仙","仚","佡","僊","僲","先","嘕","奾","屳","廯","忺","憸","掀","暹","杴","氙","珗","祆","秈","籼","繊","纎","纖","苮","褼","襳","跹","蹮","躚","酰","鍁","锨","韯","韱","馦","鱻","鶱","𬸣"],"tuō chà duó":["仛"],"hóng":["仜","吰","垬","妅","娂","宏","宖","弘","彋","汯","泓","洪","浤","渱","潂","玒","玜","竑","竤","篊","粠","紘","紭","綋","纮","翃","翝","耾","苰","荭","葒","葓","谹","谼","鈜","鉷","鋐","閎","闳","霐","霟","鞃","魟","鴻","鸿","黉","黌","𫟹","𬭎"],"tóng":["仝","佟","哃","峂","峝","庝","彤","晍","曈","桐","氃","浵","潼","犝","獞","眮","瞳","砼","秱","童","粡","膧","茼","蚒","詷","赨","酮","鉖","鉵","銅","铜","餇","鮦","鲖","𫍣","𦒍"],"rèn":["仞","仭","刃","刄","妊","姙","屻","岃","扨","牣","祍","紉","紝","絍","纫","纴","肕","腍","衽","袵","訒","認","认","讱","軔","轫","鈓","靭","靱","韌","韧","飪","餁","饪"],"qiān":["仟","佥","僉","千","圲","奷","孯","岍","悭","愆","慳","扦","拪","搴","撁","攐","攑","攓","杄","櫏","汘","汧","牵","牽","竏","签","簽","籖","籤","粁","芊","茾","蚈","褰","諐","謙","谦","谸","迁","遷","釺","鈆","鉛","鏲","钎","阡","韆","顅","騫","骞","鬜","鬝","鵮","鹐"],"gǎn hàn":["仠"],"yì gē":["仡"],"dài":["代","侢","叇","垈","埭","岱","帒","带","帯","帶","廗","怠","戴","曃","柋","殆","瀻","玳","瑇","甙","簤","紿","緿","绐","艜","蝳","袋","襶","貣","贷","蹛","軑","軚","軩","轪","迨","霴","靆","鴏","黛","黱"],"lìng líng lǐng":["令"],"chào":["仦","耖","觘"],"cháng zhǎng":["仧","兏","長","长"],"sā":["仨"],"cháng":["仩","偿","償","嘗","嚐","嫦","尝","常","徜","瑺","瓺","甞","肠","腸","膓","苌","萇","镸","鱨","鲿"],"yí":["仪","侇","儀","冝","匜","咦","圯","夷","姨","宐","宜","宧","寲","峓","嶬","嶷","巸","彛","彜","彝","彞","怡","恞","扅","暆","栘","椬","椸","沂","洟","熪","瓵","痍","移","簃","籎","羠","胰","萓","蛦","螔","觺","謻","貽","贻","跠","迻","遺","鏔","頉","頤","頥","顊","颐","饴","鮧","鴺"],"mù":["仫","凩","募","墓","幕","幙","慔","慕","暮","暯","木","楘","毣","沐","炑","牧","狇","目","睦","穆","艒","苜","莯","蚞","鉬","钼","雮","霂"],"men mén":["们"],"fǎn":["仮","反","橎","返"],"chào miǎo":["仯"],"yǎng áng":["仰"],"zhòng":["仲","众","堹","妕","媑","狆","眾","祌","筗","茽","蚛","衆","衶","諥"],"pǐ pí":["仳"],"wò":["仴","偓","卧","媉","幄","握","楃","沃","渥","濣","瓁","瞃","硪","肟","腛","臥","齷","龌"],"jiàn":["件","俴","健","僭","剑","剣","剱","劍","劎","劒","劔","墹","寋","建","徤","擶","旔","楗","毽","洊","涧","澗","牮","珔","瞷","磵","礀","箭","糋","繝","腱","臶","舰","艦","荐","薦","覸","諓","諫","譛","谏","賎","賤","贱","趝","践","踐","踺","轞","鉴","鍳","鍵","鐱","鑑","鑒","鑬","鑳","键","間","餞","饯","𬣡"],"jià jiè jie":["价"],"yǎo fó":["仸"],"rèn rén":["任"],"fèn bīn":["份"],"dī":["仾","低","啲","埞","堤","岻","彽","樀","滴","磾","秪","羝","袛","趆","隄","鞮","䃅"],"fǎng":["仿","倣","旊","昉","昘","瓬","眆","紡","纺","舫","訪","访","髣","鶭"],"zhōng":["伀","刣","妐","幒","彸","忠","柊","汷","泈","炂","盅","籦","終","终","舯","蔠","蜙","螤","螽","衳","衷","蹱","鈡","鍾","鐘","钟","锺","鴤","鼨"],"pèi":["伂","佩","姵","帔","斾","旆","沛","浿","珮","蓜","轡","辔","配","霈","馷"],"diào":["伄","吊","弔","掉","瘹","盄","窎","窵","竨","訋","釣","鈟","銱","鋽","鑃","钓","铞","雿","魡"],"dùn":["伅","潡","炖","燉","盾","砘","碷","踲","逇","遁","遯","鈍","钝"],"wěn":["伆","刎","吻","呅","抆","桽","稳","穏","穩","紊","肳","脗"],"xǐn":["伈"],"kàng":["伉","匟","囥","抗","炕","鈧","钪"],"ài":["伌","僾","塧","壒","嫒","嬡","愛","懓","暧","曖","爱","瑷","璦","皧","瞹","砹","硋","碍","礙","薆","譺","賹","鑀","隘","靉","餲","馤","鱫","鴱"],"jì qí":["伎","薺"],"xiū xǔ":["休"],"jìn yín":["伒"],"dǎn":["伔","刐","撢","玬","瓭","紞","胆","膽","衴","賧","赕","黕","𬘘"],"fū":["伕","呋","娐","孵","尃","怤","懯","敷","旉","玞","砆","稃","筟","糐","綒","肤","膚","荂","荴","衭","趺","跗","邞","鄜","酜","鈇","麩","麬","麱","麸","𫓧"],"tǎng":["伖","傥","儻","埫","戃","曭","爣","矘","躺","鎲","钂","镋"],"yōu":["优","優","呦","嚘","峳","幽","忧","悠","憂","攸","櫌","滺","瀀","纋","羪","耰","逌","鄾","麀"],"huǒ":["伙","夥","火","煷","邩","鈥","钬"],"huì kuài":["会","會","浍","璯"],"yǔ":["伛","俁","俣","偊","傴","匬","噳","圄","圉","宇","寙","屿","嶼","庾","挧","敔","斞","楀","瑀","瘐","祤","禹","穥","窳","羽","與","萭","貐","鄅","頨","麌","齬","龉","㺄"],"cuì":["伜","啛","忰","悴","毳","淬","焠","疩","瘁","竁","粋","粹","紣","綷","翆","翠","脃","脆","脺","膬","膵","臎","萃","襊","顇"],"sǎn":["伞","傘","糤","繖","饊","馓"],"wěi":["伟","伪","偉","偽","僞","儰","娓","寪","屗","崣","嶉","徫","愇","捤","暐","梶","洧","浘","渨","炜","煒","猥","玮","瑋","痿","緯","纬","腲","艉","芛","苇","荱","萎","葦","蒍","蔿","蜼","諉","诿","踓","鍡","韑","韙","韡","韪","頠","颹","骩","骪","骫","鮪","鲔","𫇭","𬀩","𬱟"],"chuán zhuàn":["传","傳"],"chē jū":["伡","俥","车"],"jū chē":["車"],"yá":["伢","厑","厓","堐","岈","崕","崖","涯","漄","牙","玡","琊","睚","笌","芽","蚜","衙","齖"],"qiàn":["伣","俔","倩","儙","刋","壍","嬱","悓","棈","椠","槧","欠","歉","皘","篏","篟","縴","芡","蒨","蔳","輤","𬘬"],"shāng":["伤","傷","商","墒","慯","殇","殤","滳","漡","熵","蔏","螪","觞","觴","謪","鬺"],"chāng":["伥","倀","娼","昌","椙","淐","猖","琩","菖","裮","錩","锠","閶","阊","鯧","鲳","鼚"],"chen cāng":["伧"],"xùn":["伨","侚","卂","噀","巺","巽","徇","愻","殉","殾","汛","潠","狥","蕈","訊","訓","訙","训","讯","迅","迿","逊","遜","鑂","顨","馴","驯"],"xìn":["伩","囟","孞","脪","舋","衅","訫","釁","阠","顖"],"chǐ":["伬","侈","卶","叺","呎","垑","恥","歯","耻","肔","胣","蚇","裭","褫","豉","鉹","齒","齿"],"xián xuán":["伭"],"nú nǔ":["伮"],"bó bǎi":["伯"],"gū gù":["估"],"nǐ":["伱","你","儞","孴","拟","擬","旎","晲","狔","苨","薿","隬"],"nì ní":["伲"],"bàn":["伴","办","半","姅","怑","扮","瓣","秚","絆","绊","辦","鉡","靽"],"xù":["伵","侐","勖","勗","卹","叙","垿","壻","婿","序","恤","敍","敘","旭","昫","朂","槒","欰","殈","汿","沀","洫","溆","漵","潊","烅","烼","煦","獝","珬","盢","瞁","稸","絮","続","緒","緖","續","绪","续","聓","聟","蓄","藚","訹","賉","酗","頊","鱮","㳚"],"zhòu":["伷","僽","冑","呪","咒","咮","宙","昼","晝","甃","皱","皺","籀","籒","籕","粙","紂","縐","纣","绉","胄","荮","葤","詋","酎","駎","驟","骤","㤘","㑇"],"shēn":["伸","侁","兟","呻","堔","妽","娠","屾","峷","扟","敒","曑","柛","氠","深","燊","珅","甡","甧","申","眒","砷","穼","籶","籸","糂","紳","绅","罙","罧","葠","蓡","蔘","薓","裑","訷","詵","诜","身","駪","鯓","鯵","鰺","鲹","鵢","𬳽"],"qū":["伹","佉","匤","呿","坥","屈","岖","岴","嶇","憈","抾","敺","浀","煀","祛","筁","粬","胠","蛆","蛐","袪","覻","詘","诎","趍","躯","軀","阹","駆","駈","驅","驱","髷","魼","鰸","鱋","鶌","麯","麴","麹","黢","㭕","𪨰","䓛"],"sì cì":["伺"],"bēng":["伻","嘣","奟","崩","嵭","閍"],"sì shì":["似"],"jiā qié gā":["伽"],"yǐ chì":["佁"],"diàn tián":["佃","钿"],"hān gàn":["佄"],"mài":["佅","劢","勱","卖","唛","売","脈","衇","賣","迈","邁","霡","霢","麥","麦","鿏"],"dàn":["但","僤","啖","啗","啿","噉","嚪","帎","憺","旦","柦","氮","沊","泹","淡","狚","疍","癚","禫","窞","腅","萏","蓞","蛋","蜑","觛","訑","誕","诞","贉","霮","餤","饏","駳","髧","鴠","𫢸"],"bù":["佈","勏","吥","咘","埗","埠","布","廍","怖","悑","步","歨","歩","瓿","篰","荹","蔀","踄","部","郶","鈈","钚","餢"],"bǐ":["佊","俾","匕","夶","妣","彼","朼","柀","比","毞","沘","疕","秕","笔","筆","粃","聛","舭","貏","鄙"],"zhāo shào":["佋"],"cǐ":["佌","此","泚","皉","𫚖"],"wèi":["位","卫","味","喂","墛","媦","慰","懀","未","渭","煟","熭","犚","猬","畏","緭","罻","胃","苿","菋","藯","蘶","蝟","螱","衛","衞","褽","謂","讆","讏","谓","躗","躛","軎","轊","鏏","霨","餧","餵","饖","魏","鮇","鳚"],"zuǒ":["佐","左","繓"],"yǎng":["佒","傟","养","坱","岟","慃","懩","攁","氧","氱","炴","痒","癢","礢","紻","蝆","軮","養","駚"],"tǐ tī":["体","體"],"zhàn":["佔","偡","嶘","战","戦","戰","栈","桟","棧","湛","站","綻","绽","菚","蘸","虥","虦","譧","轏","驏"],"hé hē hè":["何"],"bì":["佖","咇","哔","嗶","坒","堛","壁","奰","妼","婢","嬖","币","幣","幤","庇","庳","廦","弊","弻","弼","彃","必","怭","愊","愎","敝","斃","梐","毕","毖","毙","湢","滗","滭","潷","煏","熚","狴","獘","獙","珌","璧","畀","畢","疪","痹","痺","皕","睤","碧","筚","箅","箆","篦","篳","粊","綼","縪","繴","罼","腷","苾","荜","萆","萞","蓖","蓽","蔽","薜","蜌","袐","襅","襞","襣","觱","詖","诐","貱","贔","赑","跸","蹕","躃","躄","避","邲","鄨","鄪","鉍","鏎","鐴","铋","閇","閉","閟","闭","陛","韠","飶","饆","馝","駜","驆","髀","魓","鮅","鷝","鷩","鼊"],"tuó":["佗","坨","堶","岮","槖","橐","沱","砣","砤","碢","紽","詑","跎","酡","阤","陀","陁","駝","駞","騨","驒","驝","驼","鮀","鴕","鸵","鼉","鼍","鼧","𬶍"],"shé":["佘","舌","虵","蛥"],"yì dié":["佚","昳","泆","軼"],"fó fú bì bó":["佛"],"zuò zuō":["作"],"gōu":["佝","沟","溝","痀","篝","簼","緱","缑","袧","褠","鈎","鉤","钩","鞲","韝"],"nìng":["佞","侫","倿","寕","泞","澝","濘"],"qú":["佢","劬","戵","斪","欋","欔","氍","淭","灈","爠","璖","璩","癯","磲","籧","絇","胊","臞","菃","葋","蕖","蘧","蟝","蠷","蠼","衐","衢","躣","軥","鑺","鴝","鸜","鸲","鼩"],"yōng yòng":["佣"],"wǎ":["佤","咓","砙","邷"],"kǎ":["佧","垰","胩","裃","鉲"],"bāo":["佨","勹","包","孢","煲","笣","胞","苞","蕔","裦","褒","襃","闁","齙","龅"],"huái huí":["佪"],"gé hè":["佫"],"lǎo":["佬","咾","恅","栳","狫","珯","硓","老","耂","荖","蛯","轑","銠","铑","鮱"],"xiáng":["佭","庠","栙","祥","絴","翔","詳","跭"],"gé":["佮","匌","呄","嗝","塥","愅","挌","搿","槅","櫊","滆","膈","臵","茖","觡","諽","輵","轕","閣","阁","隔","鞷","韐","韚","騔","骼","鮯"],"yáng":["佯","劷","垟","崸","徉","扬","揚","敭","旸","昜","暘","杨","楊","洋","炀","珜","疡","瘍","眻","蛘","諹","輰","鍚","钖","阦","阳","陽","霷","颺","飏","鰑","鴹","鸉"],"bǎi":["佰","捭","摆","擺","栢","百","竡","粨","襬"],"fǎ":["佱","峜","法","灋","砝","鍅"],"mǐng":["佲","凕","姳","慏","酩"],"èr nài":["佴"],"hěn":["佷","很","狠","詪","𬣳"],"huó":["佸","活"],"guǐ":["佹","匦","匭","厬","垝","姽","宄","庋","庪","恑","晷","湀","癸","祪","簋","蛫","蟡","觤","詭","诡","軌","轨","陒","鬼"],"quán":["佺","全","啳","埢","姾","峑","巏","拳","搼","权","楾","権","權","泉","洤","湶","牷","犈","瑔","痊","硂","筌","縓","荃","葲","蜷","蠸","觠","詮","诠","跧","踡","輇","辁","醛","銓","铨","闎","顴","颧","駩","騡","鬈","鰁","鳈","齤"],"tiāo":["佻","庣","旫","祧","聎"],"jiǎo":["佼","儌","孂","挢","搅","撟","撹","攪","敫","敽","敿","晈","暞","曒","灚","燞","狡","璬","皎","皦","絞","纐","绞","腳","臫","蟜","譑","賋","踋","鉸","铰","餃","饺","鱎","龣"],"cì":["佽","刾","庛","朿","栨","次","絘","茦","莿","蛓","螆","賜","赐"],"xíng":["侀","刑","哘","型","娙","形","洐","硎","蛵","邢","郉","鈃","鉶","銒","钘","铏","陉","陘","餳","𫰛"],"tuō":["侂","咃","咜","圫","托","拕","拖","汑","脫","脱","莌","袥","託","讬","飥","饦","魠","鮵"],"kǎn":["侃","偘","冚","坎","惂","砍","莰","輡","轗","顑"],"zhí":["侄","値","值","埴","執","姪","嬂","戠","执","摭","植","樴","淔","漐","直","禃","絷","縶","聀","职","職","膱","蟙","跖","踯","蹠","躑","軄","釞","馽"],"gāi":["侅","垓","姟","峐","晐","畡","祴","荄","該","该","豥","賅","賌","赅","陔"],"lái":["來","俫","倈","崃","崍","庲","来","梾","棶","涞","淶","猍","琜","筙","箂","莱","萊","逨","郲","錸","铼","騋","鯠","鶆","麳"],"kuǎ":["侉","咵","垮","銙"],"gōng":["侊","公","功","匑","匔","塨","宫","宮","工","幊","弓","恭","攻","杛","碽","糼","糿","肱","觥","觵","躬","躳","髸","龔","龚","䢼"],"lì":["例","俐","俪","傈","儮","儷","凓","利","力","励","勵","历","厉","厤","厯","厲","叓","吏","呖","唎","唳","嚦","囇","坜","塛","壢","娳","婯","屴","岦","悧","悷","慄","戾","搮","暦","曆","曞","朸","枥","栃","栗","栛","檪","櫔","櫪","欐","歴","歷","沥","沴","涖","溧","濿","瀝","爏","犡","猁","珕","瑮","瓅","瓑","瓥","疬","痢","癧","盭","睙","砅","砺","砾","磿","礪","礫","礰","禲","秝","立","笠","篥","粒","粝","糲","脷","苈","茘","荔","莅","莉","蒚","蒞","藶","蚸","蛎","蛠","蜧","蝷","蠇","蠣","詈","讈","赲","轢","轣","轹","酈","鉝","隶","隷","雳","靂","靋","鬁","鳨","鴗","鷅","麜","𫵷","𬍛"],"yīn":["侌","凐","喑","噾","囙","因","垔","堙","姻","婣","愔","慇","栶","氤","洇","溵","濦","瘖","禋","秵","筃","絪","緸","茵","蒑","蔭","裀","諲","銦","铟","闉","阥","阴","陰","陻","隂","霒","霠","鞇","音","韾","駰","骃","齗","𬘡","𬤇","𬮱"],"mǐ":["侎","孊","弭","敉","洣","渳","灖","米","粎","羋","脒","芈","葞","蔝","銤"],"zhū":["侏","株","槠","橥","櫧","櫫","洙","潴","瀦","猪","珠","硃","秼","絑","茱","蕏","蛛","蝫","蠩","袾","誅","諸","诛","诸","豬","跦","邾","銖","铢","駯","鮢","鯺","鴸","鼄"],"ān":["侒","偣","媕","安","峖","庵","桉","氨","盦","盫","腤","菴","萻","葊","蓭","誝","諳","谙","鞌","鞍","韽","馣","鮟","鵪","鶕","鹌","𩽾"],"lù":["侓","僇","勎","勠","圥","坴","塶","娽","峍","廘","彔","录","戮","摝","椂","樚","淕","淥","渌","漉","潞","琭","璐","甪","盝","睩","硉","祿","禄","稑","穋","箓","簏","簬","簵","簶","籙","粶","蔍","蕗","虂","螰","賂","赂","趢","路","踛","蹗","輅","轆","辂","辘","逯","醁","錄","録","錴","鏴","陸","騄","騼","鯥","鴼","鵦","鵱","鷺","鹭","鹿","麓","𫘧"],"móu":["侔","劺","恈","眸","蛑","謀","谋","踎","鍪","鴾","麰"],"ér":["侕","儿","児","兒","峏","栭","洏","粫","而","胹","荋","袻","輀","轜","陑","隭","髵","鮞","鲕","鴯","鸸"],"dòng tǒng tóng":["侗"],"chà":["侘","奼","姹","岔","汊","詫","诧"],"chì":["侙","傺","勅","勑","叱","啻","彳","恜","慗","憏","懘","抶","敕","斥","杘","湁","灻","炽","烾","熾","痓","痸","瘛","翄","翅","翤","翨","腟","赤","趩","遫","鉓","雴","飭","饬","鶒","鷘"],"gòng gōng":["供","共"],"zhōu":["侜","周","喌","州","徟","洲","淍","炿","烐","珘","矪","舟","謅","譸","诌","賙","赒","輈","輖","辀","週","郮","銂","霌","駲","騆","鵃","鸼"],"rú":["侞","儒","嚅","如","嬬","孺","帤","曘","桇","渪","濡","筎","茹","蕠","薷","蝡","蠕","袽","襦","邚","醹","銣","铷","顬","颥","鱬","鴑","鴽"],"jiàn cún":["侟"],"xiá":["侠","俠","匣","峡","峽","敮","暇","柙","炠","烚","狎","狭","狹","珨","瑕","硖","硤","碬","祫","筪","縖","翈","舝","舺","蕸","赮","轄","辖","遐","鍜","鎋","陜","陿","霞","騢","魻","鶷","黠"],"lǚ":["侣","侶","儢","吕","呂","屡","屢","履","挔","捛","旅","梠","焒","祣","稆","穭","絽","縷","缕","膂","膐","褛","褸","郘","鋁","铝"],ta:["侤"],"jiǎo yáo":["侥","僥","徺"],"zhēn":["侦","偵","寊","帧","帪","幀","搸","斟","桢","楨","榛","樼","殝","浈","湞","潧","澵","獉","珍","珎","瑧","甄","眞","真","砧","碪","祯","禎","禛","箴","胗","臻","葴","蒖","蓁","薽","貞","贞","轃","遉","酙","針","鉁","錱","鍼","针","鱵"],"cè zè zhāi":["侧","側"],"kuài":["侩","儈","凷","哙","噲","圦","块","塊","巜","廥","快","旝","欳","狯","獪","筷","糩","脍","膾","郐","鄶","鱠","鲙"],"chái":["侪","儕","喍","柴","犲","祡","豺"],"nóng":["侬","儂","农","哝","噥","檂","欁","浓","濃","燶","禯","秾","穠","脓","膿","蕽","襛","譨","農","辳","醲","鬞","𬪩"],"jǐn":["侭","儘","卺","厪","巹","槿","漌","瑾","紧","緊","菫","蓳","謹","谨","錦","锦","饉","馑"],"hóu hòu":["侯","矦"],"jiǒng":["侰","僒","冏","囧","泂","澃","炯","烱","煚","煛","熲","燛","窘","綗","褧","迥","逈","顈","颎","䌹"],"chěng tǐng":["侱"],"zhèn zhēn":["侲","揕"],"zuò":["侳","做","唑","坐","岝","岞","座","祚","糳","胙","葃","葄","蓙","袏","阼"],"qīn":["侵","兓","媇","嵚","嶔","欽","衾","誛","钦","顉","駸","骎","鮼"],"jú":["侷","啹","婅","局","巈","椈","橘","泦","淗","湨","焗","犑","狊","粷","菊","蘜","趜","跼","蹫","輂","郹","閰","駶","驧","鵙","鵴","鶪","鼰","鼳","䴗"],"shù dōu":["侸"],"tǐng":["侹","圢","娗","挺","涏","烶","珽","脡","艇","誔","頲","颋"],"shèn":["侺","愼","慎","昚","涁","渗","滲","瘆","瘮","眘","祳","肾","胂","脤","腎","蜃","蜄","鋠"],"tuì tuó":["侻"],"nán":["侽","喃","娚","抩","暔","枏","柟","楠","男","畘","莮","萳","遖"],"xiāo":["侾","哓","嘵","嚻","囂","婋","宯","宵","庨","彇","揱","枭","枵","梟","櫹","歊","毊","消","潇","瀟","灱","灲","烋","焇","猇","獢","痚","痟","硝","硣","窙","箫","簘","簫","綃","绡","翛","膮","萧","蕭","虈","虓","蟂","蟏","蟰","蠨","踃","逍","銷","销","霄","颵","驍","骁","髇","髐","魈","鴞","鴵","鷍","鸮"],"biàn pián":["便","緶","缏"],"tuǐ":["俀","腿","蹆","骽"],"xì":["係","匸","卌","呬","墍","屃","屓","屭","忥","怬","恄","椞","潝","潟","澙","熂","犔","磶","禊","細","綌","縘","细","绤","舃","舄","蕮","虩","衋","覤","赩","趇","郤","釳","阋","隙","隟","霼","餼","饩","鬩","黖"],"cù":["促","媨","憱","猝","瘄","瘯","簇","縬","脨","蔟","誎","趗","踧","踿","蹙","蹴","蹵","醋","顣","鼀"],"é":["俄","囮","娥","峉","峨","峩","涐","珴","皒","睋","磀","莪","訛","誐","譌","讹","迗","鈋","鋨","锇","頟","額","额","魤","鵝","鵞","鹅"],"qiú":["俅","叴","唒","囚","崷","巯","巰","扏","梂","殏","毬","求","汓","泅","浗","湭","煪","犰","玌","球","璆","皳","盚","紌","絿","肍","芁","莍","虬","虯","蛷","裘","觓","觩","訄","訅","賕","赇","逎","逑","遒","酋","釚","釻","銶","頄","鮂","鯄","鰽","鼽","𨱇"],"xú":["俆","徐","禑"],"guàng kuāng":["俇"],"kù":["俈","喾","嚳","库","庫","廤","瘔","絝","绔","袴","裤","褲","酷"],"wù":["俉","务","務","勿","卼","坞","塢","奦","婺","寤","屼","岉","嵨","忢","悞","悟","悮","戊","扤","晤","杌","溩","焐","熃","物","痦","矹","窹","粅","蘁","誤","误","鋈","阢","隖","雾","霚","霧","靰","騖","骛","鶩","鹜","鼿","齀"],"jùn":["俊","儁","呁","埈","寯","峻","懏","捃","攟","晙","棞","燇","珺","畯","竣","箟","蜠","賐","郡","陖","餕","馂","駿","骏","鵔","鵕","鵘","䐃"],"liáng":["俍","墚","梁","椋","樑","粮","粱","糧","良","輬","辌","𫟅"],"zǔ":["俎","唨","爼","祖","組","组","詛","诅","鎺","阻","靻"],"qiào xiào":["俏"],"yǒng":["俑","勇","勈","咏","埇","塎","嵱","彮","怺","恿","悀","惥","愑","愹","慂","柡","栐","永","泳","湧","甬","蛹","詠","踊","踴","鯒","鲬"],"hùn":["俒","倱","圂","尡","慁","掍","溷","焝","睴","觨","諢","诨"],"jìng":["俓","傹","境","妌","婙","婧","弪","弳","径","徑","敬","曔","桱","梷","浄","瀞","獍","痉","痙","竞","竟","竫","競","竸","胫","脛","莖","誩","踁","迳","逕","鏡","镜","靖","静","靜","鵛"],"sàn":["俕","閐"],"pěi":["俖"],"sú":["俗"],"xī":["俙","僖","兮","凞","卥","厀","吸","唏","唽","嘻","噏","嚱","夕","奚","嬆","嬉","屖","嵠","巇","希","徆","徯","息","悉","悕","惁","惜","昔","晞","晰","晳","曦","析","桸","榽","樨","橀","欷","氥","汐","浠","淅","渓","溪","烯","焁","焈","焟","熄","熈","熙","熹","熺","熻","燨","爔","牺","犀","犠","犧","琋","瘜","皙","睎","瞦","矽","硒","磎","礂","稀","穸","窸","粞","糦","緆","繥","羲","翕","翖","肸","肹","膝","舾","莃","菥","蒠","蜥","螅","蟋","蠵","西","觹","觽","觿","譆","谿","豀","豨","豯","貕","赥","邜","鄎","酅","醯","釸","錫","鏭","鐊","鑴","锡","隵","餏","饎","饻","鯑","鵗","鸂","鼷"],"lǐ":["俚","娌","峢","峲","李","欚","浬","澧","理","礼","禮","粴","裏","裡","豊","逦","邐","醴","鋰","锂","鯉","鱧","鱱","鲤","鳢"],"bǎo":["保","堢","媬","宝","寚","寳","寶","珤","緥","葆","藵","褓","賲","靌","飹","飽","饱","駂","鳵","鴇","鸨"],"yú shù yù":["俞"],"sì qí":["俟"],"xìn shēn":["信"],"xiū":["俢","修","咻","庥","樇","烌","羞","脙","脩","臹","貅","銝","鎀","飍","饈","馐","髤","髹","鮴","鱃","鵂","鸺","䗛"],"dì":["俤","偙","僀","埊","墑","墬","娣","帝","怟","旳","梊","焍","玓","甋","眱","睇","碲","祶","禘","第","締","缔","腣","菂","蒂","蔕","蝃","蝭","螮","諦","谛","踶","递","逓","遞","遰","鉪","𤧛","䗖"],"chóu":["俦","儔","嬦","惆","愁","懤","栦","燽","畴","疇","皗","稠","筹","籌","絒","綢","绸","菗","詶","讎","讐","踌","躊","酧","酬","醻","雔","雠","雦"],"zhì":["俧","偫","儨","制","劕","垁","娡","寘","帙","帜","幟","庢","庤","廌","彘","徏","徝","志","忮","懥","懫","挃","挚","掷","摯","擲","旘","晊","智","栉","桎","梽","櫍","櫛","治","洷","滍","滞","滯","潌","瀄","炙","熫","狾","猘","璏","瓆","痔","痣","礩","祑","秩","秷","稚","稺","穉","窒","紩","緻","置","翐","膣","至","致","芖","蛭","袟","袠","製","覟","觗","觯","觶","誌","豑","豒","貭","質","贄","质","贽","跱","踬","躓","輊","轾","郅","銍","鋕","鑕","铚","锧","陟","隲","雉","駤","騭","騺","驇","骘","鯯","鴙","鷙","鸷","𬃊"],"liǎ liǎng":["俩"],"jiǎn":["俭","倹","儉","减","剪","堿","弿","彅","戩","戬","拣","挸","捡","揀","撿","枧","柬","梘","检","検","檢","減","湕","瀽","瑐","睑","瞼","硷","碱","礆","笕","筧","简","簡","絸","繭","翦","茧","藆","蠒","裥","襇","襉","襺","詃","謇","謭","譾","谫","趼","蹇","鐗","鬋","鰎","鹸","鹻","鹼"],"huò":["俰","咟","嚯","嚿","奯","彠","惑","或","擭","旤","曤","檴","沎","湱","瀖","獲","癨","眓","矐","祸","禍","穫","窢","耯","臛","艧","获","蒦","藿","蠖","謋","貨","货","鍃","鑊","镬","雘","霍","靃","韄","㸌"],"jù jū":["俱","据","鋸","锯"],"xiào":["俲","傚","効","咲","哮","啸","嘋","嘨","嘯","孝","效","斅","斆","歗","涍","熽","笑","詨","誟"],"pái":["俳","徘","牌","犤","猅","簰","簲","輫"],"biào":["俵","鰾","鳔"],"chù tì":["俶"],"fèi":["俷","剕","厞","吠","屝","废","廃","廢","昲","曊","櫠","沸","濷","狒","癈","肺","萉","費","费","鐨","镄","陫","靅","鼣"],"fèng":["俸","凤","奉","湗","焨","煈","賵","赗","鳯","鳳","鴌"],"ǎn":["俺","唵","埯","揞","罯","銨","铵"],"bèi":["俻","倍","偝","偹","備","僃","备","悖","惫","愂","憊","昁","梖","焙","牬","犕","狈","狽","珼","琲","碚","禙","糒","苝","蓓","蛽","褙","貝","贝","軰","輩","辈","邶","郥","鄁","鋇","鐾","钡","鞁","鞴","𬇙"],"yù":["俼","儥","喅","喩","喻","域","堉","妪","嫗","寓","峪","嶎","庽","彧","御","愈","慾","戫","昱","棛","棜","棫","櫲","欎","欝","欲","毓","浴","淯","滪","潏","澦","灪","焴","煜","燏","燠","爩","狱","獄","玉","琙","瘉","癒","砡","硢","硲","礇","礖","礜","禦","秗","稢","稶","篽","籞","籲","粖","緎","罭","聿","肀","艈","芋","芌","茟","蒮","蓣","蓹","蕷","蘌","蜟","蜮","袬","裕","誉","諭","譽","谕","豫","軉","輍","逳","遇","遹","郁","醧","鈺","鋊","錥","鐭","钰","閾","阈","雤","霱","預","预","飫","饇","饫","馭","驈","驭","鬰","鬱","鬻","魊","鱊","鳿","鴥","鴧","鴪","鵒","鷸","鸒","鹆","鹬"],"xīn":["俽","噺","妡","嬜","廞","心","忄","忻","惞","新","昕","杺","欣","歆","炘","盺","薪","訢","辛","邤","鈊","鋅","鑫","锌","馨","馫","䜣","𫷷"],"hǔ chí":["俿"],"jiù":["倃","僦","匓","匛","匶","厩","咎","就","廄","廏","廐","慦","捄","救","旧","柩","柾","桕","欍","殧","疚","臼","舅","舊","鯦","鷲","鹫","麔","齨","㠇"],"yáo":["倄","傜","嗂","垚","堯","姚","媱","尧","尭","峣","嶢","嶤","徭","揺","搖","摇","摿","暚","榣","烑","爻","猺","珧","瑤","瑶","磘","窑","窯","窰","肴","蘨","謠","謡","谣","軺","轺","遙","遥","邎","顤","颻","飖","餆","餚","鰩","鱙","鳐"],"cuì zú":["倅"],"liǎng liǎ":["倆"],"wǎn":["倇","唍","婉","惋","挽","晚","晥","晩","晼","梚","椀","琬","畹","皖","盌","碗","綩","綰","绾","脘","萖","踠","輓","鋔"],"zǒng":["倊","偬","傯","嵸","总","惣","捴","搃","摠","燪","総","緫","縂","總","蓗"],"guān":["倌","关","官","棺","瘝","癏","窤","蒄","関","闗","關","鰥","鱞","鳏"],"tiǎn":["倎","唺","忝","悿","晪","殄","淟","睓","腆","舔","覥","觍","賟","錪","餂"],"mén":["們","扪","捫","璊","菛","虋","鍆","钔","門","閅","门","𫞩"],"dǎo dào":["倒"],"tán tàn":["倓","埮"],"juè jué":["倔"],"chuí":["倕","垂","埀","捶","搥","桘","棰","槌","箠","腄","菙","錘","鎚","锤","陲","顀"],"xìng":["倖","姓","婞","嬹","幸","性","悻","杏","涬","緈","臖","荇","莕","葕"],"péng":["倗","傰","塜","塳","弸","憉","捀","朋","棚","椖","樥","硼","稝","竼","篷","纄","膨","芃","蓬","蘕","蟚","蟛","袶","輣","錋","鑝","韸","韼","騯","髼","鬅","鬔","鵬","鹏"],"tǎng cháng":["倘"],"hòu":["候","厚","后","垕","堠","後","洉","茩","豞","逅","郈","鮜","鱟","鲎","鲘"],"tì":["倜","剃","嚏","嚔","屉","屜","悌","悐","惕","惖","戻","掦","替","朑","歒","殢","涕","瓋","笹","籊","薙","褅","逖","逷","髰","鬀","鬄"],"gàn":["倝","凎","幹","榦","檊","淦","灨","盰","紺","绀","詌","贑","赣","骭","㽏"],"liàng jìng":["倞","靓"],"suī":["倠","哸","夊","滖","濉","眭","睢","芕","荽","荾","虽","雖","鞖"],"chàng chāng":["倡"],"jié":["倢","偼","傑","刦","刧","刼","劫","劼","卩","卪","婕","媫","孑","岊","崨","嵥","嶻","巀","幯","截","捷","掶","擮","昅","杢","杰","桀","桝","楬","楶","榤","洁","滐","潔","狤","睫","礍","竭","節","羯","莭","蓵","蛣","蜐","蠘","蠞","蠽","衱","袺","訐","詰","誱","讦","踕","迼","鉣","鍻","镼","頡","鮚","鲒","㛃"],"kǒng kōng":["倥"],"juàn":["倦","劵","奆","慻","桊","淃","狷","獧","眷","睊","睠","絭","絹","绢","罥","羂","腃","蔨","鄄","餋"],"zōng":["倧","堫","宗","嵏","嵕","惾","朡","棕","椶","熧","猣","磫","緃","翪","腙","葼","蝬","豵","踨","踪","蹤","鍐","鑁","騌","騣","骔","鬃","鬉","鬷","鯮","鯼"],"ní":["倪","坭","埿","尼","屔","怩","淣","猊","籾","聣","蚭","蜺","觬","貎","跜","輗","郳","鈮","铌","霓","馜","鯢","鲵","麑","齯","𫐐","𫠜"],"zhuō":["倬","拙","捉","桌","梲","棁","棳","槕","涿","窧","鐯","䦃"],"wō wēi":["倭"],"luǒ":["倮","剆","曪","瘰","癳","臝","蓏","蠃","裸","躶"],"sōng":["倯","凇","娀","崧","嵩","庺","憽","松","枀","枩","柗","梥","檧","淞","濍","硹","菘","鬆"],"lèng":["倰","堎","愣","睖","踜"],"zì":["倳","剚","字","恣","渍","漬","牸","眥","眦","胔","胾","自","茡","荢"],"bèn":["倴","坌","捹","撪","渀","笨","逩"],"cǎi":["倸","啋","婇","彩","採","棌","毝","睬","綵","跴","踩"],"zhài":["债","債","寨","瘵","砦"],"yē":["倻","吔","噎","擨","暍","椰","歋","潱","蠮"],"shà":["倽","唼","喢","歃","箑","翜","翣","萐","閯","霎"],"qīng":["倾","傾","卿","圊","寈","氢","氫","淸","清","蜻","軽","輕","轻","郬","錆","鑋","靑","青","鯖"],"yīng":["偀","嘤","噟","嚶","婴","媖","嫈","嬰","孆","孾","愥","撄","攖","朠","桜","樱","櫻","渶","煐","珱","瑛","璎","瓔","甇","甖","碤","礯","緓","纓","绬","缨","罂","罃","罌","膺","英","莺","蘡","蝧","蠳","褮","譻","賏","軈","鑍","锳","霙","韺","鴬","鶑","鶧","鶯","鷪","鷹","鸎","鸚","鹦","鹰","䓨"],"chēng chèn":["偁","爯"],"ruǎn":["偄","朊","瑌","瓀","碝","礝","腝","軟","輭","软","阮"],"zhòng tóng":["偅"],"chǔn":["偆","惷","睶","萶","蠢","賰"],"jiǎ jià":["假"],"jì jié":["偈"],"bǐng bìng":["偋"],"ruò":["偌","叒","嵶","弱","楉","焫","爇","箬","篛","蒻","鄀","鰙","鰯","鶸"],"tí":["偍","厗","啼","嗁","崹","漽","瑅","睼","禵","稊","緹","缇","罤","蕛","褆","謕","趧","蹄","蹏","醍","鍗","題","题","騠","鮷","鯷","鳀","鵜","鷤","鹈","𫘨"],"wēi":["偎","危","喴","威","媙","嶶","巍","微","愄","揋","揻","椳","楲","溦","烓","煨","燰","癓","縅","葨","葳","薇","蜲","蝛","覣","詴","逶","隇","隈","霺","鰃","鰄","鳂"],"piān":["偏","囨","媥","楄","犏","篇","翩","鍂"],"yàn":["偐","厌","厭","唁","喭","嚈","嚥","堰","妟","姲","嬊","嬿","宴","彥","彦","敥","晏","暥","曕","曣","滟","灎","灔","灧","灩","焔","焰","焱","熖","燄","牪","猒","砚","硯","艳","艶","艷","覎","觃","觾","諺","讌","讞","谚","谳","豓","豔","贋","贗","赝","軅","酀","酽","醼","釅","雁","餍","饜","騐","験","騴","驗","驠","验","鬳","鳫","鴈","鴳","鷃","鷰","齞"],"tǎng dàng":["偒"],"è":["偔","匎","卾","厄","呝","咢","噩","垩","堊","堮","岋","崿","廅","悪","愕","戹","扼","搤","搹","擜","櫮","歞","歺","湂","琧","砈","砐","硆","腭","苊","萼","蕚","蚅","蝁","覨","諤","讍","谔","豟","軛","軶","轭","遌","遏","遻","鄂","鈪","鍔","鑩","锷","阨","阸","頞","顎","颚","餓","餩","饿","鰐","鰪","鱷","鳄","鶚","鹗","齃","齶","𫫇","𥔲"],"xié":["偕","勰","协","協","嗋","垥","奊","恊","愶","拹","携","撷","擕","擷","攜","斜","旪","熁","燲","綊","緳","縀","缬","翓","胁","脅","脇","脋","膎","蝢","衺","襭","諧","讗","谐","鞋","鞵","龤","㙦"],"chě":["偖","扯","撦"],"shěng":["偗","渻","眚"],"chā":["偛","嗏","扠","挿","插","揷","疀","臿","艖","銟","鍤","锸","餷"],"huáng":["偟","凰","喤","堭","墴","媓","崲","徨","惶","楻","湟","煌","獚","瑝","璜","癀","皇","磺","穔","篁","簧","艎","葟","蝗","蟥","諻","趪","遑","鍠","鐄","锽","隍","韹","餭","騜","鰉","鱑","鳇","鷬","黃","黄","𨱑"],"yǎo":["偠","咬","婹","宎","岆","杳","柼","榚","溔","狕","窅","窈","舀","苭","闄","騕","鷕","齩"],"chǒu qiào":["偢"],"yóu":["偤","尤","庮","怣","沋","油","浟","游","犹","猶","猷","由","疣","秞","肬","莜","莸","蕕","蚰","蝣","訧","輏","輶","逰","遊","邮","郵","鈾","铀","駀","魷","鮋","鱿","鲉","𬨎"],"xū":["偦","墟","媭","嬃","楈","欨","歔","燸","疞","盱","綇","縃","繻","胥","蕦","虗","虚","虛","蝑","裇","訏","許","諝","譃","谞","鑐","需","須","须","顼","驉","鬚","魆","魖","𬣙","𦈡"],"zhā":["偧","哳","抯","挓","揸","摣","樝","渣","皶","觰","譇","齄","齇"],"cī":["偨","疵","蠀","趀","骴","髊","齹"],"bī":["偪","屄","楅","毴","豍","逼","鰏","鲾","鵖"],"xún":["偱","噚","寻","尋","峋","巡","廵","循","恂","揗","攳","旬","杊","栒","桪","樳","洵","浔","潯","燅","燖","珣","璕","畃","紃","荀","蟳","詢","询","鄩","鱏","鱘","鲟","𬘓","𬩽","𬍤","𬊈"],"cāi sī":["偲"],"duān":["偳","媏","端","褍","鍴"],"ǒu":["偶","吘","嘔","耦","腢","蕅","藕","𬉼","𠙶"],"tōu":["偷","偸","鍮"],"zán zá zǎ":["偺"],"lǚ lóu":["偻","僂"],"fèn":["偾","僨","奋","奮","弅","忿","愤","憤","瀵","瞓","秎","粪","糞","膹","鱝","鲼"],"kuǐ guī":["傀"],"sǒu":["傁","叜","叟","嗾","櫢","瞍","薮","藪"],"zhì sī tí":["傂"],"sù":["傃","僳","嗉","塐","塑","夙","嫊","愫","憟","榡","樎","樕","殐","泝","涑","溯","溸","潚","潥","玊","珟","璛","簌","粛","粟","素","縤","肃","肅","膆","蔌","藗","觫","訴","謖","诉","谡","趚","蹜","速","遡","遬","鋉","餗","驌","骕","鱐","鷫","鹔","𫗧"],"xiā":["傄","煆","瞎","虲","谺","颬","鰕"],"yuàn yuán":["傆","媛"],"rǒng":["傇","冗","宂","氄","軵"],"nù":["傉","怒"],"yùn":["傊","孕","恽","惲","愠","慍","枟","腪","蕴","薀","藴","蘊","褞","貟","运","運","郓","鄆","酝","醖","醞","韗","韞","韵","韻","餫"],"gòu jiǎng":["傋"],"mà":["傌","嘜","榪","睰","祃","禡","罵","閁","駡","骂","鬕"],"bàng":["傍","塝","棒","玤","稖","艕","蒡","蜯","謗","谤","鎊","镑"],"diān":["傎","厧","嵮","巅","巓","巔","掂","攧","敁","槇","滇","癫","癲","蹎","顚","顛","颠","齻"],"táng":["傏","唐","啺","坣","堂","塘","搪","棠","榶","溏","漟","煻","瑭","磄","禟","篖","糃","糖","糛","膅","膛","蓎","螗","螳","赯","踼","鄌","醣","鎕","隚","餹","饄","鶶","䣘"],"hào":["傐","哠","恏","昊","昦","晧","暠","暤","暭","曍","浩","淏","澔","灏","灝","皓","皜","皞","皡","皥","耗","聕","薃","號","鄗","顥","颢","鰝"],"xī xì":["傒"],"shān":["傓","删","刪","剼","圸","山","挻","搧","柵","檆","潸","澘","煽","狦","珊","笘","縿","羴","羶","脠","舢","芟","衫","跚","軕","邖","閊","鯅"],"qiàn jiān":["傔"],"què jué":["傕","埆"],"cāng chen":["傖"],"róng":["傛","媶","嫆","嬫","容","峵","嵘","嶸","戎","搈","曧","栄","榕","榮","榵","毧","溶","瀜","烿","熔","狨","瑢","穁","絨","绒","羢","肜","茙","茸","荣","蓉","蝾","融","螎","蠑","褣","鎔","镕","駥"],"tà tàn":["傝"],"suō":["傞","唆","嗍","嗦","娑","摍","桫","梭","睃","簑","簔","羧","莏","蓑","趖","鮻"],"dǎi":["傣","歹"],"zài":["傤","儎","再","在","扗","洅","載","酨"],"gǔ":["傦","古","啒","尳","愲","榖","榾","汩","淈","濲","瀔","牯","皷","皼","盬","瞽","穀","罟","羖","股","脵","臌","薣","蛊","蠱","詁","诂","轂","逧","鈷","钴","餶","馉","鼓","鼔","𦙶"],"bīn":["傧","宾","彬","斌","椕","滨","濒","濱","濵","瀕","繽","缤","虨","豩","豳","賓","賔","邠","鑌","镔","霦","顮"],"chǔ":["储","儲","杵","椘","楚","楮","檚","濋","璴","础","礎","禇","處","齭","齼","𬺓"],"nuó":["傩","儺","挪","梛","橠"],"cān càn":["傪"],"lěi":["傫","儡","厽","垒","塁","壘","壨","櫐","灅","癗","矋","磊","礨","耒","蕌","蕾","藟","蘽","蠝","誄","讄","诔","鑸","鸓"],"cuī":["催","凗","墔","崔","嵟","慛","摧","榱","獕","磪","鏙"],"yōng":["傭","嗈","墉","壅","嫞","庸","廱","慵","拥","擁","滽","灉","牅","痈","癕","癰","臃","邕","郺","鄘","鏞","镛","雍","雝","饔","鱅","鳙","鷛"],"zāo cáo":["傮"],"sǒng":["傱","嵷","怂","悚","愯","慫","竦","耸","聳","駷","㧐"],"ào":["傲","坳","垇","墺","奡","嫯","岙","岰","嶴","懊","擙","澳","鏊","驁","骜"],"qī còu":["傶"],"chuǎng":["傸","磢","闖","闯"],"shǎ":["傻","儍"],"hàn":["傼","垾","悍","憾","扞","捍","撖","撼","旱","晘","暵","汉","涆","漢","瀚","焊","猂","皔","睅","翰","莟","菡","蛿","蜭","螒","譀","輚","釬","銲","鋎","雗","頷","顄","颔","駻","鶾"],"zhāng":["傽","嫜","张","張","彰","慞","暲","樟","漳","獐","璋","章","粻","蔁","蟑","遧","鄣","鏱","餦","騿","鱆","麞"],"yān yàn":["傿","墕","嬮"],"piào biāo":["僄","骠"],"liàn":["僆","堜","媡","恋","戀","楝","殓","殮","湅","潋","澰","瀲","炼","煉","瑓","練","纞","练","萰","錬","鍊","鏈","链","鰊","𬶠"],"màn":["㵘","僈","墁","幔","慢","曼","漫","澷","熳","獌","縵","缦","蔄","蘰","鄤","鏝","镘","𬜬"],"tàn tǎn":["僋"],"yíng":["僌","営","塋","嬴","攍","楹","櫿","溁","溋","滢","潆","濙","濚","濴","瀅","瀛","瀠","瀯","灐","灜","熒","營","瑩","盁","盈","禜","籝","籯","縈","茔","荧","莹","萤","营","萦","萾","蓥","藀","蛍","蝇","蝿","螢","蠅","謍","贏","赢","迎","鎣"],"dòng":["働","冻","凍","动","動","姛","戙","挏","栋","棟","湩","硐","胨","胴","腖","迵","霘","駧"],"zhuàn":["僎","啭","囀","堟","撰","灷","瑑","篆","腞","蒃","襈","譔","饌","馔"],"xiàng":["像","勨","向","嚮","姠","嶑","曏","橡","珦","缿","蟓","衖","襐","象","鐌","項","项","鱌"],"shàn":["僐","善","墠","墡","嬗","擅","敾","椫","樿","歚","汕","灗","疝","磰","繕","缮","膳","蟮","蟺","訕","謆","譱","讪","贍","赡","赸","鄯","鐥","饍","騸","骟","鱓","鱔","鳝","𫮃"],"tuí tuǐ":["僓"],"zǔn":["僔","噂","撙","譐"],"pú":["僕","匍","圤","墣","濮","獛","璞","瞨","穙","莆","菐","菩","葡","蒱","蒲","贌","酺","鏷","镤"],"láo":["僗","劳","労","勞","哰","崂","嶗","憥","朥","浶","牢","痨","癆","窂","簩","醪","鐒","铹","顟","髝","𫭼"],"chǎng":["僘","厰","廠","敞","昶","氅","鋹","𬬮"],"guāng":["僙","光","咣","垙","姯","洸","灮","炗","炚","炛","烡","珖","胱","茪","輄","銧","黆","𨐈"],"liáo":["僚","嘹","嫽","寥","寮","尞","屪","嵺","嶚","嶛","廫","憀","敹","暸","橑","獠","璙","疗","療","竂","簝","繚","缭","聊","膋","膫","藔","蟟","豂","賿","蹘","辽","遼","飉","髎","鷯","鹩"],"dèng":["僜","凳","墱","嶝","櫈","瞪","磴","覴","邓","鄧","隥"],"chán zhàn zhuàn":["僝"],"bō":["僠","嶓","拨","撥","播","波","溊","玻","癶","盋","砵","碆","礡","缽","菠","袰","蹳","鉢","钵","餑","饽","驋","鱍","𬭛"],"huì":["僡","匯","卉","喙","嘒","嚖","圚","嬒","寭","屶","屷","彗","彙","彚","徻","恚","恵","惠","慧","憓","懳","晦","暳","槥","橞","檅","櫘","汇","泋","滙","潓","烩","燴","獩","璤","瞺","硊","秽","穢","篲","絵","繪","绘","翙","翽","荟","蔧","蕙","薈","薉","蟪","詯","誨","諱","譓","譿","讳","诲","賄","贿","鐬","闠","阓","靧","頮","顪","颒","餯","𬤝","𬭬"],"chuǎn":["僢","喘","舛","荈","踳"],"tiě jiàn":["僣"],"sēng":["僧","鬙"],"xiàn":["僩","僴","哯","垷","塪","姭","娊","宪","岘","峴","憲","撊","晛","橌","橺","涀","瀗","献","獻","现","現","県","睍","粯","糮","絤","綫","線","线","缐","羡","羨","腺","臔","臽","苋","莧","誢","豏","鋧","錎","限","陥","陷","霰","餡","馅","麲","鼸","𬀪","𪾢"],"yù jú":["僪"],"è wū":["僫"],"tóng zhuàng":["僮"],"lǐn":["僯","凛","凜","廩","廪","懍","懔","撛","檁","檩","澟","癛","癝"],"gù":["僱","凅","固","堌","崓","崮","故","梏","棝","牿","痼","祻","錮","锢","雇","顧","顾","鯝","鲴"],"jiāng":["僵","壃","姜","橿","殭","江","畕","疅","礓","繮","缰","翞","茳","葁","薑","螀","螿","豇","韁","鱂","鳉"],"mǐn":["僶","冺","刡","勄","悯","惽","愍","慜","憫","抿","敃","敏","敯","泯","潣","皿","笢","笽","簢","蠠","閔","閩","闵","闽","鰵","鳘","黽"],"jìn":["僸","凚","噤","嚍","墐","壗","妗","嬧","搢","晉","晋","枃","殣","浕","浸","溍","濅","濜","烬","煡","燼","琎","瑨","璶","盡","祲","縉","缙","荩","藎","覲","觐","賮","贐","赆","近","进","進","靳","齽"],"jià jie":["價"],"qiào":["僺","峭","帩","撬","殻","窍","竅","誚","诮","躈","陗","鞩","韒","髚"],"pì":["僻","媲","嫓","屁","澼","甓","疈","譬","闢","鷿","鸊","䴙"],"sài":["僿","簺","賽","赛"],"chán tǎn shàn":["儃"],"dāng dàng":["儅","当","闣"],"xuān":["儇","喧","塇","媗","宣","愃","愋","揎","昍","暄","煊","煖","瑄","睻","矎","禤","箮","翧","翾","萱","萲","蓒","蕿","藼","蘐","蝖","蠉","諠","諼","譞","谖","軒","轩","鍹","駽","鰚","𫓶","𫍽"],"dān dàn":["儋","擔","瘅"],"càn":["儏","澯","灿","燦","璨","粲","薒","謲"],"bīn bìn":["儐"],"án àn":["儑"],"tái":["儓","坮","嬯","抬","擡","檯","炱","炲","籉","臺","薹","跆","邰","颱","鮐","鲐"],"lán":["儖","兰","囒","婪","岚","嵐","幱","拦","攔","斓","斕","栏","欄","欗","澜","瀾","灆","灡","燣","燷","璼","篮","籃","籣","繿","葻","蓝","藍","蘫","蘭","褴","襕","襤","襴","襽","譋","讕","谰","躝","鑭","镧","闌","阑","韊","𬒗"],"nǐ yì ài yí":["儗"],"méng":["儚","幪","曚","朦","橗","檬","氋","溕","濛","甍","甿","盟","礞","艨","莔","萌","蕄","虻","蝱","鄳","鄸","霿","靀","顭","饛","鯍","鸏","鹲","𫑡","㠓"],"níng":["儜","凝","咛","嚀","嬣","柠","橣","檸","狞","獰","聍","聹","薴","鑏","鬡","鸋"],"qióng":["儝","卭","宆","惸","憌","桏","橩","焪","焭","煢","熍","琼","瓊","睘","穷","穹","窮","竆","笻","筇","舼","茕","藑","藭","蛩","蛬","赹","跫","邛","銎","䓖"],"liè":["儠","冽","列","劣","劽","埒","埓","姴","峛","巤","挒","捩","栵","洌","浖","烈","烮","煭","犣","猎","猟","獵","聗","脟","茢","蛚","趔","躐","迾","颲","鬛","鬣","鮤","鱲","鴷","䴕","𫚭"],"kuǎng":["儣","夼","懭"],"bào":["儤","勽","報","忁","报","抱","曓","爆","犦","菢","虣","蚫","豹","鉋","鑤","铇","骲","髱","鮑","鲍"],"biāo":["儦","墂","幖","彪","标","標","滮","瀌","熛","爂","猋","瘭","磦","膘","臕","謤","贆","鏢","鑣","镖","镳","颮","颷","飆","飇","飈","飊","飑","飙","飚","驫","骉","髟"],"zǎn":["儧","儹","噆","攅","昝","趱","趲"],"háo":["儫","嗥","嘷","噑","嚎","壕","椃","毜","毫","濠","獆","獔","竓","籇","蚝","蠔","譹","豪"],"qìng":["儬","凊","庆","慶","櫦","濪","碃","磬","罄","靘"],"chèn":["儭","嚫","榇","櫬","疢","衬","襯","讖","谶","趁","趂","齓","齔","龀"],"téng":["儯","幐","滕","漛","疼","籐","籘","縢","腾","藤","虅","螣","誊","謄","邆","駦","騰","驣","鰧","䲢"],"lǒng lóng lòng":["儱"],"chán chàn":["儳"],"ráng xiāng":["儴","勷"],"huì xié":["儶"],"luó":["儸","攞","椤","欏","猡","玀","箩","籮","罗","羅","脶","腡","萝","蘿","螺","覼","逻","邏","鏍","鑼","锣","镙","饠","騾","驘","骡","鸁"],"léi":["儽","嫘","檑","欙","瓃","畾","縲","纍","纝","缧","罍","羸","蔂","蘲","虆","轠","鐳","鑘","镭","雷","靁","鱩","鼺"],"nàng nāng":["儾"],"wù wū":["兀"],"yǔn":["允","喗","夽","抎","殒","殞","狁","磒","荺","賱","鈗","阭","陨","隕","霣","馻","齫","齳"],"zān":["兂","橵","簪","簮","糌","鐕","鐟","鵤"],"yuán":["元","円","原","厡","厵","园","圆","圎","園","圓","垣","塬","媴","嫄","援","榞","榬","橼","櫞","沅","湲","源","溒","爰","猨","猿","笎","緣","縁","缘","羱","茒","薗","蝝","蝯","螈","袁","褤","謜","轅","辕","邍","邧","酛","鈨","鎱","騵","魭","鶢","鶰","黿","鼋","𫘪"],"xiōng":["兄","兇","凶","匂","匈","哅","忷","恟","汹","洶","胷","胸","芎","訩","詾","讻"],"chōng":["充","嘃","忡","憃","憧","摏","沖","浺","珫","罿","翀","舂","艟","茺","衝","蹖","㳘"],"zhào":["兆","垗","旐","曌","枛","櫂","照","燳","狣","瞾","笊","罀","罩","羄","肁","肇","肈","詔","诏","赵","趙","鮡","𬶐"],"duì ruì yuè":["兊","兌","兑"],"kè":["克","刻","勀","勊","堁","娔","客","恪","愙","氪","溘","碦","緙","缂","艐","衉","課","课","錁","锞","騍","骒"],"tù":["兎","兔","堍","迌","鵵"],"dǎng":["党","攩","欓","譡","讜","谠","黨","𣗋"],"dōu":["兜","兠","唗","橷","篼","蔸"],"huǎng":["兤","奛","幌","怳","恍","晄","炾","熀","縨","詤","謊","谎"],"rù":["入","嗕","媷","扖","杁","洳","溽","縟","缛","蓐","褥","鳰"],"nèi":["內","氝","氞","錗"],"yú shù":["兪"],"liù lù":["六"],han:["兯","爳"],"tiān":["兲","天","婖","添","酟","靔","靝","黇"],"xīng xìng":["兴"],"diǎn":["典","嚸","奌","婰","敟","椣","点","碘","蒧","蕇","踮","點"],"zī cí":["兹"],"jiān":["兼","冿","囏","坚","堅","奸","姦","姧","尖","幵","惤","戋","戔","搛","椾","樫","櫼","歼","殱","殲","湔","瀐","瀸","煎","熞","熸","牋","瑊","睷","礛","礷","笺","箋","緘","縑","缄","缣","肩","艰","艱","菅","菺","葌","蒹","蔪","蕑","蕳","虃","譼","豜","鑯","雃","鞯","韀","韉","餰","馢","鰔","鰜","鰹","鲣","鳒","鵑","鵳","鶼","鹣","麉"],"shòu":["兽","受","售","壽","夀","寿","授","狩","獣","獸","痩","瘦","綬","绶","膄"],"jì":["兾","冀","剂","剤","劑","勣","坖","垍","塈","妓","季","寂","寄","廭","彑","徛","忌","悸","惎","懻","技","旡","既","旣","暨","暩","曁","梞","檕","檵","洎","漃","漈","瀱","痵","癠","禝","稩","稷","穄","穊","穧","紀","継","績","繋","繼","继","绩","罽","臮","芰","茍","茤","葪","蓟","蔇","薊","蘎","蘮","蘻","裚","襀","覬","觊","計","記","誋","计","记","跡","跽","蹟","迹","际","際","霁","霽","驥","骥","髻","鬾","魝","魥","鯚","鯽","鰶","鰿","鱀","鱭","鲚","鲫","鵋","鷑","齌","𪟝","𬶨","𬶭"],"jiōng":["冂","冋","坰","埛","扃","蘏","蘔","駉","駫","𬳶"],"mào":["冃","冐","媢","帽","愗","懋","暓","柕","楙","毷","瑁","皃","眊","瞀","耄","茂","萺","蝐","袤","覒","貌","貿","贸","鄚","鄮"],"rǎn":["冄","冉","姌","媣","染","珃","苒","蒅","䎃"],"nèi nà":["内"],"gāng":["冈","冮","刚","剛","堈","堽","岡","掆","摃","棡","牨","犅","疘","綱","纲","缸","罁","罡","肛","釭","鎠","㭎"],"cè":["冊","册","厕","厠","夨","廁","恻","惻","憡","敇","测","測","笧","策","筞","筴","箣","荝","萗","萴","蓛"],"guǎ":["冎","剐","剮","叧","寡"],"mào mò":["冒"],"gòu":["冓","啂","坸","垢","够","夠","媾","彀","搆","撀","构","構","煹","覯","觏","訽","詬","诟","購","购","遘","雊"],"xǔ":["冔","喣","暊","栩","珝","盨","糈","詡","諿","诩","鄦","醑"],"mì":["冖","冪","嘧","塓","宻","密","峚","幂","幎","幦","怽","榓","樒","櫁","汨","淧","滵","漞","濗","熐","羃","蔤","蜜","覓","覔","覛","觅","謐","谧","鼏"],"yóu yín":["冘"],"xiě":["写","冩","藛"],"jūn":["军","君","均","桾","汮","皲","皸","皹","碅","莙","蚐","袀","覠","軍","鈞","銁","銞","鍕","钧","頵","鮶","鲪","麏"],"mí":["冞","擟","瀰","爢","猕","獼","祢","禰","縻","蒾","藌","蘪","蘼","袮","詸","謎","迷","醚","醾","醿","釄","镾","鸍","麊","麋","麛"],"guān guàn":["冠","覌","観","觀","观"],"měng":["冡","勐","懵","掹","猛","獴","艋","蜢","蠓","錳","锰","鯭","鼆"],"zhǒng":["冢","塚","尰","歱","煄","瘇","肿","腫","踵"],"zuì":["冣","嶵","晬","最","栬","槜","檇","檌","祽","絊","罪","蕞","辠","酔","酻","醉","錊"],"yuān":["冤","剈","囦","嬽","寃","棩","淵","渁","渆","渊","渕","灁","眢","肙","葾","蒬","蜎","蜵","駌","鳶","鴛","鵷","鸢","鸳","鹓","鼘","鼝"],"míng":["冥","名","明","暝","朙","榠","洺","溟","猽","眀","眳","瞑","茗","螟","覭","詺","鄍","銘","铭","鳴","鸣"],"kòu":["冦","叩","宼","寇","扣","敂","滱","窛","筘","簆","蔲","蔻","釦","鷇"],"tài":["冭","太","夳","忲","态","態","汰","汱","泰","溙","肽","舦","酞","鈦","钛"],"féng píng":["冯","馮"],"chōng chòng":["冲"],"kuàng":["况","圹","壙","岲","懬","旷","昿","曠","框","況","爌","眖","眶","矿","砿","礦","穬","絋","絖","纊","纩","貺","贶","軦","邝","鄺","鉱","鋛","鑛","黋"],"lěng":["冷"],"pàn":["冸","判","叛","沜","泮","溿","炍","牉","畔","盼","聁","袢","襻","詊","鋬","鑻","頖","鵥"],"fā":["冹","彂","沷","発","發"],"xiǎn":["冼","尟","尠","崄","嶮","幰","攇","显","櫶","毨","灦","烍","燹","狝","猃","獫","獮","玁","禒","筅","箲","藓","蘚","蚬","蜆","譣","赻","跣","鍌","险","険","險","韅","顕","顯","㬎"],"qià":["冾","圶","帢","恰","殎","洽","硈","胢","髂"],"jìng chēng":["净","凈","淨"],"sōu":["凁","嗖","廀","廋","捜","搜","摉","溲","獀","艘","蒐","螋","鄋","醙","鎪","锼","颼","飕","餿","馊","騪"],"měi":["凂","媄","媺","嬍","嵄","挴","毎","每","浼","渼","燘","美","躾","鎂","镁","黣"],"tú":["凃","図","图","圖","圗","塗","屠","峹","嵞","庩","廜","徒","悇","揬","涂","瘏","筡","腯","荼","蒤","跿","途","酴","鈯","鍎","馟","駼","鵌","鶟","鷋","鷵","𬳿"],"zhǔn":["准","凖","埻","準","𬘯"],"liáng liàng":["凉","涼","量"],"diāo":["凋","刁","刟","叼","奝","弴","彫","汈","琱","碉","簓","虭","蛁","貂","錭","雕","鮉","鯛","鲷","鵰","鼦"],"còu":["凑","湊","腠","輳","辏"],"ái":["凒","啀","嘊","捱","溰","癌","皑","皚"],"duó":["凙","剫","夺","奪","痥","踱","鈬","鐸","铎"],"dú":["凟","匵","嬻","椟","櫝","殰","涜","牍","牘","犊","犢","独","獨","瓄","皾","裻","読","讀","讟","豄","贕","錖","鑟","韇","韣","韥","騳","髑","黩","黷"],"jǐ jī":["几"],"fán":["凡","凢","凣","匥","墦","杋","柉","棥","樊","瀿","烦","煩","燔","璠","矾","礬","笲","籵","緐","羳","舤","舧","薠","蘩","蠜","襎","蹯","釩","鐇","鐢","钒","鷭","𫔍","𬸪"],"jū":["凥","匊","娵","婮","居","崌","抅","挶","掬","梮","椐","檋","毩","毱","泃","涺","狙","琚","疽","砠","罝","腒","艍","蜛","裾","諊","跔","踘","躹","陱","雎","鞠","鞫","駒","驹","鮈","鴡","鶋","𬶋"],"chù chǔ":["処","处"],"zhǐ":["凪","劧","咫","址","坧","帋","恉","扺","指","旨","枳","止","汦","沚","洔","淽","疻","砋","祉","秖","紙","纸","芷","藢","衹","襧","訨","趾","軹","轵","酯","阯","黹"],"píng":["凭","凴","呯","坪","塀","岼","帡","帲","幈","平","慿","憑","枰","洴","焩","玶","瓶","甁","竮","箳","簈","缾","荓","萍","蓱","蚲","蛢","評","评","軿","輧","郱","鮃","鲆"],"kǎi":["凯","凱","剀","剴","垲","塏","恺","愷","慨","暟","蒈","輆","鍇","鎧","铠","锴","闓","闿","颽"],"gān":["凲","坩","尲","尴","尶","尷","柑","泔","漧","玕","甘","疳","矸","竿","筸","粓","肝","苷","迀","酐","魐"],"kǎn qiǎn":["凵"],"tū":["凸","堗","嶀","捸","涋","湥","痜","禿","秃","突","葖","鋵","鵚","鼵","㻬"],"āo wā":["凹"],"chū":["出","初","岀","摴","榋","樗","貙","齣","䢺","䝙"],"dàng":["凼","圵","垱","壋","档","檔","氹","璗","瓽","盪","瞊","砀","碭","礑","簜","荡","菪","蕩","蘯","趤","逿","雼","𬍡"],"hán":["函","凾","含","圅","娢","寒","崡","晗","梒","浛","涵","澏","焓","琀","甝","筨","蜬","邗","邯","鋡","韓","韩"],"záo":["凿","鑿"],"dāo":["刀","刂","忉","氘","舠","螩","釖","魛","鱽"],"chuāng":["刅","摐","牎","牕","疮","瘡","窓","窗","窻"],"fēn fèn":["分"],"qiè qiē":["切"],"kān":["刊","勘","堪","戡","栞","龕","龛"],"cǔn":["刌","忖"],"chú":["刍","厨","幮","廚","橱","櫉","櫥","滁","犓","篨","耡","芻","蒢","蒭","蜍","蟵","豠","趎","蹰","躇","躕","鉏","鋤","锄","除","雏","雛","鶵"],"huà huá":["划"],"lí":["刕","剓","剺","劙","厘","喱","嚟","囄","嫠","孷","廲","悡","梨","梸","棃","漓","灕","犁","犂","狸","琍","璃","瓈","盠","睝","离","穲","竰","筣","篱","籬","糎","縭","缡","罹","艃","荲","菞","蓠","蔾","藜","蘺","蜊","蟍","蟸","蠫","褵","謧","貍","醨","鋫","錅","鏫","鑗","離","驪","骊","鯏","鯬","鱺","鲡","鵹","鸝","鹂","黎","黧","㰀"],"yuè":["刖","嬳","岄","岳","嶽","恱","悅","悦","戉","抈","捳","月","樾","瀹","爚","玥","礿","禴","篗","籆","籥","籰","粤","粵","蘥","蚎","蚏","説","越","跀","跃","躍","軏","鈅","鉞","鑰","钺","閱","閲","阅","鸑","鸙","黦","龠","𫐄","𬸚"],"liú":["刘","劉","嚠","媹","嵧","旈","旒","榴","橊","流","浏","瀏","琉","瑠","瑬","璢","畄","留","畱","疁","瘤","癅","硫","蒥","蓅","蟉","裗","鎏","鏐","鐂","镠","飀","飅","飗","駠","駵","騮","驑","骝","鰡","鶹","鹠","麍"],"zé":["则","則","啧","嘖","嫧","帻","幘","択","樍","歵","沢","泎","溭","皟","瞔","矠","礋","箦","簀","舴","蔶","蠌","襗","謮","賾","赜","迮","鸅","齚","齰"],"chuàng chuāng":["创","創"],"qù":["刞","厺","去","閴","闃","阒","麮","鼁"],"bié biè":["別","别"],"páo bào":["刨"],"chǎn chàn":["刬","剗","幝"],"guā":["刮","劀","桰","歄","煱","瓜","胍","踻","颪","颳","騧","鴰","鸹"],"gēng":["刯","庚","椩","浭","焿","畊","絚","羮","羹","耕","菮","賡","赓","鶊","鹒"],"dào":["到","噵","悼","椡","檤","燾","瓙","盗","盜","稲","稻","纛","翿","艔","菿","衜","衟","軇","道"],"chuàng":["刱","剏","剙","怆","愴"],"kū":["刳","哭","圐","堀","枯","桍","矻","窟","跍","郀","骷","鮬"],"duò":["刴","剁","墯","尮","惰","憜","挅","桗","舵","跥","跺","陊","陏","飿","饳","鵽"],"shuā shuà":["刷"],"quàn xuàn":["券"],"chà shā":["刹","剎"],"cì cī":["刺"],"guì":["刽","刿","劊","劌","撌","攰","昋","桂","椢","槶","樻","櫃","猤","禬","筀","蓕","襘","貴","贵","跪","鐀","鑎","鞼","鱖","鱥"],"lóu":["剅","娄","婁","廔","楼","樓","溇","漊","熡","耧","耬","艛","蒌","蔞","蝼","螻","謱","軁","遱","鞻","髅","髏","𪣻"],"cuò":["剉","剒","厝","夎","挫","措","棤","莝","莡","蓌","逪","銼","錯","锉","错"],"xiāo xuē":["削"],"kēi kè":["剋","尅"],"là lá":["剌"],"tī":["剔","梯","踢","銻","锑","鷈","鷉","䏲","䴘"],"pōu":["剖"],"wān":["剜","塆","壪","帵","弯","彎","湾","潫","灣","睕","蜿","豌"],"bāo bō":["剝","剥"],"duō":["剟","咄","哆","嚉","多","夛","掇","毲","畓","裰","㙍"],"qíng":["剠","勍","夝","情","擎","晴","暒","棾","樈","檠","氰","甠","硘","葝","黥"],"yǎn shàn":["剡"],"dū zhuó":["剢"],"yān":["剦","嫣","崦","嶖","恹","懕","懨","樮","淊","淹","漹","烟","焉","焑","煙","珚","篶","胭","臙","菸","鄢","醃","閹","阉","黫"],"huō":["剨","劐","吙","攉","秴","耠","锪","騞","𬴃"],"shèng":["剩","剰","勝","圣","墭","嵊","晠","榺","橳","琞","聖","蕂","貹","賸"],"duān zhì":["剬"],"wū":["剭","呜","嗚","圬","屋","巫","弙","杇","歍","汙","汚","污","洿","烏","窏","箼","螐","誈","誣","诬","邬","鄔","鎢","钨","鰞","鴮"],"gē":["割","哥","圪","彁","戈","戓","戨","歌","滒","犵","肐","袼","謌","鎶","鴚","鴿","鸽"],"dá zhá":["剳"],"chuán":["剶","暷","椽","篅","舡","舩","船","輲","遄"],"tuán zhuān":["剸","漙","篿"],"lù jiū":["剹"],"pēng":["剻","匉","嘭","怦","恲","抨","梈","烹","砰","軯","駍"],"piāo":["剽","勡","慓","旚","犥","翲","螵","飃","飄","飘","魒"],"kōu":["剾","彄","抠","摳","眍","瞘","芤","𫸩"],"jiǎo chāo":["剿","劋","勦","摷"],"qiāo":["劁","勪","墝","幧","敲","橇","毃","燆","硗","磽","繑","趬","跷","踍","蹺","蹻","郻","鄡","鄥","鍫","鍬","鐰","锹","頝"],"huá huà":["劃"],"zhā zhá":["劄"],"pī pǐ":["劈","悂"],"tāng":["劏","嘡","羰","薚","蝪","蹚","鞺","鼞"],"chán":["劖","嚵","壥","婵","嬋","巉","廛","棎","毚","湹","潹","潺","澶","瀍","瀺","煘","獑","磛","緾","纏","纒","缠","艬","蝉","蟐","蟬","蟾","誗","讒","谗","躔","鄽","酁","鋋","鑱","镵","饞","馋"],"zuān":["劗","躜","躦","鉆","鑚"],"mó":["劘","嫫","嬤","嬷","尛","摹","擵","橅","糢","膜","藦","蘑","謨","謩","谟","饃","饝","馍","髍","魔","魹"],"zhú":["劚","斸","曯","欘","灟","炢","烛","燭","爥","瘃","竹","笁","笜","舳","茿","蓫","蠋","蠾","躅","逐","逫","钃","鱁"],"quàn":["劝","勧","勸","牶","韏"],"jìn jìng":["劤","劲","勁"],"kēng":["劥","坑","牼","硁","硜","誙","銵","鍞","鏗","铿","阬"],"xié liè":["劦"],"zhù chú":["助"],"nǔ":["努","弩","砮","胬"],"shào":["劭","卲","哨","潲","紹","綤","绍","袑","邵"],"miǎo":["劰","杪","淼","渺","眇","秒","篎","緲","缈","藐","邈"],"kǒu":["劶","口"],"wā":["劸","娲","媧","屲","挖","攨","洼","溛","漥","瓾","畖","穵","窊","窪","蛙","韈","鼃"],"kuāng":["劻","匡","匩","哐","恇","洭","筐","筺","誆","诓","軭","邼"],"hé":["劾","咊","啝","姀","峆","敆","曷","柇","楁","毼","河","涸","渮","澕","熆","皬","盇","盉","盍","盒","禾","篕","籺","粭","翮","菏","萂","覈","訸","詥","郃","釛","鉌","鑉","閡","闔","阂","阖","鞨","頜","餄","饸","魺","鹖","麧","齕","龁","龢","𬌗"],"gào":["勂","吿","告","峼","祮","祰","禞","筶","誥","诰","郜","鋯","锆"],"bó bèi":["勃"],"láng":["勆","嫏","廊","斏","桹","榔","樃","欴","狼","琅","瑯","硠","稂","艆","蓈","蜋","螂","躴","郒","郞","鋃","鎯","锒"],"xūn":["勋","勛","勲","勳","嚑","坃","埙","塤","壎","壦","曛","燻","獯","矄","纁","臐","薫","薰","蘍","醺","𫄸"],"juàn juān":["勌","瓹"],"lè lēi":["勒"],"kài":["勓","炌","烗","鎎"],"wěng yǎng":["勜"],"qín":["勤","嗪","噙","嶜","庈","懃","懄","捦","擒","斳","檎","澿","珡","琴","琹","瘽","禽","秦","耹","芩","芹","菦","螓","蠄","鈙","鈫","雂","靲","鳹","鵭"],"jiàng":["勥","匞","匠","嵹","弜","弶","摾","櫤","洚","滰","犟","糡","糨","絳","绛","謽","酱","醤","醬"],"fān":["勫","嬏","帆","幡","忛","憣","旙","旛","繙","翻","藩","轓","颿","飜","鱕"],"juān":["勬","姢","娟","捐","涓","蠲","裐","鎸","鐫","镌","鹃"],"tóng dòng":["勭","烔","燑","狪"],"lǜ":["勴","垏","嵂","律","慮","氯","滤","濾","爈","箻","綠","繂","膟","葎","虑","鑢"],"chè":["勶","坼","彻","徹","掣","撤","澈","烢","爡","瞮","硩","聅","迠","頙","㬚"],"sháo":["勺","玿","韶"],"gōu gòu":["勾"],"cōng":["匆","囪","囱","忩","怱","悤","暰","樬","漗","瑽","璁","瞛","篵","繱","聡","聦","聪","聰","苁","茐","葱","蓯","蔥","蟌","鍯","鏓","鏦","騘","驄","骢"],"táo yáo":["匋","陶"],"páo":["匏","咆","垉","庖","爮","狍","袍","褜","軳","鞄","麅"],"dá":["匒","妲","怛","炟","燵","畣","笪","羍","荙","薘","蟽","詚","达","迏","迖","迚","逹","達","鐽","靼","鞑","韃","龖","龘","𫟼"],"huà huā":["化"],"běi bèi":["北"],"nǎo":["匘","垴","堖","嫐","恼","悩","惱","瑙","碯","脑","脳","腦"],"chí shi":["匙"],"fāng":["匚","堏","方","淓","牥","芳","邡","鈁","錺","钫","鴋"],"zā":["匝","咂","帀","沞","臜","臢","迊","鉔","魳"],"qiè":["匧","厒","妾","怯","悏","惬","愜","挈","穕","窃","竊","笡","箧","篋","籡","踥","鍥","锲","鯜"],"zāng cáng":["匨"],"fěi":["匪","奜","悱","棐","榧","篚","翡","蕜","誹","诽"],"kuì guì":["匮","匱"],"suǎn":["匴"],"pǐ":["匹","噽","嚭","圮","庀","痞","癖","脴","苉","銢","鴄"],"qū ōu":["区","區"],"kē qià":["匼"],"yǎn yàn":["匽","棪"],"biǎn":["匾","惼","揙","碥","稨","窆","藊","褊","貶","贬","鴘"],"nì":["匿","堄","嫟","嬺","惄","愵","昵","暱","氼","眤","睨","縌","胒","腻","膩","逆","𨺙"],"niàn":["卄","唸","埝","廿","念","惗","艌"],"sà":["卅","櫒","脎","萨","蕯","薩","鈒","隡","颯","飒","馺"],"zú":["卆","哫","崪","族","箤","足","踤","镞"],"shēng":["升","呏","声","斘","昇","曻","枡","殅","泩","湦","焺","牲","珄","生","甥","竔","笙","聲","鉎","鍟","阩","陞","陹","鵿","鼪"],"wàn":["卍","卐","忨","杤","瞣","脕","腕","萬","蟃","贎","輐","錽","𬇕"],"huá huà huā":["华","華"],"bēi":["卑","悲","揹","杯","桮","盃","碑","藣","鵯","鹎"],"zú cù":["卒"],"dān shàn chán":["单","單"],"nán nā":["南"],"shuài lǜ":["卛"],"bǔ bo pú":["卜"],"kuàng guàn":["卝"],"biàn":["卞","变","変","峅","弁","徧","忭","抃","昪","汳","汴","玣","艑","苄","覍","諚","變","辡","辧","辨","辩","辫","辮","辯","遍","釆","𨚕"],"bǔ":["卟","哺","捕","补","補","鸔","𬷕"],"zhàn zhān":["占","覱"],"kǎ qiǎ":["卡"],"lú":["卢","嚧","垆","壚","庐","廬","曥","枦","栌","櫨","泸","瀘","炉","爐","獹","玈","瓐","盧","矑","籚","纑","罏","胪","臚","舮","舻","艫","芦","蘆","蠦","轤","轳","鈩","鑪","顱","颅","馿","髗","魲","鱸","鲈","鸕","鸬","黸","𬬻"],"lǔ":["卤","塷","掳","擄","樐","橹","櫓","氌","滷","澛","瀂","硵","磠","穞","艣","艪","蓾","虏","虜","鏀","鐪","鑥","镥","魯","鲁","鹵"],"guà":["卦","啩","挂","掛","罣","褂","詿","诖"],"áng yǎng":["卬"],"yìn":["印","垽","堷","廕","慭","憖","憗","懚","洕","湚","猌","癊","胤","茚","酳","鮣","䲟"],"què":["却","卻","塙","崅","悫","愨","慤","搉","榷","燩","琷","皵","确","確","礭","闋","阕","鵲","鹊","𬒈"],"luǎn":["卵"],"juàn juǎn":["卷","巻"],"chǎng ān hàn":["厂"],"wěi yán":["厃"],"tīng":["厅","厛","听","庁","廰","廳","汀","烃","烴","綎","耓","聴","聼","聽","鞓","𬘩"],"zhé zhái":["厇"],"hàn àn":["厈","屽"],"yǎ":["厊","唖","庌","痖","瘂","蕥"],"shè":["厍","厙","弽","慑","慴","懾","摂","欇","涉","涻","渉","滠","灄","社","舎","蔎","蠂","設","设","赦","騇","麝"],"dǐ":["厎","呧","坘","弤","抵","拞","掋","牴","砥","菧","觝","詆","诋","軧","邸","阺","骶","鯳"],"zhǎ zhǎi":["厏"],"páng":["厐","嫎","庞","徬","舽","螃","逄","鰟","鳑","龎","龐"],"zhì shī":["厔"],"máng":["厖","吂","哤","娏","忙","恾","杗","杧","汒","浝","牻","痝","盲","硭","笀","芒","茫","蘉","邙","釯","鋩","铓","駹"],"zuī":["厜","樶","纗","蟕"],"shà xià":["厦","廈"],"áo":["厫","嗷","嗸","廒","敖","滶","獒","獓","璈","翱","翶","翺","聱","蔜","螯","謷","謸","遨","鏖","隞","鰲","鳌","鷔","鼇"],"lán qiān":["厱"],"sī mǒu":["厶"],"gōng hóng":["厷"],"lín miǎo":["厸"],"qiú róu":["厹"],"dū":["厾","嘟","督","醏"],"xiàn xuán":["县","縣"],"cān shēn cēn sān":["参","參","叄","叅"],"ài yǐ":["叆"],"chā chà chǎ chá":["叉"],"shuāng":["双","孀","孇","欆","礵","艭","雙","霜","騻","驦","骦","鷞","鸘","鹴"],"shōu":["収","收"],"guái":["叏"],"bá":["叐","妭","抜","拔","炦","癹","胈","茇","菝","詙","跋","軷","魃","鼥"],"fā fà":["发"],"zhuó yǐ lì jué":["叕"],"qǔ":["取","娶","竬","蝺","詓","齲","龋"],"jiǎ xiá":["叚","徦"],"wèi yù":["叞","尉","蔚"],"dié":["叠","垤","堞","峌","幉","恎","惵","戜","曡","殜","氎","牃","牒","瓞","畳","疂","疉","疊","碟","絰","绖","耊","耋","胅","艓","苵","蜨","蝶","褋","詄","諜","谍","跮","蹀","迭","镻","鰈","鲽","鴩","𫶇"],"ruì":["叡","枘","汭","瑞","睿","芮","蚋","蜹","銳","鋭","锐"],"jù gōu":["句"],"lìng":["另","呤","炩","蘦"],"dāo dáo tāo":["叨"],"zhī zhǐ":["只"],"jiào":["叫","呌","嘂","嘦","噍","嬓","斍","斠","滘","漖","獥","珓","皭","窖","藠","訆","譥","趭","較","轎","轿","较","酵","醮","釂"],"zhào shào":["召"],"kě kè":["可"],"tái tāi":["台","苔"],"pǒ":["叵","尀","笸","箥","鉕","钷","駊"],"yè xié":["叶"],"hào háo":["号"],"tàn":["叹","嘆","探","歎","湠","炭","碳","舕"],"hōng hóng":["叿"],"miē":["吀","咩","哶","孭"],"xū yū yù":["吁"],"chī":["吃","哧","喫","嗤","噄","妛","媸","彨","彲","摛","攡","殦","瓻","痴","癡","眵","瞝","笞","粚","胵","蚩","螭","訵","魑","鴟","鵄","鸱","黐","齝","𫄨"],"xuān sòng":["吅"],"yāo":["吆","喓","夭","妖","幺","楆","殀","祅","腰","葽","訞","邀","鴁","鴢","㙘"],"zǐ":["吇","姉","姊","子","杍","梓","榟","橴","滓","矷","秭","笫","籽","紫","耔","虸","訿","釨"],"hé gě":["合","鲄"],"cùn dòu":["吋"],"tóng tòng":["同"],"tǔ tù":["吐","唋"],"zhà zhā":["吒","奓"],"xià hè":["吓"],"ā yā":["吖"],"ma má mǎ":["吗"],"lìn":["吝","恡","悋","橉","焛","甐","膦","蔺","藺","賃","赁","蹸","躏","躙","躪","轥","閵"],"tūn":["吞","暾","朜","焞"],"bǐ pǐ":["吡"],"qìn":["吢","吣","唚","抋","揿","搇","撳","沁","瀙","菣","藽"],"jiè gè":["吤"],"fǒu pǐ":["否"],"ba bā":["吧"],"dūn":["吨","噸","墩","墪","惇","撉","撴","犜","獤","礅","蜳","蹾","驐"],"fēn":["吩","帉","昐","朆","梤","棻","氛","竕","紛","纷","翂","芬","衯","訜","躮","酚","鈖","雰","餴","饙","馚"],"é huā":["吪"],"kēng háng":["吭","妔"],"shǔn":["吮"],"zhī zī":["吱"],"yǐn shěn":["吲"],"wú":["吳","吴","呉","墲","峿","梧","橆","毋","洖","浯","無","珸","璑","祦","芜","茣","莁","蕪","蜈","蟱","譕","郚","鋙","铻","鯃","鵐","鷡","鹀","鼯"],"chǎo chāo":["吵"],"nà nè":["吶"],"xuè chuò jué":["吷"],"chuī":["吹","炊","龡"],"dōu rú":["吺"],"hǒu":["吼","犼"],"hōng hǒu ōu":["吽"],"wú yù":["吾"],"ya yā":["呀"],"è e":["呃"],"dāi":["呆","懛","獃"],"mèn qǐ":["呇"],"hōng":["呍","嚝","揈","灴","烘","焢","硡","薨","訇","谾","軣","輷","轟","轰","鍧"],"nà":["呐","捺","笝","納","纳","肭","蒳","衲","豽","貀","軜","郍","鈉","钠","靹","魶"],"tūn tiān":["呑"],"fǔ ḿ":["呒","嘸"],"dāi tǎi":["呔"],"ǒu ōu òu":["呕"],"bài bei":["呗"],"yuán yún yùn":["员","員"],"guō":["呙","啯","嘓","埚","堝","墎","崞","彉","彍","懖","猓","瘑","聒","蝈","蟈","郭","鈛","鍋","锅"],"huá qì":["呚"],"qiàng qiāng":["呛","跄"],"shī":["呞","失","尸","屍","师","師","施","浉","湤","湿","溮","溼","濕","狮","獅","瑡","絁","葹","蒒","蓍","虱","蝨","褷","襹","詩","诗","邿","釃","鉇","鍦","鯴","鰤","鲺","鳲","鳾","鶳","鸤","䴓","𫚕"],"juǎn":["呟","埍","臇","菤","錈","锩"],"pěn":["呠","翸"],"wěn mǐn":["呡"],"ne ní":["呢"],"ḿ m̀ móu":["呣"],"rán":["呥","嘫","然","燃","繎","肰","蚦","蚺","衻","袇","袡","髥","髯"],"tiè chè":["呫"],"qì zhī":["呮"],"zǐ cī":["呰"],"guā gū guǎ":["呱"],"cī zī":["呲"],"hǒu xǔ gòu":["呴"],"hē ā á ǎ à a":["呵"],"náo":["呶","夒","峱","嶩","巎","挠","撓","猱","硇","蛲","蟯","詉","譊","鐃","铙"],"xiā gā":["呷"],"pēi":["呸","怌","肧","胚","衃","醅"],"háo xiāo":["呺"],"mìng":["命","掵"],"dá dàn":["呾"],"zuǐ jǔ":["咀"],"xián gān":["咁"],"pǒu":["咅","哣","犃"],"yǎng yāng":["咉"],"zǎ zé zhā":["咋"],"hé hè huó huò hú":["和"],"hāi":["咍"],"dā":["咑","哒","噠","墶","搭","撘","耷","褡","鎝","𨱏"],"kǎ kā":["咔"],"gū":["咕","唂","唃","姑","嫴","孤","巬","巭","柧","橭","沽","泒","稒","笟","箍","箛","篐","罛","苽","菇","菰","蓇","觚","軱","軲","轱","辜","酤","鈲","鮕","鴣","鸪"],"kā gā":["咖"],zuo:["咗"],"lóng":["咙","嚨","嶐","巃","巄","昽","曨","朧","栊","槞","櫳","湰","滝","漋","爖","珑","瓏","癃","眬","矓","砻","礱","礲","窿","竜","聋","聾","胧","茏","蘢","蠪","蠬","襱","豅","鏧","鑨","霳","靇","驡","鸗","龍","龒","龙"],"xiàn xián":["咞"],"qì":["咠","唭","噐","器","夡","弃","憇","憩","暣","棄","欫","气","気","氣","汔","汽","泣","湆","湇","炁","甈","盵","矵","碛","碶","磜","磧","罊","芞","葺","藒","蟿","訖","讫","迄","鐑"],"xì dié":["咥"],"liē liě lié lie":["咧"],"zī":["咨","嗞","姕","姿","孜","孳","孶","崰","嵫","栥","椔","淄","湽","滋","澬","玆","禌","秶","粢","紎","緇","緕","纃","缁","茊","茲","葘","諮","谘","貲","資","赀","资","赼","趑","趦","輜","輺","辎","鄑","鈭","錙","鍿","鎡","锱","镃","頾","頿","髭","鯔","鰦","鲻","鶅","鼒","齍","齜","龇"],"mī":["咪"],"jī xī qià":["咭"],"gē luò kǎ lo":["咯"],"shù xún":["咰"],"zán zá zǎ zan":["咱"],"hāi ké":["咳"],"huī":["咴","噅","噕","婎","媈","幑","徽","恢","拻","挥","揮","晖","暉","楎","洃","瀈","灰","灳","烣","睳","禈","翚","翬","蘳","袆","褘","詼","诙","豗","輝","辉","鰴","麾","㧑"],"huài shì":["咶"],"táo":["咷","啕","桃","檮","洮","淘","祹","綯","绹","萄","蜪","裪","迯","逃","醄","鋾","鞀","鞉","饀","駣","騊","鼗","𫘦"],"xián":["咸","啣","娴","娹","婱","嫌","嫺","嫻","弦","挦","撏","涎","湺","澖","甉","痫","癇","癎","絃","胘","舷","藖","蚿","蛝","衔","衘","誸","諴","賢","贒","贤","輱","醎","銜","鑦","閑","闲","鷳","鷴","鷼","鹇","鹹","麙","𫍯"],"è àn":["咹"],"xuān xuǎn":["咺","烜"],"wāi hé wǒ guǎ guō":["咼"],"yàn yè yān":["咽"],"āi":["哀","哎","埃","溾","銰","鎄","锿"],"pǐn":["品","榀"],"shěn":["哂","婶","嬸","审","宷","審","弞","曋","渖","瀋","瞫","矤","矧","覾","訠","諗","讅","谂","谉","邥","頣","魫"],"hǒng hōng hòng":["哄"],"wā wa":["哇"],"hā hǎ hà":["哈"],"zāi":["哉","栽","渽","溨","災","灾","烖","睵","賳"],"dì diè":["哋"],"pài":["哌","沠","派","渒","湃","蒎","鎃"],"gén hěn":["哏"],"yǎ yā":["哑","雅"],"yuě huì":["哕","噦"],"nián":["哖","年","秊","秥","鮎","鯰","鲇","鲶","鵇","黏"],"huá huā":["哗","嘩"],"jì jiē zhāi":["哜","嚌"],"mōu":["哞"],"yō yo":["哟","喲"],"lòng":["哢","梇","贚"],"ò ó é":["哦"],"lī lǐ li":["哩"],"nǎ na nǎi né něi":["哪"],"hè":["哬","垎","壑","寉","惒","焃","煂","燺","爀","癋","碋","翯","褐","謞","賀","贺","赫","靍","靎","靏","鶴","鸖","鹤"],"bō pò bā":["哱"],"zhé":["哲","啠","喆","嚞","埑","悊","摺","晢","晣","歽","矺","砓","磔","籷","粍","虴","蛰","蟄","袩","詟","謫","謺","讁","讋","谪","輒","輙","轍","辄","辙","鮿"],"liàng láng":["哴"],"liè lǜ":["哷"],"hān":["哻","憨","蚶","谽","酣","頇","顸","馠","魽","鼾"],"hēng hng":["哼"],"gěng":["哽","埂","峺","挭","梗","綆","绠","耿","莄","郠","骾","鯁","鲠","𬒔"],"chuò yuè":["哾"],"gě jiā":["哿"],"bei bài":["唄"],"hán hàn":["唅"],"chún":["唇","浱","湻","滣","漘","犉","純","纯","脣","莼","蒓","蓴","醇","醕","錞","陙","鯙","鶉","鹑","𬭚"],"ài āi":["唉"],"jiá qiǎn":["唊"],"yán dàn xián":["唌"],"chē":["唓","砗","硨","莗","蛼"],"wú ńg ń":["唔"],"zào":["唕","唣","噪","慥","梍","灶","煰","燥","皁","皂","竃","竈","簉","艁","譟","趮","躁","造","𥖨"],"dí":["唙","啇","嘀","嚁","嫡","廸","敌","敵","梑","涤","滌","狄","笛","籴","糴","苖","荻","蔋","蔐","藡","覿","觌","豴","迪","靮","頔","馰","髢","鸐","𬱖"],"gòng hǒng gǒng":["唝","嗊"],"dóu":["唞"],"lào láo":["唠","嘮","憦"],"huàn":["唤","喚","奂","奐","宦","嵈","幻","患","愌","换","換","擐","攌","梙","槵","浣","涣","渙","漶","澣","烉","焕","煥","瑍","痪","瘓","睆","肒","藧","豢","轘","逭","鯇","鯶","鰀","鲩"],"léng":["唥","塄","楞","碐","薐"],"wō wěi":["唩"],"fěng":["唪","覂","諷","讽"],"yín jìn":["唫"],"hǔ xià":["唬"],"wéi":["唯","围","圍","壝","峗","峞","嵬","帏","帷","幃","惟","桅","沩","洈","涠","湋","溈","潍","潙","潿","濰","犩","矀","維","维","蓶","覹","违","違","鄬","醀","鍏","闈","闱","韋","韦","鮠","𣲗","𬶏"],"shuā":["唰"],"chàng":["唱","怅","悵","暢","焻","畅","畼","誯","韔","鬯"],"ér wā":["唲"],"qiàng":["唴","炝","熗","羻"],"yō":["唷"],"yū":["唹","淤","瘀","盓","箊","紆","纡","込","迂","迃","陓"],"lài":["唻","濑","瀨","瀬","癞","癩","睐","睞","籁","籟","藾","賚","賴","赉","赖","頼","顂","鵣"],"tuò":["唾","嶞","柝","毤","毻","箨","籜","萚","蘀","跅"],"zhōu zhāo tiào":["啁"],"kěn":["啃","垦","墾","恳","懇","肎","肯","肻","豤","錹"],"zhuó zhào":["啅","濯"],"hēng hèng":["啈","悙"],"lín lán":["啉"],"a ā á ǎ à":["啊"],"qiāng":["啌","嗴","嶈","戕","摤","斨","枪","槍","溬","牄","猐","獇","羌","羗","腔","蜣","謒","鏘","锖","锵"],"tūn zhūn xiāng duǐ":["啍"],"wèn":["問","妏","揾","搵","璺","问","顐"],"cuì qi":["啐"],"dié shà jié tì":["啑"],"yuē wā":["啘"],"zǐ cǐ":["啙"],"bǐ tú":["啚"],"chuò chuài":["啜"],"yǎ yā è":["啞"],"fēi":["啡","婓","婔","扉","暃","渄","猆","緋","绯","裶","霏","非","靟","飛","飝","飞","餥","馡","騑","騛","鯡","鲱","𬴂"],"pí":["啤","壀","枇","毗","毘","焷","琵","疲","皮","篺","罴","羆","脾","腗","膍","蚍","蚽","蜱","螷","蠯","豼","貔","郫","鈹","阰","陴","隦","魮","鮍","鲏","鵧","鼙"],"shá":["啥"],"lā la":["啦"],"yīng qíng":["啨"],"pā":["啪","妑","舥","葩","趴"],"zhě shì":["啫"],"sè":["啬","嗇","懎","擌","栜","歮","涩","渋","澀","澁","濇","濏","瀒","瑟","璱","瘷","穑","穡","穯","繬","譅","轖","銫","鏼","铯","飋"],"niè":["啮","嗫","噛","嚙","囁","囓","圼","孼","孽","嵲","嶭","巕","帇","敜","枿","槷","櫱","涅","湼","痆","篞","籋","糱","糵","聂","聶","臬","臲","蘖","蠥","讘","踂","踗","踙","蹑","躡","錜","鎳","鑈","鑷","钀","镊","镍","闑","陧","隉","顳","颞","齧","𫔶"],"luō luó luo":["啰","囉"],"tān chǎn tuō":["啴"],bo:["啵","蔔"],"dìng":["啶","定","椗","矴","碇","碠","磸","聢","腚","萣","蝊","訂","订","錠","锭","顁","飣","饤"],"lāng":["啷"],"án ān":["啽"],"kā":["喀","擖"],"yóng yú":["喁"],"lā lá lǎ":["喇"],"jiē":["喈","喼","嗟","堦","媘","接","掲","擑","湝","煯","疖","痎","癤","皆","秸","稭","脻","蝔","街","謯","阶","階","鞂","鶛"],"hóu":["喉","帿","猴","瘊","睺","篌","糇","翭","葔","鄇","鍭","餱","骺","鯸","𬭤"],"dié zhá":["喋"],"wāi":["喎","歪","竵"],"nuò rě":["喏"],"xù huò guó":["喐"],"zán":["喒"],"wō ō":["喔"],"hú":["喖","嘝","囫","壶","壷","壺","媩","弧","搰","斛","楜","槲","湖","瀫","焀","煳","狐","猢","瑚","瓳","箶","絗","縠","胡","葫","蔛","蝴","螜","衚","觳","醐","鍸","頶","餬","鬍","魱","鰗","鵠","鶘","鶦","鹕"],"huàn yuán xuǎn hé":["喛"],"xǐ":["喜","囍","壐","屣","徙","憙","枲","橲","歖","漇","玺","璽","矖","禧","縰","葈","葸","蓰","蟢","謑","蹝","躧","鈢","鉨","鉩","鱚","𬭳","𬶮"],"hē hè yè":["喝"],"kuì":["喟","嘳","媿","嬇","愦","愧","憒","篑","簣","籄","聩","聭","聵","膭","蕢","謉","餽","饋","馈"],"zhǒng chuáng":["喠"],"wéi wèi":["喡","為","爲"],"duó zhà":["喥"],"sāng sàng":["喪"],"qiáo jiāo":["喬"],"pèn bēn":["喯"],"cān sūn qī":["喰"],"zhā chā":["喳"],"miāo":["喵"],"pēn pèn":["喷"],"kuí":["喹","夔","奎","巙","戣","揆","晆","暌","楏","楑","櫆","犪","睽","葵","藈","蘷","虁","蝰","躨","逵","鄈","鍨","鍷","頯","馗","騤","骙","魁"],"lou lóu":["喽"],"zào qiāo":["喿"],"hè xiāo xiào hù":["嗃"],"á shà":["嗄"],"xiù":["嗅","岫","峀","溴","珛","琇","璓","秀","綉","繍","繡","绣","螑","袖","褎","褏","銹","鏥","鏽","锈","齅"],"qiāng qiàng":["嗆","戗","戧","蹌","蹡"],"ài yì":["嗌","艾"],"má mǎ ma":["嗎"],"kè kē":["嗑"],"dā tà":["嗒","鎉"],"sǎng":["嗓","搡","磉","褬","鎟","顙","颡"],"chēn":["嗔","抻","琛","瞋","諃","謓","賝","郴","𬘭"],"wā gǔ":["嗗"],"pǎng bēng":["嗙"],"xián qiǎn qiān":["嗛"],"lào":["嗠","嫪","橯","涝","澇","耢","耮","躼","軂","酪"],"wēng":["嗡","翁","聬","螉","鎓","鶲","鹟","𬭩"],"wà":["嗢","腽","膃","袜","襪","韤"],"hēi hāi":["嗨"],"hē":["嗬","欱","蠚","訶","诃"],zi:["嗭"],"sǎi":["嗮"],"ǹg ńg ňg":["嗯"],"gě":["嗰","舸"],"ná":["嗱","拏","拿","鎿","镎"],"diǎ":["嗲"],"ài ǎi āi":["嗳"],"tōng":["嗵","樋","炵","蓪"],"zuī suī":["嗺"],"zhē zhè zhù zhe":["嗻"],"mò":["嗼","圽","塻","墨","妺","嫼","寞","帞","昩","末","枺","歿","殁","沫","漠","爅","獏","瘼","皌","眽","眿","瞐","瞙","砞","礳","秣","絈","纆","耱","茉","莈","蓦","蛨","蟔","貃","貊","貘","銆","鏌","镆","陌","靺","驀","魩","默","黙","𬙊"],"sòu":["嗽","瘶"],"tǎn":["嗿","坦","忐","憳","憻","暺","毯","璮","菼","袒","襢","醓","鉭","钽"],"jiào dǎo":["嘄"],"kǎi gě":["嘅"],"shān càn":["嘇"],"cáo":["嘈","嶆","曹","曺","槽","漕","艚","蓸","螬","褿","鏪","𥕢"],"piào":["嘌","徱","蔈","驃"],"lóu lou":["嘍"],"gǎ":["尕","玍"],"gǔ jiǎ":["嘏"],"jiāo xiāo":["嘐"],"xū shī":["嘘","噓"],"pó":["嘙","嚩","婆","櫇","皤","鄱"],"dē dēi":["嘚"],"ma má":["嘛"],"lē lei":["嘞"],"gā gá gǎ":["嘠"],"sāi":["嘥","噻","毢","腮","顋","鰓"],"zuō chuài":["嘬"],"cháo zhāo":["嘲","朝","鼂"],"zuǐ":["嘴","噿","嶊","璻"],"qiáo qiào":["嘺","翹","谯"],"chù xù shòu":["嘼"],"tān chǎn":["嘽"],"dàn tán":["嘾","弾","彈","惔","澹"],"hēi mò":["嘿"],"ě":["噁","砨","頋","騀","鵈"],"fān bo":["噃"],"chuáng":["噇","床","牀"],"cù zā hé":["噈"],"tūn kuò":["噋"],"cēng chēng":["噌"],"dēng":["噔","嬁","灯","燈","璒","登","竳","簦","艠","豋"],"pū":["噗","扑","撲","攴","攵","潽","炇","陠"],"juē":["噘","屩","屫","撧"],"lū":["噜","嚕","撸","擼","謢"],"zhān":["噡","岾","惉","旃","旜","枬","栴","毡","氈","氊","沾","瞻","薝","蛅","詀","詹","譫","谵","趈","邅","閚","霑","飦","饘","驙","魙","鱣","鸇","鹯","𫗴"],"ō":["噢"],"zhòu zhuó":["噣"],"jiào qiào chī":["噭"],"yuàn":["噮","妴","怨","愿","掾","瑗","禐","苑","衏","裫","褑","院","願"],"ǎi ài āi":["噯"],"yōng yǒng":["噰","澭"],"jué xué":["噱"],"pēn pèn fèn":["噴"],"gá":["噶","尜","釓","錷","钆"],"xīn hěn hèn":["噷"],"dāng":["噹","澢","珰","璫","筜","簹","艡","蟷","裆","襠"],"làn":["嚂","滥","濫","烂","燗","爁","爛","爤","瓓","糷","钄"],"tà":["嚃","嚺","崉","挞","搨","撻","榻","橽","毾","涾","澾","濌","禢","粏","誻","譶","蹋","蹹","躂","躢","遝","錔","闒","闥","闼","阘","鞜","鞳"],"huō huò ǒ":["嚄"],"hāo":["嚆","茠","蒿","薅"],"hè xià":["嚇"],"xiù pì":["嚊"],"zhōu chóu":["嚋","盩","诪"],"mē":["嚒"],"chā cā":["嚓"],"bó pào bào":["嚗"],"me mèi mò":["嚜"],"xié hái":["嚡"],"áo xiāo":["嚣"],"mō":["嚤","摸"],"pín":["嚬","娦","嫔","嬪","玭","矉","薲","蠙","貧","贫","顰","颦","𬞟"],"mè":["嚰","濹"],"rǎng rāng":["嚷"],"lá":["嚹","旯"],"jiáo jué jiào":["嚼"],"chuò":["嚽","娖","擉","歠","涰","磭","踀","輟","辍","辵","辶","酫","鑡","餟","齪","龊"],"huān huàn":["嚾"],"zá cà":["囃"],"chài":["囆","虿","蠆","袃","訍"],"náng nāng":["囊"],"zá zàn cān":["囋"],"sū":["囌","櫯","甦","稣","穌","窣","蘇","蘓","酥","鯂"],"zèng":["囎","熷","甑","贈","赠","鋥","锃"],"zá niè yàn":["囐"],"nāng":["囔"],"luó luō luo":["囖"],"wéi guó":["囗"],"huí":["囘","回","囬","廻","廽","恛","洄","痐","茴","蚘","蛔","蛕","蜖","迴","逥","鮰"],"nín":["囜","您","脌"],"jiǎn nān":["囝"],"nān":["囡"],"tuán":["团","団","團","慱","抟","摶","檲","糰","鏄","鷒","鷻"],"tún dùn":["囤","坉"],"guó":["囯","囶","囻","国","圀","國","帼","幗","慖","摑","漍","聝","腘","膕","蔮","虢","馘","𬇹"],"kùn":["困","涃","睏"],"wéi tōng":["囲"],"qūn":["囷","夋","逡"],"rì":["囸","日","衵","鈤","馹","驲"],"tāi":["囼","孡","胎"],"pǔ":["圃","圑","擈","普","暜","樸","檏","氆","浦","溥","烳","諩","譜","谱","蹼","鐠","镨"],"quān juàn juān":["圈","圏"],"chuí chuán":["圌"],"tuǎn":["圕","畽","疃"],"lüè":["圙","掠","略","畧","稤","鋝","鋢","锊","䂮"],"huán yuán":["圜"],"luán":["圝","圞","奱","娈","孌","孪","孿","峦","巒","挛","攣","曫","栾","欒","滦","灤","癴","癵","羉","脔","臠","虊","銮","鑾","鵉","鸞","鸾"],"tǔ":["土","圡","釷","钍"],"xū wéi":["圩"],"dì de":["地","嶳"],"qiān sú":["圱"],"zhèn":["圳","塦","挋","振","朕","栚","甽","眹","紖","絼","纼","誫","賑","赈","鋴","鎭","鎮","镇","阵","陣","震","鴆","鸩"],"chǎng cháng":["场","場","塲"],"qí yín":["圻"],"jiá":["圿","忦","恝","戞","扴","脥","荚","莢","蛱","蛺","裌","跲","郏","郟","鋏","铗","頬","頰","颊","鴶","鵊"],"zhǐ zhì":["坁"],"bǎn":["坂","岅","昄","板","版","瓪","粄","舨","蝂","鈑","钣","阪","魬"],"qǐn":["坅","寑","寝","寢","昑","梫","笉","螼","赾","鋟","锓"],"méi fén":["坆"],"rǒng kēng":["坈"],"fāng fáng":["坊"],"fèn bèn":["坋"],"tān":["坍","怹","摊","擹","攤","滩","灘","瘫","癱","舑","貪","贪"],"huài pēi pī péi":["坏"],"dì làn":["坔"],"tán":["坛","墰","墵","壇","壜","婒","憛","昙","曇","榃","檀","潭","燂","痰","磹","罈","罎","藫","談","譚","譠","谈","谭","貚","郯","醰","錟","顃"],"bà":["坝","垻","壩","弝","欛","灞","爸","矲","覇","霸","鮁","鲅"],"fén":["坟","墳","妢","岎","幩","枌","棼","汾","焚","燌","燓","羒","羵","蒶","蕡","蚠","蚡","豮","豶","轒","鐼","隫","馩","魵","黂","鼖","鼢","𣸣"],"zhuì":["坠","墜","惴","甀","畷","礈","綴","縋","缀","缒","腏","膇","諈","贅","赘","醊","錣","鑆"],"pō":["坡","岥","泼","溌","潑","釙","鏺","钋","頗","颇","䥽"],"pǎn bàn":["坢"],"kūn":["坤","堃","堒","崐","崑","昆","晜","潉","焜","熴","猑","琨","瑻","菎","蜫","裈","裩","褌","醌","錕","锟","騉","髠","髡","髨","鯤","鲲","鵾","鶤","鹍"],"diàn":["坫","垫","墊","壂","奠","婝","店","惦","扂","橂","殿","淀","澱","玷","琔","电","癜","簟","蜔","鈿","電","靛","驔"],"mù mǔ":["坶"],"kē kě":["坷","軻"],"xuè":["坹","岤","桖","瀥","狘","瞲","謔","谑","趐"],"dǐ chí":["坻","柢"],"lā":["垃","柆","菈","邋"],"lǒng":["垄","垅","壟","壠","拢","攏","竉","陇","隴","𬕂"],"mín":["垊","姄","岷","崏","捪","旻","旼","民","珉","琘","琝","瑉","痻","盿","砇","緍","緡","缗","罠","苠","鈱","錉","鍲","鴖"],"dòng tóng":["垌","峒","洞"],"cí":["垐","嬨","慈","柌","濨","珁","瓷","甆","磁","礠","祠","糍","茨","詞","词","辝","辞","辤","辭","雌","飺","餈","鴜","鶿","鷀","鹚"],"duī":["垖","堆","塠","痽","磓","鐓","鐜","鴭"],"duò duǒ":["垛"],"duǒ duò":["垜","挆"],"chá":["垞","察","嵖","搽","槎","檫","猹","茬","茶","詧","靫","𥻗"],"shǎng":["垧","晌","樉","賞","贘","赏","鋿","鏛","鑜"],"shǒu":["垨","守","手","扌","艏","首"],da:["垯","繨","跶"],"háng":["垳","斻","杭","筕","絎","绗","航","苀","蚢","裄","貥","迒","頏","颃","魧"],"ān ǎn":["垵"],"xīng":["垶","惺","星","曐","煋","猩","瑆","皨","篂","腥","興","觪","觲","謃","騂","骍","鮏","鯹"],"yuàn huán":["垸"],"bāng":["垹","帮","幇","幚","幫","捠","梆","浜","邦","邫","鞤","𠳐"],"póu fú":["垺"],"cén":["埁","岑","涔"],"běng fēng":["埄"],"dì fáng":["埅"],"xiá jiā":["埉"],"mái mán":["埋"],"làng":["埌","崀","浪","蒗","閬","㫰"],"shān yán":["埏"],"qín jīn":["埐"],"pǔ bù":["埔"],"huā":["埖","婲","椛","硴","糀","花","蒊","蘤","誮","錵"],"suì sù":["埣"],"pí pì":["埤"],"qīng zhēng":["埥","鲭"],"wǎn wān":["埦"],"lǔn":["埨","稐","𫭢"],"zhēng chéng":["埩"],"kōng":["埪","崆","箜","躻","錓","鵼"],"cǎi cài":["埰","寀","采"],"chù tòu":["埱"],"běng":["埲","琫","菶","鞛"],"kǎn xiàn":["埳"],"yì shì":["埶","醳"],"péi":["培","毰","裴","裵","賠","赔","錇","锫","阫","陪"],"sào sǎo":["埽"],"jǐn qīn jìn":["堇"],"péng bèng":["堋"],"qiàn zàn jiàn":["堑"],"àn":["堓","屵","岸","按","暗","案","胺","荌","豻","貋","錌","闇","隌","黯"],"duò huī":["堕","墮"],"huán":["堚","寏","寰","峘","桓","洹","澴","獂","环","環","糫","繯","缳","羦","荁","萈","萑","豲","鍰","鐶","锾","镮","闤","阛","雈","鬟","鹮","𬘫","𤩽"],"bǎo bǔ pù":["堡"],"máo móu wǔ":["堥"],"ruán":["堧","壖","撋"],"ài è yè":["堨"],"gèng":["堩","暅"],"méi":["堳","塺","媒","嵋","徾","攗","枚","栂","梅","楣","楳","槑","湄","湈","煤","猸","玫","珻","瑂","眉","睂","禖","脄","脢","腜","苺","莓","葿","郿","酶","鎇","镅","霉","鶥","鹛","黴"],"dǔ":["堵","琽","睹","笃","篤","覩","賭","赌"],"féng":["堸","綘","艂","逢"],"hèng":["堼"],"chūn":["堾","媋","旾","春","暙","杶","椿","槆","橁","櫄","瑃","箺","萅","蝽","輴","鰆","鶞","䲠"],"jiǎng":["塂","奖","奨","奬","桨","槳","獎","耩","膙","蒋","蔣","講","讲","顜"],"huāng":["塃","巟","慌","肓","荒","衁"],"duàn":["塅","断","斷","椴","段","毈","煅","瑖","碫","簖","籪","緞","缎","腶","葮","躖","鍛","锻"],"tǎ":["塔","墖","獭","獺","鮙","鰨","鳎"],"wěng":["塕","奣","嵡","攚","暡","瞈","蓊"],"sāi sài sè":["塞"],"zàng":["塟","弉","臓","臟","葬","蔵","銺"],"tián":["塡","屇","恬","沺","湉","璳","甛","甜","田","畋","畑","碵","磌","胋","闐","阗","鴫","鷆","鷏"],"zhèng":["塣","幁","政","証","諍","證","证","诤","郑","鄭","靕","鴊"],"tián zhèn":["填"],"wēn":["塭","昷","榲","殟","温","溫","瑥","瘟","蕰","豱","輼","轀","辒","鎾","饂","鰛","鰮","鳁"],"liù":["塯","廇","磟","翏","雡","霤","餾","鬸","鷚","鹨"],"hǎi":["塰","海","烸","酼","醢"],"lǎng":["塱","朖","朗","朤","烺","蓢","㮾"],"bèng":["塴","揼","泵","甏","綳","蹦","迸","逬","鏰","镚"],"chén":["塵","宸","尘","忱","敐","敶","晨","曟","栕","樄","沉","煁","瘎","臣","茞","莀","莐","蔯","薼","螴","訦","諶","軙","辰","迧","鈂","陈","陳","霃","鷐","麎"],"ōu qiū":["塸"],"qiàn jiàn":["塹"],"zhuān tuán":["塼"],"shuǎng":["塽","慡","漺","爽","縔","鏯"],"shú":["塾","婌","孰","璹","秫","贖","赎"],"lǒu":["塿","嵝","嶁","甊","篓","簍"],"chí":["墀","弛","持","池","漦","竾","筂","箎","篪","茌","荎","蚳","謘","貾","赿","踟","迟","迡","遅","遟","遲","鍉","馳","驰"],"shù":["墅","庶","庻","怷","恕","戍","束","树","樹","沭","漱","潄","濖","竖","竪","絉","腧","荗","蒁","虪","術","裋","豎","述","鉥","錰","鏣","霔","鶐","𬬸"],"dì zhì":["墆","疐"],"kàn":["墈","崁","瞰","矙","磡","衎","鬫"],"chěn":["墋","夦","硶","碜","磣","贂","趻","踸","鍖"],"zhǐ zhuó":["墌"],"qiǎng":["墏","繈","繦","羥","襁"],"zēng":["増","增","憎","璔","矰","磳","罾","譄","鄫","鱛","䎖"],"qiáng":["墙","墻","嫱","嬙","樯","檣","漒","牆","艢","蔃","蔷","蘠"],"kuài tuí":["墤"],"tuǎn dǒng":["墥"],"qiáo què":["墧"],"zūn dūn":["墫"],"qiāo áo":["墽"],"yì tú":["墿"],"xué bó jué":["壆"],"lǎn":["壈","嬾","孄","孏","懒","懶","揽","擥","攬","榄","欖","浨","漤","灠","纜","缆","罱","覧","覽","览","醂","顲"],"huài":["壊","壞","蘾"],"rǎng":["壌","壤","攘","爙"],"làn xiàn":["壏"],"dǎo":["壔","导","導","岛","島","嶋","嶌","嶹","捣","搗","擣","槝","祷","禂","禱","蹈","陦","隝","隯"],"ruǐ":["壡","桵","橤","繠","蕊","蕋","蘂","蘃"],san:["壭"],"zhuàng":["壮","壯","壵","撞","焋","状","狀"],"ké qiào":["壳","殼"],"kǔn":["壸","壼","悃","捆","梱","硱","祵","稇","稛","綑","裍","閫","閸","阃"],"mǎng":["壾","漭","茻","莽","莾","蠎"],"cún":["壿","存"],"zhǐ zhōng":["夂"],"gǔ yíng":["夃"],"jiàng xiáng":["夅","降"],"páng féng fēng":["夆"],"zhāi":["夈","捚","摘","斋","斎","榸","粂","齋"],"xuàn xiòng":["夐"],"wài":["外","顡"],"wǎn yuàn wān yuān":["夗"],"mǎo wǎn":["夘"],"mèng":["夢","夣","孟","梦","癦","霥"],"dà dài":["大"],"fū fú":["夫","姇","枎","粰"],"guài":["夬","怪","恠"],"yāng":["央","姎","抰","殃","泱","秧","胦","鉠","鍈","雵","鴦","鸯"],"hāng bèn":["夯"],"gǎo":["夰","搞","杲","槀","槁","檺","稁","稾","稿","縞","缟","菒","藁","藳"],"tāo běn":["夲"],"tóu tou":["头"],"yǎn tāo":["夵"],"kuā kuà":["夸","誇"],"jiá jiā gā xiá":["夹"],"huà":["夻","婳","嫿","嬅","崋","摦","杹","枠","桦","槬","樺","澅","画","畫","畵","繣","舙","話","諙","譮","话","黊"],"jiā jiá gā xiá":["夾"],"ēn":["奀","恩","蒽"],"dī tì":["奃"],"yǎn yān":["奄","渰"],"pào":["奅","疱","皰","砲","礟","礮","靤","麭"],"nài":["奈","柰","渿","耐","萘","褦","錼","鼐"],"quān juàn":["奍","弮","棬"],"zòu":["奏","揍"],"qì qiè xiè":["契"],"kāi":["奒","开","揩","鐦","锎","開"],"bēn bèn":["奔","泍"],"tào":["套"],"zàng zhuǎng":["奘"],"běn":["奙","本","楍","畚","翉","苯"],"xùn zhuì":["奞"],"shē":["奢","檨","猞","畭","畲","賒","賖","赊","輋","𪨶"],"hǎ pò tǎi":["奤"],"ào yù":["奥","奧","澚"],"yūn":["奫","氲","氳","蒀","蒕","蝹","贇","赟","𫖳"],"duǒ chě":["奲"],"nǚ rǔ":["女"],"nú":["奴","孥","笯","駑","驽"],"dīng dǐng tiǎn":["奵"],"tā jiě":["她"],"nuán":["奻"],"hǎo hào":["好"],"fàn":["奿","嬎","梵","汎","泛","滼","瀪","犯","畈","盕","笵","範","范","訉","販","贩","軬","輽","飯","飰","饭"],"shuò":["妁","搠","朔","槊","烁","爍","矟","蒴","鎙","鑠","铄"],"fēi pèi":["妃"],"wàng":["妄","忘","旺","望","朢"],"zhuāng":["妆","妝","娤","庄","庒","桩","梉","樁","粧","糚","荘","莊","装","裝"],"mā":["妈","媽"],"fū yōu":["妋"],"hài jiè":["妎"],"dù":["妒","妬","杜","殬","渡","秺","芏","荰","螙","蠧","蠹","鍍","镀","靯","𬭊"],"miào":["妙","庙","庿","廟","玅","竗"],"fǒu pēi pī":["妚"],"yuè jué":["妜"],"niū":["妞"],"nà nàn":["妠"],"tuǒ":["妥","嫷","庹","椭","楕","橢","鬌","鰖","鵎"],"wàn yuán":["妧"],"fáng":["妨","房","肪","防","魴","鲂"],"nī":["妮"],"zhóu":["妯","碡"],"zhāo":["妱","巶","招","昭","釗","鉊","鍣","钊","駋","𬬿"],"nǎi nǐ":["妳"],"tǒu":["妵","敨","紏","蘣","黈"],"xián xuán xù":["妶"],"zhí yì":["妷","秇"],"ē":["妸","妿","婀","屙"],"mèi":["妹","媚","寐","抺","旀","昧","沬","煝","痗","眛","睸","祙","篃","蝞","袂","跊","鬽","魅"],"qī qì":["妻"],"xū xǔ":["姁","稰"],"shān shàn":["姍","姗","苫","釤","钐"],"mán":["姏","慲","樠","蛮","蠻","謾","饅","馒","鬗","鬘","鰻","鳗"],"jiě":["姐","媎","檞","毑","飷"],"wěi wēi":["委"],"pīn":["姘","拼","礗","穦","馪","驞"],"huá huó":["姡"],"jiāo xiáo":["姣"],"gòu dù":["姤"],"lǎo mǔ":["姥"],"nián niàn":["姩"],"zhěn":["姫","屒","弫","抮","昣","枕","畛","疹","眕","稹","縝","縥","缜","聄","萙","袗","裖","覙","診","诊","軫","轸","辴","駗","鬒"],"héng":["姮","恆","恒","烆","珩","胻","蘅","衡","鑅","鴴","鵆","鸻"],"jūn xún":["姰"],"kuā hù":["姱"],"è yà":["姶"],"xiān shēn":["姺"],"wá":["娃"],"ráo rǎo":["娆","嬈"],"shào shāo":["娋"],"xiē":["娎","揳","楔","歇","蝎","蠍"],"wǔ méi mǔ":["娒"],"chuò lài":["娕"],"niáng":["娘","嬢","孃"],"nà nuó":["娜","𦰡"],"pōu bǐ":["娝"],"něi suī":["娞"],"tuì":["娧","煺","蛻","蜕","退","駾"],"mǎn":["娨","屘","満","满","滿","螨","蟎","襔","鏋"],"wú wù yú":["娪"],"xī āi":["娭"],"zhuì shuì":["娷"],"dōng dòng":["娻"],"ǎi ái è":["娾"],"ē ě":["娿"],"mián":["婂","嬵","宀","杣","棉","檰","櫋","眠","矈","矊","矏","綿","緜","绵","芇","蝒"],"pǒu péi bù":["婄"],"biǎo":["婊","脿","表","裱","褾","諘","錶"],"fù fàn":["婏"],"wǒ":["婐","婑","我"],"ní nǐ":["婗","棿"],"quán juàn":["婘","惓"],"hūn":["婚","昏","昬","棔","涽","睧","睯","碈","荤","葷","蔒","轋","閽","阍"],"qiān jǐn":["婜"],"wān wà":["婠"],"lái lài":["婡","徕","徠"],"zhōu chōu":["婤"],"chuò nào":["婥"],"nüè àn":["婩"],"hùn kūn":["婫"],"dàng yáng":["婸"],"nàn":["婻"],"ruò chuò":["婼"],"jiǎ":["婽","岬","斚","斝","榎","槚","檟","玾","甲","胛","鉀","钾"],"tōu yú":["婾","媮"],"yù yú":["媀"],"wéi wěi":["媁"],"dì tí":["媂","珶","苐"],"róu":["媃","揉","柔","渘","煣","瑈","瓇","禸","粈","糅","脜","腬","葇","蝚","蹂","輮","鍒","鞣","騥","鰇","鶔","𫐓"],"ruǎn nèn":["媆"],"miáo":["媌","嫹","描","瞄","苗","鶓","鹋"],"yí pèi":["媐"],"mián miǎn":["媔"],"tí shì":["媞","惿"],"duò tuó":["媠","沲"],"ǎo":["媪","媼","艹","芺","袄","襖","镺"],"chú zòu":["媰"],"yìng":["媵","映","暎","硬","膡","鱦"],"qín shēn":["嫀"],"jià":["嫁","幏","架","榢","稼","駕","驾"],"sǎo":["嫂"],"zhēn zhěn":["嫃"],"jiē suǒ":["嫅"],"míng mǐng":["嫇"],"niǎo":["嫋","嬝","嬲","茑","蔦","袅","裊","褭","鸟"],"tāo":["嫍","幍","弢","慆","掏","搯","槄","涛","滔","濤","瑫","絛","縚","縧","绦","詜","謟","轁","鞱","韜","韬","飸","饕"],"biáo":["嫑"],"piáo piāo":["嫖","薸"],"xuán":["嫙","悬","懸","暶","檈","漩","玄","璇","璿","痃","蜁","𫠊"],"màn mān":["嫚"],"kāng":["嫝","嵻","康","慷","槺","漮","砊","穅","糠","躿","鏮","鱇","𡐓","𩾌"],"hān nǎn":["嫨"],"nèn":["嫩","嫰"],"zhē":["嫬","遮"],"mā má":["嫲"],"piè":["嫳"],"zhǎn":["嫸","展","搌","斩","斬","琖","盏","盞","輾","醆","颭","飐"],"xiān yǎn jìn":["嬐"],"liǎn":["嬚","敛","斂","琏","璉","羷","脸","臉","蔹","蘝","蘞","裣","襝","鄻"],"qióng huán xuān":["嬛"],"dǒng":["嬞","懂","箽","董","蕫","諌"],"cān":["嬠","湌","爘","飡","餐","驂","骖"],"tiǎo":["嬥","宨","晀","朓","窱","脁"],"bí":["嬶","荸","鼻"],"liǔ":["嬼","柳","栁","桞","桺","橮","熮","珋","綹","绺","罶","羀","鋶","锍"],"qiān xiān":["孅","欦"],"xié huī":["孈"],"huān quán":["孉"],"lí lì":["孋","麗"],"zhú chuò":["孎"],"kǒng":["孔","恐"],"mā zī":["孖"],"sūn xùn":["孙","孫"],"bèi bó":["孛","誖"],"yòu niū":["孧"],"zhuǎn":["孨","竱","轉"],"hái":["孩","骸"],"nāo":["孬"],"chán càn":["孱"],"bò":["孹","檗","蘗","譒"],"nái":["孻","腉"],"níng nìng":["宁","寍","寗","寜","寧","甯"],"zhái":["宅"],"tū jiā":["宊"],"sòng":["宋","訟","誦","讼","诵","送","鎹","頌","颂","餸"],"ròu":["宍","肉","譳"],"zhūn":["宒","窀","衠","諄","谆","迍"],"mì fú":["宓"],"dàng tàn":["宕"],"wǎn yuān":["宛"],"chǒng":["宠","寵"],"qún":["宭","峮","帬","羣","群","裙","裠"],"zǎi":["宰","崽"],"bǎo shí":["宲"],"jiā jia jie":["家"],"huāng huǎng":["宺"],"kuān":["宽","寛","寬","臗","鑧","髋","髖"],"sù xiǔ xiù":["宿"],"jié zǎn":["寁"],"bìng bǐng":["寎"],"jìn qǐn":["寖"],"lóu jù":["寠"],"xiě xiè":["寫"],"qīn qìn":["寴"],"cùn":["寸","籿"],"duì":["对","対","對","怼","憝","懟","濧","瀩","碓","祋","綐","薱","譈","譵","轛","队","陮"],"lüè luó":["寽"],"shè yè yì":["射"],"jiāng jiàng qiāng":["将"],"jiāng jiàng":["將","浆","漿","畺"],"zūn":["尊","嶟","樽","罇","遵","鐏","鱒","鳟","鶎","鷷","𨱔"],"shù zhù":["尌","澍"],"xiǎo":["小","晓","暁","曉","皛","皢","筱","筿","篠","謏","𫍲"],"jié jí":["尐","诘","鞊"],"shǎo shào":["少"],"ěr":["尒","尓","尔","栮","毦","洱","爾","珥","耳","薾","衈","趰","迩","邇","鉺","铒","餌","饵","駬"],"wāng yóu":["尢"],"wāng":["尣","尩","尪","尫","汪"],"liào":["尥","尦","廖","撂","料","炓","窷","鐐","镣","𪤗"],"méng máng lóng páng":["尨"],"gà":["尬","魀"],"kuì kuǐ":["尯"],"tuí":["尵","弚","穨","蘈","蹪","隤","頹","頺","頽","颓","魋","𬯎"],"yǐn":["尹","嶾","引","朄","檃","檼","櫽","淾","濥","瘾","癮","粌","蘟","蚓","螾","讔","赺","趛","輑","鈏","靷"],"chǐ chě":["尺"],"kāo":["尻","髛"],"jìn jǐn":["尽"],"wěi yǐ":["尾"],"niào suī":["尿"],"céng":["层","層","嶒","驓"],"diǎo":["屌"],"píng bǐng bīng":["屏"],"lòu":["屚","漏","瘘","瘺","瘻","鏤","镂","陋"],"shǔ zhǔ":["属","屬"],"xiè tì":["屟"],"chè cǎo":["屮"],"tún zhūn":["屯"],"nì jǐ":["屰"],"hóng lóng":["屸"],"qǐ kǎi":["岂","豈"],"áng":["岇","昂","昻"],"gǎng gāng":["岗","崗"],"kě":["岢","敤","渇","渴","炣"],"gǒu":["岣","狗","玽","笱","耇","耈","耉","苟","豿"],"tiáo":["岧","岹","樤","祒","笤","芀","萔","蓚","蓨","蜩","迢","鋚","鎥","鞗","髫","鯈","鰷","鲦","齠","龆"],"qū jū":["岨"],"lǐng":["岭","嶺","領","领"],"pò":["岶","敀","洦","湐","烞","珀","破","砶","粕","蒪","魄"],"bā kè":["峇"],"luò":["峈","摞","洛","洜","犖","珞","笿","纙","荦","詻","雒","駱","骆","鵅"],"fù niè":["峊"],"ěn":["峎"],"zhì shì":["峙","崻"],"qiǎ":["峠","跒","酠","鞐"],"qiáo jiào":["峤","癄"],"xié yé":["峫"],"bū":["峬","庯","晡","誧","逋","鈽","錻","钸","餔","鵏"],"chóng":["崇","崈","爞","虫","蝩","蟲","褈","隀"],"zú cuì":["崒","椊"],"líng léng":["崚"],"dòng dōng":["崠"],"xiáo":["崤","洨","淆","訤","誵"],"pí bǐ":["崥","芘"],"zhǎn chán":["崭","嶃","嶄"],"wǎi wēi":["崴"],"yáng dàng":["崵"],"shì dié":["崼"],"yào":["崾","曜","熎","燿","矅","穾","窔","筄","耀","艞","药","葯","薬","藥","袎","覞","詏","讑","靿","鷂","鹞","鼼"],"kān zhàn":["嵁"],"hán dǎng":["嵅"],"qiàn kàn":["嵌"],"wù máo":["嵍"],"kě jié":["嵑","嶱"],"wēi wěi":["嵔"],"kē":["嵙","柯","棵","榼","樖","牁","牱","犐","珂","疴","瞌","磕","礚","科","稞","窠","萪","薖","蚵","蝌","趷","轲","醘","鈳","钶","頦","顆","颗","髁"],"dàng táng":["嵣"],"róng yíng":["嵤","爃"],"ái kǎi":["嵦"],"kāo qiāo":["嵪"],"cuó":["嵯","嵳","痤","矬","蒫","蔖","虘","鹺","鹾"],"qiǎn qīn":["嵰"],"dì dié":["嵽"],"cēn":["嵾"],"dǐng":["嵿","艼","薡","鐤","頂","顶","鼎","鼑"],"áo ào":["嶅"],"pǐ pèi":["嶏"],"jiào qiáo":["嶠","潐"],"jué guì":["嶡","鳜"],"zhān shàn":["嶦","鳣"],"xiè jiè":["嶰"],"guī xī juàn":["嶲"],"rū":["嶿"],"lì liè":["巁","棙","爄","綟"],"xī guī juàn":["巂"],"yíng hōng":["巆"],"yǐng":["巊","廮","影","摬","梬","潁","瘿","癭","矨","穎","郢","鐛","頴","颍","颕","颖"],"chǎo":["巐","炒","煼","眧","麨"],"cuán":["巑","櫕","欑"],"chuān":["巛","川","氚","瑏","穿"],"jīng xíng":["巠"],"cháo":["巢","巣","晁","漅","潮","牊","窲","罺","謿","轈","鄛","鼌"],"qiǎo":["巧","愀","髜"],"gǒng":["巩","廾","拱","拲","栱","汞","珙","輁","鞏"],"chà chā chāi cī":["差"],"xiàng hàng":["巷"],"shuài":["帅","帥","蟀"],"pà":["帊","帕","怕","袙"],"tǎng nú":["帑"],"mò wà":["帓"],"tiē tiě tiè":["帖"],"zhǒu":["帚","晭","疛","睭","箒","肘","菷","鯞"],"juǎn juàn":["帣"],"shuì":["帨","涗","涚","睡","稅","税","裞"],"chóu dào":["帱","幬"],"jiǎn jiān sàn":["帴"],"shà qiè":["帹"],"qí jì":["帺","荠"],"shān qiāo shēn":["幓"],"zhuàng chuáng":["幢"],"chān chàn":["幨"],"miè":["幭","懱","搣","滅","灭","烕","礣","篾","蔑","薎","蠛","衊","鑖","鱴","鴓"],"gān gàn":["干"],"bìng bīng":["并","幷"],"jī jǐ":["幾"],"guǎng ān":["广"],"guǎng":["広","廣","犷","獷"],me:["庅"],"dùn tún":["庉"],"bài tīng":["庍"],"yìng yīng":["应"],"dǐ de":["底"],"dù duó":["度"],"máng méng páng":["庬"],"bìng píng":["庰"],"chěng":["庱","悜","睈","逞","騁","骋"],"jī cuò":["庴"],"qǐng":["庼","廎","檾","漀","苘","請","謦","请","頃","顷"],"guī wěi huì":["廆"],"jǐn qín":["廑"],"kuò":["廓","扩","拡","擴","濶","筈","萿","葀","蛞","闊","阔","霩","鞟","鞹","韕","頢","鬠"],"qiáng sè":["廧","薔"],"yǐn yìn":["廴","隐","隠","隱","飮","飲","饮"],"pò pǎi":["廹","迫"],"nòng lòng":["弄"],"dì tì tuí":["弟"],"jué zhāng":["弡"],"mí mǐ":["弥","彌","靡"],"chāo":["弨","怊","抄","欩","訬","超","鈔","钞"],yi:["弬"],"shāo":["弰","旓","烧","焼","燒","筲","艄","萷","蕱","輎","髾","鮹"],"xuān yuān":["弲"],"qiáng qiǎng jiàng":["強","强"],"tán dàn":["弹","醈"],"biè":["彆"],"qiáng jiàng qiǎng":["彊"],"jì xuě":["彐"],"tuàn":["彖","褖"],"yuē":["彟","曰","曱","矱"],"shān xiǎn":["彡"],"wén":["彣","文","炆","珳","瘒","繧","聞","芠","蚉","蚊","螡","蟁","閺","閿","闅","闦","闻","阌","雯","馼","駇","魰","鳼","鴍","鼤","𫘜"],"péng bāng":["彭"],"piāo piào":["彯"],"zhuó bó":["彴"],"tuǒ yí":["彵"],"páng fǎng":["彷"],"wǎng":["彺","往","徃","惘","枉","棢","網","网","罒","罓","罔","罖","菵","蛧","蝄","誷","輞","辋","魍"],"cú":["徂","殂"],"dài dāi":["待"],"huái":["徊","怀","懐","懷","槐","淮","耲","蘹","褢","褱","踝"],"wā wàng jiā":["徍"],"chěng zhèng":["徎"],"dé děi de":["得"],"cóng zòng":["從"],"shì tǐ":["徥"],"tí chí":["徲","鶗","鶙"],"dé":["徳","德","恴","悳","惪","淂","鍀","锝"],"zhǐ zhēng":["徴","徵"],"bié":["徶","癿","莂","蛂","襒","蹩"],"chōng zhǒng":["徸"],"jiǎo jiào":["徼","笅","筊"],"lòng lǒng":["徿"],"qú jù":["忂","渠","瞿","螶"],"dìng tìng":["忊"],"gǎi":["忋","改"],"rěn":["忍","栠","栣","秹","稔","綛","荏","荵","躵"],"chàn":["忏","懴","懺","硟","羼","韂","顫"],"tè":["忑","慝","特","蟘","鋱","铽"],"tè tēi tuī":["忒"],"gān hàn":["忓","攼"],"yì qì":["忔"],"tài shì":["忕"],"xī liě":["忚"],"yīng yìng":["応","應","譍"],"mǐn wěn mín":["忞","忟"],"sōng zhōng":["忪"],"yù shū":["忬","悆"],"qí shì":["忯","耆"],"tún zhūn dùn":["忳"],"qián qín":["忴","扲"],"hún":["忶","浑","渾","餛","馄","魂","鼲"],"niǔ":["忸","扭","炄","狃","紐","纽","莥","鈕","钮","靵"],"kuáng wǎng":["忹"],"kāng hàng":["忼"],"kài xì":["忾","愾"],"òu":["怄","慪"],"bǎo bào":["怉"],"mín mén":["怋"],"zuò zhà":["怍"],"zěn":["怎"],"yàng":["怏","恙","样","様","樣","漾","羕","詇"],"kòu jù":["怐"],"náo niú":["怓"],"zhēng zhèng":["怔","掙","钲","铮"],"tiē zhān":["怗"],"hù gù":["怘"],"cū jù zū":["怚"],"sī sāi":["思"],"yóu chóu":["怞"],"tū dié":["怢"],"yōu yào":["怮"],"xuàn":["怰","昡","楦","泫","渲","炫","琄","眩","碹","絢","縼","繏","绚","蔙","衒","袨","贙","鉉","鏇","铉","镟","颴"],"xù xuè":["怴"],"bì pī":["怶"],"xī shù":["怸"],"nèn nín":["恁"],"tiāo yáo":["恌"],"xī qī xù":["恓"],"xiào jiǎo":["恔"],"hū kuā":["恗"],"nǜ":["恧","朒","衂","衄"],"hèn":["恨"],"dòng tōng":["恫"],"quán zhuān":["恮"],"è wù ě wū":["恶","惡"],"tòng":["恸","慟","憅","痛","衕"],"yuān juàn":["悁"],"qiāo qiǎo":["悄"],"jiè kè":["悈"],"hào jiào":["悎"],"huǐ":["悔","檓","毀","毁","毇","燬","譭"],"mán mèn":["悗","鞔"],"yī yì":["悘","衣"],"quān":["悛","箞","鐉","𨟠"],"kuī lǐ":["悝"],"yì niàn":["悥"],"mèn mēn":["悶"],"guàn":["悹","悺","惯","慣","掼","摜","樌","欟","泴","涫","潅","灌","爟","瓘","盥","礶","祼","罆","罐","貫","贯","躀","遦","鏆","鑵","鱹","鸛","鹳"],"kōng kǒng":["悾"],"lǔn lùn":["惀"],"guǒ":["惈","果","椁","槨","粿","綶","菓","蜾","裹","褁","輠","餜","馃"],"yuān wǎn":["惌","箢"],"lán lín":["惏"],"yù xù":["惐","淢"],"chuò chuì":["惙"],"hūn mèn":["惛"],"chǎng tǎng":["惝"],"suǒ ruǐ":["惢"],"cǎn":["惨","慘","憯","黪","黲","䅟"],"cán":["惭","慙","慚","残","殘","蚕","蝅","蠶","蠺"],"dàn dá":["惮","憚"],"rě":["惹"],"yú tōu":["愉"],"kài qì":["愒"],"dàng táng shāng yáng":["愓"],"chén xìn dān":["愖"],"kè qià":["愘"],"nuò":["愞","懦","懧","掿","搦","榒","稬","穤","糑","糥","糯","諾","诺","蹃","逽","鍩","锘"],"gǎn":["感","擀","敢","桿","橄","澉","澸","皯","秆","稈","笴","芉","衦","赶","趕","鱤","鳡"],"còng sōng":["愡"],"sāi sī sǐ":["愢"],"gōng gòng hǒng":["愩","慐"],"shuò sù":["愬","洬"],"yáo yào":["愮"],"huàng":["愰","曂","榥","滉","皝","皩","鎤","㿠"],"zhěng":["愸","抍","拯","整","晸"],"cǎo":["愺","艸","草","騲"],"xì xié":["慀"],"cǎo sāo":["慅"],"xù chù":["慉"],"qiè qiàn":["慊"],"cáo cóng":["慒"],"ào áo":["慠"],"lián liǎn":["慩","梿","槤","櫣"],"jìn qín jǐn":["慬"],"dì chì":["慸"],"zhí zhé":["慹"],"lóu lǚ":["慺","鷜"],"còng":["憁","謥"],"zhī zhì":["憄","知","織","织"],"chēng":["憆","摚","撐","撑","晿","柽","棦","橕","檉","泟","浾","琤","瞠","碀","緽","罉","蛏","蟶","赪","赬","鏿","鐣","阷","靗","頳","饓"],"biē":["憋","虌","鱉","鳖","鼈","龞"],"chéng dèng zhèng":["憕"],"xǐ xī":["憘"],"duì dùn tūn":["憞"],"xiāo jiāo":["憢"],"xián xiàn":["憪"],"liáo liǎo":["憭","燎","爎","爒"],"shéng":["憴","縄","繉","繩","绳","譝"],"náo nǎo náng":["憹"],"jǐng jìng":["憼"],"jǐ jiǎo":["憿"],"xuān huān":["懁"],"cǎo sāo sào":["懆"],"mèn":["懑","懣","暪","焖","燜"],"mèng méng měng":["懜"],"ài yì nǐ":["懝"],"méng měng":["懞","瞢","矒"],"qí jī jì":["懠"],"mǒ":["懡"],"lán xiàn":["懢"],"yōu yǒu":["懮"],"liú liǔ":["懰","藰"],"ràng":["懹","譲","讓","让"],"huān":["懽","欢","歓","歡","獾","讙","貛","酄","驩","鴅","鵍"],"nǎn":["戁","揇","湳","煵","腩","蝻","赧"],"mí mó":["戂"],"gàng zhuàng":["戅","戆"],"zhuàng gàng":["戇"],"xū qu":["戌"],"xì hū":["戏","戯","戲"],"jiá gā":["戛"],"zéi":["戝","蠈","賊","贼","鰂","鱡","鲗"],"děng":["戥","等"],"hū xì":["戱"],"chuō":["戳","踔","逴"],"biǎn piān":["扁"],"shǎng jiōng":["扄"],"shàn shān":["扇"],"cái":["才","材","纔","裁","財","财"],"zhā zā zhá":["扎"],"lè lì cái":["扐"],"bā pá":["扒"],"dǎ dá":["打"],"rēng":["扔"],"fǎn fú":["払"],"diǎo dí yuē lì":["扚"],"káng gāng":["扛"],"yū wū":["扜"],"yū wū kū":["扝"],"tuō chǐ yǐ":["扡"],"gǔ jié xì gē":["扢"],"dèn":["扥","扽"],"sǎo sào":["扫","掃"],"rǎo":["扰","擾","隢"],"xī chā qì":["扱"],"bān pān":["扳"],"bā ào":["扷"],"xī zhé":["扸"],"zhì sǔn kǎn":["扻"],"zhǎo":["找","沼","瑵"],"kuáng wǎng zài":["抂"],"hú gǔ":["抇","鹄","鹘"],"bǎ bà":["把"],"dǎn shěn":["抌"],"nè nì ruì nà":["抐"],"zhuā":["抓","檛","簻","膼","髽"],"póu":["抔","裒"],"zhé shé zhē":["折"],"póu pōu fū":["抙","捊"],"pāo":["抛","拋","脬","萢"],"ǎo ào niù":["抝"],"lūn lún":["抡","掄"],"qiǎng qiāng chēng":["抢"],"zhǐ zhǎi":["抧"],"bù pū":["抪","柨"],"yǎo tāo":["抭"],"hē hè qiā":["抲"],"nǐ ní":["抳"],"pī pēi":["抷"],"mǒ mò mā":["抹"],"chōu":["抽","犨","犫","瘳","篘"],"jiā yá":["拁"],"fú bì":["拂","畐","鶝"],"zhǎ":["拃","眨","砟","鮺","鲝"],"dān dàn dǎn":["担"],"chāi cā":["拆"],"niān":["拈","蔫"],"lā lá lǎ là":["拉"],"bàn pàn":["拌"],"pāi":["拍"],"līn":["拎"],"guǎi":["拐","枴","柺"],"tuò tà zhí":["拓"],"ào ǎo niù":["拗"],"jū gōu":["拘"],"pīn pàn fān":["拚"],"bài bái":["拜"],"bài":["拝","敗","稗","粺","薭","贁","败","韛"],"qiá":["拤"],"nǐng níng nìng":["拧"],"zé zhái":["择","擇"],"hén":["拫","痕","鞎"],"kuò guā":["括"],"jié jiá":["拮"],"nǐn":["拰"],"shuān":["拴","栓","閂","闩"],"cún zùn":["拵"],"zā zǎn":["拶","桚"],"kǎo":["拷","攷","栲","烤","考"],"yí chǐ hài":["拸"],"cè sè chuò":["拺"],"zhuài zhuāi yè":["拽"],"shí shè":["拾"],"bāi":["挀","掰"],"kuò guāng":["挄"],"nòng":["挊","挵","齈"],"jiào jiāo":["挍","敎","教"],"kuà kū":["挎"],"ná rú":["挐"],"tiāo tiǎo":["挑"],"dié shè":["挕"],"liě":["挘","毟"],"yà yǎ":["挜","掗"],"wō zhuā":["挝"],"xié jiā":["挟","挾"],"dǎng dàng":["挡","擋"],"zhèng zhēng":["挣","正","症"],"āi ái":["挨"],"tuō shuì":["挩","捝"],"tǐ tì":["挮"],"suō shā":["挱"],"sā shā suō":["挲"],"kēng qiān":["挳","摼"],"bàng péng":["挷"],"ruó ruá":["挼"],"jiǎo kù":["捁"],"wǔ wú":["捂"],"tǒng":["捅","桶","筒","筩","統","綂","统","㛚"],"huò chì":["捇"],"tú shū chá":["捈"],"lǚ luō":["捋"],"shāo shào":["捎","稍"],"niē":["捏","揑"],"shù sǒng sōu":["捒"],"yé yú":["捓"],"jué zhuó":["捔"],"bù pú zhì":["捗"],"zùn":["捘","銌"],"lāo":["捞","撈","粩"],"sǔn":["损","損","榫","笋","筍","箰","鎨","隼"],"wàn wǎn wān yù":["捥"],"pěng":["捧","淎","皏"],"shě":["捨"],"fǔ fù bǔ":["捬"],"dáo":["捯"],"luò luǒ wǒ":["捰"],"juǎn quán":["捲"],"chēn tiǎn":["捵"],"niǎn niē":["捻"],"ruó wěi ré":["捼"],"zuó":["捽","昨","秨","稓","筰","莋","鈼"],"wò xiá":["捾"],"qìng qiàn":["掅"],"póu pǒu":["掊"],"qiā":["掐","葜"],"pái pǎi":["排"],"qiān wàn":["掔"],"yè yē":["掖"],"niè nǐ yì":["掜"],"huò xù":["掝"],"yàn shàn yǎn":["掞"],"zhěng dìng":["掟"],"kòng":["控","鞚"],"tuī":["推","蓷","藬"],"zōu zhōu chōu":["掫"],"tiàn":["掭","舚"],"kèn":["掯","裉","褃"],"pá":["掱","杷","潖","爬","琶","筢"],"guó guāi":["掴"],"dǎn shàn":["掸","撣"],"chān xiān càn shǎn":["掺"],"sāo":["掻","搔","溞","繅","缫","螦","騒","騷","鰠","鱢","鳋"],"pèng":["掽","椪","槰","碰","踫"],"zhēng kēng":["揁"],"jiū yóu":["揂"],"jiān jiǎn":["揃","籛"],"pì chè":["揊"],"sāi zǒng cāi":["揌"],"tí dī dǐ":["提"],"zǒng sōng":["揔"],"huáng yóng":["揘"],"zǎn zuàn":["揝"],"xū jū":["揟"],"ké qiā":["揢"],"chuāi chuǎi chuài tuán zhuī":["揣"],"dì tì":["揥"],"lá là":["揦"],"là":["揧","楋","溂","瓎","瘌","翋","臘","蝋","蝲","蠟","辢","辣","鑞","镴","鬎","鯻","𬶟"],"jiē qì":["揭"],"chòng dǒng":["揰"],"dié shé yè":["揲"],"jiàn qián jiǎn":["揵"],"yé":["揶","爷","爺","瑘","鋣","鎁","铘"],"chān":["搀","摻","攙","裧","襜","覘","觇","辿","鋓"],"gē gé":["搁","擱"],"lǒu lōu":["搂","摟"],"chōu zǒu":["搊"],"chuāi":["搋"],"sūn":["搎","槂","狲","猻","荪","蓀","蕵","薞","飧","飱"],"róng náng nǎng":["搑"],"péng bàng":["搒"],"cuō":["搓","瑳","磋","蹉","遳","醝"],"kē è":["搕"],"nù nuò nòu":["搙"],"lā xié xiàn":["搚"],"qiǔ":["搝","糗"],"xiǎn xiān":["搟"],"jié zhé":["搩"],"pán bān pó":["搫"],"bān":["搬","攽","斑","斒","班","瘢","癍","肦","螁","螌","褩","辬","頒","颁","𨭉"],"zhì nái":["搱"],"wā wǎ wà":["搲"],"huá":["搳","撶","滑","猾","蕐","螖","譁","鏵","铧","驊","骅","鷨"],"qiāng qiǎng chēng":["搶"],"tián shēn":["搷"],"ná nuò":["搻"],"èn":["摁"],"shè niè":["摄","攝"],"bìn":["摈","擯","殡","殯","膑","臏","髌","髕","髩","鬂","鬓","鬢"],"shā sà shǎi":["摋"],"chǎn sùn":["摌"],"jiū liú liáo jiǎo náo":["摎"],"féng pěng":["摓"],"shuāi":["摔"],"dì tú zhí":["摕"],"qì jì chá":["摖"],"sōu sǒng":["摗"],"liǎn liàn":["摙"],"gài xì":["摡"],"hù chū":["摢"],"tàng":["摥","烫","燙","鐋"],"nái zhì":["摨"],"mó mā":["摩"],"jiāng qiàng":["摪"],"áo qiáo":["摮"],"niè chè":["摰"],"mán màn":["摱"],"chàn cán":["摲"],"sè mí sù":["摵"],"biāo biào":["摽"],"juē jué":["撅"],"piē":["撆","暼","氕","瞥"],"piě piē":["撇"],"zǎn zān zēn qián":["撍"],"sā sǎ":["撒"],"hòng":["撔","訌","讧","闀","鬨"],"héng guàng":["撗"],"niǎn":["撚","撵","攆","涊","焾","碾","簐","蹍","蹨","躎","輦","辇"],"chéng zhěng":["撜"],"huī wéi":["撝"],"cāo":["撡","操","糙"],"xiāo sōu":["撨"],"liáo liāo":["撩"],"cuō zuǒ":["撮"],"wěi tuǒ":["撱"],"cuān":["撺","攛","汆","蹿","躥","鑹","镩"],"qiào yāo jī":["撽"],"zhuā wō":["撾"],"lèi léi":["擂"],"nǎng":["擃","攮","曩","灢"],"qíng jǐng":["擏"],"kuǎi":["擓","蒯","㧟"],"pǐ bò":["擗"],"bò bāi":["擘"],"jù jǐ":["據"],"mēng":["擝"],"sǒu sòu":["擞"],"xǐng":["擤","箵","醒"],"cā":["擦"],"níng nǐng nìng":["擰"],"zhì jié":["擳"],"là liè":["擸","爉"],"sòu sǒu":["擻"],"lì luò yuè":["擽"],"tī zhāi zhì":["擿"],"pān":["攀","潘","眅","萠"],"lèi":["攂","泪","涙","淚","禷","类","纇","蘱","酹","銇","錑","頛","頪","類","颣"],"cā sǎ":["攃"],"jùn pèi":["攈"],"lì luò":["攊","躒"],"là lài":["攋","櫴"],"lú luó":["攎"],"zǎn cuán":["攒"],"xiān jiān":["攕"],"mí mǐ mó":["攠"],"zǎn cuán zàn zuān":["攢"],"zuàn":["攥"],"lì shài":["攦"],"lì luǒ":["攭"],"guǐ guì":["攱"],"jī qī yǐ":["攲"],"fàng":["放"],"wù móu":["敄"],"chù shōu":["敊"],"gé guó è":["敋"],"duó duì":["敓","敚"],"duō què":["敠","敪"],"sàn sǎn":["散"],"dūn duì":["敦","镦"],"qī yǐ jī":["敧"],"xiào xué":["敩"],"shù shǔ shuò":["数","數"],"ái zhú":["敱","敳"],"xiòng xuàn":["敻"],"zhuó zhú":["斀"],"yì dù":["斁"],"lí tái":["斄"],"fěi fēi":["斐"],"yǔ zhōng":["斔"],"dòu dǒu":["斗"],"wò guǎn":["斡"],"tǒu tiǎo":["斢"],"dòu":["斣","梪","浢","痘","窦","竇","脰","荳","豆","逗","郖","酘","閗","闘","餖","饾","鬥","鬦","鬪","鬬","鬭"],"yín zhì":["斦"],"chǎn jiè":["斺"],"wū yū yú":["於"],"yóu liú":["斿"],"páng bàng":["旁"],"máo mào":["旄"],"pī bì":["旇"],"xuán xuàn":["旋"],"wú mó":["无"],"zǎo":["早","枣","栆","棗","澡","璪","薻","藻","蚤"],"gā":["旮"],"gàn hàn":["旰"],"tái yīng":["旲"],"xū xù":["旴"],"tūn zhùn":["旽"],"wù wǔ":["旿"],"pò pèi":["昢"],"zòng":["昮","猔","疭","瘲","粽","糉","糭","縦"],"ǎi":["昹","毐","矮","蔼","藹","譪","躷","霭","靄"],"huàng huǎng":["晃"],"xuǎn":["晅","癣","癬","选","選"],"xù kuā":["晇"],"hǒng":["晎"],"shài":["晒","曬"],"yūn yùn":["晕","煴"],"shèng chéng":["晟","椉","盛"],"jǐng yǐng":["景"],"shǎn":["晱","熌","睒","覢","閃","闪","陕","陝"],"qǐ dù":["晵"],"ǎn àn yǎn":["晻"],"wǎng wàng":["暀"],"zàn":["暂","暫","瓉","瓒","瓚","禶","襸","讃","讚","賛","贊","赞","蹔","鄼","錾","鏨","饡"],"yùn yūn":["暈"],"mín mǐn":["暋"],"dǔ shǔ":["暏"],"shǔ":["暑","曙","潻","癙","糬","署","薥","薯","藷","蜀","蠴","襡","襩","鱪","鱰","黍","鼠","鼡"],"jiǎn lán":["暕"],"nuǎn":["暖","煗","餪"],"bào pù":["暴"],"xī xǐ":["暿"],"pù bào":["曝","瀑"],"qū qǔ":["紶"],"qǔ qū":["曲"],"gèng gēng":["更"],"hū hù":["曶","雽"],"zēng céng":["曽","橧"],"céng zēng":["曾","竲"],"cǎn qián jiàn":["朁"],"qiè hé":["朅"],"bì pí":["朇","禆","笓","裨"],"yǒu yòu":["有"],"bān fén":["朌","鳻"],"fú fù":["服","洑"],"fěi kū":["朏","胐"],"qú xù chǔn":["朐"],"juān zuī":["朘"],"huāng máng wáng":["朚"],"qī jī":["期"],"tóng chuáng":["朣","橦"],"zhá":["札","牐","箚","蚻","譗","鍘","铡","閘","闸"],"zhú shù shú":["朮"],"shù shú zhú":["术"],"zhū shú":["朱"],"pǔ pò pō piáo":["朴"],"dāo tiáo mù":["朷"],"guǐ qiú":["朹"],"xiǔ":["朽","滫","潃","糔"],"chéng chēng":["朾"],"zá":["杂","沯","砸","襍","雑","雜","雥","韴"],"yú wū":["杅"],"gān gǎn":["杆"],"chā chà":["杈"],"shān shā":["杉"],"cūn":["村","皴","竴","膥","踆","邨"],"rèn ér":["杒","梕"],"sháo biāo":["杓"],"dì duò":["杕","枤"],"gū gài":["杚"],"yí zhì lí duò":["杝"],"gàng gāng":["杠"],"tiáo tiāo":["条","條"],"mà mǎ":["杩"],"sì zhǐ xǐ":["杫"],"yuán wán":["杬","蚖"],"bèi fèi":["杮"],"shū duì":["杸"],"niǔ chǒu":["杻"],"wò yuè":["枂","臒"],"máo":["枆","毛","氂","渵","牦","矛","罞","茅","茆","蝥","蟊","軞","酕","鉾","錨","锚","髦","鶜"],"pī mì":["枈"],"àng":["枊","盎","醠"],"fāng bìng":["枋"],"hù dǐ":["枑"],"xín":["枔","襑","鐔","鬵"],"yāo yǎo":["枖"],"ě è":["枙"],"zhī qí":["枝"],"cōng zōng":["枞","樅"],"xiān zhēn":["枮"],"tái sì":["枱"],"gǒu jǔ gōu":["枸"],"bāo fú":["枹"],"yì xiè":["枻","栧"],"tuó duò":["柁","馱","駄","驮"],"yí duò lí":["柂"],"nǐ chì":["柅"],"pán bàn":["柈","跘"],"yǎng yàng yāng yīng":["柍"],"fù fū fǔ":["柎"],"bǎi bó bò":["柏"],"mǒu":["某"],"sháo shào":["柖"],"zhè":["柘","樜","浙","淛","蔗","蟅","這","鷓","鹧","䗪"],"yòu yóu":["柚","櫾"],"guì jǔ":["柜"],"zhà zuò":["柞"],"dié zhì":["柣","眰"],"zhā zǔ zū":["柤"],"chá zhā":["查","査"],"āo ào":["柪","軪"],"bā fú pèi bó biē":["柭"],"duò zuó wù":["柮"],"bì bié":["柲"],"zhù chù":["柷"],"bēi pēi":["柸"],"shì fèi":["柹"],"shān zhà shi cè":["栅"],"lì yuè":["栎","櫟"],"qì qiè":["栔","砌"],"qī xī":["栖","蹊"],"guā kuò":["栝"],"bīng bēn":["栟"],"xiào jiào":["校"],"jiàn zùn":["栫","袸"],"yǒu yù":["栯"],"hé hú":["核"],"gēn":["根","跟"],"zhī yì":["栺"],"gé gē":["格"],"héng háng":["桁"],"guàng guāng":["桄"],"yí tí":["桋","荑"],"sāng":["桑","桒","槡"],"jú jié":["桔"],"yú móu":["桙"],"ráo náo":["桡","橈"],"guì huì":["桧","檜"],"chén zhèn":["桭"],"tīng yíng":["桯"],"bó po":["桲"],"bèn fàn":["桳"],"fēng fèng":["桻","葑"],"sù yìn":["梀"],"tǐng tìng":["梃"],"xuān juān xié":["梋"],"tú chá":["梌"],"āo yòu":["梎"],"kuǎn":["梡","欵","款","歀"],"shāo sào":["梢"],"qín chén cén":["梣"],"lí sì qǐ":["梩"],"chān yán":["梴"],"bīn bīng":["梹","槟","檳"],"táo chóu dào":["梼"],"cōng sōng":["棇"],"gùn hùn":["棍"],"dé zhé":["棏"],"pái bèi pèi":["棑"],"bàng pǒu bèi bēi":["棓"],"dì dài tì":["棣"],"sēn":["森","椮","槮","襂"],"rěn shěn":["棯"],"léng lēng líng":["棱"],"fú sù":["棴"],"zōu sǒu":["棷"],"zōu":["棸","箃","緅","諏","诹","邹","郰","鄒","鄹","陬","騶","驺","鯫","鲰","黀","齱","齺"],"zhào zhuō":["棹"],"chēn shēn":["棽"],"jiē qiè":["椄"],"yǐ yī":["椅"],"chóu zhòu diāo":["椆"],"qiāng kōng":["椌"],"zhuī chuí":["椎"],"bēi pí":["椑"],"mēn":["椚"],"quān juàn quán":["椦"],"duǒ chuán":["椯"],"wěi huī":["椲"],"jiǎ jiā":["椵"],"hán jiān":["椷"],"shèn zhēn":["椹"],"yàn yà":["椻"],"zhā chá":["楂"],"guō kuǎ":["楇"],"jí zhì":["楖"],"kǔ hù":["楛"],"yóu yǒu":["楢"],"sǒng cōng":["楤"],"yuán xuàn":["楥"],"yǎng yàng yīng":["楧"],"pián":["楩","胼","腁","賆","蹁","駢","騈","骈","骿","㛹"],"dié yè":["楪"],"dùn shǔn":["楯"],"còu zòu":["楱"],"dì dǐ shì":["楴"],"kǎi jiē":["楷"],"róu ròu":["楺"],"lè yuè":["楽"],"wēn yùn":["榅","鞰"],"lǘ":["榈","櫚","氀","膢","藘","閭","闾","驢","驴"],"shén":["榊","神","鉮","鰰","𬬹"],"bī pi":["榌"],"zhǎn niǎn zhèn":["榐"],"fú fù bó":["榑"],"jiàn jìn":["榗"],"bǎng bàng":["榜"],"shā xiè":["榝","樧"],"nòu":["槈","耨","鎒","鐞"],"qiǎn lián xiàn":["槏"],"gàng":["槓","焵","焹","筻","鿍"],"gāo":["槔","槹","橰","櫜","睾","篙","糕","羔","臯","韟","餻","高","髙","鷎","鷱","鼛"],"diān zhěn zhēn":["槙"],"kǎn jiàn":["槛"],"xí dié":["槢"],"jī guī":["槣"],"róng yōng":["槦"],"tuán shuàn quán":["槫"],"qì sè":["槭"],"cuī zhǐ":["槯"],"yǒu chǎo":["槱"],"màn wàn":["槾"],"lí chī":["樆"],"léi lěi":["樏","櫑","礌"],"cháo jiǎo chāo":["樔"],"chēng táng":["樘"],"jiū liáo":["樛"],"mó mú":["模"],"niǎo mù":["樢"],"héng hèng":["横","橫"],"xuě":["樰","膤","艝","轌","雪","鱈","鳕"],"fá fèi":["橃"],"rùn":["橍","润","潤","膶","閏","閠","闰"],"zhǎn jiǎn":["橏"],"shùn":["橓","瞚","瞬","舜","蕣","順","顺","鬊"],"tuí dūn":["橔"],"táng chēng":["橖"],"sù qiū":["橚"],"tán diàn":["橝"],"fén fèn fèi":["橨"],"rǎn yān":["橪"],"cū chu":["橻"],"shū qiāo":["橾"],"píng bò":["檘"],"zhái shì tú":["檡"],"biǎo biāo":["檦"],"qiān lián":["檶"],"nǐ mí":["檷"],"jiàn kǎn":["檻"],"nòu ruǎn rú":["檽"],"jī jì":["櫅","禨"],"huǎng guǒ gǔ":["櫎"],"lǜ chū":["櫖"],"miè mèi":["櫗"],"ōu":["櫙","欧","歐","殴","毆","瓯","甌","膒","藲","謳","讴","鏂","鴎","鷗","鸥"],"zhù zhuó":["櫡"],"jué jì":["櫭"],"huái guī":["櫰"],"chán zhàn":["欃"],"wéi zuì":["欈"],"cáng":["欌","鑶"],"yù yì":["欥"],"chù qù xì":["欪"],"kài ài":["欬"],"yì yīn":["欭"],"xì kài":["欯"],"shuò sòu":["欶"],"ǎi ēi éi ěi èi ê̄ ế ê̌ ề":["欸"],"qī yī":["欹"],"chuā xū":["欻"],"chǐ chuài":["欼"],"kǎn qiàn":["欿"],"kǎn kè":["歁"],"chuǎn chuán":["歂"],"yīn yān":["歅"],"jìn qūn":["歏"],"pēn":["歕"],"xū chuā":["歘"],"xī shè":["歙"],"liǎn hān":["歛"],"zhì chí":["歭"],"sè shà":["歰"],"sǐ":["死"],"wěn mò":["歾"],"piǎo":["殍","皫","瞟","醥","顠"],"qíng jìng":["殑"],"fǒu bó":["殕"],"zhí shi":["殖"],"yè yān yàn":["殗"],"hūn mèi":["殙"],"chòu":["殠","臰","遚"],"kuì huì":["殨","溃","潰"],"cuàn":["殩","熶","爨","窜","竄","篡","簒"],"yīn yān yǐn":["殷"],"qìng kēng shēng":["殸"],"yáo xiáo xiào":["殽"],"gū gǔ":["毂","蛄"],"guàn wān":["毌"],"dú dài":["毒"],"xún xùn":["毥"],"mú":["毪","氁"],"dòu nuò":["毭"],"sāi suī":["毸"],lu:["氇"],"sào":["氉","瘙","矂","髞"],"shì zhī":["氏"],"dī dǐ":["氐"],"máng méng":["氓"],"yáng rì":["氜"],"shuǐ":["水","氵","氺","閖"],"zhěng chéng zhèng":["氶"],"tǔn":["氽"],"fán fàn":["氾"],"guǐ jiǔ":["氿"],"bīn pà pā":["汃"],"zhuó què":["汋"],"dà tài":["汏"],"pìn":["汖","牝","聘"],"hàn hán":["汗","馯"],tu:["汢"],"tāng shāng":["汤","湯"],"zhī jì":["汥"],"gàn hán cén":["汵"],"wèn mén":["汶"],"fāng pāng":["汸"],"hǔ huǎng":["汻"],"niú yóu":["汼"],"hàng":["沆"],"shěn chén":["沈"],"dùn zhuàn":["沌"],"nǜ niǔ":["沑"],"méi mò":["沒","没"],"tà dá":["沓"],"mì wù":["沕"],"hóng pāng":["沗"],"shā shà":["沙"],"zhuǐ zǐ":["沝"],"ōu òu":["沤","漚"],"jǔ jù":["沮"],"tuō duó":["沰"],"mǐ lì":["沵"],"yí chí":["沶"],"xiè yì":["泄"],"bó pō":["泊"],"mì bì":["泌","秘"],"chù shè":["泏"],"yōu yòu āo":["泑"],"pēng píng":["泙","硑"],"pào pāo":["泡"],"ní nì":["泥","秜"],"yuè sà":["泧"],"jué xuè":["泬","疦"],"lóng shuāng":["泷","瀧"],"luò pō":["泺","濼"],"zé shì":["泽","澤"],"sǎ xǐ":["洒"],"sè qì zì":["洓"],"xǐ xiǎn":["洗"],"kǎo kào":["洘"],"àn yàn è":["洝"],"lěi lèi":["洡"],"qiè jié":["洯"],"qiǎn jiān":["浅"],"jì jǐ":["济","済","濟","纪"],"hǔ xǔ":["浒","滸"],"jùn xùn":["浚","濬"],"yǐng chéng yíng":["浧"],"liàn lì":["浰"],"féng hóng":["浲","溄"],"jiǒng jiōng":["浻"],"suī něi":["浽"],"yǒng chōng":["涌"],"tūn yūn":["涒"],"wō guō":["涡","渦"],"hēng":["涥","脝"],"zhǎng zhàng":["涨","漲"],"shòu tāo":["涭"],"shuàn":["涮","腨"],"kōng náng":["涳"],"wò wǎn yuān":["涴"],"tuō tuò":["涶"],"wō":["涹","猧","窝","窩","莴","萵","蜗","蝸","踒"],"qiè jí":["淁"],"guǒ guàn":["淉"],"lín lìn":["淋","獜","疄"],"tǎng chǎng":["淌"],"nào chuò zhuō":["淖"],"péng píng":["淜"],"féi":["淝","肥","腓","蜰"],"pì pèi":["淠"],"niǎn shěn":["淰"],"biāo hǔ":["淲"],"chún zhūn":["淳"],"hùn hún":["混"],"qiǎn":["淺","繾","缱","肷","膁","蜸","譴","谴","遣","鑓"],"wèn mín":["渂"],"rè ruò luò":["渃"],"dú dòu":["渎","瀆","读"],"jiàn jiān":["渐","溅","漸","濺"],"miǎn shéng":["渑","澠"],"nuǎn nuán":["渜"],"qiú wù":["渞"],"tíng tīng":["渟"],"dì tí dī":["渧"],"gǎng jiǎng":["港"],"hōng qìng":["渹"],"tuān":["湍","煓"],"huì mǐn xū":["湏"],"xǔ xù":["湑"],"pén":["湓","瓫","盆","葐"],"mǐn hūn":["湣"],"tuàn nuǎn":["湪"],"qiū jiǎo":["湫","湬"],"yān yīn":["湮"],"bàn pán":["湴"],"zhuāng hún":["湷"],"yàn guì":["溎"],"lián liǎn nián xián xiàn":["溓"],"dá tǎ":["溚","鿎"],"liū liù":["溜","澑","蹓"],"lùn":["溣"],"mǎ":["溤","犸","獁","玛","瑪","码","碼","遤","鎷","馬","马","鰢","鷌"],"zhēn qín":["溱"],"nì niào":["溺"],"chù xù":["滀","畜"],"wěng wēng":["滃"],"hào xuè":["滈"],"qì xì xiē":["滊"],"xíng yíng":["滎"],"zé hào":["滜"],"piāo piào piǎo":["漂"],"cóng sǒng":["漎"],"féng péng":["漨"],"luò tà":["漯"],"pēng bēn":["漰"],"chóng shuāng":["漴"],"huǒ kuò huò":["漷"],"liáo liú":["漻"],"cuǐ cuī":["漼"],"cóng zǒng":["潀"],"cóng zōng":["潈"],"pì piē":["潎"],"dàng xiàng":["潒"],"huáng guāng":["潢"],"liáo lào lǎo":["潦"],"cōng zòng":["潨"],"zhí zhì":["潪"],"tān shàn":["潬"],"tú zhā":["潳"],"sàn sǎ":["潵"],"hēi":["潶","黑","黒","𬭶"],"chéng dèng":["澄","瀓"],"cūn cún":["澊"],"péng pēng":["澎"],"hòng gǒng":["澒","銾"],"wàn màn":["澫"],"kuài huì":["澮"],"guō wō":["濄"],"pēn fén":["濆"],"jí shà":["濈"],"huì huò":["濊"],"dǐng tìng":["濎"],"mǐ nǐ":["濔"],"bì pì":["濞"],"cuì zuǐ":["濢"],"hù huò":["濩"],"ǎi kài kè":["濭"],"wěi duì":["濻","瀢"],"zàn cuán":["濽","灒"],"yǎng yàng":["瀁"],"wǎng wāng":["瀇"],"mò miè":["瀎","眜"],"suǐ":["瀡","膸","髓"],"huái wāi":["瀤"],"zùn jiàn":["瀳"],"yīng yǐng yìng":["瀴"],"ráng ràng":["瀼"],"shuàng":["灀"],"zhuó jiào zé":["灂"],"sǎ":["灑","訯","靸"],"luán luàn":["灓"],"dǎng tǎng":["灙"],"xún quán quàn":["灥"],"huǒ biāo":["灬"],"zhà yù":["灹"],"fén bèn":["炃"],"jiǒng guì":["炅"],"pàng fēng":["炐"],"quē":["炔","缺","缼","蒛"],"biān":["炞","煸","甂","砭","笾","箯","籩","編","编","蝙","邉","邊","鍽","鞭","鯾","鯿","鳊"],"zhāo zhào":["炤"],"zhuō chù":["炪"],"pào páo bāo":["炮"],"páo fǒu":["炰"],"shǎn qián shān":["炶"],"zhà zhá":["炸"],"jiǎo yào":["烄"],"quǎn":["烇","犬","犭","畎","綣","绻","虇"],"yàng yáng":["烊"],"lào luò":["烙"],"huí huǐ":["烠"],"rè":["热","熱"],"fú páo":["烰"],"xiè chè":["烲","焎"],"yàn shān":["烻"],"hūn xūn":["焄"],"kào":["焅","犒","銬","铐","靠","鮳","鯌","鲓","㸆"],"juān yè":["焆"],"jùn qū":["焌"],"tāo dào":["焘"],"chǎo jù":["焣"],"wò ài":["焥"],"zǒng cōng":["焧"],"xī yì":["焬"],"xìn xīn":["焮"],"chāo zhuō":["焯"],"xiǒng yīng":["焸","焽"],"kuǐ":["煃","跬","蹞","頍","𫠆"],"huī yùn xūn":["煇"],"jiǎo qiāo":["煍"],"qián shǎn shān":["煔"],"xī yí":["煕"],"shà shā":["煞"],"yè zhá":["煠"],"yáng yàng":["煬"],"ēn yūn":["煾"],"yūn yǔn":["熅"],"hè xiāo":["熇"],"xióng":["熊","熋","雄"],"xūn xùn":["熏","爋"],"gòng":["熕","貢","贡"],"liū":["熘"],"cōng zǒng":["熜"],"lù āo":["熝"],"shú shóu":["熟"],"fēng péng":["熢"],"cuǐ suī":["熣"],"tēng":["熥","膯","鼟"],"yùn yù":["熨"],"áo āo":["熬"],"hàn rǎn":["熯"],"ōu ǒu":["熰"],"huáng huǎng":["熿"],"chǎn dǎn chàn":["燀"],"jiāo zhuó qiáo jué":["燋"],"yàn yān":["燕"],"tài liè":["燤"],"āo":["爊"],"yàn xún":["爓"],"jué jiào":["爝","覐","覚","覺","觉"],"lǎn làn":["爦"],"zhuǎ zhǎo":["爪"],"zhǎo zhuǎ":["爫"],"fù fǔ":["父"],"diē":["爹","褺","跌"],"zāng":["牂","羘","臧","賍","賘","贓","贜","赃","髒"],"piàn piān":["片"],"biān miàn":["牑"],"bǎng":["牓","綁","绑"],"yǒu yōng":["牗"],"chēng chèng":["牚","竀"],"niú":["牛","牜"],"jiū lè":["牞"],"mù móu":["牟"],"māng":["牤"],"gē qiú":["牫"],"yòu chōu":["牰"],"tè zhí":["犆"],"bēn":["犇","錛","锛"],"jiān qián":["犍","玪"],"má":["犘","痲","蔴","蟇","麻"],"máo lí":["犛"],"bá quǎn":["犮"],"zhuó bào":["犳"],"àn hān":["犴"],"kàng gǎng":["犺"],"pèi fèi":["犻"],"fān huān":["犿"],"kuáng":["狂","狅","誑","诳","軖","軠","鵟","𫛭"],"yí quán chí":["狋"],"xīng shēng":["狌"],"tuó yí":["狏"],"kǔ":["狜","苦"],"huán huān":["狟"],"hé mò":["狢"],"tà shì":["狧"],"máng dòu":["狵"],"xī shǐ":["狶"],"suān":["狻","痠","酸"],"bài pí":["猈"],"jiān yàn":["猏","豣"],"yī yǐ":["猗"],"yá wèi":["猚"],"cāi":["猜"],"māo máo":["猫","貓"],"chuàn chuān":["猭"],"tuān tuàn":["猯","貒"],"yà jiá qiè":["猰"],"hè xiē gé hài":["猲"],"biān piàn":["猵","獱"],"bó pò":["猼"],"háo gāo":["獋"],"fén fèn":["獖"],"yào xiāo":["獟"],"shuò xī":["獡"],"gé liè xiē":["獦"],"nòu rú":["獳"],"náo nǎo yōu":["獶"],"ráng":["獽","瓤","禳","穣","穰","蘘","躟","鬤"],"náo yōu":["獿"],"lǜ shuài":["率"],"wáng wàng":["王"],"yáng chàng":["玚"],"mín wén":["玟"],"bīn fēn":["玢"],"mén yǔn":["玧"],"qiāng cāng":["玱","瑲","篬"],"án gān":["玵"],"xuán xián":["玹"],"cī cǐ":["玼","跐"],"yí tāi":["珆"],"zǔ jù":["珇"],"fà":["珐","琺","蕟","髪","髮"],"yín kèn":["珢"],"huī hún":["珲"],"xuán qióng":["琁"],"fú fū":["琈"],"bǐng pín":["琕"],"cuì sè":["琗"],"yù wéi":["琟"],"tiǎn tiàn":["琠"],"zhuó zuó":["琢"],"běng pěi":["琣"],"guǎn":["琯","璭","痯","筦","管","舘","輨","錧","館","馆","鳤"],"hún huī":["琿"],"xié jiē":["瑎"],"chàng dàng yáng":["瑒"],"tiàn zhèn":["瑱"],"bīn pián":["瑸","璸"],"tú shū":["瑹"],"cuǐ":["璀","皠","趡"],"zǎo suǒ":["璅"],"jué qióng":["璚"],"lú fū":["璷"],"jì zī":["璾"],"suí":["瓍","綏","绥","遀","随","隨","髄"],"mí xǐ":["瓕"],"qióng wěi wèi":["瓗"],"huán yè yà":["瓛"],"bó páo":["瓟"],"zhí hú":["瓡"],"piáo":["瓢","闝"],"wǎ wà":["瓦"],"xiáng hóng":["瓨"],"wèng":["瓮","甕","罋","蕹","齆"],"shèn shén":["甚"],"ruí":["甤","緌","蕤"],"yòng":["用","砽","苚","蒏","醟","㶲"],"shuǎi":["甩"],"béng":["甭","甮"],"yóu zhá":["甴"],"diàn tián shèng":["甸"],"tǐng dīng":["町","甼"],"zāi zī":["甾"],"bì qí":["畁"],"dá fú":["畗"],"cè jì":["畟"],"zāi zī tián":["畠"],"zhì chóu shì":["畤"],"fān pān":["畨","番"],"shē yú":["畬"],"dāng dàng dǎng":["當"],"jiāng qiáng":["疆"],"pǐ yǎ shū":["疋"],"jié qiè":["疌"],"yí nǐ":["疑"],"nè":["疒","眲","訥","讷"],"gē yì":["疙"],"nüè yào":["疟","瘧"],"lì lài":["疠","癘"],"yǎ xiā":["疨"],"xuē":["疶","蒆","薛","辥","辪","靴","鞾"],"dǎn da":["疸"],"fá biǎn":["疺"],"fèi féi":["疿","痱"],"shān diàn":["痁"],"téng chóng":["痋"],"tōng tóng":["痌"],"wěi yòu yù":["痏"],"tān shǐ":["痑"],"pū pù":["痡","鋪"],"bēng péng":["痭"],"má lìn":["痳"],"tiǎn diàn":["痶"],"ān yè è":["痷"],"kē ē":["痾"],"zhì chì":["瘈"],"jiǎ xiá xiā":["瘕"],"lěi huì":["瘣"],"chài cuó":["瘥"],"diān chēn":["瘨"],"da dá":["瘩"],"biě biē":["瘪"],"qué":["瘸"],"dàn dān":["癉"],"guì wēi":["癐"],"nòng nóng":["癑"],"biē biě":["癟"],"bō bǒ":["癷"],"bái":["白"],"jí bī":["皀"],"de dì dí dī":["的"],"pā bà":["皅"],"gāo háo":["皋"],"gāo yáo":["皐"],"lì luò bō":["皪"],"zhā cǔ":["皻"],"zhāo zhǎn dǎn":["皽"],"jiān jiàn":["监","監","鋻","间","鞬"],"gài gě hé":["盖"],"máng wàng":["盳"],"yuǎn":["盶","逺","遠"],"tián xián":["盷"],"xiāng xiàng":["相"],"dǔn":["盹","趸","躉"],"xì pǎn":["盻"],"shěng xǐng":["省"],"yún hùn":["眃"],"miǎn miàn":["眄"],"kàn kān":["看"],"yìng yāng yǎng":["眏"],"yǎo āo ǎo":["眑"],"jū xū kōu":["眗"],"yí chì":["眙"],"dié tì":["眣"],"bǐng fǎng":["眪"],"pàng pán":["眫"],"mī mí":["眯","瞇"],"xuàn shùn xún":["眴"],"tiào":["眺","粜","糶","覜","趒"],"zhe zhuó zháo zhāo":["着"],"qiáo shào xiāo":["睄"],"cuó zhuài":["睉"],"gùn":["睔","謴"],"suì zuì":["睟"],"pì bì":["睥","稫","辟"],"yì zé gāo":["睪"],"xǐng xìng":["睲"],"guì wèi kuì":["瞆"],"kòu jì":["瞉"],"qióng huán":["瞏"],"mán mén":["瞒","瞞"],"diāo dōu":["瞗"],"lou lóu lǘ":["瞜"],"shùn rún":["瞤"],"liào liǎo":["瞭","钌"],"jiàn xián":["瞯"],"wǔ mí":["瞴"],"guì kuì":["瞶"],"nǐng chēng":["矃"],"huò yuè":["矆"],"mēng méng":["矇"],"kuàng guō":["矌"],"guàn quán":["矔"],"mǎn mán":["矕"],"jīn guān qín":["矜"],"jīn qín guān":["矝"],"yù xù jué":["矞"],"jiǎo jiáo":["矫","矯"],"duǎn":["短"],"shí dàn":["石"],"gāng qiāng kòng":["矼"],"huā xū":["砉"],"pīn bīn fēn":["砏"],"yán yàn":["研","硏"],"luǒ kē":["砢"],"fú fèi":["砩","笰"],"zhǔ zhù":["砫"],"lá lì lā":["砬"],"kuāng guāng":["硄"],"gè luò":["硌"],"shuò shí":["硕","碩"],"wèi wéi ái":["硙"],"què kè kù":["硞"],"mǎng bàng":["硥"],"luò lòng":["硦"],"yǒng tóng":["硧"],"nüè":["硸","虐"],"kēng kěng":["硻"],"yān yǎn":["硽"],"zhuì chuí duǒ":["硾"],"kōng kòng":["硿"],"zòng cóng":["碂"],"jiān zhàn":["碊"],"lù liù":["碌","陆"],"què xī":["碏"],"lún lǔn lùn":["碖"],"náo gāng":["碙"],"jié yà":["碣"],"wèi wěi":["碨"],"tí dī":["碮"],"chá chā":["碴"],"qiāo què":["碻"],"sù xiè":["碿"],"liú liù":["磂","遛","鎦","馏"],"sī tí":["磃"],"bàng páng":["磅"],"huá kě gū":["磆"],"wěi kuǐ":["磈"],"xiá qià yà":["磍"],"lián qiān":["磏"],"wèi ái gài":["磑"],"lá lā":["磖"],"áo qiāo":["磝"],"pēng pèng":["磞","閛"],"yīn yǐn":["磤"],"lěi léi":["磥"],"mó mò":["磨"],"qì zhú":["磩"],"láo luò":["磱"],"pán bō":["磻"],"jí shé":["磼"],"hé qiāo qiào":["礉"],"kè huò":["礊"],"què hú":["礐"],"è qì":["礘"],"cǎ":["礤","礸"],"xián xín":["礥"],"léi lěi lèi":["礧"],"yán yǎn":["礹"],"qí zhǐ":["祇","蚔"],"bēng fāng":["祊"],"bì mì":["祕"],"suàn":["祘","笇","筭","算","蒜"],"piào piāo":["票"],"jì zhài":["祭"],"shuì lèi":["祱"],"jìn jīn":["禁"],"chán shàn":["禅"],"yáng shāng":["禓"],"zhī zhǐ tí":["禔"],"shàn chán":["禪"],"yú yù ǒu":["禺"],"zǐ zì":["秄"],"chá ná":["秅"],"zhǒng zhòng chóng":["种"],"hào mào":["秏"],"kù kū":["秙"],"zū":["租","葅"],"chèng":["秤","穪"],"huó kuò":["秮","秳"],"chēng chèn chèng":["称","稱"],"shì zhì":["秲","銴"],"fù pū":["秿"],"xùn zè":["稄"],"tú shǔ":["稌"],"zhùn zhǔn":["稕"],"jī qí":["稘","綨","觭"],"léng líng":["稜"],"zuì zú sū":["稡"],"xì qiè":["稧","郄"],"zhǒng zhòng":["種"],"zōng zǒng":["稯"],"xián jiān liàn":["稴"],"zī jiū":["稵"],"jī qǐ":["稽"],"ròng":["穃"],"shān cǎn cēn":["穇"],"mén méi":["穈"],"jǐ jì":["穖"],"xiāo rào":["穘"],"zhuō bó":["穛"],"tóng zhǒng zhòng":["穜"],"zuō":["穝"],"biāo pāo":["穮","藨"],"zhuō jué":["穱"],"cuán zàn":["穳"],"kōng kòng kǒng":["空"],"yū yǔ":["穻"],"zhǎi":["窄","鉙"],"báo":["窇","雹"],"kū zhú":["窋"],"jiào liáo liù":["窌"],"wā guī":["窐"],"tiǎo yáo":["窕"],"xūn yìn":["窨"],"yà yē":["窫"],"tián diān yǎn":["窴"],"chāo kē":["窼"],"kuǎn cuàn":["窽","窾"],"chù qì":["竐"],"qǔ kǒu":["竘"],"jìng zhěn":["竧"],"kǎn kàn":["竷"],"zhú dǔ":["竺"],"lè jīn":["竻"],"zhuì ruì":["笍"],"háng hàng":["笐"],"cén jìn hán":["笒"],"dā xiá nà":["笚"],"zé zuó":["笮"],"lóng lǒng":["笼","篭","籠","躘","龓"],"zhù zhú":["筑","築"],"dá dā":["答","荅"],"shāi":["筛","篩","簁","籭"],"yún jūn":["筠"],"láng làng":["筤","郎","阆"],"zhì zhǐ":["筫"],o:["筽"],"póu bù fú pú":["箁"],"pái bēi":["箄"],"gè":["箇","虼","鉻","铬"],"tái chí":["箈"],"guǎi dài":["箉"],"zhào dào":["箌"],"jīng qìng":["箐"],"lín lǐn":["箖"],"jùn qūn":["箘"],"shī yí":["箷","釶"],"yuē yào chuò":["箹"],"xiāo shuò qiào":["箾"],"gōng gǎn lǒng":["篢"],"páng péng":["篣"],"zhuó huò":["篧"],"jiǎn jiān":["篯"],"dí zhú":["篴"],"zān cēn cǎn":["篸"],"zhuàn suǎn zuàn":["篹"],"piǎo biāo":["篻"],"guó guì":["簂"],"cè jí":["簎"],"mì miè":["簚"],"shāi sī":["簛"],"sǔn zhuàn":["簨"],"gàn gǎn":["簳"],"bò bǒ":["簸"],"bó bù":["簿"],shi:["籂"],"zhēn jiān":["籈"],"zhuàn zuǎn":["籑"],"fān pān biān":["籓"],"sǒu shǔ":["籔"],"zuǎn":["籫","繤","纂","纉","纘","缵"],"nǚ":["籹","釹","钕"],"shā chǎo":["粆"],"kāng jīng":["粇"],"fěn":["粉","黺"],"cū":["粗","觕","麁","麄","麤"],"nián zhān":["粘"],"cè sè":["粣"],"zhōu yù":["粥"],"shēn sǎn":["糁"],"biān biǎn":["糄","萹"],"miàn":["糆","面","靣","麪","麫","麵","麺"],"hú hū hù":["糊"],"gǔ gòu":["糓"],"mí méi":["糜"],"sǎn shēn":["糝","糣"],"zāo":["糟","蹧","遭","醩"],"mì sī":["糸"],"jiū jiǔ":["糺"],"xì jì":["系","繫"],"zhēng zhěng":["糽"],"chà chǎ":["紁","衩"],"yuē yāo":["約","约"],"hóng gōng":["紅","红"],"hé gē":["紇","纥"],"wén wèn":["紋","纹"],"fóu":["紑"],"jì jié jiè":["紒"],"pī pí bǐ":["紕","纰"],"jīn jìn":["紟"],"zhā zā":["紥","紮"],"hā":["紦"],"fū fù":["紨"],"chōu chóu":["紬"],"lèi léi lěi":["累"],"bō bì":["紴"],"tiǎn zhěn":["紾"],"jiōng jiǒng":["絅"],"jié jiē":["結","结","节"],"guà kuā":["絓"],"bǎi mò":["絔"],"gēng huán":["絙"],"jié xié":["絜"],"quán shuān":["絟"],"gǎi ǎi":["絠"],"luò lào":["絡","络"],"bīng bēng pēng":["絣"],"gěi jǐ":["給","给"],"tóng tōng dòng":["絧"],"tiào diào dào":["絩"],"lěi lèi léi":["絫"],"gāi hài":["絯"],"chī zhǐ":["絺"],"wèn miǎn mán wàn":["絻"],"huán huàn wàn":["綄"],"qīn xiān":["綅"],"tì tí":["綈"],"yán xiàn":["綖"],"zōng zèng zòng":["綜"],"chēn lín":["綝"],"zhǔn zhùn":["綧"],"qiàn qīng zhēng":["綪"],"qìng qǐ":["綮"],"lún guān":["綸","纶"],"chuò chāo":["綽","绰"],"tián tǎn chān":["緂"],"lǜ lù":["緑","绿"],"ruǎn ruàn":["緛"],"jí qī":["緝"],"zhòng chóng":["緟","重"],"miáo máo":["緢"],"xiè yè":["緤"],"huǎn":["緩","缓","㬊"],"gēng gèng":["緪","縆"],"tōu xū shū":["緰"],"zōng zòng":["緵","繌"],"yùn gǔn":["緷"],"guā wō":["緺"],"yùn yūn wēn":["緼","縕"],"bāng bàng":["縍"],"gǔ hú":["縎","鶻"],"cī cuò suǒ":["縒"],"cuī shuāi":["縗"],"róng rǒng ròng":["縙"],"zài zēng":["縡"],"cài":["縩","菜","蔡"],"féng fèng":["縫"],"suō sù":["縮","缩"],"yǎn yǐn":["縯","酓"],"zòng zǒng":["縱","纵"],"zhuàn juàn":["縳"],"mò mù":["縸","莫"],"piǎo piāo":["縹","缥"],"fán pó":["繁"],"bēng bèng":["繃"],"móu miù miào liǎo":["繆"],"yáo yóu zhòu":["繇"],"zēng zèng":["繒","缯"],"jú jué":["繘"],"chuō chuò":["繛"],"zūn zǔn":["繜"],"rào":["繞","绕","遶"],"chǎn chán":["繟"],"huì huí":["繢","缋","藱"],"qiāo sāo zǎo":["繰"],"jiǎo zhuó":["繳","缴"],"dàn tán chán":["繵"],"nǒng":["繷"],"pú fú":["纀"],"yào lì":["纅"],"rǎng xiāng":["纕"],"lí sǎ xǐ lǐ":["纚"],"xiān qiàn":["纤"],"jīng jìng":["经"],"tí tì":["绨"],"bēng běng bèng":["绷"],"zōng zèng":["综"],"jī qī":["缉"],"wēn yùn yūn":["缊"],"fèng féng":["缝"],"shuāi cuī suī":["缞"],"miù móu liáo miào mù":["缪"],"qiāo sāo":["缲"],"fǒu":["缶","缹","缻","雬","鴀"],"bà ba pí":["罢","罷"],"guà guǎi":["罫"],"yáng xiáng":["羊","羏"],"měi gāo":["羙"],"yì xī":["羛"],"qiǎng qiān":["羟"],"qiāng kòng":["羫"],"qián xián yán":["羬"],"nóu":["羺"],"hóng gòng":["羾"],"pī bì pō":["翍"],"qú yù":["翑"],"ké":["翗"],"qiào qiáo":["翘"],"zhái dí":["翟"],"dào zhōu":["翢"],"hóu qú":["翵"],"shuǎ":["耍"],"ruǎn nuò":["耎"],"ér nài":["耏"],"zhuān duān":["耑"],"pá bà":["耙"],"chí sì":["耛"],"qù chú":["耝"],"lún lǔn":["耣"],"jí jiè":["耤"],"tāng tǎng":["耥"],"pǎng":["耪","覫"],"zhá zé":["耫"],"yē yé":["耶"],"yún yíng":["耺"],"wà tuǐ zhuó":["聉"],"ér nǜ":["聏"],"tiē zhé":["聑"],"dǐ zhì":["聜"],"qié":["聺"],"nǐ jiàn":["聻"],"lèi lē":["肋"],"cào":["肏","襙","鄵","鼜"],"bó dí":["肑"],"xiào xiāo":["肖"],"dù dǔ":["肚"],"chāi":["肞","釵","钗"],"hán qín hàn":["肣"],"pàng pán pàn":["肨","胖"],"zhūn chún":["肫"],"āng":["肮","骯"],"yù yō":["育"],"pí bǐ bì":["肶"],"fèi bì":["胇"],"bèi bēi":["背"],"fèi zǐ":["胏"],"píng pēng":["胓","苹"],"fū fú zhǒu":["胕"],"shèng shēng":["胜"],"kuà":["胯","跨","骻"],"gǎi hǎi":["胲"],"gē gé gā":["胳"],"néng nài":["能"],"guī kuì":["胿"],"mài mò":["脉"],"zāng zàng":["脏"],"jiǎo jué":["脚","角"],"cuǒ":["脞"],"de te":["脦"],"zuī juān":["脧"],"něi":["脮","腇","餒","馁","鮾","鯘"],"pú fǔ":["脯"],"niào":["脲"],"shuí":["脽"],"guò":["腂","過","鐹"],"là xī":["腊"],"yān ā":["腌"],"gāo gào":["膏"],"lù biāo":["膔"],"chuái":["膗"],"zhuān chuán chún zhuǎn":["膞"],"chuài":["膪","踹"],"fán pán":["膰"],"wǔ hū":["膴"],"shān dàn":["膻"],"tún":["臀","臋","蛌","豘","豚","軘","霕","飩","饨","魨","鲀","黗"],"bì bei":["臂"],"là gé":["臈"],"sào sāo":["臊"],"nào":["臑","閙","闹","鬧"],"ní luán":["臡"],"qiān xián":["臤"],"guàng jiǒng":["臦"],"guǎng jiǒng":["臩"],"chòu xiù":["臭"],"mián biān":["臱"],"dié zhí":["臷"],"zhī jìn":["臸"],"shè shě":["舍"],"pù":["舖","舗"],"bān bō pán":["般"],"kuā":["舿"],"gèn gěn":["艮"],"sè shǎi":["色"],"fú bó":["艴"],"jiāo qiú":["艽"],"chāi chā":["芆"],"sháo què":["芍"],"hù xià":["芐"],"zì zǐ":["芓"],"huì hū":["芔"],"tún chūn":["芚"],"jiè gài":["芥"],"xù zhù":["芧"],"yuán yán":["芫"],"xīn xìn":["芯"],"lún huā":["芲"],"wù hū":["芴"],"gōu gǒu":["芶"],"mào máo":["芼"],"fèi fú":["芾"],"chán yín":["苂"],"qiē":["苆"],"sū sù":["苏"],"tiáo sháo":["苕"],"lì jī":["苙"],"kē hē":["苛"],"jù qǔ":["苣"],"ruò rě":["若"],"zhù níng":["苧"],"pā bó":["苩"],"xiú":["苬"],"zhǎ zuó":["苲"],"jū chá":["苴"],"nié":["苶"],"shēng ruí":["苼"],"qié jiā":["茄"],"zǐ cí":["茈"],"qiàn xī":["茜"],"chǎi":["茝"],"fá pèi":["茷"],"ráo":["荛","蕘","襓","饒","饶"],"yíng xíng":["荥"],"qián xún":["荨","蕁"],"yìn yīn":["荫"],"hé hè":["荷"],"shā suō":["莎"],"péng fēng":["莑"],"shēn xīn":["莘"],"wǎn guān guǎn":["莞"],"yóu sù":["莤"],"shāo xiāo":["莦","蛸"],"làng liáng":["莨"],"piǎo fú":["莩"],"wèn wǎn miǎn":["莬"],"shì shí":["莳","蒔"],"tù tú":["莵"],"xiān liǎn":["莶","薟"],"wǎn yù":["菀"],"zōu chù":["菆"],"lù lǜ":["菉"],"jūn jùn":["菌"],"niè rěn":["菍"],"zī zì zāi":["菑"],"tú tù":["菟"],"jiē shà":["菨"],"qiáo zhǎo":["菬"],"tái zhī chí":["菭"],"fēi fěi":["菲","蜚"],"qín qīn jīn":["菳"],"zū jù":["菹","蒩"],"lǐn má":["菻"],"tián tiàn":["菾"],"tiē":["萜","貼","贴"],"luò là lào luō":["落"],"zhù zhuó zhe":["著"],"shèn rèn":["葚"],"gě gé":["葛"],"jùn suǒ":["葰"],"kuì kuài":["蒉"],"rú ná":["蒘"],"méng mēng měng":["蒙"],"yuán huán":["蒝"],"xú shú":["蒣"],"xí xì":["蒵"],"mì míng":["蓂"],"sōu sǒu":["蓃"],"gài gě hé hài":["蓋"],"yǎo zhuó":["蓔"],"diào tiáo dí":["蓧"],"xū qiū fū":["蓲"],"zí jú":["蓻"],"liǎo lù":["蓼"],xu:["蓿"],"hàn hǎn":["蔊"],"màn wàn mán":["蔓"],"pó bò":["蔢"],"fān fán bō":["蕃"],"hóng hòng":["蕻"],"yù ào":["薁","隩"],"xí xiào":["薂"],"báo bó bò":["薄"],"cí zī":["薋"],"wàn luàn":["薍"],"kǎo hāo":["薧"],"yuǎn wěi":["薳"],"zhòu chóu":["薵"],"wō mái":["薶"],"xiāo hào":["藃"],"yù xù xū":["藇"],"jiè jí":["藉"],"diào zhuó":["藋"],"cáng zàng":["藏"],"lǎ":["藞"],"chú zhū":["藸"],"pín píng":["蘋"],"gān hán":["虷"],"hóng jiàng":["虹"],"huī huǐ":["虺"],"xiā há":["虾"],"mǎ mà mā":["蚂"],"fāng bàng":["蚄"],"bàng bèng":["蚌"],"jué quē":["蚗"],"qín qián":["蚙"],"gōng zhōng":["蚣"],"fǔ fù":["蚥"],"dài dé":["蚮"],"gǒu qú xù":["蚼"],"bǒ pí":["蚾"],"shé yí":["蛇"],"tiě":["蛈","鉄","銕","鐡","鐵","铁","驖"],"gé luò":["蛒"],"máng bàng":["蛖"],"yì xǔ":["蛡"],"há gé":["蛤"],"qiè ní":["蛪"],"é yǐ":["蛾"],"zhē zhé":["蜇"],"là zhà":["蜡"],"suò":["蜶","逤"],"yóu qiú":["蝤"],"xiā hā":["蝦"],"xī qī":["螇"],"bī pí":["螕"],"nài něng":["螚"],"hé xiá":["螛"],"guì huǐ":["螝"],"mǎ mā mà":["螞"],"shì zhē":["螫"],"zhì dié":["螲"],"jiàn chán":["螹"],"ma má mò":["蟆"],"mǎng měng":["蟒"],"biē bié":["蟞"],"bēn fèi":["蟦"],"láo liáo":["蟧"],"yín xún":["蟫"],"lí lǐ":["蠡"],"xuè xiě":["血"],"xíng háng hàng héng":["行"],"shuāi cuī":["衰"],"tuó tuō":["袉"],"lǐng líng":["袊"],"bào páo pào":["袌"],"jù jiē":["袓"],"hè kè":["袔"],"yí yì":["袘","貤"],"nà jué":["袦"],"bèi pī":["被"],"chǐ nuǒ":["袲"],"chǐ qǐ duǒ nuǒ":["袳"],"jiá qiā jié":["袷"],"bó mò":["袹"],"guī guà":["袿"],"liè liě":["裂"],"chéng chěng":["裎"],"jiē gé":["裓"],"dāo chóu":["裯"],"shang cháng":["裳"],"yuān gǔn":["裷"],"yǎn ān":["裺"],"tì xī":["裼"],"fù fú":["褔"],"chǔ zhǔ":["褚"],"tuì tùn":["褪"],"lǎi":["襰"],"yào yāo":["要"],"qín tán":["覃"],"jiàn xiàn":["見","见"],"piǎn":["覑","諞","谝","貵","𡎚"],"piē miè":["覕"],"yíng yǐng":["覮"],"qù qū":["覰","覷","觑"],"jiàn biǎn":["覵"],"luó luǎn":["覶"],"zī zuǐ":["觜"],"huà xiè":["觟"],"jiě jiè xiè":["解","觧"],"xué hù":["觷"],"lì lù":["觻"],"tǎo":["討","讨"],"zhùn":["訰"],"zī zǐ":["訾"],"yí dài":["詒","诒"],"xiòng":["詗","诇"],"diào tiǎo":["誂"],"yí chǐ chì":["誃"],"lǎng làng":["誏"],"ēi éi ěi èi xī":["誒","诶"],"shuà":["誜"],"yǔ yù":["語","语","雨"],"shuō shuì yuè":["說","说"],"shuí shéi":["誰","谁"],"qū juè":["誳"],"chī lài":["誺"],"nì ná":["誽"],"diào tiáo":["調"],"pǐ bēi":["諀"],"jì jī":["諅"],"zé zuò zhǎ cuò":["諎"],"chù jí":["諔"],"háo xià":["諕"],"lùn lún":["論","论"],"shì dì":["諟"],"huà guā":["諣"],"xǐ shāi āi":["諰"],"nán nàn":["諵","難"],"miù":["謬","谬"],"zèn":["譖","谮"],"shí zhì":["識","识"],"juàn xuān":["讂"],"yí tuī":["讉"],"zhán":["讝"],"xǔ hǔ":["许"],"xiáng yáng":["详"],"tiáo diào zhōu":["调"],"chén shèn":["谌"],"mí mèi":["谜"],"màn mán":["谩"],"gǔ yù":["谷"],"huō huò huá":["豁"],"zhì zhài":["豸"],"huān huán":["貆"],"kěn kūn":["貇"],"mò hé":["貈"],"mò hé háo":["貉"],"jù lóu":["貗"],"zé zhài":["責","责"],"dài tè":["貸"],"bì bēn":["賁"],"jiǎ gǔ jià":["賈"],"xiōng mín":["賯"],"càng":["賶"],"zhuàn zuàn":["賺","赚"],"wàn zhuàn":["贃"],"gàn gòng zhuàng":["贛"],"yuán yùn":["贠"],"bēn bì":["贲"],"jiǎ gǔ":["贾"],"zǒu":["走","赱","鯐"],"dié tú":["趃"],"jū qiè":["趄"],"qū cù":["趋","趨"],"jí jié":["趌"],"guā huó":["趏"],"què qì jí":["趞"],"tàng tāng":["趟"],"chuō zhuó":["趠"],"qù cù":["趣"],"yuè tì":["趯"],"bō bào":["趵"],"kuà wù":["趶"],"guì jué":["趹"],"fāng fàng páng":["趽"],"páo bà":["跁"],"qí qǐ":["跂"],"jiàn chén":["跈"],"pǎo páo":["跑"],"diǎn diē tiē":["跕"],"jū jù qiè":["跙"],"bǒ":["跛"],"luò lì":["跞"],"dài duò duō chí":["跢"],"zhuǎi":["跩"],"bèng pián":["跰"],"tiào táo":["跳"],"shū chōu":["跾"],"liàng liáng":["踉"],"tà tā":["踏"],"chǎ":["蹅","鑔","镲"],"dí zhí":["蹢"],"dēng dèng":["蹬","鐙","镫"],"cèng":["蹭"],"dūn cún":["蹲"],"juě jué":["蹶"],"liāo":["蹽"],"xiè sǎ":["躠"],"tǐ":["躰","軆","骵"],"yà zhá gá":["轧","軋"],"xìn xiàn":["軐"],"fàn guǐ":["軓"],"zhuàn zhuǎn":["転"],"zhóu zhòu":["軸","轴"],"bú":["轐","醭","鳪"],"zhuǎn zhuàn zhuǎi":["转"],"zǎi zài":["载"],"niǎn zhǎn":["辗"],"biān bian":["边"],"dào biān":["辺"],"yǐ yí":["迆","迤","迱"],"guò guo guō":["过"],"wàng kuāng":["迋"],"hái huán":["还"],"zhè zhèi":["这"],"yuǎn yuàn":["远"],"zhì lì":["迣"],"zhù wǎng":["迬"],"zhuī duī":["追"],"shì kuò":["适"],"tòu":["透"],"tōng tòng":["通"],"guàng":["逛"],"dǎi dài":["逮"],"suì suí":["遂"],"tí dì":["遆"],"yí wèi":["遗"],"shì dí zhé":["適"],"cà":["遪"],"huán hái":["還"],"lí chí":["邌"],"kàng háng":["邟"],"nà nèi nā":["那"],"xié yá yé yú xú":["邪"],"gāi hái":["郂"],"huán xún":["郇"],"chī xī":["郗"],"hǎo":["郝"],"lì zhí":["郦"],"xiáo ǎo":["郩"],"dōu dū":["都"],"liǎo":["曢","鄝","镽"],"zàn cuán cuó":["酂","酇"],"dīng dǐng":["酊"],"cù zuò":["酢"],"fā pō":["酦"],"shāi shī":["酾"],"niàng":["酿","醸"],"qiú chōu":["醔"],"pō fā":["醗","醱"],"chǎn chěn":["醦"],"yàn liǎn xiān":["醶"],"niàng niáng":["釀"],"lǐ li":["里"],"lí xǐ xī":["釐"],"liǎo liào":["釕"],"dīng dìng":["釘","钉"],"qiǎo jiǎo":["釥"],"yú huá":["釪"],"huá wū":["釫"],"rì rèn jiàn":["釰","釼"],"dì dài":["釱"],"pī zhāo":["釽"],"yá yé":["釾"],"bǎ pá":["鈀","钯"],"tā tuó":["鉈","铊"],"běi":["鉳"],"bǐng píng":["鉼"],"hā kē":["鉿","铪"],"chòng":["銃","铳"],"xiǎng jiōng":["銄"],"yù sì":["銉"],"xù huì":["銊"],"rén rěn":["銋"],"shàn shuò":["銏"],"chì lì":["銐"],"xiǎn xǐ":["銑","铣"],"hóu xiàng":["銗"],"diào tiáo yáo":["銚"],"xiān kuò tiǎn guā":["銛","銽","铦"],"zhé niè":["銸"],"zhōng yōng":["銿"],"tōu tù dòu":["鋀"],"méi méng":["鋂"],"wàn jiǎn":["鋄","鎫"],"tǐng dìng":["鋌","铤"],"juān jiān cuān":["鋑"],"sī tuó":["鋖"],"juān xuān juàn":["鋗"],"wú huá wū":["鋘"],"zhuó chuò":["鋜"],"xíng xìng jīng":["鋞"],"jū jú":["鋦","锔"],"zuì niè":["鋷"],"yuān yuǎn wǎn wān":["鋺"],"gāng gàng":["鋼","钢"],"zhuī":["錐","锥","騅","骓","鵻"],"ā":["錒","锕"],"cuō chā":["鎈"],"suǒ sè":["鎍"],"yáo zú":["鎐"],"yè tà gé":["鎑"],"qiāng chēng":["鎗"],"gé lì":["鎘","镉","鬲"],"bī pī bì":["鎞"],"gǎo hào":["鎬"],"zú chuò":["鏃"],"xiū xiù":["鏅"],"shòu sōu":["鏉"],"dí dī":["鏑","镝"],"qiāo sǎn càn":["鏒"],"lù áo":["鏕"],"tāng táng":["鏜"],"jiàn zàn":["鏩"],"huì suì ruì":["鏸"],"qiǎng qiāng":["鏹","镪"],"sǎn xiàn sà":["鏾"],"jiǎn jiàn":["鐧","锏"],"dāng chēng":["鐺","铛"],"zuān zuàn":["鑽"],"sà xì":["钑"],"yào yuè":["钥"],"tǒu dǒu":["钭"],"zuàn zuān":["钻"],"qiān yán":["铅"],"pí pī":["铍"],"yáo diào tiáo":["铫"],"tāng tàng":["铴"],"pù pū":["铺"],"tán xiān":["锬"],"liù liú":["镏"],"hào gǎo":["镐"],"táng tāng":["镗"],"tán chán xín":["镡"],"huò shǎn":["閄"],"hàn bì":["閈","闬"],"kāng kàng":["閌","闶"],"xián jiàn jiān jiǎn":["閒"],"xiā xiǎ":["閕"],"xiǎ kě":["閜"],"biàn guān":["閞"],"hé gé":["閤","颌"],"hòng xiàng":["閧"],"sē xī":["閪"],"tíng tǐng":["閮"],"è yān":["閼","阏"],"hòng juǎn xiàng":["闂"],"bǎn pàn":["闆"],"dū shé":["闍","阇"],"què quē":["闕"],"tāng táng chāng":["闛"],"kàn hǎn":["闞","阚"],"xì sè tà":["闟"],"mēn mèn":["闷"],"quē què":["阙"],"yán diàn":["阽"],"ā ē":["阿"],"bēi pō pí":["陂"],"yàn yǎn":["隁"],"yú yáo shù":["隃"],"lóng lōng":["隆"],"duì zhuì":["隊"],"suí duò":["隋"],"gāi qí ái":["隑"],"huī duò":["隓","隳"],"wěi kuí":["隗"],"lì dài":["隸"],"zhuī cuī wéi":["隹"],"hè hú":["隺","鶮"],"jùn juàn":["隽","雋"],"nán nàn nuó":["难"],"què qiāo qiǎo":["雀"],"guàn huán":["雚"],"guī xī":["雟"],"sè xí":["雭"],"án":["雸"],"wù méng":["雺"],"tèng":["霯"],"lù lòu":["露"],"mái":["霾"],"jìng liàng":["靚"],"gé jí":["革"],"bǎ":["靶"],"yāng yàng":["鞅"],"gé tà sǎ":["鞈"],"biān yìng":["鞕"],"qiào shāo":["鞘"],"juān xuān":["鞙"],"shàng zhǎng":["鞝"],"pí bǐng bì bēi":["鞞"],la:["鞡"],"xiè dié":["鞢"],"ēng":["鞥"],"móu mù":["鞪"],"bì bǐng":["鞸"],"mèi wà":["韎"],"rǒu":["韖"],"shè xiè":["韘"],"yùn wēn":["韫"],"dùn dú":["頓","顿"],"duǐ":["頧"],"luō":["頱"],"bīn pín":["頻"],"yóng":["顒","颙","鰫"],"mān":["顢","颟"],"jǐng gěng":["颈"],"jié xié jiá":["颉"],"kē ké":["颏"],"pín bīn":["频"],"chàn zhàn":["颤"],"fēng fěng":["風","风"],"biāo diū":["颩"],"bá fú":["颰"],"sāo sōu":["颾"],"liù liáo":["飂"],"shí sì yì":["食"],"yǎng juàn":["飬"],"zhù tǒu":["飳"],"yí sì":["飴"],"zuò zé zhā":["飵"],"tiè":["飻","餮"],"xiǎng náng":["饟"],"táng xíng":["饧"],"gē le":["饹"],"chā zha":["馇"],"náng nǎng":["馕"],"yūn wò":["馧"],"zhī shì":["馶"],"xìn jìn":["馸"],"kuài jué":["駃"],"zǎng":["駔","驵"],"tái dài":["駘"],"xún xuān":["駨"],"liáng láng":["駺"],"piàn":["騗","騙","骗","魸"],"dài tái":["骀"],"sāo sǎo":["骚"],"gǔ gū":["骨"],"bèi mó":["骳"],"xiāo qiāo":["骹"],"bǎng pǎng":["髈"],"bó jué":["髉"],"bì pǒ":["髲"],"máo méng":["髳"],"kuò yuè":["髺"],"bā bà":["魞","鲃"],"jì cǐ":["鮆"],"bó bà":["鮊"],"zhǎ zhà":["鮓","鲊"],"chóu dài":["鮘"],"luò gé":["鮥"],"guī xié wā kuí":["鮭"],"xiān xiǎn":["鮮","鲜"],"pū bū":["鯆"],"yì sī":["鯣"],"bà bó":["鲌"],"guī xié":["鲑"],"sāi xǐ":["鳃"],"niǎo diǎo":["鳥"],"diāo zhāo":["鳭"],"gān hàn yàn":["鳱"],"fū guī":["鳺"],"jiān qiān zhān":["鳽"],"hé jiè":["鶡"],"piān biǎn":["鶣"],"chuàn zhì":["鶨"],"cāng qiāng":["鶬"],"sǔn xùn":["鶽"],"biāo páo":["麃"],"zhù cū":["麆"],"jūn qún":["麇","麕"],chi:["麶"],"mó me":["麼"],"mó me ma":["麽"],"mí mǒ":["麿"],"dàn shèn":["黮"],"zhěn yān":["黰"],"dǎn zhǎn":["黵"],"miǎn mǐn měng":["黾"],"hōu":["齁"],"nàng":["齉"],"qí jì zī zhāi":["齐"],"yín kěn yǎn":["龂"],"yín kěn":["龈"],"gōng wò":["龏"],"guī jūn qiū":["龜","龟"],"kuí wā":["䖯"],"lōu":["䁖"],"ōu qū":["𫭟"],"lóu lǘ":["𦝼"],"gǎ gā gá":["嘎"],"wā guà":["坬"],"zhǐ dǐ":["茋"],"gǒng hóng":["硔"],"yáo xiào":["滧"]},no=new Oi;Object.keys(eo).forEach(e=>{const n=eo[e];for(let t of n)no.set(t,e)});const to=new Oi,so=(new Oi,{"南宫":"nán gōng","第五":"dì wǔ","万俟":"mò qí","司马":"sī mǎ","上官":"shàng guān","欧阳":"ōu yáng","夏侯":"xià hóu","诸葛":"zhū gě","闻人":"wén rén","东方":"dōng fāng","赫连":"hè lián","皇甫":"huáng fǔ","尉迟":"yù chí","公羊":"gōng yáng","澹台":"tán tái","公冶":"gōng yě","宗政":"zōng zhèng","濮阳":"pú yáng","淳于":"chún yú","太叔":"tài shū","申屠":"shēn tú","公孙":"gōng sūn","仲孙":"zhòng sūn","轩辕":"xuān yuán","令狐":"líng hú","钟离":"zhōng lí","宇文":"yǔ wén","长孙":"zhǎng sūn","慕容":"mù róng","鲜于":"xiān yú","闾丘":"lǘ qiū","司徒":"sī tú","司空":"sī kōng","亓官":"qí guān","司寇":"sī kòu","仉督":"zhǎng dū","子车":"zǐ jū","颛孙":"zhuān sūn","端木":"duān mù","巫马":"wū mǎ","公西":"gōng xī","漆雕":"qī diāo","乐正":"yuè zhèng","壤驷":"rǎng sì","公良":"gōng liáng","拓跋":"tuò bá","夹谷":"jiá gǔ","宰父":"zǎi fǔ","榖梁":"gǔ liáng","段干":"duàn gān","百里":"bǎi lǐ","东郭":"dōng guō","南门":"nán mén","呼延":"hū yán","羊舌":"yáng shé","梁丘":"liáng qiū","左丘":"zuǒ qiū","东门":"dōng mén","西门":"xī mén","句龙":"gōu lóng","毌丘":"guàn qiū","赵":"zhào","钱":"qián","孙":"sūn","李":"lǐ","周":"zhōu","吴":"wú","郑":"zhèng","王":"wáng","冯":"féng","陈":"chén","褚":"chǔ","卫":"wèi","蒋":"jiǎng","沈":"shěn","韩":"hán","杨":"yáng","朱":"zhū","秦":"qín","尤":"yóu","许":"xǔ","何":"hé","吕":"lǚ","施":"shī","张":"zhāng","孔":"kǒng","曹":"cáo","严":"yán","华":"huà","金":"jīn","魏":"wèi","陶":"táo","姜":"jiāng","戚":"qī","谢":"xiè","邹":"zōu","喻":"yù","柏":"bǎi","水":"shuǐ","窦":"dòu","章":"zhāng","云":"yún","苏":"sū","潘":"pān","葛":"gě","奚":"xī","范":"fàn","彭":"péng","郎":"láng","鲁":"lǔ","韦":"wéi","昌":"chāng","马":"mǎ","苗":"miáo","凤":"fèng","花":"huā","方":"fāng","俞":"yú","任":"rén","袁":"yuán","柳":"liǔ","酆":"fēng","鲍":"bào","史":"shǐ","唐":"táng","费":"fèi","廉":"lián","岑":"cén","薛":"xuē","雷":"léi","贺":"hè","倪":"ní","汤":"tāng","滕":"téng","殷":"yīn","罗":"luó","毕":"bì","郝":"hǎo","邬":"wū","安":"ān","常":"cháng","乐":"yuè","于":"yú","时":"shí","傅":"fù","皮":"pí","卞":"biàn","齐":"qí","康":"kāng","伍":"wǔ","余":"yú","元":"yuán","卜":"bǔ","顾":"gù","孟":"mèng","平":"píng","黄":"huáng","和":"hé","穆":"mù","萧":"xiāo","尹":"yǐn","姚":"yáo","邵":"shào","湛":"zhàn","汪":"wāng","祁":"qí","毛":"máo","禹":"yǔ","狄":"dí","米":"mǐ","贝":"bèi","明":"míng","臧":"zāng","计":"jì","伏":"fú","成":"chéng","戴":"dài","谈":"tán","宋":"sòng","茅":"máo","庞":"páng","熊":"xióng","纪":"jǐ","舒":"shū","屈":"qū","项":"xiàng","祝":"zhù","董":"dǒng","梁":"liáng","杜":"dù","阮":"ruǎn","蓝":"lán","闵":"mǐn","席":"xí","季":"jì","麻":"má","强":"qiáng","贾":"jiǎ","路":"lù","娄":"lóu","危":"wēi","江":"jiāng","童":"tóng","颜":"yán","郭":"guō","梅":"méi","盛":"shèng","林":"lín","刁":"diāo","钟":"zhōng","徐":"xú","邱":"qiū","骆":"luò","高":"gāo","夏":"xià","蔡":"cài","田":"tián","樊":"fán","胡":"hú","凌":"líng","霍":"huò","虞":"yú","万":"wàn","支":"zhī","柯":"kē","昝":"zǎn","管":"guǎn","卢":"lú","莫":"mò","经":"jīng","房":"fáng","裘":"qiú","缪":"miào","干":"gān","解":"xiè","应":"yīng","宗":"zōng","丁":"dīng","宣":"xuān","贲":"bēn","邓":"dèng","郁":"yù","单":"shàn","杭":"háng","洪":"hóng","包":"bāo","诸":"zhū","左":"zuǒ","石":"shí","崔":"cuī","吉":"jí","钮":"niǔ","龚":"gōng","程":"chéng","嵇":"jī","邢":"xíng","滑":"huá","裴":"péi","陆":"lù","荣":"róng","翁":"wēng","荀":"xún","羊":"yáng","於":"yū","惠":"huì","甄":"zhēn","曲":"qū","家":"jiā","封":"fēng","芮":"ruì","羿":"yì","储":"chǔ","靳":"jìn","汲":"jí","邴":"bǐng","糜":"mí","松":"sōng","井":"jǐng","段":"duàn","富":"fù","巫":"wū","乌":"wū","焦":"jiāo","巴":"bā","弓":"gōng","牧":"mù","隗":"wěi","山":"shān","谷":"gǔ","车":"chē","侯":"hóu","宓":"mì","蓬":"péng","全":"quán","郗":"xī","班":"bān","仰":"yǎng","秋":"qiū","仲":"zhòng","伊":"yī","宫":"gōng","宁":"nìng","仇":"qiú","栾":"luán","暴":"bào","甘":"gān","钭":"tǒu","厉":"lì","戎":"róng","祖":"zǔ","武":"wǔ","符":"fú","刘":"liú","景":"jǐng","詹":"zhān","束":"shù","龙":"lóng","叶":"yè","幸":"xìng","司":"sī","韶":"sháo","郜":"gào","黎":"lí","蓟":"jì","薄":"bó","印":"yìn","宿":"sù","白":"bái","怀":"huái","蒲":"pú","邰":"tái","从":"cóng","鄂":"è","索":"suǒ","咸":"xián","籍":"jí","赖":"lài","卓":"zhuó","蔺":"lìn","屠":"tú","蒙":"méng","池":"chí","乔":"qiáo","阴":"yīn","鬱":"yù","胥":"xū","能":"nài","苍":"cāng","双":"shuāng","闻":"wén","莘":"shēn","党":"dǎng","翟":"zhái","谭":"tán","贡":"gòng","劳":"láo","逄":"páng","姬":"jī","申":"shēn","扶":"fú","堵":"dǔ","冉":"rǎn","宰":"zǎi","郦":"lì","雍":"yōng","郤":"xì","璩":"qú","桑":"sāng","桂":"guì","濮":"pú","牛":"niú","寿":"shòu","通":"tōng","边":"biān","扈":"hù","燕":"yān","冀":"jì","郏":"jiá","浦":"pǔ","尚":"shàng","农":"nóng","温":"wēn","别":"bié","庄":"zhuāng","晏":"yàn","柴":"chái","瞿":"qú","阎":"yán","充":"chōng","慕":"mù","连":"lián","茹":"rú","习":"xí","宦":"huàn","艾":"ài","鱼":"yú","容":"róng","向":"xiàng","古":"gǔ","易":"yì","慎":"shèn","戈":"gē","廖":"liào","庾":"yǔ","终":"zhōng","暨":"jì","居":"jū","衡":"héng","步":"bù","都":"dū","耿":"gěng","满":"mǎn","弘":"hóng","匡":"kuāng","国":"guó","文":"wén","寇":"kòu","广":"guǎng","禄":"lù","阙":"quē","东":"dōng","欧":"ōu","殳":"shū","沃":"wò","利":"lì","蔚":"wèi","越":"yuè","夔":"kuí","隆":"lóng","师":"shī","巩":"gǒng","厍":"shè","聂":"niè","晁":"cháo","勾":"gōu","敖":"áo","融":"róng","冷":"lěng","訾":"zī","辛":"xīn","阚":"kàn","那":"nā","简":"jiǎn","饶":"ráo","空":"kōng","曾":"zēng","母":"mǔ","沙":"shā","乜":"niè","养":"yǎng","鞠":"jū","须":"xū","丰":"fēng","巢":"cháo","关":"guān","蒯":"kuǎi","相":"xiàng","查":"zhā","后":"hòu","荆":"jīng","红":"hóng","游":"yóu","竺":"zhú","权":"quán","逯":"lù","盖":"gě","益":"yì","桓":"huán","公":"gōng","牟":"móu","哈":"hǎ","言":"yán","福":"fú","肖":"xiāo","区":"ōu","覃":"qín","朴":"piáo","繁":"pó","员":"yùn","句":"gōu","要":"yāo","过":"guō","钻":"zuān","谌":"chén","折":"shé","召":"shào","郄":"qiè","撒":"sǎ","甯":"nìng","六":"lù","啜":"chuài","行":"xíng"}),io=Object.keys(so).map(e=>({zh:e,pinyin:so[e],probability:1+Ri(e),length:Ri(e),priority:10,dict:Symbol("surname")})),oo=(e,n="off")=>{let t=no.get(e)?no.get(e).split(" "):[];if(to.get(e))t=to.get(e).split(" ");else if("off"!==n){const n=so[e];n&&(t=[n].concat(t.filter(e=>e!==n)))}return t},ao={"这个":"zhè ge","成为":"chéng wéi","认为":"rèn wéi","作为":"zuò wéi","部分":"bù fen","要求":"yāo qiú","应该":"yīng gāi","增长":"zēng zhǎng","提供":"tí gōng","觉得":"jué de","任务":"rèn wu","那个":"nà ge","称为":"chēng wéi","为主":"wéi zhǔ","了解":"liǎo jiě","处理":"chǔ lǐ","皇上":"huáng shang","只要":"zhǐ yào","大量":"dà liàng","力量":"lì liàng","几乎":"jī hū","干部":"gàn bù","目的":"mù dì","行为":"xíng wéi","只见":"zhǐ jiàn","认识":"rèn shi","市长":"shì zhǎng","师父":"shī fu","调查":"diào chá","重新":"chóng xīn","分为":"fēn wéi","知识":"zhī shi","导弹":"dǎo dàn","质量":"zhì liàng","行款":"háng kuǎn","行列":"háng liè","行话":"háng huà","行业":"háng yè","隔行":"gé háng","在行":"zài háng","行家":"háng jia","内行":"nèi háng","外行":"wài háng","同行":"tóng háng","本行":"běn háng","行伍":"háng wǔ","洋行":"yáng háng","银行":"yín háng","商行":"shāng háng","支行":"zhī háng","总行":"zǒng háng","行情":"háng qíng","懂行":"dǒng háng","行规":"háng guī","行当":"háng dang","行货":"háng huò","太行":"tài háng","入行":"rù háng","中行":"zhōng háng","农行":"nóng háng","工行":"gōng háng","建行":"jiàn háng","各行":"gè háng","行号":"háng hào","行高":"háng gāo","行首":"háng shǒu","行尾":"háng wěi","行末":"háng mò","行长":"háng zhǎng","行距":"háng jù","换行":"huàn háng","行会":"háng huì","行辈":"háng bèi","行道":"háng dào","道行":"dào heng","参与":"cān yù","充分":"chōng fèn","尽管":"jǐn guǎn","生长":"shēng zhǎng","数量":"shù liàng","应当":"yīng dāng","院长":"yuàn zhǎng","强调":"qiáng diào","只能":"zhǐ néng","音乐":"yīn yuè","以为":"yǐ wéi","处于":"chǔ yú","部长":"bù zhǎng","蒙古":"měng gǔ","只有":"zhǐ yǒu","适当":"shì dàng","只好":"zhǐ hǎo","成长":"chéng zhǎng","高兴":"gāo xìng","不了":"bù liǎo","产量":"chǎn liàng","胖子":"pàng zi","显得":"xiǎn de","只是":"zhǐ shì","似的":"shì de","率领":"shuài lǐng","改为":"gǎi wéi","不禁":"bù jīn","成分":"chéng fèn","答应":"dā ying","少年":"shào nián","兴趣":"xìng qù","太监":"tài jian","休息":"xiū xi","校长":"xiào zhǎng","更新":"gēng xīn","合同":"hé tong","喝道":"hè dào","重庆":"chóng qìng","重建":"chóng jiàn","使得":"shǐ de","审查":"shěn chá","累计":"lěi jì","给予":"jǐ yǔ","极为":"jí wéi","冠军":"guàn jūn","仿佛":"fǎng fú","头发":"tóu fa","投降":"tóu xiáng","家长":"jiā zhǎng","仔细":"zǐ xì","要是":"yào shi","将领":"jiàng lǐng","含量":"hán liàng","更为":"gèng wéi","积累":"jī lěi","地处":"dì chǔ","县长":"xiàn zhǎng","少女":"shào nǚ","路上":"lù shang","只怕":"zhǐ pà","能量":"néng liàng","储量":"chǔ liàng","供应":"gōng yìng","挑战":"tiǎo zhàn","西藏":"xī zàng","记得":"jì de","总量":"zǒng liàng","当真":"dàng zhēn","将士":"jiàng shì","差别":"chā bié","较为":"jiào wéi","长老":"zhǎng lǎo","大夫":"dài fu","差异":"chā yì","懂得":"dǒng de","尽量":"jǐn liàng","模样":"mú yàng","的确":"dí què","为首":"wéi shǒu","便宜":"pián yi","更名":"gēng míng","石头":"shí tou","州长":"zhōu zhǎng","为止":"wéi zhǐ","漂亮":"piào liang","炮弹":"pào dàn","藏族":"zàng zú","角色":"jué sè","当作":"dàng zuò","尽快":"jǐn kuài","人为":"rén wéi","重复":"chóng fù","胡同":"hú tòng","差距":"chā jù","弟兄":"dì xiong","大将":"dà jiàng","睡觉":"shuì jiào","一觉":"yí jiào","团长":"tuán zhǎng","队长":"duì zhǎng","区长":"qū zhǎng","难得":"nán dé","丫头":"yā tou","会长":"huì zhǎng","弟弟":"dì di","王爷":"wáng ye","重量":"zhòng liàng","誉为":"yù wéi","家伙":"jiā huo","华山":"huà shān","椅子":"yǐ zi","流量":"liú liàng","长大":"zhǎng dà","勉强":"miǎn qiǎng","会计":"kuài jì","过分":"guò fèn","济南":"jǐ nán","调动":"diào dòng","燕京":"yān jīng","少将":"shào jiàng","中毒":"zhòng dú","晓得":"xiǎo de","变更":"biàn gēng","打更":"dǎ gēng","认得":"rèn de","苹果":"píng guǒ","念头":"niàn tou","挣扎":"zhēng zhá","三藏":"sān zàng","剥削":"bō xuē","丞相":"chéng xiàng","少量":"shǎo liàng","寻思":"xún si","夺得":"duó dé","干线":"gàn xiàn","呼吁":"hū yù","处罚":"chǔ fá","长官":"zhǎng guān","柏林":"bó lín","亲戚":"qīn qi","身分":"shēn fèn","胳膊":"gē bo","着手":"zhuó shǒu","炸弹":"zhà dàn","咳嗽":"ké sou","叶子":"yè zi","外长":"wài zhǎng","供给":"gōng jǐ","师长":"shī zhǎng","变量":"biàn liàng","应有":"yīng yǒu","下载":"xià zài","乐器":"yuè qì","间接":"jiàn jiē","底下":"dǐ xià","打扮":"dǎ bàn","子弹":"zǐ dàn","弹药":"dàn yào","热量":"rè liàng","削弱":"xuē ruò","骨干":"gǔ gàn","容量":"róng liàng","模糊":"mó hu","转动":"zhuàn dòng","称呼":"chēng hu","科长":"kē zhǎng","处置":"chǔ zhì","着重":"zhuó zhòng","着急":"zháo jí","强迫":"qiǎng pò","庭长":"tíng zhǎng","首相":"shǒu xiàng","喇嘛":"lǎ ma","镇长":"zhèn zhǎng","只管":"zhǐ guǎn","重重":"chóng chóng","免得":"miǎn de","着实":"zhuó shí","度假":"dù jià","真相":"zhēn xiàng","相貌":"xiàng mào","处分":"chǔ fèn","委屈":"wěi qu","为期":"wéi qī","伯伯":"bó bo","伯子":"bǎi zi","圈子":"quān zi","见识":"jiàn shi","笼罩":"lǒng zhào","与会":"yù huì","都督":"dū du","都市":"dū shì","成都":"chéng dū","首都":"shǒu dū","帝都":"dì dū","王都":"wáng dū","东都":"dōng dū","都护":"dū hù","都城":"dū chéng","建都":"jiàn dū","迁都":"qiān dū","故都":"gù dū","定都":"dìng dū","中都":"zhōng dū","六安":"lù ān","宰相":"zǎi xiàng","较量":"jiào liàng","对称":"duì chèn","总长":"zǒng zhǎng","相公":"xiàng gong","空白":"kòng bái","打量":"dǎ liang","水分":"shuǐ fèn","舌头":"shé tou","没收":"mò shōu","行李":"xíng li","判处":"pàn chǔ","散文":"sǎn wén","处境":"chǔ jìng","孙子":"sūn zi","拳头":"quán tou","打发":"dǎ fā","组长":"zǔ zhǎng","骨头":"gǔ tou","宁可":"nìng kě","更换":"gēng huàn","薄弱":"bó ruò","还原":"huán yuán","重修":"chóng xiū","重来":"chóng lái","只顾":"zhǐ gù","爱好":"ài hào","馒头":"mán tou","军长":"jūn zhǎng","首长":"shǒu zhǎng","厂长":"chǎng zhǎng","司长":"sī zhǎng","长子":"zhǎng zǐ","强劲":"qiáng jìng","恰当":"qià dàng","头儿":"tóu er","站长":"zhàn zhǎng","折腾":"zhē teng","相处":"xiāng chǔ","统率":"tǒng shuài","中将":"zhōng jiàng","命中":"mìng zhòng","名将":"míng jiàng","木头":"mù tou","动弹":"dòng tan","地壳":"dì qiào","干活":"gàn huó","少爷":"shào ye","水量":"shuǐ liàng","补给":"bǔ jǐ","尾巴":"wěi ba","来得":"lái de","好奇":"hào qí","钥匙":"yào shi","当做":"dàng zuò","沉着":"chén zhuó","哑巴":"yǎ ba","车子":"chē zi","上将":"shàng jiàng","恶心":"ě xīn","担子":"dàn zi","应届":"yīng jiè","主角":"zhǔ jué","运转":"yùn zhuǎn","兄长":"xiōng zhǎng","格式":"gé shì","正月":"zhēng yuè","营长":"yíng zhǎng","当成":"dàng chéng","女婿":"nǚ xu","咽喉":"yān hóu","重阳":"chóng yáng","化为":"huà wéi","吐蕃":"tǔ bō","钻进":"zuān jìn","乐队":"yuè duì","亮相":"liàng xiàng","被子":"bèi zi","舍得":"shě de","杉木":"shā mù","击中":"jī zhòng","排长":"pái zhǎng","假期":"jià qī","分量":"fèn liàng","数次":"shù cì","提防":"dī fáng","吆喝":"yāo he","查处":"chá chǔ","量子":"liàng zǐ","里头":"lǐ tou","调研":"diào yán","伺候":"cì hou","重申":"chóng shēn","枕头":"zhěn tou","拚命":"pīn mìng","社长":"shè zhǎng","归还":"guī huán","批量":"pī liàng","畜牧":"xù mù","点着":"diǎn zháo","甚为":"shèn wéi","小将":"xiǎo jiàng","着眼":"zhuó yǎn","处死":"chǔ sǐ","厌恶":"yàn wù","鼓乐":"gǔ yuè","树干":"shù gàn","秘鲁":"bì lǔ","大方":"dà fāng","外头":"wài tou","班长":"bān zhǎng","星宿":"xīng xiù","宁愿":"nìng yuàn","钦差":"qīn chāi","为数":"wéi shù","勾当":"gòu dàng","削减":"xuē jiǎn","间谍":"jiàn dié","埋怨":"mán yuàn","结实":"jiē shi","计量":"jì liáng","淹没":"yān mò","村长":"cūn zhǎng","连长":"lián zhǎng","自给":"zì jǐ","武将":"wǔ jiàng","温差":"wēn chā","直奔":"zhí bèn","供求":"gōng qiú","剂量":"jì liàng","道长":"dào zhǎng","泄露":"xiè lòu","王八":"wáng ba","切割":"qiē gē","间隔":"jiàn gé","一晃":"yì huǎng","长假":"cháng jià","令狐":"líng hú","为害":"wéi hài","句子":"jù zi","偿还":"cháng huán","疙瘩":"gē da","燕山":"yān shān","堵塞":"dǔ sè","夺冠":"duó guàn","扎实":"zhā shi","电荷":"diàn hè","看守":"kān shǒu","复辟":"fù bì","郁闷":"yù mèn","尽早":"jǐn zǎo","切断":"qiē duàn","指头":"zhǐ tou","为生":"wéi shēng","畜生":"chù sheng","切除":"qiē chú","着力":"zhuó lì","着想":"zhuó xiǎng","级差":"jí chā","投奔":"tóu bèn","棍子":"gùn zi","含糊":"hán hu","少妇":"shào fù","兴致":"xìng zhì","纳闷":"nà mèn","干流":"gàn liú","卷起":"juǎn qǐ","扇子":"shàn zi","更改":"gēng gǎi","笼络":"lǒng luò","喇叭":"lǎ ba","载荷":"zài hè","妥当":"tuǒ dàng","为难":"wéi nán","着陆":"zhuó lù","燕子":"yàn zi","干吗":"gàn má","白发":"bái fà","总得":"zǒng děi","夹击":"jiā jī","曝光":"bào guāng","曲调":"qǔ diào","相机":"xiàng jī","叫化":"jiào huà","角逐":"jué zhú","啊哟":"ā yō","载重":"zài zhòng","长辈":"zhǎng bèi","出差":"chū chāi","垛口":"duǒ kǒu","撇开":"piē kāi","厅长":"tīng zhǎng","组分":"zǔ fèn","误差":"wù chā","家当":"jiā dàng","传记":"zhuàn jì","个子":"gè zi","铺设":"pū shè","干事":"gàn shì","杆菌":"gǎn jūn","定量":"dìng liàng","运载":"yùn zài","会儿":"huì er","酋长":"qiú zhǎng","重返":"chóng fǎn","差额":"chā é","露面":"lòu miàn","钻研":"zuān yán","大城":"dài chéng","上当":"shàng dàng","销量":"xiāo liàng","作坊":"zuō fang","照相":"zhào xiàng","哎呀":"āi yā","调集":"diào jí","看中":"kàn zhòng","议长":"yì zhǎng","风筝":"fēng zheng","辟邪":"bì xié","空隙":"kòng xì","更迭":"gēng dié","偏差":"piān chā","声调":"shēng diào","适量":"shì liàng","屯子":"tún zi","无量":"wú liàng","空地":"kòng dì","调度":"diào dù","散射":"sǎn shè","创伤":"chuāng shāng","海参":"hǎi shēn","满载":"mǎn zài","重叠":"chóng dié","落差":"luò chā","单调":"dān diào","老将":"lǎo jiàng","人参":"rén shēn","间断":"jiàn duàn","重现":"chóng xiàn","夹杂":"jiā zá","调用":"diào yòng","萝卜":"luó bo","附着":"fù zhuó","应声":"yìng shēng","主将":"zhǔ jiàng","罪过":"zuì guo","咀嚼":"jǔ jué","为政":"wéi zhèng","过量":"guò liàng","乐曲":"yuè qǔ","负荷":"fù hè","枪弹":"qiāng dàn","悄然":"qiǎo rán","处方":"chǔ fāng","悄声":"qiǎo shēng","曲子":"qǔ zi","情调":"qíng diào","挑衅":"tiǎo xìn","代为":"dài wéi","了结":"liǎo jié","打中":"dǎ zhòng","酒吧":"jiǔ bā","懒得":"lǎn de","增量":"zēng liàng","衣着":"yī zhuó","部将":"bù jiàng","要塞":"yào sài","茶几":"chá jī","杠杆":"gàng gǎn","出没":"chū mò","鲜有":"xiǎn yǒu","间隙":"jiàn xì","重担":"zhòng dàn","重演":"chóng yǎn","重试":"chóng shì","应酬":"yìng chou","只当":"zhǐ dāng","毋宁":"wú nìng","包扎":"bāo zā","前头":"qián tou","卷烟":"juǎn yān","非得":"fēi děi","弹道":"dàn dào","杆子":"gān zi","门将":"mén jiàng","后头":"hòu tou","喝彩":"hè cǎi","暖和":"nuǎn huo","累积":"lěi jī","调遣":"diào qiǎn","倔强":"jué jiàng","宝藏":"bǎo zàng","丧事":"sāng shì","约莫":"yuē mo","纤夫":"qiàn fū","更替":"gēng tì","装载":"zhuāng zài","背包":"bēi bāo","帖子":"tiě zi","松散":"sōng sǎn","呼喝":"hū hè","可恶":"kě wù","自转":"zì zhuàn","供电":"gōng diàn","反省":"fǎn xǐng","坦率":"tǎn shuài","苏打":"sū dá","本分":"běn fèn","落得":"luò de","鄙薄":"bǐ bó","相间":"xiāng jiàn","单薄":"dān bó","混蛋":"hún dàn","贞观":"zhēn guān","附和":"fù hè","能耐":"néng nài","吓唬":"xià hu","未了":"wèi liǎo","引着":"yǐn zháo","抽调":"chōu diào","沙子":"shā zi","席卷":"xí juǎn","标的":"biāo dì","别扭":"biè niu","思量":"sī liang","喝采":"hè cǎi","论语":"lún yǔ","盖子":"gài zi","分外":"fèn wài","弄堂":"lòng táng","乐舞":"yuè wǔ","雨量":"yǔ liàng","毛发":"máo fà","差遣":"chāi qiǎn","背负":"bēi fù","转速":"zhuàn sù","声乐":"shēng yuè","夹攻":"jiā gōng","供水":"gōng shuǐ","主干":"zhǔ gàn","惩处":"chéng chǔ","长相":"zhǎng xiàng","公差":"gōng chāi","榴弹":"liú dàn","省得":"shěng de","条子":"tiáo zi","重围":"chóng wéi","阻塞":"zǔ sè","劲风":"jìng fēng","纠葛":"jiū gé","颠簸":"diān bǒ","点中":"diǎn zhòng","重创":"zhòng chuāng","姥姥":"lǎo lao","迷糊":"mí hu","公家":"gōng jia","几率":"jī lǜ","苦闷":"kǔ mèn","度量":"dù liàng","差错":"chā cuò","暑假":"shǔ jià","参差":"cēn cī","搭载":"dā zài","助长":"zhù zhǎng","相称":"xiāng chèn","红晕":"hóng yùn","舍命":"shě mìng","喜好":"xǐ hào","列传":"liè zhuàn","劲敌":"jìng dí","蛤蟆":"há ma","请假":"qǐng jià","钉子":"dīng zi","沉没":"chén mò","高丽":"gāo lí","休假":"xiū jià","无为":"wú wéi","巴结":"bā jie","了得":"liǎo dé","变相":"biàn xiàng","核弹":"hé dàn","亲家":"qìng jia","承载":"chéng zài","喝问":"hè wèn","还击":"huán jī","交还":"jiāo huán","将令":"jiàng lìng","单于":"chán yú","空缺":"kòng quē","绿林":"lù lín","胆量":"dǎn liàng","执着":"zhí zhuó","低调":"dī diào","闭塞":"bì sè","轻薄":"qīng bó","得当":"dé dàng","占卜":"zhān bǔ","扫帚":"sào zhou","龟兹":"qiū cí","年长":"nián zhǎng","外传":"wài zhuàn","头子":"tóu zi","裁缝":"cái feng","礼乐":"lǐ yuè","血泊":"xuè pō","散乱":"sǎn luàn","动量":"dòng liàng","倒腾":"dǎo teng","取舍":"qǔ shě","咱家":"zán jiā","长发":"cháng fà","爪哇":"zhǎo wā","弹壳":"dàn ké","省悟":"xǐng wù","嚷嚷":"rāng rang","连累":"lián lèi","应得":"yīng dé","族长":"zú zhǎng","柜子":"guì zi","擂鼓":"léi gǔ","眩晕":"xuàn yùn","调配":"tiáo pèi","躯干":"qū gàn","差役":"chāi yì","坎坷":"kǎn kě","少儿":"shào ér","乐团":"yuè tuán","养分":"yǎng fèn","退还":"tuì huán","格调":"gé diào","语调":"yǔ diào","音调":"yīn diào","乐府":"yuè fǔ","古朴":"gǔ pǔ","打点":"dǎ diǎn","差使":"chāi shǐ","匀称":"yún chèn","瘦削":"shòu xuē","膏药":"gāo yao","吞没":"tūn mò","调任":"diào rèn","散居":"sǎn jū","上头":"shàng tóu","风靡":"fēng mǐ","放假":"fàng jià","估量":"gū liang","失当":"shī dàng","中弹":"zhòng dàn","妄为":"wàng wéi","长者":"zhǎng zhě","起哄":"qǐ hòng","末了":"mò liǎo","相声":"xiàng sheng","校正":"jiào zhèng","劝降":"quàn xiáng","矢量":"shǐ liàng","沉闷":"chén mèn","给与":"jǐ yǔ","解法":"jiě fǎ","塞外":"sài wài","将校":"jiàng xiào","嗜好":"shì hào","没落":"mò luò","朴刀":"pō dāo","片子":"piān zi","切削":"qiē xiāo","弹丸":"dàn wán","稀薄":"xī bó","亏得":"kuī dé","间歇":"jiàn xiē","翘首":"qiáo shǒu","色调":"sè diào","处决":"chǔ jué","表率":"biǎo shuài","尺子":"chǐ zi","招降":"zhāo xiáng","称职":"chèn zhí","斗篷":"dǒu peng","铺子":"pù zi","底子":"dǐ zi","负载":"fù zài","干警":"gàn jǐng","倒数":"dào shǔ","将官":"jiàng guān","锄头":"chú tou","归降":"guī xiáng","疟疾":"nüè ji","唠叨":"láo dao","限量":"xiàn liàng","屏息":"bǐng xī","重逢":"chóng féng","器乐":"qì yuè","氢弹":"qīng dàn","脖颈":"bó gěng","妃子":"fēi zi","处事":"chǔ shì","参量":"cān liàng","轻率":"qīng shuài","缥缈":"piāo miǎo","中奖":"zhòng jiǎng","才干":"cái gàn","施舍":"shī shě","卷子":"juàn zi","游说":"yóu shuì","巷子":"xiàng zi","膀胱":"páng guāng","切勿":"qiè wù","看管":"kān guǎn","风头":"fēng tou","精干":"jīng gàn","高差":"gāo chā","恐吓":"kǒng hè","扁担":"biǎn dàn","给养":"jǐ yǎng","格子":"gé zi","供需":"gōng xū","反差":"fǎn chā","飞弹":"fēi dàn","微薄":"wēi bó","发型":"fà xíng","即兴":"jí xìng","攒动":"cuán dòng","间或":"jiàn huò","浅薄":"qiǎn bó","乐章":"yuè zhāng","顺差":"shùn chā","调子":"diào zi","相位":"xiàng wèi","转子":"zhuàn zǐ","劲旅":"jìng lǚ","咔嚓":"kā chā","了事":"liǎo shì","转悠":"zhuàn you","当铺":"dàng pù","爪子":"zhuǎ zi","单子":"dān zi","好战":"hào zhàn","燕麦":"yàn mài","只许":"zhǐ xǔ","干练":"gàn liàn","女将":"nǚ jiàng","酒量":"jiǔ liàng","划船":"huá chuán","伎俩":"jì liǎng","挑拨":"tiǎo bō","少校":"shào xiào","着落":"zhuó luò","憎恶":"zēng wù","刻薄":"kè bó","要挟":"yāo xié","用处":"yòng chu","还手":"huán shǒu","模具":"mú jù","执著":"zhí zhuó","喝令":"hè lìng","保长":"bǎo zhǎng","吸着":"xī zhe","症结":"zhēng jié","公转":"gōng zhuàn","校勘":"jiào kān","重提":"chóng tí","扫兴":"sǎo xìng","铺盖":"pū gài","长史":"zhǎng shǐ","差价":"chā jià","压根":"yà gēn","怔住":"zhèng zhù","应允":"yīng yǔn","切入":"qiē rù","战将":"zhàn jiàng","年少":"nián shào","舍身":"shě shēn","执拗":"zhí niù","处世":"chǔ shì","中风":"zhòng fēng","等量":"děng liàng","放量":"fàng liàng","腔调":"qiāng diào","老少":"lǎo shào","没入":"mò rù","瓜葛":"guā gé","将帅":"jiàng shuài","车载":"chē zài","窝囊":"wō nang","长进":"zhǎng jìn","可汗":"kè hán","并州":"bīng zhōu","供销":"gōng xiāo","切片":"qiē piàn","差事":"chāi shì","知会":"zhī hui","鹰爪":"yīng zhǎo","处女":"chǔ nǚ","切磋":"qiē cuō","日头":"rì tou","押解":"yā jiè","滋长":"zī zhǎng","道观":"dào guàn","脚色":"jué sè","当量":"dāng liàng","婆家":"pó jia","缘分":"yuán fèn","空闲":"kòng xián","好色":"hào sè","怒喝":"nù hè","笼统":"lǒng tǒng","边塞":"biān sài","何曾":"hé céng","重合":"chóng hé","零散":"líng sǎn","轰隆":"hōng lōng","化子":"huà zi","内蒙":"nèi měng","数落":"shǔ luò","逆差":"nì chā","牟利":"móu lì","栅栏":"zhà lan","中标":"zhòng biāo","调档":"diào dàng","佝偻":"gōu lóu","场子":"chǎng zi","甲壳":"jiǎ qiào","重温":"chóng wēn","炮制":"páo zhì","返还":"fǎn huán","自传":"zì zhuàn","高调":"gāo diào","殷红":"yān hóng","固着":"gù zhuó","强求":"qiǎng qiú","本相":"běn xiàng","骄横":"jiāo hèng","草率":"cǎo shuài","气闷":"qì mèn","着色":"zhuó sè","宁肯":"nìng kěn","兴头":"xìng tou","拘泥":"jū nì","夹角":"jiā jiǎo","发髻":"fà jì","猛将":"měng jiàng","约摸":"yuē mo","拖累":"tuō lěi","呢绒":"ní róng","钻探":"zuān tàn","夹层":"jiā céng","落魄":"luò pò","巷道":"hàng dào","运量":"yùn liàng","解闷":"jiě mèn","空儿":"kòng er","估摸":"gū mo","好客":"hào kè","钻孔":"zuān kǒng","糊弄":"hù nòng","荥阳":"xíng yáng","烦闷":"fán mèn","仓卒":"cāng cù","分叉":"fēn chà","厂子":"chǎng zi","小调":"xiǎo diào","少阳":"shào yáng","受降":"shòu xiáng","染坊":"rǎn fáng","胳臂":"gē bei","将门":"jiàng mén","模板":"mú bǎn","配给":"pèi jǐ","为伍":"wéi wǔ","跟头":"gēn tou","划算":"huá suàn","累赘":"léi zhui","哄笑":"hōng xiào","晕眩":"yūn xuàn","干掉":"gàn diào","缝制":"féng zhì","难处":"nán chù","着意":"zhuó yì","蛮横":"mán hèng","奇数":"jī shù","短发":"duǎn fà","生还":"shēng huán","还清":"huán qīng","看护":"kān hù","直率":"zhí shuài","奏乐":"zòu yuè","载客":"zài kè","专横":"zhuān hèng","湮没":"yān mò","空格":"kòng gé","铺垫":"pū diàn","良将":"liáng jiàng","哗啦":"huā lā","散漫":"sǎn màn","脱发":"tuō fà","送还":"sòng huán","埋没":"mái mò","累及":"lěi jí","薄雾":"bó wù","调离":"diào lí","舌苔":"shé tāi","机长":"jī zhǎng","栓塞":"shuān sè","配角":"pèi jué","切口":"qiē kǒu","创口":"chuāng kǒu","哈欠":"hā qian","实弹":"shí dàn","铺平":"pū píng","哈达":"hǎ dá","懒散":"lǎn sǎn","实干":"shí gàn","填空":"tián kòng","刁钻":"diāo zuān","乐师":"yuè shī","量变":"liàng biàn","诱降":"yòu xiáng","搪塞":"táng sè","征调":"zhēng diào","夹道":"jiā dào","干咳":"gān ké","止咳":"zhǐ ké","乐工":"yuè gōng","划过":"huá guò","着火":"zháo huǒ","更正":"gēng zhèng","给付":"jǐ fù","空子":"kòng zi","哪吒":"né zhā","正着":"zhèng zháo","刷子":"shuā zi","丧葬":"sāng zàng","夹带":"jiā dài","安分":"ān fèn","中意":"zhòng yì","长孙":"zhǎng sūn","校订":"jiào dìng","卷曲":"juǎn qū","载运":"zài yùn","投弹":"tóu dàn","柞蚕":"zuò cán","份量":"fèn liàng","调换":"diào huàn","了然":"liǎo rán","咧嘴":"liě zuǐ","典当":"diǎn dàng","寒假":"hán jià","长兄":"zhǎng xiōng","给水":"jǐ shuǐ","须发":"xū fà","枝干":"zhī gàn","属相":"shǔ xiàng","哄抢":"hōng qiǎng","刻划":"kè huà","塞子":"sāi zi","单干":"dān gàn","还乡":"huán xiāng","兆头":"zhào tou","寺观":"sì guàn","督率":"dū shuài","啊哈":"ā ha","割舍":"gē shě","抹布":"mā bù","好恶":"hào wù","下处":"xià chǔ","消长":"xiāo zhǎng","离间":"lí jiàn","准头":"zhǔn tou","校对":"jiào duì","什物":"shí wù","番禺":"pān yú","佛爷":"fó ye","吗啡":"mǎ fēi","盐分":"yán fèn","虎将":"hǔ jiàng","薄荷":"bò he","独处":"dú chǔ","空位":"kòng wèi","铺路":"pū lù","乌拉":"wū lā","调回":"diào huí","来头":"lái tou","闲散":"xián sǎn","胶卷":"jiāo juǎn","冒失":"mào shi","干劲":"gàn jìn","弦乐":"xián yuè","相国":"xiàng guó","丹参":"dān shēn","助兴":"zhù xìng","铺开":"pū kāi","次长":"cì zhǎng","发卡":"fà qiǎ","拮据":"jié jū","刹车":"shā chē","生发":"shēng fà","重播":"chóng bō","缝合":"féng hé","音量":"yīn liàng","少尉":"shào wèi","冲压":"chòng yā","苍劲":"cāng jìng","厚薄":"hòu báo","威吓":"wēi hè","外相":"wài xiàng","呼号":"hū háo","着迷":"zháo mí","挑担":"tiāo dàn","纹路":"wén lù","还俗":"huán sú","强横":"qiáng hèng","着数":"zhāo shù","降顺":"xiáng shùn","挑明":"tiǎo míng","眯缝":"mī feng","分内":"fèn nèi","更衣":"gēng yī","软和":"ruǎn huo","尽兴":"jìn xìng","号子":"hào zi","爪牙":"zhǎo yá","败将":"bài jiàng","猜中":"cāi zhòng","结扎":"jié zā","没空":"méi kòng","夹缝":"jiā fèng","拾掇":"shí duo","掺和":"chān huo","簸箕":"bò ji","电量":"diàn liàng","荷载":"hè zǎi","调式":"diào shì","处身":"chǔ shēn","打手":"dǎ shǒu","弹弓":"dàn gōng","横蛮":"hèng mán","能干":"néng gàn","校点":"jiào diǎn","加载":"jiā zài","干校":"gàn xiào","哄传":"hōng chuán","校注":"jiào zhù","淤塞":"yū sè","马扎":"mǎ zhá","月氏":"yuè zhī","高干":"gāo gàn","经传":"jīng zhuàn","曾孙":"zēng sūn","好斗":"hào dòu","关卡":"guān qiǎ","逃奔":"táo bèn","磨蹭":"mó ceng","牟取":"móu qǔ","颤栗":"zhàn lì","蚂蚱":"mà zha","撮合":"cuō he","趔趄":"liè qie","摔打":"shuāi dǎ","台子":"tái zi","分得":"fēn de","粘着":"nián zhuó","采邑":"cài yì","散装":"sǎn zhuāng","婀娜":"ē nuó","兴味":"xìng wèi","行头":"xíng tou","气量":"qì liàng","调运":"diào yùn","处治":"chǔ zhì","乐音":"yuè yīn","充塞":"chōng sè","恫吓":"dòng hè","论调":"lùn diào","相中":"xiāng zhòng","民乐":"mín yuè","炮仗":"pào zhang","丧服":"sāng fú","骁将":"xiāo jiàng","量刑":"liàng xíng","缝补":"féng bǔ","财会":"cái kuài","大干":"dà gàn","历数":"lì shǔ","校场":"jiào chǎng","塞北":"sài běi","识相":"shí xiàng","辱没":"rǔ mò","鲜亮":"xiān liàng","语塞":"yǔ sè","露脸":"lòu liǎn","凉快":"liáng kuai","腰杆":"yāo gǎn","溜达":"liū da","嘎嘎":"gā gā","公干":"gōng gàn","桔梗":"jié gěng","挑逗":"tiǎo dòu","看门":"kān mén","乐歌":"yuè gē","拓片":"tà piàn","挑动":"tiǎo dòng","准将":"zhǔn jiàng","遒劲":"qiú jìng","磨坊":"mò fáng","逶迤":"wēi yí","搅和":"jiǎo huo","摩挲":"mó suō","作弄":"zuò nòng","苗头":"miáo tou","打颤":"dǎ zhàn","大藏":"dà zàng","畜牲":"chù shēng","勾搭":"gōu da","树荫":"shù yīn","树杈":"shù chà","铁杆":"tiě gǎn","将相":"jiàng xiàng","份子":"fèn zi","视差":"shì chā","绿荫":"lǜ yīn","枪杆":"qiāng gǎn","缝纫":"féng rèn","愁闷":"chóu mèn","点将":"diǎn jiàng","华佗":"huà tuó","劲射":"jìng shè","箱笼":"xiāng lǒng","终了":"zhōng liǎo","鬓发":"bìn fà","结巴":"jiē ba","苦干":"kǔ gàn","看家":"kān jiā","正旦":"zhēng dàn","中肯":"zhòng kěn","厦门":"xià mén","东莞":"dōng guǎn","食量":"shí liàng","宫调":"gōng diào","间作":"jiàn zuò","弹片":"dàn piàn","差池":"chā chí","漂白":"piǎo bái","杠子":"gàng zi","调处":"tiáo chǔ","好动":"hào dòng","转炉":"zhuàn lú","屏气":"bǐng qì","夹板":"jiā bǎn","哀乐":"āi yuè","干道":"gàn dào","苦处":"kǔ chù","劈柴":"pǐ chái","长势":"zhǎng shì","天华":"tiān huá","共处":"gòng chǔ","校验":"jiào yàn","出塞":"chū sài","磨盘":"mò pán","萎靡":"wěi mǐ","奔丧":"bēn sāng","唱和":"chàng hè","大调":"dà diào","非分":"fēi fèn","钻营":"zuān yíng","夹子":"jiā zi","超载":"chāo zài","更始":"gēng shǐ","铃铛":"líng dang","披散":"pī sàn","发还":"fā huán","转轮":"zhuàn lún","横财":"hèng cái","泡桐":"pāo tóng","抛撒":"pāo sǎ","天呀":"tiān yā","糊糊":"hū hu","躯壳":"qū qiào","通量":"tōng liàng","奉还":"fèng huán","午觉":"wǔ jiào","闷棍":"mèn gùn","浪头":"làng tou","砚台":"yàn tái","油坊":"yóu fáng","学长":"xué zhǎng","过载":"guò zài","笔调":"bǐ diào","衣被":"yī bèi","畜产":"xù chǎn","调阅":"diào yuè","蛮干":"mán gàn","曾祖":"zēng zǔ","提干":"tí gàn","变调":"biàn diào","覆没":"fù mò","模子":"mú zi","乐律":"yuè lǜ","称心":"chèn xīn","木杆":"mù gān","重印":"chóng yìn","自省":"zì xǐng","提调":"tí diào","看相":"kàn xiàng","芋头":"yù tou","下切":"xià qiē","塞上":"sài shàng","铺张":"pū zhāng","藤蔓":"téng wàn","薄幸":"bó xìng","解数":"xiè shù","褪去":"tuì qù","霰弹":"xiàn dàn","柚木":"yóu mù","痕量":"hén liàng","雅乐":"yǎ yuè","号哭":"háo kū","诈降":"zhà xiáng","猪圈":"zhū juàn","咋舌":"zé shé","铣床":"xǐ chuáng","防弹":"fáng dàn","健将":"jiàn jiàng","丽水":"lí shuǐ","削发":"xuē fà","空当":"kòng dāng","多相":"duō xiàng","鲜见":"xiǎn jiàn","划桨":"huá jiǎng","载波":"zài bō","跳蚤":"tiào zao","俏皮":"qiào pí","吧嗒":"bā dā","结发":"jié fà","了断":"liǎo duàn","同调":"tóng diào","石磨":"shí mò","时差":"shí chā","鼻塞":"bí sè","挑子":"tiāo zi","推磨":"tuī mò","武侯":"wǔ hóu","抹煞":"mǒ shā","调转":"diào zhuǎn","籍没":"jí mò","还债":"huán zhài","调演":"diào yǎn","分划":"fēn huá","奇偶":"jī ǒu","断喝":"duàn hè","闷雷":"mèn léi","狼藉":"láng jí","饭量":"fàn liàng","还礼":"huán lǐ","转调":"zhuǎn diào","星相":"xīng xiàng","手相":"shǒu xiàng","配乐":"pèi yuè","盖头":"gài tou","连杆":"lián gǎn","簿记":"bù jì","刀把":"dāo bà","量词":"liàng cí","名角":"míng jué","步调":"bù diào","校本":"jiào běn","账簿":"zhàng bù","隽永":"juàn yǒng","稍为":"shāo wéi","易传":"yì zhuàn","乐谱":"yuè pǔ","牵累":"qiān lěi","答理":"dā li","喝斥":"hè chì","吟哦":"yín é","干渠":"gàn qú","海量":"hǎi liàng","精当":"jīng dàng","着床":"zhuó chuáng","月相":"yuè xiàng","庶几":"shù jī","宫观":"gōng guàn","论处":"lùn chǔ","征辟":"zhēng bì","厚朴":"hòu pò","介壳":"jiè qiào","吭哧":"kēng chī","咯血":"kǎ xiě","铺陈":"pū chén","重生":"chóng shēng","乐理":"yuè lǐ","哀号":"āi háo","藏历":"zàng lì","刚劲":"gāng jìng","削平":"xuē píng","浓荫":"nóng yīn","城垛":"chéng duǒ","当差":"dāng chāi","正传":"zhèng zhuàn","并处":"bìng chǔ","创面":"chuāng miàn","旦角":"dàn jué","薄礼":"bó lǐ","晃荡":"huàng dang","臊子":"sào zi","家什":"jiā shí","闷头":"mēn tóu","美发":"měi fà","度数":"dù shu","着凉":"zháo liáng","闯将":"chuǎng jiàng","几案":"jī àn","姘头":"pīn tou","差数":"chā shù","散碎":"sǎn suì","壅塞":"yōng sè","寒颤":"hán zhàn","牵强":"qiān qiǎng","无间":"wú jiàn","轮转":"lún zhuàn","号叫":"háo jiào","铺排":"pū pái","降伏":"xiáng fú","轧钢":"zhá gāng","东阿":"dōng ē","病假":"bìng jià","累加":"lěi jiā","梗塞":"gěng sè","弹夹":"dàn jiā","钻心":"zuān xīn","晃眼":"huǎng yǎn","魔爪":"mó zhǎo","标量":"biāo liàng","憋闷":"biē mèn","猜度":"cāi duó","处士":"chǔ shì","官差":"guān chāi","讨还":"tǎo huán","长门":"cháng mén","馏分":"liú fēn","里弄":"lǐ lòng","色相":"sè xiàng","雅兴":"yǎ xìng","角力":"jué lì","弹坑":"dàn kēng","枝杈":"zhī chà","夹具":"jiā jù","处刑":"chǔ xíng","悍将":"hàn jiàng","好学":"hào xué","好好":"hǎo hǎo","银发":"yín fà","扫把":"sào bǎ","法相":"fǎ xiàng","贵干":"guì gàn","供气":"gōng qì","空余":"kòng yú","捆扎":"kǔn zā","瘠薄":"jí bó","浆糊":"jiàng hu","嘎吱":"gā zhī","调令":"diào lìng","法帖":"fǎ tiè","淋病":"lìn bìng","调派":"diào pài","转盘":"zhuàn pán","供稿":"gōng gǎo","差官":"chāi guān","忧闷":"yōu mèn","教长":"jiào zhǎng","重唱":"chóng chàng","酒兴":"jiǔ xìng","乐坛":"yuè tán","花呢":"huā ní","叱喝":"chì hè","膀臂":"bǎng bì","得空":"dé kòng","转圈":"zhuàn quān","横暴":"hèng bào","哄抬":"hōng tái","引吭":"yǐn háng","载货":"zài huò","中计":"zhòng jì","官长":"guān zhǎng","相面":"xiàng miàn","看头":"kàn tou","盼头":"pàn tou","意兴":"yì xìng","军乐":"jūn yuè","累次":"lěi cì","骨嘟":"gǔ dū","燕赵":"yān zhào","报丧":"bào sāng","弥撒":"mí sa","挨斗":"ái dòu","扁舟":"piān zhōu","丑角":"chǒu jué","吊丧":"diào sāng","强将":"qiáng jiàng","重奏":"chóng zòu","发辫":"fà biàn","着魔":"zháo mó","着法":"zhāo fǎ","盛放":"shèng fàng","填塞":"tián sè","凶横":"xiōng hèng","稽首":"qǐ shǒu","碑帖":"bēi tiè","冲量":"chōng liàng","发菜":"fà cài","假发":"jiǎ fà","翻卷":"fān juǎn","小量":"xiǎo liàng","胶着":"jiāo zhuó","里子":"lǐ zi","调调":"diào diao","散兵":"sǎn bīng","高挑":"gāo tiǎo","播撒":"bō sǎ","夹心":"jiā xīn","扇动":"shān dòng","叨扰":"tāo rǎo","霓裳":"ní cháng","捻子":"niǎn zi","弥缝":"mí féng","撒布":"sǎ bù","场院":"cháng yuàn","省亲":"xǐng qīn","提拉":"tí lā","惯量":"guàn liàng","强逼":"qiáng bī","强征":"qiáng zhēng","晕车":"yùn chē","数道":"shù dào","带累":"dài lèi","拓本":"tà běn","嫌恶":"xián wù","宿将":"sù jiàng","龟裂":"jūn liè","缠夹":"chán jiā","发式":"fà shì","隔扇":"gé shàn","天分":"tiān fèn","癖好":"pǐ hào","四通":"sì tōng","白术":"bái zhú","划伤":"huá shāng","角斗":"jué dòu","听差":"tīng chāi","岁差":"suì chā","丧礼":"sāng lǐ","脉脉":"mò mò","削瘦":"xuē shòu","撒播":"sǎ bō","莎草":"suō cǎo","犍为":"qián wéi","调头":"diào tóu","龙卷":"lóng juǎn","外调":"wài diào","字帖":"zì tiè","卷发":"juǎn fà","揣度":"chuǎi duó","洋相":"yáng xiàng","散光":"sǎn guāng","骨碌":"gū lu","薄命":"bó mìng","笼头":"lóng tóu","咽炎":"yān yán","碌碡":"liù zhou","片儿":"piàn er","纤手":"qiàn shǒu","散体":"sǎn tǐ","内省":"nèi xǐng","强留":"qiáng liú","解送":"jiè sòng","反间":"fǎn jiàn","少壮":"shào zhuàng","留空":"liú kōng","告假":"gào jià","咳血":"ké xuè","薄暮":"bó mù","铺轨":"pū guǐ","磨削":"mó xuē","治丧":"zhì sāng","叉子":"chā zi","哄动":"hōng dòng","蛾子":"é zi","出落":"chū luò","股长":"gǔ zhǎng","贵处":"guì chù","还魂":"huán hún","例假":"lì jià","刹住":"shā zhù","身量":"shēn liàng","同好":"tóng hào","模量":"mó liàng","更生":"gēng shēng","服丧":"fú sāng","率直":"shuài zhí","字模":"zì mú","散架":"sǎn jià","答腔":"dā qiāng","交恶":"jiāo wù","薄情":"bó qíng","眼泡":"yǎn pāo","袅娜":"niǎo nuó","草垛":"cǎo duò","冲劲":"chòng jìn","呢喃":"ní nán","切中":"qiè zhòng","挑灯":"tiǎo dēng","还愿":"huán yuàn","激将":"jī jiàng","更鼓":"gēng gǔ","没药":"mò yào","败兴":"bài xìng","切面":"qiē miàn","散户":"sǎn hù","累进":"lěi jìn","背带":"bēi dài","秤杆":"chèng gǎn","碾坊":"niǎn fáng","簿子":"bù zi","扳手":"bān shǒu","铅山":"yán shān","儒将":"rú jiàng","重光":"chóng guāng","剪发":"jiǎn fà","长上":"zhǎng shàng","小传":"xiǎo zhuàn","压轴":"yā zhòu","弱冠":"ruò guàn","花卷":"huā juǎn","横祸":"hèng huò","夹克":"jiā kè","光晕":"guāng yùn","披靡":"pī mǐ","对调":"duì diào","夹持":"jiā chí","空额":"kòng é","平调":"píng diào","铺床":"pū chuáng","丧钟":"sāng zhōng","作乐":"zuò lè","少府":"shào fǔ","数数":"shuò shuò","奔头":"bèn tou","进给":"jìn jǐ","率性":"shuài xìng","乐子":"lè zi","绑扎":"bǎng zā","挑唆":"tiǎo suō","漂洗":"piǎo xǐ","夹墙":"jiā qiáng","咳喘":"ké chuǎn","乜斜":"miē xie","错处":"cuò chù","闷酒":"mèn jiǔ","时调":"shí diào","重孙":"chóng sūn","经幢":"jīng chuáng","圩场":"xū chǎng","调门":"diào mén","花头":"huā tóu","划拉":"huá la","套色":"tào shǎi","粗率":"cū shuài","相率":"xiāng shuài","款识":"kuǎn zhì","吁请":"yù qǐng","荫蔽":"yīn bì","文蛤":"wén gé","嘀嗒":"dī dā","调取":"diào qǔ","交差":"jiāo chāi","落子":"luò zǐ","相册":"xiàng cè","絮叨":"xù dao","落发":"luò fà","异相":"yì xiàng","浸没":"jìn mò","角抵":"jué dǐ","卸载":"xiè zài","春卷":"chūn juǎn","扎挣":"zhá zheng","畜养":"xù yǎng","吡咯":"bǐ luò","垛子":"duò zi","恶少":"è shào","发际":"fà jì","红苕":"hóng sháo","糨糊":"jiàng hu","哭丧":"kū sāng","稍息":"shào xī","晕船":"yùn chuán","校样":"jiào yàng","外差":"wài chā","脚爪":"jiǎo zhǎo","铺展":"pū zhǎn","芫荽":"yán sui","夹紧":"jiā jǐn","尿泡":"suī pào","丧乱":"sāng luàn","凶相":"xiōng xiàng","华发":"huá fà","打场":"dǎ cháng","云量":"yún liàng","正切":"zhèng qiē","划拳":"huá quán","划艇":"huá tǐng","评传":"píng zhuàn","拉纤":"lā qiàn","句读":"jù dòu","散剂":"sǎn jì","骨殖":"gǔ shi","塞音":"sè yīn","铺叙":"pū xù","阏氏":"yān zhī","冷颤":"lěng zhàn","煞住":"shā zhù","少男":"shào nán","管乐":"guǎn yuè","号啕":"háo táo","纳降":"nà xiáng","拥塞":"yōng sè","万乘":"wàn shèng","杆儿":"gǎn ér","葛藤":"gé téng","簿籍":"bù jí","皮夹":"pí jiā","校准":"jiào zhǔn","允当":"yǔn dàng","器量":"qì liàng","选调":"xuǎn diào","扮相":"bàn xiàng","干才":"gàn cái","基干":"jī gàn","割切":"gē qiē","国乐":"guó yuè","卡壳":"qiǎ ké","辟谷":"bì gǔ","磨房":"mò fáng","咿呀":"yī yā","芥末":"jiè mo","薄技":"bó jì","产假":"chǎn jià","诗兴":"shī xìng","重出":"chóng chū","转椅":"zhuàn yǐ","酌量":"zhuó liang","簿册":"bù cè","藏青":"zàng qīng","的士":"dī shì","调人":"diào rén","解元":"jiè yuán","茎干":"jīng gàn","巨量":"jù liàng","榔头":"láng tou","率真":"shuài zhēn","喷香":"pèn xiāng","锁钥":"suǒ yuè","虾蟆":"há má","相图":"xiàng tú","兴会":"xìng huì","灶头":"zào tóu","重婚":"chóng hūn","钻洞":"zuān dòng","忖度":"cǔn duó","党参":"dǎng shēn","调温":"diào wēn","杆塔":"gān tǎ","葛布":"gé bù","拱券":"gǒng xuàn","夹生":"jiā shēng","露馅":"lòu xiàn","恰切":"qià qiè","散见":"sǎn jiàn","哨卡":"shào qiǎ","烫发":"tàng fà","体量":"tǐ liàng","挺括":"tǐng kuò","系带":"jì dài","相士":"xiàng shì","羊圈":"yáng juàn","转矩":"zhuàn jǔ","吧台":"bā tái","苍术":"cāng zhú","菲薄":"fěi bó","蛤蚧":"gé jiè","蛤蜊":"gé lí","瓜蔓":"guā wàn","怪相":"guài xiàng","临帖":"lín tiè","女红":"nǚ gōng","刨床":"bào chuáng","翘楚":"qiáo chǔ","数九":"shǔ jiǔ","谈兴":"tán xìng","雄劲":"xióng jìng","扎染":"zā rǎn","遮荫":"zhē yīn","周正":"zhōu zhèng","赚头":"zhuàn tou","扒手":"pá shǒu","搀和":"chān huo","诚朴":"chéng pǔ","肚量":"dù liàng","干结":"gān jié","工尺":"gōng chě","家累":"jiā lěi","曲水":"qū shuǐ","沙参":"shā shēn","挑花":"tiǎo huā","阿门":"ā mén","背篓":"bēi lǒu","瘪三":"biē sān","裁处":"cái chǔ","创痛":"chuāng tòng","福相":"fú xiàng","更动":"gēng dòng","豪兴":"háo xìng","还阳":"huán yáng","还嘴":"huán zuǐ","借调":"jiè diào","卷云":"juǎn yún","流弹":"liú dàn","想头":"xiǎng tou","削价":"xuē jià","校阅":"jiào yuè","雅量":"yǎ liàng","别传":"bié zhuàn","薄酒":"bó jiǔ","春假":"chūn jià","发妻":"fà qī","哗哗":"huā huā","宽绰":"kuān chuo","了悟":"liǎo wù","切花":"qiē huā","审度":"shěn duó","应许":"yīng xǔ","转台":"zhuàn tái","仔猪":"zǐ zhū","裁量":"cái liáng","藏戏":"zàng xì","乘兴":"chéng xìng","绸缪":"chóu móu","摧折":"cuī zhé","调经":"tiáo jīng","调职":"diào zhí","缝缀":"féng zhuì","骨朵":"gū duǒ","核儿":"hú er","恒量":"héng liàng","还价":"huán jià","浑朴":"hún pǔ","苦差":"kǔ chāi","面糊":"miàn hù","煞车":"shā chē","省视":"xǐng shì","什锦":"shí jǐn","信差":"xìn chāi","余切":"yú qiē","攒眉":"cuán méi","炸糕":"zhá gāo","钻杆":"zuàn gǎn","扒灰":"pá huī","拌和":"bàn huò","长调":"cháng diào","大溜":"dà liù","抖搂":"dǒu lōu","飞转":"fēi zhuàn","干仗":"gàn zhàng","好胜":"hào shèng","画片":"huà piàn","搅混":"jiǎo hún","螺杆":"luó gǎn","木模":"mù mú","怒号":"nù háo","频数":"pín shù","无宁":"wú níng","遗少":"yí shào","邮差":"yóu chāi","占卦":"zhān guà","占星":"zhān xīng","重审":"chóng shěn","自量":"zì liàng","调防":"diào fáng","发廊":"fà láng","反调":"fǎn diào","缝子":"fèng zi","更夫":"gēng fū","骨子":"gǔ zi","光杆":"guāng gǎn","夹棍":"jiā gùn","居丧":"jū sāng","巨贾":"jù gǔ","看押":"kān yā","空转":"kōng zhuàn","量力":"liàng lì","炮烙":"páo luò","赔还":"péi huán","扑扇":"pū shān","散记":"sǎn jì","散件":"sǎn jiàn","删削":"shān xuē","射干":"shè gàn","条几":"tiáo jī","偷空":"tōu kòng","削壁":"xuē bì","校核":"jiào hé","阴干":"yīn gān","择菜":"zhái cài","重九":"chóng jiǔ","主调":"zhǔ diào","自禁":"zì jīn","吧唧":"bā jī","便溺":"biàn niào","词调":"cí diào","叨咕":"dáo gu","落枕":"lào zhěn","铺砌":"pū qì","刷白":"shuà bái","委靡":"wěi mǐ","系泊":"xì bó","相马":"xiàng mǎ","熨帖":"yù tiē","转筋":"zhuàn jīn","棒喝":"bàng hè","傧相":"bīn xiàng","镐头":"gǎo tóu","间苗":"jiàn miáo","乐池":"yuè chí","卖相":"mài xiàng","屏弃":"bǐng qì","铅弹":"qiān dàn","切变":"qiē biàn","请调":"qǐng diào","群氓":"qún méng","散板":"sǎn bǎn","省察":"xǐng chá","事假":"shì jià","纤绳":"qiàn shéng","重影":"chóng yǐng","耕种":"gēng zhòng","种地":"zhòng dì","种菜":"zhòng cài","栽种":"zāi zhòng","接种":"jiē zhòng","垦种":"kěn zhòng","种殖":"zhòng zhí","种瓜":"zhòng guā","种豆":"zhòng dòu","种树":"zhòng shù","睡着":"shuì zháo","笼子":"lóng zi","重启":"chóng qǐ","重整":"chóng zhěng","重弹":"chóng tán","重足":"chóng zú","重山":"chóng shān","重游":"chóng yóu","重峦":"chóng luán","爷爷":"yé ye","奶奶":"nǎi nai","姥爷":"lǎo ye","爸爸":"bà ba","妈妈":"mā ma","婶婶":"shěn shen","舅舅":"jiù jiu","姑姑":"gū gu","叔叔":"shū shu","姨夫":"yí fu","舅母":"jiù mu","姑父":"gū fu","姐夫":"jiě fu","婆婆":"pó po","公公":"gōng gong","舅子":"jiù zi","姐姐":"jiě jie","哥哥":"gē ge","妹妹":"mèi mei","妹夫":"mèi fu","姨子":"yí zi","宝宝":"bǎo bao","娃娃":"wá wa","孩子":"hái zi","日子":"rì zi","样子":"yàng zi","狮子":"shī zi","身子":"shēn zi","架子":"jià zi","嫂子":"sǎo zi","鼻子":"bí zi","亭子":"tíng zi","折子":"zhé zi","面子":"miàn zi","脖子":"bó zi","辈子":"bèi zi","帽子":"mào zi","拍子":"pāi zi","柱子":"zhù zi","辫子":"biàn zi","鸽子":"gē zi","房子":"fáng zi","丸子":"wán zi","摊子":"tān zi","牌子":"pái zi","胡子":"hú zi","鬼子":"guǐ zi","矮子":"ǎi zi","鸭子":"yā zi","小子":"xiǎo zi","影子":"yǐng zi","屋子":"wū zi","对子":"duì zi","点子":"diǎn zi","本子":"běn zi","种子":"zhǒng zi","儿子":"ér zi","兔子":"tù zi","骗子":"piàn zi","院子":"yuàn zi","猴子":"hóu zi","嗓子":"sǎng zi","侄子":"zhí zi","柿子":"shì zi","钳子":"qián zi","虱子":"shī zi","瓶子":"píng zi","豹子":"bào zi","筷子":"kuài zi","篮子":"lán zi","绳子":"shéng zi","嘴巴":"zuǐ ba","耳朵":"ěr duo","茄子":"qié zi","蚌埠":"bèng bù","崆峒":"kōng tóng","琵琶":"pí pa","蘑菇":"mó gu","葫芦":"hú lu","狐狸":"hú li","桔子":"jú zi","盒子":"hé zi","桌子":"zhuō zi","竹子":"zhú zi","师傅":"shī fu","衣服":"yī fu","袜子":"wà zi","杯子":"bēi zi","刺猬":"cì wei","麦子":"mài zi","队伍":"duì wu","知了":"zhī liǎo","鱼儿":"yú er","馄饨":"hún tun","灯笼":"dēng long","庄稼":"zhuāng jia","聪明":"cōng ming","镜子":"jìng zi","银子":"yín zi","盘子":"pán zi","了却":"liǎo què","力气":"lì qi","席子":"xí zi","林子":"lín zi","朝霞":"zhāo xiá","朝夕":"zhāo xī","朝气":"zhāo qì","翅膀":"chì bǎng","省长":"shěng zhǎng","臧否":"zāng pǐ","否泰":"pǐ tài","变得":"biàn de","丈夫":"zhàng fu","豆腐":"dòu fu","笔杆":"bǐ gǎn","枞阳":"zōng yáng","行人":"xíng rén","打着":"dǎ zhe","第一":"dì yī","万一":"wàn yī","之一":"zhī yī","得之":"dé zhī","统一":"tǒng yī","唯一":"wéi yī","专一":"zhuān yī","单一":"dān yī","如一":"rú yī","其一":"qí yī","合一":"hé yī","逐一":"zhú yī","周一":"zhōu yī","初一":"chū yī","研一":"yán yī","归一":"guī yī","假一":"jiǎ yī","闻一":"wén yī","了了":"liǎo liǎo","公了":"gōng liǎo","私了":"sī liǎo","一月":"yī yuè","一号":"yī hào","一级":"yī jí","一等":"yī děng","一哥":"yī gē","月一":"yuè yī","一一":"yī yī","二一":"èr yī","三一":"sān yī","四一":"sì yī","五一":"wǔ yī","六一":"liù yī","七一":"qī yī","八一":"bā yī","九一":"jiǔ yī","一〇":"yī líng","一零":"yī líng","一二":"yī èr","一三":"yī sān","一四":"yī sì","一五":"yī wǔ","一六":"yī liù","一七":"yī qī","一八":"yī bā","一九":"yī jiǔ","一又":"yī yòu","一饼":"yī bǐng","一楼":"yī lóu","为例":"wéi lì","为准":"wéi zhǔn","沧海":"cāng hǎi","难为":"nán wéi","责难":"zé nàn","患难":"huàn nàn","磨难":"mó nàn","大难":"dà nàn","刁难":"diāo nàn","殉难":"xùn nàn","落难":"luò nàn","罹难":"lí nàn","灾难":"zāi nàn","难民":"nàn mín","苦难":"kǔ nàn","危难":"wēi nàn","发难":"fā nàn","逃难":"táo nàn","避难":"bì nàn","遇难":"yù nàn","阻难":"zǔ nàn","厄难":"è nàn","徇难":"xùn nàn","空难":"kōng nàn","喜欢":"xǐ huan","朝朝":"zhāo zhāo","不行":"bù xíng","轧轧":"yà yà","弯曲":"wān qū","扭曲":"niǔ qū","曲直":"qū zhí","委曲":"wěi qū","酒曲":"jiǔ qū","曲径":"qū jìng","曲解":"qū jiě","歪曲":"wāi qū","曲线":"qū xiàn","曲阜":"qū fù","九曲":"jiǔ qū","曲折":"qū zhé","曲肱":"qū gōng","曲意":"qū yì","仡佬":"gē lǎo"},ro=Object.keys(ao).map(e=>({zh:e,pinyin:ao[e],probability:2e-8,length:2,priority:1,dict:Symbol("dict2")})),lo={"为什么":"wèi shén me","实际上":"shí jì shang","检察长":"jiǎn chá zhǎng","干什么":"gàn shén me","这会儿":"zhè huì er","尽可能":"jǐn kě néng","董事长":"dǒng shì zhǎng","了不起":"liǎo bù qǐ","参谋长":"cān móu zhǎng","朝鲜族":"cháo xiǎn zú","海内外":"hǎi nèi wài","禁不住":"jīn bú zhù","柏拉图":"bó lā tú","不在乎":"bú zài hu","洛杉矶":"luò shān jī","有点儿":"yǒu diǎn er","迫击炮":"pǎi jī pào","不得了":"bù dé liǎo","马尾松":"mǎ wěi sōng","运输量":"yùn shū liàng","发脾气":"fā pí qi","士大夫":"shì dà fū","鸭绿江":"yā lù jiāng","压根儿":"yà gēn er","对得起":"duì de qǐ","那会儿":"nà huì er","自个儿":"zì gě er","物理量":"wù lǐ liàng","怎么着":"zěn me zhāo","明晃晃":"míng huǎng huǎng","节假日":"jié jià rì","心里话":"xīn lǐ huà","发行量":"fā xíng liàng","兴冲冲":"xìng chōng chōng","分子量":"fēn zǐ liàng","国子监":"guó zǐ jiàn","老大难":"lǎo dà nán","党内外":"dǎng nèi wài","这么着":"zhè me zhāo","少奶奶":"shào nǎi nai","暗地里":"àn dì lǐ","更年期":"gēng nián qī","工作量":"gōng zuò liàng","背地里":"bèi dì lǐ","山里红":"shān li hóng","好好儿":"hǎo hāo er","交响乐":"jiāo xiǎng yuè","好意思":"hǎo yì si","吐谷浑":"tǔ yù hún","没意思":"méi yì si","理发师":"lǐ fà shī","塔什干":"tǎ shí gān","充其量":"chōng qí liàng","靠得住":"kào de zhù","车行道":"chē xíng dào","人行道":"rén xíng dào","中郎将":"zhōng láng jiàng","照明弹":"zhào míng dàn","烟幕弹":"yān mù dàn","没奈何":"mò nài hé","乱哄哄":"luàn hōng hōng","惠更斯":"huì gēng sī","载重量":"zài zhòng liàng","瞧得起":"qiáo de qǐ","纪传体":"jì zhuàn tǐ","阿房宫":"ē páng gōng","卷心菜":"juǎn xīn cài","戏班子":"xì bān zi","过得去":"guò de qù","花岗石":"huā gāng shí","外甥女":"wài sheng nǚ","团团转":"tuán tuán zhuàn","大堡礁":"dà bǎo jiāo","燃烧弹":"rán shāo dàn","劳什子":"láo shí zi","摇滚乐":"yáo gǔn yuè","夹竹桃":"jiā zhú táo","闹哄哄":"nào hōng hōng","三连冠":"sān lián guàn","重头戏":"zhòng tóu xì","二人转":"èr rén zhuàn","节骨眼":"jiē gǔ yǎn","知识面":"zhī shi miàn","护士长":"hù shi zhǎng","信号弹":"xìn hào dàn","干电池":"gān diàn chí","枪杆子":"qiāng gǎn zi","哭丧棒":"kū sāng bàng","鼻咽癌":"bí yān ái","瓦岗军":"wǎ gāng jūn","买得起":"mǎi de qǐ","癞蛤蟆":"lài há ma","脊梁骨":"jǐ liang gǔ","子母弹":"zǐ mǔ dàn","开小差":"kāi xiǎo chāi","女强人":"nǚ qiáng rén","英雄传":"yīng xióng zhuàn","爵士乐":"jué shì yuè","说笑话":"shuō xiào hua","碰头会":"pèng tóu huì","玻璃钢":"bō li gāng","曳光弹":"yè guāng dàn","少林拳":"shào lín quán","咏叹调":"yǒng tàn diào","少先队":"shào xiān duì","灵长目":"líng zhǎng mù","对着干":"duì zhe gàn","蒙蒙亮":"méng méng liàng","软骨头":"ruǎn gǔ tou","铺盖卷":"pū gài juǎn","和稀泥":"huò xī ní","背黑锅":"bēi hēi guō","红彤彤":"hóng tōng tōng","武侯祠":"wǔ hóu cí","打哆嗦":"dǎ duō suo","户口簿":"hù kǒu bù","马尾藻":"mǎ wěi zǎo","夜猫子":"yè māo zi","打手势":"dǎ shǒu shì","龙王爷":"lóng wáng yé","气头上":"qì tóu shang","糊涂虫":"hú tu chóng","笔杆子":"bǐ gǎn zi","占便宜":"zhàn pián yi","打主意":"dǎ zhǔ yì","多弹头":"duō dàn tóu","露一手":"lòu yì shǒu","堰塞湖":"yàn sè hú","保得住":"bǎo de zhù","趵突泉":"bào tū quán","奥得河":"ào de hé","司务长":"sī wù zhǎng","禁不起":"jīn bù qǐ","什刹海":"shí chà hǎi","莲花落":"lián huā lào","见世面":"jiàn shì miàn","豁出去":"huō chū qù","电位差":"diàn wèi chā","挨个儿":"āi gè er","那阵儿":"nà zhèn er","肺活量":"fèi huó liàng","大师傅":"dà shī fu","掷弹筒":"zhì dàn tǒng","打呼噜":"dǎ hū lu","广渠门":"ān qú mén","未见得":"wèi jiàn dé","大婶儿":"dà shěn er","谈得来":"tán de lái","脚丫子":"jiǎo yā zi","空包弹":"kōng bāo dàn","窝里斗":"wō li dòu","弹着点":"dàn zhuó diǎn","个头儿":"gè tóu er","看得起":"kàn de qǐ","糊涂账":"hú tu zhàng","大猩猩":"dà xīng xing","禁得起":"jīn de qǐ","法相宗":"fǎ xiàng zōng","可怜相":"kě lián xiàng","吃得下":"chī de xià","汉堡包":"hàn bǎo bāo","闹嚷嚷":"nào rāng rāng","数来宝":"shǔ lái bǎo","合得来":"hé de lái","干性油":"gān xìng yóu","闷葫芦":"mèn hú lu","呱呱叫":"guā guā jiào","西洋参":"xī yáng shēn","林荫道":"lín yīn dào","拉家常":"lā jiā cháng","卷铺盖":"juǎn pū gài","过得硬":"guò de yìng","飞将军":"fēi jiāng jūn","挑大梁":"tiǎo dà liáng","哈巴狗":"hǎ ba gǒu","过家家":"guò jiā jiā","催泪弹":"cuī lèi dàn","雨夹雪":"yǔ jiā xuě","敲竹杠":"qiāo zhú gàng","列车长":"liè chē zhǎng","华达呢":"huá dá ní","犯得着":"fàn de zháo","土疙瘩":"tǔ gē da","煞风景":"shā fēng jǐng","轻量级":"qīng liàng jí","羞答答":"xiū dā dā","石子儿":"shí zǐ er","达姆弹":"dá mǔ dàn","科教片":"kē jiào piān","侃大山":"kǎn dà shān","丁点儿":"dīng diǎn er","吃得消":"chī de xiāo","捋虎须":"luō hǔ xū","高丽参":"gāo lí shēn","众生相":"zhòng shēng xiàng","咽峡炎":"yān xiá yán","禁得住":"jīn de zhù","吃得开":"chī de kāi","柞丝绸":"zuò sī chóu","应声虫":"yìng shēng chóng","数得着":"shǔ de zháo","傻劲儿":"shǎ jìn er","铅玻璃":"qiān bō li","可的松":"kě dì sōng","划得来":"huá de lái","晕乎乎":"yūn hū hū","屎壳郎":"shǐ ke làng","尥蹶子":"liào juě zi","藏红花":"zàng hóng huā","闷罐车":"mèn guàn chē","卡脖子":"qiǎ bó zi","红澄澄":"hóng deng deng","赶得及":"gǎn de jí","当间儿":"dāng jiàn er","露马脚":"lòu mǎ jiǎo","鸡内金":"jī nèi jīn","犯得上":"fàn de shàng","钉齿耙":"dīng chǐ bà","饱和点":"bǎo hé diǎn","龙爪槐":"lóng zhǎo huái","喝倒彩":"hè dào cǎi","定冠词":"dìng guàn cí","担担面":"dàn dan miàn","吃得住":"chī de zhù","爪尖儿":"zhuǎ jiān er","支着儿":"zhī zhāo er","折跟头":"zhē gēn tou","阴着儿":"yīn zhāo er","烟卷儿":"yān juǎn er","宣传弹":"xuān chuán dàn","信皮儿":"xìn pí er","弦切角":"xián qiē jiǎo","缩砂密":"sù shā mì","说得来":"shuō de lái","水漂儿":"shuǐ piāo er","耍笔杆":"shuǎ bǐ gǎn","数得上":"shǔ de shàng","数不着":"shǔ bù zháo","数不清":"shǔ bù qīng","什件儿":"shí jiàn er","生死簿":"shēng sǐ bù","扇风机":"shān fēng jī","撒呓挣":"sā yì zheng","日记簿":"rì jì bù","热得快":"rè de kuài","亲家公":"qìng jia gōng","奇函数":"jī hán shù","拍纸簿":"pāi zhǐ bù","努劲儿":"nǔ jìn er","泥娃娃":"ní wá wa","内切圆":"nèi qiē yuán","哪会儿":"nǎ huì er","闷头儿":"mēn tóu er","没谱儿":"méi pǔ er","铆劲儿":"mǎo jìn er","溜肩膀":"liū jiān bǎng","了望台":"liào wàng tái","老来少":"lǎo lái shào","坤角儿":"kūn jué er","考勤簿":"kǎo qín bù","卷笔刀":"juǎn bǐ dāo","进给量":"jìn jǐ liàng","划不来":"huá bù lái","汗褂儿":"hàn guà er","鼓囊囊":"gǔ nāng nāng","够劲儿":"gòu jìn er","公切线":"gōng qiē xiàn","搁得住":"gé de zhù","赶浪头":"gǎn làng tóu","赶得上":"gǎn de shàng","干酵母":"gān jiào mǔ","嘎渣儿":"gā zhā er","嘎嘣脆":"gā bēng cuì","对得住":"duì de zhù","逗闷子":"dòu mèn zi","顶呱呱":"dǐng guā guā","滴溜儿":"dī liù er","大轴子":"dà zhòu zi","打板子":"dǎ bǎn zi","寸劲儿":"cùn jìn er","醋劲儿":"cù jìn er","揣手儿":"chuāi shǒu er","冲劲儿":"chòng jìn er","吃得来":"chī de lái","不更事":"bù gēng shì","奔头儿":"bèn tou er","百夫长":"bǎi fū zhǎng","娃娃亲":"wá wa qīn","死劲儿":"sǐ jìn er","骨朵儿":"gū duǒ er","功劳簿":"gōng láo bù","都江堰":"dū jiāng yàn","一担水":"yí dàn shuǐ","否极泰":"pǐ jí tài","泰来否":"tài lái pǐ","咳特灵":"ké tè líng","开户行":"kāi hù háng","郦食其":"lì yì jī","花事了":"huā shì liǎo","一更更":"yì gēng gēng","一重山":"yì chóng shān","风一更":"fēng yì gēng","雪一更":"xuě yì gēng","归一码":"guī yì mǎ","星期一":"xīng qī yī","礼拜一":"lǐ bài yī","一季度":"yī jì dù","一月一":"yī yuè yī","一字马":"yī zì mǎ","一是一":"yī shì yī","一次方":"yī cì fāng","一阳指":"yī yáng zhǐ","一字决":"yī zì jué","一年级":"yī nián jí","一不做":"yī bú zuò","屈戌儿":"qū qu ér","难为水":"nán wéi shuǐ","难为情":"nán wéi qíng","行一行":"xíng yì háng","别别的":"biè bié de","干哪行":"gàn nǎ háng","干一行":"gàn yì háng","曲别针":"qū bié zhēn"},co=Object.keys(lo).map(e=>({zh:e,pinyin:lo[e],probability:2e-8,length:3,priority:1,dict:Symbol("dict3")})),ho={"成吉思汗":"chéng jí sī hán","四通八达":"sì tōng bā dá","一模一样":"yì mú yí yàng","青藏高原":"qīng zàng gāo yuán","阿弥陀佛":"ē mí tuó fó","解放思想":"jiè fàng sī xiǎng","所作所为":"suǒ zuò suǒ wéi","迷迷糊糊":"mí mí hu hū","荷枪实弹":"hè qiāng shí dàn","兴高采烈":"xìng gāo cǎi liè","无能为力":"wú néng wéi lì","布鲁塞尔":"bù lǔ sài ěr","为所欲为":"wéi suǒ yù wéi","克什米尔":"kè shí mǐ ěr","没完没了":"méi wán méi liǎo","不为人知":"bù wéi rén zhī","结结巴巴":"jiē jiē bā bā","前仆后继":"qián pū hòu jì","铺天盖地":"pū tiān gài dì","直截了当":"zhí jié liǎo dàng","供不应求":"gōng bú yìng qiú","御史大夫":"yù shǐ dà fū","不为瓦全":"bù wéi wǎ quán","不可收拾":"bù kě shōu shi","胡作非为":"hú zuò fēi wéi","分毫不差":"fēn háo bú chà","模模糊糊":"mó mó hu hū","不足为奇":"bù zú wéi qí","悄无声息":"qiǎo wú shēng xī","了如指掌":"liǎo rú zhǐ zhǎng","深恶痛绝":"shēn wù tòng jué","高高兴兴":"gāo gāo xìng xìng","唉声叹气":"āi shēng tàn qì","汉藏语系":"hàn zàng yǔ xì","处心积虑":"chǔ xīn jī lǜ","泣不成声":"qì bù chéng shēng","半夜三更":"bàn yè sān gēng","失魂落魄":"shī hún luò pò","二十八宿":"èr shí bā xiù","转来转去":"zhuàn lái zhuàn qù","数以万计":"shǔ yǐ wàn jì","相依为命":"xiāng yī wéi mìng","恋恋不舍":"liàn liàn bù shě","屈指可数":"qū zhǐ kě shǔ","神出鬼没":"shén chū guǐ mò","结结实实":"jiē jiē shí shí","有的放矢":"yǒu dì fàng shǐ","叽哩咕噜":"jī lǐ gū lū","调兵遣将":"diào bīng qiǎn jiàng","载歌载舞":"zài gē zài wǔ","转危为安":"zhuǎn wēi wéi ān","踏踏实实":"tā tā shi shí","桑给巴尔":"sāng jǐ bā ěr","装模作样":"zhuāng mú zuò yàng","见义勇为":"jiàn yì yǒng wéi","相差无几":"xiāng chā wú jǐ","叹为观止":"tàn wéi guān zhǐ","闷闷不乐":"mèn mèn bú lè","喜怒哀乐":"xǐ nù āi lè","鲜为人知":"xiǎn wéi rén zhī","张牙舞爪":"zhāng yá wǔ zhǎo","为非作歹":"wéi fēi zuò dǎi","含糊其辞":"hán hú qí cí","疲于奔命":"pí yú bēn mìng","勉为其难":"miǎn wéi qí nán","依依不舍":"yī yī bù shě","顶头上司":"dǐng tóu shàng si","不着边际":"bù zhuó biān jì","大模大样":"dà mú dà yàng","寻欢作乐":"xún huān zuò lè","一走了之":"yì zǒu liǎo zhī","字里行间":"zì lǐ háng jiān","含含糊糊":"hán hán hu hū","恰如其分":"qià rú qí fèn","破涕为笑":"pò tì wéi xiào","深更半夜":"shēn gēng bàn yè","千差万别":"qiān chā wàn bié","数不胜数":"shǔ bú shèng shǔ","据为己有":"jù wéi jǐ yǒu","天旋地转":"tiān xuán dì zhuàn","养尊处优":"yǎng zūn chǔ yōu","玻璃纤维":"bō li xiān wéi","吵吵闹闹":"chāo chao nào nào","晕头转向":"yūn tóu zhuàn xiàng","土生土长":"tǔ shēng tǔ zhǎng","宁死不屈":"nìng sǐ bù qū","不省人事":"bù xǐng rén shì","尽力而为":"jìn lì ér wéi","精明强干":"jīng míng qiáng gàn","唠唠叨叨":"láo lao dāo dāo","叽叽喳喳":"jī ji zhā zhā","功不可没":"gōng bù kě mò","锲而不舍":"qiè ér bù shě","排忧解难":"pái yōu jiě nàn","稀里糊涂":"xī li hú tú","各有所长":"gè yǒu suǒ cháng","的的确确":"dí dí què què","哄堂大笑":"hōng táng dà xiào","听而不闻":"tīng ér bù wén","刀耕火种":"dāo gēng huǒ zhòng","内分泌腺":"nèi fèn mì xiàn","化险为夷":"huà xiǎn wéi yí","百发百中":"bǎi fā bǎi zhòng","重见天日":"chóng jiàn tiān rì","反败为胜":"fǎn bài wéi shèng","一了百了":"yì liǎo bǎi liǎo","大大咧咧":"dà da liē liē","心急火燎":"xīn jí huǒ liǎo","粗心大意":"cū xīn dà yi","鸡皮疙瘩":"jī pí gē da","夷为平地":"yí wéi píng dì","日积月累":"rì jī yuè lěi","设身处地":"shè shēn chǔ dì","投其所好":"tóu qí suǒ hào","间不容发":"jiān bù róng fà","人满为患":"rén mǎn wéi huàn","穷追不舍":"qióng zhuī bù shě","为时已晚":"wéi shí yǐ wǎn","如数家珍":"rú shǔ jiā zhēn","心里有数":"xīn lǐ yǒu shù","以牙还牙":"yǐ yá huán yá","神不守舍":"shén bù shǒu shě","孟什维克":"mèng shí wéi kè","各自为战":"gè zì wéi zhàn","怨声载道":"yuàn shēng zài dào","救苦救难":"jiù kǔ jiù nàn","好好先生":"hǎo hǎo xiān sheng","怪模怪样":"guài mú guài yàng","抛头露面":"pāo tóu lù miàn","游手好闲":"yóu shǒu hào xián","无所不为":"wú suǒ bù wéi","调虎离山":"diào hǔ lí shān","步步为营":"bù bù wéi yíng","好大喜功":"hào dà xǐ gōng","众矢之的":"zhòng shǐ zhī dì","长生不死":"cháng shēng bù sǐ","蔚为壮观":"wèi wéi zhuàng guān","不可胜数":"bù kě shèng shǔ","鬼使神差":"guǐ shǐ shén chāi","洁身自好":"jié shēn zì hào","敢作敢为":"gǎn zuò gǎn wéi","茅塞顿开":"máo sè dùn kāi","走马换将":"zǒu mǎ huàn jiàng","为时过早":"wéi shí guò zǎo","为人师表":"wéi rén shī biǎo","阴差阳错":"yīn chā yáng cuò","油腔滑调":"yóu qiāng huá diào","重蹈覆辙":"chóng dǎo fù zhé","骂骂咧咧":"mà ma liē liē","絮絮叨叨":"xù xù dāo dāo","如履薄冰":"rú lǚ bó bīng","损兵折将":"sǔn bīng zhé jiàng","拐弯抹角":"guǎi wān mò jiǎo","像模像样":"xiàng mú xiàng yàng","供过于求":"gōng guò yú qiú","开花结果":"kāi huā jiē guǒ","仔仔细细":"zǐ zǐ xì xì","川藏公路":"chuān zàng gōng lù","河北梆子":"hé běi bāng zi","长年累月":"cháng nián lěi yuè","正儿八经":"zhèng er bā jīng","不识抬举":"bù shí tái ju","重振旗鼓":"chóng zhèn qí gǔ","气息奄奄":"qì xī yān yān","紧追不舍":"jǐn zhuī bù shě","服服帖帖":"fú fu tiē tiē","强词夺理":"qiǎng cí duó lǐ","噼里啪啦":"pī li pā lā","人才济济":"rén cái jǐ jǐ","发人深省":"fā rén shēn xǐng","不足为凭":"bù zú wéi píng","为富不仁":"wéi fù bù rén","连篇累牍":"lián piān lěi dú","呼天抢地":"hū tiān qiāng dì","落落大方":"luò luò dà fāng","自吹自擂":"zì chuī zì léi","乐善好施":"lè shàn hào shī","以攻为守":"yǐ gōng wéi shǒu","磨磨蹭蹭":"mó mó cèng cèng","削铁如泥":"xuē tiě rú ní","助纣为虐":"zhù zhòu wéi nüè","以退为进":"yǐ tuì wéi jìn","嘁嘁喳喳":"qī qī chā chā","枪林弹雨":"qiāng lín dàn yǔ","令人发指":"lìng rén fà zhǐ","转败为胜":"zhuǎn bài wéi shèng","转弯抹角":"zhuǎn wān mò jiǎo","在劫难逃":"zài jié nán táo","正当防卫":"zhèng dàng fáng wèi","不足为怪":"bù zú wéi guài","难兄难弟":"nàn xiōng nàn dì","咿咿呀呀":"yī yī yā yā","弹尽粮绝":"dàn jìn liáng jué","阿谀奉承":"ē yú fèng chéng","稀里哗啦":"xī li huā lā","返老还童":"fǎn lǎo huán tóng","好高骛远":"hào gāo wù yuǎn","鹿死谁手":"lù sǐ shéi shǒu","差强人意":"chā qiáng rén yì","大吹大擂":"dà chuī dà léi","成家立业":"chéng jiā lì yè","自怨自艾":"zì yuàn zì yì","负债累累":"fù zhài lěi lěi","古为今用":"gǔ wéi jīn yòng","入土为安":"rù tǔ wéi ān","下不为例":"xià bù wéi lì","一哄而上":"yì hōng ér shàng","没头苍蝇":"méi tóu cāng ying","天差地远":"tiān chā dì yuǎn","风卷残云":"fēng juǎn cán yún","多灾多难":"duō zāi duō nàn","乳臭未干":"rǔ xiù wèi gān","行家里手":"háng jiā lǐ shǒu","狼狈为奸":"láng bèi wéi jiān","处变不惊":"chǔ biàn bù jīng","一唱一和":"yí chàng yí hè","一念之差":"yí niàn zhī chā","金蝉脱壳":"jīn chán tuō qiào","滴滴答答":"dī dī dā dā","硕果累累":"shuò guǒ léi léi","好整以暇":"hào zhěng yǐ xiá","红得发紫":"hóng de fā zǐ","传为美谈":"chuán wéi měi tán","富商大贾":"fù shāng dà gǔ","四海为家":"sì hǎi wéi jiā","了若指掌":"liǎo ruò zhǐ zhǎng","大有可为":"dà yǒu kě wéi","出头露面":"chū tóu lù miàn","鼓鼓囊囊":"gǔ gu nāng nāng","窗明几净":"chuāng míng jī jìng","泰然处之":"tài rán chǔ zhī","怒发冲冠":"nù fà chōng guān","有机玻璃":"yǒu jī bō li","骨头架子":"gǔ tou jià zi","义薄云天":"yì bó yún tiān","一丁点儿":"yī dīng diǎn er","时来运转":"shí lái yùn zhuǎn","陈词滥调":"chén cí làn diào","化整为零":"huà zhěng wéi líng","火烧火燎":"huǒ shāo huǒ liǎo","干脆利索":"gàn cuì lì suǒ","吊儿郎当":"diào er láng dāng","广种薄收":"guǎng zhòng bó shōu","种瓜得瓜":"zhòng guā dé guā","种豆得豆":"zhòng dòu dé dòu","难舍难分":"nán shě nán fēn","歃血为盟":"shà xuè wéi méng","奋发有为":"fèn fā yǒu wéi","阴错阳差":"yīn cuò yáng chā","东躲西藏":"dōng duǒ xī cáng","烟熏火燎":"yān xūn huǒ liǎo","钻牛角尖":"zuān niú jiǎo jiān","乔装打扮":"qiáo zhuāng dǎ bàn","改弦更张":"gǎi xián gēng zhāng","河南梆子":"hé nán bāng zi","好吃懒做":"hào chī lǎn zuò","何乐不为":"hé lè bù wéi","大出风头":"dà chū fēng tóu","攻城掠地":"gōng chéng lüè dì","漂漂亮亮":"piào piào liang liang","折衷主义":"zhé zhōng zhǔ yì","大马哈鱼":"dà mǎ hǎ yú","绿树成荫":"lǜ shù chéng yīn","率先垂范":"shuài xiān chuí fàn","家长里短":"jiā cháng lǐ duǎn","宽大为怀":"kuān dà wéi huái","左膀右臂":"zuǒ bǎng yòu bì","一笑了之":"yí xiào liǎo zhī","天下为公":"tiān xià wéi gōng","还我河山":"huán wǒ hé shān","何足为奇":"hé zú wéi qí","好自为之":"hǎo zì wéi zhī","风姿绰约":"fēng zī chuò yuē","大雨滂沱":"dà yǔ pāng tuó","传为佳话":"chuán wéi jiā huà","吃里扒外":"chī lǐ pá wài","重操旧业":"chóng cāo jiù yè","小家子气":"xiǎo jiā zi qì","少不更事":"shào bù gēng shì","难分难舍":"nán fēn nán shě","添砖加瓦":"tiān zhuān jiā wǎ","是非分明":"shì fēi fēn míng","舍我其谁":"shě wǒ qí shuí","偏听偏信":"piān tīng piān xìn","量入为出":"liàng rù wéi chū","降龙伏虎":"xiáng lóng fú hǔ","钢化玻璃":"gāng huà bō li","正中下怀":"zhèng zhòng xià huái","以身许国":"yǐ shēn xǔ guó","一语中的":"yì yǔ zhòng dì","丧魂落魄":"sàng hún luò pò","三座大山":"sān zuò dà shān","济济一堂":"jǐ jǐ yì táng","好事之徒":"hào shì zhī tú","干净利索":"gàn jìng lì suǒ","出将入相":"chū jiàng rù xiàng","袅袅娜娜":"niǎo niǎo nuó nuó","狐狸尾巴":"hú li wěi ba","好逸恶劳":"hào yì wù láo","大而无当":"dà ér wú dàng","打马虎眼":"dǎ mǎ hu yǎn","板上钉钉":"bǎn shàng dìng dīng","吆五喝六":"yāo wǔ hè liù","虾兵蟹将":"xiā bīng xiè jiàng","水调歌头":"shuǐ diào gē tóu","数典忘祖":"shǔ diǎn wàng zǔ","人事不省":"rén shì bù xǐng","曲高和寡":"qǔ gāo hè guǎ","屡教不改":"lǚ jiào bù gǎi","互为因果":"hù wéi yīn guǒ","互为表里":"hù wéi biǎo lǐ","厚此薄彼":"hòu cǐ bó bǐ","过关斩将":"guò guān zhǎn jiàng","疙疙瘩瘩":"gē ge dā dā","大腹便便":"dà fù pián pián","走为上策":"zǒu wéi shàng cè","冤家对头":"yuān jia duì tóu","有隙可乘":"yǒu xì kě chèng","一鳞半爪":"yì lín bàn zhǎo","片言只语":"piàn yán zhǐ yǔ","开花结实":"kāi huā jié shí","经年累月":"jīng nián lěi yuè","含糊其词":"hán hú qí cí","寡廉鲜耻":"guǎ lián xiǎn chǐ","成年累月":"chéng nián lěi yuè","不徇私情":"bú xùn sī qíng","不当人子":"bù dāng rén zǐ","膀大腰圆":"bǎng dà yāo yuán","指腹为婚":"zhǐ fù wéi hūn","这么点儿":"zhè me diǎn er","意兴索然":"yì xīng suǒ rán","绣花枕头":"xiù huā zhěn tou","无的放矢":"wú dì fàng shǐ","望闻问切":"wàng wén wèn qiè","舍己为人":"shě jǐ wèi rén","穷年累月":"qióng nián lěi yuè","排难解纷":"pái nàn jiě fēn","处之泰然":"chǔ zhī tài rán","指鹿为马":"zhǐ lù wéi mǎ","危如累卵":"wēi rú lěi luǎn","天兵天将":"tiān bīng tiān jiàng","舍近求远":"shě jìn qiú yuǎn","南腔北调":"nán qiāng běi diào","苦中作乐":"kǔ zhōng zuò lè","厚积薄发":"hòu jī bó fā","臭味相投":"xiù wèi xiāng tóu","长幼有序":"zhǎng yòu yǒu xù","逼良为娼":"bī liáng wéi chāng","悲悲切切":"bēi bēi qiè qiē","败军之将":"bài jūn zhī jiàng","欺行霸市":"qī háng bà shì","削足适履":"xuē zú shì lǚ","先睹为快":"xiān dǔ wéi kuài","啼饥号寒":"tí jī háo hán","疏不间亲":"shū bú jiàn qīn","神差鬼使":"shén chāi guǐ shǐ","敲敲打打":"qiāo qiāo dǎ dǎ","平铺直叙":"píng pū zhí xù","没头没尾":"méi tóu mò wěi","寥寥可数":"liáo liáo kě shǔ","哼哈二将":"hēng hā èr jiàng","鹤发童颜":"hè fà tóng yán","各奔前程":"gè bèn qián chéng","弹无虚发":"dàn wú xū fā","大人先生":"dà rén xiān sheng","与民更始":"yǔ mín gēng shǐ","树碑立传":"shù bēi lì zhuàn","是非得失":"shì fēi dé shī","实逼处此":"shí bī chǔ cǐ","塞翁失马":"sài wēng shī mǎ","日薄西山":"rì bó xī shān","切身体会":"qiè shēn tǐ huì","片言只字":"piàn yán zhǐ zì","跑马卖解":"pǎo mǎ mài xiè","宁折不弯":"nìng zhé bù wān","零零散散":"líng líng sǎn sǎn","量体裁衣":"liàng tǐ cái yī","连中三元":"lián zhòng sān yuán","礼崩乐坏":"lǐ bēng yuè huài","不为已甚":"bù wéi yǐ shèn","转悲为喜":"zhuǎn bēi wéi xǐ","以眼还眼":"yǐ yǎn huán yǎn","蔚为大观":"wèi wéi dà guān","未为不可":"wèi wéi bù kě","童颜鹤发":"tóng yán hè fà","朋比为奸":"péng bǐ wéi jiān","莫此为甚":"mò cǐ wéi shèn","夹枪带棒":"jiā qiāng dài bàng","富商巨贾":"fù shāng jù jiǎ","淡然处之":"dàn rán chǔ zhī","箪食壶浆":"dān shí hú jiāng","创巨痛深":"chuāng jù tòng shēn","草长莺飞":"cǎo zhǎng yīng fēi","坐视不救":"zuò shī bú jiù","以己度人":"yǐ jǐ duó rén","随行就市":"suí háng jiù shì","文以载道":"wén yǐ zài dào","文不对题":"wén bú duì tí","铁板钉钉":"tiě bǎn dìng dīng","身体发肤":"shēn tǐ fà fū","缺吃少穿":"quē chī shǎo chuān","目无尊长":"mù wú zūn zhǎng","吉人天相":"jí rén tiān xiàng","毁家纾难":"huǐ jiā shū nàn","钢筋铁骨":"gāng jīn tiě gǔ","丢卒保车":"diū zú bǎo jū","丢三落四":"diū sān là sì","闭目塞听":"bì mù sè tīng","削尖脑袋":"xuē jiān nǎo dài","为非作恶":"wéi fēi zuò è","人才难得":"rén cái nán dé","情非得已":"qíng fēi dé yǐ","切中要害":"qiè zhòng yào hài","火急火燎":"huǒ jí huǒ liǎo","画地为牢":"huà dì wéi láo","好酒贪杯":"hào jiǔ tān bēi","长歌当哭":"cháng gē dàng kū","载沉载浮":"zài chén zài fú","遇难呈祥":"yù nàn chéng xiáng","榆木疙瘩":"yú mù gē da","以邻为壑":"yǐ lín wéi hè","洋为中用":"yáng wéi zhōng yòng","言为心声":"yán wéi xīn shēng","言必有中":"yán bì yǒu zhòng","图穷匕见":"tú qióng bǐ xiàn","滂沱大雨":"páng tuó dà yǔ","目不暇给":"mù bù xiá jǐ","量才录用":"liàng cái lù yòng","教学相长":"jiào xué xiāng zhǎng","悔不当初":"huǐ bù dāng chū","呼幺喝六":"hū yāo hè liù","不足为训":"bù zú wéi xùn","不拘形迹":"bù jū xíng jī","傍若无人":"páng ruò wú rén","罪责难逃":"zuì zé nán táo","自我吹嘘":"zì wǒ chuī xū","转祸为福":"zhuǎn huò wéi fú","勇冠三军":"yǒng guàn sān jūn","易地而处":"yì dì ér chǔ","卸磨杀驴":"xiè mò shā lǘ","玩儿不转":"wán ér bú zhuàn","天道好还":"tiān dào hǎo huán","身单力薄":"shēn dān lì bó","撒豆成兵":"sǎ dòu chéng bīng","片纸只字":"piàn zhǐ zhī zì","宁缺毋滥":"nìng quē wú làn","没没无闻":"mò mò wú wén","量力而为":"liàng lì ér wéi","历历可数":"lì lì kě shǔ","口碑载道":"kǒu bēi zài dào","君子好逑":"jūn zǐ hǎo qiú","好为人师":"hào wéi rén shī","豪商巨贾":"háo shāng jù jiǎ","各有所好":"gè yǒu suǒ hào","度德量力":"duó dé liàng lì","指天为誓":"zhǐ tiān wéi shì","逸兴遄飞":"yì xìng chuán fēi","心宽体胖":"xīn kuān tǐ pán","为德不卒":"wéi dé bù zú","天下为家":"tiān xià wéi jiā","视为畏途":"shì wéi wèi tú","三灾八难":"sān zāi bā nàn","沐猴而冠":"mù hóu ér guàn","哩哩啦啦":"lī li lā lā","见缝就钻":"jiàn fèng jiù zuān","夹层玻璃":"jiā céng bō li","急公好义":"jí gōng hào yì","积年累月":"jī nián lěi yuè","划地为牢":"huá dì wéi láo","更名改姓":"gēng míng gǎi xìng","奉为圭臬":"fèng wéi guī niè","多难兴邦":"duō nàn xīng bāng","不破不立":"bú pò bú lì","坐地自划":"zuò dì zì huá","坐不重席":"zuò bù chóng xí","坐不窥堂":"zuò bù kuī táng","作嫁衣裳":"zuò jià yī shang","左枝右梧":"zuǒ zhī yòu wú","左宜右有":"zuǒ yí yòu yǒu","钻头觅缝":"zuān tóu mì fèng","钻天打洞":"zuān tiān dǎ dòng","钻皮出羽":"zuān pí chū yǔ","钻火得冰":"zuān huǒ dé bīng","钻洞觅缝":"zuàn dòng mì féng","钻冰求火":"zuān bīng qiú huǒ","子为父隐":"zǐ wéi fù yǐn","擢发难数":"zhuó fà nán shǔ","着人先鞭":"zhuó rén xiān biān","斫雕为朴":"zhuó diāo wéi pǔ","锥处囊中":"zhuī chǔ náng zhōng","椎心饮泣":"chuí xīn yǐn qì","椎心泣血":"chuí xīn qì xuè","椎牛飨士":"chuí niú xiǎng shì","椎牛歃血":"chuí niú shà xuè","椎牛发冢":"chuí niú fà zhǒng","椎埋屠狗":"chuí mái tú gǒu","椎埋狗窃":"chuí mái gǒu qiè","壮发冲冠":"zhuàng fā chōng guàn","庄严宝相":"zhuāng yán bǎo xiàng","转愁为喜":"zhuǎn chóu wéi xǐ","转嗔为喜":"zhuǎn chēn wéi xǐ","拽巷啰街":"zhuài xiàng luó jiē","拽耙扶犁":"zhuāi pá fú lí","拽布拖麻":"zhuài bù tuō má","箸长碗短":"zhù cháng wǎn duǎn","铸剑为犁":"zhù jiàn wéi lí","杼柚其空":"zhù yòu qí kōng","杼柚空虚":"zhù yòu kōng xū","助天为虐":"zhù tiān wéi nüè","属垣有耳":"zhǔ yuán yǒu ěr","属毛离里":"zhǔ máo lí lǐ","属辞比事":"zhǔ cí bǐ shì","逐物不还":"zhú wù bù huán","铢量寸度":"zhū liáng cùn duó","铢两悉称":"zhū liǎng xī chèn","侏儒观戏":"zhū rú guān xì","朱轓皁盖":"zhū fān zào gài","昼度夜思":"zhòu duó yè sī","诪张为幻":"zhōu zhāng wéi huàn","重明继焰":"chóng míng jì yàn","众啄同音":"zhòng zhuó tóng yīn","众毛攒裘":"zhòng máo cuán qiú","众好众恶":"zhòng hào zhòng wù","擿埴索涂":"zhāi zhí suǒ tú","稚齿婑媠":"zhì chǐ wǒ tuó","至当不易":"zhì dàng bú yì","指皂为白":"zhǐ zào wéi bái","指雁为羹":"zhǐ yàn wéi gēng","指树为姓":"zhǐ shù wéi xìng","指山说磨":"zhǐ shān shuō mò","止戈为武":"zhǐ gē wéi wǔ","枝干相持":"zhī gàn xiāng chí","枝大于本":"zh dà yú běn","支吾其词":"zhī wú qí cí","正身率下":"zhèng shēn shuài xià","正冠李下":"zhèng guàn lǐ xià","整冠纳履":"zhěng guān nà lǚ","整躬率物":"zhěng gōng shuài wù","整顿干坤":"zhěng dùn gàn kūn","针头削铁":"zhēn tóu xuē tiě","贞松劲柏":"zhēn sōng jìng bǎi","赭衣塞路":"zhě yī sè lù","折箭为誓":"shé jiàn wéi shì","折而族之":"zhé ér zú zhī","昭德塞违":"zhāo dé sè wéi","章句小儒":"zhāng jù xiǎo rú","湛恩汪濊":"zhàn ēn wāng huì","占风望气":"zhān fēng wàng qì","斩将搴旗":"zhǎn jiàng qiān qí","曾母投杼":"zēng mǔ tóu zhù","曾参杀人":"zēng shēn shā rén","造谣中伤":"zào yáo zhòng shāng","早占勿药":"zǎo zhān wù yào","凿龟数策":"záo guī shǔ cè","攒三聚五":"cuán sān jù wǔ","攒眉蹙额":"cuán mei cù é","攒零合整":"cuán líng hé zhěng","攒锋聚镝":"cuán fēng jù dí","载笑载言":"zài xiào zài yán","载酒问字":"zài jiǔ wèn zì","殒身不恤":"yǔn shēn bú xù","云舒霞卷":"yún shū xiá juǎn","月中折桂":"yuè zhōng shé guì","月落参横":"yuè luò shēn héng","鬻驽窃价":"yù nú qiè jià","鬻鸡为凤":"yù jī wéi fèng","遇难成祥":"yù nàn chéng xiáng","郁郁累累":"yù yù lěi lěi","玉卮无当":"yù zhī wú dàng","语笑喧阗":"yǔ xiào xuān tián","与世沉浮":"yǔ shì chén fú","与时消息":"yǔ shí xiāo xi","逾墙钻隙":"yú qiáng zuān xì","渔夺侵牟":"yú duó qīn móu","杅穿皮蠹":"yú chuān pí dù","余勇可贾":"yú yǒng kě gǔ","予智予雄":"yú zhì yú xióng","予取予求":"yú qǔ yú qiú","于家为国":"yú jiā wéi guó","有借无还":"yǒu jiè wú huán","有加无已":"yǒu jiā wú yǐ","有国难投":"yǒu guó nán tóu","游必有方":"yóu bì yǒu fāng","油干灯尽":"yóu gàn dēng jìn","尤云殢雨":"yóu yún tì yǔ","庸中皦皦":"yōng zhōng jiǎo jiǎo","郢书燕说":"yǐng shū yān shuō","营蝇斐锦":"yíng yíng fēi jǐn","鹰心雁爪":"yīng xīn yàn zhǎo","莺吟燕儛":"yīng yín yàn wǔ","应天顺时":"yīng tiān shùn shí","印累绶若":"yìn léi shòu ruò","隐占身体":"yǐn zhàn shēn tǐ","饮犊上流":"yìn dú shàng liú","引绳切墨":"yǐn shéng qiē mò","龈齿弹舌":"yín chǐ dàn shé","因缘为市":"yīn yuán wéi shì","因树为屋":"yīn shù wéi wū","溢美溢恶":"yì měi yì wù","抑塞磊落":"yì sè lěi luò","倚闾望切":"yǐ lǘ wàng qiē","以意为之":"yǐ yì wéi zhī","以言为讳":"yǐ yán wéi huì","以疏间亲":"yǐ shū jiàn qīn","以水济水":"yǐ shuǐ jǐ shuǐ","以书为御":"yǐ shū wéi yù","以守为攻":"yǐ shǒu wéi gōng","以升量石":"yǐ shēng liáng dàn","以慎为键":"yǐ shèn wéi jiàn","以筌为鱼":"yǐ quán wéi yú","以利累形":"yǐ lì lěi xíng","以毁为罚":"yǐ huǐ wéi fá","以黑为白":"yǐ hēi wéi bái","以规为瑱":"yǐ guī wéi tiàn","以古为鉴":"yǐ gǔ wéi jiàn","以宫笑角":"yǐ gōng xiào jué","以法为教":"yǐ fǎ wéi jiào","以大恶细":"yǐ dà wù xì","遗世忘累":"yí shì wàng lěi","遗寝载怀":"yí qǐn zài huái","移的就箭":"yí dì jiù jiàn","依头缕当":"yī tóu lǚ dàng","衣租食税":"yì zū shí shuì","衣轻乘肥":"yì qīng chéng féi","衣裳之会":"yī shang zhī huì","衣单食薄":"yī dān shí bó","一还一报":"yì huán yí bào","叶公好龙":"yè gōng hào lóng","野调无腔":"yě diào wú qiāng","瑶池女使":"yáo chí nǚ shǐ","幺麽小丑":"yāo mó xiǎo chǒu","养精畜锐":"yǎng jīng xù ruì","卬首信眉":"áng shǒu shēn méi","洋洋纚纚":"yáng yáng sǎ sǎ","羊羔美酒":"yáng gāo měi jiǔ","扬风扢雅":"yáng fēng jié yǎ","燕昭市骏":"yān zhāo shì jùn","燕昭好马":"yān zhāo hǎo mǎ","燕石妄珍":"yān shí wàng zhēn","燕骏千金":"yān jùn qiān jīn","燕金募秀":"yān jīn mù xiù","燕驾越毂":"yān jià yuè gǔ","燕歌赵舞":"yān gē zhào wǔ","燕岱之石":"yān dài zhī shí","燕处危巢":"yàn chǔ wēi cháo","掞藻飞声":"shàn zǎo fēi shēng","偃革为轩":"yǎn gé wéi xuān","妍蚩好恶":"yán chī hǎo è","压良为贱":"yā liáng wéi jiàn","搀行夺市":"chān háng duó shì","泣数行下":"qì shù háng xià","当行出色":"dāng háng chū sè","秀出班行":"xiù chū bān háng","儿女成行":"ér nǚ chéng háng","大行大市":"dà háng dà shì","寻行数墨":"xún háng shǔ mò","埙篪相和":"xūn chí xiāng hè","血债累累":"xuè zhài lěi lěi","炫玉贾石":"xuàn yù gǔ shí","炫石为玉":"xuàn shí wéi yù","悬石程书":"xuán dàn chéng shū","悬狟素飡":"xuán huán sù cān","悬龟系鱼":"xuán guī xì yú","揎拳捋袖":"xuān quán luō xiù","轩鹤冠猴":"xuān hè guàn hóu","畜妻养子":"xù qī yǎng zǐ","羞人答答":"xiū rén dā dā","修鳞养爪":"xiū lín yǎng zhǎo","熊据虎跱":"xióng jù hǔ zhì","兄死弟及":"xiōng sǐ dì jí","腥闻在上":"xīng wén zài shàng","兴文匽武":"xīng wén yǎn wǔ","兴观群怨":"xìng guān qún yuàn","兴高彩烈":"xìng gāo cǎi liè","心手相应":"xīn shǒu xiāng yìng","心口相应":"xīn kǒu xiāng yīng","挟势弄权":"xié shì nòng quán","胁肩累足":"xié jiān lěi zú","校短量长":"jiào duǎn liáng cháng","小眼薄皮":"xiǎo yǎn bó pí","硝云弹雨":"xiāo yún dàn yǔ","鸮鸣鼠暴":"xiāo míng shǔ bào","削株掘根":"xuē zhū jué gēn","削铁无声":"xuē tiě wú shēng","削职为民":"xuē zhí wéi mín","削木为吏":"xuē mù wéi lì","想望风褱":"xiǎng wàng fēng huái","香培玉琢":"xiang pei yu zhuó","相鼠有皮":"xiàng shǔ yǒu pí","相时而动":"xiàng shí ér dòng","相切相磋":"xiāng qiē xiāng cuō","相女配夫":"xiàng nǚ pèi fū","相门有相":"xiàng mén yǒu xiàng","挦章撦句":"xián zhāng chě jù","先我着鞭":"xiān wǒ zhuó biān","习焉不察":"xí yān bù chá","歙漆阿胶":"shè qī ē jiāo","晰毛辨发":"xī máo biàn fà","悉索薄赋":"xī suǒ bó fù","雾鳞云爪":"wù lín yún zhǎo","物稀为贵":"wù xī wéi guì","碔砆混玉":"wǔ fū hùn yù","武断专横":"wǔ duàn zhuān héng","五石六鹢":"wǔ shí liù yì","五色相宣":"wǔ sè xiāng xuān","五侯七贵":"wǔ hóu qī guì","五侯蜡烛":"wǔ hòu là zhú","五羖大夫":"wǔ gǔ dà fū","吾自有处":"wú zì yǒu chǔ","无下箸处":"wú xià zhù chǔ","无伤无臭":"wú shāng wú xiù","无能为役":"wú néng wéi yì","无寇暴死":"wú kòu bào sǐ","无孔不钻":"wú kǒng bú zuàn","无间可乘":"wú jiān kě chéng","无间冬夏":"wú jiān dōng xià","无恶不为":"wú è bù wéi","无动为大":"wú dòng wéi dà","诬良为盗":"wū liáng wéi dào","握拳透爪":"wò quán tòu zhǎo","文武差事":"wén wǔ chāi shì","委委佗佗":"wēi wēi tuó tuó","惟日为岁":"wéi rì wéi suì","帷薄不修":"wéi bó bù xiū","为善最乐":"wéi shàn zuì lè","为山止篑":"wéi shān zhǐ kuì","为仁不富":"wéi rén bú fù","为裘为箕":"wéi qiú wéi jī","为民父母":"wéi mín fù mǔ","为虺弗摧":"wéi huǐ fú cuī","为好成歉":"wéi hǎo chéng qiàn","为鬼为蜮":"wéi guǐ wéi yù","望风响应":"wàng fēng xiǎng yīng","望尘僄声":"wàng chén piào shēng","往渚还汀":"wǎng zhǔ huán tīng","王贡弹冠":"wáng gòng dàn guàn","亡国大夫":"wáng guó dà fū","万贯家私":"wàn guàn jiā sī","晚食当肉":"wǎn shí dàng ròu","晚节不保":"wǎn jié bù bǎo","玩岁愒时":"wán suì kài shí","蛙蟆胜负":"wā má shèng fù","吞言咽理":"tūn yán yàn lǐ","颓垣断堑":"tuí yuán duàn qiàn","推干就湿":"tuī gàn jiù shī","剸繁决剧":"tuán fán jué jù","团头聚面":"tuán tóu jù miàn","兔丝燕麦":"tù sī yàn mài","兔头麞脑":"tù tóu zhāng nǎo","兔葵燕麦":"tù kuí yàn mài","吐哺握发":"tǔ bǔ wò fà","投传而去":"tóu zhuàn ér qù","头没杯案":"tóu mò bēi àn","头昏脑闷":"tóu hūn nǎo mèn","头会箕敛":"tóu kuài jī liǎn","头出头没":"tóu chū tóu mò","痛自创艾":"tòng zì chuāng yì","同恶相助":"tóng wù xiāng zhù","同恶相恤":"tóng wù xiāng xù","痌瘝在抱":"tōng guān zài bào","通文调武":"tōng wén diào wǔ","停留长智":"tíng liú zhǎng zhì","铁树开华":"tiě shù kāi huā","条贯部分":"tiáo guàn bù fēn","挑牙料唇":"tiǎo yá liào chún","挑么挑六":"tiāo yāo tiāo liù","挑唇料嘴":"tiǎo chún liào zuǐ","恬不为意":"tián bù wéi yì","恬不为怪":"tián bù wéi guài","天下为笼":"tiān xià wéi lóng","天台路迷":"tiān tái lù mí","天年不遂":"tiān nián bú suì","探囊胠箧":"tàn náng qū qiè","谭言微中":"tán yán wēi zhòng","谈言微中":"tán yán wēi zhòng","狧穅及米":"shì kāng jí mǐ","随物应机":"suí wù yīng jī","搜岩采干":"sōu yán cǎi gàn","宋斤鲁削":"sòng jīn lǔ xuē","松筠之节":"sōng yún zhī jié","四亭八当":"sì tíng bā dàng","四马攒蹄":"sì mǎ cuán tí","四不拗六":"sì bú niù liù","思所逐之":"sī suǒ zhú zhī","丝恩发怨":"sī ēn fà yuàn","硕望宿德":"shuò wàng xiǔ dé","铄古切今":"shuò gǔ qiē jīn","顺风而呼":"shùn fēng ér hū","顺风吹火":"shùn fēng chuī huǒ","水中著盐":"shuǐ zhōng zhuó yán","双柑斗酒":"shuāng gān dǒu jiǔ","数米而炊":"shǔ mǐ ér chuī","数米量柴":"shǔ mǐ liáng chái","数理逻辑":"shù lǐ luó ji","数黑论黄":"shǔ hēi lùn huáng","数白论黄":"shǔ bái lùn huáng","束缊还妇":"shù yūn huán fù","束蒲为脯":"shù pú wéi pú","束椽为柱":"shù chuán wéi zhù","书缺有间":"shū quē yǒu jiàn","手足重茧":"shǒu zú chóng jiǎn","手足异处":"shǒu zú yì chǔ","手脚干净":"shǒu jiǎo gàn jìng","手不应心":"shǒu bù yīng xīn","螫手解腕":"shì shǒu jiě wàn","释知遗形":"shì zhī yí xíng","适时应务":"shì shí yīng wù","适情率意":"shì qíng shuài yì","适当其冲":"shì dāng qí chōng","视为知己":"shì wéi zhī jǐ","使羊将狼":"shǐ yáng jiàng láng","食为民天":"shí wéi mín tiān","拾掇无遗":"shí duō wú yí","实与有力":"shí yù yǒu lì","石英玻璃":"shí yīng bō li","石室金匮":"shí shì jīn guì","什袭珍藏":"shí xí zhēn cáng","什伍东西":"shí wǔ dōng xī","什围伍攻":"shí wéi wǔ gōng","十魔九难":"shí mó jiǔ nàn","诗书发冢":"shī shū fà zhǒng","虱处裈中":"shī chǔ kūn zhōng","师直为壮":"shī zhí wéi zhuàng","尸居龙见":"shī jū lóng xiàn","圣经贤传":"shèng jīng xián zhuàn","圣君贤相":"shèng jūn xián xiàng","生拖死拽":"shēng tuō sǐ zhuài","审己度人":"shěn jǐ duó rén","神武挂冠":"shén wǔ guà guàn","神龙失埶":"shén lóng shī shì","深文曲折":"shēn wén qǔ shé","深厉浅揭":"shēn lì qiǎn qì","深谷为陵":"shēn gǔ wéi líng","深恶痛疾":"shēn wù tòng jí","深仇宿怨":"shēn chóu xiǔ yuàn","舍己为公":"shě jǐ wèi gōng","舍短取长":"shě duǎn qǔ cháng","舍策追羊":"shě cè zhuī yáng","蛇蝎为心":"shé xiē wéi xīn","少成若性":"shào chéng ruò xìng","上当学乖":"shàng dàng xué guāi","赏不当功":"shǎng bù dāng gōng","善自为谋":"shàn zì wéi móu","善为说辞":"shàn wéi shuō cí","善善恶恶":"shàn shàn wù è","善财难舍":"shàn cái nán shě","苫眼铺眉":"shān yǎn pū méi","讪牙闲嗑":"shàn yá xián kē","山阴乘兴":"shān yīn chéng xīng","山殽野湋":"shān yáo yě wéi","山溜穿石":"shān liù chuān shí","山节藻棁":"shān jié zǎo zhuō","杀鸡为黍":"shā jī wéi shǔ","色厉胆薄":"sè lì dǎn bó","桑荫未移":"sāng yīn wèi yí","桑荫不徙":"sāng yīn bù xǐ","桑土绸缪":"sāng tǔ chóu miù","桑户棬枢":"sāng hù juàn shū","三战三北":"sān zhàn sān běi","三瓦两舍":"sān wǎ liǎng shě","三人为众":"sān rén wèi zhòng","三差两错":"sān chā liǎng cuò","塞井焚舍":"sāi jǐng fén shě","洒心更始":"sǎ xīn gèng shǐ","洒扫应对":"sǎ sǎo yìng duì","软红香土":"ruǎn hóng xiāng tǔ","入吾彀中":"rù wú gòu zhōng","入铁主簿":"rù tiě zhǔ bù","入理切情":"rù lǐ qiē qíng","汝成人耶":"rǔ chéng rén yé","如水投石":"rú shuǐ tóu shí","如切如磋":"rú qiē rú cuō","如登春台":"rú dēng chūn tái","肉薄骨并":"ròu bó gǔ bìng","柔情绰态":"róu qíng chuò tài","戎马劻勷":"róng mǎ kuāng ráng","日中为市":"rì zhōng wéi shì","日月参辰":"rì yuè shēn chén","日省月修":"rì xǐng yuè xiū","日削月割":"rì xuē yuè gē","日省月试":"rì xǐng yuè shì","任达不拘":"rèn dá bù jū","人言藉藉":"rén yán jí jí","人模狗样":"rén mú gǒu yàng","人莫予毒":"rén mò yú dú","热熬翻饼":"rè áo fān bǐng","圈牢养物":"juàn láo yǎng wù","取予有节":"qǔ yǔ yǒu jié","诎要桡腘":"qū yāo ráo guó","穷形尽相":"qióng xíng jìn xiàng","情凄意切":"qíng qī yì qiè","情见势屈":"qíng xiàn shì qū","情见乎辞":"qíng xiàn hū cí","清都绛阙":"qīng dōu jiàng què","倾肠倒肚":"qīng cháng dào dǔ","青紫被体":"qīng zǐ pī tǐ","青林黑塞":"qīng lín hēi sài","螓首蛾眉":"qín shǒu é méi","琴瑟之好":"qín sè zhī hào","且住为佳":"qiě zhù wéi jiā","切树倒根":"qiē shù dǎo gēn","切理餍心":"qiē lǐ yàn xīn","切近的当":"qiē jìn de dāng","翘足引领":"qiáo zú yǐn lǐng","巧发奇中":"qiǎo fā qí zhòng","强嘴拗舌":"jiàng zuǐ niù shé","强直自遂":"qiáng zhí zì suí","强死强活":"qiǎng sǐ qiǎng huó","强食自爱":"qiǎng shí zì ài","强食靡角":"qiǎng shí mí jiǎo","强弓劲弩":"qiáng gōng jìng nǔ","强聒不舍":"qiǎng guō bù shě","强凫变鹤":"qiáng fú biàn hè","强而后可":"qiǎng ér hòu kě","强得易贫":"qiǎng dé yì pín","遣兴陶情":"qiǎn xìng táo qíng","牵羊担酒":"qiān yáng dān jiǔ","千了百当":"qiān liǎo bǎi dàng","泣下如雨":"qì xià rú yǔ","起偃为竖":"qǐ yǎn wéi shù","岂弟君子":"kǎi tì jūn zǐ","綦溪利跂":"qí xī lì qí","棋输先著":"qí shū xiān zhuó","齐王舍牛":"qí wáng shě niú","欺天诳地":"qī tiān kuáng dì","普天率土":"pǔ tiān shuài tǔ","铺胸纳地":"pū xiōng nà dì","铺锦列绣":"pū jǐn liè xiù","破家为国":"pò jiā wèi guó","破觚为圜":"pò gū wéi yuán","萍飘蓬转":"píng piāo péng zhuàn","帡天极地":"píng tiān jí dì","屏声息气":"bǐng shēng xī qì","凭几据杖":"píng jī jù zhàng","贫嘴薄舌":"pín zuǐ bó shé","片语只辞":"piàn yǔ zhī cí","披发文身":"pī fà wén shēn","烹龙炮凤":"pēng lóng páo fèng","炰鳖脍鲤":"fǒu biē kuài lǐ","庞眉皓发":"páng méi hào fà","攀花折柳":"pān huā zhé liǔ","攀蟾折桂":"pān chán shé guì","女大难留":"nǚ dà nán liú","弄玉吹箫":"nòng yù chuī xiāo","弄管调弦":"nòng guǎn tiáo xián","弄粉调朱":"nòng fěn diào zhū","浓抹淡妆":"nóng mò dàn zhuāng","捻土为香":"niǎn tǔ wéi xiāng","年谊世好":"nián yì shì hǎo","年华垂暮":"nián huá chuí mù","儗不于伦":"nǐ bù yú lún","泥而不滓":"ní ér bù zǐ","能者为师":"néng zhě wéi shī","能不称官":"néng bú chèn guān","挠直为曲":"náo zhí wéi qū","难进易退":"nán jìn yì tuì","难得糊涂":"nán dé hú tú","南蛮鴂舌":"nán mán jué shé","南贩北贾":"nán fàn běi gǔ","牧猪奴戏":"mù zhū nú xì","目眢心忳":"mù yuān xīn tún","目挑心招":"mù tiǎo xīn zhāo","目量意营":"mù liàng yì yíng","木头木脑":"mù tóu mù nǎo","木干鸟栖":"mù gàn niǎo qī","侔色揣称":"móu sè chuǎi chèn","莫予毒也":"mò yú dú yě","抹粉施脂":"mò fěn shī zhī","磨砻镌切":"mó lóng juān qiē","磨棱刓角":"mó léng wán jiǎo","摸门不着":"mō mén bù zháo","摸不着边":"mō bù zhuó biān","命中注定":"mìng zhōng zhù dìng","鸣鹤之应":"míng hè zhī yìng","明效大验":"míng xiào dà yàn","名我固当":"míng wǒ gù dāng","邈处欿视":"miǎo chǔ kǎn shì","黾穴鸲巢":"měng xué qú cháo","绵里薄材":"mián lǐ bó cái","靡有孑遗":"mǐ yǒu jié yí","靡衣偷食":"mǐ yī tōu shí","迷恋骸骨":"mí liàn hái gǔ","扪参历井":"mén shēn lì jǐng","门单户薄":"mén dān hù bó","昧旦晨兴":"mèi dàn chén xīng","冒名接脚":"mào míng jiē jiǎo","毛遂堕井":"máo suí duò jǐng","毛发倒竖":"máo fā dǎo shù","卖文为生":"mài wén wéi shēng","卖李钻核":"mài lǐ zuān hé","买椟还珠":"mǎi dú huán zhū","埋三怨四":"mán sān yuàn sì","马入华山":"mǎ rù huá shān","落魄江湖":"luò pò jiāng hú","落落难合":"luò luò nán hé","落草为寇":"luò cǎo wéi kòu","罗织构陷":"luó zhī gòu xiàn","鸾凤和鸣":"luán fèng hè míng","率由旧章":"shuài yóu jiù zhāng","率土同庆":"shuài tǔ tóng qìng","率兽食人":"shuài shòu shí rén","率土归心":"shuài tǔ guī xīn","率马以骥":"shuài mǎ yǐ jì","率尔成章":"shuài ěr chéng zhāng","鲁斤燕削":"lǔ jīn yàn xuē","漏尽更阑":"lòu jìn gēng lán","笼鸟槛猿":"lóng niǎo jiàn yuán","笼鸟池鱼":"lóng niǎo chí yú","龙游曲沼":"lóng yóu qū zhǎo","龙血玄黄":"lóng xuè xuán huáng","龙雕凤咀":"lóng diāo fèng jǔ","六尺之讬":"liù chǐ zhī tuō","令原之戚":"líng yuán zhī qī","令人捧腹":"lìng rén pěng fù","陵劲淬砺":"líng jìng cuì lì","临敌易将":"lín dí yì jiàng","裂裳衣疮":"liè shang yī chuāng","裂冠毁冕":"liè guàn huǐ miǎn","了无惧色":"liǎo wú jù sè","了身达命":"liǎo shēn dá mìng","了然无闻":"liǎo rán wú wén","了不可见":"liǎo bù kě jiàn","了不长进":"liǎo bù zhǎng jìn","燎发摧枯":"liǎo fà cuī kū","审时度势":"shěn shí duó shì","量小力微":"liàng xiǎo lì wēi","相时度力":"xiāng shí duó lì","量枘制凿":"liàng ruì zhì záo","量如江海":"liàng rú jiāng hǎi","量金买赋":"liàng jīn mǎi fù","量己审分":"liàng jǐ shěn fēn","敛骨吹魂":"liǎn gǔ chuī hún","詈夷为跖":"lì yí wéi zhí","利令志惛":"lì lìng zhì hūn","李广不侯":"lǐ guǎng bú hòu","礼为情貌":"lǐ wéi qíng mào","礼让为国":"lǐ ràng wéi guó","犁生骍角":"lí shēng xīng jiǎo","离本徼末":"lí běn jiǎo mò","楞眉横眼":"léng méi hèng yǎn","擂天倒地":"léi tiān dǎo dì","累足成步":"lěi zú chéng bù","累瓦结绳":"lěi wǎ jié shéng","累土至山":"lěi tǔ zhì shān","累土聚沙":"lěi tǔ jù shā","累卵之危":"lěi luǎn zhī wēi","累累如珠":"lěi lěi rú zhū","累块积苏":"lěi kuài jī sū","乐山乐水":"lè shān lè shuǐ","潦原浸天":"lǎo yuán jìn tiān","老师宿儒":"lǎo shī xiǔ rú","牢什古子":"láo shí gǔ zi","琅嬛福地":"láng huán fú dì","揆情度理":"kuí qíng duó lǐ","旷日累时":"kuàng rì lěi shí","匡救弥缝":"kuāng jiù mí fèng","枯树生华":"kū shù shēng huā","口轻舌薄":"kǒu qīng shé bó","口角生风":"kǒu jiǎo shēng fēng","口角春风":"kǒu jiǎo chūn fēng","口角风情":"kǒu jiǎo fēng qíng","口干舌焦":"kǒu gān shé jiāo","口腹之累":"kǒu fù zhī lěi","空腹便便":"kōng fù pián pián","嗑牙料嘴":"kē yá liào zuǐ","刻木为鹄":"kè mù wéi hú","咳珠唾玉":"ké zhū tuò yù","咳唾成珠":"ké tuò chéng zhū","抗颜为师":"kàng yán wéi shī","开华结果":"kāi huā jié guǒ","峻阪盐车":"jùn bǎn yán chē","嚼铁咀金":"jiáo tiě jǔ jīn","嚼墨喷纸":"jué mò pēn zhǐ","倔头强脑":"juè tóu jiàng nǎo","倔头倔脑":"juè tóu juè nǎo","倦鸟知还":"juàn niǎo zhī huán","卷席而葬":"juǎn xí ér zàng","卷甲倍道":"juǎn jiǎ bèi dào","聚米为山":"jù mǐ wéi shān","举手相庆":"jǔ shǒu xiāng qìng","举世混浊":"jǔ shì hún zhuó","鞠为茂草":"jū wéi mào cǎo","拘神遣将":"jū shén qiǎn jiàng","居下讪上":"jū xià shàn shàng","久要不忘":"jiǔ yāo bú wàng","九转功成":"jiǔ zhuǎn gōng chéng","九蒸三熯":"jiǔ zhēng sān hàn","敬业乐群":"jìng yè lè qún","井底虾蟆":"jǐng dǐ xiā má","旌旗卷舒":"jīng qí juǎn shū","荆棘载途":"jīng jí zài tú","禁舍开塞":"jìn shě kāi sāi","祲威盛容":"jìn wēi shèng róng","进退消长":"jìn tuì xiāo cháng","进退应矩":"jìn tuì yīng jǔ","进退触籓":"jìn tuì chù fān","进退跋疐":"jìn tuì bá zhì","尽多尽少":"jǐn duō jǐn shǎo","锦囊还矢":"jǐn náng huán shǐ","矜己自饰":"jīn jǐ zì shì","矜功负气":"jīn gōng fù qì","津关险塞":"jīn guān xiǎn sài","金吾不禁":"jīn wú bú jìn","金翅擘海":"jīn chì bāi hǎi","解衣衣人":"jiě yī yī rén","解人难得":"jiě rén nán dé","解铃系铃":"jiě líng xì líng","解发佯狂":"jiě fà yáng kuáng","诘屈磝碻":"jié qū áo qiāo","教猱升木":"jiāo náo shēng mù","较瘦量肥":"jiào shòu liàng féi","角立杰出":"jiǎo lì jié chū","焦沙烂石":"jiāo shā làn shí","骄儿騃女":"jiāo ér sì nǚ","浇风薄俗":"jiāo fēng bó sú","降妖捉怪":"xiáng yāo zhuō guài","将取固予":"jiāng qǔ gù yǔ","将门有将":"jiàng mén yǒu jiàng","将夺固与":"jiāng duó gù yǔ","槛花笼鹤":"jiàn huā lóng hè","鉴影度形":"jiàn yǐng duó xíng","渐不可长":"jiàn bù kě zhǎng","见素抱朴":"xiàn sù bào pǔ","见弃于人":"jiàn qì yú rén","简丝数米":"jiǎn sī shǔ mǐ","俭不中礼":"jiǎn bú zhòng lǐ","间见层出":"jiàn xiàn céng chū","尖嘴薄舌":"jiān zuǐ bó shé","甲冠天下":"jiǎ guàn tiān xià","葭莩之亲":"jiā fú zhī qīn","家累千金":"jiā lèi qiān jīn","家给人足":"jiā jǐ rén zú","家道从容":"jiā dào cóng róng","夹袋人物":"jiā dài rén wù","霁风朗月":"jì fēng lǎng yuè","寄兴寓情":"jì xìng yù qíng","计深虑远":"jì shēn lǜ yuǎn","计功量罪":"jì gōng liàng zuì","掎裳连襼":"jǐ shang lián yì","虮虱相吊":"jǐ shī xiāng diào","疾不可为":"jí bù kě wéi","极深研几":"jí shēn yán jī","及宾有鱼":"jí bīn yǒu yú","激薄停浇":"jī bó tíng jiāo","积素累旧":"jī sù lěi jiù","积时累日":"jī shí lěi rì","积露为波":"jī lù wéi bō","积德累功":"jī dé lěi gōng","积谗糜骨":"jī chán méi gǔ","击排冒没":"jī pái mào mò","祸为福先":"huò wéi fú xiān","祸福相依":"huò fú xiāng yī","获隽公车":"huò jùn gōng chē","混应滥应":"hùn yīng làn yīng","毁舟为杕":"huǐ zhōu wéi duò","毁钟为铎":"huǐ zhōng wéi duó","毁冠裂裳":"huǐ guān liè cháng","晦盲否塞":"huì máng pǐ sè","回船转舵":"huí chuán zhuàn duò","潢池盗弄":"huáng chí dào nòng","黄冠草履":"huáng guàn cǎo lǚ","黄发儿齿":"huáng fà ér chǐ","黄发垂髫":"huáng fà chuí tiáo","还珠返璧":"huán zhū fǎn bì","还年驻色":"huán nián zhù sè","还年却老":"huán nián què lǎo","坏裳为裤":"huài shang wéi kù","画荻和丸":"huà dí huò wán","化枭为鸠":"huà xiāo wéi jiū","化腐为奇":"huà fǔ wéi qí","化鸱为凤":"huà chī wéi fèng","花不棱登":"huā bu lēng dēng","户限为穿":"hù xiàn wéi chuān","呼卢喝雉":"hū lú hè zhì","呼来喝去":"hū lái hè qù","呼不给吸":"hū bù jǐ xī","厚味腊毒":"hòu wèi xī dú","厚德载物":"hòu dé zài wù","鸿渐于干":"hóng jiàn yú gàn","洪炉燎发":"hóng lú liáo fà","红绳系足":"hóng shéng jì zú","红不棱登":"hóng bu lēng dēng","横抢硬夺":"hèng qiǎng yìng duó","横恩滥赏":"hèng ēn làn shǎng","恨海难填":"hèn hǎi nán tián","鹤发鸡皮":"hè fà jī pí","涸思干虑":"hé sī gān lǜ","河涸海干":"hé hé hǎi gān","和颜说色":"hé yán yuè sè","合从连衡":"hé zòng lián héng","浩浩汤汤":"hào hào shāng shāng","好勇斗狠":"hào yǒng dòu hěn","好问则裕":"hào wèn zé yù","好为事端":"hào wéi shì duān","好问决疑":"hào wèn jué yí","好生之德":"hào shēng zhī dé","好奇尚异":"hǎo qí shàng yì","好恶不同":"hǎo è bù tóng","好丹非素":"hào dān fēi sù","豪干暴取":"háo gàn bào qǔ","毫发不爽":"háo fà bù shuǎng","寒酸落魄":"hán suān luò pò","含英咀华":"hán yīng jǔ huá","含糊不明":"hán hú bù míng","过为已甚":"guò wéi yǐ shèn","桂折兰摧":"guì shé lán cuī","规旋矩折":"guī xuán jǔ shé","广文先生":"guǎng wén xiān sheng","广陵散绝":"guǎng líng sǎn jué","冠山戴粒":"guàn shān dài lì","冠屦倒施":"guàn jù dǎo shī","挂席为门":"guà xí wéi mén","寡见鲜闻":"guǎ jiàn xiǎn wén","瓜葛相连":"guā gé xiāng lián","鼓吻奋爪":"gǔ wěn fèn zhǎo","古调单弹":"gǔ diào dān tán","古调不弹":"gǔ diào bù tán","姑射神人":"gū yè shén rén","苟合取容":"gǒu hé qǔ róng","狗续侯冠":"gǒu xù hòu guàn","钩爪锯牙":"gōu zhǎo jù yá","共枝别干":"gòng zhī bié gàn","共为唇齿":"gòng wéi chún chǐ","拱手而降":"gǒng shǒu ér xiáng","拱肩缩背":"gǒng jiān suō bèi","功薄蝉翼":"gōng bó chán yì","弓调马服":"gōng diào mǎ fú","更姓改物":"gēng xìng gǎi wù","更仆难数":"gēng pú nán shǔ","更令明号":"gēng lìng míng hào","更待干罢":"gèng dài gàn bà","更唱迭和":"gēng chàng dié hé","更长梦短":"gēng cháng mèng duǎn","各色名样":"gè sè míng yàng","格格不纳":"gé gé bú nà","格格不吐":"gé gé bù tǔ","告朔饩羊":"gù shuò xì yáng","膏车秣马":"gào chē mò mǎ","高义薄云":"gāo yì bó yún","岗头泽底":"gāng tóu zé dǐ","敢为敢做":"gǎn wéi gǎn zuò","甘分随时":"gān fèn suí shí","甘处下流":"gān chǔ xià liú","干啼湿哭":"gàn tí shī kū","干名犯义":"gàn míng fàn yì","干将莫邪":"gān jiāng mò yé","干城之将":"gān chéng zhī jiàng","腹载五车":"fù zài wǔ chē","父债子还":"fù zhài zǐ huán","父为子隐":"fù wéi zǐ yǐn","辅世长民":"fǔ shì zhǎng mín","福为祸始":"fú wéi huò shǐ","符号逻辑":"fú hào luó jí","浮收勒折":"fú shōu lè shé","肤受之愬":"fū shòu zhī sù","否终则泰":"pǐ zhōng zé tài","佛头著粪":"fó tóu zhuó fèn","奉为楷模":"fèng wéi kǎi mó","凤靡鸾吪":"fèng mǐ luán é","封豨修蛇":"fēng xī xiū shé","风影敷衍":"fēng yǐng fū yǎn","丰屋蔀家":"fēng wū bù jiā","粪土不如":"fèn tǔ bù rú","分风劈流":"fēn fēng pǐ liú","沸沸汤汤":"fèi fèi shāng shāng","菲食薄衣":"fěi shí bó yī","飞将数奇":"fēi jiàng shù qí","放辟邪侈":"fàng pì xié chǐ","方领圆冠":"fāng lǐng yuán guàn","犯而不校":"fàn ér bú jiào","返本还源":"fǎn běn huán yuán","反劳为逸":"fǎn láo wéi yì","法轮常转":"fǎ lún cháng zhuàn","罚不当罪":"fá bù dāng zuì","发引千钧":"fà yǐn qiān jūn","发奸擿伏":"fā jiān tī fú","发短心长":"fà duǎn xīn cháng","二竖为虐":"èr shù wéi nüè","儿女心肠":"ér nǚ xīn cháng","儿女亲家":"ér nǚ qìng jiā","遏恶扬善":"è wù yáng shàn","饿殍枕藉":"è piǎo zhěn jí","饿殍载道":"è piǎo zài dào","恶醉强酒":"wù zuì qiǎng jiǔ","恶意中伤":"è yì zhòng shāng","恶湿居下":"wù shī jū xià","恶居下流":"wù jū xià liú","恶不去善":"wù bú qù shàn","扼吭夺食":"è háng duó shí","扼襟控咽":"è jīn kòng yān","峨峨汤汤":"é é shāng shāng","屙金溺银":"ē jīn niào yín","朵颐大嚼":"duǒ yí dà jiáo","夺人所好":"duó rén suǒ hào","多言数穷":"duō yán shuò qióng","多文为富":"duō wén wéi fù","多端寡要":"duō duān guǎ yào","多财善贾":"duō cái shàn gǔ","遁世无闷":"dùn shì wú mèn","遁迹黄冠":"dùn jì huáng guàn","堆案盈几":"duī àn yíng jī","断还归宗":"duàn huán guī zōng","短见薄识":"duǎn jiàn bó shí","蠹居棊处":"dù jū qí chǔ","度己以绳":"duó jǐ yǐ shéng","杜默为诗":"dù mò wéi shī","杜鹃啼血":"dù juān tí xuè","笃近举远":"dǔ jìn jǔ yuǎn","独有千秋":"dú yǒu qiān qiū","读书得间":"dú shū dé jiàn","斗转参横":"dǒu zhuǎn shēn héng","兜肚连肠":"dōu dǔ lián cháng","洞见症结":"dòng jiàn zhèng jié","恫疑虚喝":"dòng yí xū hè","动中窾要":"dòng zhōng kuǎn yào","东鸣西应":"dōng míng xī yīng","东鳞西爪":"dōng lín xī zhǎo","东量西折":"dōng liàng xī shé","东家西舍":"dōng jiā xī shè","东扯西拽":"dōng chě xī zhuāi","鼎铛有耳":"dǐng chēng yǒu ěr","鼎铛玉石":"dǐng chēng yù shí","钉头磷磷":"dīng tóu lín lín","跌宕不羁":"diē dàng bù jī","跌弹斑鸠":"diē dàn bān jiū","雕心雁爪":"diāo xīn yàn zhǎo","颠倒衣裳":"diān dǎo yī cháng","德薄能鲜":"dé bó néng xiǎn","得马折足":"dé mǎ shé zú","蹈其覆辙":"dǎo qí fù zhé","捣虚撇抗":"dǎo xū piē kàng","倒载干戈":"dào zài gān gē","倒裳索领":"dào cháng suǒ lǐng","倒果为因":"dào guǒ wéi yīn","叨在知己":"tāo zài zhī jǐ","叨陪末座":"tāo péi mò zuò","党豺为虐":"dǎng chái wéi nüè","当轴处中":"dāng zhóu chǔ zhōng","当着不着":"dāng zhuó bù zhuó","当务始终":"dāng wù shǐ zhōng","淡汝浓抹":"dàn rǔ nóng mǒ","弹丸脱手":"tán wán tuō shǒu","弹铗无鱼":"dàn jiá wú yú","箪食瓢饮":"dān sì piáo yǐn","大璞不完":"dà pú bù wán","大明法度":"dà míng fǎ dù","大车以载":"dà chē yǐ zài","打闷葫芦":"dǎ mèn hú lu","沓来踵至":"tà lái zhǒng zhì","厝火燎原":"cuò huǒ liǎo yuán","撮科打哄":"cuō kē dǎ hòng","寸积铢累":"cùn jī zhū lěi","啛啛喳喳":"cuì cuì chā chā","摧折豪强":"cuī zhé háo qiáng","摧刚为柔":"cuī gāng wéi róu","从俗就简":"cóng sú jiù jiǎn","此发彼应":"cǐ fā bǐ yīng","此唱彼和":"cǐ chàng bǐ hè","慈悲为本":"cí bēi wéi běn","纯属骗局":"chún shǔ piàn jú","春笋怒发":"chūn sǔn nù fā","垂头搨翼":"chuí tóu tà yì","传为笑谈":"chuán wéi xiào tán","传风扇火":"chuán fēng shān huǒ","穿红着绿":"chuān hóng zhuó lǜ","触处机来":"chù chǔ jī lái","处尊居显":"chǔ zūn jū xiǎn","处堂燕雀":"chǔ táng yàn què","处实效功":"chǔ shí xiào gōng","处高临深":"chǔ gāo lín shēn","出入无间":"chū rù wú jiān","出门应辙":"chū mén yīng zhé","出处语默":"chū chǔ yǔ mò","出处殊途":"chū chǔ shū tú","出处进退":"chū chǔ jìn tuì","愁山闷海":"chóu shān mèn hǎi","冲冠眦裂":"chōng guàn zì liè","齿牙为祸":"chǐ yá wéi huò","尺二冤家":"chǐ èr yuān jia","尺短寸长":"chǐ duǎn cùn cháng","尺寸之功":"chǐ cùn zhī gōng","城北徐公":"chéng běi xú gōng","成败兴废":"chéng bài xīng fèi","趁水和泥":"chèn shuǐ huò ní","称雨道晴":"chēng yǔ dào qíng","称体载衣":"chēng tǐ zài yī","称体裁衣":"chèn tǐ cái yī","称家有无":"chèn jiā yǒu wú","称德度功":"chēng dé duó gōng","沉吟章句":"chén yín zhāng jù","沉吟不决":"chén yín bù jué","沉疴宿疾":"chén kē sù jí","扯纤拉烟":"chě qiàn lā yān","扯顺风旗":"chě shùn fēng qí","车载船装":"chē zǎi chuán zhuāng","朝升暮合":"zhāo shēng mù gě","朝攀暮折":"zhāo pān mù shé","超今冠古":"chāo jīn guàn gǔ","倡而不和":"chàng ér bú hè","畅所欲为":"chàng suǒ yù wéi","苌弘碧血":"cháng hóng bì xiě","长幼尊卑":"zhǎng yòu zūn bēi","长绳系日":"cháng shéng jì rì","长年三老":"zhǎng nián sān lǎo","长春不老":"cháng chūn bù lǎo","长傲饰非":"zhǎng ào shì fēi","昌亭旅食":"chāng tíng lǚ shí","禅絮沾泥":"chán xù zhān ní","差三错四":"chā sān cuò sì","层台累榭":"céng tái lěi xiè","层见迭出":"céng xiàn dié chū","藏踪蹑迹":"cáng zōng niè jì","苍蝇见血":"cāng yíng jiàn xiě","餐松啖柏":"cān sōng dàn bó","骖风驷霞":"cān fēng sì xiá","参伍错综":"cēn wǔ cuò zōng","参辰卯酉":"shēn chén mǎo yǒu","材优干济":"cái yōu gān jǐ","材薄质衰":"cái bó zhì shuāi","才大难用":"cái dà nán yòng","才薄智浅":"cái bó zhì qiǎn","不足为意":"bù zú wéi yì","不足为据":"bù zú wéi jù","不足为法":"bù zú wéi fǎ","不足齿数":"bù zú chǐ shǔ","不着疼热":"bù zhuó téng rè","不知薡蕫":"bù zhī dǐng dǒng","不越雷池":"bú yuè léi chí","不相为谋":"bù xiāng wéi móu","不贪为宝":"bù tān wéi bǎo","不了而了":"bù liǎo ér liǎo","不可揆度":"bù kě kuí duó","不遑启处":"bù huáng qǐ chǔ","不当不正":"bù dāng bú zhèng","不差什么":"bú chà shén me","不差累黍":"bù chā lěi shǔ","擘两分星":"bò liǎng fēn xīng","簸土扬沙":"bǒ tǔ yáng shā","薄物细故":"bó wù xì gù","薄寒中人":"bó hán zhòng rén","博文约礼":"bó wén yuē lǐ","播糠眯目":"bō kāng mí mù","剥皮抽筋":"bō pí chōu jīn","剥肤椎髓":"bō fū chuí suǐ","波属云委":"bō zhǔ yún wěi","波骇云属":"bō hài yún zhǔ","兵微将寡":"bīng wēi jiàng guǎ","兵强将勇":"bīng qiáng jiàng yǒng","兵多将广":"bīng duō jiàng guǎng","兵不由将":"bīng bù yóu jiàng","冰解的破":"bīng jiě dì pò","彬彬济济":"bīn bīn jǐ jǐ","摽梅之年":"biào méi zhī nián","表里为奸":"biǎo lǐ wéi jiān","飙发电举":"biāo fā diàn jǔ","变贪厉薄":"biàn tān lì bó","敝盖不弃":"bì gài bú qì","秕言谬说":"bǐ yán miù shuō","比物属事":"bǐ wù zhǔ shì","被山带河":"pī shān dài hé","被甲枕戈":"pī jiǎ zhěn gē","被甲据鞍":"pī jiǎ jù ān","被褐怀玉":"pī hè huái yù","被发缨冠":"pī fà yīng guàn","背曲腰躬":"bèi qǔ yāo gōng","北窗高卧":"běi chuāng gāo wò","北辰星拱":"běi chén xīng gǒng","北鄙之音":"běi bǐ zhī yīn","卑宫菲食":"bēi gōng fěi shí","暴衣露冠":"pù yī lù guàn","暴腮龙门":"pù sāi lóng mén","暴露文学":"bào lù wén xué","暴虎冯河":"bào hǔ píng hé","抱蔓摘瓜":"bào wàn zhāi guā","抱法处势":"bào fǎ chǔ shì","褒贬与夺":"bāo biǎn yǔ duó","帮闲钻懒":"bāng xián zuān lǎn","拜将封侯":"bài jiàng fēng hóu","百兽率舞":"bǎi shòu shuài wǔ","百孔千创":"bǎi kǒng qiān chuāng","白衣卿相":"bái yī qīng xiàng","白首为郎":"bái shǒu wéi láng","白首相知":"bái shǒu xiāng zhī","把玩无厌":"bǎ wán wú yàn","拔锅卷席":"bá guō juǎn xí","拔本塞源":"bá běn sè yuán","傲不可长":"ào bù kě zhǎng","熬更守夜":"áo gēng shǒu yè","安时处顺":"ān shí chǔ shùn","安身为乐":"ān shēn wéi lè","安老怀少":"ān lǎo huái shào","安步当车":"ān bù dàng chē","爱人好士":"ài rén hào shì","矮人观场":"ǎi rén guān chǎng","捱风缉缝":"ái fēng jī fèng","挨山塞海":"āi shān sè hǎi","阿家阿翁":"ā jiā ā wēng","阿党相为":"ē dǎng xiāng wéi","追亡逐北":"zhuī wáng zhú běi","竹篮打水":"zhú lán dá shuǐ","知疼着热":"zhī téng zháo rè","语不惊人":"yǔ bù jīng rén","于今为烈":"yú jīn wéi liè","一日三省":"yí rì sān xǐng","穴居野处":"xué jū yě chǔ","五脊六兽":"wǔ jǐ liù shòu","无声无臭":"wú shēng wú xiù","谓予不信":"wèi yú bú xìn","舍身为国":"shě shēn wéi guó","杀妻求将":"shā qī qiú jiàng","强作解人":"qiǎng zuò jiě rén","气冲斗牛":"qì chōng dǒu niú","临深履薄":"lín shēn lǚ bó","钧天广乐":"jūn tiān guǎng yuè","艰难竭蹶":"jiān nán jié jué","夹七夹八":"jiā qī jiā bā","混混噩噩":"hún hún è è","厚古薄今":"hòu gǔ bó jīn","鬼怕恶人":"guǐ pà è rén","伽马射线":"gā mǎ shè xiàn","佛头着粪":"fó tóu zhuó fèn","奉为至宝":"fèng wéi zhì bǎo","登坛拜将":"dēng tán bài jiàng","晨昏定省":"chén hūn dìng xǐng","察察为明":"chá chá wéi míng","博闻强识":"bó wén qiáng zhì","避难就易":"bì nán jiù yì","了无生机":"liǎo wú shēng jī","有一说一":"yǒu yī shuō yī","独一无二":"dú yī wú èr","说一不二":"shuō yī bù èr","举一反三":"jǔ yī fǎn sān","数一数二":"shǔ yī shǔ èr","杀一儆百":"shā yī jǐng bǎi","丁一卯二":"dīng yī mǎo èr","丁一确二":"dīng yī què èr","不一而止":"bù yī ér zhǐ","无一幸免":"wú yī xìng miǎn","表里不一":"biǎo lǐ bù yī","良莠不一":"liáng yǒu bù yī","心口不一":"xīn kǒu bù yī","言行不一":"yán xíng bù yī","政令不一":"zhèng lìng bù yī","参差不一":"cēn cī bù yī","纷纷不一":"fēn fēn bù yī","毁誉不一":"huǐ yù bù yī","不一而三":"bù yī ér sān","百不一遇":"bǎi bù yī yù","言行抱一":"yán xíng bào yī","瑜百瑕一":"yú bǎi xiá yī","背城借一":"bèi chéng jiè yī","凭城借一":"píng chéng jiè yī","劝百讽一":"quàn bǎi fěng yī","群居和一":"qún jū hé yī","百不获一":"bǎi bù huò yī","百不失一":"bǎi bù shī yī","百无失一":"bǎi wú shī yī","万不失一":"wàn bù shī yī","万无失一":"wàn wú shī yī","合而为一":"hé ér wéi yī","合两为一":"hé liǎng wéi yī","合二为一":"hé èr wéi yī","天下为一":"tiān xià wéi yī","相与为一":"xiāng yǔ wéi yī","较若画一":"jiào ruò huà yī","较如画一":"jiào rú huà yī","斠若画一":"jiào ruò huà yī","言行若一":"yán xíng ruò yī","始终若一":"shǐ zhōng ruò yī","终始若一":"zhōng shǐ ruò yī","惟精惟一":"wéi jīng wéi yī","众多非一":"zhòng duō fēi yī","不能赞一":"bù néng zàn yī","问一答十":"wèn yī dá shí","一不扭众":"yī bù niǔ zhòng","一以贯之":"yī yǐ guàn zhī","一以当百":"yī yǐ dāng bǎi","百不当一":"bǎi bù dāng yī","十不当一":"shí bù dāng yī","以一警百":"yǐ yī jǐng bǎi","以一奉百":"yǐ yī fèng bǎi","以一持万":"yǐ yī chí wàn","以一知万":"yǐ yī zhī wàn","百里挑一":"bǎi lǐ tiāo yī","整齐划一":"zhěng qí huà yī","一来二去":"yī lái èr qù","一路公交":"yī lù gōng jiāo","一路汽车":"yī lù qì chē","一路巴士":"yī lù bā shì","朝朝朝落":"zhāo cháo zhāo luò","曲意逢迎":"qū yì féng yíng","一行不行":"yì háng bù xíng","行行不行":"háng háng bù xíng"},uo=Object.keys(ho).map(e=>({zh:e,pinyin:ho[e],probability:2e-8,length:4,priority:1,dict:Symbol("dict4")})),go={"巴尔干半岛":"bā ěr gàn bàn dǎo","巴尔喀什湖":"bā ěr kā shí hú","不幸而言中":"bú xìng ér yán zhòng","布尔什维克":"bù ěr shí wéi kè","何乐而不为":"hé lè ér bù wéi","苛政猛于虎":"kē zhèng měng yú hǔ","蒙得维的亚":"méng dé wéi dì yà","民以食为天":"mín yǐ shí wéi tiān","事后诸葛亮":"shì hòu zhū gě liàng","物以稀为贵":"wù yǐ xī wéi guì","先下手为强":"xiān xià shǒu wéi qiáng","行行出状元":"háng háng chū zhuàng yuan","亚得里亚海":"yà dé lǐ yà hǎi","眼不见为净":"yǎn bú jiàn wéi jìng","竹筒倒豆子":"zhú tǒng dào dòu zi"},po=[...Object.keys(go).map(e=>({zh:e,pinyin:go[e],probability:2e-8,length:5,priority:1,dict:Symbol("dict5")})),...uo,...co,...ro,...Ji,...io];function mo(e,n){return e&&(e.decimal<n.decimal||e.decimal===n.decimal&&e.probability>n.probability)?e:n}function fo(e){e.probability<1e-300&&(e.probability*=1e300,e.decimal+=1)}function xo(e){return 100===e.priority?-e.length*e.length*100:10===e.priority?-e.length*e.length*10:0}function jo(e,n){return e&&e.count<=n.count?e:n}function bo(e){return 100===e.priority?-e.length*e.length*1e5:10===e.priority?-e.length*e.length*100:1}function yo(e,n){return!(n.index+n.length<=e.index||n.priority>e.priority||n.priority===e.priority&&n.length>e.length)}var wo;!function(e){e[e.ReverseMaxMatch=1]="ReverseMaxMatch",e[e.MaxProbability=2]="MaxProbability",e[e.MinTokenization=3]="MinTokenization"}(wo||(wo={}));class vo{constructor(e,n=""){this.children=new Map,this.fail=null,this.patterns=[],this.parent=e,this.key=n}}let ko=!1;const Co=new class{constructor(){this.dictMap=new Map,this.queues=[],this.root=new vo(null)}build(e){this.buildTrie(e),this.buildFailPointer()}buildTrie(e){for(let n of e){const e=Li(n.zh);let t=this.root;for(let n=0;n<e.length;n++){let s=e[n];if(!t.children.has(s)){const e=new vo(t,s);t.children.set(s,e),this.addNodeToQueues(e,n+1)}t=t.children.get(s)}this.insertPattern(t.patterns,n),n.node=t,this.addPatternToDictMap(n)}}buildFailPointer(){let e=[],n=0;for(this.queues.forEach(n=>{e=e.concat(n)}),this.queues=[];e.length>n;){let t=e[n++],s=t.parent&&t.parent.fail,i=t.key;for(;s&&!s.children.has(i);)s=s.fail;t.fail=s?s.children.get(i):this.root}}addPatternToDictMap(e){this.dictMap.has(e.dict)||this.dictMap.set(e.dict,new Set),this.dictMap.get(e.dict).add(e)}addNodeToQueues(e,n){this.queues[n]||(this.queues[n]=[]),this.queues[n].push(e)}insertPattern(e,n){for(let t=e.length-1;t>=0;t--){const s=e[t];if(n.priority===s.priority&&n.probability>=s.probability)e[t+1]=s;else{if(!(n.priority>s.priority))return void(e[t+1]=n);e[t+1]=s}}e[0]=n}removeDict(e){this.dictMap.has(e)&&(this.dictMap.get(e).forEach(e=>{e.node.patterns=e.node.patterns.filter(n=>n!==e)}),this.dictMap.delete(e))}match(e,n,t=Li(e)){let s=this.root,i=[];for(let e=0;e<t.length;e++){let o=t[e],a=s.children.size?s.children.get(o):void 0;for(;!a&&s!==this.root;){if(!s.fail){s=this.root;break}s=s.fail,a=s.children.size?s.children.get(o):void 0}if(a){s=a;const t=s.patterns.find(t=>"off"===n?10!==t.priority:"head"!==n||t.length-1-e==0);t&&i.push(Object.assign(Object.assign({},t),{index:e-t.length+1}));let o=s.fail;for(;null!==o;){const t=o.patterns.find(t=>"off"===n?10!==t.priority:"head"!==n||t.length-1-e==0);t&&i.push(Object.assign(Object.assign({},t),{index:e-t.length+1})),o=o.fail}}}return i}search(e,n,t=2,s=Li(e)){const i=this.match(e,n,s);return 1===t?function(e){const n=[];for(let t=e.length-1;t>=0;){const{index:s}=e[t];let i=t-1;for(;i>=0&&yo(e[t],e[i]);)i--;(i<0||e[i].index+e[i].length<=s)&&n.push(e[t]),t=i}return n.reverse()}(i):3===t?function(e,n){const t=[];let s=e.length-1,i=e[s];for(let o=n-1;o>=0;o--){const a=o+1>=n?{count:0,patterns:[]}:t[o+1];for(;i&&i.index+i.length-1===o;){const n=i.index,o={count:bo(i)+a.count,patterns:a.patterns,concatPattern:i};t[n]=jo(t[n],o),i=e[--s]}const r={count:1+a.count,patterns:a.patterns};t[o]=jo(t[o],r),t[o].concatPattern&&(t[o].patterns=t[o].patterns.concat(t[o].concatPattern),t[o].concatPattern=void 0,delete t[o+1])}return t[0].patterns.reverse()}(i,s.length):function(e,n){const t=[],s={probability:1,decimal:0,nextIndex:n};let i=e.length-1,o=e[i];for(let a=n-1;a>=0;a--){const r=a+1>=n?s:t[a+1],l=r.pattern?a+1:r.nextIndex;for(;o&&o.index+o.length-1===a;){const n=o.index,s={probability:o.probability*r.probability,decimal:r.decimal+xo(o),pattern:o,nextIndex:l};fo(s),t[n]=mo(t[n],s),o=e[--i]}const c={probability:1e-13*r.probability,decimal:0,nextIndex:l};fo(c),t[a]=mo(t[a],c)}const a=[];let r=0;for(;r<n;){const e=t[r];e.pattern&&a.push(e.pattern),r=e.nextIndex}return a}(i,s.length)}};function zo(){ko||(Co.build(po),ko=!0)}"function"==typeof requestIdleCallback?requestIdleCallback(()=>zo()):setTimeout(zo,0);const _o=[];function So(){return _o}const No=e=>{const n=no.get(e);if(!n)return e;const t=n.indexOf(" ");return-1===t?n:n.slice(0,t)},To=e=>e.replace(/(ā|á|ǎ|à)/g,"a").replace(/(ō|ó|ǒ|ò)/g,"o").replace(/(ē|é|ě|è)/g,"e").replace(/(ī|í|ǐ|ì)/g,"i").replace(/(ū|ú|ǔ|ù)/g,"u").replace(/(ǖ|ǘ|ǚ|ǜ)/g,"ü").replace(/(n̄|ń|ň|ǹ)/g,"n").replace(/(m̄|ḿ|m̌|m̀)/g,"m").replace(/(ê̄|ế|ê̌|ề)/g,"ê"),Bo=(e,n)=>{const t=e.split(" "),s=[],i=[];for(let e of t)for(let n of Fi)if(e.startsWith(n)){let t=e.slice(n.length);-1!==$i.indexOf(n)&&-1!==Vi.indexOf(t)&&(t=Hi[t]),s.push(n),i.push(t);break}return"standard"===n&&s.forEach((e,n)=>{"y"!==e&&"w"!==e||(s[n]="")}),{final:i.join(" "),initial:s.join(" ")}};function Po(e){let n="",t="",s="";return-1!==Wi.indexOf(To(e))?(n=e[0],t=e[1],s=e.slice(2)):(t=e[0]||"",s=e.slice(1)||""),{head:n,body:t,tail:s}}const qo=e=>{const{final:n}=Bo(e);return Po(n)},Mo=e=>{const n=/(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/,t=/(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/,s=/(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/,i=/(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/,o=/(a|o|e|i|u|ü|ê)/,a=/(n|m)$/,r=[];return e.split(" ").forEach(e=>{n.test(e)?r.push("1"):t.test(e)?r.push("2"):s.test(e)?r.push("3"):i.test(e)?r.push("4"):o.test(e)||a.test(e)?r.push("0"):r.push("")}),r.join(" ")},Ao=(e,n)=>{const t=[];return e.split(" ").forEach(e=>{t.push(n?e[0]:e)}),t.join(" ")};function Eo(e,n,t){if(-1===Qi.indexOf(e))return No(e);if(n===t&&n&&No(n)!==n)return To(No(e));if(t&&!Zi[e].includes(t)){const n=No(t);if(n!==t){const t=Mo(n),s=Yi[e];for(let e in s)if(-1!==s[e].indexOf(Number(t)))return e}}}function Io(e,n,t){if(!("了"!==e||n&&no.get(n)))return"liǎo"}function Do(e,n,t){if("々"===e)return n&&no.get(n)?no.get(n).split(" ")[0]:"tóng"}function Uo(e,n,t,s){for(let i of s){const s=i(e,n,t);if(s)return s}return No(e)}function Ro(e,n){return!(n instanceof RegExp)||((n.global||n.sticky)&&(n.lastIndex=0),n.test(e))}const Lo={pattern:"pinyin",toneType:"symbol",type:"string",multiple:!1,mode:"normal",removeNonZh:!1,nonZh:"spaced",v:!1,separator:" ",toneSandhi:!0,segmentit:2};function Oo(e,n){n=Object.assign(Object.assign({},Lo),n||{});const t=(e=>"string"==typeof e||(console.error("The first param of pinyin is error: "+e+' is not assignable to type "string".'),!1))(e);if(!t)return e;if(""===e)return"array"===n.type||"all"===n.type?[]:"";void 0===n.surname&&("surname"===n.mode?n.surname="all":n.surname="off"),"all"===n.type&&(n.pattern="pinyin"),"num"===n.pattern&&(n.toneType="none"),n.removeNonZh&&(n.nonZh="removed");const s=Li(e);let i=Array(s.length),{list:o}=((e,n,t,s,i,o=Li(e))=>{zo();const a=i?(e=>{const n=[],t=So();for(let s=0;s<e.length;s++){const i=e[s],o=i.charCodeAt(0);t[o]?n[s]=t[o]:n[s]=i}return n.join("")})(e):e,r=i?Li(a):o,l=Co.search(a,t,s,r);let c=0;const d=function(e){const n=[];return e.includes("々")&&n.push(Do),n.push(Io),n.push(Eo),n}(e);for(let e=0;e<o.length;){const t=l[c];if(t&&e===t.index){if(1===t.length&&t.priority<=1){const s=o[e];t.zh=s;let i="";i=Uo(s,o[e-1],o[e+1],d),n[e]={origin:s,result:i,isZh:i!==s,originPinyin:i},e++,c++;continue}const s=t.pinyin.split(" ");let a=0;i&&(t.zh=o.slice(t.index,t.index+t.length).join(""));for(let i=0;i<t.length;i++)n[e+i]={origin:o[i+t.index],result:s[a]||"",isZh:!0,originPinyin:s[a]||""},a++;e+=t.length,c++}else{const t=o[e];let s="";s=Uo(t,o[e-1],o[e+1],d),n[e]={origin:t,result:s,isZh:s!==t,originPinyin:s},e++}}return{list:n,matches:l}})(e,i,n.surname,n.segmentit,n.traditional,s);o=((e,n)=>(!1===n&&e.forEach(e=>{"一"===e.origin?e.result=e.originPinyin="yī":"不"===e.origin&&(e.result=e.originPinyin="bù")}),e))(o,n.toneSandhi),o=((e,n)=>{let t=n.nonZh;if("removed"===t)return e.filter(e=>e.isZh||!Ro(e.origin,n.nonZhScope));if("consecutive"===t){for(let t=e.length-2;t>=0;t--){const s=e[t],i=e[t+1];!s.isZh&&!i.isZh&&Ro(s.origin,n.nonZhScope)&&Ro(i.origin,n.nonZhScope)&&(s.origin+=i.origin,s.result+=i.result,i.delete=!0)}return e.filter(e=>!e.delete)}return e})(o,n);const a=((e,n)=>!(!n.multiple||1!==Ri(e))&&((e,n="off")=>{let t=oo(e,n);return t.length>0?t.map(n=>({origin:e,result:n,isZh:!0,originPinyin:n})):[{origin:e,result:e,isZh:!1,originPinyin:e}]})(e,n.surname))(e,n);return a&&(o=a),((e,n)=>{switch(n.pattern){case"pinyin":break;case"num":e.forEach(e=>{e.result=e.isZh?Mo(e.result):""});break;case"initial":e.forEach(e=>{e.result=e.isZh?Bo(e.result,n.initialPattern).initial:""});break;case"final":e.forEach(e=>{e.result=e.isZh?Bo(e.result,n.initialPattern).final:""});break;case"first":e.forEach(e=>{e.result=Ao(e.result,e.isZh)});break;case"finalHead":e.forEach(e=>{e.result=e.isZh?qo(e.result).head:""});break;case"finalBody":e.forEach(e=>{e.result=e.isZh?qo(e.result).body:""});break;case"finalTail":e.forEach(e=>{e.result=e.isZh?qo(e.result).tail:""})}})(o,n),((e,n)=>{switch(n.toneType){case"symbol":break;case"none":e.forEach(e=>{e.isZh&&(e.result=To(e.result))});break;case"num":e.forEach(e=>{e.isZh&&(e.result=((e,n)=>{const t=To(e).split(" "),s=Mo(n).split(" "),i=[];return t.forEach((e,n)=>{i.push(`${e}${s[n]}`)}),i.join(" ")})(e.result,e.originPinyin))})}})(o,n),((e,n)=>{n.v&&e.forEach(e=>{e.isZh&&(e.result=e.result.replace(/ü/g,"string"==typeof n.v?n.v:"v"))})})(o,n),((e,n,t)=>{if(n.multiple&&1===Ri(t)){let n="";e=e.filter(e=>{const t=e.result!==n;return n=e.result,t})}return"array"===n.type?e.map(e=>e.result):"all"===n.type?e.map(e=>{const t=e.isZh?e.result:"",{initial:s,final:i}=Bo(t,n.initialPattern),{head:o,body:a,tail:r}=Po(i);let l=[];return""!==t&&(l=[t].concat(oo(e.origin,n.surname).filter(e=>e!==t))),{origin:e.origin,pinyin:t,initial:s,final:i,first:Ao(e.result,e.isZh),finalHead:o,finalBody:a,finalTail:r,num:Number(Mo(e.originPinyin)),isZh:e.isZh,polyphonic:l,inZhRange:!!no.get(e.origin),result:e.result}}):e.map(e=>e.result).join(n.separator)})(o,n,e)}const Fo=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"uid",n):is.A.removeUrlParam(t,"uid"),is.A.navigateTo(t)},$o=["address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm"];function Vo({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Ho({title:e,back:n="messages-home",backUid:t,right:s,onRight:i}){return(0,vt.jsxs)("header",{className:"people-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||Fo(n,t)},"aria-label":"返回",children:(0,vt.jsx)(Vo,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),s?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,children:s}):(0,vt.jsx)("span",{})]})}function Wo({person:e,icon:t}){const s=e&&e.avatar_file_id,[i,o]=n().useState(null);return n().useEffect(()=>{if(!s)return void o(null);let e=!0;return(0,zt.w8)(s).then(n=>{e&&o(n)}).catch(()=>{}),()=>{e=!1}},[s]),(0,vt.jsx)("span",{className:"people-avatar",children:i?(0,vt.jsx)("img",{src:i,alt:""}):(0,vt.jsx)(Vo,{children:t||"person"})})}function Ko({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function Xo({value:e,onChange:n,placeholder:t,onSubmit:s}){return(0,vt.jsxs)("label",{className:"people-search",children:[(0,vt.jsx)(Vo,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&s&&s()},placeholder:t})]})}function Go({payload:e,profile:t,loading:s}){const i=n().useRef(null);return n().useEffect(()=>{i.current&&e&&(i.current.innerHTML="",new(Ai())(i.current,{text:e,width:190,height:190,correctLevel:Ai().CorrectLevel.M}))},[e]),(0,vt.jsxs)("section",{className:"people-qr-card",children:[(0,vt.jsxs)("div",{className:"people-qr-profile",children:[(0,vt.jsx)(Wo,{person:t}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t&&t.display_name||""}),(0,vt.jsx)("small",{children:t&&t.public_account?"账号 "+t.public_account:""})]})]}),(0,vt.jsx)("div",{className:"people-qrcode",ref:i}),s?(0,vt.jsx)("p",{children:"正在生成二维码…"}):(0,vt.jsx)("p",{children:"扫一扫上面的二维码,加我为好友"}),(0,vt.jsx)("small",{children:"二维码 24 小时内有效"})]})}function Jo({myUserId:e,onTopicSelected:t}){const[s,i]=n().useState(""),o=e?"friends:"+e:null,[a,r]=n().useState(()=>o&&(0,It.ze)(o)||[]),[l,c]=n().useState(0),[d,h]=n().useState(()=>!(o&&(0,It.ze)(o))),[u,g]=n().useState(!1),[p]=(0,It.sK)(e?"bootstrap:"+e:null,zt.Jv,[e]),m=p&&p.entries&&p.entries.file_assistant&&p.entries.file_assistant.topic;n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.M7)("",e)).then(e=>{o&&(0,It.Ug)(o,e),r(e)}).catch(()=>g(!0)).finally(()=>h(!1)),(0,zt.Ey)(e=>(0,zt.Ro)("inbound","pending",e)).then(e=>c(e.length)).catch(()=>{})},[]);const f=a.filter(e=>`${e.display_name}${e.remark||""}`.toLowerCase().includes(s.toLowerCase())).reduce((e,n)=>{const t=function(e){const n=(e||"").trim()[0]||"#";if(/[A-Za-z]/.test(n))return n.toUpperCase();if(/[一-龥]/.test(n)){const e=Oo(n,{pattern:"first",toneType:"none"});return/[a-z]/i.test(e)?e.toUpperCase():"#"}return"#"}(n.remark||n.display_name);return{...e,[t]:(e[t]||[]).concat(n)}},{}),x=Object.keys(f).sort(),j=[{icon:"person_add_alt",label:"新朋友",route:"friend-requests",badge:l||null,tone:"blue"},{icon:"group",label:"群组",route:"group-list",tone:"green"},{icon:"folder_special",label:"文件助手",route:"chat-standard",tone:"orange",fileAssistant:!0},{icon:"notifications",label:"系统消息",route:"system-messages",tone:"red"}];return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"通讯录",right:"添加",onRight:()=>Fo("add-friend")}),(0,vt.jsx)(Xo,{value:s,onChange:i,placeholder:"搜索联系人"}),(0,vt.jsxs)("main",{className:"people-scroll",children:[(0,vt.jsx)("section",{className:"people-entry-list",children:j.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>(e=>{e.fileAssistant&&m&&t?t(m):Fo(e.route)})(e),children:[(0,vt.jsx)(Wo,{icon:e.icon}),(0,vt.jsx)("strong",{children:e.label}),e.badge?(0,vt.jsx)("em",{children:e.badge}):null,(0,vt.jsx)(Vo,{children:"chevron_right"})]},e.label))}),(0,vt.jsx)("h3",{className:"people-section-title",children:"好友通讯录"}),d?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):0===x.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:u?"通讯录加载失败":"暂无好友"}):null,x.map(e=>(0,vt.jsxs)("section",{className:"people-group",id:"people-group-"+e,children:[(0,vt.jsx)("h2",{children:e}),f[e].map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{na(e),Fo("friend-profile",e.user_id)},children:[(0,vt.jsx)(Wo,{person:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.remark||e.display_name}),e.remark&&e.remark!==e.display_name?(0,vt.jsx)("small",{children:e.display_name}):null]})]},e.user_id))]},e))]}),(0,vt.jsx)("nav",{className:"people-index",children:x.map(e=>(0,vt.jsx)("a",{href:"#",onClick:n=>{n.preventDefault(),(e=>{const n=document.getElementById("people-group-"+e);n&&n.scrollIntoView({behavior:"smooth",block:"start"})})(e)},children:e},e))})]})}function Yo(e){return"pending"===e.status?"outbound"===e.direction?"已发送":null:"accepted"===e.status?"已添加":"rejected"===e.status?"已拒绝":"expired"===e.status?"已过期":null}function Zo({onToast:e,onTopicSelected:t,onCreateTopic:s}){const[i,o]=n().useState([]),[a,r]=n().useState(!0),[l,c]=n().useState(!1);n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.Ro)("all","all",e)).then(o).catch(()=>c(!0)).finally(()=>r(!1))},[]);const d=(n,t)=>{const s=t?"accepted":"rejected";o(e=>e.map(e=>e.request_id===n.request_id?{...e,status:s}:e)),(t?(0,zt.wI)(n.request_id):(0,zt.xz)(n.request_id)).then(()=>e(t?"已通过好友申请":"已拒绝好友申请")).catch(t=>{o(e=>e.map(e=>e.request_id===n.request_id?{...e,status:n.status}:e)),e(t.message||"操作失败")})};return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"新朋友",back:"address-book"}),(0,vt.jsxs)("main",{className:"people-request-list",children:[a?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):0===i.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:l?"加载失败,请重试":"暂无新朋友申请"}):null,i.map(e=>(0,vt.jsxs)("article",{role:"button",tabIndex:0,onClick:()=>(e=>(s||t)&&(s||t)("inbound"===e.direction?e.applicant_id:e.target_user_id))(e),children:[(0,vt.jsx)(Wo,{person:e.peer}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e.peer&&e.peer.display_name||e.applicant_id}),(0,vt.jsx)("p",{children:e.message||"请求添加您为好友"}),(0,vt.jsx)("small",{children:new Date(e.created_at).toLocaleString()})]}),"pending"===e.status&&"inbound"===e.direction?(0,vt.jsxs)("span",{children:[(0,vt.jsx)("button",{type:"button",onClick:n=>{n.stopPropagation(),d(e,!1)},children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:n=>{n.stopPropagation(),d(e,!0)},children:"通过验证"})]}):(0,vt.jsx)("em",{children:Yo(e)})]},e.request_id))]})]})}const Qo=/^1[3-9]\d{9}$/,ea={male:"男",female:"女",other:"其他"};function na(e){e&&e.user_id&&(0,It.Ug)("profile-seed:"+e.user_id,{...e,capabilities:{can_add_friend:!!e.can_add}})}function ta({result:e=!1,onToast:t,onOpenScanner:s}){const[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(e),[d,h]=n().useState([]),u=e=>"friend"===e.relationship?"已是好友":"pending_outbound"===e.relationship?"已申请":"pending_inbound"===e.relationship?"待通过":"blocked_by_me"===e.relationship?"已拉黑":"blocked_by_peer"===e.relationship?"无法添加":"添加";return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"添加好友",back:"address-book"}),(0,vt.jsx)(Xo,{value:i,onChange:e=>{o(e),e.trim()||(c(!1),h([]))},placeholder:"查找账号",onSubmit:()=>(e=>{const n=e.trim();if(!n)return c(!1),void h([]);r(!0),c(!0);const{query:t,type:s}=function(e){if(e.startsWith("+"))return{query:e.replace(/[\s-]/g,""),type:"phone"};const n=e.replace(/[\s-]/g,"");return Qo.test(n)?{query:"+86"+n,type:"phone"}:{query:e,type:"exact_account"}}(n);(0,zt.x5)(t,s).then(e=>h(e.items||[])).catch(()=>h([])).finally(()=>r(!1))})(i)}),(0,vt.jsx)("main",{children:l?(0,vt.jsxs)("section",{className:"people-search-result",children:[(0,vt.jsx)("h2",{children:"查找人"}),a?(0,vt.jsx)("p",{className:"people-empty-hint",children:"搜索中…"}):0===d.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:"未找到相关用户"}):d.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{na(e),"friend"===e.relationship?Fo("friend-profile",e.user_id):Fo("group-member-profile",e.user_id)},children:[(0,vt.jsx)(Wo,{person:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.display_name})}),(0,vt.jsx)("em",{className:"none"===e.relationship?"people-add-cta":"",children:u(e)})]},e.user_id))]}):(0,vt.jsxs)("section",{className:"people-add-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>Fo("my-friend-qr"),children:[(0,vt.jsx)(Vo,{children:"qr_code"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"我的二维码"}),(0,vt.jsx)("small",{children:"让朋友扫一扫添加我"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>s?s():t("暂不支持扫码,请使用账号搜索添加好友"),children:[(0,vt.jsx)(Vo,{children:"qr_code_scanner"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"扫一扫"}),(0,vt.jsx)("small",{children:"扫描好友或群二维码"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{(0,zt.jx)().then(e=>{const n=`加我为好友:${e.qr_payload}`;return navigator.share?navigator.share({title:"添加好友",text:n}).catch(()=>{}):navigator.clipboard?navigator.clipboard.writeText(n).then(()=>t("邀请链接已复制")).catch(()=>t("复制失败,请手动分享二维码")):void t("当前浏览器不支持分享,请使用二维码")}).catch(e=>t(e.message||"生成邀请链接失败"))},children:[(0,vt.jsx)(Vo,{children:"share"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"分享给好友"}),(0,vt.jsx)("small",{children:"分享链接给好友,一起来玩吧"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]})]})})]})}function sa({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState(null);return n().useEffect(()=>{(0,zt.jx)().then(e=>{s(e.qr_payload),o(e.display_profile)}).catch(()=>e("二维码生成失败"))},[]),(0,vt.jsxs)("div",{className:"people-page people-qr-page",children:[(0,vt.jsx)(Ho,{title:"我的二维码",back:"add-friend"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Go,{payload:t,profile:i,loading:!t}),(0,vt.jsxs)("div",{className:"people-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&t?navigator.share({title:"添加好友",text:t}).then(()=>e("二维码名片已分享")).catch(()=>{}):navigator.clipboard&&t&&(navigator.clipboard.writeText(t),e("链接已复制"))},children:[(0,vt.jsx)(Vo,{children:"share"}),(0,vt.jsx)("span",{children:"分享好友"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const n=document.querySelector(".people-qrcode canvas");if(!n)return void e("二维码尚未生成");const t=document.createElement("a");t.href=n.toDataURL("image/png"),t.download="我的二维码.png",t.click(),e("二维码已保存到相册")},children:[(0,vt.jsx)(Vo,{children:"download"}),(0,vt.jsx)("span",{children:"保存到相册"})]})]})]})]})}function ia({uid:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(null);return n().useEffect(()=>{e&&(0,zt.W)(e).then(e=>{i(e.qr_payload),a(e.display_profile)}).catch(()=>t("二维码生成失败"))},[e]),(0,vt.jsxs)("div",{className:"people-page people-qr-page",children:[(0,vt.jsx)(Ho,{title:"二维码",back:"friend-profile",backUid:e}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Go,{payload:s,profile:o,loading:!s}),(0,vt.jsx)("div",{className:"people-qr-actions",children:(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=document.querySelector(".people-qrcode canvas");if(!e)return void t("二维码尚未生成");const n=document.createElement("a");n.href=e.toDataURL("image/png"),n.download="好友二维码.png",n.click(),t("二维码已保存到相册")},children:[(0,vt.jsx)(Vo,{children:"download"}),(0,vt.jsx)("span",{children:"保存到相册"})]})})]})]})}function oa({uid:e,onToast:t}){const[s,i]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState(!1);n().useEffect(()=>{e&&((0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),i(n)}).catch(()=>{}),(0,zt.pl)(e).then(e=>{e&&e.relationship&&i(n=>n?{...n,relationship:e.relationship}:n)}).catch(()=>{}))},[e]);const h=s&&("pending_outbound"===s.relationship||"pending_inbound"===s.relationship),u=s&&"friend"===s.relationship;return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"好友验证",back:"group-member-profile",backUid:e}),(0,vt.jsxs)("main",{className:"people-verify",children:[(0,vt.jsx)(Wo,{person:s}),(0,vt.jsx)("h2",{children:s&&s.display_name||""}),u?(0,vt.jsx)("p",{className:"people-empty-hint",children:"你们已经是好友了"}):h||c?(0,vt.jsx)("p",{className:"people-empty-hint",children:"好友申请正在等待验证"}):(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证留言"}),(0,vt.jsx)("textarea",{value:o,maxLength:"50",placeholder:"我是祈万事安好",onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/50"]})]}),u||h||c?null:(0,vt.jsxs)("div",{className:"people-verify-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Fo("group-member-profile",e),children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"people-primary",disabled:r,onClick:()=>{l(!0),(0,zt.EC)(e,o.trim(),"search").then(()=>{t("好友申请已发送"),d(!0);const n=(0,It.ze)("profile-seed:"+e)||{};(0,It.Ug)("profile-seed:"+e,{...n,relationship:"pending_outbound",capabilities:{...n.capabilities,can_add_friend:!1}}),window.setTimeout(()=>Fo("group-member-profile",e),800)}).catch(e=>t(e.message||"发送失败")).finally(()=>l(!1))},children:r?"发送中…":"发送"})]})]})]})}function aa({uid:e,friend:t,onTopicSelected:s,onCreateTopic:i,onToast:o}){const[a,r]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[l,c]=n().useState(!1);if(n().useEffect(()=>{e&&((0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),r(n)}).catch(()=>{r(e=>(e||(o("资料加载失败"),c(!0)),e))}),(0,zt.pl)(e).then(e=>{e&&e.relationship&&r(n=>n?{...n,relationship:e.relationship,capabilities:e.capabilities||n.capabilities}:n)}).catch(()=>{}))},[e]),n().useEffect(()=>{if(!e)return;const n=n=>{if(n.detail&&n.detail.uid===e){const n=(0,It.ze)("profile-seed:"+e);n&&r(n)}};return window.addEventListener("profile-seed-updated",n),()=>window.removeEventListener("profile-seed-updated",n)},[e]),!a)return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"个人资料",back:t?"address-book":"chat-standard"}),(0,vt.jsx)("main",{className:"people-profile",children:(0,vt.jsx)("p",{className:"people-empty-hint",children:l?"资料加载失败,请重试":"加载中…"})})]});const d=a.capabilities&&a.capabilities.can_add_friend,h="friend"===a.relationship,u="blocked_by_peer"===a.relationship?"对方已将你拉黑,无法添加为好友":"blocked_by_me"===a.relationship?"你已拉黑对方,需先取消拉黑才能添加为好友":"pending_inbound"===a.relationship?'对方已向你发送好友申请,请前往"新朋友"处理':"好友申请正在等待验证",g=()=>(i||s)(e);return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"个人资料",back:t?"address-book":"chat-standard",right:h?"设置":null,onRight:()=>Fo("friend-settings",e)}),(0,vt.jsxs)("main",{className:"people-profile",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)(Wo,{person:a}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h2",{children:a.display_name}),a.public_account?(0,vt.jsxs)("p",{children:["用户名:",a.public_account]}):null,a.region?(0,vt.jsxs)("p",{children:["地区:",a.region]}):null]})]}),(0,vt.jsxs)("button",{type:"button",className:"people-profile-qr-row",onClick:()=>Fo("friend-qr",e),children:[(0,vt.jsx)("span",{children:"二维码"}),(0,vt.jsx)(Vo,{children:"qr_code"})]}),(0,vt.jsxs)("dl",{children:[a.gender?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"性别"}),(0,vt.jsx)("dd",{children:ea[a.gender]||a.gender})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"个性签名"}),(0,vt.jsx)("dd",{className:a.signature?"":"muted",children:a.signature||"此人很懒什么都没留下~"})]})]}),h?(0,vt.jsxs)("div",{className:"people-profile-actions",children:[(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:g,children:[(0,vt.jsx)(Vo,{children:"chat_bubble_outline"}),"发消息"]}),(0,vt.jsxs)("button",{type:"button",onClick:g,children:[(0,vt.jsx)(Vo,{children:"call"}),"音视频通话"]})]}):d?(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:()=>Fo("friend-verification",e),children:[(0,vt.jsx)(Vo,{children:"person_add_alt"}),"添加好友"]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"people-empty-hint",children:u}),(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:g,children:[(0,vt.jsx)(Vo,{children:"chat_bubble_outline"}),"查看聊天"]})]})]})]})}function ra({checked:e,onChange:n,disabled:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:t,className:"people-switch"+(e?" checked":""),onClick:()=>n(!e),children:(0,vt.jsx)("i",{})})}function la({uid:e,initialBlocked:t,pinBlocked:s,onToast:i}){const[o,a]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[r,l]=n().useState(t),[c,d]=n().useState(null),[h,u]=n().useState(!1),[g,p]=n().useState(!1),[m,f]=n().useState(!1),[x,j]=n().useState(""),[b,y]=n().useState("");return n().useEffect(()=>{e&&((0,zt.RM)(e).then(e=>{u(!!e.pinned),p(!!e.mute_notifications),d(e.version)}).catch(()=>{}),(0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),a(n),s||l("blocked_by_me"===n.relationship)}).catch(()=>{s||(0,zt.pl)(e).then(e=>{e&&e.relationship&&l("blocked_by_me"===e.relationship)}).catch(()=>{})}),(0,zt.Ey)(e=>(0,zt.M7)("",e)).then(n=>{const t=n.find(n=>n.user_id===e);t&&j(t.remark||"")}).catch(()=>{}))},[e]),(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"聊天设置",back:"friend-profile",backUid:e}),(0,vt.jsxs)("main",{className:"people-settings",children:[(0,vt.jsxs)("section",{className:"people-settings-profile",children:[(0,vt.jsx)(Wo,{person:o}),(0,vt.jsx)("strong",{children:o&&o.display_name||""})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>is.A.navigateTo(is.A.addUrlParam(is.A.setUrlSidePanel(is.A.currentUrl(),"history-search"),"topic",e)),children:[(0,vt.jsx)("span",{children:"查看聊天记录"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息传输方式"}),(0,vt.jsx)("small",{children:"已启动加密传输"})]})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"置顶聊天"}),(0,vt.jsx)(ra,{checked:h,disabled:null===c,onChange:n=>{const t=h;u(n),(0,zt.EA)(e,{pinned:n,version:c}).then(e=>d(e.version)).catch(e=>{u(t),i(e.message||"设置失败")})}})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息免打扰"}),(0,vt.jsx)(ra,{checked:g,disabled:null===c,onChange:n=>{const t=g;p(n),(0,zt.EA)(e,{mute_notifications:n,version:c}).then(e=>d(e.version)).catch(e=>{p(t),i(e.message||"设置失败")})}})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>Fo("clear-chat-confirm",e),children:[(0,vt.jsx)("span",{children:"清空聊天记录"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),m?(0,vt.jsxs)("div",{className:"people-remark-edit",children:[(0,vt.jsx)("input",{value:b,maxLength:"64",onChange:e=>y(e.target.value),autoFocus:!0}),(0,vt.jsx)("button",{type:"button",onClick:()=>{const n=b.trim();(0,zt.Sk)(e,n).then(()=>{j(n),f(!1),i("备注已更新")}).catch(e=>i(e.message||"备注更新失败"))},children:"保存"})]}):(0,vt.jsxs)("button",{type:"button",onClick:()=>{y(x),f(!0)},children:[(0,vt.jsx)("span",{children:"备注"}),x?(0,vt.jsx)("small",{children:x}):null,(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:r?"取消拉黑":"拉黑"}),(0,vt.jsx)(ra,{checked:!!r,onChange:n=>{n?Fo("block-confirm",e):(0,zt.kV)(e).then(()=>{l(!1),i("已移出黑名单")}).catch(e=>i(e.message||"操作失败"))}})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{let n=is.A.setUrlSidePanel(is.A.currentUrl(),"abuse-report-reasons");n=is.A.addUrlParam(n,"target_type","user"),n=is.A.addUrlParam(n,"target_id",e),n=is.A.addUrlParam(n,"target_name",o&&o.display_name||e),is.A.navigateTo(n)},children:[(0,vt.jsx)("span",{children:"投诉与举报"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]})]}),r?null:(0,vt.jsx)("button",{type:"button",className:"people-danger",onClick:()=>Fo("friend-delete-confirm",e),children:"删除好友"})]})]})}function ca({onToast:e}){const[t,s]=n().useState([]),[i,o]=n().useState(!0),[a,r]=n().useState(!1);return n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.Tr)(e)).then(s).catch(()=>r(!0)).finally(()=>o(!1))},[]),(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"黑名单",back:"android-settings"}),(0,vt.jsx)("main",{className:"people-block-list",children:i?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):t.length?t.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Wo,{person:n.user}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.user&&n.user.display_name||n.user_id}),(0,vt.jsx)("small",{children:"已阻止消息和通话"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return t=n.user_id,void(0,zt.kV)(t).then(()=>{s(e=>e.filter(e=>e.user_id!==t)),e("已移出黑名单")}).catch(n=>e(n.message||"操作失败"));var t},children:"移出"})]},n.user_id)):(0,vt.jsxs)("div",{className:"people-empty",children:[(0,vt.jsx)(Vo,{children:"person_off"}),(0,vt.jsx)("strong",{children:a?"黑名单加载失败":"黑名单为空"})]})})]})}function da({type:e,uid:t,tinode:s,onToast:i}){const[o,a]=n().useState(!1),r={delete:{title:"删除好友",text:"删除后将解除好友关系,对方将无法继续向你发送消息。聊天记录仍会保留。",action:"确认删除",route:"address-book",toast:"好友已删除",keepUid:!1},block:{title:"黑名单",text:'拉黑后将不会收到对方的消息,可在"设置"—"黑名单"查看人员名单',action:"确定",route:"friend-settings-blocked",toast:"已加入黑名单",keepUid:!0},clear:{title:"清除聊天记录",text:"清空后不可找回,确定要清空当前会话的历史记录吗?",action:"确定",route:"friend-settings",toast:"聊天记录已清除",keepUid:!0}}[e];return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(la,{uid:t,initialBlocked:"block"===e,pinBlocked:!0,onToast:i}),(0,vt.jsx)("div",{className:"people-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"people-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("h2",{children:r.title}),(0,vt.jsx)("p",{children:r.text}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:o,onClick:()=>{let n;if(a(!0),"delete"===e)n=(0,zt.A0)(t);else if("block"===e)n=(0,zt.rn)(t);else{const e=s?s.getTopic(t):null;n=e?e.delMessagesAll(!1):Promise.resolve()}n.then(()=>{i(r.toast),Fo(r.route,r.keepUid?t:void 0)}).catch(e=>i(e.message||"操作失败")).finally(()=>a(!1))},children:r.action}),(0,vt.jsx)("button",{type:"button",onClick:()=>Fo("friend-settings",t),children:"取消"})]})})]})}function ha({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o,onCreateTopic:a,onOpenScanner:r}){const[l,c]=n().useState(""),d=t&&t.uid;let h;return h="address-book"===e?(0,vt.jsx)(Jo,{myUserId:s,onTopicSelected:o}):"friend-requests"===e?(0,vt.jsx)(Zo,{onToast:c,onTopicSelected:o,onCreateTopic:a}):"add-friend"===e||"friend-search-result"===e?(0,vt.jsx)(ta,{result:"friend-search-result"===e,onToast:c,onOpenScanner:r}):"my-friend-qr"===e?(0,vt.jsx)(sa,{onToast:c}):"friend-qr"===e?(0,vt.jsx)(ia,{uid:d,onToast:c}):"friend-verification"===e?(0,vt.jsx)(oa,{uid:d,onToast:c}):"friend-profile"===e||"group-member-profile"===e?(0,vt.jsx)(aa,{uid:d,friend:"friend-profile"===e,onTopicSelected:o,onCreateTopic:a,onToast:c}):"friend-settings"===e||"friend-settings-blocked"===e?(0,vt.jsx)(la,{uid:d,initialBlocked:"friend-settings-blocked"===e,onToast:c}):"block-list"===e?(0,vt.jsx)(ca,{onToast:c}):"friend-delete-confirm"===e?(0,vt.jsx)(da,{type:"delete",uid:d,tinode:i,onToast:c}):"block-confirm"===e?(0,vt.jsx)(da,{type:"block",uid:d,tinode:i,onToast:c}):(0,vt.jsx)(da,{type:"clear",uid:d,tinode:i,onToast:c}),(0,vt.jsxs)(vt.Fragment,{children:[h,(0,vt.jsx)(Ko,{message:l,onDone:()=>c("")})]})}const ua=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"topic",n):is.A.removeUrlParam(t,"topic"),is.A.navigateTo(t)},ga=(e,n,t)=>{t&&n&&(0,It.Ug)("profile-seed:"+n,{user_id:n,display_name:t.group_nickname||t.display_name||n,avatar_file_id:t.avatar_file_id,...t.signature?{signature:t.signature}:{},...t.region?{region:t.region}:{},...t.gender?{gender:t.gender}:{}}),is.A.navigateTo(is.A.addUrlParam(is.A.setUrlSidePanel(is.A.currentUrl(),"group-member-profile"),"uid",n)),e&&n&&(0,zt.rX)(e,n).then(e=>{const t=(0,It.ze)("profile-seed:"+n)||{};(0,It.Ug)("profile-seed:"+n,{...t,...e}),window.dispatchEvent(new CustomEvent("profile-seed-updated",{detail:{uid:n}}))}).catch(()=>{})},pa=["group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload","group-invite-friends"];function ma(e){const n=(e||"").trim()[0]||"#";if(/[A-Za-z]/.test(n))return n.toUpperCase();if(/[一-龥]/.test(n)){const e=Oo(n,{pattern:"first",toneType:"none"});return/[a-z]/i.test(e)?e.toUpperCase():"#"}return"#"}function fa(e,n){const t={};return e.forEach(e=>{const s=n(e);(t[s]||(t[s]=[])).push(e)}),Object.keys(t).sort().map(e=>[e,t[e]])}function xa(e,n){if(n.name&&n.name!==n.topic)return n.name;const t=e&&e.getTopic?e.getTopic(n.topic):null,s=t&&t.public;return s&&(s.name||s.display_name||s.fn)||n.name||n.topic}function ja(e,n){if(n.member_count)return n.member_count;const t=e&&e.getTopic?e.getTopic(n.topic):null;return t&&t.subcnt||0}function ba(e){if(!e)return"";const n=new Date(e);return`${n.getMonth()+1}-${String(n.getDate()).padStart(2,"0")}`}const ya=[{id:"annie",name:"安妮",role:"管理员",avatar:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",role:"成员",avatar:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",role:"成员",avatar:"img/bkg/p14.jpg"},{id:"sun",name:"孙光洪",role:"成员",avatar:"img/bkg/p03.jpg"},{id:"lin",name:"林间风",role:"成员",avatar:"img/bkg/p18.jpg"}],wa={owned:[{id:"product",name:"产品研发群",count:18,avatar:"img/bkg/p22.jpg"}]};function va({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function ka({title:e,back:n="group-list",backTopic:t,onBack:s,right:i,onRight:o}){return(0,vt.jsxs)("header",{className:"group-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||(s?s():ua(n,t))},"aria-label":"返回",children:(0,vt.jsx)(va,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),i?(0,vt.jsx)("button",{type:"button",className:"text",onClick:o,children:i}):(0,vt.jsx)("span",{})]})}function Ca({item:e,icon:t}){const s=e&&e.avatar_file_id,[i,o]=n().useState(null);return n().useEffect(()=>{if(!s)return void o(null);let e=!0;return(0,zt.w8)(s).then(n=>{e&&o(n)}).catch(()=>{}),()=>{e=!1}},[s]),(0,vt.jsx)("span",{className:"group-avatar",children:i?(0,vt.jsx)("img",{src:i,alt:""}):(0,vt.jsx)(va,{children:t||"group"})})}function za({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function _a({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,1400);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsxs)("div",{className:"group-toast-center",role:"status",children:[(0,vt.jsx)(va,{children:"check_circle"}),(0,vt.jsx)("span",{children:e})]}):null}function Sa({value:e,onChange:n,placeholder:t="搜索"}){return(0,vt.jsxs)("label",{className:"group-search",children:[(0,vt.jsx)(va,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),placeholder:t})]})}function Na({checked:e,onChange:n,disabled:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:t,className:"group-switch"+(e?" checked":""),onClick:()=>!t&&n(!e),children:(0,vt.jsx)("i",{})})}function Ta({tinode:e,onToast:t}){const[s,i]=n().useState(()=>(0,It.ze)("groups")||{owned:null,managed:null,joined:null}),[o,a]=n().useState({owned:!1,managed:!1,joined:!1}),[r,l]=n().useState("owned"),[c,d]=n().useState(""),h=(0,It.o_)(c,300),[u,g]=n().useState(!1),[p,m]=n().useState(""),[f,x]=n().useState(!1),j=n().useCallback(()=>{["owned","managed","joined"].forEach(e=>{(0,zt.f)({category:e,query:h}).then(n=>{const t=n.items||[];i(n=>{const s={...n,[e]:t};return h||(0,It.Ug)("groups",s),s})}).catch(()=>{t("加载失败"),a(n=>({...n,[e]:!0}))})})},[h]);n().useEffect(()=>{j()},[j]);const b=s[r];return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊",back:"address-book",right:"创建",onRight:()=>g(!0)}),(0,vt.jsx)(Sa,{value:c,onChange:d,placeholder:"搜索群聊"}),(0,vt.jsx)("nav",{className:"group-tabs",children:[["owned","我创建的"],["managed","我管理的"],["joined","我加入的"]].map(([e,n])=>(0,vt.jsxs)("button",{type:"button",className:r===e?"active":"",onClick:()=>l(e),children:[n,"(",(s[e]||[]).length,")"]},e))}),(0,vt.jsx)("main",{className:"group-list",children:null===b?(0,vt.jsx)("p",{className:"group-inline-empty",children:o[r]?"群列表加载失败":"加载中…"}):b.length?b.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-settings",n.topic),children:[(0,vt.jsx)(Ca,{item:n}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:xa(e,n)}),(0,vt.jsxs)("small",{children:[ja(e,n)," 位成员"]})]}),(0,vt.jsx)(va,{children:"chevron_right"})]},n.topic)):(0,vt.jsxs)("div",{className:"group-empty",children:[(0,vt.jsx)(va,{children:"groups"}),(0,vt.jsx)("strong",{children:"这里还没有群聊"}),(0,vt.jsx)("p",{children:"owned"===r?"创建一个群聊,邀请成员一起沟通":"加入或被设置为管理员后会显示在这里"}),(0,vt.jsx)("button",{type:"button",onClick:()=>g(!0),children:"创建群聊"})]})}),u?(0,vt.jsx)("div",{className:"group-modal-backdrop",children:(0,vt.jsxs)("section",{className:"group-modal",children:[(0,vt.jsx)("h2",{children:"创建群聊"}),(0,vt.jsxs)("label",{children:["群名称",(0,vt.jsx)("input",{autoFocus:!0,value:p,maxLength:"11",onChange:e=>m(e.target.value),placeholder:"输入群名称"})]}),(0,vt.jsx)("p",{children:"创建后可继续邀请成员和设置群资料。"}),(0,vt.jsxs)("footer",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>g(!1),children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:!p.trim()||f,onClick:()=>{p.trim()&&!f&&(x(!0),(0,zt.wj)({name:p.trim()}).then(()=>{g(!1),m(""),t("群聊创建成功"),j()}).catch(e=>t(e.message||"创建失败")).finally(()=>x(!1)))},children:"创建"})]})]})}):null]})}function Ba(){return(0,vt.jsxs)("header",{className:"group-chat-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-list"),children:(0,vt.jsx)(va,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:"产品研发群"}),(0,vt.jsx)("small",{children:"18人"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-settings"),children:(0,vt.jsx)(va,{children:"more_vert"})})]})}function Pa({children:e}){return(0,vt.jsx)("p",{className:"group-system-event",children:e})}function qa({mode:e,onToast:t}){const[s,i]=n().useState(!1);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(Ba,{}),["group-new-request","group-summary"].includes(e)?(0,vt.jsxs)("button",{type:"button",className:"group-top-notice",onClick:()=>ua("group-join-requests"),children:[(0,vt.jsx)(va,{children:"person_add_alt"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"新的进群申请"}),(0,vt.jsx)("small",{children:"2 条申请等待处理"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}):null,["group-announcement","group-summary"].includes(e)?(0,vt.jsxs)("button",{type:"button",className:"group-top-notice announcement",onClick:()=>ua("group-announcement-detail"),children:[(0,vt.jsx)(va,{children:"campaign"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"群公告"}),(0,vt.jsx)("small",{children:"下午三点进行版本评审,请准时参加"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}):null,(0,vt.jsxs)("main",{className:"group-chat-timeline",children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),"group-invite"===e?(0,vt.jsxs)("article",{className:"group-invite-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)(Ca,{item:wa.owned[0]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"产品研发群"}),(0,vt.jsx)("small",{children:"安妮邀请你加入群聊"})]})]}),(0,vt.jsx)("p",{children:"一起参与新版产品的设计与研发讨论"}),(0,vt.jsx)("button",{type:"button",disabled:s,onClick:()=>{i(!0),t("已加入产品研发群")},children:s?"已加入":"立即加入"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Pa,{children:"安妮邀请栗子来了加入群聊"}),(0,vt.jsx)(Pa,{children:"管理员通过了王珊珊的进群申请"}),(0,vt.jsxs)("div",{className:"group-chat-message",children:[(0,vt.jsx)(Ca,{item:ya[0]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:["安妮 ",(0,vt.jsx)("em",{children:"管理员"})]}),(0,vt.jsx)("p",{children:"下午评审前请大家把问题同步到文档里。"})]})]}),(0,vt.jsxs)("div",{className:"group-chat-message owner",children:[(0,vt.jsx)(Ca,{item:{...ya[3],avatar:"img/bkg/p05.jpg"}}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:["陈晨 ",(0,vt.jsx)("em",{children:"群主"})]}),(0,vt.jsx)("p",{children:"收到,我会在两点前整理一版。"})]})]})]})]}),(0,vt.jsxs)("div",{className:"group-chat-composer",children:[(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"record_voice_over"})}),(0,vt.jsx)("input",{placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"sentiment_satisfied_alt"})}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"add_circle_outline"})})]})]})}function Ma({topic:e,fromChat:t,onToast:s}){const i=n().useCallback(()=>{is.A.navigateTo(is.A.setUrlTopic(is.A.setUrlSidePanel("",""),e))},[e]),[o,a]=n().useState(()=>e&&(0,It.ze)("group-join-requests:"+e)||null),[r,l]=n().useState({}),[c,d]=n().useState(!1),h=n().useRef(new Set),u=n().useCallback(()=>{e&&(0,zt.s7)(e,"all").then(n=>{const t=n.items||[];(0,It.Ug)("group-join-requests:"+e,t),a(t);const s=new Set;t.forEach(e=>{s.add(e.user_id),e.inviter_id&&s.add(e.inviter_id)}),s.forEach(e=>{h.current.has(e)||(h.current.add(e),(0,zt.VM)(e).then(n=>l(t=>({...t,[e]:n}))).catch(()=>{h.current.delete(e)}))})}).catch(()=>{s("加载失败"),d(!0)})},[e]);n().useEffect(()=>{a(e&&(0,It.ze)("group-join-requests:"+e)||null),u()},[e,u]);const g=(n,t)=>{(t?(0,zt.Fo)(e,n.request_id,n.version):(0,zt.iH)(e,n.request_id,n.version)).then(()=>{s(t?"已同意进群申请":"已拒绝进群申请"),u()}).catch(e=>s(e.message||"操作失败"))},p=e=>r[e]&&r[e].display_name||e,m={accepted:"已确定",approved:"已确定",rejected:"已拒绝",expired:"已过期"};return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"邀请进群申请",back:t?void 0:"group-governance",backTopic:e,onBack:t?i:void 0}),(0,vt.jsx)("main",{className:"group-request-list",children:null===o?(0,vt.jsx)("p",{className:"group-inline-empty",children:c?"申请列表加载失败":"加载中…"}):o.length?o.map(e=>{return(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:r[e.user_id]||{}}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:(n=e,"qr"===n.source?`${p(n.user_id)}通过二维码分享进群`:n.inviter_id?`${p(n.inviter_id)}邀请${p(n.user_id)}进群`:`${p(n.user_id)}申请加入群聊`)}),(0,vt.jsx)("small",{children:ba(e.created_at)})]}),"pending"===e.status?(0,vt.jsxs)("span",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>g(e,!1),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:()=>g(e,!0),children:"确定"})]}):(0,vt.jsx)("em",{children:m[e.status]||e.status})]},e.request_id);var n}):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无进群申请"})})]})}function Aa({topic:e,myRole:t,fromChat:s,onToast:i}){const o=e&&(0,It.ze)("group-announcement:"+e),[a,r]=n().useState(()=>o||null),[l,c]=n().useState(()=>o&&o.content||""),[d,h]=n().useState(!1),[u,g]=n().useState(!1),[p,m]=n().useState(!1),f="owner"===t||"admin"===t,x=n().useCallback(()=>{is.A.navigateTo(is.A.setUrlTopic(is.A.setUrlSidePanel("",""),e))},[e]);n().useEffect(()=>{if(!e)return;const n=(0,It.ze)("group-announcement:"+e);n&&(r(n),c(n.content||"")),(0,zt.Yx)(e).then(n=>{(0,It.Ug)("group-announcement:"+e,n),r(n),c(n.content||"")}).catch(()=>{i("加载失败"),m(!0)})},[e]);const j=n().useRef(null);return n().useEffect(()=>{const n=a&&a.announcement_id;n&&e&&j.current!==n&&(j.current=n,(0,zt.nI)(e,n).catch(()=>{}))},[e,a]),a?(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群公告",back:s?void 0:"group-settings",backTopic:e,onBack:s?x:void 0,right:f?"发布":null,onRight:f?()=>{l.trim()&&!u&&(g(!0),(0,zt.Qq)(e,l.trim(),a?a.version:0).then(n=>{(0,It.Ug)("group-announcement:"+e,n),r(n),h(!1),i("群公告已发布")}).catch(e=>i(e.message||"发布失败")).finally(()=>g(!1)))}:void 0}),(0,vt.jsxs)("main",{className:"group-announcement-detail",children:[f?(0,vt.jsx)("textarea",{autoFocus:d,value:l,maxLength:2e3,onChange:e=>c(e.target.value),onFocus:()=>h(!0),placeholder:"请输入群公告内容"}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(va,{children:"campaign"}),(0,vt.jsx)("p",{children:a.content||"暂无群公告"})]}),f?null:(0,vt.jsx)("small",{className:"group-inline-hint",children:"仅群主及群管理员可编辑"})]})]}):(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群公告",back:s?void 0:"group-settings",backTopic:e,onBack:s?x:void 0}),(0,vt.jsx)("main",{className:"group-announcement-detail",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:p?"群公告加载失败":"加载中…"})})]})}function Ea({topic:e,myUserId:t,tinode:s,onToast:i}){const[o,a]=n().useState(()=>e&&(0,It.ze)("group-settings:"+e)||null),[r,l]=n().useState(!1),[c,d]=n().useState(()=>{const n=e&&(0,It.ze)("group-members:"+e);return n?n.slice(0,9):[]}),[h,u]=n().useState(()=>{const n=e&&(0,It.ze)("group-announcement:"+e);return n&&n.content?n:null});n().useEffect(()=>{if(!e)return;a((0,It.ze)("group-settings:"+e)||null),d(((0,It.ze)("group-members:"+e)||[]).slice(0,9));const n=(0,It.ze)("group-announcement:"+e);u(n&&n.content?n:null),(0,zt.no)(e).then(n=>{(0,It.Ug)("group-settings:"+e,n),a(n)}).catch(()=>{i("加载失败"),l(!0)}),(0,zt.Nk)(e).then(n=>{const t=n.items||[];(0,It.Ug)("group-members:"+e,t),d(t.slice(0,9))}).catch(()=>{}),(0,zt.Yx)(e).then(n=>{(0,It.Ug)("group-announcement:"+e,n),u(n&&n.content?n:null)}).catch(()=>{})},[e]);const g=n=>{(0,zt.U3)(e,{pinned:o.pinned,mute_notifications:o.mute_notifications,...n}).then(()=>a(t=>{const s={...t,...n};return(0,It.Ug)("group-settings:"+e,s),s})).catch(e=>i(e.message||"设置失败"))};if(!o)return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊设置",back:"group-list"}),(0,vt.jsx)("main",{className:"group-settings",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:r?"群组信息加载失败":"加载中…"})})]});const p=o.permissions&&o.permissions.can_manage_settings,m=[["group-profile","群资料",o.name],["group-announcement-detail","群公告",h?h.content:"暂无群公告"],["group-files","群文件",""],["group-my-nickname","我在本群的昵称",""]];return p&&m.splice(3,0,["group-governance","群组管理",""]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊设置",back:"group-list",right:p?"管理":null,onRight:p?()=>ua("group-governance",e):void 0}),(0,vt.jsxs)("main",{className:"group-settings",children:[(0,vt.jsxs)("button",{type:"button",className:"group-settings-header",onClick:()=>ua("group-profile",e),children:[(0,vt.jsx)(Ca,{item:o}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o.name}),(0,vt.jsx)("small",{children:o.description||"群主很懒,还没有群简介"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("section",{className:"group-member-section",children:[(0,vt.jsxs)("button",{type:"button",className:"group-member-section-title",onClick:()=>ua("group-members",e),children:[(0,vt.jsx)("strong",{children:"群成员"}),(0,vt.jsxs)("small",{children:["共 ",o.member_count," 位成员"]}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{className:"group-member-grid",children:[c.slice(0,9).map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ga(e,n.user_id,n),children:[(0,vt.jsx)(Ca,{item:n,icon:"person"}),(0,vt.jsx)("small",{children:n.group_nickname||n.display_name})]},n.user_id)),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-invite-friends",e),children:[(0,vt.jsx)("span",{className:"group-member-tile-action",children:(0,vt.jsx)(va,{children:"add"})}),(0,vt.jsx)("small",{children:"添加"})]})]})]}),(0,vt.jsx)("section",{children:m.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ua(n[0],e),children:[(0,vt.jsx)("span",{children:n[1]}),(0,vt.jsx)("small",{children:n[2]}),(0,vt.jsx)(va,{children:"chevron_right"})]},n[0]))}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"置顶聊天"}),(0,vt.jsx)(Na,{checked:!!o.pinned,onChange:e=>g({pinned:e})})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息免打扰"}),(0,vt.jsx)(Na,{checked:!!o.mute_notifications,onChange:e=>g({mute_notifications:e})})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("history-search",e),children:[(0,vt.jsx)("span",{children:"查看聊天记录"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const n=s?s.getTopic(e):null;(n?n.delMessagesAll(!1):Promise.resolve()).then(()=>i("聊天记录已清除")).catch(e=>i(e.message||"操作失败"))},children:[(0,vt.jsx)("span",{children:"清空聊天记录"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{let n=is.A.setUrlSidePanel("","abuse-report-reasons");n=is.A.addUrlParam(n,"target_type","group"),n=is.A.addUrlParam(n,"target_id",e),n=is.A.addUrlParam(n,"target_name",o&&o.name||e),is.A.navigateTo(n)},children:[(0,vt.jsx)("span",{children:"投诉/举报"}),(0,vt.jsx)(va,{children:"chevron_right"})]})]}),(0,vt.jsx)("button",{type:"button",className:"group-danger",onClick:()=>{o&&"owner"===o.my_role?i("群主需先转让群主或解散群聊"):(0,zt.j)(e).then(()=>{i("已退出群聊"),ua("group-list")}).catch(e=>i(e.message||"操作失败"))},children:"退出群组"})]})]})}function Ia({topic:e,myUserId:t,onToast:s}){const[i,o]=n().useState(()=>e&&(0,It.ze)("group:"+e)||null),[a,r]=n().useState(!1),[l,c]=n().useState("");if(n().useEffect(()=>{e&&(o((0,It.ze)("group:"+e)||null),(0,zt.Wx)(e).then(n=>{(0,It.Ug)("group:"+e,n),o(n)}).catch(()=>{s("加载失败"),r(!0)}))},[e]),n().useEffect(()=>{e&&(0,zt.ly)(e).then(e=>{c(e.nickname||"")}).catch(()=>{})},[e]),!i)return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群资料",back:"group-settings",backTopic:e}),(0,vt.jsx)("main",{className:"group-profile",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:a?"群组信息加载失败":"加载中…"})})]});const d=i.permissions&&i.permissions.can_edit_profile,h=l||"未设置";return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群资料",back:"group-settings",backTopic:e}),(0,vt.jsxs)("main",{className:"group-profile",children:[(0,vt.jsxs)("button",{type:"button",className:"group-profile-avatar",disabled:!d,onClick:()=>d&&ua("group-avatar",e),children:[(0,vt.jsx)(Ca,{item:i}),(0,vt.jsx)("span",{children:"群头像"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-my-nickname",e),children:[(0,vt.jsx)("span",{children:"群昵称"}),(0,vt.jsx)("small",{children:h}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!d,onClick:()=>d&&ua("group-nickname",e),children:[(0,vt.jsx)("span",{children:"群名称"}),(0,vt.jsx)("small",{children:i.name}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!d,onClick:()=>d&&ua("group-description",e),children:[(0,vt.jsx)("span",{children:"群简介"}),(0,vt.jsx)("small",{children:i.description||"群主很懒,还没有群简介"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",className:"group-profile-qr",onClick:()=>ua("group-qr",e),children:[(0,vt.jsx)("span",{children:"群二维码"}),(0,vt.jsx)(va,{children:"qr_code"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-members",e),children:[(0,vt.jsx)("span",{children:"群成员"}),(0,vt.jsxs)("small",{children:["共",i.member_count,"位成员"]}),(0,vt.jsx)(va,{children:"chevron_right"})]})]})]})}function Da({topic:e,myUserId:t,tinode:s,onToast:i}){const o=n().useRef(null),[a,r]=n().useState(!1);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(Ia,{topic:e,onToast:i}),(0,vt.jsx)("input",{ref:o,type:"file",accept:"image/*",style:{display:"none"},onChange:n=>{const t=n.target.files&&n.target.files[0];n.target.value="",t&&s&&(r(!0),(0,zt.rD)(s,t).then(({fileId:n})=>(0,zt.Wx)(e).then(t=>(0,zt.vW)(e,{avatar_file_id:n,version:t.version}))).then(()=>{i("群头像已更新"),ua("group-profile",e)}).catch(e=>i(e.message||"上传失败")).finally(()=>r(!1)))}}),(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-source-sheet",children:[(0,vt.jsx)("h2",{children:"设置群头像"}),(0,vt.jsxs)("button",{type:"button",disabled:a,onClick:()=>o.current&&o.current.click(),children:[(0,vt.jsx)(va,{children:"photo_library"}),a?"正在上传…":"从相册选择"]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-profile",e),children:"取消"})]})})]})}function Ua({topic:e,onToast:t}){const s=n().useRef(null),[i,o]=n().useState(null);n().useEffect(()=>{e&&(0,zt.oo)(e).then(o).catch(()=>t("二维码生成失败"))},[e]),n().useEffect(()=>{s.current&&i&&(s.current.innerHTML="",new(Ai())(s.current,{text:i.qr_payload,width:190,height:190,correctLevel:Ai().CorrectLevel.M}))},[i]);const a=i&&i.group_snapshot;return(0,vt.jsxs)("div",{className:"group-page group-qr-page",children:[(0,vt.jsx)(ka,{title:"群二维码",back:"group-profile",backTopic:e}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"group-qr-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)(Ca,{item:a||{}}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:a?a.name:""}),(0,vt.jsxs)("small",{children:[a?a.member_count:0," 位成员"]})]})]}),(0,vt.jsx)("div",{className:"group-qrcode",ref:s}),(0,vt.jsx)("p",{children:"使用APP扫码二维码,加入群聊"})]}),(0,vt.jsxs)("div",{className:"group-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&i?navigator.share({title:a&&a.name,text:"扫码加入群聊",url:i.qr_payload}).catch(()=>{}):i&&navigator.clipboard.writeText(i.qr_payload).then(()=>t("链接已复制")).catch(()=>t("分享失败"))},children:[(0,vt.jsx)(va,{children:"share"}),"分享好友"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=s.current&&s.current.querySelector("canvas");if(!e)return void t("保存失败");const n=document.createElement("a");n.href=e.toDataURL("image/png"),n.download=(a?a.name:"group")+"-qrcode.png",n.click(),t("群二维码已保存")},children:[(0,vt.jsx)(va,{children:"download"}),"保存至相册"]})]})]})]})}const Ra=[["join_approval","进群验证","开启后,他人申请加入群聊需群主或管理员同意"],["mute_all","全体禁言","开启后,仅群主和管理员可以发言"],["member_upload_files","群成员文件上传","关闭后,普通成员将无法上传群文件"],["member_invite","群成员邀请","关闭后,仅群主和管理员可以邀请新成员进群"],["member_private_chat","群成员私信权限","关闭后,不允许发送名片消息,且普通成员在群聊界面、群组信息内点击头像无反应。"]];function La({topic:e,myRole:t,tinode:s,onToast:i}){const[o,a]=n().useState(()=>e&&(0,It.ze)("group-governance:"+e)||null),[r,l]=n().useState(!1),[c,d]=n().useState(!1),[h,u]=n().useState(!1);return n().useEffect(()=>{e&&(a((0,It.ze)("group-governance:"+e)||null),(0,zt.uj)(e).then(n=>{(0,It.Ug)("group-governance:"+e,n),a(n)}).catch(()=>{i("加载失败"),u(!0)}))},[e]),o?(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群组管理",back:"group-settings",backTopic:e}),(0,vt.jsxs)("main",{className:"group-governance",children:[(0,vt.jsx)("section",{children:(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-avatar",e),children:[(0,vt.jsx)("span",{children:"设置群头像"}),(0,vt.jsx)(va,{children:"chevron_right"})]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-join-requests",e),children:[(0,vt.jsx)("span",{children:"邀请进群申请"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-muted",e),children:[(0,vt.jsx)("span",{children:"禁言的群成员"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-admins",e),children:[(0,vt.jsx)("span",{children:"设置管理员"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-owner-select",e),children:[(0,vt.jsx)("span",{children:"群主管理权转让"}),(0,vt.jsx)(va,{children:"chevron_right"})]})]}),(0,vt.jsx)("section",{children:Ra.map(([n,t,s])=>(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t}),(0,vt.jsx)("small",{children:s})]}),(0,vt.jsx)(Na,{checked:!!o[n],disabled:!1===o[n+"_editable"],onChange:t=>((n,t)=>{(0,zt.Hw)(e,{[n]:t,version:o?o.version:0}).then(n=>{(0,It.Ug)("group-governance:"+e,n),a(n)}).catch(e=>i(e.message||"设置失败"))})(n,t)})]},n))}),(0,vt.jsx)("button",{type:"button",className:"group-danger",disabled:r||"owner"!==t,onClick:()=>{"owner"===t&&d(!0)},children:"解散群组"})]}),c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"解散群组"}),(0,vt.jsx)("p",{children:"解散后群聊将无法恢复,确定要解散该群聊吗?"}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:r,onClick:()=>{const n=s?s.getTopic(e):null;n?(l(!0),n.delTopic(!0).then(()=>{i("群聊已解散"),ua("group-list")}).catch(e=>{i(e.message||"解散失败"),d(!1)}).finally(()=>l(!1))):d(!1)},children:r?"处理中…":"确定"}),(0,vt.jsx)("button",{type:"button",disabled:r,onClick:()=>d(!1),children:"取消"})]})}):null]}):(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群组管理",back:"group-settings",backTopic:e}),(0,vt.jsx)("main",{className:"group-governance",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:h?"群组管理加载失败":"加载中…"})})]})}function Oa(e){return{owner:e.find(e=>"owner"===e.role)||null,admins:e.filter(e=>"admin"===e.role)}}function Fa({topic:e,onToast:t}){const s=e&&(0,It.ze)("group-members:"+e),i=s?Oa(s):{owner:null,admins:null},[o,a]=n().useState(()=>i.owner),[r,l]=n().useState(()=>i.admins),[c,d]=n().useState(""),[h,u]=n().useState(!1),g=n().useCallback(()=>{if(!e)return;const n=(0,It.ze)("group-members:"+e);if(n){const e=Oa(n);a(e.owner),l(e.admins)}(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(n=>{(0,It.Ug)("group-members:"+e,n);const t=Oa(n);a(t.owner),l(t.admins)}).catch(()=>{t("加载失败"),u(!0)})},[e]);return n().useEffect(()=>{g()},[g]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"设置群管理员",back:"group-governance",backTopic:e,right:"添加",onRight:()=>ua("group-admin-add",e)}),(0,vt.jsxs)("main",{className:"group-admin-page",children:[(0,vt.jsxs)("aside",{children:[(0,vt.jsx)(va,{children:"info_outline"}),(0,vt.jsx)("p",{children:"管理员可协助审批进群申请、管理公告和群成员。最多设置 10 名管理员。"})]}),o?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("h2",{children:"群主"}),(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:o}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o.group_nickname||o.display_name}),(0,vt.jsx)("small",{children:"群主"})]})]})]}):null,(0,vt.jsxs)("h2",{children:["管理员 ",r?r.length:0,"/10"]}),null===r?(0,vt.jsx)("p",{className:"group-inline-empty",children:h?"成员列表加载失败":"加载中…"}):r.length?r.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:n}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.group_nickname||n.display_name}),(0,vt.jsx)("small",{children:"管理员"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return s=n.user_id,void(0,zt.cB)(e,s).then(()=>{d("管理员已移除"),l(e=>e?e.filter(e=>e.user_id!==s):e);const n=(0,It.ze)("group-members:"+e);n&&(0,It.Ug)("group-members:"+e,n.map(e=>e.user_id===s?{...e,role:"member"}:e))}).catch(e=>t(e.message||"操作失败"));var s},children:"移除"})]},n.user_id)):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无管理员"})]}),(0,vt.jsx)(_a,{message:c,onDone:()=>d("")})]})}function $a({topic:e,onToast:t}){const[s,i]=n().useState(()=>e&&(0,It.ze)("group-members:"+e)||null),[o,a]=n().useState(""),[r,l]=n().useState(!1);n().useEffect(()=>{e&&(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(n=>{(0,It.Ug)("group-members:"+e,n),i(n)}).catch(()=>{t("加载失败"),l(!0)})},[e]);const c=fa((s||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(o.toLowerCase())),e=>ma(e.group_nickname||e.display_name)),d=e=>"owner"===e?"群主":"admin"===e?"管理员":"";return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群成员",back:"group-settings",backTopic:e}),(0,vt.jsx)(Sa,{value:o,onChange:a,placeholder:"搜索群成员"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:r?"成员列表加载失败":"加载中…"}):c.map(([t,s])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:t}),s.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ga(e,n.user_id,n),children:[(0,vt.jsx)(Ca,{item:n,icon:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.group_nickname||n.display_name}),d(n.role)?(0,vt.jsx)("small",{children:d(n.role)}):null]})]},n.user_id))]},t))})]})}function Va({type:e,topic:t,onToast:s}){const i="mute-add"===e,o=i?"group-muted":"group-admins",[a,r]=n().useState(null),[l,c]=n().useState([]),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(!1);n().useEffect(()=>{t&&(0,zt.Ey)(e=>(0,zt.Nk)(t,{cursor:e,...i?{muteEligible:!0}:{eligibleRole:"admin"}})).then(e=>r(e.filter(e=>!1!==e.eligible))).catch(()=>{s("加载失败"),x(!0)})},[t,i]);const j=fa((a||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(d.toLowerCase())),e=>ma(e.group_nickname||e.display_name));return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:i?"添加禁言成员":"添加管理员",back:o,backTopic:t,right:"完成"+(l.length?`(${l.length})`:""),onRight:l.length?()=>{l.length&&!p&&(m(!0),(i?(0,zt.kY)(t,l.map(e=>({user_id:e}))):(0,zt.ZV)(t,l)).then(e=>{let n;if(i){const t=e&&Array.isArray(e.items)?e.items.length:l.length;n=Math.max(l.length-t,0)}else n=e&&Array.isArray(e.succeeded)?e.succeeded.filter(e=>!e.ok).length:0;g(n?`成功设置 ${l.length-n} 人,${n} 人设置失败`:"设置成功"),window.setTimeout(()=>ua(o,t),1500)}).catch(e=>s(e.message||"设置失败")).finally(()=>m(!1)))}:void 0}),(0,vt.jsx)(Sa,{value:d,onChange:h,placeholder:"搜索群成员"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===a?(0,vt.jsx)("p",{className:"group-inline-empty",children:f?"成员列表加载失败":"加载中…"}):j.map(([e,t])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:e}),t.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.user_id,c(e=>e.includes(n)?e.filter(e=>e!=n):e.concat(n));var n},children:[(0,vt.jsx)(Ca,{item:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.group_nickname||e.display_name})}),(0,vt.jsx)("i",{className:"group-check"+(l.includes(e.user_id)?" checked":""),children:l.includes(e.user_id)?(0,vt.jsx)(va,{children:"check"}):null})]},e.user_id))]},e))}),(0,vt.jsx)(_a,{message:u,onDone:()=>g("")})]})}function Ha({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(null),[r,l]=n().useState([]),[c,d]=n().useState(""),[h,u]=n().useState(""),[g,p]=n().useState(!1),[m,f]=n().useState(!1);n().useEffect(()=>{e&&((0,zt.Ey)(e=>(0,zt.M7)("",e)).then(i).catch(()=>{t("加载失败"),f(!0)}),(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(e=>a(new Set(e.map(e=>e.user_id)))).catch(()=>a(new Set)))},[e]);const x=fa((s||[]).filter(e=>!o||!o.has(e.user_id)).filter(e=>(e.remark||e.display_name||"").toLowerCase().includes(c.toLowerCase())),e=>ma(e.remark||e.display_name));return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"邀请好友",back:"group-settings",backTopic:e,right:"完成"+(r.length?`(${r.length})`:""),onRight:r.length?()=>{r.length&&!g&&(p(!0),(0,zt.IW)(e,r).then(n=>{const t=n&&n.items||[],s=t.filter(e=>"already_member"===e.status).length,i=t.filter(e=>"pending"===e.status).length,o=Math.max(r.length-i-s,0),a=[];i&&a.push(`已发送 ${i} 条邀请`),s&&a.push(`${s} 人已在群内`),o&&a.push(`${o} 人邀请失败`),u(a.join(",")||"邀请已发送"),window.setTimeout(()=>ua("group-settings",e),1500)}).catch(e=>t(e.message||"邀请失败")).finally(()=>p(!1)))}:void 0}),(0,vt.jsx)(Sa,{value:c,onChange:d,placeholder:"搜索好友"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===s||null===o?(0,vt.jsx)("p",{className:"group-inline-empty",children:m?"好友列表加载失败":"加载中…"}):0===x.length?(0,vt.jsx)("p",{className:"group-inline-empty",children:s.length?"好友都已在群里了":"暂无可邀请的好友"}):x.map(([e,t])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:e}),t.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.user_id,l(e=>e.includes(n)?e.filter(e=>e!=n):e.concat(n));var n},children:[(0,vt.jsx)(Ca,{item:e,icon:"person"}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.remark||e.display_name})}),(0,vt.jsx)("i",{className:"group-check"+(r.includes(e.user_id)?" checked":""),children:r.includes(e.user_id)?(0,vt.jsx)(va,{children:"check"}):null})]},e.user_id))]},e))}),(0,vt.jsx)(_a,{message:h,onDone:()=>u("")})]})}function Wa({topic:e,onToast:t}){const[s,i]=n().useState(()=>e&&(0,It.ze)("group-muted:"+e)||null),[o,a]=n().useState({}),[r,l]=n().useState({}),[c,d]=n().useState(!1),h=n().useCallback(()=>{e&&((0,zt.Ey)(n=>(0,zt.Ql)(e,n)).then(n=>{(0,It.Ug)("group-muted:"+e,n),i(n)}).catch(()=>{t("加载失败"),d(!0)}),(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(e=>{const n={},t={};e.forEach(e=>{n[e.user_id]=e.group_nickname||e.display_name||e.user_id,e.avatar_file_id&&(t[e.user_id]={avatar_file_id:e.avatar_file_id})}),a(n),l(t)}).catch(()=>{}))},[e]);return n().useEffect(()=>{i(e&&(0,It.ze)("group-muted:"+e)||null),h()},[e,h]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"禁言的群成员",back:"group-governance",backTopic:e,right:"添加",onRight:()=>ua("group-mute-add",e)}),(0,vt.jsxs)("main",{className:"group-muted-list",children:[null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:c?"成员列表加载失败":"加载中…"}):s.length?s.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:r[n.user_id]||{},icon:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o[n.user_id]||n.user_id}),(0,vt.jsx)("small",{children:n.expires_at?`禁言至 ${ba(n.expires_at)}`:"永久禁言"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return s=n.user_id,void(0,zt.cR)(e,s).then(()=>{t("已解除禁言"),h()}).catch(e=>t(e.message||"操作失败"));var s},children:"解除"})]},n.user_id)):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无禁言成员"}),s&&s.length?(0,vt.jsx)("p",{className:"group-inline-note",children:"以上成员不允许发言"}):null]})]})}function Ka({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(""),[r,l]=n().useState(null),[c,d]=n().useState(!1),[h,u]=n().useState(""),[g,p]=n().useState(!1),[m,f]=n().useState(!1);n().useEffect(()=>{e&&(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n,eligibleRole:"owner"})).then(e=>i(e.filter(e=>!1!==e.eligible))).catch(()=>{t("加载失败"),f(!0)})},[e]);const x=(s||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(o.toLowerCase())),j=x.filter(e=>"admin"===e.role),b=x.filter(e=>"admin"!==e.role),y=()=>{l(null),d(!1),u("")},w=e=>(0,vt.jsxs)("article",{role:"button",tabIndex:0,onClick:()=>l(e),children:[(0,vt.jsx)(Ca,{item:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.group_nickname||e.display_name})})]},e.user_id);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"选择新群主",back:"group-governance",backTopic:e}),(0,vt.jsx)(Sa,{value:o,onChange:a,placeholder:"搜索"}),(0,vt.jsx)("main",{className:"group-request-list",children:null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:m?"成员列表加载失败":"加载中…"}):(0,vt.jsxs)(vt.Fragment,{children:[j.length?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:"管理员"}),j.map(w)]}):null,b.length?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:"群成员"}),b.map(w)]}):null]})}),r&&!c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"选择新群主"}),(0,vt.jsxs)("p",{children:[r.group_nickname||r.display_name,"成为新群主,确定后你将立即失去群主身份"]}),(0,vt.jsx)("button",{type:"button",className:"danger",onClick:()=>d(!0),children:"确定"}),(0,vt.jsx)("button",{type:"button",onClick:y,children:"取消"})]})}):null,r&&c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"输入密码确认转让"}),(0,vt.jsxs)("p",{children:["请输入登录密码以确认将群主转让给",r.group_nickname||r.display_name,"(该操作立即生效,不可撤销)。"]}),(0,vt.jsx)("input",{type:"password",autoFocus:!0,className:"group-password-input",value:h,onChange:e=>u(e.target.value),placeholder:"登录密码"}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:g,onClick:()=>{h?!g&&r&&(p(!0),(0,zt.Wx)(e).then(n=>(0,zt.iK)(e,r.user_id,n.version)).then(()=>{t("群主已转让"),ua("group-governance",e)}).catch(e=>t(e.message||"转让失败")).finally(()=>p(!1))):t("请输入密码以确认")},children:g?"处理中…":"确定"}),(0,vt.jsx)("button",{type:"button",onClick:y,children:"取消"})]})}):null]})}const Xa={image:["image","#3ba55c"],video:["videocam","#3b82c4"],audio:["audiotrack","#8b5cf6"],document:["description","#e05d44"],file:["insert_drive_file","#8a8f98"]},Ga=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt"];function Ja(e,n){const t=(e||"").split("/")[0];if("image"===t||"video"===t||"audio"===t)return t;const s=(/\.([a-zA-Z0-9]+)$/.exec(n||"")||[])[1];return"application/pdf"===e||Ga.includes((s||"").toLowerCase())?"document":"file"}function Ya({topic:e,tinode:t,onToast:s}){const[i,o]=n().useState(""),a=(0,It.o_)(i,300),[r,l]=n().useState(()=>e&&(0,It.ze)("group-files:"+e)||null),[c,d]=n().useState(!1),[h,u]=n().useState(null),[g,p]=n().useState(!1),[m,f]=n().useState({}),x={file:n().useRef(null),image:n().useRef(null),video:n().useRef(null)},j=n().useCallback(()=>{e&&(0,zt.Vw)(e,{}).then(n=>{const t=n.items||[];(0,It.Ug)("group-files:"+e,t),l(t)}).catch(()=>{s("加载失败"),p(!0)})},[e]);n().useEffect(()=>{j()},[j]),n().useEffect(()=>{e&&(0,zt.Nk)(e).then(e=>{const n={};(e.items||[]).forEach(e=>{n[e.user_id]=e.group_nickname||e.display_name||e.user_id}),f(n)}).catch(()=>{})},[e]);const b=n().useMemo(()=>{const e=r||[],n=a.trim().toLowerCase();return n?e.filter(e=>(e.file_name||"").toLowerCase().includes(n)||(m[e.uploader_id]||"").toLowerCase().includes(n)):e},[r,a,m]),y=(r||[]).reduce((e,n)=>e+(n.file_size||0),0),w=e=>{d(!1),x[e].current&&x[e].current.click()},v=n=>{const i=n.target.files&&n.target.files[0];n.target.value="",i&&t&&(u({name:i.name,progress:0}),(0,zt.rD)(t,i,e=>u(n=>n?{...n,progress:Math.round(100*e)}:n)).then(({fileId:n})=>(0,zt.By)(e,{fileId:n,fileName:i.name,mimeType:i.type,fileSize:i.size,fileType:Ja(i.type,i.name)})).then(()=>{u(null),j()}).catch(e=>{u(null),s(e.message||"上传失败")}))};return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群文件",back:"group-settings",backTopic:e,right:(0,vt.jsx)(va,{children:"add"}),onRight:()=>d(e=>!e)}),(0,vt.jsx)("input",{ref:x.file,type:"file",style:{display:"none"},onChange:v}),(0,vt.jsx)("input",{ref:x.image,type:"file",accept:"image/*",style:{display:"none"},onChange:v}),(0,vt.jsx)("input",{ref:x.video,type:"file",accept:"video/*",style:{display:"none"},onChange:v}),c?(0,vt.jsxs)("div",{className:"group-upload-menu",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>w("file"),children:[(0,vt.jsx)(va,{children:"upload_file"}),"上传文件"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>w("image"),children:[(0,vt.jsx)(va,{children:"image"}),"上传照片"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>w("video"),children:[(0,vt.jsx)(va,{children:"play_circle_outline"}),"上传视频"]})]}):null,(0,vt.jsx)(Sa,{value:i,onChange:o,placeholder:"搜索文件名或者上传者"}),(0,vt.jsxs)("p",{className:"group-inline-hint",children:["共",(r||[]).length,"个文件(已使用",(k=y,(k/1024**3).toFixed(2)),"GB)"]}),(0,vt.jsxs)("main",{className:"group-file-list",children:[h?(0,vt.jsxs)("article",{className:"uploading",children:[(0,vt.jsx)("span",{className:"group-file-type",style:{backgroundColor:"#8a8f98"},children:(0,vt.jsx)(va,{children:"upload_file"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:h.name}),(0,vt.jsxs)("small",{children:["上传中 ",h.progress,"%"]}),(0,vt.jsx)("progress",{value:h.progress,max:"100"})]})]}):null,null===r?(0,vt.jsx)("p",{className:"group-inline-empty",children:g?"文件列表加载失败":"加载中…"}):0===b.length&&a.trim()?(0,vt.jsx)("p",{className:"group-inline-empty",children:"未找到匹配的文件"}):b.map(n=>{const[t,i]=Xa[n.file_type]||Xa.file;return(0,vt.jsxs)("article",{children:[(0,vt.jsx)("span",{className:"group-file-type",style:{backgroundColor:i},children:(0,vt.jsx)(va,{children:t})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:n.file_name||"未命名文件"}),(0,vt.jsxs)("small",{children:["来自 ",m[n.uploader_id]||n.uploader_id," · ",(o=n.file_size,o?o<1048576?(o/1024).toFixed(1)+" KB":o<1073741824?(o/1048576).toFixed(1)+" MB":(o/1073741824).toFixed(2)+" GB":"0 KB")]})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return t=n.group_file_id,void(0,zt.dv)(e,t).then(()=>j()).catch(e=>s(e.message||"删除失败"));var t},children:(0,vt.jsx)(va,{children:"delete_outline"})})]},n.group_file_id);var o})]})]});var k}function Za({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState("");return n().useEffect(()=>{e&&(0,zt.Wx)(e).then(e=>{i(e),a(e.name)}).catch(()=>t("加载失败"))},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群昵称",back:"group-profile",backTopic:e,right:"完成",onRight:()=>{o.trim()&&(0,zt.vW)(e,{name:o.trim(),version:s?s.version:0}).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-profile",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("input",{autoFocus:!0,value:o,maxLength:11,onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/11"]})]})]})}function Qa({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState("");return n().useEffect(()=>{e&&(0,zt.Wx)(e).then(e=>{i(e),a(e.description||"")}).catch(()=>t("加载失败"))},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群简介",back:"group-profile",backTopic:e,right:"发布",onRight:()=>{(0,zt.vW)(e,{description:o.trim(),version:s?s.version:0}).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-profile",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("textarea",{autoFocus:!0,value:o,maxLength:200,placeholder:"请输入群简介内容",onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/200"]})]})]})}function er({topic:e,onToast:t}){const[s,i]=n().useState(""),[o,a]=n().useState(0);return n().useEffect(()=>{e&&(0,zt.ly)(e).then(e=>{i(e.nickname||""),a(e.version||0)}).catch(()=>{})},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"我在本群的昵称",back:"group-settings",backTopic:e,right:"完成",onRight:()=>{(0,zt.af)(e,s.trim(),o).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-settings",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("input",{autoFocus:!0,value:s,maxLength:32,onChange:e=>i(e.target.value)}),(0,vt.jsx)("small",{children:"群昵称仅在当前群内显示。"})]})]})}function nr({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o}){const[a,r]=n().useState(""),l=t&&t.topic,c=l&&s?`group-my-role:${l}:${s}`:null,[d,h]=n().useState(()=>c&&(0,It.ze)(c)||null);let u;return n().useEffect(()=>{if(!l||!s)return void h(null);const e=`group-my-role:${l}:${s}`;h((0,It.ze)(e)||null),(0,zt.Wx)(l).then(n=>{const t=n?n.my_role:null;(0,It.Ug)(e,t),h(t)}).catch(()=>{})},[l,s]),u="group-list"===e||"group-empty"===e?(0,vt.jsx)(Ta,{tinode:i,onToast:r}):["group-invite","group-events","group-new-request","group-announcement","group-summary","group-role-message"].includes(e)?(0,vt.jsx)(qa,{mode:e,onToast:r}):"group-join-requests"===e?(0,vt.jsx)(Ma,{topic:l,fromChat:t&&"chat"===t.from,onToast:r}):"group-announcement-detail"===e?(0,vt.jsx)(Aa,{topic:l,myRole:d,fromChat:t&&"chat"===t.from,onToast:r}):"group-settings"===e?(0,vt.jsx)(Ea,{topic:l,myUserId:s,tinode:i,onToast:r}):"group-profile"===e?(0,vt.jsx)(Ia,{topic:l,myUserId:s,onToast:r}):"group-avatar"===e?(0,vt.jsx)(Da,{topic:l,myUserId:s,tinode:i,onToast:r}):"group-nickname"===e?(0,vt.jsx)(Za,{topic:l,onToast:r}):"group-description"===e?(0,vt.jsx)(Qa,{topic:l,onToast:r}):"group-my-nickname"===e?(0,vt.jsx)(er,{topic:l,myUserId:s,onToast:r}):"group-members"===e?(0,vt.jsx)($a,{topic:l,onToast:r}):"group-qr"===e?(0,vt.jsx)(Ua,{topic:l,onToast:r}):"group-governance"===e?(0,vt.jsx)(La,{topic:l,myRole:d,tinode:i,onToast:r}):["group-admins","group-admin-success","group-admin-partial","group-admin-removed"].includes(e)?(0,vt.jsx)(Fa,{topic:l,onToast:r}):"group-admin-add"===e?(0,vt.jsx)(Va,{type:"admin-add",topic:l,onToast:r}):"group-mute-add"===e?(0,vt.jsx)(Va,{type:"mute-add",topic:l,onToast:r}):"group-invite-friends"===e?(0,vt.jsx)(Ha,{topic:l,onToast:r}):"group-muted"===e?(0,vt.jsx)(Wa,{topic:l,onToast:r}):["group-owner-select","group-owner-confirm"].includes(e)?(0,vt.jsx)(Ka,{topic:l,onToast:r}):(0,vt.jsx)(Ya,{topic:l,tinode:i,onToast:r}),(0,vt.jsxs)(vt.Fragment,{children:[u,(0,vt.jsx)(za,{message:a,onDone:()=>r("")})]})}var tr=a(8492);const sr=new Map,ir=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},or=e=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),e)),ar=["favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos"];function rr({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function lr({title:e,back:n="messages-home",backParams:t,right:s,onRight:i}){return(0,vt.jsxs)("header",{className:"library-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||ir(n,t)},"aria-label":"返回",children:(0,vt.jsx)(rr,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),s?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,children:s}):(0,vt.jsx)("span",{})]})}function cr({item:e}){return(0,vt.jsx)("span",{className:"library-avatar",children:e&&e.image?(0,vt.jsx)("img",{src:e.image,alt:""}):(0,vt.jsx)(rr,{children:e&&e.icon||"person"})})}function dr({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function hr({value:e,onChange:n,placeholder:t="搜索"}){return(0,vt.jsxs)("label",{className:"library-search",children:[(0,vt.jsx)(rr,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),placeholder:t})]})}function ur(e){return wt.Drafty.isValid(e)?e:null}const gr=["IM","VD","AU","EX"];function pr(e){const n=ur(e);if(!n)return null;let t=null;return wt.Drafty.entities(n,(e,n,s)=>!(t||!e||!gr.includes(s)||(t=e,0))),t}function mr(e){if(!e)return Promise.resolve(null);const n=wt.Drafty.getDownloadUrl(e);return n?n.startsWith("blob:")||n.startsWith("data:")?Promise.resolve(n):(0,zt.w8)(n.slice(n.lastIndexOf("/")+1)).catch(()=>null):Promise.resolve(null)}function fr(e){return e&&e.preview?"data:"+(e.premime||"image/jpeg")+";base64,"+e.preview:null}function xr(e){return e&&(e.ent||e.fmt||void 0!==e.txt)?pr({txt:e.txt,fmt:e.fmt,ent:e.ent}):null}function jr(e,n){if("string"==typeof e)return e;const t=ur(e);return t?wt.Drafty.toPlainText(t):n||""}const br={image:["image","#3ba55c"],video:["videocam","#3b82c4"],audio:["audiotrack","#8b5cf6"],document:["description","#e05d44"],file:["insert_drive_file","#8a8f98"]},yr=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt"];function wr(e){const n=/\.([a-zA-Z0-9]+)$/.exec(e||"");return n?n[1].toUpperCase():""}function vr({name:e,size:n,mime:t,sender:s,removed:i,onOpen:o}){const a=wr(e),[,r]=br[function(e,n){const t=(e||"").split("/")[0];if("image"===t||"video"===t||"audio"===t)return t;const s=wr(n).toLowerCase();return"application/pdf"===e||yr.includes(s)?"document":"file"}(t,e)];return(0,vt.jsxs)("button",{type:"button",className:"library-file-card"+(i?" removed":""),onClick:i?void 0:o,children:[(0,vt.jsx)("span",{style:{backgroundColor:r},children:a||(t||"").split("/")[0].toUpperCase()||"?"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e||"未命名文件"}),(0,vt.jsxs)("small",{children:["number"==typeof n?(0,Ot.lX)(n):n||"未知大小",s?` · ${s}`:""]})]}),i?(0,vt.jsx)("em",{children:"文件已失效"}):(0,vt.jsx)(rr,{children:"chevron_right"})]})}function kr({att:e,head:t,removed:s}){const[i,o]=n().useState(null);n().useEffect(()=>{s||mr(e).then(o)},[e,s]);const a=e&&e.duration||t&&t.duration||0;return s?(0,vt.jsxs)("div",{className:"library-voice-card removed",children:[(0,vt.jsx)(rr,{children:"block"}),(0,vt.jsx)("em",{children:"语音已失效"})]}):(0,vt.jsx)("div",{className:"library-voice-card",children:i?(0,vt.jsx)(tr.A,{short:!0,src:i,duration:a,preview:e&&e.preview}):(0,vt.jsx)(rr,{children:"hourglass_empty"})})}function Cr({url:e,onOpen:n,removed:t}){return t?(0,vt.jsxs)("div",{className:"library-link-text removed",children:[(0,vt.jsx)(rr,{children:"link_off"}),(0,vt.jsx)("em",{children:"链接已失效"})]}):(0,vt.jsxs)("button",{type:"button",className:"library-link-text",onClick:()=>n&&n(e),children:[(0,vt.jsx)(rr,{children:"link"}),(0,vt.jsx)("span",{children:e})]})}function zr({text:e,query:t,onToast:s}){const[i,o]=n().useState(!1),[a,r]=n().useState(!1),l=n().useRef(null);return n().useEffect(()=>{const e=l.current;e&&r(e.scrollHeight-e.clientHeight>1)},[e]),(0,vt.jsxs)("div",{className:"library-text-wrap",children:[(0,vt.jsx)("p",{ref:l,className:"library-text-content"+(i?"":" clamped"),children:(0,vt.jsx)(Mr,{text:e,query:t})}),(0,vt.jsxs)("div",{className:"library-text-actions",children:[a?(0,vt.jsx)("button",{type:"button",onClick:()=>o(e=>!e),children:i?"收起":"展开"}):null,(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(e||"").then(()=>s("已复制")).catch(()=>s("复制失败"))},children:[(0,vt.jsx)(rr,{children:"content_copy"}),"复制"]})]})]})}function _r({url:e,poster:n,video:t,duration:s,onOpen:i,removed:o}){if(o)return(0,vt.jsxs)("div",{className:"library-media-thumb removed",children:[(0,vt.jsx)(rr,{children:t?"videocam_off":"broken_image"}),(0,vt.jsx)("em",{children:t?"视频已失效":"图片已失效"})]});const a=t?n:e;return(0,vt.jsxs)("button",{type:"button",className:"library-media-thumb",onClick:i,children:[a?(0,vt.jsx)("img",{src:a,alt:t?"视频缩略图":"图片缩略图"}):(0,vt.jsx)(rr,{children:t?"videocam":"image"}),t?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(rr,{children:"play_circle"}),s>0?(0,vt.jsx)("small",{children:(0,Ot.Ye)(s/1e3)}):null]}):null]})}function Sr({item:e,onOpen:n,selecting:t,selected:s,onSelect:i,query:o,onToast:a}){const r=pr(e.snapshot&&e.snapshot.content),l=e.source_display||e.source&&e.source.topic||"";return(0,vt.jsxs)("article",{className:"library-favorite-item"+(t?" selecting":""),children:[t?(0,vt.jsx)("button",{type:"button",className:"library-check"+(s?" checked":""),onClick:i,"aria-label":"选择收藏",children:(0,vt.jsx)(rr,{children:s?"check":""})}):null,(0,vt.jsxs)("div",{className:"library-favorite-content",children:["text"===e.type?"removed"===e.availability?(0,vt.jsxs)("p",{className:"library-text-content removed",children:[(0,vt.jsx)(rr,{children:"block"}),(0,vt.jsx)("em",{children:"文本已失效"})]}):(0,vt.jsx)(zr,{text:jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text),query:o,onToast:a}):null,"file"===e.type?(0,vt.jsx)(vr,{name:r&&r.name,size:r&&wt.Drafty.getEntitySize(r),mime:r&&r.mime,removed:"removed"===e.availability,onOpen:n}):null,"voice"===e.type?(0,vt.jsx)(kr,{att:r,head:e.snapshot&&e.snapshot.head,removed:"removed"===e.availability}):null,"link"===e.type?(0,vt.jsx)(Cr,{url:e.snapshot&&e.snapshot.content&&e.snapshot.content.url||jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text),onOpen:n,removed:"removed"===e.availability}):null,"image"===e.type||"video"===e.type?(0,vt.jsx)(_r,{url:e._thumbUrl,poster:"video"===e.type?fr(r):null,video:"video"===e.type,duration:r&&r.duration,onOpen:n,removed:"removed"===e.availability}):null,(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("span",{children:["来自 ",l]}),(0,vt.jsx)("time",{children:(0,Ot.cq)(new Date(e.collected_at))})]})]})]})}const Nr={all:"favorites-mixed",file:"favorites-files",text:"favorites-text",voice:"favorites-voice",link:"favorites-links",image:"favorites-image",video:"favorites-video"},Tr=[["all","全部"],["image","图片"],["video","视频"],["file","文件"],["voice","语音"],["text","文本"],["link","链接"]];function Br({view:e,hashParams:t,tinode:s,onToast:i}){const o="favorites-files"===e?"file":"favorites-text"===e?"text":"favorites-voice"===e?"voice":"favorites-links"===e?"link":"favorites-image"===e?"image":"favorites-video"===e?"video":"all",a="favorites-select"===e,[r,l]=n().useState(a?t&&t.type||"file":o),[c,d]=n().useState(""),h=(0,It.o_)(c,300),[u,g]=n().useState([]),[p,m]=n().useState(()=>(0,It.ze)("favorites:"+r)||null),[f,x]=n().useState(""),[j,b]=n().useState(!1),[y,w]=n().useState(!1),[v,k]=n().useState({}),[C,z]=n().useState({}),_=n().useRef(0),S=n().useCallback(e=>{const n=++_.current;(0,zt.qM)({type:r,query:h,cursor:e?f:""}).then(t=>{_.current===n&&(w(!1),m(n=>{const s=e?(n||[]).concat(t.items||[]):t.items||[];return h||(0,It.Ug)("favorites:"+r,s),s}),x(t.next_cursor||""),b(!!t.next_cursor))}).catch(t=>{_.current===n&&(i(t.message||"加载失败"),e||w(!0))})},[r,h,f]);n().useEffect(()=>{w(!1),m(!h&&(0,It.ze)("favorites:"+r)||null),S(!1)},[r,h]),n().useEffect(()=>{(p||[]).forEach(e=>{"image"!==e.type&&"video"!==e.type||v[e.favorite_id]||mr(pr(e.snapshot&&e.snapshot.content)).then(n=>{n&&k(t=>({...t,[e.favorite_id]:n}))})})},[p]),n().useEffect(()=>{(p||[]).forEach(e=>{const n=e.source&&e.source.topic;n&&!C[n]&&function(e,n){if(e){if(!sr.has(e))return wt.Tinode.isSelfTopicName(e)?(sr.set(e,"已保存的消息"),void n("已保存的消息")):void(e.startsWith("grp")?(0,zt.Wx)(e).then(e=>e.name):(0,zt.pl)(e).then(e=>e.peer&&(0,Et.TP)(e.peer_user_id,e.peer.public,e.peer_user_id))).then(t=>{t&&(sr.set(e,t),n(t))}).catch(()=>{});n(sr.get(e))}}(n,e=>e&&z(t=>({...t,[n]:e})))})},[p]);const[N,T]=n().useState(!1),B=p||[];return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:a?`已选择 ${u.length} 项`:"我的收藏",back:a?Nr[r]||"favorites-files":"messages-home",right:a?"取消":"多选",onRight:()=>ir(a?Nr[r]||"favorites-files":"favorites-select",a?void 0:{type:r})}),(0,vt.jsx)(hr,{value:c,onChange:d,placeholder:"搜索收藏内容"}),(0,vt.jsx)("nav",{className:"library-type-tabs",children:Tr.map(([e,n])=>(0,vt.jsx)("button",{type:"button",className:r===e?"active":"",onClick:()=>{l(e),g([]),Nr[e]&&!a&&or(Nr[e])},children:n},e))}),(0,vt.jsx)("main",{className:"library-favorite-list",children:null===p?(0,vt.jsx)("p",{className:"library-empty-hint",children:y?"加载失败,请重试":"加载中…"}):B.length?(0,vt.jsxs)(vt.Fragment,{children:[B.map(e=>(0,vt.jsx)(Sr,{item:{...e,_thumbUrl:v[e.favorite_id],source_display:C[e.source&&e.source.topic]},selecting:a,selected:u.includes(e.favorite_id),onSelect:()=>{return n=e.favorite_id,g(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n));var n},onOpen:()=>(e=>{if("file"!==e.type){if("link"===e.type){const n=e.snapshot&&e.snapshot.content&&e.snapshot.content.url||jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text);return void(0,zt.Iv)(n,"favorite").then(e=>{"allow"===e.decision?window.open(n,"_blank","noopener,noreferrer"):i("block"===e.decision?"该链接存在风险,已被拦截":"该链接可能存在风险,请谨慎访问")}).catch(()=>i("链接安全校验失败"))}"image"!==e.type&&"video"!==e.type?i("暂不支持预览此类收藏"):e._thumbUrl?window.open(e._thumbUrl,"_blank","noopener,noreferrer"):i("正在加载,请稍后重试")}else ir("file-download",{favoriteId:e.favorite_id,fromType:r})})(e),query:h,onToast:i},e.favorite_id)),j?(0,vt.jsx)("button",{type:"button",className:"library-load-more",onClick:()=>S(!0),children:"加载更多"}):null]}):(0,vt.jsxs)("div",{className:"library-empty",children:[(0,vt.jsx)(rr,{children:"bookmark_border"}),(0,vt.jsx)("strong",{children:"暂无此类收藏"})]})}),a?(0,vt.jsxs)("nav",{className:"library-batch-bar",children:[(0,vt.jsxs)("button",{type:"button",disabled:!u.length,onClick:()=>ir("favorite-share",{ids:u.join(",")}),children:[(0,vt.jsx)(rr,{children:"share"}),(0,vt.jsx)("span",{children:"转发"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!u.length,onClick:()=>T(!0),children:[(0,vt.jsx)(rr,{children:"delete_outline"}),(0,vt.jsx)("span",{children:"删除"})]})]}):null,N?(0,vt.jsx)("div",{className:"library-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"library-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)(rr,{children:"delete_outline"}),(0,vt.jsx)("h2",{children:"删除收藏"}),(0,vt.jsxs)("p",{children:["确定删除已选择的 ",u.length," 项收藏吗?"]}),(0,vt.jsx)("button",{type:"button",className:"danger",onClick:()=>{T(!1),(0,zt.bL)(u).then(e=>{const n=new Set((e&&e.items||[]).filter(e=>e.ok).map(e=>e.favorite_id));m(e=>{const t=e.filter(e=>!n.has(e.favorite_id));return h||(0,It.Ug)("favorites:"+r,t),t}),g(e=>e.filter(e=>!n.has(e))),i(n.size===u.length?"已删除所选收藏":`已删除 ${n.size}/${u.length} 项,部分删除失败`)}).catch(e=>i(e.message||"删除失败"))},children:"确定"}),(0,vt.jsx)("button",{type:"button",onClick:()=>T(!1),children:"取消"})]})}):null]})}function Pr({hashParams:e,myUserId:t,chatList:s,onToast:i}){const o=(e&&e.ids?e.ids.split(","):[]).filter(Boolean),[a,r]=n().useState(""),[l,c]=n().useState([]),[d,h]=n().useState(!1),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(null);n().useEffect(()=>{o[0]&&(0,zt.T0)(o[0]).then(x).catch(()=>{})},[]);const j=f&&pr(f.snapshot&&f.snapshot.content),b=(s||[]).filter(e=>e.acs&&e.acs.isJoiner()&&e.acs.isWriter()&&(!a||(0,Et.TP)(e.name,e.public,e.name||"").toLowerCase().includes(a.toLowerCase()))),y=e=>{const n=b.find(n=>n.name===e);return n&&(0,Et.TP)(n.name,n.public,e)||e};return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"分享",back:"favorites-select",backParams:f?{type:f.type}:void 0}),d?(0,vt.jsxs)("main",{className:"library-share-confirm",children:[(0,vt.jsx)("h2",{children:"发送给"}),(0,vt.jsx)("div",{className:"library-target-summary",children:l.map(e=>(0,vt.jsxs)("span",{children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsx)("small",{children:y(e)})]},e))}),f?(0,vt.jsxs)("section",{children:[j?(0,vt.jsx)(vr,{name:j.name,size:wt.Drafty.getEntitySize(j),onOpen:()=>{}}):(0,vt.jsx)("p",{className:"library-text-content",children:jr(f.snapshot&&f.snapshot.content,f.snapshot&&f.snapshot.text)}),(0,vt.jsx)("p",{children:"收藏原件会继续保留,并在目标会话中生成一条新消息。"})]}):null,(0,vt.jsx)("textarea",{value:u,onChange:e=>g(e.target.value),placeholder:"给朋友留言"}),(0,vt.jsx)("button",{type:"button",disabled:p,onClick:()=>{p||(m(!0),(0,zt.t$)(o,l,u.trim()).then(e=>{const n=e&&e.items||[],t=l.filter(e=>{const t=n.filter(n=>n.target_topic===e);return t.length>0&&t.every(e=>"sent"===e.status)}).length;i(t===l.length?`已分享给 ${l.length} 个会话`:`${t}/${l.length} 个会话分享成功`),window.setTimeout(()=>ir(Nr[f&&f.type]||"favorites-files"),700)}).catch(e=>i(e.message||"分享失败")).finally(()=>m(!1)))},children:"发送"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(hr,{value:a,onChange:r,placeholder:"搜索联系人或群聊"}),(0,vt.jsx)("p",{className:"library-section-title",children:"最近聊天"}),(0,vt.jsx)("main",{className:"library-target-list",children:b.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.name,c(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n).slice(0,9));var n},children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:(0,Et.TP)(e.name,e.public,e.name)})}),(0,vt.jsx)("i",{className:"library-check"+(l.includes(e.name)?" checked":""),children:(0,vt.jsx)(rr,{children:l.includes(e.name)?"check":""})})]},e.name))}),(0,vt.jsxs)("footer",{className:"library-next-bar",children:[(0,vt.jsxs)("span",{children:["已选择 ",l.length,"/9"]}),(0,vt.jsx)("button",{type:"button",disabled:!l.length,onClick:()=>h(!0),children:"确定"})]})]})]})}function qr({hashParams:e,tinode:t,onToast:s}){const[i,o]=n().useState(null),[a,r]=n().useState(!1),[l,c]=n().useState("ready"),[d,h]=n().useState(0),u=n().useRef(null),{favoriteId:g,topic:p,seq:m,fromType:f}=e||{},x=g?Nr[f]||"favorites-files":"history-files",j=g?void 0:{topic:p};return n().useEffect(()=>{const e=e=>{const n=pr(e);if(!n)return s("文件信息加载失败"),void r(!0);const t=wt.Drafty.getDownloadUrl(n),i=t&&(t.startsWith("blob:")||t.startsWith("data:"))?t:(0,zt.WJ)(t&&t.slice(t.lastIndexOf("/")+1));o({name:n.name,mime:n.mime,size:wt.Drafty.getEntitySize(n),url:i})};g?(0,zt.T0)(g).then(n=>e(n.snapshot&&n.snapshot.content)).catch(e=>{s(e.message||"加载失败"),r(!0)}):p&&m&&(0,zt.le)(p,m,0,0).then(n=>{const t=(n.items||[]).find(e=>String(e.seq)===String(m))||n.items[0];e(t&&t.content)}).catch(e=>{s(e.message||"加载失败"),r(!0)})},[e]),i?(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"文件",back:x,backParams:j}),(0,vt.jsxs)("main",{className:"library-download",children:[(0,vt.jsx)("span",{className:"library-download-icon",children:wr(i.name)||"?"}),(0,vt.jsx)("h2",{children:i.name}),(0,vt.jsx)("p",{children:"该文件不支持在线预览"}),"loading"===l?(0,vt.jsxs)("section",{className:"library-download-progress",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"下载中..."}),(0,vt.jsxs)("strong",{children:[d,"%"]})]}),(0,vt.jsx)("progress",{value:d,max:"100"}),(0,vt.jsxs)("small",{children:[(0,Ot.lX)(i.size*d/100)," / ",(0,Ot.lX)(i.size)]})]}):null,"ready"===l?(0,vt.jsxs)("button",{type:"button",className:"library-primary",onClick:()=>{if(!i||!t)return;if(i.url&&(i.url.startsWith("blob:")||i.url.startsWith("data:"))){const e=document.createElement("a");return e.href=i.url,e.download=i.name||"file",document.body.appendChild(e),e.click(),document.body.removeChild(e),void c("done")}const e=(0,zt.mO)(t);if(!e)return void s("当前环境不支持下载");u.current=e,c("loading"),h(0);const n=e.download(i.url,i.name,i.mime,e=>h(i.size?Math.min(100,Math.round(e/i.size*100)):0),e=>{c("ready"),s(e&&e.message||"下载失败")});n&&n.then&&n.then(()=>c("done")).catch(()=>{})},children:[(0,vt.jsx)(rr,{children:"download"}),"立即下载(",(0,Ot.lX)(i.size),")"]}):"loading"===l?(0,vt.jsx)("div",{className:"library-download-actions",children:(0,vt.jsxs)("button",{type:"button",onClick:()=>{u.current&&u.current.cancel(),c("ready"),h(0)},children:[(0,vt.jsx)(rr,{children:"close"}),"取消"]})}):(0,vt.jsx)("div",{className:"library-download-actions",children:(0,vt.jsxs)("button",{type:"button",className:"primary",onClick:()=>s("已保存,可在浏览器下载列表中查看"),children:[(0,vt.jsx)(rr,{children:"open_in_new"}),"用其他应用打开"]})})]})]}):(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"文件",back:x,backParams:j}),(0,vt.jsx)("main",{className:"library-download",children:(0,vt.jsx)("p",{className:"library-empty-hint",children:a?"文件不存在或已被删除":"加载中…"})})]})}function Mr({text:e,query:n}){const t=(n||"").trim();if(!t||!e)return e;const s=[],i=e.toLowerCase(),o=t.toLowerCase();let a=0;for(let n=i.indexOf(o);-1!==n;n=i.indexOf(o,n+o.length))n>a&&s.push(e.slice(a,n)),s.push((0,vt.jsx)("mark",{children:e.slice(n,n+t.length)},n)),a=n+t.length;return s.length?(a<e.length&&s.push(e.slice(a)),s):e}function Ar({active:e}){return(0,vt.jsx)("nav",{className:"library-history-tabs",children:[["history-search","聊天记录"],["history-images","图片"],["history-videos","视频"],["history-files","文件"],["history-links","链接"]].map(n=>(0,vt.jsx)("button",{type:"button",className:e===n[0]?"active":"",onClick:()=>or(n[0]),children:n[1]},n[0]))})}const Er={"history-search":"查找聊天记录","history-files":"文件","history-links":"链接","history-images":"图片","history-videos":"视频"},Ir={"history-search":"all","history-files":"file","history-links":"link","history-images":"image","history-videos":"video"},Dr={image:"[图片]",video:"[视频]",voice:"[语音]",file:"[文件]",link:"[链接]"};function Ur({view:e,hashParams:t,myUserId:s,onToast:i}){const o=t&&t.topic,a=o?`history:${o}:${e}`:null,[r,l]=n().useState(""),c=(0,It.o_)(r,300),[d,h]=n().useState(()=>a&&(0,It.ze)(a)||null),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(!1),[j,b]=n().useState({}),[y,w]=n().useState({}),v=n().useRef(0),k=n().useCallback(n=>{if(!o)return;const t=++v.current,s=Ir[e];("history-search"===e?(0,zt.eO)(o,{query:c,type:s,cursor:n?u:""}):(0,zt.yP)(o,s,n?u:"")).then(e=>{v.current===t&&(x(!1),h(t=>{const s=n?(t||[]).concat(e.items||[]):e.items||[];return!c&&a&&(0,It.Ug)(a,s),s}),g(e.next_cursor||""),m(!!e.next_cursor))}).catch(e=>{v.current===t&&(i(e.message||"加载失败"),n||x(!0))})},[o,e,c,u]);n().useEffect(()=>{x(!1),h(!c&&a&&(0,It.ze)(a)||null),k(!1)},[o,e,c]),n().useEffect(()=>{"history-images"!==e&&"history-videos"!==e||(d||[]).forEach(e=>{j[e.seq]||mr(xr(e)).then(n=>{n&&b(t=>({...t,[e.seq]:n}))})})},[d,e]),n().useEffect(()=>{(d||[]).forEach(e=>{const n=e.from;n&&!y[n]&&n!==s&&"usr"+n!==s&&(0,zt.VM)(n.startsWith("usr")?n:"usr"+n).then(e=>{w(t=>({...t,[n]:e.display_name}))}).catch(()=>{})})},[d]);const C=e=>is.A.navigateTo(is.A.addUrlParam(is.A.setUrlTopic("",o),"jumpseq",e)),z=e=>e?e===s||"usr"+e===s?"我":y[e]||e:"",_=e=>{(0,zt.Iv)(e,"message").then(n=>{"allow"===n.decision?window.open(e,"_blank","noopener,noreferrer"):i("block"===n.decision?"该链接存在风险,已被拦截":"该链接可能存在风险,请谨慎访问")}).catch(()=>i("链接安全校验失败"))},S=d||[];return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:Er[e],back:o&&o.startsWith("grp")?"group-settings":"friend-settings",backParams:o&&o.startsWith("grp")?{topic:o}:{uid:o}}),"history-search"===e?(0,vt.jsx)(hr,{value:r,onChange:l,placeholder:"搜索当前会话"}):null,(0,vt.jsx)(Ar,{active:e}),(0,vt.jsxs)("main",{className:"library-history-content",children:[null===d?(0,vt.jsx)("p",{className:"library-empty-hint",children:f?"加载失败,请重试":"加载中…"}):S.length?"history-search"===e?(0,vt.jsx)("section",{className:"library-message-results",children:S.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>C(e.seq),children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("p",{children:"text"===e.type?"removed"===e.availability?"文本已失效":(0,vt.jsx)(Mr,{text:e.snippet||"",query:c}):Dr[e.type]||e.snippet||""}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(rr,{children:"chevron_right"})]},e.seq))}):"history-files"===e?(0,vt.jsx)("section",{className:"library-record-files",children:S.map(e=>{const t=xr(e);return(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsxs)("div",{className:"library-record-header",children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(vr,{name:t?t.name:e.name,size:t?wt.Drafty.getEntitySize(t):e.size,mime:t&&t.mime,removed:"removed"===e.availability,onOpen:()=>ir("file-download",{topic:o,seq:e.seq})})]},e.seq)})}):"history-links"===e?(0,vt.jsx)("section",{className:"library-record-links",children:S.map(e=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsxs)("button",{type:"button",className:"library-record-header",onClick:()=>C(e.seq),children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(Cr,{url:e.url||jr(void 0!==e.txt?{txt:e.txt,fmt:e.fmt,ent:e.ent}:void 0,e.text),onOpen:_,removed:"removed"===e.availability})]},e.seq))}):(0,vt.jsx)("section",{className:"library-media-grid",children:S.map(n=>{const t="history-videos"===e?xr(n):null;return(0,vt.jsx)(_r,{url:j[n.seq],poster:t?fr(t):null,video:"history-videos"===e,duration:t&&t.duration,onOpen:()=>C(n.seq),removed:"removed"===n.availability},n.seq)})}):(0,vt.jsxs)("div",{className:"library-empty",children:[(0,vt.jsx)(rr,{children:"history-search"===e?"search_off":"inbox"}),(0,vt.jsx)("strong",{children:"暂无内容"})]}),p?(0,vt.jsx)("button",{type:"button",className:"library-load-more",onClick:()=>k(!0),children:"加载更多"}):null]})]})}function Rr({view:e,hashParams:t,tinode:s,myUserId:i,onTopicSelected:o,chatList:a}){const[r,l]=n().useState("");let c;return c=e.startsWith("favorites")?(0,vt.jsx)(Br,{view:e,hashParams:t,tinode:s,onToast:l}):"favorite-share"===e?(0,vt.jsx)(Pr,{hashParams:t,myUserId:i,chatList:a,onToast:l}):e.startsWith("file-download")?(0,vt.jsx)(qr,{hashParams:t,tinode:s,onToast:l}):(0,vt.jsx)(Ur,{view:e,hashParams:t,myUserId:i,onToast:l}),(0,vt.jsxs)(vt.Fragment,{children:[c,(0,vt.jsx)(dr,{message:r,onDone:()=>l("")})]})}const Lr=e=>is.A.navigateTo(e),Or=["call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized"],Fr="安妮",$r="img/bkg/p09.jpg",Vr=[{id:1,type:"video",direction:"outgoing",state:"cancelled",label:"已取消",time:"今天 10:24"},{id:2,type:"audio",direction:"incoming",state:"declined",label:"已拒绝",time:"昨天 21:03"},{id:3,type:"video",direction:"incoming",state:"missed",label:"未接听",time:"昨天 18:42"},{id:4,type:"audio",direction:"outgoing",state:"busy",label:"对方忙线",time:"星期一 15:10"},{id:5,type:"audio",direction:"outgoing",state:"finished",label:"通话时长 12:36",time:"8月20日"}];function Hr({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Wr({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,1800);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"call-toast",role:"status",children:e}):null}function Kr({small:e=!1}){return(0,vt.jsx)("span",{className:"call-product-avatar"+(e?" small":""),children:(0,vt.jsx)("img",{src:$r,alt:""})})}function Xr({onMinimize:e,light:n=!1}){return(0,vt.jsxs)("header",{className:"call-product-header"+(n?" light":""),children:[(0,vt.jsx)("button",{type:"button",onClick:e,"aria-label":"最小化通话",children:(0,vt.jsx)(Hr,{children:"keyboard_arrow_down"})}),(0,vt.jsx)("span",{children:"端到端加密通话"}),(0,vt.jsx)("button",{type:"button","aria-label":"更多通话设置",children:(0,vt.jsx)(Hr,{children:"more_vert"})})]})}function Gr({icon:e,label:n,active:t,danger:s,onClick:i}){return(0,vt.jsxs)("button",{type:"button",className:"call-control"+(t?" active":"")+(s?" danger":""),onClick:i,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Hr,{children:e})}),(0,vt.jsx)("small",{children:n})]})}function Jr(){return(0,vt.jsxs)("div",{className:"call-history-page",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("chat-standard"),"aria-label":"返回会话",children:(0,vt.jsx)(Hr,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"安妮"}),(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("friend-profile"),"aria-label":"个人资料",children:(0,vt.jsx)(Hr,{children:"person_outline"})})]}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("p",{className:"chat-time",children:"最近通话"}),Vr.map(e=>(0,vt.jsxs)("button",{type:"button",className:"call-record "+e.state,onClick:()=>Lr("audio"===e.type?"audio-call-ringing":"video-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"audio"===e.type?"call":"videocam"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"audio"===e.type?"语音通话":"视频通话"}),(0,vt.jsx)("small",{children:e.label})]}),(0,vt.jsx)("time",{children:e.time}),(0,vt.jsx)(Hr,{children:"incoming"===e.direction?"call_received":"call_made"})]},e.id))]}),(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>Lr("audio-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"call"}),(0,vt.jsx)("span",{children:"语音通话"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>Lr("video-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"videocam"}),(0,vt.jsx)("span",{children:"视频通话"})]})]})]})}function Yr({onToast:e}){return(0,vt.jsxs)("div",{className:"call-fullscreen call-audio-surface incoming",children:[(0,vt.jsx)("div",{className:"call-ambient"}),(0,vt.jsx)(Xr,{onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("main",{className:"call-peer-card",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:"邀请你进行视频通话"}),(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]})]}),(0,vt.jsxs)("footer",{className:"call-incoming-actions",children:[(0,vt.jsx)(Gr,{icon:"call_end",label:"拒绝",danger:!0,onClick:()=>{e("已拒绝视频通话"),window.setTimeout(()=>Lr("call-history"),600)}}),(0,vt.jsx)(Gr,{icon:"videocam",label:"接听",active:!0,onClick:()=>Lr("video-call-active")})]})]})}function Zr(e){return`${Math.floor(e/60).toString().padStart(2,"0")}:${(e%60).toString().padStart(2,"0")}`}function Qr({view:e,onToast:t}){const s="audio-call-ringing"===e,[i,o]=n().useState(s?0:68),[a,r]=n().useState("audio-call-muted"!==e),[l,c]=n().useState("audio-call-speaker"===e);n().useEffect(()=>{if(s)return;const e=window.setInterval(()=>o(e=>e+1),1e3);return()=>window.clearInterval(e)},[s]);const d=()=>{t(s?"已取消呼叫":`通话结束 ${Zr(i)}`),window.setTimeout(()=>Lr("call-history"),650)};return(0,vt.jsxs)("div",{className:"call-fullscreen call-audio-surface",children:[(0,vt.jsx)("div",{className:"call-ambient"}),(0,vt.jsx)(Xr,{onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("main",{className:"call-peer-card",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:s?"正在等待对方接听…":Zr(i)}),s?(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]}):(0,vt.jsxs)("small",{className:"call-network",children:[(0,vt.jsx)("i",{}),"网络良好"]})]}),s?(0,vt.jsx)("footer",{className:"call-single-action",children:(0,vt.jsx)(Gr,{icon:"call_end",label:"取消",danger:!0,onClick:d})}):(0,vt.jsxs)("footer",{className:"call-active-controls",children:[(0,vt.jsx)(Gr,{icon:a?"mic":"mic_off",label:a?"麦克风":"麦克风已关",active:a,onClick:()=>{r(!a),t(a?"麦克风已关闭":"麦克风已开启")}}),(0,vt.jsx)(Gr,{icon:l?"volume_up":"hearing",label:l?"扬声器":"听筒",active:l,onClick:()=>{c(!l),t(l?"已切换到听筒":"扬声器已开启")}}),(0,vt.jsx)(Gr,{icon:"call_end",label:"挂断",danger:!0,onClick:d})]})]})}function el({cameraOff:e,peerOff:n}){return n?(0,vt.jsxs)("div",{className:"call-video-off",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("strong",{children:"对方摄像头已关闭"}),(0,vt.jsx)("small",{children:"语音通话仍在继续"})]}):e?(0,vt.jsxs)("div",{className:"call-video-off local",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("strong",{children:"摄像头已关闭"})]}):(0,vt.jsx)("img",{className:"call-video-backdrop",src:"img/bkg/w06.jpg",alt:"视频通话画面"})}function nl({view:e,onToast:t}){const s="video-call-ringing"===e||"video-call-camera-off"===e,[i,o]=n().useState("video-call-camera-off"!==e),[a,r]=n().useState(!0),[l,c]=n().useState(s?0:128),d="video-call-peer-camera-off"===e;return n().useEffect(()=>{if(s)return;const e=window.setInterval(()=>c(e=>e+1),1e3);return()=>window.clearInterval(e)},[s]),(0,vt.jsxs)("div",{className:"call-fullscreen call-video-surface",children:[(0,vt.jsx)(el,{cameraOff:s&&!i,peerOff:d}),(0,vt.jsx)("div",{className:"call-video-shade"}),(0,vt.jsx)(Xr,{light:!0,onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("div",{className:"call-video-status",children:[(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:s?"正在等待对方接听…":Zr(l)})]}),s?null:(0,vt.jsxs)("button",{type:"button",className:"call-local-preview","aria-label":"本地视频预览",children:[(0,vt.jsx)("img",{src:i?"img/bkg/p05.jpg":$r,alt:""}),i?null:(0,vt.jsx)(Hr,{children:"videocam_off"})]}),(0,vt.jsxs)("footer",{className:"call-video-controls",children:[(0,vt.jsx)(Gr,{icon:"flip_camera_android",label:"翻转",onClick:()=>t("已切换摄像头")}),(0,vt.jsx)(Gr,{icon:i?"videocam":"videocam_off",label:i?"摄像头":"摄像头已关",active:i,onClick:()=>{o(!i),t(i?"摄像头已关闭":"摄像头已开启")}}),(0,vt.jsx)(Gr,{icon:"call_end",label:s?"取消":"挂断",danger:!0,onClick:()=>{t(s?"已取消视频呼叫":`视频通话结束 ${Zr(l)}`),window.setTimeout(()=>Lr("call-history"),650)}}),s?null:(0,vt.jsx)(Gr,{icon:a?"mic":"mic_off",label:a?"麦克风":"麦克风已关",active:a,onClick:()=>r(!a)})]})]})}function tl({onToast:e}){const[t,s]=n().useState(()=>({x:Math.max(16,window.innerWidth-134),y:168})),i=n().useRef(null);return(0,vt.jsxs)("div",{className:"call-minimized-page",children:[(0,vt.jsxs)("header",{className:"call-chat-preview-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("messages-home"),children:(0,vt.jsx)(Hr,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"安妮"}),(0,vt.jsx)("small",{children:"在线"})]}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(Hr,{children:"more_vert"})})]}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),(0,vt.jsx)("div",{className:"call-chat-preview-message",children:"下午的评审材料我已经发到群里了。"})]}),(0,vt.jsxs)("button",{type:"button",className:"call-floating-window",style:{transform:`translate(${t.x}px, ${t.y}px)`},onPointerDown:e=>{i.current={x:e.clientX-t.x,y:e.clientY-t.y},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{i.current&&s({x:Math.max(8,Math.min(window.innerWidth-132,e.clientX-i.current.x)),y:Math.max(70,Math.min(window.innerHeight-190,e.clientY-i.current.y))})},onPointerUp:()=>{i.current=null},onClick:()=>Lr("video-call-active"),"aria-label":"返回全屏通话",children:[(0,vt.jsx)("img",{src:"img/bkg/w06.jpg",alt:"视频通话悬浮画面"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("i",{}),"02:18"]})]}),(0,vt.jsxs)("footer",{className:"call-chat-composer",children:[(0,vt.jsx)("input",{placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(Hr,{children:"add_circle_outline"})})]}),(0,vt.jsx)("button",{type:"button",className:"call-mini-hangup",onClick:()=>{e("通话已结束"),window.setTimeout(()=>Lr("call-history"),600)},"aria-label":"挂断通话",children:(0,vt.jsx)(Hr,{children:"call_end"})})]})}function sl({view:e}){const[t,s]=n().useState("");let i;return i="call-history"===e?(0,vt.jsx)(Jr,{}):"call-incoming"===e?(0,vt.jsx)(Yr,{onToast:s}):e.startsWith("audio-call")?(0,vt.jsx)(Qr,{view:e,onToast:s}):"call-minimized"===e?(0,vt.jsx)(tl,{onToast:s}):(0,vt.jsx)(nl,{view:e,onToast:s}),(0,vt.jsxs)(vt.Fragment,{children:[i,(0,vt.jsx)(Wr,{message:t,onDone:()=>s("")})]})}const il=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},ol=e=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),e)),al=["workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice"];function rl({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function ll({title:e,back:n="workbench",action:t,actionLabel:s,onAction:i,actionDisabled:o}){return(0,vt.jsxs)("header",{className:"workplace-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||il(n)},"aria-label":"返回",children:(0,vt.jsx)(rl,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),t?(0,vt.jsx)("button",{type:"button",onClick:i,"aria-label":s||"操作",disabled:o,children:(0,vt.jsx)(rl,{children:t})}):(0,vt.jsx)("span",{})]})}function cl({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2100);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"workplace-toast",role:"status",children:e}):null}const dl=["周日","周一","周二","周三","周四","周五","周六"];function hl(e){const n=new Date,t=Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(n.getFullYear(),n.getMonth(),n.getDate()))/864e5),s=0===t?"(今天)":1===t?"(明天)":-1===t?"(昨天)":"";return`${e.getMonth()+1}月${e.getDate()}日 ${dl[e.getDay()]}${s}`}function ul(e){return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function gl(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}const pl=new Map;function ml(e,t){const[s,i]=n().useState({});return n().useEffect(()=>{(e||[]).forEach(e=>{if(!e||void 0!==s[e])return;const n=e.startsWith("usr")?e:"usr"+e;t&&n===t?i(n=>({...n,[e]:"我"})):function(e,n){if(!e)return;if(pl.has(e))return void n(pl.get(e));const t=e.startsWith("usr")?null:"usr"+e;(0,zt.VM)(e).catch(e=>t?(0,zt.VM)(t):Promise.reject(e)).then(t=>{const s=t&&(t.display_name||t.nickname||t.public_account)||e;pl.set(e,s),n(s)}).catch(()=>{pl.set(e,e),n(e)})}(e,n=>i(t=>({...t,[e]:n})))})},[JSON.stringify(e),t]),s}const fl={organization:"red",attendance:"orange",meetings:"blue",daily_reports:"orange",monthly_reports:"violet",executive_mailbox:"green"},xl={organization:"account_tree",attendance:"schedule",meetings:"notifications_active",daily_reports:"task_alt",monthly_reports:"event_note",executive_mailbox:"mail_outline"},jl={organization:"organization-directory",meetings:"meeting-attendee",daily_reports:"daily-report-mine",monthly_reports:"monthly-report-mine",executive_mailbox:"executive-mailbox"};function bl({onToast:e}){const[t]=(0,It.sK)("me",zt.jp,[]),[s,i]=n().useState(()=>(0,It.ze)("workbench-modules")||[]),[o,a]=n().useState({}),[r,l]=n().useState(null);n().useEffect(()=>{(0,zt.qm)().then(e=>{const n=e&&e.modules||[];(0,It.Ug)("workbench-modules",n),i(n),n.forEach(e=>{e.icon_file_id&&(0,zt.w8)(e.icon_file_id).then(n=>n&&a(t=>({...t,[e.code]:n}))).catch(()=>{})})}).catch(e=>l(e.message||"工作台加载失败"))},[]);const c=t&&t.profile;return(0,vt.jsxs)("div",{className:"workplace-page workbench-page",children:[(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"workbench-profile",children:[c&&c.avatar_file_id?(0,vt.jsx)(yl,{fileId:c.avatar_file_id}):(0,vt.jsx)("span",{className:"workbench-avatar-fallback",children:(0,vt.jsx)(rl,{children:"person"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:c&&(c.nickname||c.public_account)||"…"}),(0,vt.jsx)("small",{children:"员工"})]}),(0,vt.jsx)("button",{type:"button","aria-label":"工作台设置",onClick:()=>il("personal-center"),children:(0,vt.jsx)(rl,{children:"tune"})})]}),(0,vt.jsxs)("section",{className:"workbench-banner",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"提高效率,从工作台开始"}),(0,vt.jsx)("small",{children:"Business applications start from the workbench"})]}),(0,vt.jsx)(rl,{children:"business_center"})]}),r?(0,vt.jsx)("p",{className:"workplace-error",children:r}):null,(0,vt.jsx)("section",{className:"workbench-apps","aria-label":"办公应用",children:s.filter(e=>e.enabled).map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>(n=>{jl[n.code]?il(jl[n.code]):e&&e("该功能暂未开放")})(n),children:[(0,vt.jsxs)("span",{className:"tone-"+(fl[n.code]||"blue"),children:[o[n.code]?(0,vt.jsx)("img",{src:o[n.code],alt:""}):(0,vt.jsx)(rl,{children:xl[n.code]||"apps"}),n.unread_count?(0,vt.jsx)("em",{children:n.unread_count>99?"99+":n.unread_count}):null]}),(0,vt.jsx)("strong",{children:n.name})]},n.code))})]}),(0,vt.jsxs)("nav",{className:"workplace-bottom-nav","aria-label":"主导航",children:[(0,vt.jsxs)("button",{type:"button",className:"active",children:[(0,vt.jsx)(rl,{children:"dashboard"}),(0,vt.jsx)("span",{children:"工作台"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ol("messages-home"),children:[(0,vt.jsx)(rl,{children:"chat_bubble_outline"}),(0,vt.jsx)("span",{children:"消息"})]})]})]})}function yl({fileId:e,className:t}){const[s,i]=n().useState(null);return n().useEffect(()=>{let n=!0;return(0,zt.w8)(e).then(e=>n&&i(e)).catch(()=>{}),()=>{n=!1}},[e]),s?(0,vt.jsx)("img",{className:t,src:s,alt:""}):(0,vt.jsx)("span",{className:t})}const wl=["一","二","三","四","五","六","七","八","九","十"],vl=e=>wl[e-1]||String(e),kl=(e,n)=>e===n||"usr"+e===n;function Cl({dept:e,depth:n,expanded:t,containsMe:s,onToggle:i}){const o=0===n?"business":"diamond";return(0,vt.jsxs)("button",{type:"button",className:`organization-department depth-${n}${s?" me":""}`,style:{paddingLeft:1+1.1*n+"rem"},onClick:i,children:[(0,vt.jsx)(rl,{children:o}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.name,"number"==typeof e.member_count?`${e.member_count}人`:"","(",vl(n+1),"级)"]})}),(0,vt.jsx)(rl,{children:t?"expand_more":"chevron_right"})]})}function zl({dept:e}){return(0,vt.jsxs)("div",{className:"organization-department depth-0",style:{paddingLeft:"1rem"},children:[(0,vt.jsx)(rl,{children:"business"}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.name,"number"==typeof e.member_count?`(${e.member_count}人)`:""]})})]})}function _l({person:e,depth:n,isMe:t,level:s}){return(0,vt.jsxs)("button",{type:"button",className:"organization-person"+(t?" me":""),style:{paddingLeft:1+1.1*n+"rem"},onClick:()=>il("group-member-profile",{uid:e.user_id}),children:[(0,vt.jsx)(rl,{children:"radio_button_unchecked"}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.display_name,"(",vl(s),"级)"]})}),(0,vt.jsx)(rl,{children:"chevron_right"})]})}function Sl({dept:e,depth:t,myUserId:s}){const[i,o]=n().useState(0===t),[a,r]=n().useState(null),[l,c]=n().useState(null),[d,h]=n().useState(!1),[u,g]=n().useState(!1),p=()=>{null==a&&(h(!0),g(!1),Promise.all([e.child_count?(0,zt.v)(e.department_id).then(e=>e.departments||e.items||[]):Promise.resolve([]),e.member_count?(0,zt.BK)(e.department_id).then(e=>e.members||e.items||[]):Promise.resolve([])]).then(([e,n])=>{r(e),c(n)}).catch(()=>g(!0)).finally(()=>h(!1)))};n().useEffect(()=>{i&&p()},[]);const m=(l||[]).some(e=>kl(e.user_id,s));return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Cl,{dept:e,depth:t,expanded:i,containsMe:m,onToggle:()=>{const e=!i;o(e),e&&p()}}),i&&d?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):null,i&&!d&&u?(0,vt.jsxs)("p",{className:"organization-loading",children:["加载失败 ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),p()},children:"重试"})]}):null,!i||d||u?null:(0,vt.jsxs)(vt.Fragment,{children:[(a||[]).map(e=>(0,vt.jsx)(Sl,{dept:e,depth:t+1,myUserId:s},e.department_id)),(l||[]).map(e=>(0,vt.jsx)(_l,{person:e,depth:t+1,level:t+2,isMe:kl(e.user_id,s)},e.user_id))]})]})}function Nl(e,n){const t=Math.round((new Date(n)-new Date(e))/6e4);return t<=0?"":t%60==0?t/60+"小时":t<60?`${t}分钟`:`${Math.floor(t/60)}小时${t%60}分钟`}const Tl={accepted:"已接受",declined:"已拒绝",tentative:"待定"};function Bl({meeting:e,myUserId:t,onRespond:s,onToast:i}){const o=e.organizer&&e.organizer.display_name||e.organizer_display_name||e.organizer_id,a=(e.participants||[]).map(e=>e.display_name||e.user_id).join("、"),r=e.organizer_id===t,[l,c]=n().useState(!1),d=n=>{c(!0),(0,zt.kX)(e.meeting_id).then(e=>(0,zt.NZ)(e.meeting_id,n,e.version)).then(e=>{s(),i("accepted"===n?"已接受会议邀请":"declined"===n?"已拒绝会议邀请":"已标记为待定")}).catch(e=>i(e.message||"操作失败")).finally(()=>c(!1))};return(0,vt.jsxs)("article",{className:"meeting-card",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsxs)("small",{children:[hl(new Date(e.start_at))," ",ul(new Date(e.start_at))]}),(0,vt.jsxs)("strong",{children:["会议主题:",e.title]})]}),(0,vt.jsxs)("button",{type:"button",className:"meeting-more",onClick:()=>il("meeting-detail",{meeting_id:e.meeting_id}),children:["查看更多",(0,vt.jsx)(rl,{children:"chevron_right"})]})]}),(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"发起人"}),(0,vt.jsx)("dd",{children:o})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"时间"}),(0,vt.jsx)("dd",{children:hl(new Date(e.start_at))})]}),e.location?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"地点"}),(0,vt.jsx)("dd",{children:e.location})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"参会人"}),(0,vt.jsx)("dd",{className:"meeting-attendees",children:a||"无"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"会议时间"}),(0,vt.jsx)("dd",{children:Nl(e.start_at,e.end_at)})]})]}),r?null:e.my_response&&"pending"!==e.my_response?(0,vt.jsx)("footer",{children:(0,vt.jsx)("button",{type:"button",className:"meeting-responded",disabled:!0,children:Tl[e.my_response]||e.my_response})}):e.permissions&&e.permissions.can_respond?(0,vt.jsxs)("footer",{className:"meeting-response",children:[(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>d("declined"),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:l,onClick:()=>d("accepted"),children:"接受"})]}):null]})}function Pl({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("meetings")||null),[i]=(0,It.sK)("me",zt.jp,[]),o=i&&i.user_id,a=()=>(0,zt.FI)().then(e=>{const n=e.meetings||e.items||[];(0,It.Ug)("meetings",n),s(n)}).catch(()=>s(e=>e||[]));return n().useEffect(()=>{a()},[]),(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议通知",action:"add",actionLabel:"发起会议",onAction:()=>il("meeting-create")}),(0,vt.jsx)("main",{className:"meeting-list",children:null==t?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===t.length?(0,vt.jsx)("p",{className:"organization-loading",children:"暂无会议通知"}):t.map(n=>(0,vt.jsx)(Bl,{meeting:n,myUserId:o,onRespond:a,onToast:e},n.meeting_id))})]})}function ql({hashParams:e,onToast:t}){const s=e&&e.meeting_id,[i,o]=n().useState(()=>s&&(0,It.ze)("meeting:"+s)||null),[a]=(0,It.sK)("me",zt.jp,[]),r=a&&a.user_id,[l,c]=n().useState(!1),[d,h]=n().useState(!1),u=(i&&i.participants||[]).map(e=>e.user_id),g=ml(i?[i.organizer_id,...u]:[],r),p=(e,n)=>n&&n!==e?n:e&&g[e]||n||e,m=()=>s&&(0,zt.kX)(s).then(e=>{(0,It.Ug)("meeting:"+s,e),o(e)}).catch(e=>{t(e.message||"加载失败"),h(!0)});if(n().useEffect(()=>{s&&o((0,It.ze)("meeting:"+s)||null),m()},[s]),!i)return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议详情",back:"meeting-attendee"}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:d?"会议信息加载失败":"加载中…"})})]});const f={accepted:0,pending:0,declined:0,tentative:0};(i.participants||[]).forEach(e=>{f[e.response]=(f[e.response]||0)+1});const x=i.organizer_id===r,j=e=>{c(!0),(0,zt.kX)(i.meeting_id).then(n=>(0,zt.NZ)(n.meeting_id,e,n.version)).then(n=>{t("accepted"===e?"已接受会议邀请":"declined"===e?"已拒绝会议邀请":"已标记为待定"),m()}).catch(e=>t(e.message||"操作失败")).finally(()=>c(!1))};return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议详情",back:"meeting-attendee"}),(0,vt.jsxs)("main",{className:"meeting-list",children:[(0,vt.jsxs)("article",{className:"meeting-card",children:[(0,vt.jsx)("header",{children:(0,vt.jsxs)("span",{children:[(0,vt.jsxs)("small",{children:[hl(new Date(i.start_at))," ",ul(new Date(i.start_at))]}),(0,vt.jsxs)("strong",{children:["会议主题:",i.title]})]})}),(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"发起人"}),(0,vt.jsx)("dd",{children:p(i.organizer_id,i.organizer&&i.organizer.display_name||i.organizer_display_name)})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"时间"}),(0,vt.jsxs)("dd",{children:[hl(new Date(i.start_at))," ",ul(new Date(i.start_at))," - ",ul(new Date(i.end_at))]})]}),i.location?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"地点"}),(0,vt.jsx)("dd",{children:i.location})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"会议时间"}),(0,vt.jsx)("dd",{children:Nl(i.start_at,i.end_at)})]})]}),(0,vt.jsx)("ul",{className:"meeting-participant-list",children:(i.participants||[]).map(e=>(0,vt.jsxs)("li",{children:[(0,vt.jsx)("span",{children:p(e.user_id,e.display_name)}),(0,vt.jsx)("em",{className:e.response,children:Tl[e.response]||"待确认"})]},e.user_id))}),x||!i.permissions||!i.permissions.can_respond||i.my_response&&"pending"!==i.my_response?null:(0,vt.jsxs)("footer",{className:"meeting-response",children:[(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>j("declined"),children:"无法参加"}),(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>j("tentative"),children:"待定"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:l,onClick:()=>j("accepted"),children:"接受"})]})]}),x?(0,vt.jsxs)("section",{className:"meeting-status",children:[(0,vt.jsx)("h2",{children:"参会确认"}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.accepted}),(0,vt.jsx)("small",{children:"已接受"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.pending}),(0,vt.jsx)("small",{children:"待响应"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.declined}),(0,vt.jsx)("small",{children:"已拒绝"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.tentative}),(0,vt.jsx)("small",{children:"待定"})]})]}),(0,vt.jsxs)("footer",{children:[i.permissions&&i.permissions.can_remind?(0,vt.jsxs)("button",{type:"button",disabled:l,onClick:()=>{c(!0),(0,zt.fi)(i.meeting_id).then(e=>t("已提醒未响应成员")).catch(e=>t(e.message||"提醒失败")).finally(()=>c(!1))},children:[(0,vt.jsx)(rl,{children:"notifications"}),"提醒未响应"]}):null,i.permissions&&i.permissions.can_cancel&&"canceled"!==i.state?(0,vt.jsx)("button",{type:"button",className:"danger",disabled:l,onClick:()=>{c(!0),(0,zt.kX)(i.meeting_id).then(e=>(0,zt.E5)(e.meeting_id,e.version)).then(e=>{t("会议已取消"),m()}).catch(e=>t(e.message||"取消失败")).finally(()=>c(!1))},children:"取消会议"}):null]})]}):null]})]})}function Ml({myUserId:e,tinode:t,onToast:s}){const[i,o]=n().useState(""),[a,r]=n().useState(gl(new Date)),[l,c]=n().useState(""),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(""),[f,x]=n().useState([]),[j,b]=n().useState([]),[y,w]=n().useState({}),[v,k]=n().useState(!1);n().useEffect(()=>{const e=window.setTimeout(()=>{(0,zt.RH)({query:p}).then(e=>x(e.members||e.items||[])).catch(()=>x([]))},300);return()=>window.clearTimeout(e)},[p]);const C=e=>{b(n=>n.includes(e)?n.filter(n=>n!=e):n.concat(e));const n=f.find(n=>n.user_id===e);n&&w(t=>({...t,[e]:n.display_name}))},z=f.map(e=>({user:e.user_id,public:{fn:e.display_name}}));return(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"发起会议",back:"meeting-attendee"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"会议主题"]}),(0,vt.jsx)("input",{type:"text",value:i,maxLength:"80",onChange:e=>o(e.target.value),placeholder:"请输入会议主题"})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"日期"]}),(0,vt.jsx)("input",{type:"date",value:a,onChange:e=>r(e.target.value)})]}),(0,vt.jsxs)("div",{className:"meeting-time-range",children:[(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"开始时间"]}),(0,vt.jsx)("input",{type:"time",value:l,onChange:e=>c(e.target.value)})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"结束时间"]}),(0,vt.jsx)("input",{type:"time",value:d,onChange:e=>h(e.target.value)})]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"地点"}),(0,vt.jsx)("input",{type:"text",value:u,maxLength:"60",onChange:e=>g(e.target.value),placeholder:"请输入会议地点(可选)"})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"参会人"]}),(0,vt.jsx)("input",{type:"text",value:p,onChange:e=>m(e.target.value),placeholder:"搜索姓名添加参会人"})]}),j.length?(0,vt.jsx)("div",{className:"meeting-selected-attendees",children:j.map(e=>(0,vt.jsxs)("span",{children:[y[e]||e,(0,vt.jsx)("i",{className:"material-icons",onClick:()=>C(e),children:"close"})]},e))}):null,t?(0,vt.jsx)(qt.A,{tinode:t,contacts:z,myUserId:e,emptyListMessage:"搜索同事姓名",showOnline:!1,showUnread:!1,showContextMenu:!1,topicSelected:j,onTopicSelected:C}):null]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:v,onClick:()=>{if(!(i.trim()&&a&&l&&d&&0!==j.length))return void s("请完善会议主题、时间与参会人");const e=new Date(`${a}T${l}:00`).toISOString(),n=new Date(`${a}T${d}:00`).toISOString();n<=e?s("结束时间需晚于开始时间"):(k(!0),(0,zt.qr)({title:i.trim(),start_at:e,end_at:n,location:u.trim(),attendee_user_ids:j}).then(e=>{s("会议已发起"),il("meeting-attendee")}).catch(e=>s(e.details&&"end_at"===e.details.field?"结束时间需晚于开始时间":e.message||"发起会议失败")).finally(()=>k(!1)))},children:v?"发起中…":"发起会议"})})]})}function Al({myUserId:e}){const[t,s]=n().useState(""),[i,o]=n().useState(null),[a,r]=n().useState(()=>(0,It.ze)("org-roots")||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),u=n().useCallback(()=>{c(!1),(0,zt.v)("root").then(e=>{const n=e.departments||e.items||[];(0,It.Ug)("org-roots",n),r(n)}).catch(()=>{r(e=>e||[]),c(!0)})},[]);return n().useEffect(()=>{u();try{const e=JSON.parse(window.localStorage.getItem("im-tenant")||"{}");h(e.name||"")}catch(e){}},[]),n().useEffect(()=>{if(!t.trim())return void o(null);const e=window.setTimeout(()=>{(0,zt.oI)(t).then(e=>o(e.items||[])).catch(()=>o([]))},300);return()=>window.clearTimeout(e)},[t]),(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"部门组织框架",back:"workbench"}),(0,vt.jsxs)("main",{className:"organization-content",children:[(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:t,onChange:e=>s(e.target.value),placeholder:"搜索成员或部门"})]}),i?(0,vt.jsx)("section",{className:"organization-tree",children:0===i.length?(0,vt.jsx)("p",{className:"organization-loading",children:"未找到匹配的成员"}):i.map((n,t)=>"department"===n.type?(0,vt.jsx)(zl,{dept:n.department},"d"+(n.department&&n.department.department_id||t)):(0,vt.jsx)(_l,{person:n.user,depth:0,level:3,isMe:!(!n.user||!kl(n.user.user_id,e))},"u"+(n.user&&n.user.user_id||t)))}):(0,vt.jsx)("section",{className:"organization-tree",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===a.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?(0,vt.jsxs)(vt.Fragment,{children:["加载失败 ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),u()},children:"重试"})]}):"暂无组织架构数据"}):a.map(n=>(0,vt.jsx)(Sl,{dept:n,depth:0,myUserId:e},n.department_id))})]})]})}function El(e){return e.filter(e=>e.content.trim()).map(e=>(e.start&&e.end?`${e.start}-${e.end}\n`:"")+e.content.trim()).join("\n\n")}function Il({onToast:e}){const t=gl(new Date),s="daily-report-editor:"+t,i=(0,It.ze)(s),[o,a]=n().useState(i?i.reportId:null),[r,l]=n().useState(i?i.version:null),c=n().useRef(i?i.version:null),d=e=>{c.current=e,l(e)},[h,u]=n().useState(i?i.blocks:[{start:"",end:"",content:""}]),[g,p]=n().useState(!1),[m,f]=n().useState(!1),[x,j]=n().useState(!1),b=n().useRef(Promise.resolve()),y=n().useRef(null),w=n().useCallback(e=>{const n=b.current.then(()=>(0,zt.aY)(o,El(e),c.current,[]).then(n=>(d(n.version),p(!0),f(!1),(0,It.Ug)(s,{reportId:o,version:n.version,blocks:e}),n)));return b.current=n.catch(()=>{}),n},[o]);n().useEffect(()=>{(0,zt.S)(t).then(e=>{if(e.permissions&&!1===e.permissions.can_edit)return void il("daily-report-detail",{report_id:e.report_id});const n=e.content?[{start:"",end:"",content:e.content}]:[{start:"",end:"",content:""}];a(e.report_id),d(e.version),u(n),(0,It.Ug)(s,{reportId:e.report_id,version:e.version,blocks:n})}).catch(n=>e(n.message||"创建日报失败"))},[]),n().useEffect(()=>{if(o)return p(!1),y.current=window.setTimeout(()=>{y.current=null,w(h).catch(()=>f(!0))},600),()=>window.clearTimeout(y.current)},[h,o,w]);const v=(e,n,t)=>u(s=>s.map((s,i)=>i===e?{...s,[n]:t}:s));return(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"日报",back:"daily-report-mine"}),(0,vt.jsxs)("main",{children:[h.map((e,n)=>(0,vt.jsxs)("section",{className:"daily-report-block",children:[(0,vt.jsxs)("div",{className:"daily-report-block-header",children:[(0,vt.jsx)("strong",{children:"日报"}),h.length>1?(0,vt.jsx)("button",{type:"button",onClick:()=>(e=>u(n=>n.length>1?n.filter((n,t)=>t!==e):n))(n),"aria-label":"删除",children:(0,vt.jsx)(rl,{children:"close"})}):null]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"起止时间"}),(0,vt.jsx)("small",{className:"daily-report-date",children:hl(new Date(t))}),(0,vt.jsxs)("div",{className:"meeting-time-range",children:[(0,vt.jsx)("input",{type:"time",value:e.start,onChange:e=>v(n,"start",e.target.value)}),(0,vt.jsx)("span",{children:"至"}),(0,vt.jsx)("input",{type:"time",value:e.end,onChange:e=>v(n,"end",e.target.value)})]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"今日工作总结"}),(0,vt.jsx)("textarea",{value:e.content,maxLength:"1000",placeholder:"请输入",onChange:e=>v(n,"content",e.target.value)}),(0,vt.jsxs)("small",{children:[e.content.length,"/1000"]})]})]},n)),(0,vt.jsxs)("button",{type:"button",className:"daily-report-add-block",onClick:()=>u(e=>e.concat({start:"",end:"",content:""})),children:[(0,vt.jsx)(rl,{children:"add"}),"添加时间段"]}),(0,vt.jsx)("p",{className:"report-draft-status",children:m?"草稿保存失败,请检查网络后重新编辑":g?"草稿已自动保存":"正在保存草稿…"})]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:x||!o,onClick:()=>{El(h).trim()?(j(!0),y.current&&(window.clearTimeout(y.current),y.current=null),w(h).then(e=>(0,zt.Zo)(o,e.version)).then(n=>{e("日报已提交"),window.setTimeout(()=>il("daily-report-detail",{report_id:o}),500)}).catch(n=>e(n.message||"提交失败")).finally(()=>j(!1))):e("请填写今日工作总结")},children:x?"提交中…":"提交"})})]})}const Dl={submitted:"已提交",draft:"未提交"};function Ul({report:e,names:n,team:t}){return(0,vt.jsxs)("article",{children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n[e.author_id]||e.author_id}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:e.status,children:Dl[e.status]||e.status})]}),(0,vt.jsx)("p",{children:e.content_short||"(未填写内容)"}),(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)(rl,{children:"schedule"}),e.report_date]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>il("daily-report-detail",{report_id:e.report_id,team:t?"1":""}),children:["查看详情",(0,vt.jsx)(rl,{children:"chevron_right"})]})]})]})}function Rl({team:e,myUserId:t,onToast:s}){const i="daily-reports:"+(e?"managed":"mine"),o="daily-stats:"+gl(new Date),[a,r]=n().useState(()=>(0,It.ze)(i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),[u,g]=n().useState(()=>e&&(0,It.ze)(o)||null),p=ml((a||[]).map(e=>e.author_id),t);n().useEffect(()=>{c(!1),(0,zt.zY)({scope:e?"managed":"mine"}).then(e=>{const n=e.reports||e.items||[];(0,It.Ug)(i,n),r(n)}).catch(e=>{s(e.message||"日报列表加载失败"),c(!0),r(e=>e||[])}),e&&(0,zt.lB)(gl(new Date)).then(e=>{(0,It.Ug)(o,e),g(e)}).catch(()=>{})},[e]);const m=(a||[]).filter(n=>(e?`${p[n.author_id]||""}${n.content_short||""}`:n.report_date).includes(d));return(0,vt.jsxs)("div",{className:"workplace-page report-list-page",children:[(0,vt.jsx)(ll,{title:"日报",action:"add",actionLabel:"填写日报",onAction:()=>il("daily-report-editor"),back:e?"daily-report-mine":"workbench"}),(0,vt.jsxs)("main",{children:[e&&u?(0,vt.jsxs)("section",{className:"report-statistics",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("small",{children:hl(new Date)}),(0,vt.jsx)("strong",{children:"全公司"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("daily-report-mine"),children:"我的日报"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.expected_count||0}),(0,vt.jsx)("small",{children:"应提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.submitted_count||0}),(0,vt.jsx)("small",{children:"已提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:(u.expected_count||0)-(u.submitted_count||0)}),(0,vt.jsx)("small",{children:"未提交"})]})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=(n,t)=>(0,zt.RH)({cursor:n,limit:100}).then(n=>{const s=t.concat((n.items||[]).map(e=>e.user_id));return n.has_more&&n.next_cursor?e(n.next_cursor,s):s});e("",[]).then(e=>{if(e.length)return(0,zt.lD)(gl(new Date),e).then(e=>s("已提醒未提交成员"));s("组织架构里没有可提醒的成员")}).catch(e=>s(e.message||"提醒失败"))},children:[(0,vt.jsx)(rl,{children:"notifications_active"}),"提醒未提交成员"]})]}):null,(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:d,onChange:e=>h(e.target.value),placeholder:e?"搜索姓名或内容":"搜索日期"})]}),e?null:(0,vt.jsxs)("nav",{className:"report-role-switch",children:[(0,vt.jsx)("button",{type:"button",className:"active",children:"我的日报"}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("daily-report-team"),children:"团队统计"})]}),(0,vt.jsx)("section",{className:"report-cards",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===m.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?"日报列表加载失败":"暂无日报"}):m.map(n=>(0,vt.jsx)(Ul,{report:n,names:p,team:e},n.report_id))})]})]})}function Ll({hashParams:e,myUserId:t,onToast:s}){const i=e&&e.report_id,o=e&&e.team?"daily-report-team":"daily-report-mine",[a,r]=n().useState(()=>i&&(0,It.ze)("daily-report:"+i)||null),[l,c]=n().useState(!1),d=ml(a?[a.author_id]:[],t);return n().useEffect(()=>{i&&(r((0,It.ze)("daily-report:"+i)||null),(0,zt.ap)(i).then(e=>{(0,It.Ug)("daily-report:"+i,e),r(e)}).catch(e=>{s(e.message||"日报加载失败"),c(!0)}))},[i]),a?(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsxs)("main",{className:"report-detail",children:[(0,vt.jsxs)("section",{className:"report-author",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:d[a.author_id]||"…"}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:a.status,children:Dl[a.status]||a.status})]}),(0,vt.jsx)("section",{children:(0,vt.jsxs)("small",{children:[(0,vt.jsx)(rl,{children:"schedule"}),a.report_date]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"今日工作总结"}),(0,vt.jsx)("p",{children:a.content||"未填写"})]})]})]}):(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:l?"日报加载失败":"加载中…"})})]})}function Ol(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}`}function Fl(e){const[n,t]=e.split("-");return`${n} 年 ${parseInt(t,10)} 月`}function $l({onToast:e}){const t=Ol(new Date),s="monthly-report-editor:"+t,i=(0,It.ze)(s),[o,a]=n().useState(i?i.reportId:null),[r,l]=n().useState(i?i.version:null),c=n().useRef(i?i.version:null),d=e=>{c.current=e,l(e)},[h,u]=n().useState(i?i.summary:""),[g,p]=n().useState(i?i.plan:""),[m,f]=n().useState(1e3),[x,j]=n().useState(!i),[b,y]=n().useState(!1),[w,v]=n().useState(!1),[k,C]=n().useState(!1),z=n().useRef(Promise.resolve()),_=n().useRef(null),S=n().useCallback((e,n)=>{const t=z.current.then(()=>(0,zt.ae)(o,e,n,c.current,[]).then(t=>(d(t.version),y(!0),v(!1),(0,It.Ug)(s,{reportId:o,version:t.version,summary:e,plan:n}),t)));return z.current=t.catch(()=>{}),t},[o]);return n().useEffect(()=>{(0,zt.aE)(t).then(e=>{if(e.permissions&&!1===e.permissions.can_edit)return void il("monthly-report-detail",{report_id:e.report_id});const n=e.work_summary||"",t=e.next_plan||"";a(e.report_id),d(e.version),u(n),p(t),e.validation&&e.validation.max_length&&f(e.validation.max_length),(0,It.Ug)(s,{reportId:e.report_id,version:e.version,summary:n,plan:t}),j(!0)}).catch(n=>e(n.message||"创建月报失败"))},[]),n().useEffect(()=>{if(o&&x)return y(!1),_.current=window.setTimeout(()=>{_.current=null,S(h,g).catch(()=>v(!0))},600),()=>window.clearTimeout(_.current)},[h,g,o,x,S]),(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"月报",back:"monthly-report-mine"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("section",{className:"daily-report-block-header",children:(0,vt.jsx)("strong",{children:"月报汇总"})}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"本月工作总结"]}),(0,vt.jsx)("textarea",{value:h,maxLength:m,placeholder:"请输入",onChange:e=>u(e.target.value)}),(0,vt.jsxs)("small",{children:[h.length,"/",m]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"下月工作计划"]}),(0,vt.jsx)("textarea",{value:g,maxLength:m,placeholder:"请输入",onChange:e=>p(e.target.value)}),(0,vt.jsxs)("small",{children:[g.length,"/",m]})]}),(0,vt.jsx)("p",{className:"report-draft-status",children:w?"草稿保存失败,请检查网络后重新编辑":b?"草稿已自动保存":"正在保存草稿…"})]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:k||!o,onClick:()=>{h.trim()&&g.trim()?(C(!0),_.current&&(window.clearTimeout(_.current),_.current=null),S(h,g).then(e=>(0,zt.ig)(o,e.version)).then(n=>{e("月报已提交"),window.setTimeout(()=>il("monthly-report-detail",{report_id:o}),500)}).catch(n=>e(n.message||"提交失败")).finally(()=>C(!1))):e("请完成必填内容")},children:k?"提交中…":"提交"})})]})}function Vl({team:e,myUserId:t,onToast:s}){const i="monthly-reports:"+(e?"managed":"mine"),o="monthly-stats:"+Ol(new Date),[a,r]=n().useState(()=>(0,It.ze)(i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),[u,g]=n().useState(()=>e&&(0,It.ze)(o)||null),p=ml((a||[]).map(e=>e.author_id),t);n().useEffect(()=>{c(!1),(0,zt.xn)({scope:e?"managed":"mine"}).then(e=>{const n=e.reports||e.items||[];(0,It.Ug)(i,n),r(n)}).catch(e=>{s(e.message||"月报列表加载失败"),c(!0),r(e=>e||[])}),e&&(0,zt.nW)(Ol(new Date)).then(e=>{(0,It.Ug)(o,e),g(e)}).catch(()=>{})},[e]);const m=(a||[]).filter(n=>((e?`${p[n.author_id]||""}${n.work_summary_short||""}`:n.month)||"").includes(d));return(0,vt.jsxs)("div",{className:"workplace-page report-list-page",children:[(0,vt.jsx)(ll,{title:"月报",action:"add",actionLabel:"填写月报",onAction:()=>il("monthly-report-editor"),back:e?"monthly-report-mine":"workbench"}),(0,vt.jsxs)("main",{children:[e&&u?(0,vt.jsxs)("section",{className:"report-statistics",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("small",{children:Fl(Ol(new Date))}),(0,vt.jsx)("strong",{children:"全公司"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("monthly-report-mine"),children:"我的月报"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.expected_count||0}),(0,vt.jsx)("small",{children:"应提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.submitted_count||0}),(0,vt.jsx)("small",{children:"已提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:(u.expected_count||0)-(u.submitted_count||0)}),(0,vt.jsx)("small",{children:"未提交"})]})]})]}):null,(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:d,onChange:e=>h(e.target.value),placeholder:e?"搜索姓名或内容":"搜索月份或内容"})]}),e?null:(0,vt.jsxs)("nav",{className:"report-role-switch",children:[(0,vt.jsx)("button",{type:"button",className:"active",children:"我的月报"}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("monthly-report-team"),children:"团队统计"})]}),(0,vt.jsx)("section",{className:"report-cards",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===m.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?"月报列表加载失败":"暂无月报"}):m.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>il("view"===(n.action||("submitted"===n.status?"view":"edit"))?"monthly-report-detail":"monthly-report-editor",{report_id:n.report_id,team:e?"1":""}),children:[(0,vt.jsx)("span",{className:"report-month",children:(0,vt.jsx)(rl,{children:"calendar_month"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e?p[n.author_id]||n.author_id:Fl(n.month)}),(0,vt.jsx)("small",{children:e?Fl(n.month):"工作总结与下月计划"})]}),(0,vt.jsx)("em",{className:n.status,children:Dl[n.status]||n.status}),(0,vt.jsx)(rl,{children:"chevron_right"})]},n.report_id))})]})]})}function Hl({hashParams:e,myUserId:t,onToast:s}){const i=e&&e.report_id,o=e&&e.team?"monthly-report-team":"monthly-report-mine",[a,r]=n().useState(()=>i&&(0,It.ze)("monthly-report:"+i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(!1),u=ml(a?[a.author_id]:[],t);if(n().useEffect(()=>{i&&(r((0,It.ze)("monthly-report:"+i)||null),(0,zt.er)(i).then(e=>{(0,It.Ug)("monthly-report:"+i,e),r(e)}).catch(e=>{s(e.message||"月报加载失败"),c(!0)}))},[i]),!a)return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:l?"月报加载失败":"加载中…"})})]});const g=a.author_id===t&&"submitted"===a.status;return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsxs)("main",{className:"report-detail",children:[(0,vt.jsxs)("section",{className:"report-author",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:u[a.author_id]||"…"}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:a.status,children:Dl[a.status]||a.status})]}),(0,vt.jsx)("section",{children:(0,vt.jsxs)("small",{children:[(0,vt.jsx)(rl,{children:"schedule"}),Fl(a.month)]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"本月工作总结"}),(0,vt.jsx)("p",{children:a.work_summary||"未填写"})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"下月工作计划"}),(0,vt.jsx)("p",{children:a.next_plan||"未填写"})]}),g?(0,vt.jsx)("section",{children:(0,vt.jsx)("button",{type:"button",className:"workplace-primary",disabled:d,onClick:()=>{h(!0),(0,zt.DU)(a.report_id,a.version).then(()=>{s("已重新打开,可继续编辑"),il("monthly-report-editor")}).catch(e=>s(e.message||"重新打开失败")).finally(()=>h(!1))},children:d?"处理中…":"重新编辑"})}):null]})]})}function Wl(e){const n=e.trim().split("\n")[0];return n.length>30?n.slice(0,30)+"…":n}function Kl({tinode:e,noticeOnly:t,onToast:s}){const[i,o]=n().useState(()=>(0,It.ze)("executive-mailbox-config")||null),[a,r]=n().useState(""),[l,c]=n().useState(null),[d,h]=n().useState([]),[u,g]=n().useState(!1),[p,m]=n().useState(!1),[f,x]=n().useState(!!t),j=n().useRef(null);n().useEffect(()=>{(0,zt.lL)().then(e=>{(0,It.Ug)("executive-mailbox-config",e),o(e)}).catch(()=>o(e=>e||{enabled:!1}))},[]);const b=i&&i.attachment_policy||{},y=b.max_files||b.max_count||5;return i&&!i.enabled?(0,vt.jsxs)("div",{className:"workplace-page mailbox-page",children:[(0,vt.jsx)(ll,{title:"总经理信箱",back:"workbench"}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:"总经理信箱当前不可用"})})]}):(0,vt.jsxs)("div",{className:"workplace-page mailbox-page",children:[(0,vt.jsx)(ll,{title:"总经理信箱",back:"workbench",action:i&&i.notice?"info_outline":null,actionLabel:"查看使用说明",onAction:()=>x(!0)}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"mailbox-content",children:[(0,vt.jsx)("span",{children:"反馈内容"}),(0,vt.jsx)("textarea",{value:a,maxLength:i&&i.max_length||1e3,placeholder:"请输入",onChange:e=>r(e.target.value)}),(0,vt.jsxs)("small",{children:[a.length,"/",i&&i.max_length||1e3]})]}),(0,vt.jsxs)("span",{children:["附件(",d.length,"/",y,")"]}),(0,vt.jsxs)("button",{type:"button",className:"mailbox-upload",onClick:()=>{d.length>=y?s(`最多上传 ${y} 个附件`):j.current&&j.current.click()},disabled:u||d.length>=y,children:[(0,vt.jsx)(rl,{children:u?"hourglass_top":"upload_file"}),(0,vt.jsx)("span",{children:u?"上传中…":"上传文件"})]}),(0,vt.jsx)("input",{ref:j,type:"file",style:{display:"none"},onChange:n=>{const t=n.target.files&&n.target.files[0];n.target.value="",t&&e&&(d.length>=y?s(`最多上传 ${y} 个附件`):(g(!0),(0,zt.rD)(e,t).then(({fileId:e})=>{h(n=>n.concat({fileId:e,name:t.name}))}).catch(e=>s(e.message||"附件上传失败")).finally(()=>g(!1))))}}),d.length?(0,vt.jsx)("ul",{className:"mailbox-attachment-list",children:d.map((e,n)=>(0,vt.jsxs)("li",{children:[e.name,(0,vt.jsx)("i",{className:"material-icons",onClick:()=>h(e=>e.filter((e,t)=>t!==n)),children:"close"})]},e.fileId))}):null,(0,vt.jsx)("button",{type:"button",className:"workplace-primary",disabled:p||null==i,onClick:()=>{a.trim()?i&&i.allow_anonymous&&!l?s("请选择实名反馈或匿名反馈"):(m(!0),(0,zt.uv)({subject:Wl(a),content:a.trim(),anonymous:"anonymous"===l,attachment_file_ids:d.map(e=>e.fileId)}).then(e=>{s("反馈成功"),r(""),h([]),c(null)}).catch(e=>s(e.message||"提交失败")).finally(()=>m(!1))):s("请填写反馈内容")},children:p?"提交中…":"提交"}),(0,vt.jsxs)("div",{className:"mailbox-anonymous-choice",children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("input",{type:"radio",name:"mailbox-anon",checked:"named"===l,onChange:()=>c("named")}),(0,vt.jsx)("span",{children:"实名反馈"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("input",{type:"radio",name:"mailbox-anon",checked:"anonymous"===l,onChange:()=>c("anonymous"),disabled:i&&!i.allow_anonymous}),(0,vt.jsx)("span",{children:"匿名反馈"})]})]})]}),f&&i&&i.notice?(0,vt.jsx)("div",{className:"mailbox-notice-backdrop",children:(0,vt.jsxs)("section",{role:"dialog","aria-modal":"true",className:"mailbox-notice-dialog",children:[(0,vt.jsx)(rl,{children:"policy"}),(0,vt.jsx)("h2",{children:i.notice.title||"信箱使用与隐私说明"}),(0,vt.jsx)("p",{children:i.notice.content}),(0,vt.jsx)("button",{type:"button",onClick:()=>{x(!1),t&&il("executive-mailbox")},children:"我已了解"})]})}):null]})}function Xl({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o}){const[a,r]=n().useState("");let l;return l="workbench"===e?(0,vt.jsx)(bl,{onToast:r}):"organization-directory"===e?(0,vt.jsx)(Al,{myUserId:s}):"meeting-organizer"===e||"meeting-attendee"===e?(0,vt.jsx)(Pl,{onToast:r}):"meeting-create"===e?(0,vt.jsx)(Ml,{myUserId:s,tinode:i,onToast:r}):"meeting-detail"===e?(0,vt.jsx)(ql,{hashParams:t,onToast:r}):"daily-report-editor"===e?(0,vt.jsx)(Il,{onToast:r}):"monthly-report-editor"===e?(0,vt.jsx)($l,{onToast:r}):"daily-report-mine"===e||"daily-report-team"===e?(0,vt.jsx)(Rl,{team:"daily-report-team"===e,myUserId:s,onToast:r}):"monthly-report-mine"===e||"monthly-report-team"===e?(0,vt.jsx)(Vl,{team:"monthly-report-team"===e,myUserId:s,onToast:r}):"daily-report-detail"===e?(0,vt.jsx)(Ll,{hashParams:t,myUserId:s,onToast:r}):"monthly-report-detail"===e?(0,vt.jsx)(Hl,{hashParams:t,myUserId:s,onToast:r}):(0,vt.jsx)(Kl,{tinode:i,noticeOnly:"executive-mailbox-notice"===e,onToast:r}),(0,vt.jsxs)(vt.Fragment,{children:[l,(0,vt.jsx)(cl,{message:a,onDone:()=>r("")})]})}const Gl=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},Jl=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateReplace(t)},Yl=["personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info"];function Zl({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Ql({title:e,back:n="personal-center",action:t,actionLabel:s,onAction:i,actionDisabled:o}){return(0,vt.jsxs)("header",{className:"personal-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||Gl(n)},"aria-label":"返回",children:(0,vt.jsx)(Zl,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),t?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,disabled:o,children:s||t}):(0,vt.jsx)("span",{})]})}function ec({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2100);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"personal-toast",role:"status",children:e}):null}function nc({checked:e,disabled:n,onChange:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:n,className:"personal-switch"+(e?" checked":""),onClick:()=>t(!e),children:(0,vt.jsx)("i",{})})}function tc({icon:e,title:n,value:t,route:s,onClick:i,danger:o}){return(0,vt.jsxs)("button",{type:"button",className:"personal-menu-row"+(o?" danger":""),onClick:i||(()=>s&&Gl(s)),children:[e?(0,vt.jsx)(Zl,{children:e}):null,(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n}),t?(0,vt.jsx)("small",{children:t}):null]}),s||i?(0,vt.jsx)(Zl,{children:"chevron_right"}):null]})}function sc(){try{return JSON.parse(window.localStorage.getItem("im-tenant")||"{}").name||""}catch(e){return""}}function ic({fileId:e,className:t}){const[s,i]=n().useState(null);return n().useEffect(()=>{let n=!0;return(0,zt.w8)(e).then(e=>n&&i(e)).catch(()=>{}),()=>{n=!1}},[e]),s?(0,vt.jsx)("img",{className:t,src:s,alt:""}):(0,vt.jsx)("span",{className:t})}function oc(){const[e]=(0,It.sK)("me-profile",zt.w,[]);return(0,vt.jsxs)("div",{className:"personal-page personal-center-page",children:[(0,vt.jsx)(Ql,{title:"我的",back:"messages-home"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("button",{type:"button",className:"personal-identity",onClick:()=>Gl("personal-profile"),children:[e&&e.avatar_file_id?(0,vt.jsx)(ic,{fileId:e.avatar_file_id}):(0,vt.jsx)("span",{className:"personal-avatar-fallback",children:(0,vt.jsx)(Zl,{children:"person"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e&&(e.nickname||e.public_account)||"…"}),(0,vt.jsxs)("small",{children:["企业名称:",sc()||"…"]}),(0,vt.jsxs)("small",{children:["ID: ",e&&e.public_account||"…"]})]}),(0,vt.jsx)(Zl,{children:"chevron_right"})]}),(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{icon:"qr_code",title:"我的二维码",route:"personal-qrcode"})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"bookmark_border",title:"我的收藏",route:"favorites"}),(0,vt.jsx)(tc,{icon:"report_problem",title:"关于我们",route:"app-version"}),(0,vt.jsx)(tc,{icon:"feedback",title:"意见反馈",route:"user-feedback"}),(0,vt.jsx)(tc,{icon:"settings",title:"设置",route:"android-settings"})]})]})]})}function ac({onToast:e,tinode:t}){const[s,i]=n().useState(()=>(0,It.ze)("me-profile")||null),o=n().useRef(null),[a,r]=n().useState(!1),l=()=>(0,zt.w)().then(e=>{(0,It.Ug)("me-profile",e),i(e)}).catch(()=>{});n().useEffect(()=>{l()},[]);const c={male:"男",female:"女",other:"其他"}[s&&s.gender]||"未设置";return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"个人信息"}),(0,vt.jsxs)("main",{className:"personal-profile-list",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>o.current&&o.current.click(),disabled:a,children:[(0,vt.jsx)("strong",{children:"头像"}),s&&s.avatar_file_id?(0,vt.jsx)(ic,{fileId:s.avatar_file_id}):(0,vt.jsx)(Zl,{children:"person"}),(0,vt.jsx)(Zl,{children:"chevron_right"})]}),(0,vt.jsx)("input",{ref:o,type:"file",accept:"image/*",style:{display:"none"},onChange:n=>{const i=n.target.files&&n.target.files[0];n.target.value="",i&&t&&(r(!0),(0,zt.rD)(t,i).then(({fileId:e})=>(0,zt.VX)({avatar_file_id:e,version:s.version})).then(l).then(()=>e("头像已更新")).catch(n=>e(n.message||"头像上传失败")).finally(()=>r(!1)))}}),(0,vt.jsx)(tc,{title:"昵称",value:s&&(s.nickname||"未设置"),route:"profile-nickname"}),(0,vt.jsx)(tc,{title:"性别",value:c,route:"profile-gender"}),(0,vt.jsx)(tc,{title:"出生日期",value:s&&s.birth_date||"未设置",route:"profile-birth-date"}),(0,vt.jsx)(tc,{title:"二维码名片",route:"personal-qrcode"}),(0,vt.jsx)(tc,{title:"地区",value:s&&s.region||"未设置",route:"profile-region"}),(0,vt.jsx)(tc,{title:"个性签名",value:s&&s.signature||"此人很懒什么都没留下~",route:"profile-signature"})]})]})}const rc={nickname:32,signature:120};function lc({field:e,multiline:t,title:s,onToast:i}){const[o,a]=n().useState(null),[r,l]=n().useState(""),[c,d]=n().useState(!1);n().useEffect(()=>{(0,zt.w)().then(n=>{a(n),l(n[e]||"")}).catch(()=>{})},[e]);const h=rc[e];return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:s,back:"personal-profile",action:"完成",onAction:()=>{const n=r.trim();"nickname"!==e||n?(d(!0),(0,zt.VX)({[e]:n,version:o.version}).then(e=>{i("资料已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(e=>i(e.message||"保存失败")).finally(()=>d(!1))):i("昵称不能为空")},actionDisabled:!o||c}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{children:[t?(0,vt.jsx)("textarea",{value:r,maxLength:h,autoFocus:!0,placeholder:"请输入……",onChange:e=>l(e.target.value)}):(0,vt.jsx)("input",{value:r,maxLength:h,autoFocus:!0,onChange:e=>l(e.target.value)}),(0,vt.jsxs)("small",{children:[r.length,"/",h]}),r?(0,vt.jsx)("button",{type:"button",onClick:()=>l(""),"aria-label":"清空",children:(0,vt.jsx)(Zl,{children:"cancel"})}):null]}),(0,vt.jsx)("p",{children:"nickname"===e?"昵称将展示在联系人资料和聊天页面中":"签名将展示在你的个人资料页"})]})]})}function cc({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState("");n().useEffect(()=>{(0,zt.w)().then(e=>{s(e),o(e.birth_date||"")}).catch(()=>{})},[]);const a=(new Date).toISOString().slice(0,10);return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"出生日期",back:"personal-profile",action:"完成",onAction:()=>{(0,zt.VX)({birth_date:i,version:t.version}).then(n=>{e("出生日期已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(n=>e(n.message||"保存失败"))},actionDisabled:!t}),(0,vt.jsxs)("main",{className:"birth-date-editor",children:[(0,vt.jsx)(Zl,{children:"cake"}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"选择出生日期"}),(0,vt.jsx)("input",{type:"date",value:i,max:a,min:"1900-01-01",onChange:e=>o(e.target.value)})]}),(0,vt.jsx)("p",{children:"出生日期的可见范围由隐私设置决定"})]})]})}const dc=[{value:"male",label:"男"},{value:"female",label:"女"},{value:"other",label:"其他"}];function hc({onToast:e}){const[t,s]=n().useState(null);return n().useEffect(()=>{(0,zt.w)().then(s).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"性别",back:"personal-profile"}),(0,vt.jsx)("main",{className:"gender-option-list",children:dc.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return s=n.value,void(0,zt.VX)({gender:s,version:t.version}).then(n=>{e("性别已更新"),window.setTimeout(()=>Gl("personal-profile"),400)}).catch(n=>e(n.message||"保存失败"));var s},disabled:!t,children:[(0,vt.jsx)("strong",{children:n.label}),t&&t.gender===n.value?(0,vt.jsx)(Zl,{children:"check"}):null]},n.value))})]})}function uc({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState("");return n().useEffect(()=>{(0,zt.w)().then(e=>{s(e),o(e.region||"")}).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"地区",back:"personal-profile",action:"完成",onAction:()=>{(0,zt.VX)({region:i.trim(),version:t.version}).then(n=>{e("地区已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(n=>e(n.message||"保存失败"))},actionDisabled:!t}),(0,vt.jsx)("main",{children:(0,vt.jsx)("label",{children:(0,vt.jsx)("input",{value:i,maxLength:60,autoFocus:!0,placeholder:"省份/城市",onChange:e=>o(e.target.value)})})})]})}function gc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-profile")||null),[i,o]=n().useState(null),a=n().useRef(null),r=()=>{(0,zt.jx)().then(o).catch(n=>e(n.message||"二维码生成失败"))};return n().useEffect(()=>{(0,zt.w)().then(e=>{(0,It.Ug)("me-profile",e),s(e)}).catch(()=>{}),r()},[]),n().useEffect(()=>{i&&a.current&&(a.current.innerHTML="",new(Ai())(a.current,{text:i.qr_payload||i.qr_token,width:210,height:210,correctLevel:Ai().CorrectLevel.M}))},[i]),(0,vt.jsxs)("div",{className:"personal-page personal-qr-page",children:[(0,vt.jsx)(Ql,{title:"我的二维码"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{className:"personal-qr-profile",children:[t&&t.avatar_file_id?(0,vt.jsx)(ic,{fileId:t.avatar_file_id}):(0,vt.jsx)(Zl,{children:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t&&t.nickname||t&&t.public_account}),(0,vt.jsx)("small",{children:sc()})]})]}),(0,vt.jsx)("div",{className:"personal-qrcode",ref:a}),(0,vt.jsx)("p",{children:"扫一扫上面的二维码,加我为好友"}),i&&i.expires_at?(0,vt.jsxs)("small",{children:["二维码将于 ",new Date(i.expires_at).toLocaleString()," 失效"]}):null]}),(0,vt.jsxs)("div",{className:"personal-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{r(),e("二维码已刷新")},children:[(0,vt.jsx)(Zl,{children:"refresh"}),(0,vt.jsx)("span",{children:"刷新"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&i?navigator.share({title:"我的名片",text:i.qr_payload||i.qr_token}).catch(()=>{}):e("当前环境不支持分享")},children:[(0,vt.jsx)(Zl,{children:"share"}),(0,vt.jsx)("span",{children:"分享"})]})]})]})]})}function pc({onToast:e,onLogout:t,tinode:s,chatList:i,onDeleteAccount:o}){const[a,r]=n().useState(()=>(0,It.ze)("youth-mode")||null),[l,c]=n().useState(()=>(0,It.ze)("me-realname")||null),[d,h]=n().useState(null);n().useEffect(()=>{(0,zt.K2)().then(e=>{(0,It.Ug)("youth-mode",e),r(e)}).catch(()=>{}),(0,zt.II)().then(e=>{(0,It.Ug)("me-realname",e),c(e)}).catch(()=>{})},[]);const u=a?a.enabled:null,g={verified:"已认证",pending:"审核中",rejected:"未通过"}[l?l.status:null]||"未认证";return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"设置"}),(0,vt.jsxs)("main",{className:"android-settings-list",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"delete_sweep",title:"清除缓存",onClick:()=>h("cache")}),(0,vt.jsx)(tc,{icon:"mark_chat_read",title:"清除所有聊天记录",onClick:()=>h("history")}),(0,vt.jsx)(tc,{icon:"password",title:"修改密码",route:"change-password"})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"lock_outline",title:"隐私设置",route:"privacy-settings"}),(0,vt.jsx)(tc,{icon:"block",title:"黑名单",route:"block-list"}),(0,vt.jsx)(tc,{icon:"child_care",title:"青少年模式",value:null==u?"…":u?"已开启":"未开启",route:u?"youth-mode-on":"youth-mode-off"}),(0,vt.jsx)(tc,{icon:"verified_user",title:"实名认证",value:g,route:"realname"}),(0,vt.jsx)(tc,{icon:"shield",title:"安全教育",route:"fraud-risk-warning"})]}),(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{icon:"no_accounts",title:"注销账号",onClick:()=>h("delete"),danger:!0})}),(0,vt.jsx)("button",{type:"button",className:"personal-logout",onClick:()=>h("logout"),children:"退出当前登录"})]}),"cache"===d?(0,vt.jsx)(xc,{onToast:e,onClose:()=>h(null)}):null,"history"===d?(0,vt.jsx)(jc,{onToast:e,tinode:s,chatList:i,onClose:()=>h(null)}):null,"delete"===d?(0,vt.jsx)(yc,{onToast:e,onDeleteAccount:o,onClose:()=>h(null)}):null,"logout"===d?(0,vt.jsx)(fc,{onToast:e,onLogout:t,onClose:()=>h(null)}):null]})}function mc({icon:e,title:n,body:t,confirmLabel:s="确认",confirmDanger:i=!0,busy:o,onConfirm:a,onCancel:r,children:l}){return(0,vt.jsx)("div",{className:"personal-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"personal-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)(Zl,{children:e}),(0,vt.jsx)("h2",{children:n}),(0,vt.jsx)("p",{children:t}),l,(0,vt.jsx)("button",{type:"button",className:i?"danger":"primary",disabled:o,onClick:a,children:o?"处理中…":s}),(0,vt.jsx)("button",{type:"button",onClick:r,disabled:o,children:"取消"})]})})}function fc({onLogout:e,onToast:n,onClose:t}){return(0,vt.jsx)(mc,{icon:"logout",title:"退出登录",body:"确定要退出当前登录吗?",onConfirm:()=>{t(),e?e():n("当前环境不支持退出登录")},onCancel:t})}function xc({onToast:e,onClose:t}){const[s,i]=n().useState(!1),[o,a]=n().useState(!1),[r,l]=n().useState(0);return(0,vt.jsx)(mc,{icon:o?"check_circle":"delete_sweep",title:o?"缓存已清理":"清空缓存",body:o?`已释放约 ${(r/1048576).toFixed(1)} MB 存储空间。`:"确定清空本地的缓存数据?将清除缩略图、临时文件和可重新下载的数据,不会删除聊天记录、收藏或登录信息。",confirmLabel:o?"完成":"确定",confirmDanger:!o,busy:s,onConfirm:o?t:async()=>{i(!0);try{let e=0;if("undefined"!=typeof caches){const n=await caches.keys();for(const t of n){const n=await caches.open(t),s=await n.keys();for(const t of s){const s=await n.match(t);s&&(e+=(await s.clone().blob().catch(()=>null))?.size||0)}}await Promise.all(n.map(e=>caches.delete(e)))}l(e),a(!0)}catch(n){e(n.message||"清理失败,请重试")}finally{i(!1)}},onCancel:t})}function jc({tinode:e,chatList:t,onToast:s,onClose:i}){const[o,a]=n().useState(!1);return(0,vt.jsx)(mc,{icon:"mark_chat_read",title:"清除所有聊天记录",body:"确定清除所有聊天记录?此操作不可恢复,但不会影响好友/群聊关系和收藏内容。",busy:o,onConfirm:()=>{if(!e||!t||!t.length)return s("没有可清除的会话"),void i();a(!0),Promise.all(t.map(n=>{const t=e.getTopic(n.name);return t?t.delMessagesAll(!1).catch(()=>{}):Promise.resolve()})).then(()=>{s("聊天记录已清空"),i()}).finally(()=>a(!1))},onCancel:i})}function bc({onUpdatePassword:e,onToast:t}){const[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(""),[c,d]=n().useState(!1);return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"修改密码",back:"android-settings",action:"完成",actionLabel:c?"处理中…":"完成",actionDisabled:c,onAction:()=>{!s||o.length<6?t("请输入原密码,新密码至少6位"):o===r?e?c||(d(!0),Promise.resolve(e(o)).then(()=>{t("密码已更新"),window.setTimeout(()=>Gl("android-settings"),500)}).catch(e=>{t(e&&e.message||"修改失败,请重试"),d(!1)})):t("当前环境不支持修改密码"):t("两次输入的新密码不一致")}}),(0,vt.jsxs)("main",{className:"change-password-fields",children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"原密码"}),(0,vt.jsx)("input",{type:"password",value:s,onChange:e=>i(e.target.value),placeholder:"请输入当前密码"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"新密码"}),(0,vt.jsx)("input",{type:"password",value:o,onChange:e=>a(e.target.value),placeholder:"至少6位"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"确认新密码"}),(0,vt.jsx)("input",{type:"password",value:r,onChange:e=>l(e.target.value),placeholder:"再次输入新密码"})]})]})]})}function yc({onDeleteAccount:e,onToast:t,onClose:s}){const[i,o]=n().useState(1),[a,r]=n().useState(""),[l,c]=n().useState(!1);return 1===i?(0,vt.jsx)(mc,{icon:"warning",title:"注销账号",body:"注销后账号数据将被永久删除且无法恢复,包括聊天记录、好友关系和收藏内容。如果你是某些群的群主,这些群也将被永久解散,其他成员将无法继续使用。确定要继续吗?",confirmLabel:"继续",onConfirm:()=>o(2),onCancel:s}):(0,vt.jsx)(mc,{icon:"no_accounts",title:"输入密码确认注销",body:"请输入登录密码以确认注销账号(该操作立即生效,不可撤销)。",busy:l,onConfirm:()=>{a?e?(c(!0),Promise.resolve(e()).catch(e=>{t(e.message||"注销失败"),c(!1)})):t("当前环境不支持注销账号"):t("请输入密码以确认")},onCancel:s,children:(0,vt.jsx)("input",{type:"password",autoFocus:!0,value:a,onChange:e=>r(e.target.value),placeholder:"登录密码"})})}function wc({onToast:e}){return(0,vt.jsxs)("div",{className:"personal-page app-version-page",children:[(0,vt.jsx)(Ql,{title:"关于我们",back:"android-settings"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"app-brand",children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Zl,{children:"forum"})}),(0,vt.jsx)("h2",{children:Ct.iv}),(0,vt.jsxs)("p",{children:["版本 ","0.25.3"]})]}),(0,vt.jsxs)("section",{className:"personal-menu-section",children:[(0,vt.jsx)(tc,{title:"用户条款",onClick:()=>e("用户条款")}),(0,vt.jsx)(tc,{title:"隐私协议",onClick:()=>e("隐私协议")}),(0,vt.jsx)(tc,{title:"联系我们",onClick:()=>e("联系我们")})]})]})]})}function vc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-privacy")||null);n().useEffect(()=>{(0,zt.BT)().then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(()=>{})},[]);const i=(n,i)=>{const o=t;s({...t,[n]:i}),(0,zt.Wj)({[n]:i,version:t.version}).then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(n=>{e(n.message||"保存失败"),s(o),(0,It.Ug)("me-privacy",o)})},o=e=>!(!t||!t.editable||!1!==t.editable[e]);return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"隐私设置",back:"android-settings"}),(0,vt.jsxs)("main",{className:"privacy-list",children:[(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{title:"添加我的方式",value:(()=>{if(!t)return"";const e={account:"账号",phone:"手机号",qr:"二维码",group:"群聊"},n=Object.entries(t.add_me_methods||{}).filter(([,e])=>e).map(([n])=>e[n]||n);return 4===n.length?"全部允许":n.length?n.join("、"):"全部关闭"})(),route:"friend-discovery-settings"})}),t?(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"显示消息已读状态"}),(0,vt.jsx)("small",{children:o("read_receipts")?"该项由企业统一设置,不可修改":"关闭后你也无法查看对方的已读状态"})]}),(0,vt.jsx)(nc,{checked:!!t.read_receipts,disabled:o("read_receipts"),onChange:e=>i("read_receipts",e)})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"展示最后在线时间"}),(0,vt.jsx)("small",{children:o("last_seen_visibility")?"该项由企业统一设置,不可修改":"仅向联系人显示"})]}),(0,vt.jsx)(nc,{checked:"nobody"!==t.last_seen_visibility,disabled:o("last_seen_visibility"),onChange:e=>i("last_seen_visibility",e?"friends":"nobody")})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"允许好友查看我的资料"}),(0,vt.jsx)("small",{children:o("profile_visibility")?"该项由企业统一设置,不可修改":"关闭后仅你自己可见"})]}),(0,vt.jsx)(nc,{checked:"nobody"!==t.profile_visibility,disabled:o("profile_visibility"),onChange:e=>i("profile_visibility",e?"friends":"nobody")})]})]}):null]})]})}function kc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-privacy")||null);n().useEffect(()=>{(0,zt.BT)().then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(()=>{})},[]);const i=!(!t||!t.editable||!1!==t.editable.add_me_methods);return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"添加我的方式",back:"privacy-settings"}),(0,vt.jsxs)("main",{className:"privacy-list",children:[(0,vt.jsx)("p",{className:"privacy-note",children:i?"添加方式由企业统一设置,不可修改。":"关闭某种方式后,其他人将无法通过该渠道搜索或添加你。"}),t?(0,vt.jsx)("section",{children:[{key:"account",title:"账号"},{key:"phone",title:"手机号"},{key:"qr",title:"二维码"},{key:"group",title:"群聊"}].map(n=>(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:["可通过",n.title,"添加我"]})}),(0,vt.jsx)(nc,{checked:!!(t.add_me_methods||{})[n.key],disabled:i,onChange:i=>((n,i)=>{const o=t,a={...t.add_me_methods||{},[n]:i};s({...t,add_me_methods:a}),(0,zt.Wj)({add_me_methods:a,version:t.version}).then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(n=>{e(n.message||"保存失败"),s(o),(0,It.Ug)("me-privacy",o)})})(n.key,i)})]},n.key))}):null]})]})}const Cc=[`为呵护未成年人健康成长,${Ct.iv}推出青少年模式。该模式下部分功能将受限制使用`,"每天开启后使用时长不超过 40 分钟","限制加好友/群聊次数(主动/被动加好友或群聊每日最多各 4 次)"],zc="im-youth-mode-usage";function _c(e){const n=Math.floor(e/3600),t=Math.floor(e%3600/60),s=e%60,i=e=>String(e).padStart(2,"0");return`${i(n)}:${i(t)}:${i(s)}`}function Sc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("youth-mode")||null),i=function(e){const[t,s]=n().useState(0);return n().useEffect(()=>{const n=(new Date).toISOString().slice(0,10);let t={};try{t=JSON.parse(window.localStorage.getItem(zc)||"{}")}catch(e){}if(t.date!==n&&(t={date:n,seconds:0}),s(t.seconds||0),!e)return;const i=window.setInterval(()=>{s(e=>{const t=e+1;return window.localStorage.setItem(zc,JSON.stringify({date:n,seconds:t})),t})},1e3);return()=>window.clearInterval(i)},[e]),t}(t&&t.enabled);return n().useEffect(()=>{s((0,It.ze)("youth-mode")||null),(0,zt.K2)().then(e=>{(0,It.Ug)("youth-mode",e),s(e)}).catch(n=>e(n.message||"加载失败"))},[]),t?(0,vt.jsxs)("div",{className:"personal-page youth-mode-page",children:[(0,vt.jsx)(Ql,{title:"青少年模式",back:"android-settings"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Zl,{children:t.enabled?"verified_user":"child_care"}),(0,vt.jsx)("h2",{children:t.enabled?"青少年模式已开启":"青少年模式未开启"}),(0,vt.jsx)("ul",{children:Cc.map(e=>(0,vt.jsx)("li",{children:e},e))}),t.enabled?(0,vt.jsxs)("p",{className:"youth-usage",children:["今日已使用:",_c(i)]}):null]}),(0,vt.jsxs)("footer",{children:[(0,vt.jsx)("button",{type:"button",className:t.enabled?"outline":"",onClick:()=>t.enabled?Jl("youth-mode-verify",{ym:"disable"}):(()=>{if(t)return t.password_set?void Jl("youth-mode-verify",{ym:"enable"}):(e("请先设置独立密码"),void window.setTimeout(()=>Gl("identity-check",{ym:"enable"}),400))})(),children:t.enabled?"关闭青少年模式":"开启青少年模式"}),(0,vt.jsx)("small",{children:"可在设置中查看青少年模式状态"})]})]}):(0,vt.jsx)("div",{className:"personal-page youth-mode-page",children:(0,vt.jsx)(Ql,{title:"青少年模式",back:"android-settings"})})}function Nc({hashParams:e,onToast:t}){const s=e&&e.ym||"disable",[i,o]=n().useState(null),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(!1),[u,g]=n().useState(0),[p,m]=n().useState(Date.now()),f=u?Math.max(0,Math.ceil((u-p)/1e3)):0;return n().useEffect(()=>{if(f<=0)return;const e=window.setTimeout(()=>m(Date.now()),1e3);return()=>window.clearTimeout(e)},[f]),n().useEffect(()=>{(0,zt.K2)().then(o).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page youth-mode-page",children:[(0,vt.jsx)(Ql,{title:"enable"===s?"开启青少年模式":"关闭青少年模式",back:"enable"===s?"youth-mode-off":"youth-mode-on"}),(0,vt.jsxs)("main",{className:"youth-password-gate",children:[(0,vt.jsxs)("div",{className:"auth-pin-wrap",children:[(0,vt.jsx)("div",{className:"auth-pin-boxes","aria-hidden":"true",children:[0,1,2,3].map(e=>(0,vt.jsx)("span",{children:a[e]?"●":""},e))}),(0,vt.jsx)("input",{className:"auth-pin-input",type:"text",inputMode:"numeric",autoComplete:"off",autoFocus:!0,value:a,onChange:e=>r(e.target.value.replace(/\D/g,"").slice(0,4)),"aria-label":"独立密码"})]}),l?(0,vt.jsx)("div",{className:"auth-field-error",children:l}):null,(0,vt.jsx)("button",{type:"button",className:"auth-primary",disabled:4!==a.length||d||f>0,onClick:()=>{if(4!==a.length)return void c("请输入4位独立密码");if(f>0)return;h(!0),c("");const e="enable"===s?"enable_youth_mode":"close_youth_mode";(0,zt.Jh)(a,"youth_mode",e).then(({action_token:e})=>"enable"===s?(0,zt.YU)(i.policy_version,e):(0,zt.ZY)(e)).then(e=>{i&&(0,It.Ug)("youth-mode",{...i,enabled:"enable"===s}),t("enable"===s?"青少年模式已开启":"青少年模式已关闭"),window.setTimeout(()=>Jl("enable"===s?"youth-mode-on":"youth-mode-off"),400)}).catch(e=>{"TOO_MANY_ATTEMPTS"===e.reason&&e.details&&e.details.retry_after_seconds&&(g(Date.now()+1e3*e.details.retry_after_seconds),m(Date.now())),c(e.message||"验证失败")}).finally(()=>h(!1))},children:d?"验证中…":f>0?`请 ${f} 秒后重试`:"确定"}),(0,vt.jsx)("button",{type:"button",className:"auth-text-button",onClick:()=>Gl("identity-check",{ym:s}),children:"忘记独立密码?"})]})]})}const Tc={notification:{icon:"notifications_active",title:"获取推送权限",text:"向您及时送达重要通知、活动提醒、个性化内容更新等信息。",action:"开启通知",route:"permission-settings-reminder"},reminder:{icon:"settings",title:"消息推送暂未开启",text:"前往【设置 - 通知管理】一键开启吧!",action:"好的",secondaryAction:"暂不开启",route:"android-settings"},camera:{icon:"photo_camera",title:"相机权限使用说明",text:"调用相机拍摄/扫码,为您提供拍照、扫码识别等服务。",action:"继续授权",route:"messages-home"},microphone:{icon:"mic",title:"麦克风权限使用说明",text:"用于语音消息、语音输入和音视频通话,未授权时不会创建录音文件。",action:"继续授权",route:"messages-home"}};function Bc({type:e,onToast:n}){const t=Tc[e];return(0,vt.jsxs)("div",{className:"personal-page permission-guide-page",children:[(0,vt.jsx)("div",{className:"permission-preview",children:(0,vt.jsxs)("header",{children:[(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsx)(Zl,{children:"menu"})]})}),(0,vt.jsx)("div",{className:"permission-overlay",children:(0,vt.jsxs)("section",{role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Zl,{children:t.icon})}),(0,vt.jsx)("h2",{children:t.title}),(0,vt.jsx)("p",{children:t.text}),(0,vt.jsx)("button",{type:"button",onClick:()=>{"notification"===e&&"Notification"in window?Notification.requestPermission().then(()=>Gl(t.route)):(n("reminder"===e?"请前往系统设置开启通知":"等待系统授权结果"),window.setTimeout(()=>Gl(t.route),500))},children:t.action}),t.secondaryAction?(0,vt.jsx)("button",{type:"button",onClick:()=>Gl("messages-home"),children:t.secondaryAction}):null]})})]})}function Pc({view:e,hashParams:t,myUserId:s,tinode:i,chatList:o,onUpdatePassword:a,onDeleteAccount:r,onLogout:l}){const[c,d]=n().useState("");let h;return h="personal-center"===e?(0,vt.jsx)(oc,{}):"personal-profile"===e?(0,vt.jsx)(ac,{onToast:d,tinode:i}):"profile-nickname"===e?(0,vt.jsx)(lc,{field:"nickname",title:"设置昵称",onToast:d}):"profile-signature"===e?(0,vt.jsx)(lc,{field:"signature",title:"个性签名",multiline:!0,onToast:d}):"profile-birth-date"===e?(0,vt.jsx)(cc,{onToast:d}):"profile-gender"===e?(0,vt.jsx)(hc,{onToast:d}):"profile-region"===e?(0,vt.jsx)(uc,{onToast:d}):"personal-qrcode"===e?(0,vt.jsx)(gc,{onToast:d}):"android-settings"===e?(0,vt.jsx)(pc,{onToast:d,onLogout:l,tinode:i,chatList:o,onDeleteAccount:r}):"change-password"===e?(0,vt.jsx)(bc,{onToast:d,onUpdatePassword:a}):"app-version"===e?(0,vt.jsx)(wc,{onToast:d}):"privacy-settings"===e?(0,vt.jsx)(vc,{onToast:d}):"friend-discovery-settings"===e?(0,vt.jsx)(kc,{onToast:d}):"youth-mode-off"===e||"youth-mode-on"===e?(0,vt.jsx)(Sc,{onToast:d}):"youth-mode-verify"===e?(0,vt.jsx)(Nc,{hashParams:t,onToast:d}):(0,vt.jsx)(Bc,{type:"notification-permission"===e?"notification":"permission-settings-reminder"===e?"reminder":"camera-permission-info"===e?"camera":"microphone",onToast:d}),(0,vt.jsxs)(vt.Fragment,{children:[h,(0,vt.jsx)(ec,{message:c,onDone:()=>d("")})]})}var qc=a(781);const Mc=(0,s.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:"Archived contacts ({count})",description:"Label for archived chats"}});class Ac extends n().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.state=Ac.deriveStateFromProps(e)}static deriveStateFromProps(e){const n=[];let t=0,s=0;const i=e.tinode.getMeTopic();return e.chatList.forEach(o=>{const a=o.acs&&!o.acs.isJoiner();o.pinned=i.pinnedTopicRank(o.topic),a&&e.blocked&&n.push(o),a||e.blocked||(o.private&&o.private.arch?e.archive?n.push(o):s++:e.archive||(n.push(o),t+=o.unread>0?1:0))}),n.sort((e,n)=>{const t=n.pinned-e.pinned;return 0!=t?t:(n.touched||0)-(e.touched||0)}),s>0&&n.push({action:"archive",title:Mc.archived_contacts_title,values:{count:s}}),{contactList:n,unreadThreads:t}}componentDidUpdate(e,n){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive||e.blocked!=this.props.blocked){const e=Ac.deriveStateFromProps(this.props);this.setState(e),e.unreadThreads!=n.unreadThreads&&(0,Et.OM)(e.unreadThreads)}}handleAction(e){this.props.onShowArchive()}render(){return(0,vt.jsx)(s.FormattedMessage,{id:"contacts_not_found",defaultMessage:"You have no chats\\n¯∖_(ツ)_/¯",description:"HTML message shown in ContactList when no contacts are found",children:e=>(0,vt.jsx)(qt.A,{tinode:this.props.tinode,connected:this.props.connected,contacts:this.state.contactList,emptyListMessage:e,topicSelected:this.props.topicSelected,myUserId:this.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,onAction:this.handleAction})})}}class Ec extends n().PureComponent{constructor(e){super(e),this.state={colorSchema:e.colorSchema||"auto",textSize:10*e.textSize||"100",sendOnEnter:e.sendOnEnter||"plain"},this.isMac=(navigator.userAgentData&&navigator.userAgentData.platform||navigator.platform).toLowerCase().startsWith("mac"),this.handleColorSchemaSelected=this.handleColorSchemaSelected.bind(this),this.handleTextSizeChanged=this.handleTextSizeChanged.bind(this),this.handleSendOnEnterSelected=this.handleSendOnEnterSelected.bind(this)}handleColorSchemaSelected(e){this.setState({colorSchema:e.currentTarget.value}),this.props.onChangeColorSchema(e.currentTarget.value)}handleTextSizeChanged(e){this.setState({textSize:e.currentTarget.value}),this.props.onTextSizeChanged(e.currentTarget.value/10|0)}handleSendOnEnterSelected(e){this.setState({sendOnEnter:e.currentTarget.value}),this.props.onSendOnEnterChanged(e.currentTarget.value)}render(){return(0,vt.jsxs)("div",{id:"settings-form",className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_color_schema",defaultMessage:"Theme:",description:"Label for selecting color scheme (dark, light) in Settings"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("ul",{className:"quoted",children:[(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"system",name:"color-scheme-select",value:"auto",checked:"auto"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"system",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_system",defaultMessage:"System default",description:"Name of the color schema"})," ",(0,vt.jsx)("img",{src:"img/routine.svg",style:{verticalAlign:"top",width:"1.6rem",height:"1.6rem"}})]})]},"system"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"light",name:"color-scheme-select",value:"light",checked:"light"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"light",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_light",defaultMessage:"Light",description:"Name of the color schema"})," ",(0,vt.jsx)("i",{className:"material-icons orange large",children:"light_mode"})]})]},"light"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"dark",name:"color-scheme-select",value:"dark",checked:"dark"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"dark",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_dark",defaultMessage:"Dark",description:"Name of the color schema"})," ",(0,vt.jsx)("i",{className:"material-icons blue large",children:"dark_mode"})]})]},"dark")]})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsx)("div",{className:"panel-form-row clean-clickable",children:(0,vt.jsxs)("a",{onClick:this.props.onSelectWallpapers,className:"flat-button",children:[(0,vt.jsx)("i",{className:"material-icons",children:"wallpaper"})," ",(0,vt.jsx)(s.FormattedMessage,{id:"wallpapers",defaultMessage:"Wallpapers",description:"Link or title for working with wallpapers."})]})}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_text_size",defaultMessage:"Text size:",description:"Label adjusting text size"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("input",{type:"range",id:"text_size",name:"text_size",min:"80",max:"120",step:"10",list:"text_size_options",value:this.state.textSize,onChange:this.handleTextSizeChanged})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("datalist",{id:"text_size_options",children:[(0,vt.jsx)("option",{value:"80",label:"80%"}),(0,vt.jsx)("option",{value:"90",label:"90%"}),(0,vt.jsx)("option",{value:"100",label:"100%"}),(0,vt.jsx)("option",{value:"110",label:"110%"}),(0,vt.jsx)("option",{value:"120",label:"120%"})]})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_keyboard",defaultMessage:"Keyboard:",description:"Label for send on enter settings"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("ul",{className:"quoted",children:[(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"plain",name:"send-select",value:"plain",checked:"plain"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",(0,vt.jsxs)("label",{htmlFor:"send_plain",children:[(0,vt.jsx)(s.FormattedMessage,{id:"send_plain",defaultMessage:"Send on Enter",description:"Config option to send message on hitting Enter"})," "]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("span",{className:"small gray",children:(0,vt.jsx)(s.FormattedMessage,{id:"send_plain_explained",defaultMessage:"Press Shift + Enter for new line",description:"Explanation how to enter newline when [Send on Enter] is enabled"})})})]},"plain"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"command",name:"send-select",value:"command",checked:"command"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",(0,vt.jsxs)("label",{htmlFor:"send_command",children:[(0,vt.jsx)(s.FormattedMessage,{id:"send_command",defaultMessage:"Send on {key}",values:{key:this.isMac?"⌘ + Enter":"Ctrl + Enter"},description:"Config option to send message on hitting CTRL(or Cmd)-Enter"})," "]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("span",{className:"small gray",children:(0,vt.jsx)(s.FormattedMessage,{id:"send_command_explained",defaultMessage:"Press Enter for new line",description:"Explanation how to enter newline when [Send on CTRL-Enter] is enabled"})})})]},"command")]})})]})}}var Ic=a(3207);class Dc extends n().PureComponent{constructor(e){super(e),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handleCheckboxClick(e,n){"sound"==e?this.props.onToggleMessageSounds(n):"alert"==e&&this.props.onTogglePushNotifications(n)}render(){return(0,vt.jsxs)("div",{className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{htmlFor:"message-sound",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_message_sound",defaultMessage:"Message sound:",description:"Label for message sounds toggle"})}),(0,vt.jsx)(Ic.A,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{htmlFor:"desktop-alerts",children:this.props.desktopAlertsEnabled?(0,vt.jsx)(s.FormattedMessage,{id:"label_push_notifications",defaultMessage:"Notification alerts:",description:"Label for push notifications switch"}):(0,vt.jsx)(s.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:"Notification alerts (requires HTTPS):",description:"Label for push notifications switch"})}),(0,vt.jsx)(Ic.A,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})]})]})}}function Uc({href:e,icon:n,children:t}){return e?(0,vt.jsxs)("a",{href:e,className:"flat-button",target:"_blank",children:[(0,vt.jsx)("i",{className:"material-icons",children:n}),"  ",t]}):(0,vt.jsxs)("span",{className:"flat-button",children:[(0,vt.jsx)("i",{className:"material-icons",children:n}),"  ",t]})}class Rc extends n().PureComponent{render(){return(0,vt.jsxs)("div",{className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)(Uc,{href:null,icon:"email",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_contact_us",defaultMessage:"Contact Us",description:"Ancor text for contacting us by email"})}),(0,vt.jsx)(Uc,{href:null,icon:"description",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_terms_of_service",defaultMessage:"Terms of Service",description:"Ancor text for terms of service link"})}),(0,vt.jsx)(Uc,{href:null,icon:"policy",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_privacy_policy",defaultMessage:"Privacy Policy",description:"Ancor text for privacy policy link"})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_client",defaultMessage:"Client:",description:"Label for a client version"})}),Ct.C3]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server",defaultMessage:"Server:",description:"Label for a server version"})}),this.props.serverVersion]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server_address",defaultMessage:"Server address:"})}),this.props.serverAddress]})]})]})}}const Lc=(0,s.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:"Invalid ID",description:"Error message"}});class Oc extends n().PureComponent{constructor(e){super(e),this.qrCodeRef=n().createRef(),this.state={groupId:""},this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){new(Ai())(this.qrCodeRef.current,{text:this.props.myURI,width:128,height:128})}handleChange(e){this.setState({groupId:e.target.value})}handleKeyPress(e){"Enter"===e.key&&this.handleSubmit(e)}handleSubmit(e){if(e.preventDefault(),this.state.groupId){const e=this.state.groupId.trim(),n=e.substring(0,3);e.length>3&&["usr","grp","chn"].includes(n)?this.props.onSubmit(e):this.props.onError(this.props.intl.formatMessage(Lc.invalid_id),"err")}}render(){return(0,vt.jsxs)("div",{className:"panel-form",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:"Group or User ID",description:"Prompt for entering user or group ID",children:e=>(0,vt.jsx)("input",{type:"text",placeholder:e,value:this.state.groupId,onChange:this.handleChange,onKeyDown:this.handleKeyPress,required:!0,autoFocus:!0})})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_subscribe",defaultMessage:"Subscribe",description:"Button [Subscribe]"})})}),(0,vt.jsx)("br",{}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_scan_id",defaultMessage:"Scan my ID:",description:"Label [Scan my ID:]"})}),(0,vt.jsx)("div",{className:"qr-code",ref:this.qrCodeRef})]})]})}}var Fc=(0,s.injectIntl)(Oc),$c=a(995),Vc=a(3889),Hc=a(1192);class Wc extends n().PureComponent{constructor(e){super(e),this.fullName=n().createRef(),this.state={fullName:"",private:"",description:"",imageUrl:null,tags:[],isChannel:!1,newAvatar:null,newAvatarMime:null},this.handleFieldEdit=this.handleFieldEdit.bind(this),this.handleImageChanged=this.handleImageChanged.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handleTagsChanged=this.handleTagsChanged.bind(this),this.handleChannelToggle=this.handleChannelToggle.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){}handleFieldEdit(e,n){this.setState({[e]:n.target.value||""})}handleImageChanged(e,n){this.setState({newAvatar:n,newAvatarMime:e})}handleAvatarCropped(e,n,t,s){const i=n?URL.createObjectURL(n):null;this.setState({imageUrl:i,newAvatar:null,newAvatarMime:null}),n&&this.uploadAvatar(e,n,t,s)}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}uploadAvatar(e,n,t,s){const i=e=>{let{mime:n,blob:t}=e;t.size>4096?(0,zt.Lf)(this.props.tinode).upload(t).then(e=>this.setState({imageUrl:e})).catch(e=>this.props.onError(e.message,"err")):(0,Lt.Sk)(t).then(e=>this.setState({imageUrl:(0,Lt.to)({data:e.bits,type:n})}))};t>384||s>384||t!=s?(0,Lt.ag)(n,384,384,Ct.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:n,width:t,height:s})}handleTagsChanged(e){this.setState({tags:e})}handleChannelToggle(){this.setState({isChannel:!this.state.isChannel})}handleSubmit(e){e.preventDefault();const n=(0,Ot.W5)(this.state.fullName.trim(),60),t=(0,Ot.W5)(this.state.private.trim(),60),s=(0,Ot.W5)(this.state.description.trim(),360);n&&this.props.onSubmit(n,s,this.state.imageUrl,t,this.state.tags,this.state.isChannel)}render(){if(this.state.newAvatar)return(0,vt.jsx)($c.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});let e="primary";return this.props.disabled&&(e+=" disabled"),(0,vt.jsxs)("form",{className:"panel-form",onSubmit:this.handleSubmit,children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("center",{children:(0,vt.jsx)(Vc.A,{tinode:this.props.tinode,avatar:this.state.imageUrl,onError:this.props.onError,onImageUpdated:this.handleImageChanged})}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-fn",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name",description:"Label for editing topic name"})}),(0,vt.jsx)(s.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group",description:"Prompt for entering topic name",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-fn",placeholder:e,ref:this.fullName,value:this.state.fullName,onChange:this.handleFieldEdit.bind(this,"fullName"),autoFocus:!0,required:!0,tabIndex:0})})]}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-priv",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_private",defaultMessage:"Private comment",description:"Label for editing 'private'"})}),(0,vt.jsx)(s.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only",description:"Placeholder for editing 'private'",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-priv",placeholder:e,value:this.state.private,onChange:this.handleFieldEdit.bind(this,"private"),tabIndex:1})})]}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-desc",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_description",defaultMessage:"Description",description:"Label for description of user or topic"})}),(0,vt.jsx)(s.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:"Description (optional)",description:"Placeholder for editing topic description",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-desc",placeholder:e,value:this.state.description,onChange:this.handleFieldEdit.bind(this,"description"),tabIndex:2})})]})]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)(Ic.A,{checked:this.state.isChannel,tabIndex:3,onChange:this.handleChannelToggle})," ",(0,vt.jsx)("label",{onClick:this.handleChannelToggle,children:(0,vt.jsx)(s.FormattedMessage,{id:"channel_prompt",defaultMessage:"This is a channel",description:"Checkbox label when creating a channel"})})]}),(0,vt.jsx)(s.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (search & discovery)",description:"Section title for TagManager",children:e=>(0,vt.jsx)(Hc.A,{tinode:this.props.tinode,tags:this.state.tags,activated:!0,onTagsChanged:this.handleTagsChanged,tabIndex:4,title:e})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{className:e,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_create",defaultMessage:"Create",description:"Button [Create]"})})})]})}}const Kc=(0,s.defineMessages)({search_for_contacts:{id:"search_for_contacts",defaultMessage:"Use search to find contacts",description:"Text shown in contacts view when user entered no search query."},search_no_results:{id:"search_no_results",defaultMessage:"Search returned no results",description:"Text shown in contacts view when query returned no results."},search_placeholder:{id:"search_placeholder",defaultMessage:"List like alice@example.com, +17025550003...",description:"Placeholder in contacts search field"}});class Xc extends n().Component{constructor(e){super(e);const n=is.A.parseUrl(is.A.currentUrl()).params,t=n.tab||"find",s="find"==t&&n.q||null;this.state={tabSelected:t,searchQuery:s},this.handleTabClick=this.handleTabClick.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleSearchResultSelected=this.handleSearchResultSelected.bind(this),this.handleNewGroupSubmit=this.handleNewGroupSubmit.bind(this),this.handleGroupByID=this.handleGroupByID.bind(this)}componentDidMount(){this.props.onInitFind()}handleTabClick(e){e.preventDefault(),is.A.navigateReplace(is.A.addUrlParam(is.A.currentUrl(),"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}handleSearchContacts(e){if(e=e.trim()||wt.Tinode.DEL_CHAR,!/[\s,:]/.test(e)&&e!=wt.Tinode.DEL_CHAR){const n=(0,Et.xH)(e);if(n)e=`${wt.Tinode.TAG_EMAIL}${n}`;else{const n=(0,Et.Jt)(e);n?e=`${wt.Tinode.TAG_PHONE}${n}`:("@"==e[0]&&(e=e.substring(1)),e=`${wt.Tinode.TAG_ALIAS}${e},${e}`)}}this.props.onSearchContacts(e),this.setState({searchQuery:wt.Tinode.isNullValue(e)?null:e})}handleSearchResultSelected(e){"find"==this.state.tabSelected&&(is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(e))}handleNewGroupSubmit(e,n,t,s,i,o){is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(void 0,{public:(0,Et.k6)(e,t,null,n),private:s,tags:i},o)}handleGroupByID(e){is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(e)}render(){const{formatMessage:e}=this.props.intl,n=e(this.state.searchQuery?Kc.search_no_results:Kc.search_for_contacts),t=e(Kc.search_placeholder);return(0,vt.jsxs)("div",{className:"flex-column",children:[(0,vt.jsxs)("ul",{className:"tabbar",children:[(0,vt.jsx)("li",{className:"find"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"find",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:"find",description:"Tab title Find"})})}),(0,vt.jsx)("li",{className:"grp"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"grp",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:"new group",description:"Tab title New Group"})})}),(0,vt.jsx)("li",{className:"byid"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"byid",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:"by id",description:"Tab title Find topic by ID"})})})]}),"grp"===this.state.tabSelected?(0,vt.jsx)(Wc,{tinode:this.props.tinode,onSubmit:this.handleNewGroupSubmit,onError:this.props.onError}):"byid"===this.state.tabSelected?(0,vt.jsx)(Fc,{myURI:wt.Tinode.URI_TOPIC_ID_PREFIX+this.props.tinode.getCurrentUserID(),onSubmit:this.handleGroupByID,onError:this.props.onError}):(0,vt.jsxs)("div",{className:"flex-column",children:[(0,vt.jsx)(Mt,{placeholder:t,initialQuery:this.state.searchQuery||"",onSearchContacts:this.handleSearchContacts}),(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:n,showSelfTopic:!this.state.searchQuery,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleSearchResultSelected})]})]})}}var Gc=(0,s.injectIntl)(Xc);class Jc extends n().PureComponent{constructor(e){super(e),this.state={hostName:e.serverAddress,changed:!1},this.handleHostNameChange=this.handleHostNameChange.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}handleHostNameChange(e){this.setState({hostName:e.target.value,changed:!0})}handleEditingFinished(){this.state.changed&&(this.setState({changed:!1}),this.props.onServerAddressChange(this.state.hostName.trim()))}handleKeyDown(e){"Enter"==e.key&&this.handleEditingFinished()}render(){const e=[];for(let n in Ct.SE){let t=Ct.SE[n];e.push((0,vt.jsx)("option",{value:t},t))}return(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("input",{type:"search",id:"host-name",placeholder:this.props.hostName,list:"known-hosts",className:"quoted",value:this.state.hostName,onChange:this.handleHostNameChange,onBlur:this.handleEditingFinished,onKeyDown:this.handleKeyDown,required:!0}),(0,vt.jsx)("datalist",{id:"known-hosts",children:e})]})}}class Yc extends n().PureComponent{constructor(e){super(e),this.state={transport:e.transport||"def",serverAddress:e.serverAddress,secureConnection:e.secureConnection},this.handleSubmit=this.handleSubmit.bind(this),this.handleTransportSelected=this.handleTransportSelected.bind(this),this.handleServerAddressChange=this.handleServerAddressChange.bind(this),this.handleToggleSecure=this.handleToggleSecure.bind(this)}handleSubmit(e){e.preventDefault(),this.props.onUpdate({transport:this.state.transport,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection})}handleTransportSelected(e){this.setState({transport:e.currentTarget.value})}handleServerAddressChange(e){this.setState({serverAddress:e})}handleToggleSecure(e){this.setState({secureConnection:!this.state.secureConnection})}render(){const e={def:"default",ws:"websocket",lp:"long polling"},n=[];return["def","ws","lp"].forEach(t=>{const s="transport-"+t,i=e[t];n.push((0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:s,name:"transport-select",value:t,checked:this.state.transport===t,onChange:this.handleTransportSelected}),(0,vt.jsx)("label",{htmlFor:s,children:i})]},t))}),(0,vt.jsxs)("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit,children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server_to_use",defaultMessage:"Server to use:",description:"Label for server selector in SettingsView"})})}),(0,vt.jsx)(Jc,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)(Ic.A,{id:"secure-connection",name:"secure-connection",checked:this.state.secureConnection,className:"quoted",onChange:this.handleToggleSecure}),(0,vt.jsx)("label",{htmlFor:"secure-connection",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_use_secure_connection",defaultMessage:"Use secure connection",description:"Label for WS/WSS connection type in SettingsView"})})]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_wire_transport",defaultMessage:"Wire transport:",description:"Label for wire transport selection in SettingsView"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("ul",{className:"quoted",children:n})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{type:"submit",className:"primary",children:(0,vt.jsx)(s.FormattedMessage,{id:"button_update",defaultMessage:"Update",description:"Button [Update]"})})})]})}}const Zc=(0,s.defineMessages)({phone:{id:"phone_dative",defaultMessage:"phone",description:"Dative case of 'phone', i.e. 'phone' in 'by phone'"},email:{id:"email_dative",defaultMessage:"email",description:"Dative case of 'email', i.e. 'email' in 'by email'"}});class Qc extends n().PureComponent{constructor(e){super(e),this.state={code:e.credCode||"",codeReceived:e.credCode},this.handleCodeChange=this.handleCodeChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,n){return e.credCode!=n.codeReceived?{code:e.credCode||"",codeReceived:e.credCode}:n}componentDidMount(){this.props.credCode&&this.props.onSubmit(this.props.credMethod,this.props.credCode,this.props.credToken)}componentDidUpdate(e,n){this.state.codeReceived&&this.state.code&&this.state.code!=n.code&&this.props.onSubmit(this.props.credMethod,this.state.code,this.props.credToken)}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleKeyPress(e){"Enter"===e.key?this.handleSubmit(e):"Escape"==e.key&&this.handleCancel(e)}handleSubmit(e){e.preventDefault(),this.state.code&&this.state.code.trim()&&this.props.onSubmit(this.props.credMethod,this.state.code.trim(),this.props.credToken)}handleCancel(e){e.preventDefault(),this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,n={email:e(Zc.email),tel:e(Zc.phone)}[this.props.credMethod]||this.props.credMethod;return(0,vt.jsxs)("div",{className:"panel-form",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small gray",htmlFor:"enter-confirmation-code",children:(0,vt.jsx)(s.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:"Confirmation code",description:"Request to enter confirmation code",values:{method:n}})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:"Numbers only",description:"Prompt for numeric conformation code",children:e=>(0,vt.jsx)("input",{type:"text",id:"enter-confirmation-code",placeholder:e,value:this.state.code,onChange:this.handleCodeChange,onKeyDown:this.handleKeyPress,required:!0})})}),(0,vt.jsxs)("div",{className:"dialog-buttons",children:[(0,vt.jsx)("button",{className:"secondary",onClick:this.handleCancel,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}),(0,vt.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_confirm",defaultMessage:"Confirm",description:"Button [Confirm]"})})]})]})}}var ed=(0,s.injectIntl)(Qc);const nd=n().lazy(e=>Promise.all([a.e(892),a.e(330),a.e(691)]).then(a.bind(a,5691))),td=n().lazy(e=>a.e(331).then(a.bind(a,6331))),sd=n().lazy(e=>a.e(686).then(a.bind(a,3686))),id=(0,s.defineMessages)({login:{id:"sidepanel_title_login",description:"Sidepanel title for LoginView.",defaultMessage:"Sign In"},register:{id:"sidepanel_title_register",description:"Sidepanel title for CreateAccountView.",defaultMessage:"Create Account"},settings:{id:"sidepanel_title_settings",description:"Sidepanel title for SettingsView.",defaultMessage:"Settings"},edit:{id:"sidepanel_title_account_settings",description:"Sidepanel title for AccountSettingsView.",defaultMessage:"Account Settings"},general:{id:"panel_title_general",description:"Title for TopicCommon.",defaultMessage:"General"},security:{id:"panel_title_security",description:"Title for TopicSecirity and AccSecurity.",defaultMessage:"Security"},crop:{id:"panel_title_crop",description:"Title for AvatarCropView.",defaultMessage:"Drag to Adjust"},notif:{id:"sidepanel_title_acc_notifications",description:"Sidepanel title for AccNotificationsView.",defaultMessage:"Notifications"},acc_general:{id:"sidepanel_title_acc_general",description:"Sidepanel title for AccGeneralView.",defaultMessage:"General"},support:{id:"sidepanel_title_acc_support",description:"Sidepanel title for AccSupportView.",defaultMessage:"Support"},newtpk:{id:"sidepanel_title_newtpk",description:"Sidepanel title for NewTopicView.",defaultMessage:"Start New Chat"},cred:{id:"sidepanel_title_cred",description:"Sidepanel title for ValidationView.",defaultMessage:"Confirm Credentials"},reset:{id:"sidepanel_title_reset",description:"Sidepanel title for PasswordResetView.",defaultMessage:"Reset Password"},archive:{id:"sidepanel_title_archive",description:"Sidepanel title for ContactsView-Archive.",defaultMessage:"Archived Chats"},blocked:{id:"sidepanel_title_blocked",description:"Sidepanel title for ContactsView-Blocked.",defaultMessage:"Blocked Chats"},wallpapers:{id:"wallpapers",description:"Link or title for working with wallpapers.",defaultMessage:"Wallpapers"}});class od extends n().PureComponent{constructor(e){super(e),this.handleNewTopic=this.handleNewTopic.bind(this)}handleNewTopic(){this.props.onNavigate("newtpk")}render(){const{formatMessage:n}=this.props.intl,t=this.props.state||(this.props.myUserId?"messages-home":"tenant");if(["tenant","login","enterprise-register","enterprise-feedback","register","reset","identity-check","realname","realname-verified","realname-reminder","independent-password"].includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"auth-onboarding-panel",children:(0,vt.jsx)(Ps,{view:t,hashParams:this.props.hashParams,authenticated:!!this.props.myUserId,login:this.props.login,loginDisabled:this.props.loginDisabled,persist:this.props.persist,errorText:this.props.errorText,errorLevel:this.props.errorLevel,onLoginRequest:this.props.onLoginRequest,onPersistenceChange:this.props.onPersistenceChange,onCreateAccount:this.props.onCreateAccount,onImRegisterRequest:this.props.onImRegisterRequest,onTenantResolved:this.props.onTenantResolved,onError:this.props.onError})});if(["messages-home","messages-offline","messages-menu","message-actions","system-messages"].includes(t)){const e=!this.props.myUserId||"messages-home"!==t;return(0,vt.jsxs)("div",{id:"sidepanel",className:"message-center-panel"+(e?" full-page":""),children:[(0,vt.jsx)(Ks,{view:t,connected:this.props.connected,chatList:this.props.chatList,myUserId:this.props.myUserId,onTopicSelected:this.props.onTopicSelected,onOpenScanner:this.props.onOpenScanner},t),(0,vt.jsx)(Jt.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError})]})}if(["chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card"].includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"direct-message-panel",children:(0,vt.jsx)(di,{view:t},t)});if(ui.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"message-composer-panel",children:(0,vt.jsx)(qi,{view:t},t)});if($o.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"contact-management-panel",children:(0,vt.jsx)(ha,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected,onCreateTopic:this.props.onCreateTopic,onOpenScanner:this.props.onOpenScanner},t)});if(pa.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"group-management-panel",children:(0,vt.jsx)(nr,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected},t)});if(ar.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"content-library-panel",children:(0,vt.jsx)(Rr,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected,chatList:this.props.chatList},t)});if(Or.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"call-experience-panel",children:(0,vt.jsx)(sl,{view:t},t)});if(al.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"workplace-collaboration-panel",children:(0,vt.jsx)(Xl,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected},t)});if(Yl.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"personal-settings-panel",children:(0,vt.jsx)(Pc,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,chatList:this.props.chatList,onUpdatePassword:this.props.onUpdatePassword,onDeleteAccount:this.props.onDeleteAccount,onLogout:this.props.onLogout},t)});if(qc.oq.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"security-support-panel",children:(0,vt.jsx)(qc.Ay,{view:t,hashParams:this.props.hashParams,tinode:this.props.tinode},t)});let i,o,a,r;return"contacts"==t?(i=this.props.title,o=!this.props.avatar||this.props.avatar,a=this.props.trustedBadges):(i=n(id[t]),o=!1,a=null),-1==["login","contacts"].indexOf(t)&&(r=this.props.onCancel),(0,vt.jsxs)("div",{id:"sidepanel",children:[(0,vt.jsx)(ts,{state:t,title:i,avatar:o,tinode:this.props.tinode,trustedBadges:a,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.handleNewTopic,onCancel:r}),(0,vt.jsx)(Jt.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),(0,vt.jsx)(Yt.A,{show:this.props.loadSpinnerVisible}),"settings"===t?(0,vt.jsx)(Yc,{transport:this.props.transport,serverAddress:this.props.serverAddress,secureConnection:this.props.secureConnection,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(nd,{tinode:this.props.tinode,myUserId:this.props.myUserId,trustedBadges:this.props.trustedBadges,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onNavigate:this.props.onNavigate,onCredAdd:this.props.onCredAdd,onCredDelete:this.props.onCredDelete,onCredConfirm:this.props.onCredConfirm,onError:this.props.onError})}):"general"===t||"crop"===t?(0,vt.jsx)(ss.A,{topic:"me",tinode:this.props.tinode,myUserId:this.props.myUserId,reqCredMethod:this.props.reqCredMethod,onUpdateTopicDesc:this.props.onUpdateAccountDesc,onUpdateTagsRequest:this.props.onUpdateAccountTags,onError:this.props.onError}):"acc_general"===t?(0,vt.jsx)(Ec,{colorSchema:this.props.colorSchema,onSelectWallpapers:this.props.onSelectWallpapers,textSize:this.props.textSize,sendOnEnter:this.props.sendOnEnter,onChangeColorSchema:this.props.onChangeColorSchema,onTextSizeChanged:this.props.onTextSizeChanged,onSendOnEnterChanged:this.props.onSendOnEnterChanged}):"notif"===t?(0,vt.jsx)(Dc,{messageSounds:this.props.messageSounds,desktopAlerts:this.props.desktopAlerts,desktopAlertsEnabled:this.props.desktopAlertsEnabled,onTogglePushNotifications:this.props.onTogglePushNotifications,onToggleMessageSounds:this.props.onToggleMessageSounds}):"security"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(td,{tinode:this.props.tinode,incognitoMode:this.props.incognitoMode,onNavigate:this.props.onNavigate,onUpdateAccountDesc:this.props.onUpdateAccountDesc,onUpdatePassword:this.props.onUpdatePassword,onLogout:this.props.onLogout,onDeleteAccount:this.props.onDeleteAccount,onShowAlert:this.props.onShowAlert,onShowBlocked:this.props.onShowBlocked,onToggleIncognitoMode:this.props.onToggleIncognitoMode})}):"support"===t?(0,vt.jsx)(Rc,{serverAddress:this.props.serverAddress,serverVersion:this.props.serverVersion}):"wallpapers"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(sd,{wallpaper:this.props.wallpaper,wallpaperSize:this.props.wallpaperSize,wallpaperBlur:this.props.wallpaperBlur,colorSchema:"auto"!==this.props.colorSchema?this.props.colorSchema:this.props.systemColorSchema,onWallpaperSelected:this.props.onWallpaperSelected})}):"contacts"===t||"archive"==t||"blocked"==t?(0,vt.jsx)(Ac,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,archive:"archive"==t,blocked:"blocked"==t,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected,onShowArchive:this.props.onShowArchive}):"newtpk"===t?(0,vt.jsx)(Gc,{tinode:this.props.tinode,searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===t?(0,vt.jsx)(ed,{credCode:this.props.credCode,credMethod:this.props.credMethod,credToken:this.props.credToken,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel}):null]})}}var ad=(0,s.injectIntl)(od);const rd="started";function ld(){let e=Ct.HX;return"object"==typeof window.location&&("file:"==window.location.protocol?e=Ct.SE.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e}function cd(){return"object"==typeof window.location&&"https:"==window.location.protocol}var dd=a(99);const hd=n().lazy(e=>a.e(125).then(a.bind(a,9125))),ud=n().lazy(e=>a.e(158).then(a.bind(a,158))),gd=n().lazy(e=>a.e(280).then(a.bind(a,9280))),pd=new Audio("audio/msg.m4a"),md=(0,s.defineMessages)({reconnect_countdown:{id:"reconnect_countdown",defaultMessage:"Disconnected. Reconnecting in {seconds}…",description:"Message shown when an app update is available."},reconnect_now:{id:"reconnect_now",defaultMessage:"Try now",description:"Prompt for reconnecting now"},push_init_failed:{id:"push_init_failed",defaultMessage:"Failed to initialize push notifications",description:"Error message when push notifications have failed to initialize."},invalid_security_token:{id:"invalid_security_token",defaultMessage:"Invalid security token",description:"Error message when resetting password."},no_connection:{id:"no_connection",defaultMessage:"No connection",description:"Warning that the user is offline."},code_doesnot_match:{id:"code_doesnot_match",defaultMessage:"Code does not match",description:"Error message when the credential validation code is incorrect."},menu_item_info:{id:"menu_item_info",defaultMessage:"Info",description:"Show extended topic information"},menu_item_audio_call:{id:"menu_item_audio_call",defaultMessage:"Call",description:"Start audio call"},menu_item_video_call:{id:"menu_item_video_call",defaultMessage:"Video call",description:"Start video call"},cred_confirmed_successfully:{id:"cred_confirmed_successfully",defaultMessage:"Confirmed successfully",description:"Notification message that the credential was successfully validated."},password_reset_success:{id:"password_reset_success",defaultMessage:"Password reset successfully",description:"Notification message that the password was successfully reset."},select_country:{id:"select_country",defaultMessage:"Select country",description:"Placeholder for the country selector"}}),fd=["acc_general","archive","blocked","contacts","cred","crop","edit","general","newtpk","notif","register","reset","security","settings","support","wallpapers","tenant","login","enterprise-register","enterprise-feedback","identity-check","realname","realname-verified","realname-reminder","independent-password","messages-home","messages-offline","messages-menu","message-actions","system-messages","chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card","compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle","address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm","group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload","group-invite-friends","favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos","call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized","workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice","personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info","fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback",""],xd=["tenant","login","register","reset","cred","enterprise-register","enterprise-feedback"],jd={"authentication failed":"账号或密码错误","authentication required":"请先登录","unknown authentication scheme":"登录方式不受支持,请刷新页面重试","policy violation":"当前操作不符合安全策略要求","permission denied":"没有权限执行此操作,请重新登录","internal error":"服务器繁忙,请稍后重试"};function bd(e){const n=e&&e.message;if(!n)return null;const t=n.replace(/\s*\(\d+\)\s*$/,"").trim().toLowerCase();return jd[t]||null}const yd={INVITE_CODE_REQUIRED:"请填写邀请码",INVITE_CODE_INVALID:"邀请码错误,请重新输入",INVITE_CODE_REVOKED:"邀请码已被撤销,请联系管理员获取新的邀请码",INVITE_CODE_EXPIRED:"邀请码已过期,请联系管理员获取新的邀请码"};function wd(e){const n=e&&e.reason;return n&&yd[n]||"注册信息校验未通过,请检查后重试"}class vd extends n().Component{constructor(e){super(e),this.selfRef=n().createRef(),this.previewPrefetchAttempted=new Set,this.state=this.getBlankState(),this.handleResize=this.handleResize.bind(this),this.handleRouteChange=this.handleRouteChange.bind(this),this.handleOnline=this.handleOnline.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleColorSchemeChange=this.handleColorSchemeChange.bind(this),this.checkForAppUpdate=this.checkForAppUpdate.bind(this),this.handleVisibilityEvent=this.handleVisibilityEvent.bind(this),this.handleError=this.handleError.bind(this),this.handleLoginRequest=this.handleLoginRequest.bind(this),this.handlePersistenceChange=this.handlePersistenceChange.bind(this),this.handleConnected=this.handleConnected.bind(this),this.handleAutoreconnectIteration=this.handleAutoreconnectIteration.bind(this),this.doLogin=this.doLogin.bind(this),this.handleLoginSuccessful=this.handleLoginSuccessful.bind(this),this.handleTenantResolved=this.handleTenantResolved.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.tnMeMetaDesc=this.tnMeMetaDesc.bind(this),this.tnMeContactUpdate=this.tnMeContactUpdate.bind(this),this.tnMeSubsUpdated=this.tnMeSubsUpdated.bind(this),this.resetContactList=this.resetContactList.bind(this),this.tnInitFind=this.tnInitFind.bind(this),this.tnFndSubsUpdated=this.tnFndSubsUpdated.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleTopicSelected=this.handleTopicSelected.bind(this),this.handleHideMessagesView=this.handleHideMessagesView.bind(this),this.handleSendMessage=this.handleSendMessage.bind(this),this.handleNewChatInvitation=this.handleNewChatInvitation.bind(this),this.handleNewAccount=this.handleNewAccount.bind(this),this.handleNewAccountRequest=this.handleNewAccountRequest.bind(this),this.handleImRegisterRequest=this.handleImRegisterRequest.bind(this),this.handleUpdatePasswordRequest=this.handleUpdatePasswordRequest.bind(this),this.handleUpdateAccountTagsRequest=this.handleUpdateAccountTagsRequest.bind(this),this.handleToggleIncognitoMode=this.handleToggleIncognitoMode.bind(this),this.handleChangeColorSchema=this.handleChangeColorSchema.bind(this),this.handleChangeTextSize=this.handleChangeTextSize.bind(this),this.handleSendOnEnter=this.handleSendOnEnter.bind(this),this.handleSelectWallpapers=this.handleSelectWallpapers.bind(this),this.handleWallpaperSelected=this.handleWallpaperSelected.bind(this),this.handleSettings=this.handleSettings.bind(this),this.handleGlobalSettings=this.handleGlobalSettings.bind(this),this.handleShowArchive=this.handleShowArchive.bind(this),this.handleShowBlocked=this.handleShowBlocked.bind(this),this.handleToggleMessageSounds=this.handleToggleMessageSounds.bind(this),this.handleCredAdd=this.handleCredAdd.bind(this),this.handleCredDelete=this.handleCredDelete.bind(this),this.handleCredConfirm=this.handleCredConfirm.bind(this),this.initFCMessaging=this.initFCMessaging.bind(this),this.toggleFCMToken=this.toggleFCMToken.bind(this),this.handlePushMessage=this.handlePushMessage.bind(this),this.handleSidepanelCancel=this.handleSidepanelCancel.bind(this),this.handleStartTopicRequest=this.handleStartTopicRequest.bind(this),this.handleNewTopicCreated=this.handleNewTopicCreated.bind(this),this.handleTopicUpdateRequest=this.handleTopicUpdateRequest.bind(this),this.handleUnarchive=this.handleUnarchive.bind(this),this.handleChangePermissions=this.handleChangePermissions.bind(this),this.handleTagsUpdateRequest=this.handleTagsUpdateRequest.bind(this),this.handleLogout=this.handleLogout.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleDeleteTopicRequest=this.handleDeleteTopicRequest.bind(this),this.handleDeleteMessagesRequest=this.handleDeleteMessagesRequest.bind(this),this.handleLeaveUnsubRequest=this.handleLeaveUnsubRequest.bind(this),this.handleBlockTopicRequest=this.handleBlockTopicRequest.bind(this),this.handleReportTopic=this.handleReportTopic.bind(this),this.handleShareTheCard=this.handleShareTheCard.bind(this),this.handleShowContextMenu=this.handleShowContextMenu.bind(this),this.defaultTopicContextMenu=this.defaultTopicContextMenu.bind(this),this.handleHideContextMenu=this.handleHideContextMenu.bind(this),this.handleShowAlert=this.handleShowAlert.bind(this),this.handleShowInfoView=this.handleShowInfoView.bind(this),this.handleMemberUpdateRequest=this.handleMemberUpdateRequest.bind(this),this.handleValidateCredentialsRequest=this.handleValidateCredentialsRequest.bind(this),this.handlePasswordResetRequest=this.handlePasswordResetRequest.bind(this),this.handleResetPassword=this.handleResetPassword.bind(this),this.handleContextMenuAction=this.handleContextMenuAction.bind(this),this.handleShowCountrySelector=this.handleShowCountrySelector.bind(this),this.handleShowForwardDialog=this.handleShowForwardDialog.bind(this),this.handleHideForwardDialog=this.handleHideForwardDialog.bind(this),this.handleEnterSelectMode=this.handleEnterSelectMode.bind(this),this.handleToggleMessageSelect=this.handleToggleMessageSelect.bind(this),this.handleExitSelectMode=this.handleExitSelectMode.bind(this),this.handleShowBatchForward=this.handleShowBatchForward.bind(this),this.handleHideBatchForward=this.handleHideBatchForward.bind(this),this.handleOpenScanner=this.handleOpenScanner.bind(this),this.handleCloseScanner=this.handleCloseScanner.bind(this),this.handleQrDetected=this.handleQrDetected.bind(this),this.handleSubmitGroupJoinRequest=this.handleSubmitGroupJoinRequest.bind(this),this.handleCancelGroupJoinPreview=this.handleCancelGroupJoinPreview.bind(this),this.handleStartVideoCall=this.handleStartVideoCall.bind(this),this.handleStartAudioCall=this.handleStartAudioCall.bind(this),this.handleInfoMessage=this.handleInfoMessage.bind(this),this.handleDataMessage=this.handleDataMessage.bind(this),this.handleCallClose=this.handleCallClose.bind(this),this.handleCallInvite=this.handleCallInvite.bind(this),this.handleCallRinging=this.handleCallRinging.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.handleCallSendOffer=this.handleCallSendOffer.bind(this),this.handleCallIceCandidate=this.handleCallIceCandidate.bind(this),this.handleCallSendAnswer=this.handleCallSendAnswer.bind(this),this.handleCallAccept=this.handleCallAccept.bind(this),this.sendMessageToTopic=this.sendMessageToTopic.bind(this),this.callTimeoutTimer=null}getBlankState(){const e=dd.A.getObject("settings")||{},n=!!dd.A.getObject("keep-logged-in");if(!e.wallpaper){const n=(0,Et.KY)();e.wallpaper=n.name||"",e.wallpaperSize=n.size||0,e.wallpaperBlur=0}return{connected:!1,ready:!1,autoLogin:!1,transport:e.transport||null,serverAddress:e.serverAddress||ld(),secureConnection:void 0===e.secureConnection?cd():e.secureConnection,serverVersion:"no connection",messageSounds:!e.messageSoundsOff,incognitoMode:!1,colorSchema:e.colorSchema||"auto",systemColorSchema:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",wallpaper:e.wallpaper,wallpaperSize:e.wallpaperSize,wallpaperBlur:0,textSize:e.textSize||10,sendOnEnter:e.sendOnEnter||"plain",desktopAlerts:n&&!!e.desktopAlerts,desktopAlertsEnabled:(cd()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==Ae&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:n?dd.A.getObject("firebase-token"):null,applicationVisible:!document.hidden,errorText:"",errorLevel:null,errorAction:void 0,errorActionText:null,sidePanelSelected:"tenant",sidePanelParams:{},sidePanelTitle:null,sidePanelAvatar:null,myTrustedBadges:[],loadSpinnerVisible:!1,login:"",password:"",persist:n,myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=640,infoPanel:void 0,mobilePanel:"sidepanel",callTopic:void 0,callState:0,callAudioOnly:void 0,callShouldStart:!1,contextMenuVisible:!1,contextMenuBounds:null,contextMenuClickAt:null,contextMenuParams:null,contextMenuItems:[],forwardDialogVisible:!1,forwardMessage:null,selectMode:!1,selectModeTopic:null,selectedSeqs:[],batchForwardVisible:!1,scannerOpen:!1,groupJoinPreview:null,alertVisible:!1,alertParams:{},chatList:[],searchResults:[],searchableContacts:[],reqCredMethod:void 0,credMethod:void 0,credCode:void 0,credToken:void 0,requestedTopic:void 0}}componentDidMount(){window.addEventListener("resize",this.handleResize),this.handleOnlineOn=e=>{this.handleOnline(!0)},window.addEventListener("online",this.handleOnlineOn),this.handleOnlineOff=e=>{this.handleOnline(!1)},window.addEventListener("offline",this.handleOnlineOff),window.addEventListener("popstate",this.handleRouteChange),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.handleColorSchemeChange),document.addEventListener("visibilitychange",this.handleVisibilityEvent),document.addEventListener("keydown",this.handleEscapeKey),document.documentElement.style.colorScheme="auto"==this.state.colorSchema?"light dark":this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`),this.applyWallpaperSettings(this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema),"function"==typeof BroadcastChannel?new BroadcastChannel("tinode-sw").addEventListener("message",this.handlePushMessage):console.warn("Your browser does not support BroadcastChannel. Some features will not be available"),this.lastWakeUpCheck=(new Date).getTime(),this.wakeUpTicker=setInterval(e=>{const n=(new Date).getTime();n-this.lastWakeUpCheck>8e4&&this.handleOnlineOn(),this.lastWakeUpCheck=n},1e3),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),new Promise((e,n)=>{this.tinode=vd.tnSetup(this.state.serverAddress,this.state.secureConnection,this.state.transport,this.props.intl.locale,this.state.persist,e),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage}).then(e=>{this.state.desktopAlertsEnabled&&this.initFCMessaging().catch(e=>{}),this.resetContactList();const n=this.state.persist?dd.A.getObject("auth-token"):void 0;n&&(this.setState({autoLogin:!0}),n.expires=new Date(n.expires),this.tinode.setAuthToken(n),this.tinode.connect().catch(e=>{this.handleError(e.message,"err")}));const t=is.A.parseUrl(is.A.currentUrl());if(fd.includes(t.path[0])&&t.path[0])this.handleRouteChange();else{this.setState({requestedTopic:t.path[1]});const e=t.params&&t.params.cred_done?is.A.addUrlParam("","cred_done",t.params.cred_done):"";is.A.navigateTo(e)}})}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("popstate",this.handleRouteChange),window.removeEventListener("online",this.handleOnlineOn),window.removeEventListener("offline",this.handleOnlineOff),window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",this.handleColorSchemeChange),document.removeEventListener("visibilitychange",this.handleVisibilityEvent),document.removeEventListener("keydown",this.handleEscapeKey),clearInterval(this.wakeUpTicker)}static tnSetup(e,n,t,s,i,o){const a=new wt.Tinode({appName:Ct.C3,host:e,apiKey:Ct.Lq,transport:t,secure:n,persist:i},o);return a.setHumanLanguage(s),a.enableLogging(!0,!0),vd.installTenantHiPatch(a),a}static installTenantHiPatch(e){const n=e&&e._connection;if(!n||n.__tenantPatched)return;const t=n.sendText.bind(n);n.sendText=n=>{if("string"==typeof n&&(n.indexOf('"hi":')>=0||n.indexOf('"acc":')>=0))try{const t=JSON.parse(n);if(t.hi){const e=(0,zt.E6)();e&&e.code&&(t.hi.tenant=e.code,n=JSON.stringify(t))}else t.acc&&e.__pendingAccExtra&&(Object.assign(t.acc,e.__pendingAccExtra),e.__pendingAccExtra=null,n=JSON.stringify(t))}catch(e){}return t(n)},n.__tenantPatched=!0}handlePushMessage(e){this.tinode.oobNotification(e.data||{})}initFCMessaging(){const{locale:e}=this.props.intl,n=(e,n)=>{console.error(e,n),this.setState({firebaseToken:null}),dd.A.updateObject("settings",{desktopAlerts:!1})};try{return this.fcm=jt(Ae(FIREBASE_INIT,Ct.iv)),navigator.serviceWorker.getRegistration("/service-worker.js").then(e=>e||navigator.serviceWorker.register("/service-worker.js").then(e=>(this.checkForAppUpdate(e),e))).then(n=>((n.active||n.installing).postMessage(JSON.stringify({locale:e,version:"0.25.3"})),vd.requestFCMToken(this.fcm,n))).then(e=>{const n=dd.A.getObject("keep-logged-in");var t,s;e!=this.state.firebaseToken&&(this.tinode.setDeviceToken(e),n&&dd.A.setObject("firebase-token",e)),this.setState({firebaseToken:e,desktopAlerts:!0}),n&&dd.A.updateObject("settings",{desktopAlerts:!0}),t=this.fcm,s=e=>{this.handlePushMessage(e)},function(e,n){if(!navigator)throw Dn.create("only-available-in-window");e.onMessageHandler=n}(t=b(t),s)}).catch(e=>{throw n(e),e})}catch(e){return n(e),Promise.reject(e)}}static requestFCMToken(e,n){return bt(e,{serviceWorkerRegistration:n,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(t=>{if(t)return t;if("undefined"!=typeof Notification)return Notification.requestPermission().then(t=>{if("granted"===t)return bt(e,{serviceWorkerRegistration:n,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(e=>{if(e)return e;throw new Error("Failed to initialize notifications")});throw new Error("No permission to send notifications: "+t)});throw new Error("Notifications are not supported")})}handleResize(){const e=document.documentElement.clientWidth<=640;this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.state.displayMobile!=e&&this.setState({displayMobile:e})}handleEscapeKey(e){"Escape"!==e.key&&27!==e.keyCode||(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null,contextMenuVisible:!1,forwardDialogVisible:!1,alertVisible:!1}),is.A.navigateTo(is.A.setUrlTopic("",null)))}checkForAppUpdate(e){e.onupdatefound=n=>{const t=e.installing;t.onstatechange=e=>{if("installed"==t.state&&navigator.serviceWorker.controller){const e=(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(s.FormattedMessage,{id:"update_available",defaultMessage:"Update available.",description:"Message shown when an app update is available."})," ",(0,vt.jsx)("a",{href:"",children:(0,vt.jsx)(s.FormattedMessage,{id:"reload_update",defaultMessage:"Reload",description:"Call to action to reload application when update is available."})}),"."]});this.handleError(e,"info")}}}}handleRouteChange(){const e=is.A.parseUrl(is.A.currentUrl());if(e.path&&xd.includes(e.path[0])&&this.tinode.isAuthenticated())return void is.A.navigateTo("");const n={infoPanel:e.params.info,newTopicTabSelected:e.params.tab};if(e.path&&e.path.length>0){fd.includes(e.path[0])?(n.sidePanelSelected=e.path[0],n.sidePanelParams=e.params):console.warn("Unknown sidepanel view",e.path[0]);let t=e.path[1]||null;t!=this.state.topicSelected&&(wt.Tinode.topicType(t)&&this.tinode.isAuthenticated()?n.mobilePanel="topic-view":(t=null,n.mobilePanel="sidepanel"),Object.assign(n,{topicSelected:t,topicSelectedAcs:this.tinode.getTopicAccessMode(t)}))}else Object.assign(n,{sidePanelSelected:"",sidePanelParams:{},topicSelected:null});e.params.method&&(n.credMethod=e.params.method),e.params.code&&(n.credCode=e.params.code),e.params.token&&(n.credToken=e.params.token),e.params.cred_done&&Object.assign(n,vd.stateForError(this.props.intl.formatMessage(md.cred_confirmed_successfully),"info")),this.setState(n)}handleOnline(e){e?(this.handleError(),clearInterval(this.reconnectCountdown),this.tinode.reconnect()):this.handleError(this.props.intl.formatMessage(md.no_connection),"warn"),this.setState({liveConnection:e})}handleVisibilityEvent(){this.setState({applicationVisible:!document.hidden})}static stateForError(e,n,t,s){return{errorText:e,errorLevel:n,errorAction:t,errorActionText:s,callShouldStart:!1}}handleError(e,n,t,s){this.setState(vd.stateForError(e,n,t,s))}handleLoginRequest(e,n){this.setState({loginDisabled:!0,login:e,password:n,loadSpinnerVisible:!0,autoLogin:!0}),this.handleError("",null),this.tinode.isConnected()?this.doLogin(e,n,null,{meth:this.state.credMethod,resp:this.state.credCode}):this.tinode.connect().catch(e=>{this.setState({loginDisabled:!1,autoLogin:!1,loadSpinnerVisible:!1}),this.handleError(e.message,"err")}),this.state.desktopAlertsEnabled&&!this.state.firebaseToken&&this.initFCMessaging()}handlePersistenceChange(e){e?this.tinode.initStorage().then(e=>{dd.A.setObject("keep-logged-in",!0),this.setState({persist:!0})}):this.tinode.clearStorage().then(e=>{dd.A.setObject("keep-logged-in",!1),this.setState({persist:!1})})}handleConnected(){clearInterval(this.reconnectCountdown),this.handleError();const e=this.tinode.getServerInfo();this.setState({serverVersion:e.ver+" "+(e.build?e.build:"none"),reqCredMethod:((e.reqCred||{}).auth||[])[0]||"email"}),this.state.autoLogin&&this.doLogin(this.state.login,this.state.password,null,{meth:this.state.credMethod,resp:this.state.credCode})}handleAutoreconnectIteration(e,n){if(clearInterval(this.reconnectCountdown),e<0)return void this.handleError();if(n)return void n.then(e=>{this.handleError()}).catch(e=>{this.handleError(e.message,"err")});const{formatMessage:t}=this.props.intl;let s=e/1e3;s|=s,this.reconnectCountdown=setInterval(e=>{if(s<-10)return clearInterval(this.reconnectCountdown),void this.tinode.reconnect();const n=s>99?(0,Ot.Ye)(s):s;this.handleError(t(md.reconnect_countdown,{seconds:n}),"warn",e=>{clearInterval(this.reconnectCountdown),this.tinode.reconnect()},t(md.reconnect_now)),s-=1},1e3)}handleDisconnect(e){const n=bd(e);this.setState({connected:!1,ready:!1,topicSelectedOnline:!1,errorText:n||(e&&e.message?e.message:"Disconnected"),errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,forwardDialogVisible:!1,serverVersion:"no connection"})}doLogin(e,n,t,s){if(this.tinode.isAuthenticated())return void is.A.navigateTo("");let i=t||(this.tinode.getAuthToken()||{}).token;if(!(e&&n||i))return is.A.navigateTo(""),void this.setState({loginDisabled:!1});s=wt.Tinode.credential(s);let o,a=this.tinode.isConnected()?Promise.resolve():this.tinode.connect();e&&n?(i=null,this.setState({password:null}),o=a.then(t=>this.tinode.loginBasic(e,n,s))):o=a.then(e=>this.tinode.loginToken(i,s)),o.then(e=>{e.code>=300&&"validate credentials"===e.text?(this.setState({loadSpinnerVisible:!1}),s&&this.handleError(this.props.intl.formatMessage(md.code_doesnot_match),"warn"),vd.navigateToCredentialsView(e.params)||s||this.handleError(wd(e.params),"err")):this.handleLoginSuccessful()}).catch(e=>{const n=e.code>=500;this.setState({loginDisabled:!1,credMethod:void 0,credCode:void 0,loadSpinnerVisible:!1,autoLogin:n}),this.handleError(function(e){return bd(e)||(!e||401!==e.code&&403!==e.code?e&&e.message||"登录失败,请重试":"账号或密码错误")}(e),"err"),console.warn("Login failed",e),n||i&&(this.handleLogout(),is.A.navigateTo(""))})}static navigateToCredentialsView(e){if(!Array.isArray(e.cred)||!e.cred.length)return!1;const n=is.A.parseUrl(is.A.currentUrl());return n.path[0]="cred",n.params.method=e.cred[0],n.params.token=e.token,n.params.code=e.code,is.A.navigateTo(is.A.composeUrl(n.path,n.params)),!0}handleLoginSuccessful(){this.handleError(),dd.A.getObject("keep-logged-in")&&dd.A.setObject("auth-token",this.tinode.getAuthToken());const e=this.tinode.getAuthToken();sessionStorage.setItem("im-session-token",e?e.token:"");const n=this.state.requestedTopic||this.state.topicSelected,t=this.tinode.getMeTopic();t.onMetaDesc=this.tnMeMetaDesc,t.onContactUpdate=this.tnMeContactUpdate,t.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,loginDisabled:!1,credMethod:void 0,credCode:void 0,credToken:void 0,myUserId:this.tinode.getCurrentUserID(),autoLogin:!0,requestedTopic:void 0}),t.subscribe(t.startMetaQuery().withLaterSub().withDesc().withTags().withCred().build()).catch(e=>{this.tinode.disconnect(),localStorage.removeItem("auth-token"),this.handleError(e.message,"err"),is.A.navigateTo("")}).finally(e=>{this.setState({loadSpinnerVisible:!1})});const s=is.A.parseUrl(is.A.currentUrl()).path[0];let i=s&&!xd.includes(s)&&fd.includes(s)?is.A.currentUrl():is.A.setUrlSidePanel(is.A.currentUrl(),"workbench");n&&(i=is.A.setUrlTopic(i,n)),is.A.navigateTo(i)}tnMeMetaDesc(e){if(e){if(e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:(0,Lt.to)(e.public.photo)}),e.trusted){const n=[];for(const[t,s]of Object.entries(e.trusted))s&&n.push(t);this.setState({myTrustedBadges:n})}e.acs&&this.setState({incognitoMode:!e.acs.isPresencer()}),vd.checkIfPinsUpdated(e,this.state.chatList)&&this.resetContactList()}}tnMeContactUpdate(e,n){if("on"==e||"off"==e)this.resetContactList(),this.state.topicSelected==n.topic&&this.setState({topicSelectedOnline:"on"==e});else if("read"==e)this.resetContactList();else if("msg"==e&&n){const e=this.tinode.getTopic(n.topic),t=e&&e.isArchived();n.unread>0&&this.state.messageSounds&&!t&&(document.hidden||this.state.topicSelected!=n.topic)&&pd.play().catch(e=>{}),this.resetContactList()}else"recv"==e||("gone"==e||"unsub"==e?(this.state.topicSelected==n.topic&&this.handleTopicSelected(null),this.resetContactList()):"acs"==e?this.state.topicSelected==n.topic&&this.setState({topicSelectedAcs:n.acs}):"del"==e||"upd"==e||"call"==e||console.info("Unsupported (yet) presence update:",e,"in",(n||{}).topic))}tnMeSubsUpdated(e){this.resetContactList()}static prepareSearchableContacts(e,n){const t={};for(const n of e)wt.Tinode.isP2PTopicName(n.topic)&&(t[n.topic]={user:n.topic,updated:n.updated,public:n.public,private:n.private,acs:n.acs});for(const e of n)t[e.user]||(t[e.user]=e);return Object.values(t)}resetContactList(){const e={chatList:[]};this.state.ready||(e.ready=!0);const n=this.tinode.getMeTopic();n.contacts(n=>{n.topic||n.user||(n.topic=n.name),e.chatList.push(n),this.state.topicSelected==n.topic&&(e.topicSelectedOnline=n.online,e.topicSelectedAcs=n.acs)}),this.prefetchLatestMessagePreviews(e.chatList);const t=new Date(0);e.chatList.sort((e,s)=>{const i=n.pinnedTopicRank(s.topic)-n.pinnedTopicRank(e.topic);return 0!=i?i:(s.touched||t).getTime()-(e.touched||t).getTime()}),e.searchableContacts=vd.prepareSearchableContacts(e.chatList,this.state.searchResults),this.setState(e)}prefetchLatestMessagePreviews(e){if(this.tinode.isConnected())for(const n of e)!n.topic||n.seq<=0||n.latestMessage()||this.previewPrefetchAttempted.has(n.topic)||(this.previewPrefetchAttempted.add(n.topic),n.subscribe(n.startMetaQuery().withLaterData(1).build()).catch(e=>{console.warn(`Failed to prefetch latest message for '${n.topic}'`,e)}))}static checkIfPinsUpdated(e,n){for(let t=0;t<n.length;t++){const s=n[t];if(!!e.pinnedTopicRank(s.topic)!=s.pinned)return!0}return!1}tnInitFind(){const e=this.tinode.getFndTopic();e.onSubsUpdated=this.tnFndSubsUpdated,e.isSubscribed()?this.tnFndSubsUpdated():e.subscribe(e.startMetaQuery().withSub().build()).catch(e=>{this.handleError(e.message,"err")})}tnFndSubsUpdated(){const e=[];this.tinode.getFndTopic().contacts(n=>{e.push(n)}),this.setState({searchResults:e,searchableContacts:vd.prepareSearchableContacts(this.state.chatList,e)})}handleSearchContacts(e){const n=this.tinode.getFndTopic();n.setMeta({desc:{public:e}}).then(e=>n.getMeta(n.startMetaQuery().withSub().build())).catch(e=>this.handleError(e.message,"err"))}handleTopicSelected(e){this.state.newTopicParams&&this.state.newTopicParams._topicName!=e&&this.setState({newTopicParams:null}),e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",infoPanel:void 0}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:this.tinode.isTopicOnline(e),topicSelectedAcs:this.tinode.getTopicAccessMode(e),forwardMessage:null}),is.A.navigateTo(is.A.setUrlTopic("",e)))):(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null}),is.A.navigateTo(is.A.setUrlTopic("",null)))}handleHideMessagesView(){this.setState({mobilePanel:"sidepanel"}),is.A.goBack()||is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),null))}handleSendMessage(e,n,t,s){const i=this.tinode.getTopic(this.state.topicSelected);return this.sendMessageToTopic(i,e,n,t,s)}sendMessageToTopic(e,n,t,s,i){(n=e.createMessage(n,!1))._uploader=s,i&&(n.head=Object.assign(n.head||{},i));const o=[];if(t&&o.push(t),!e.isSubscribed()){const t=e.subscribe().then(t=>{let s=[];e.queuedMessages(t=>{t._sending||t.seq==n.seq||(t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&e.publishMessage(t))}),s.length>0&&e.delMessagesList(s,!0)});o.push(t)}return e.publishDraft(n,Promise.all(o)).then(n=>(e.isArchived()&&e.archive(!1),n)).catch(e=>this.handleError(e.message,"err"))}handleNewChatInvitation(e,n){const t=this.tinode.getTopic(e);let s=null;switch(n){case"accept":const i=t.getAccessMode().getGiven();s=t.setMeta({sub:{mode:i}}),t.isP2PType()&&(s=s.then(n=>t.setMeta({sub:{user:e,mode:i}})));break;case"delete":s=t.delTopic(!0);break;case"block":const o=t.getAccessMode().updateWant("-JP").getWant();s=t.setMeta({sub:{mode:o}}).then(e=>this.handleTopicSelected(null));break;default:console.warn("Unknown invitation action",'"'+n+'""')}null!=s&&s.catch(e=>this.handleError(e.message,"err"))}handleNewAccount(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"register"))}handleNewAccountRequest(e,n,t,s,i){this.handleError(),this.tinode.connect(this.state.serverAddress).then(o=>{let a;return t&&t.photo&&t.photo.ref&&(a=[t.photo.ref]),this.tinode.createAccountBasic(e,n,{public:t,tags:i,cred:s?wt.Tinode.credential(s):void 0,attachments:a})}).then(e=>{e.code>=300&&"validate credentials"==e.text?vd.navigateToCredentialsView(e.params)||this.handleError(wd(e.params),"err"):this.handleLoginSuccessful(this)}).catch(e=>{const n=bd(e);this.handleError(n||e&&e.message||"注册失败,请稍后重试","err")})}handleImRegisterRequest(e,n,t,s,i){this.tinode.__pendingAccExtra=s,this.handleNewAccountRequest(e,n,(0,Et.k6)(t,null),i)}handleToggleIncognitoMode(e){this.setState({incognitoMode:null});const n=this.tinode.getMeTopic(),t=n.getAccessMode().updateWant(e?"-P":"+P").getWant();n.setMeta({sub:{mode:t}}).catch(n=>{this.setState({incognitoMode:!e}),this.handleError(n.message,"err")})}handleChangeColorSchema(e){this.setState({colorSchema:e}),dd.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme="auto"==e?"light dark":e,this.applyColorSchema(e,this.state.systemColorSchema,this.state.wallpaperSize)}handleColorSchemeChange(e){const n=e.matches?"dark":"light";this.setState({systemColorSchema:n}),this.applyColorSchema(this.state.colorSchema,n,this.state.wallpaperSize)}applyColorSchema(e,n,t){const s="auto"==e?n:e;document.documentElement.style.setProperty("--wallpaper-invert","dark"==s&&t?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=s||t?"1":"0.5")}handleSelectWallpapers(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"wallpapers"))}applyWallpaperSettings(e,n,t,s){document.documentElement.style.setProperty("--wallpaper-url",`url('${e}')`),document.documentElement.style.setProperty("--wallpaper-repeat",n?"repeat":"no-repeat"),document.documentElement.style.setProperty("--wallpaper-blur",n?"0px":`${t}px`),document.documentElement.style.setProperty("--wallpaper-size",n?`${n}px`:"cover"),document.documentElement.style.setProperty("--wallpaper-position",n?"unset":"center"),document.documentElement.style.setProperty("--wallpaper-invert","dark"==s&&n?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=s||n?"1":"0.5")}handleWallpaperSelected(e,n,t){this.handleError(),dd.A.updateObject("settings",{wallpaper:e,wallpaperSize:n,wallpaperBlur:t}),this.setState({wallpaper:e,wallpaperSize:n,wallpaperBlur:t}),this.applyWallpaperSettings(e,n,t,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema)}handleChangeTextSize(e){this.setState({textSize:0|e}),dd.A.updateObject("settings",{textSize:e}),document.documentElement.style.setProperty("--message-text-size",`${e}pt`)}handleSendOnEnter(e){this.setState({sendOnEnter:e}),dd.A.updateObject("settings",{sendOnEnter:e})}handleUpdateAccountTagsRequest(e,n){this.tinode.getMeTopic().setMeta({tags:n}).catch(e=>this.handleError(e.message,"err"))}handleSettings(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"edit":"settings"))}handleGlobalSettings(e){const n=e.serverAddress||this.state.serverAddress,t=e.transport||this.state.transport,s=void 0===e.secureConnection?this.state.secureConnection:e.secureConnection;this.tinode&&(this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=vd.tnSetup(n,s,t,this.props.intl.locale,dd.A.getObject("keep-logged-in")),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,this.setState({serverAddress:n,transport:t,secureConnection:s}),dd.A.setObject("settings",{serverAddress:n,transport:t,secureConnection:s}),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),""))}handleTenantResolved(e,n){const t=e.tenant||{},s=e.endpoints||{};dd.A.setObject("im-tenant",{code:t.code||n,name:t.name||t.code||n,endpoints:s});let i=this.state.serverAddress,o=this.state.secureConnection;if(s.websocket)try{const e=new URL(s.websocket);i=e.host,o="wss:"===e.protocol}catch(e){}!i||i===this.state.serverAddress&&o===this.state.secureConnection||this.handleGlobalSettings({serverAddress:i,secureConnection:o})}handleShowArchive(){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"archive":""))}handleShowBlocked(){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"blocked":""))}toggleFCMToken(e){e?(this.setState({desktopAlerts:null}),this.state.firebaseToken?(this.setState({desktopAlerts:!0}),dd.A.getObject("keep-logged-in")&&dd.A.updateObject("settings",{desktopAlerts:!0})):this.initFCMessaging()):this.state.firebaseToken&&this.fcm?yt(this.fcm).catch(e=>{console.error("Unable to delete token.",e)}).finally(e=>{dd.A.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),this.setState({desktopAlerts:!1,firebaseToken:null}),this.tinode.setDeviceToken(null)}):(this.setState({desktopAlerts:!1,firebaseToken:null}),dd.A.updateObject("settings",{desktopAlerts:!1}))}handleToggleMessageSounds(e){this.setState({messageSounds:e}),dd.A.updateObject("settings",{messageSoundsOff:!e})}handleCredAdd(e,n){this.tinode.getMeTopic().setMeta({cred:{meth:e,val:n}}).catch(e=>this.handleError(e.message,"err"))}handleCredDelete(e,n){this.tinode.getMeTopic().delCredential(e,n).catch(e=>this.handleError(e.message,"err"))}handleCredConfirm(e,n){vd.navigateToCredentialsView({cred:[e],code:n})}handleSidepanelCancel(){const e=is.A.parseUrl(is.A.currentUrl());let n="";["security","support","general","notif","acc_general"].includes(e.path[0])?n="edit":"crop"==e.path[0]?n="general":"blocked"==e.path[0]?n="security":"wallpapers"==e.path[0]?n="acc_general":this.state.myUserId&&(n="contacts"),e.path[0]=n,e.params&&(delete e.params.code,delete e.params.method,delete e.params.tab,delete e.params.scheme,delete e.params.token),is.A.navigateTo(is.A.composeUrl(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}basicNavigator(e){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),e))}infoNavigator(e){is.A.navigateTo(is.A.setUrlInfoPanel(is.A.currentUrl(),e))}handleStartTopicRequest(e,n,t){if(e&&this.tinode.isTopicCached(e))return void this.handleTopicSelected(e);const s={};wt.Tinode.isP2PTopicName(e)?(s.sub={mode:"JRWPS"},s.desc={defacs:{auth:"JRWPS"}}):(e=e||this.tinode.newGroupTopicName(t),n&&(s.desc={public:n.public,private:{comment:n.private}},s.tags=n.tags)),s._topicName=e,this.setState({newTopicParams:s},n=>{this.handleTopicSelected(e)})}handleNewTopicCreated(e,n){let t={};this.state.callShouldStart&&(t={callState:3,callShouldStart:!1}),this.state.topicSelected==e&&e!=n&&(t.topicSelected=n),this.setState(t,e=>{is.A.navigateTo(is.A.setUrlTopic("",n))})}handleTopicUpdateRequest(e,n,t,s){this.handleError();const i=this.tinode.getTopic(e);if(i){const e={};let o;n&&(n.photo&&(n.photo.ref&&n.photo.ref!=wt.Tinode.DEL_CHAR?o=[n.photo.ref]:n.photo.data&&n.photo.data!=wt.Tinode.DEL_CHAR||(n.photo=wt.Tinode.DEL_CHAR)),e.public=n),"string"==typeof t&&(e.private=t===wt.Tinode.DEL_CHAR?wt.Tinode.DEL_CHAR:{comment:t}),s&&(e.defacs=s),i.setMeta({desc:e,attachments:o}).catch(e=>this.handleError(e.message,"err"))}}handleUnarchive(e){const n=this.tinode.getTopic(e);n&&n.archive(!1).catch(e=>this.handleError(e.message,"err"))}handleUpdatePasswordRequest(e){return this.handleError(),e?this.tinode.updateAccountBasic(null,this.tinode.getCurrentLogin(),e).catch(e=>{throw this.handleError(e.message,"err"),e}):Promise.reject(new Error("密码不能为空"))}handleChangePermissions(e,n,t){const s=this.tinode.getTopic(e);if(s){const e=s.getAccessMode();t?(e.updateGiven(n),n=e.getGiven()):(e.updateWant(n),n=e.getWant()),s.setMeta({sub:{user:t,mode:n}}).catch(e=>this.handleError(e.message,"err"))}}handleTagsUpdateRequest(e,n){const t=this.tinode.getTopic(e);t&&t.setMeta({tags:n}).catch(e=>this.handleError(e.message,"err"))}handleLogout(){let e;(0,Et.OM)(0),localStorage.removeItem("auth-token"),localStorage.removeItem("firebase-token"),localStorage.removeItem("settings"),sessionStorage.removeItem("im-session-token"),this.state.firebaseToken&&this.fcm&&yt(this.fcm).catch(e=>{console.warn("Failed to delete FCM token on logout",e)}),document.documentElement.style.colorScheme="light dark",document.documentElement.style.setProperty("--message-text-size","10pt"),clearInterval(this.reconnectCountdown),this.tinode?(e=this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()):e=Promise.resolve(),this.setState(this.getBlankState()),e.then(e=>{this.tinode=vd.tnSetup(this.state.serverAddress,this.state.secureConnection,this.state.transport,this.props.intl.locale,dd.A.getObject("keep-logged-in"),e=>{this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,is.A.navigateTo("")})})}handleDeleteAccount(){return this.tinode.delCurrentUser(!0).then(e=>{this.handleLogout()})}handleDeleteTopicRequest(e){const n=this.tinode.getTopic(e);n&&n.delTopic(!0).then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>{this.handleError(e.message,"err")})}handleDeleteMessagesRequest(e){const n=this.tinode.getTopic(e);n&&n.delMessagesAll(!0).catch(e=>this.handleError(e.message,"err"))}handleLeaveUnsubRequest(e){const n=this.tinode.getTopic(e);n&&n.leave(!0).then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>{this.handleError(e.message,"err")})}handleBlockTopicRequest(e){const n=this.tinode.getTopic(e);n&&n.updateMode(null,"-JP").then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>this.handleError(e.message,"err"))}handleReportTopic(e){const n=this.tinode.getTopic(e);if(!n)return;const t=n.isP2PType(),s=(0,Et.TP)(e,n.public,e),i=t?{target_type:"user",target_id:e,target_name:s}:{target_type:"group",target_id:e,topic:e,target_name:s};n.updateMode(null,"-JP").then(e=>{let n=is.A.setUrlTopic(is.A.currentUrl(),"");n=is.A.setUrlSidePanel(n,"abuse-report-reasons"),Object.entries(i).forEach(([e,t])=>{n=is.A.addUrlParam(n,e,t)}),is.A.navigateTo(n)}).catch(e=>this.handleError(e.message,"err"))}handleShowContextMenu(e,n){this.setState({contextMenuVisible:!0,contextMenuClickAt:{x:e.x,y:e.y},contextMenuParams:e,contextMenuItems:n||this.defaultTopicContextMenu(e.topicName),contextMenuBounds:this.selfRef.current.getBoundingClientRect()})}handleShowForwardDialog(e){"newtpk"==this.state.sidePanelSelected&&this.handleSidepanelCancel();const n=e.userName?"➦ "+e.userName:"",t="string"==typeof e.content?wt.Drafty.init(e.content):wt.Drafty.forwardedContent(e.content),s=wt.Drafty.preview(t,84,!0),i=wt.Drafty.append(wt.Drafty.appendLineBreak(wt.Drafty.mention(n,e.userFrom)),t),o=wt.Drafty.quote(n,e.userFrom,s),a={forwarded:e.topicName+":"+e.seq};this.setState({forwardDialogVisible:!0,forwardMessage:{head:a,msg:i,preview:o}})}handleShareTheCard(e){this.setState({forwardDialogVisible:!0,forwardMessage:{content:e,type:e.contentType}})}canStartCall(e){if(0!=this.state.callState)return!1;const n=this.tinode.getTopic(e);if(!n||n._deleted||!wt.Tinode.isP2PTopicName(e))return!1;const t=n.getAccessMode(),s=!(!t||!t.isWriter()),i=this.state.myUserId?(0,It.ze)("bootstrap:"+this.state.myUserId):null,o=!i||!i.features||!1!==i.features.audio_call&&!1!==i.features.video_call;return s&&o&&!!this.tinode.getServerParam("iceServers")}defaultTopicContextMenu(e){const n=this.tinode.getTopic(e);if(n._deleted)return["topic_delete"];const t=this.tinode.getMeTopic();let s=!1,i=!1,o=!1,a=!1,r=!1,l=!1,c=!1,d=!1,h=!1,u=!1;if(n){a=n.isSubscribed(),l=n.isArchived(),c=t.pinnedTopicRank(e)>0;const d=n.getAccessMode();d&&(s=d.isMuted(),i=!d.isJoiner(),o=!d.isJoiner("want"),r=d.isDeleter())}return d=this.canStartCall(e),h=wt.Tinode.isP2PTopicName(e),u=wt.Tinode.isSelfTopicName(e),[a?{title:this.props.intl.formatMessage(md.menu_item_info),handler:this.handleShowInfoView}:null,a&&h&&d?{title:this.props.intl.formatMessage(md.menu_item_audio_call),handler:this.handleStartAudioCall}:null,a&&h&&d?{title:this.props.intl.formatMessage(md.menu_item_video_call),handler:this.handleStartVideoCall}:null,a?"messages_clear":null,a&&r&&!u?"messages_clear_hard":null,u?null:s?i?null:"topic_unmute":"topic_mute",u?null:o?"topic_unblock":"topic_block",c?"topic_unpin":"topic_pin",l?"topic_restore":"topic_archive","topic_delete"]}handleHideContextMenu(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}handleHideForwardDialog(e){this.setState({forwardDialogVisible:!1,forwardMessage:e?this.state.forwardMessage:null})}handleContextMenuAction(e,n,t){"topic_archive"==e?n&&t.topicName&&t.topicName==this.state.topicSelected&&n.then(e=>{this.handleTopicSelected(null)}):"menu_item_forward"==e?this.handleShowForwardDialog(t):"menu_item_select"==e&&this.handleEnterSelectMode(t)}handleEnterSelectMode(e){this.setState({selectMode:!0,selectModeTopic:e.topicName,selectedSeqs:[e.seq]})}handleToggleMessageSelect(e){const n=this.state.selectedSeqs.includes(e)?this.state.selectedSeqs.filter(n=>n!=e):this.state.selectedSeqs.concat(e);this.setState({selectedSeqs:n})}handleExitSelectMode(){this.setState({selectMode:!1,selectModeTopic:null,selectedSeqs:[],batchForwardVisible:!1})}handleShowBatchForward(){this.setState({batchForwardVisible:!0})}handleHideBatchForward(){this.setState({batchForwardVisible:!1})}handleOpenScanner(){this.setState({scannerOpen:!0})}handleCloseScanner(){this.setState({scannerOpen:!1})}handleQrDetected(e){const n="string"==typeof e&&0===e.indexOf("im://qr")?new URLSearchParams(e.slice(e.indexOf("?")+1)):null,t=n?n.get("token"):null,s=n?n.get("purpose"):null;if(!t)return this.setState({scannerOpen:!1}),void this.handleError("无法识别的二维码","err");(0,zt.ps)(t,s).then(e=>{if("join_group"===e.purpose&&e.group)"joined"===e.status?(this.setState({scannerOpen:!1}),this.handleTopicSelected(e.group.topic)):this.setState({scannerOpen:!1,groupJoinPreview:{...e.group,qrToken:t}});else{if(e.user){this.setState({scannerOpen:!1}),(0,It.Ug)("profile-seed:"+e.user.user_id,{...e.user,capabilities:{can_add_friend:!!e.user.can_add}});let n=is.A.setUrlTopic(is.A.currentUrl(),"");return n=is.A.setUrlSidePanel(n,"friend"===e.user.relationship?"friend-profile":"group-member-profile"),n=is.A.addUrlParam(n,"uid",e.user.user_id),void is.A.navigateTo(n)}this.setState({scannerOpen:!1}),this.handleError("无法识别的二维码","err")}}).catch(e=>{this.setState({scannerOpen:!1}),this.handleError(e.message||"二维码已失效","err")})}handleSubmitGroupJoinRequest(e){const n=this.state.groupJoinPreview;return n?(0,zt.hO)(n.topic,{message:e,source:"qr",qrToken:n.qrToken}).then(()=>{this.setState({groupJoinPreview:null}),this.handleError("申请已提交,等待管理员通过","info")}).catch(e=>{this.handleError(e.message||"申请提交失败","err")}):Promise.resolve()}handleCancelGroupJoinPreview(){this.setState({groupJoinPreview:null})}handleShowAlert(e,n,t,s,i,o){this.setState({alertVisible:!0,alertParams:{title:e,content:n,onConfirm:t,confirm:s,onReject:i,reject:o}})}handleShowInfoView(){const e=this.state.topicSelected;if(wt.Tinode.isP2PTopicName(e)){let n=is.A.setUrlSidePanel("","friend-settings");return n=is.A.addUrlParam(n,"uid",e),void is.A.navigateTo(n)}if(!wt.Tinode.isSelfTopicName(e)){let n=is.A.setUrlSidePanel("","group-settings");return n=is.A.addUrlParam(n,"topic",e),void is.A.navigateTo(n)}is.A.navigateTo(is.A.addUrlParam(is.A.currentUrl(),"info","info")),this.setState({infoPanel:"info"})}handleMemberUpdateRequest(e,n,t){if(!e)return;const s=this.tinode.getTopic(e);s&&(n&&n.length>0&&n.forEach(e=>{s.invite(e,null).catch(e=>this.handleError(e.message,"err"))}),t&&t.length>0&&t.forEach(e=>{s.delSubscription(e).catch(e=>this.handleError(e.message,"err"))}))}handleValidateCredentialsRequest(e,n,t){this.tinode.isAuthenticated()?this.tinode.getMeTopic().setMeta({cred:{meth:e,resp:n}}).then(e=>is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"contacts"))).catch(e=>this.handleError(e.message,"err")):(this.setState({credMethod:e,credCode:n,credToken:t}),this.doLogin(null,null,t,{meth:e,resp:n}))}handlePasswordResetRequest(e,n){return this.tinode.connect().then(t=>this.tinode.requestResetAuthSecret("basic",e,n)).catch(e=>{this.handleError(e.message,"err")})}handleResetPassword(e,n){const t=(0,Lt.$Z)(n.secret);t&&n.scheme?this.tinode.connect().then(s=>this.tinode.updateAccountBasic(null,null,e,{scheme:n.scheme,secret:t})).then(e=>{this.handleError(this.props.intl.formatMessage(md.password_reset_success),"info"),is.A.navigateTo("")}).catch(e=>{this.handleError(e.message,"err")}):this.handleError(this.props.intl.formatMessage(md.invalid_security_token),"err")}handleShowCountrySelector(n,t,i){this.handleShowAlert(this.props.intl.formatMessage(md.select_country),(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(hd,{selected:n,onSubmit:(e,n)=>{this.setState({alertVisible:!1}),i(e,n)}})}),null,null,e=>{},null)}handleStartVideoCall(){this.armCallRingTimeout(),this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!1})}handleStartAudioCall(){this.armCallRingTimeout(),this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!0})}armCallRingTimeout(){clearTimeout(this.callTimeoutTimer),this.callTimeoutTimer=setTimeout(()=>{this.callTimeoutTimer=null,1==this.state.callState&&(this.handleCallHangup(this.state.callTopic,this.state.callSeq),this.handleCallClose())},6e4)}handleCallInvite(e,n,t,s){switch(t){case 1:const t={webrtc:rd,aonly:!!s};return this.handleSendMessage(wt.Drafty.videoCall(s),void 0,void 0,t).then(e=>!e||e.code<200||e.code>=300||!e.params||!e.params.seq?(this.handleError("通话发起失败,请稍后重试","err"),this.handleCallClose(),e):(this.setState({callSeq:e.params.seq}),e)).catch(e=>{this.handleError(e&&e.message||"通话发起失败,请稍后重试","err"),this.handleCallClose()});case 3:const i=this.tinode.getTopic(e);if(!i)return;i.videoCall("accept",n)}}sendCallSignal(e,n,t,s){const i=this.tinode.getTopic(e);if(i&&this.tinode.isConnected())try{i.videoCall(n,t,s)}catch(e){console.warn(`Failed to send call signal '${n}'`,e)}}handleCallRinging(e,n){this.sendCallSignal(e,"ringing",n)}handleCallHangup(e,n){this.sendCallSignal(e,"hang-up",n)}handleCallSendOffer(e,n,t){this.sendCallSignal(e,"offer",n,t)}handleCallIceCandidate(e,n,t){this.sendCallSignal(e,"ice-candidate",n,t)}handleCallSendAnswer(e,n,t){this.sendCallSignal(e,"answer",n,t)}handleCallClose(){this.callTimeoutTimer&&clearTimeout(this.callTimeoutTimer),this.setState({callTopic:void 0,callState:0,callAudioOnly:void 0,callSeq:void 0,callShouldStart:!1})}handleCallAccept(e,n,t){clearTimeout(this.callTimeoutTimer);const s=this.tinode.getTopic(e);if(s)if(s.isSubscribed()){this.handleTopicSelected(n?e:this.state.callTopic);const s={callState:3};n&&(s.callTopic=e,s.callSeq=t),this.setState(s)}else this.setState({callShouldStart:!0},e=>this.handleTopicSelected(this.state.callTopic))}handleInfoMessage(e){if("call"==e.what)switch(e.event){case"accept":if(clearTimeout(this.callTimeoutTimer),wt.Tinode.isMeTopicName(e.topic)&&this.tinode.isMe(e.from))return void this.setState({callTopic:null,callState:0,callSeq:null,callAudioOnly:void 0,callShouldStart:!1});e.topic==this.state.callTopic&&this.setState({callState:3});break;case"hang-up":this.handleCallClose()}}handleDataMessage(e){if(e.head&&e.head.webrtc&&e.head.webrtc==rd&&wt.Tinode.isP2PTopicName(e.topic)){const n=this.tinode.getTopic(e.topic);if(n){const t=n.latestMsgVersion(e.seq)||e;t.head&&t.head.webrtc&&t.head.webrtc==rd&&e.from!=this.state.myUserId&&(0==this.state.callState?this.setState({callTopic:e.topic,callState:2,callSeq:e.seq,callAudioOnly:!!t.head.aonly}):this.handleCallHangup(e.topic,e.seq))}else console.warn("Received vc data message from unknown topic",e.topic)}}render(){const n="auto"!==this.state.colorSchema?this.state.colorSchema:this.state.systemColorSchema,t=this.state.sidePanelSelected||(this.state.myUserId?"messages-home":"tenant"),i=["tenant","login","enterprise-register","enterprise-feedback","register","reset","identity-check","realname","realname-verified","realname-reminder","independent-password"].includes(t),o=["messages-offline","messages-menu","message-actions","system-messages"].includes(t)||!this.state.myUserId&&"messages-home"===t,a=["chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card"].includes(t),r=["compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle"].includes(t),l=["address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm"].includes(t),c=["group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload"].includes(t),d=["favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos"].includes(t),h=["call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized"].includes(t),u=["workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice"].includes(t),g=["personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info"].includes(t),p=["fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback"].includes(t);return(0,vt.jsxs)("div",{id:"app-container",ref:this.selfRef,children:[this.state.contextMenuVisible?(0,vt.jsx)(Pt,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onShowAlert:this.handleShowAlert,onAction:this.handleContextMenuAction,onTopicRemoved:e=>{e==this.state.topicSelected&&this.handleTopicSelected(null)},onError:this.handleError}):null,this.state.forwardDialogVisible?(0,vt.jsx)(At,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,hide:this.handleHideForwardDialog,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,onTopicSelected:this.handleStartTopicRequest}):null,this.state.batchForwardVisible?(0,vt.jsx)(Dt,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,topicName:this.state.selectModeTopic,seqs:this.state.selectedSeqs,hide:e=>{this.handleHideBatchForward(),e&&this.handleExitSelectMode()},onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts}):null,this.state.callTopic&&2==this.state.callState?(0,vt.jsx)($t,{tinode:this.tinode,topic:this.state.callTopic,seq:this.state.callSeq,callState:this.state.callState,audioOnly:this.state.callAudioOnly,onClose:this.handleCallClose,onRinging:this.handleCallRinging,onAcceptCall:this.handleCallAccept,onReject:this.handleCallHangup}):null,this.state.scannerOpen?(0,vt.jsx)(Xt,{onDetect:this.handleQrDetected,onClose:this.handleCloseScanner}):null,this.state.groupJoinPreview?(0,vt.jsx)(Gt,{group:this.state.groupJoinPreview,onSubmit:this.handleSubmitGroupJoinRequest,onCancel:this.handleCancelGroupJoinPreview}):null,this.state.alertVisible?(0,vt.jsx)(kt,{title:this.state.alertParams.title,content:this.state.alertParams.content,onReject:this.state.alertParams.onReject?e=>this.setState({alertVisible:!1}):null,reject:this.state.alertParams.reject,onConfirm:this.state.alertParams.onConfirm?e=>{this.setState({alertVisible:!1}),this.state.alertParams.onConfirm()}:null,confirm:this.state.alertParams.confirm}):null,this.state.displayMobile&&"sidepanel"!=this.state.mobilePanel?null:(0,vt.jsx)(ad,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,state:this.state.sidePanelSelected,hashParams:this.state.sidePanelParams,title:this.state.sidePanelTitle,avatar:this.state.sidePanelAvatar,trustedBadges:this.state.myTrustedBadges,login:this.state.login,persist:this.state.persist,myUserId:this.state.myUserId,loginDisabled:this.state.loginDisabled,loadSpinnerVisible:this.state.loadSpinnerVisible,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,topicSelected:this.state.topicSelected,chatList:this.state.chatList,credMethod:this.state.credMethod,credCode:this.state.credCode,credToken:this.state.credToken,transport:this.state.transport,messageSounds:this.state.messageSounds,desktopAlerts:this.state.desktopAlerts,desktopAlertsEnabled:this.state.desktopAlertsEnabled,incognitoMode:this.state.incognitoMode,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection,serverVersion:this.state.serverVersion,reqCredMethod:this.state.reqCredMethod,textSize:this.state.textSize,colorSchema:this.state.colorSchema,wallpaper:this.state.wallpaper,wallpaperSize:this.state.wallpaperSize,wallpaperBlur:this.state.wallpaperBlur,systemColorSchema:this.state.systemColorSchema,sendOnEnter:this.state.sendOnEnter,onGlobalSettings:this.handleGlobalSettings,onSignUp:this.handleNewAccount,onSettings:this.handleSettings,onNavigate:this.basicNavigator,onLoginRequest:this.handleLoginRequest,onTenantResolved:this.handleTenantResolved,onPersistenceChange:this.handlePersistenceChange,onCreateAccount:this.handleNewAccountRequest,onImRegisterRequest:this.handleImRegisterRequest,onUpdateAccountDesc:this.handleTopicUpdateRequest,onUpdatePassword:this.handleUpdatePasswordRequest,onUpdateAccountTags:this.handleUpdateAccountTagsRequest,onTogglePushNotifications:this.toggleFCMToken,onToggleMessageSounds:this.handleToggleMessageSounds,onToggleIncognitoMode:this.handleToggleIncognitoMode,onChangeColorSchema:this.handleChangeColorSchema,onTextSizeChanged:this.handleChangeTextSize,onSendOnEnterChanged:this.handleSendOnEnter,onSelectWallpapers:this.handleSelectWallpapers,onWallpaperSelected:this.handleWallpaperSelected,onCredAdd:this.handleCredAdd,onCredDelete:this.handleCredDelete,onCredConfirm:this.handleCredConfirm,onTopicSelected:this.handleTopicSelected,onOpenScanner:this.handleOpenScanner,onCreateTopic:this.handleStartTopicRequest,onLogout:this.handleLogout,onDeleteAccount:this.handleDeleteAccount,onShowAlert:this.handleShowAlert,onCancel:this.handleSidepanelCancel,onError:this.handleError,onValidateCredentials:this.handleValidateCredentialsRequest,onPasswordResetRequest:this.handlePasswordResetRequest,onResetPassword:this.handleResetPassword,onShowArchive:this.handleShowArchive,onShowBlocked:this.handleShowBlocked,onShowCountrySelector:this.handleShowCountrySelector,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),i||o||a||r||l||c||d||h||u||g||p||this.state.displayMobile&&("topic-view"!=this.state.mobilePanel||this.state.infoPanel)?null:(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(gd,{tinode:this.tinode,connected:this.state.connected,ready:this.state.ready,online:this.state.topicSelectedOnline,acs:this.state.topicSelectedAcs,displayMobile:this.state.displayMobile,viewportWidth:this.state.viewportWidth,viewportHeight:this.state.viewportHeight,topic:this.state.topicSelected,jumpToSeq:this.state.sidePanelParams&&this.state.sidePanelParams.jumpseq,myUserId:this.state.myUserId,myUserName:this.state.sidePanelTitle,serverVersion:this.state.serverVersion,serverAddress:this.state.serverAddress,applicationVisible:this.state.applicationVisible,colorSchema:n,sendOnEnter:this.state.sendOnEnter,wallpaper:this.state.wallpaper,forwardMessage:this.state.forwardMessage,onCancelForwardMessage:this.handleHideForwardDialog,selectMode:this.state.selectMode&&this.state.selectModeTopic==this.state.topicSelected,selectedSeqs:this.state.selectedSeqs,onToggleMessageSelect:this.handleToggleMessageSelect,onExitSelectMode:this.handleExitSelectMode,onShowBatchForward:this.handleShowBatchForward,callTopic:this.state.callTopic,callSeq:this.state.callSeq,callState:this.state.callState,callAudioOnly:this.state.callAudioOnly,onCallHangup:this.handleCallHangup,onAcceptCall:this.handleCallAccept,onCallInvite:this.handleCallInvite,onCallSendOffer:this.handleCallSendOffer,onCallIceCandidate:this.handleCallIceCandidate,onCallSendAnswer:this.handleCallSendAnswer,canStartCall:!!this.state.topicSelected&&this.canStartCall(this.state.topicSelected),onStartAudioCall:this.handleStartAudioCall,onStartVideoCall:this.handleStartVideoCall,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,newTopicParams:this.state.newTopicParams,onHideMessagesView:this.handleHideMessagesView,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,showContextMenu:this.handleShowContextMenu,onChangePermissions:this.handleChangePermissions,onNewChat:this.handleNewChatInvitation,sendMessage:this.handleSendMessage,onVideoCallClosed:this.handleCallClose})}),this.state.infoPanel?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(ud,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,topic:this.state.topicSelected,searchableContacts:this.state.searchableContacts,myUserId:this.state.myUserId,panel:this.state.infoPanel,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,onNavigate:this.infoNavigator,onTopicDescUpdateRequest:this.handleTopicUpdateRequest,onShowAlert:this.handleShowAlert,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onDeleteTopic:this.handleDeleteTopicRequest,onDeleteMessages:this.handleDeleteMessagesRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onBlockTopic:this.handleBlockTopicRequest,onReportTopic:this.handleReportTopic,onShareTheCard:this.handleShareTheCard,onTopicTagsUpdateRequest:this.handleTagsUpdateRequest,onTopicUnArchive:this.handleUnarchive,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu})}):null]})}}var kd=(0,s.injectIntl)(vd);if("undefined"!=typeof FIREBASE_INIT&&FIREBASE_INIT&&FIREBASE_INIT.measurementId){const qd=document.getElementsByTagName("head")[0];let Md=document.createElement("script");function Ad(){dataLayer.push(arguments)}Md.src="https://www.googletagmanager.com/gtag/js?id="+FIREBASE_INIT.measurementId,Md.async=!0,qd.prepend(Md),window.dataLayer=window.dataLayer||[],Ad("js",new Date),Ad("config",FIREBASE_INIT.measurementId)}const Cd={ar:e=>a.e(143).then(a.t.bind(a,7143,19)),de:e=>a.e(175).then(a.t.bind(a,2175,19)),en:e=>a.e(399).then(a.t.bind(a,3399,19)),es:e=>a.e(64).then(a.t.bind(a,6064,19)),fr:e=>a.e(500).then(a.t.bind(a,2500,19)),it:e=>a.e(197).then(a.t.bind(a,7197,19)),ko:e=>a.e(186).then(a.t.bind(a,1186,19)),ro:e=>a.e(780).then(a.t.bind(a,8399,19)),ru:e=>a.e(553).then(a.t.bind(a,5553,19)),th:e=>a.e(536).then(a.t.bind(a,2536,19)),uk:e=>a.e(552).then(a.t.bind(a,4552,19)),vi:e=>a.e(297).then(a.t.bind(a,6297,19)),zh:e=>a.e(570).then(a.t.bind(a,570,19)),"zh-TW":e=>a.e(744).then(a.t.bind(a,5744,19))},{params:zd}=is.A.parseUrl(is.A.currentUrl()),_d=zd&&zd.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Sd=_d.replace("_","-"),Nd=Sd.split("-")[0].toLowerCase(),Td=Cd[Sd]?_d:Cd[Nd]?Nd:"en",Bd=document.getElementsByTagName("html")[0];Bd.setAttribute("lang",Td),["ar","fa","he","ur"].includes(Nd)&&Bd.setAttribute("dir","rtl");const Pd=(0,t.H)(document.getElementById("mountPoint"));Cd[Td]().then(e=>Pd.render(n().createElement(s.IntlProvider,{locale:_d,messages:e,textComponent:n().Fragment},n().createElement(kd,null))))}()}();
//# sourceMappingURL=index.prod.js.map