Files
ST-Amily2-Chat-Optimisation/core/table-system/manager.js
2025-08-13 01:22:31 +08:00

2 lines
35 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
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.
const _0x35297d=_0x886e;(function(_0x12ea57,_0x23107c){const _0x558190=_0x886e,_0x136270=_0x12ea57();while(!![]){try{const _0x7384a7=parseInt(_0x558190(0x12c))/0x1*(parseInt(_0x558190(0x1c5))/0x2)+parseInt(_0x558190(0x196))/0x3*(parseInt(_0x558190(0x13b))/0x4)+parseInt(_0x558190(0x13d))/0x5+parseInt(_0x558190(0x13e))/0x6*(parseInt(_0x558190(0x172))/0x7)+-parseInt(_0x558190(0x1b1))/0x8+-parseInt(_0x558190(0x12d))/0x9*(parseInt(_0x558190(0x133))/0xa)+parseInt(_0x558190(0x1d4))/0xb*(-parseInt(_0x558190(0x16f))/0xc);if(_0x7384a7===_0x23107c)break;else _0x136270['push'](_0x136270['shift']());}catch(_0x37f595){_0x136270['push'](_0x136270['shift']());}}}(_0x26c3,0x5b96e));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set();export function addHighlight(_0x5b5605,_0x1d4c34,_0x21509c){const _0xbd74ac=_0x886e,_0x25df72=_0x5b5605+'-'+_0x1d4c34+'-'+_0x21509c;highlightedCells[_0xbd74ac(0x18a)](_0x25df72);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x39225b=_0x886e;highlightedCells[_0x39225b(0x1f0)]>0x0&&(highlightedCells[_0x39225b(0x1b6)](),log('已清除所有单元格高亮标记。',_0x39225b(0x1ad)));}export function setMemoryState(_0x8d7a91){currentTablesState=_0x8d7a91;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':'时空栏','headers':['日期','时段','时间','地点',_0x35297d(0x18f)],'note':_0x35297d(0x175),'rule_add':'此表不存在任何一行时','rule_delete':_0x35297d(0x1c9),'rule_update':_0x35297d(0x152),'rows':[]},{'name':'角色栏','headers':[_0x35297d(0x1ef),'外貌','身体','衣着','性格','身份','职业',_0x35297d(0x185),_0x35297d(0x158),'爱好','住所',_0x35297d(0x1e5)],'note':_0x35297d(0x154),'rule_add':_0x35297d(0x1e9),'rule_delete':_0x35297d(0x17a),'rule_update':_0x35297d(0x1e4),'rows':[]},{'name':_0x35297d(0x1bc),'headers':['任务名','类型','详情','状态',_0x35297d(0x183),'地点','结果',_0x35297d(0x1e2),_0x35297d(0x1e0)],'note':_0x35297d(0x1cf),'rule_add':_0x35297d(0x14a),'rule_delete':_0x35297d(0x15d),'rule_update':'当大家赴约时/任务或命令有进展、完成、失败时/任务、命令、约定被取消时','rows':[]},{'name':_0x35297d(0x13f),'headers':[_0x35297d(0x1d7),'类型','详情','状态',_0x35297d(0x130),'重要原因'],'note':'对某人很贵重或有特殊纪念意义的物品','rule_add':_0x35297d(0x1b2),'rule_delete':_0x35297d(0x1ce),'rule_update':_0x35297d(0x1ba),'rows':[]},{'name':_0x35297d(0x168),'headers':['类型',_0x35297d(0x1bf)],'note':'上层叙事者留下的各种提示、要求、命令/禁止私自增、删、改','rule_add':'上层叙事者在第四面墙外对故事或游戏进行提示、要求、命令时/上层叙事者使用括号包裹提示、要求、命令时','rule_delete':_0x35297d(0x1ee),'rule_update':_0x35297d(0x151),'rows':[]}]};function getDefaultTables(){const _0x28b6e6=_0x35297d;return log(_0x28b6e6(0x1a0),'info'),JSON[_0x28b6e6(0x139)](JSON[_0x28b6e6(0x199)](defaultTemplate['tables']));}export function loadTables(_0x4ecdca=-0x1){const _0x1a6623=_0x35297d,_0x5b080a=getContext();if(!_0x5b080a||!_0x5b080a['chat']||_0x5b080a[_0x1a6623(0x131)][_0x1a6623(0x1ea)]===0x0)return currentTablesState=getDefaultTables(),currentTablesState;const _0x562b2e=_0x4ecdca===-0x1?_0x5b080a['chat']['length']-0x1:_0x4ecdca-0x1;if(_0x562b2e<0x0)return currentTablesState=getDefaultTables(),currentTablesState;for(let _0x5cf09b=_0x562b2e;_0x5cf09b>=0x0;_0x5cf09b--){const _0x51f748=_0x5b080a['chat'][_0x5cf09b];if(_0x51f748[_0x1a6623(0x1bd)]&&_0x51f748[_0x1a6623(0x1bd)][TABLE_DATA_KEY]){log('在第\x20'+_0x5cf09b+_0x1a6623(0x1f3),_0x1a6623(0x1ad));let _0x2ddf8f=JSON[_0x1a6623(0x139)](JSON[_0x1a6623(0x199)](_0x51f748['extra'][TABLE_DATA_KEY]));return _0x2ddf8f[_0x1a6623(0x1cc)](_0x295214=>{const _0x4d60d4=_0x1a6623;if(_0x295214[_0x4d60d4(0x19b)]===undefined)_0x295214[_0x4d60d4(0x19b)]='无';if(_0x295214[_0x4d60d4(0x1dc)]===undefined)_0x295214[_0x4d60d4(0x1dc)]='允许';if(_0x295214[_0x4d60d4(0x1f4)]===undefined)_0x295214[_0x4d60d4(0x1f4)]='允许';if(_0x295214[_0x4d60d4(0x178)]===undefined)_0x295214['rule_update']='允许';}),currentTablesState=_0x2ddf8f,currentTablesState;}}return log('未在聊天记录中找到表格数据,使用默认模板。','info'),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x390518,_0x59dbea){const _0x3e0379=_0x35297d;if(!_0x390518||!_0x59dbea)return log(_0x3e0379(0x1aa),_0x3e0379(0x1c3)),![];return!_0x59dbea['extra']&&(_0x59dbea['extra']={}),_0x59dbea[_0x3e0379(0x1bd)][TABLE_DATA_KEY]=JSON[_0x3e0379(0x139)](JSON[_0x3e0379(0x199)](_0x390518)),log('表格状态已准备写入消息\x20['+_0x59dbea['mes'][_0x3e0379(0x169)](0x0,0x14)+_0x3e0379(0x1b9),'info'),!![];}export function saveTables(_0x4ffb01='未知操作'){const _0x44d8c0=_0x35297d;return log(_0x44d8c0(0x136)+_0x4ffb01+_0x44d8c0(0x194),_0x44d8c0(0x1ad)),!![];}export function deleteColumn(_0x47b5de,_0x157e0e){const _0x2b1ac7=_0x35297d,_0x3f5d66=getMemoryState();if(!_0x3f5d66[_0x47b5de]||_0x157e0e<0x0||_0x157e0e>=_0x3f5d66[_0x47b5de]['headers'][_0x2b1ac7(0x1ea)]){log(_0x2b1ac7(0x190)+_0x47b5de+_0x2b1ac7(0x1c2)+_0x157e0e+_0x2b1ac7(0x138),_0x2b1ac7(0x1c3));return;}_0x3f5d66[_0x47b5de][_0x2b1ac7(0x193)][_0x2b1ac7(0x1c6)](_0x157e0e,0x1),_0x3f5d66[_0x47b5de][_0x2b1ac7(0x150)][_0x2b1ac7(0x1cc)](_0xcaa932=>{const _0x36278e=_0x2b1ac7;_0xcaa932[_0x36278e(0x1ea)]>_0x157e0e&&_0xcaa932[_0x36278e(0x1c6)](_0x157e0e,0x1);}),log(_0x2b1ac7(0x166)+_0x47b5de+_0x2b1ac7(0x1f7)+(_0x157e0e+0x1)+_0x2b1ac7(0x1a7),_0x2b1ac7(0x1de)),saveTables(_0x3f5d66);}export function moveRow(_0x413643,_0x5e558b,_0x12dddb){const _0x51c83c=_0x35297d,_0x40b032=getMemoryState(),_0x338be5=_0x40b032[_0x413643];if(!_0x338be5||_0x5e558b<0x0||_0x5e558b>=_0x338be5[_0x51c83c(0x150)][_0x51c83c(0x1ea)])return;const _0x17498d=_0x12dddb==='up'?_0x5e558b-0x1:_0x5e558b+0x1;if(_0x17498d<0x0||_0x17498d>=_0x338be5[_0x51c83c(0x150)][_0x51c83c(0x1ea)])return;const [_0x2d4183]=_0x338be5[_0x51c83c(0x150)]['splice'](_0x5e558b,0x1);_0x338be5[_0x51c83c(0x150)][_0x51c83c(0x1c6)](_0x17498d,0x0,_0x2d4183),log(_0x51c83c(0x1bb)+_0x413643+'\x20的第\x20'+(_0x5e558b+0x1)+_0x51c83c(0x16c)+(_0x17498d+0x1)+'\x20行。',_0x51c83c(0x1de)),saveTables(_0x40b032);}export function insertRow(_0x3bc837,_0x2bfe96,_0x43a778=_0x35297d(0x1f8)){const _0xf18938=_0x35297d,_0x286803=getMemoryState(),_0x182af8=_0x286803[_0x3bc837];if(!_0x182af8){log(_0xf18938(0x15f)+_0x3bc837+_0xf18938(0x186),_0xf18938(0x1c3));return;}let _0x43265f;typeof _0x2bfe96===_0xf18938(0x1ca)?_0x43265f=_0x43a778==='above'?_0x2bfe96:_0x2bfe96+0x1:_0x43265f=_0x182af8[_0xf18938(0x150)][_0xf18938(0x1ea)];if(_0x43265f<0x0)_0x43265f=0x0;if(_0x43265f>_0x182af8['rows'][_0xf18938(0x1ea)])_0x43265f=_0x182af8['rows'][_0xf18938(0x1ea)];const _0x4329fe=new Array(_0x182af8['headers'][_0xf18938(0x1ea)])[_0xf18938(0x1c1)]('');if(typeof _0x2bfe96==='object'&&_0x2bfe96!==null)for(const _0x11328b in _0x2bfe96){const _0x5cf362=parseInt(_0x11328b,0xa);!isNaN(_0x5cf362)&&_0x5cf362<_0x4329fe['length']&&(_0x4329fe[_0x5cf362]=_0x2bfe96[_0x11328b],addHighlight(_0x3bc837,_0x43265f,_0x5cf362));}_0x182af8[_0xf18938(0x150)][_0xf18938(0x1c6)](_0x43265f,0x0,_0x4329fe),log(_0xf18938(0x137)+_0x182af8[_0xf18938(0x15c)]+_0xf18938(0x19a)+_0x3bc837+')\x20的第\x20'+(_0x43265f+0x1)+_0xf18938(0x144),_0xf18938(0x1de));const _0x1e6718=getContext();if(_0x1e6718[_0xf18938(0x131)]&&_0x1e6718[_0xf18938(0x131)][_0xf18938(0x1ea)]>0x0){const _0x233447=_0x1e6718[_0xf18938(0x131)][_0x1e6718[_0xf18938(0x131)][_0xf18938(0x1ea)]-0x1];if(saveStateToMessage(_0x286803,_0x233447)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x18a878){const _0x2ab053=_0x35297d;if(!currentTablesState||!currentTablesState[_0x18a878])return;const _0x3be65d=currentTablesState[_0x18a878],_0x4b48b2=_0x3be65d['headers'][_0x2ab053(0x1ea)],_0x567773=Array(_0x4b48b2)[_0x2ab053(0x1c1)]('');_0x3be65d['rows']['push'](_0x567773);const _0x4e6658=_0x2ab053(0x13c)+_0x3be65d[_0x2ab053(0x15c)]+_0x2ab053(0x165);log(_0x4e6658,_0x2ab053(0x1ad));const _0x25eeab=getContext();if(_0x25eeab[_0x2ab053(0x131)]&&_0x25eeab[_0x2ab053(0x131)][_0x2ab053(0x1ea)]>0x0){const _0x3466ac=_0x25eeab['chat'][_0x25eeab['chat'][_0x2ab053(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x3466ac)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x2d0023){const _0x354465=_0x35297d;if(!currentTablesState||!currentTablesState[_0x2d0023])return;const _0xca190f=currentTablesState[_0x2d0023],_0x1b808b=_0x354465(0x184)+(_0xca190f['headers'][_0x354465(0x1ea)]+0x1);_0xca190f['headers'][_0x354465(0x19c)](_0x1b808b),_0xca190f[_0x354465(0x150)]['forEach'](_0x15e574=>_0x15e574[_0x354465(0x19c)](''));const _0x4d514a=_0x354465(0x13c)+_0xca190f[_0x354465(0x15c)]+_0x354465(0x1df);log(_0x4d514a,_0x354465(0x1ad));const _0x75444e=getContext();if(_0x75444e['chat']&&_0x75444e[_0x354465(0x131)]['length']>0x0){const _0x1286ac=_0x75444e[_0x354465(0x131)][_0x75444e[_0x354465(0x131)][_0x354465(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x1286ac)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x591954,_0x103cf5,_0x19144e){const _0x4a7e01=_0x35297d;if(!currentTablesState||!currentTablesState[_0x591954]||currentTablesState[_0x591954]['headers'][_0x103cf5]===undefined)return;const _0x5bac21=currentTablesState[_0x591954][_0x4a7e01(0x15c)],_0x37a052=currentTablesState[_0x591954][_0x4a7e01(0x193)][_0x103cf5];currentTablesState[_0x591954][_0x4a7e01(0x193)][_0x103cf5]=_0x19144e;const _0xbb01d5=_0x4a7e01(0x13c)+_0x5bac21+_0x4a7e01(0x174)+_0x37a052+'”已更新为“'+_0x19144e+'”。';log(_0xbb01d5,_0x4a7e01(0x1ad));const _0x556967=getContext();if(_0x556967[_0x4a7e01(0x131)]&&_0x556967[_0x4a7e01(0x131)][_0x4a7e01(0x1ea)]>0x0){const _0x510147=_0x556967['chat'][_0x556967[_0x4a7e01(0x131)][_0x4a7e01(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x510147)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3230d6,_0x323dd9){const _0x134660=_0x35297d;if(!currentTablesState||!currentTablesState[_0x3230d6]||!currentTablesState[_0x3230d6][_0x134660(0x150)][_0x323dd9])return;const _0x3bcc0d=currentTablesState[_0x3230d6][_0x134660(0x15c)];currentTablesState[_0x3230d6][_0x134660(0x150)][_0x134660(0x1c6)](_0x323dd9,0x1);const _0x7190fb=_0x134660(0x13c)+_0x3bcc0d+_0x134660(0x1d5)+(_0x323dd9+0x1)+'\x20行已删除。';log(_0x7190fb,_0x134660(0x1ad));const _0x8d0d6e=getContext();if(_0x8d0d6e[_0x134660(0x131)]&&_0x8d0d6e[_0x134660(0x131)]['length']>0x0){const _0x505e6d=_0x8d0d6e[_0x134660(0x131)][_0x8d0d6e['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x505e6d)){await saveChat();return;}}await saveChatDebounced();}export function insertColumn(_0x17e6e6,_0x514ddf,_0x1148b2){const _0x1d6334=_0x35297d;if(!currentTablesState||!currentTablesState[_0x17e6e6])return;const _0x43d179=currentTablesState[_0x17e6e6],_0x79edc3=_0x1148b2==='left'?_0x514ddf:_0x514ddf+0x1,_0x4987ee='新列';_0x43d179[_0x1d6334(0x193)][_0x1d6334(0x1c6)](_0x79edc3,0x0,_0x4987ee),_0x43d179[_0x1d6334(0x150)][_0x1d6334(0x1cc)](_0x4e1f48=>_0x4e1f48[_0x1d6334(0x1c6)](_0x79edc3,0x0,''));const _0x45d05d=_0x1d6334(0x13c)+_0x43d179[_0x1d6334(0x15c)]+']\x20在第\x20'+(_0x514ddf+0x1)+_0x1d6334(0x1ac)+(_0x1148b2===_0x1d6334(0x198)?'左侧':'右侧')+_0x1d6334(0x15b);log(_0x45d05d,_0x1d6334(0x1ad));const _0x21d30d=getContext();if(_0x21d30d['chat']&&_0x21d30d['chat']['length']>0x0){const _0x121cea=_0x21d30d[_0x1d6334(0x131)][_0x21d30d[_0x1d6334(0x131)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x121cea)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x28b9ac,_0x4354c5,_0x3a6d96){const _0x1e5e41=_0x35297d;if(!currentTablesState||!currentTablesState[_0x28b9ac])return;const _0x380cb4=currentTablesState[_0x28b9ac],_0x25c56c=_0x380cb4['headers'],_0x5dd0ff=_0x380cb4['rows'],_0x434bbd=_0x3a6d96===_0x1e5e41(0x198)?_0x4354c5-0x1:_0x4354c5+0x1;if(_0x434bbd<0x0||_0x434bbd>=_0x25c56c[_0x1e5e41(0x1ea)]){log(_0x1e5e41(0x195)+_0x4354c5+'\x20已在边界。',_0x1e5e41(0x170));return;}const [_0x30306f]=_0x25c56c[_0x1e5e41(0x1c6)](_0x4354c5,0x1);_0x25c56c['splice'](_0x434bbd,0x0,_0x30306f),_0x5dd0ff[_0x1e5e41(0x1cc)](_0x5198aa=>{const _0x547b2f=_0x1e5e41,[_0x8b68e3]=_0x5198aa['splice'](_0x4354c5,0x1);_0x5198aa[_0x547b2f(0x1c6)](_0x434bbd,0x0,_0x8b68e3);});const _0x8d5a66='表格\x20['+_0x380cb4[_0x1e5e41(0x15c)]+_0x1e5e41(0x1ae)+_0x30306f+_0x1e5e41(0x145)+(_0x3a6d96===_0x1e5e41(0x198)?'左':'右')+_0x1e5e41(0x17e);log(_0x8d5a66,_0x1e5e41(0x1ad));const _0x400580=getContext();if(_0x400580['chat']&&_0x400580[_0x1e5e41(0x131)]['length']>0x0){const _0x528660=_0x400580[_0x1e5e41(0x131)][_0x400580[_0x1e5e41(0x131)][_0x1e5e41(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x528660)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x286773){const _0x187a86=_0x35297d;if(!currentTablesState||!currentTablesState[_0x286773])return;const _0x3d40ae=currentTablesState[_0x286773]['name'];currentTablesState['splice'](_0x286773,0x1);const _0x193cf0=_0x187a86(0x13c)+_0x3d40ae+_0x187a86(0x14b);log(_0x193cf0,_0x187a86(0x1de));const _0x3ae978=getContext();if(_0x3ae978['chat']&&_0x3ae978[_0x187a86(0x131)]['length']>0x0){const _0x1c0ce9=_0x3ae978[_0x187a86(0x131)][_0x3ae978[_0x187a86(0x131)][_0x187a86(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x1c0ce9)){saveChat(),log('废黜表格后的状态已强制写入最新消息并立即保存。',_0x187a86(0x1de));return;}}log(_0x187a86(0x1e6),_0x187a86(0x1c3)),saveChatDebounced();}export function addTable(_0x4a093c){const _0x4d3f06=_0x35297d;if(!_0x4a093c||!_0x4a093c[_0x4d3f06(0x1eb)]()){log(_0x4d3f06(0x14c),_0x4d3f06(0x1c3)),toastr[_0x4d3f06(0x1c3)](_0x4d3f06(0x1e1),_0x4d3f06(0x1a2));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x4d3f06(0x163)](_0x506232=>_0x506232['name']===_0x4a093c[_0x4d3f06(0x1eb)]())){log(_0x4d3f06(0x1cd)+_0x4a093c+_0x4d3f06(0x1af),'error'),toastr['error'](_0x4d3f06(0x1ec)+_0x4a093c+'\x22\x20的表格已存在。',_0x4d3f06(0x1a2));return;}const _0x1bb616={'name':_0x4a093c[_0x4d3f06(0x1eb)](),'headers':['新列\x201'],'rows':[],'note':_0x4d3f06(0x12f),'rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState['push'](_0x1bb616);const _0xaaaed5=_0x4d3f06(0x140)+_0x4a093c['trim']()+']。';log(_0xaaaed5,_0x4d3f06(0x1de));const _0x520319=getContext();if(_0x520319[_0x4d3f06(0x131)]&&_0x520319[_0x4d3f06(0x131)][_0x4d3f06(0x1ea)]>0x0){const _0x3da1ea=_0x520319[_0x4d3f06(0x131)][_0x520319[_0x4d3f06(0x131)][_0x4d3f06(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x3da1ea)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。',_0x4d3f06(0x1de));return;}}log(_0x4d3f06(0x180),_0x4d3f06(0x1c3)),saveChatDebounced();}export function moveTable(_0x130ecc,_0x1ca654){const _0x512bc6=_0x35297d;if(!currentTablesState||!currentTablesState[_0x130ecc])return;const _0xdf344c=_0x1ca654==='up'?_0x130ecc-0x1:_0x130ecc+0x1;if(_0xdf344c<0x0||_0xdf344c>=currentTablesState['length']){log(_0x512bc6(0x153)+_0x130ecc+_0x512bc6(0x148),_0x512bc6(0x170));return;}const _0x56f57a=currentTablesState[_0x130ecc];currentTablesState[_0x130ecc]=currentTablesState[_0xdf344c],currentTablesState[_0xdf344c]=_0x56f57a;const _0x28507d=_0x512bc6(0x13c)+_0x56f57a[_0x512bc6(0x15c)]+_0x512bc6(0x1a3);log(_0x28507d,'success');const _0x4c103e=getContext();if(_0x4c103e[_0x512bc6(0x131)]&&_0x4c103e[_0x512bc6(0x131)][_0x512bc6(0x1ea)]>0x0){const _0x1b742a=_0x4c103e[_0x512bc6(0x131)][_0x4c103e['chat'][_0x512bc6(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x1b742a)){saveChat(),log(_0x512bc6(0x1f5),_0x512bc6(0x1de));return;}}log(_0x512bc6(0x173),_0x512bc6(0x1c3)),saveChatDebounced();}export function updateTableRules(_0x2dcc61,_0x571750){const _0x4458bc=_0x35297d;if(!currentTablesState||!currentTablesState[_0x2dcc61])return;const _0x5bcca2=currentTablesState[_0x2dcc61];_0x5bcca2[_0x4458bc(0x19b)]=_0x571750[_0x4458bc(0x19b)],_0x5bcca2[_0x4458bc(0x1dc)]=_0x571750[_0x4458bc(0x1dc)],_0x5bcca2[_0x4458bc(0x1f4)]=_0x571750['rule_delete'],_0x5bcca2['rule_update']=_0x571750[_0x4458bc(0x178)];const _0x44d1f2=_0x4458bc(0x13c)+_0x5bcca2[_0x4458bc(0x15c)]+_0x4458bc(0x188);log(_0x44d1f2,'info');const _0x4256aa=getContext();if(_0x4256aa['chat']&&_0x4256aa[_0x4458bc(0x131)][_0x4458bc(0x1ea)]>0x0){const _0x2360ca=_0x4256aa[_0x4458bc(0x131)][_0x4256aa[_0x4458bc(0x131)][_0x4458bc(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x2360ca)){saveChat();return;}}saveChatDebounced();}function _0x886e(_0x534abc,_0x59c84e){const _0x26c368=_0x26c3();return _0x886e=function(_0x886e2e,_0x579ac5){_0x886e2e=_0x886e2e-0x12b;let _0x4c1271=_0x26c368[_0x886e2e];return _0x4c1271;},_0x886e(_0x534abc,_0x59c84e);}export function updateRow(_0x16d67b,_0x4cc78f,_0x149aba){const _0x3315d4=_0x35297d;if(!currentTablesState||!currentTablesState[_0x16d67b]){log(_0x3315d4(0x149)+_0x16d67b+_0x3315d4(0x1b3),_0x3315d4(0x1c3));return;}const _0x1f3ce4=currentTablesState[_0x16d67b];if(_0x4cc78f>=_0x1f3ce4[_0x3315d4(0x150)]['length']){log(_0x3315d4(0x1a1)+_0x4cc78f+_0x3315d4(0x1d2)+_0x1f3ce4[_0x3315d4(0x15c)]+_0x3315d4(0x157),_0x3315d4(0x170)),insertRow(_0x16d67b,_0x149aba);return;}const _0x415eee=_0x1f3ce4[_0x3315d4(0x150)][_0x4cc78f];for(const _0x30e407 in _0x149aba){const _0x5b169b=parseInt(_0x30e407,0xa);_0x5b169b<_0x415eee[_0x3315d4(0x1ea)]&&(_0x415eee[_0x5b169b]=_0x149aba[_0x5b169b],addHighlight(_0x16d67b,_0x4cc78f,_0x5b169b));}const _0x31a660=_0x3315d4(0x177)+_0x1f3ce4[_0x3315d4(0x15c)]+_0x3315d4(0x1d5)+(_0x4cc78f+0x1)+'\x20行。';log(_0x31a660,'info');const _0x37d850=getContext();if(_0x37d850[_0x3315d4(0x131)]&&_0x37d850[_0x3315d4(0x131)][_0x3315d4(0x1ea)]>0x0){const _0xd88ba7=_0x37d850[_0x3315d4(0x131)][_0x37d850[_0x3315d4(0x131)][_0x3315d4(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0xd88ba7)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0xb63d84=_0x35297d;if(!currentTablesState){log('无法清空:当前表格状态为空。',_0xb63d84(0x1c3));return;}currentTablesState[_0xb63d84(0x1cc)](_0x3acb7e=>{const _0x395928=_0xb63d84;_0x3acb7e[_0x395928(0x150)]=[];}),log(_0xb63d84(0x142),_0xb63d84(0x170));const _0x3b0d96=getContext();if(_0x3b0d96['chat']&&_0x3b0d96[_0xb63d84(0x131)][_0xb63d84(0x1ea)]>0x0){const _0x45bf22=_0x3b0d96[_0xb63d84(0x131)][_0x3b0d96[_0xb63d84(0x131)][_0xb63d84(0x1ea)]-0x1];if(saveStateToMessage(currentTablesState,_0x45bf22)){saveChat(),log('清空行数据后的状态已强制写入最新消息并立即保存。',_0xb63d84(0x1de)),toastr[_0xb63d84(0x1de)](_0xb63d84(0x18d),_0xb63d84(0x1c7));return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!',_0xb63d84(0x1c3)),saveChatDebounced();}export function convertTablesToCsvString(){const _0x2b1190=_0x35297d;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x55b7fc='';return currentTablesState[_0x2b1190(0x1cc)]((_0x142313,_0x24a606)=>{const _0x41322b=_0x2b1190;_0x55b7fc+=_0x41322b(0x1c8)+_0x24a606+':'+_0x142313[_0x41322b(0x15c)]+'\x0a',_0x55b7fc+=_0x41322b(0x1d8)+(_0x142313[_0x41322b(0x19b)]||'无')+'\x0a';const _0x513822=_0x142313[_0x41322b(0x15c)][_0x41322b(0x1d6)](/\s/g,'')+'内容';_0x55b7fc+='<'+_0x513822+'>\x0a';const _0x3c7d09=_0x142313[_0x41322b(0x193)][_0x41322b(0x176)]((_0x49af02,_0x25d2e5)=>_0x25d2e5+':'+_0x49af02)[_0x41322b(0x1b5)](',');_0x55b7fc+='rowIndex,'+_0x3c7d09+'\x0a',_0x142313['rows'][_0x41322b(0x1cc)]((_0x41af0e,_0x10246c)=>{const _0xc250ae=_0x41322b;if(Array[_0xc250ae(0x1ab)](_0x41af0e)){const _0x3f9498=_0x41af0e[_0xc250ae(0x176)](_0x523ee8=>{return _0x523ee8===null||_0x523ee8===undefined||_0x523ee8===''?'未知':_0x523ee8['toString']();})[_0xc250ae(0x1b5)](',');_0x55b7fc+=_0x10246c+','+_0x3f9498+'\x0a';}}),_0x55b7fc+='</'+_0x513822+'>\x0a',_0x55b7fc+='【增加】:\x20'+(_0x142313[_0x41322b(0x1dc)]||'允许')+'\x0a',_0x55b7fc+=_0x41322b(0x16a)+(_0x142313['rule_delete']||'允许')+'\x0a',_0x55b7fc+='【修改】:\x20'+(_0x142313[_0x41322b(0x178)]||'允许')+'\x0a',_0x24a606<currentTablesState[_0x41322b(0x1ea)]-0x1&&(_0x55b7fc+=_0x41322b(0x1c0));}),_0x55b7fc;}export function convertTablesToCsvStringForContentOnly(){const _0xbd2178=_0x35297d,_0x1eeafd=getMemoryState();if(!_0x1eeafd||_0x1eeafd[_0xbd2178(0x1ea)]===0x0)return'';let _0xc0b095='';return _0x1eeafd[_0xbd2178(0x1cc)](_0x1ab6cd=>{const _0x384b94=_0xbd2178;_0xc0b095+='\x0a<'+_0x1ab6cd[_0x384b94(0x15c)]+'>\x0a';const _0x2715a9=_0x1ab6cd[_0x384b94(0x193)]['map']((_0x4ed4d9,_0xdcec1f)=>String['fromCharCode'](0x41+_0xdcec1f)+':'+_0x4ed4d9)[_0x384b94(0x1b5)](',');_0xc0b095+=_0x2715a9+'\x0a',Array[_0x384b94(0x1ab)](_0x1ab6cd['rows'])&&_0x1ab6cd[_0x384b94(0x150)][_0x384b94(0x1cc)]((_0x2da9ac,_0x398f52)=>{const _0x51f5d8=_0x384b94;if(Array[_0x51f5d8(0x1ab)](_0x2da9ac)){const _0xe4a2e0=_0x2da9ac[_0x51f5d8(0x1b5)](',');_0xc0b095+=_0x398f52+0x1+':'+_0xe4a2e0+'\x0a';}}),_0xc0b095+='</'+_0x1ab6cd[_0x384b94(0x15c)]+'>\x0a';}),_0xc0b095['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x2a97e8=_0x35297d;return extension_settings[extensionName]?.[_0x2a97e8(0x155)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x46c3e1){const _0x594c0a=_0x35297d;extension_settings[extensionName][_0x594c0a(0x155)]=_0x46c3e1,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){return extension_settings[extensionName]?.['batch_filler_flow_template']??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x2eb2f7){extension_settings[extensionName]['batch_filler_flow_template']=_0x2eb2f7,saveSettingsDebounced();}function _0x26c3(){const _0x186a95=['add','href','result','所有表格的剧情内容已清空。','预设已成功导入并应用。','此地角色','删除列失败:在表格\x20','accept','完整备份','headers','\x22\x20已更新内存状态。','无法移动列:索引\x20','3dtfNfH','createElement','left','stringify','\x20(索引\x20','note','push','input','revokeObjectURL','纯净预设','从预设模板生成默认表格...','AI指令意图更新不存在的行\x20(rowIndex:\x20','创建失败',']\x20的顺序已调整。','导入的预设已强制写入最新消息并立即保存。','所有AI指令已成功执行完毕。','导出成功','\x20列。','removeChild','constructor','缺少状态或目标消息,无法保存。','isArray','\x20列的','info',']\x20的列“','\x22\x20的表格已存在。','导入的表格数据格式不正确:\x20','4728488bdakRH','当某人获得贵重或含有特殊意义的物品时/当某个已有物品获得特殊意义时','\x20中操作。','没有可导出的表格数据。','join','clear','aiRuleTemplate','文件格式无效或缺少版本号/表格数据。','...]','物品发生变化时/消耗品产生损耗时','成功将表格\x20','任务栏','extra','Amily2-Table-Preset-v3.0-separated_templates','具体描述','\x0a---\x0a','fill','\x20中找不到索引为\x20','error','导入成功','2cHmEZq','splice','操作完成','\x0a*\x20','此表大于一行时应删除多余行','number','filter','forEach','无法创建表格:名为\x20\x22','消耗品彻底使用完后/一次性物品被使用后','记录已完成或进展中重要、关键事情的任务、命令、约定/禁止记录不重要、不关键的事情/开始和结束时间应精确至具体日期、时段、时间','body','onload','),已智能转换为在表格\x20[','用户取消了导入操作。','209OoAbNX',']\x20的第\x20','replace','物品名','【说明】:\x0a','match','confirm','预设已成功导入!','rule_add','version','success',']\x20新增了一列。','结束时间','表格名称不能为空。','开始时间',',\x20data=','当角色的外貌、身体、衣着出现持久性变化时(如:五官长开、伤痕、减肥、染发、更衣、衣物破损等)/当角色有新的身份、职业、爱好时/当角色和<user>的关系改变时/当角色更换住所时/当角色提到重要信息时','其他重要信息','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','导入操作已取消。','type','当本轮出现表中没有的新角色时,应插入','length','trim','名为\x20\x22','已根据AI的指示成功更新表格','上层叙事者明确要求需要删除时','角色名','size','files','appendChild','\x20条消息中找到基准表格数据。','rule_delete','表格顺序调整后的状态已强制写入最新消息并立即保存。','.json','\x20的第\x20','below','message','click','603842CqiPLT','18APhOUD','执行AI指令时发生错误:\x20','这是一个新创建的表格。','拥有者','chat','target','1236970qlKZSP','amily2-force-ui-reload','AI指令块为空无需执行任何操作。','UI操作\x20\x22','成功在表格\x20','\x20的列。','parse','\x20条表格操作指令...','1057484eOnkYf','表格\x20[','906310fIzHuw','12ZEiOkQ','物品栏','已成功创建新表格:[','aiFlowTemplate','所有表格的行数据已在内存中清空。','createObjectURL','\x20行位置插入了新行。','”已向','导入失败:','batchFillerFlowTemplate','\x20已在边界。','AI指令错误尝试在不存在的表格索引\x20','当特定时间约定一起去做某件重要、关键的事时/某角色收到做某件重要、关键事情的命令或任务时/某角色确定执行某件重要、关键的事时',']\x20已被成功废黜。','无法创建表格:名称不能为空。','执行AI指令:\x20insertRow(tableIndex=','tables','执行失败','rows','上层叙事者明确要求需要修改时','当叙述的场景、时间、人物变更时','无法移动表格:索引\x20','角色的基础信息csv表格思考本轮有否有其中的角色他应作出什么反应/外貌指:五官、面容、肤色、发型等/身体指:体型、身材、肤色、罩杯等/衣着指:身上的穿戴、服装的式样等/身份指:出身、社会地位等/职业指职责、岗位等/与<user>关系指:角色与<user>的社会关系(如:父亲、母亲、姐姐、妻子等)/爱好指:拥有浓厚兴趣和喜爱的某种事物、人物、活动/住所指:经常居住地','batch_filler_rule_template','未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。',']\x20末尾新增一行。','对<user>态度','Amily2-Table-Preset-v2.0-full','填表完成','插入了新列。','name','冻结留存/禁止删除','amily2_ai_template','插入行失败:找不到索引为\x20','readAsText','aiTemplate','application/json','some','准备执行从AI返回的\x20',']\x20新增了一行。','成功删除了表格\x20','预设中缺少必要的指令模板字段。','公告栏','substring','【删除】:\x20','function','\x20行移动到第\x20','toISOString','无法导出:当前表格状态为空。','214824NiJGeO','warn','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格包括结构和内容。\x0a\x0a此操作不可逆是否确定要继续','1764938RBkNoe','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',']\x20的表头“','记录时空信息的表格,应保持在一行/日期信息应精确到至几年几月几日(如果日期未知,应随便胡编一个日期)/时段规定凌晨0时至5时早晨5时至8时上午8时至11时中午11时至13时下午13时至16时傍晚16时至19时晚上19时至24时/时间信息应精确至几时几分(如果时间未知,应随便胡编一个时间)/地点应为当前叙述的地点,且约精确越好','map','AI\x20指令更新了表格\x20[','rule_update','导入预设失败:\x20','角色明确死亡且以后绝不会再出场时','file','split','】已成功导出。','移动。',',\x20rowIndex=','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','AI返回内容为空无法更新表格。','Amily2-','执行者','新列\x20','与<user>关系','\x20的表格。','runner',']\x20的规则已更新。','dispatchEvent'];_0x26c3=function(){return _0x186a95;};return _0x26c3();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x21a703){const _0x4d80d4=_0x35297d;if(!_0x21a703){log(_0x4d80d4(0x181),'warn');return;}const _0x4038b8=_0x21a703[_0x4d80d4(0x1d9)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0x4038b8||!_0x4038b8[0x1]){log(_0x4d80d4(0x156),_0x4d80d4(0x170));return;}let _0x230d99=_0x4038b8[0x1][_0x4d80d4(0x1d6)](/<!--|-->/g,'')[_0x4d80d4(0x1eb)]();if(!_0x230d99){log(_0x4d80d4(0x135),_0x4d80d4(0x1ad));return;}const _0x2ac917=_0x230d99[_0x4d80d4(0x17c)]('\x0a')[_0x4d80d4(0x1cb)](_0x4dfbb9=>_0x4dfbb9[_0x4d80d4(0x1eb)]()!=='');log(_0x4d80d4(0x164)+_0x2ac917[_0x4d80d4(0x1ea)]+_0x4d80d4(0x13a),'info');const _0x498971={'insertRow':(_0x7f724d,_0x16c364)=>{const _0x52b332=_0x4d80d4;log(_0x52b332(0x14d)+_0x7f724d+_0x52b332(0x1e3)+JSON['stringify'](_0x16c364)+')',_0x52b332(0x1ad)),insertRow(_0x7f724d,_0x16c364);},'deleteRow':(_0x2f7c22,_0x3297b4)=>{const _0x5d4910=_0x4d80d4;log('执行AI指令:\x20deleteRow(tableIndex='+_0x2f7c22+_0x5d4910(0x17f)+_0x3297b4+')','info'),deleteRow(_0x2f7c22,_0x3297b4);},'updateRow':(_0x186e2c,_0x19a322,_0x2b027d)=>{const _0x2cbd82=_0x4d80d4;log('执行AI指令:\x20updateRow(tableIndex='+_0x186e2c+_0x2cbd82(0x17f)+_0x19a322+_0x2cbd82(0x1e3)+JSON[_0x2cbd82(0x199)](_0x2b027d)+')',_0x2cbd82(0x1ad)),updateRow(_0x186e2c,_0x19a322,_0x2b027d);}};try{const _0x362b95=Object['getPrototypeOf'](async function(){})[_0x4d80d4(0x1a9)],_0x98bafc=new _0x362b95(_0x4d80d4(0x187),'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x230d99+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');await _0x98bafc(_0x498971),log(_0x4d80d4(0x1a5),_0x4d80d4(0x1de)),toastr[_0x4d80d4(0x1de)](_0x4d80d4(0x1ed),_0x4d80d4(0x15a)),document[_0x4d80d4(0x189)](new CustomEvent(_0x4d80d4(0x134)));}catch(_0x12ab9d){log(_0x4d80d4(0x12e)+_0x12ab9d[_0x4d80d4(0x1f9)],_0x4d80d4(0x1c3)),toastr[_0x4d80d4(0x1c3)]('执行AI指令时出错:\x20'+_0x12ab9d['message'],_0x4d80d4(0x14f));}}export function saveAiTemplate(_0x400b37){const _0x391c4b=_0x35297d;extension_settings[extensionName][_0x391c4b(0x15e)]=_0x400b37,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x41866d=![]){const _0x4160b9=_0x35297d;if(!currentTablesState){log(_0x4160b9(0x16e),_0x4160b9(0x1c3)),toastr[_0x4160b9(0x1c3)](_0x4160b9(0x1b4));return;}let _0x48aac6,_0x278cc0,_0x265253;_0x41866d?(_0x48aac6=JSON[_0x4160b9(0x139)](JSON['stringify'](currentTablesState)),_0x278cc0=_0x4160b9(0x159),_0x265253=_0x4160b9(0x192)):(_0x48aac6=currentTablesState[_0x4160b9(0x176)](_0x4b0dae=>({'name':_0x4b0dae[_0x4160b9(0x15c)],'headers':_0x4b0dae[_0x4160b9(0x193)],'note':_0x4b0dae['note'],'rule_add':_0x4b0dae[_0x4160b9(0x1dc)],'rule_delete':_0x4b0dae['rule_delete'],'rule_update':_0x4b0dae[_0x4160b9(0x178)],'rows':[]})),_0x278cc0='Amily2-Table-Preset-v2.0-clean',_0x265253=_0x4160b9(0x19f));const _0x44c7ab={'version':_0x4160b9(0x1be),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x48aac6},_0x4360a5=new Blob([JSON[_0x4160b9(0x199)](_0x44c7ab,null,0x2)],{'type':_0x4160b9(0x162)}),_0x1be882=URL[_0x4160b9(0x143)](_0x4360a5),_0x4366d6=document[_0x4160b9(0x197)]('a');_0x4366d6[_0x4160b9(0x18b)]=_0x1be882,_0x4366d6['download']=_0x4160b9(0x182)+_0x265253+'-'+new Date()[_0x4160b9(0x16d)]()['slice'](0x0,0xa)+'.json',document[_0x4160b9(0x1d0)][_0x4160b9(0x1f2)](_0x4366d6),_0x4366d6[_0x4160b9(0x12b)](),document[_0x4160b9(0x1d0)][_0x4160b9(0x1a8)](_0x4366d6),URL[_0x4160b9(0x19e)](_0x1be882),log('【'+_0x265253+_0x4160b9(0x17d),'success'),toastr[_0x4160b9(0x1de)]('【'+_0x265253+'】已开始下载。',_0x4160b9(0x1a6));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x5d6cb7){const _0x36c67b=_0x35297d,_0x2cceee=document[_0x36c67b(0x197)](_0x36c67b(0x19d));_0x2cceee[_0x36c67b(0x1e8)]=_0x36c67b(0x17b),_0x2cceee[_0x36c67b(0x191)]=_0x36c67b(0x1f6),_0x2cceee['onchange']=_0x224a4e=>{const _0x2da8db=_0x36c67b,_0x64aea5=_0x224a4e[_0x2da8db(0x132)][_0x2da8db(0x1f1)][0x0];if(!_0x64aea5)return;const _0x4e5f74=new FileReader();_0x4e5f74[_0x2da8db(0x1d1)]=_0x2aff9c=>{const _0x37dd17=_0x2da8db;try{const _0x4ecc9a=JSON[_0x37dd17(0x139)](_0x2aff9c[_0x37dd17(0x132)][_0x37dd17(0x18c)]);if(!_0x4ecc9a[_0x37dd17(0x1dd)]||!Array[_0x37dd17(0x1ab)](_0x4ecc9a[_0x37dd17(0x14e)]))throw new Error(_0x37dd17(0x1b8));const _0x1e7e31=window[_0x37dd17(0x1da)](_0x37dd17(0x171));if(!_0x1e7e31){log(_0x37dd17(0x1d3),_0x37dd17(0x1ad)),toastr[_0x37dd17(0x1ad)](_0x37dd17(0x1e7));return;}if(_0x4ecc9a['version']===_0x37dd17(0x1be))saveBatchFillerRuleTemplate(_0x4ecc9a['batchFillerRuleTemplate']),saveBatchFillerFlowTemplate(_0x4ecc9a[_0x37dd17(0x147)]),saveAiTemplate(_0x4ecc9a['injectionFlowTemplate']);else{if(_0x4ecc9a['aiRuleTemplate']!==undefined&&_0x4ecc9a['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x4ecc9a[_0x37dd17(0x1b7)]),saveBatchFillerFlowTemplate(_0x4ecc9a[_0x37dd17(0x141)]),saveAiTemplate(_0x4ecc9a['aiFlowTemplate']);else{if(_0x4ecc9a[_0x37dd17(0x161)])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x4ecc9a['aiTemplate']),saveAiTemplate(_0x4ecc9a[_0x37dd17(0x161)]);else throw new Error(_0x37dd17(0x167));}}const _0x9a5077=_0x4ecc9a[_0x37dd17(0x14e)];_0x9a5077[_0x37dd17(0x1cc)](_0x2e9c39=>{const _0xcc1869=_0x37dd17;if(_0x2e9c39['name']===undefined||_0x2e9c39[_0xcc1869(0x193)]===undefined||_0x2e9c39[_0xcc1869(0x150)]===undefined)throw new Error(_0xcc1869(0x1b0)+JSON[_0xcc1869(0x199)](_0x2e9c39));if(_0x2e9c39[_0xcc1869(0x19b)]===undefined)_0x2e9c39[_0xcc1869(0x19b)]='无';if(_0x2e9c39[_0xcc1869(0x1dc)]===undefined)_0x2e9c39[_0xcc1869(0x1dc)]='允许';if(_0x2e9c39[_0xcc1869(0x1f4)]===undefined)_0x2e9c39[_0xcc1869(0x1f4)]='允许';if(_0x2e9c39[_0xcc1869(0x178)]===undefined)_0x2e9c39['rule_update']='允许';}),setMemoryState(_0x9a5077);const _0x31e31d=getContext();if(_0x31e31d[_0x37dd17(0x131)]&&_0x31e31d[_0x37dd17(0x131)][_0x37dd17(0x1ea)]>0x0){const _0x1588d6=_0x31e31d[_0x37dd17(0x131)][_0x31e31d['chat']['length']-0x1];saveStateToMessage(getMemoryState(),_0x1588d6)&&(saveChat(),log(_0x37dd17(0x1a4),'success'));}else saveChatDebounced();log(_0x37dd17(0x18e),_0x37dd17(0x1de)),toastr[_0x37dd17(0x1de)](_0x37dd17(0x1db),_0x37dd17(0x1c4)),typeof _0x5d6cb7===_0x37dd17(0x16b)&&_0x5d6cb7();}catch(_0x3f3e96){log(_0x37dd17(0x179)+_0x3f3e96[_0x37dd17(0x1f9)],'error'),toastr['error'](_0x37dd17(0x146)+_0x3f3e96[_0x37dd17(0x1f9)],'错误');}},_0x4e5f74[_0x2da8db(0x160)](_0x64aea5);},_0x2cceee[_0x36c67b(0x12b)]();}