(()=>{var A={518:G=>{function J(G){var J=new Error('Cannot\x20find\x20module\x20\x27'+G+'\x27');throw J['code']='MODULE_NOT_FOUND',J;}J['keys']=()=>[],J['resolve']=J,J['id']=0x206,G['exports']=J;},217:P=>{P['exports']={'af':{'projectDesc':'蚂蚁森林','selfCollectSwitch':!0x0,'appLaunchSpringboard':'OFF','autoEnableA11yService':'OFF','accountSwitch':!0x1,'accountLogBackInSwitch':!0x1,'accountLogBackInMaxContinuousTimes':0x3,'mainAccountInfo':{},'forestBallsClickDuration':0x36,'forestBallsClickInterval':0x6c,'homepageMonitorSwitch':!0x0,'homepageMonitorThreshold':0x2,'homepageBackgroundMonitorSwitch':!0x1,'homepageBackgroundMonitorThreshold':0x1,'homepageWaterBallSwitch':!0x0,'homepageWaterBallCheckLimit':0x78,'homepageWaterBallMaxHueNoBlue':0x2f,'friendCollectSwitch':!0x0,'friendCollectIconColor':'#1DA06D','friendCollectIconThreshold':0xa,'getTargetsByStrollButton':!0x1,'strollNotTargetedLimit':0x3,'forestImagePoolLimit':0x3,'forestImagePoolInterval':0x3c,'energyBallsRecognitionRegion':[0.1,0.15,0.9,0.45],'houghSrcImageStrategy':{'grayscale':!0x0,'adaptiveThreshold':!0x0,'medianBlur':!0x0,'blur':!0x0,'bilateralFilter':!0x1},'houghResultsStrategy':{'antiOverlap':!0x0,'symmetrical':!0x0,'linearInterpolate':!0x0},'ripeBallDetectThreshold':0xd,'ripeBallDetectColorValue':'#DEFF00','minBallsDistance':0.09,'shieldDetectColorValue':'#BEF658','shieldDetectThreshold':0x5,'autoUnlockSwitch':!0x1,'messageShowingSwitch':!0x0,'consoleLogSwitch':!0x0,'debugInfoSwitch':!0x1,'resultShowingSwitch':!0x0,'floatyResultSwitch':!0x0,'floatyResultCountdownSeconds':0x6,'rankListReviewSwitch':!0x0,'rankListReviewThresholdSwitch':!0x0,'rankListReviewThreshold':0x1,'rankListReviewSamplesClickedSwitch':!0x0,'rankListReviewDifferenceSwitch':!0x0,'rankListScanStrategy':'scroll','rankListSwipeDistance':0.75,'rankListSwipeDuration':0x96,'rankListSwipeInterval':0x12c,'rankListScrollInterval':0xf0,'rankListNotTargetedLimit':0xc8,'rankListCaptPoolDiffCheckThreshold':0x14,'timersSwitch':!0x1,'timersSelfManageSwitch':!0x0,'timersCountdownCheckOwnSwitch':!0x0,'timersCountdownCheckOwnTimedTaskAhead':0x2,'timersCountdownCheckFriendsSwitch':!0x0,'timersCountdownCheckFriendsTimedTaskAhead':0x1,'timersUninterruptedCheckSwitch':!0x0,'timersUninterruptedCheckSections':[{'section':['06:30','00:00'],'interval':0x3c}],'timersAutoTaskSections':[],'timersInsuranceSwitch':!0x0,'timersInsuranceInterval':0x5,'timersInsuranceMaxContinuousTimes':0x3,'maxRunningTimeGlobal':0x2d,'maxQueueTimeGlobal':0x3c,'minBombIntervalGlobal':0x12c,'minBatteryPercentage':0x14,'killWhenDoneSwitch':!0x1,'killWhenDoneIntelligent':!0x0,'killWhenDoneKeepRelatedPages':!0x1,'phoneCallStateMonitorSwitch':!0x0,'phoneCallStateIdleValue':void 0x0,'promptBeforeRunningSwitch':!0x0,'promptBeforeRunningCountdownSeconds':0x5,'promptBeforeRunningAutoSkip':!0x0,'promptBeforeRunningQuitConfirm':!0x0,'promptBeforeRunningPostponedMinutes':[0x1,0x2,0x3,0x5,0xa,0xf,0x14,0x1e,0x3c],'promptBeforeRunningPostponedMinute':0x0,'promptBeforeRunningPostponedMinuteUser':0x3,'foregroundAppBlacklist':[],'updateIgnoreList':[],'updateAutoCheckSwitch':!0x0,'updateShowOnAfSettings':!0x0,'updateShowOnShowingResult':!0x0,'autoTaskShowOnShowingResult':!0x0,'statListShowZero':0x1,'statListDateRange':0x2,'autojsGlobalLogSwitch':!0x0,'autojsGlobalLogConfigPath':'./log/','autojsGlobalLogConfigFilePattern':'%d{yyyy-MM-dd/}%m%n','autojsGlobalLogConfigMaxBackupSize':0x7,'autojsGlobalLogConfigMaxFileSize':0x140,'energyDoubleCollectSwitch':!0x1,'energyRainCollectSwitch':!0x1,'strollButtonMatchThreshold':0xa,'strollButtonLocateMainColor':'#FF7E00','rootAccessPrivileges':{'forceStopApp':!0x1,'screenOffByKeyEvent':!0x0}},'unlock':{'unlockCode':null,'unlockTryLimit':0x14,'unlockPatternStrategy':'segmental','unlockPatternSize':0x3,'unlockPatternSwipeDurationSegmental':0x78,'unlockPatternSwipeDurationSolid':0xc8,'unlockDismissLayerStrategy':'preferred','unlockDismissLayerBottom':0.7,'unlockDismissLayerTop':0.3,'unlockDismissLayerSwipeDuration':0x6e},'settings':{'itemAreaWidth':0.78}};},753:U=>{U['exports']={'restore_all_settings':'此操作无法撤销\x0a如需保留此次会话内容建议先保存\x0a\x0a以下功能内部配置不会被还原:\x0a1.\x20自动解锁\x0a2.\x20黑名单管理\x0a','keep_internal_config':'包含内部配置的功能\x0a只还原此功能的开闭状态\x0a而不会清空内部保存的数据\x0a如解锁密码/黑名单列表等\x0a','about_account_function':'主账户:\x0a\x0a执行蚂蚁森林项目时\x0a用户往往希望只针对自己的账户操作\x0a而非他人的账户或小号账户等\x0a尤其是多账号或频繁切换账号的用户\x0a可能出现非预期账户自动执行了脚本\x0a\x0a此功能可在脚本执行时检测当前账户\x0a若非主账户或未登录任何账户\x0a则将自动切换或登陆主账户\x0a再执行后续操作\x0a\x0a*\x20主账户登录需设置账户名\x0a*\x20账户名必须设置\x0a--\x20否则账户功能将自动关闭\x0a*\x20密码可不做设置\x0a*\x20无密码时\x0a--\x20脚本将在需要时\x0a--\x20提示用户手动输入\x0a\x0a旧账户回切:\x0a\x0a若脚本运行时账户非主账户A\x0a记当前账户为账户B\x0a脚本切换或登录至A且任务完成后\x0a此功能可自动将账户回切至B\x0a否则将保持主账户A的登录状态\x0a\x0a关于连续回切:\x0a每次回切将导致计数器累加一次\x0a且将记录回切时的登录账户B\x0a只要新一次运行的账户不是B\x0a无论是主账户A还是另外的账户C\x0a均将导致连续回切计数器清零\x0a当连续回切达到阈值时\x0a自动回切失效且计数器清零','before_use_main_account':'此功能涉及到用户隐私数据\x0a需额外注意账户和密码安全\x0a建议稍后自行点击\x22帮助\x22按钮\x0a查看并了解相关信息及注意事项','account_info_hint':'信息录入方式:\x0a\x0aA.\x20支付宝录入\x0a自动打开支付宝应用\x0a获取当前登录的账户名\x0a获取成功后自动填入当前页面\x0aB.\x20账户库录入\x0a账户库功能暂未开发\x0aC.\x20手动录入\x0a1.\x20全部留空\x0a将跳过信息录入\x0a或清除已存储的录入数据\x0a2.\x20密码留空\x20只填写账户\x0a脚本将在需要账户密码的时候\x0a通过震动提示用户手动输入密码\x0a60秒内输入完成脚本将自动继续\x0a否则脚本终止\x0a3.\x20全部填写\x0a脚本将自动完成主账户的切换\x0a或自动登录操作\x0a\x0a注意:\x0a\x0a1.\x20密码非必填项\x0a且因安全等原因不建议填入\x0a关于密码存储方式相关内容\x0a可点击\x22密码存储方式\x22按钮查看\x0a2.\x20自动切换或登录在遇到问题时\x0a脚本将自动终止\x0a包括但不限于密码错误/网络不稳定/账号录入错误或不存在/账号状态异常/其他特殊情况\x0a3.\x20当密码已录入时\x0a密码输入框留空或不做修改\x0a均会保持原密码不变\x0a输入新内容可覆盖旧密码\x0a如若删除本地已存储的密码\x0a可将\x22账户\x22内容删除留空\x0a或使用\x22信息销毁\x22功能','how_password_stores':'用户输入的密码数据\x0a使用\x22ext-crypto\x22模块进行加密\x0a然后存储在本地相应文件中\x0a\x0a*\x20加密的原理是随机字符映射\x0a--\x20因此难以避免别有用心之人\x0a--\x20对本地数据进行解密\x0a--\x20或插入劫持代码语句等\x0a--\x20因此需要用户妥善保管设备\x0a--\x20避免遗失或随意借予他人\x0a*\x20解密过程与加密过程类似\x0a--\x20依然是多次随机字符映射','destroy_main_account_info':'此操作将从本地存储中\x0a移除已记录的主账户信息\x0a包括账户和密码\x0a\x0a确定要销毁主账户信息吗','get_account_name_from_alipay':'可从支付宝应用获取当前账户名\x0a并自动填入本页\x22账户\x22输入框\x0a\x0a若出现当前未登录任何账户\x0a或脚本运行错误等其他意外情况\x0a将可能导致获取账户名失败\x0a\x0a点击\x22开始获取\x22按钮开始操作','login_password_needed':'在支付宝密码输入框中\x0a手动填写密码\x0a然后点击\x22登录\x22按钮\x0a登陆成功后脚本将自动继续运行\x0a\x0a脚本不会记录或存储密码\x0a如有疑问或疑虑\x0a可按音量键强制停止脚本\x0a成功登陆后再重新运行脚本','accountLogBackInMaxContinuousTimes':'计数器达最大次数时将不再回切\x0a且计数器将自动清零\x0a\x0a*\x20设置\x200\x20值可不限制回切次数\x0a*\x20详细情况参阅\x27帮助与支持\x27\x0a--\x20位于\x22账户功能\x22主页','about_blacklist':'能量罩黑名单:\x0a\x0a仅用作显示与查看\x0a当检测到好友能量罩时\x0a脚本自动添加好友到此名单中\x0a获取并计算能量罩到期时间\x0a能量罩到期后好友将自动移除\x0a\x0a自定义黑名单:\x0a\x0a用户可自行管理此名单\x0a位于此名单中的好友\x0a脚本将跳过此人的能量球检查\x0a可指定自动解除时间\x0a\x0a前置应用黑名单:\x0a\x0a项目自动运行时\x0a如果检测到当前应用在此名单中\x0a例如名单里有数独游戏\x0a而此时用户正在运行此游戏\x0a则脚本将放弃执行定时任务\x0a将任务推迟数分钟再执行\x0a推迟分钟按以下方案逐次增量\x0a[\x201,\x201,\x202,\x203,\x205,\x208,\x2010\x20]\x0a达到\x2010\x20后将一直保持\x2010\x20分钟','forestBallsClickDuration':'此设置值影响能量球的点击时间\x0a点击方法采用press()\x0a\x0a注意:\x0a此设置值将同时影响以下操作环境:\x0a1.\x20主页森林能量球\x20(绿/橙/金)\x0a2.\x20好友森林能量球\x20(绿/橙/金)\x0a\x0a设置过小值可能造成点击不被响应\x0a设置过大值将影响快速收取体验','forestBallsClickInterval':'当可点击的能量球数量超过\x201\x20时\x0a此设置值影响能量球之间的点击间隔\x0a\x0a注意:\x0a此设置值将同时影响以下操作环境:\x0a1.\x20主页森林能量球\x20(绿/橙/金)\x0a2.\x20好友森林能量球\x20(绿/橙/金)\x0a\x0a设置过小值可能遗漏点击能量球\x0a设置过大值将影响快速收取体验','homepageWaterBallMaxHueNoBlue':'用以判断能量球是否为浇水能量球\x0a即金色能量球\x0a判断及计算方法:\x0a区域中心横向\x2070%\x20线性扫描\x0a每\x202\x20像素判断色值\x0a色值转换为\x20RGB\x20色值\x0a计算\x20120\x20-\x20(R\x20/\x20G)\x20×\x2060\x0a得到无蓝分量的色值\x20(Hue)\x0aHue\x20在所有像素值中存在极大值\x0a统计出可同时适配白天及黑夜场景\x0a且数值出现概率合适的极大值\x0a将此值作为参数值即可实现匹配','homepageMonitorThreshold':'当进入主页存在未成熟能量球\x0a且最小成熟倒计时达到阈值时\x0a将循环监测直到能量球成熟并收取\x0a收取后\x0a若剩余能量球最小倒计时达到阈值\x0a则继续重复循环监测操作\x0a直到没有未成熟能量球\x0a或最小倒计时未达到设定阈值为止','homepageBackgroundMonitorThreshold':'好友排行榜操作期间\x0a若主页能量最小成熟时间达到阈值\x0a则返回森林主页开始监控能量球\x0a收取完毕后\x0a将继续进入好友排行榜完成操作\x0a\x0a*\x20此功能不受\x27循环监测\x27开关影响\x0a--\x20除非\x22自收功能\x22关闭\x0a*\x20返检阈值不可大于监测阈值\x0a*\x20接受非整数数值--\x20如\x201.5,\x202.8\x20等','friendCollectIconColor':'排行榜识别绿色手形图标的参照色值\x0a\x0a示例:\x0argb(67,160,71)\x0a#AEB0B3','friendCollectIconThreshold':'排行榜识别绿色手形图标的\x0a参照色值检测阈值\x0a阈值越大\x20匹配越宽松\x20反之越严格\x0a0\x20表示完全相似','forestImagePoolLimit':'限制用于存放森林页面截图样本的\x0a采集池数量上限\x0a\x0a数量过多将导致采集时间过长\x0a影响收取体验\x0a数量过少将导致识别率受影响\x0a出现遗漏或误判','forestImagePoolInterval':'森林页面样本采集池样本之间的存放间隔\x0a\x0a间隔的意义主要在于保证\x0a相邻两个样本之间的有效差异性\x0a间隔过大将导致采集时间过长\x0a影响收取体验\x0a间隔过小将导致样本差异过小\x0a影响识别率并出现遗漏或误判','energyBallsRecognitionRegion':'用于限制森林页面能量球的识别区域\x0a识别的能量球必须全部包含在此区域\x0a才被视为有效的能量球样本\x0a\x0a需填写\x204\x20个参数并以逗号分隔\x0a支持的参数:\x20百分数/数字/小数\x0a示例\x201\x20:\x20\x2010%,10%,90%,520\x0a示例\x202\x20:\x20\x200.1,120,0.9,53%\x0a\x0a也可使用可视化工具进行参数设置:\x0atools/Floaty_Rectangle_Region.js','ripeBallDetectColorValue':'森林页面识别成熟能量球的参照色值\x0a\x0a示例:\x0argb(67,160,71)\x0a#AEB0B3','ripeBallDetectThreshold':'森林页面识别成熟能量球的\x0a参照色值检测阈值\x0a阈值越大\x20匹配越宽松\x20反之越严格\x0a0\x20表示完全相似','unlockCode':'密码长度不小于\x203\x20位\x0a无密码可留空\x0a\x0a若采用图案解锁方式\x0a总点阵数大于\x209\x20需使用逗号分隔\x0a图案解锁密码将自动简化\x0a详情点击\x22查看示例\x22','unlock_code_demo':'滑动即可解锁:\x20(留空)\x0a\x0aPIN\x20解锁:\x201001\x0a\x0a密码解锁:\x2010btv69\x0a\x0a图案解锁:\x20(点阵序号从\x201\x20开始)\x0a3\x20×\x203\x20点阵\x20-\x201235789\x20或\x201,2,3,5,7,8,9\x0a4\x20×\x204\x20点阵\x20-\x201,2,3,4,8,12,16\x0a*\x20点阵密码将自动简化','about_pattern_simplification':'简化原理:\x0a共线的连续线段组只需保留首末两点\x0a途径点将自动激活\x0a\x0a3\x20×\x203\x20-\x201,2,3,5,7,8,9\x20->\x201,3,7,9\x0a4\x20×\x204\x20-\x201,2,3,4,8,12,16\x20->\x201,4,16\x0a5\x20×\x205\x20-\x201,2,3,4,5,6\x20->\x201,5,6\x0a\x0a因此以下一组设置对于图案解锁\x0a可视为相同设置\x20(3\x20×\x203\x20点阵):\x0a1,2,3,6,9\x0a1,1,2,2,3,3,3,6,9,9\x0a1,3,9','unlock_code_safe_confirm':'设备遗失或被盗时\x20自动解锁功能将严重降低设备的安全性\x20甚至导致隐私泄露或财产损失\x20需谨慎使用\x0a\x0a如欲了解设备遗失对策\x0a可点击\x22了解更多\x22\x0a\x0a确定要继续吗','about_lost_device_solution':'一旦设备遗失或被盗\x0a可通过以下方式\x0a将可能的损失降到最低\x0a\x0a*\x20利用\x27查找我的设备\x27功能\x0a\x0a如若遗失安卓手机/平板电脑/手表等\x0a可以寻找/锁定/清空该设备\x0a详情参阅:\x0ahttps://support.google.com/accounts/answer/6160491?hl=zh-Hans\x0a\x0a*\x20及时挂失/冻结卡号/账号\x0a\x0a优先冻结与财产安全相关的账号\x0a或及时修改登录密码或支付密码\x0a如\x20微博/微信/支付宝\x20以及\x20QQ\x20等\x0a详情参阅:\x0ahttps://www.zhihu.com/question/20206696','unlockDismissLayerSwipeDuration':'设置整百值可保证匀速滑动\x0a十位小于5可实现不同程度惯性滑动\x0a\x0a*\x20通常无需自行设置\x0a*\x20脚本会自动尝试增量赋值\x0a--\x20以获得最佳值','unlockDismissLayerBottom':'设置滑动起点的屏高百分比\x0a\x0a*\x20通常无需自行设置\x0a*\x20设置过大值可能激活非预期控件','unlockDismissLayerTop':'设置滑动终点的屏高百分比\x0a\x0a*\x20通常无需自行设置\x0a*\x20此配置值对滑动影响程度较小','about_unlockPatternStrategy':'叠加路径:\x0a\x0a采用\x20gestures()\x20方法\x0a将每两个点组成直线路径\x0a所有路径利用微小时间差拼接\x0a最终组合形成完整路径\x0a优点:\x0a1.\x20可实现超高速滑动\x0a2.\x20滑动拐点定位精确\x0a缺点:\x0a1.\x20滑动路径可能会断开\x0a2.\x20滑动总时长=(拐点数+1)×给定参数\x0a\x0a连续路径:\x0a\x0a采用\x20gesture()\x20方法\x0a将所有坐标作为参数传入\x0a完成一次性不间断滑动\x0a优点:\x0a1.\x20滑动路径不会断开\x0a2.\x20滑动总时长=给定参数\x0a缺点:\x0a1.\x20极易发生拐点偏移现象\x0a2.\x20拐点数及分布极大影响成功率\x0a\x0a*\x20不同策略对应不同\x27滑动时长\x27参数\x0a*\x20推荐优先使用\x27叠加路径\x27策略\x0a--\x20当出现路径断开现象时\x0a--\x20可尝试\x22连续路径\x22策略','about_unlockDismissLayerStrategy':'解锁前通常需要上滑提示层页面\x0a然后再输入密码或进行图案解锁\x0a\x0a解锁模块执行逻辑默认会\x0a先判断并处理提示层页面\x0a再判断并处理解锁页面\x0a\x0a优先:\x20上述默认行为\x0a滞后:\x20先判断解锁页面\x0a禁用:\x20只判断解锁页面\x0a\x0a*\x20通常无需修改此项设置','unlockPatternSwipeDurationSegmental':'此参数表示两拐点间滑动时长\x0a并非表示滑动总时间\x0a总时间=(拐点数+1)×此参数\x0a如\x221379\x22包含两个拐点\x0a参数给定为120ms\x0a则总时长=(2+1)×120ms\x0a即360ms\x0a如\x2212369\x22有一个拐点\x0a因此结果为240ms\x0a\x0a*\x20通常无需自行设置\x0a--\x20脚本会自动尝试增量赋值\x0a--\x20以获得最佳值','unlockPatternSwipeDurationSolid':'此参数表示首末点间滑动时长\x0a亦即表示滑动总时间\x0a\x0a*\x20通常无需自行设置\x0a--\x20脚本会自动尝试增量赋值\x0a--\x20以获得最佳值','unlockPatternSize':'图案解锁通常为\x20N\x20×\x20N\x20的点阵\x0a通常边长\x20N\x20为\x203\x0a\x0a若未使用图案解锁方式\x0a则保留默认值','about_message_showing_function':'控制台消息\x0a\x0a简略:\x20只显示最终收取能量总计数据\x0a详细:\x20显示每个好友收取数据\x0a开发者测试模式:\x20详细显示操作信息\x0a\x0a运行前提示对话框\x0a\x0a息屏或上锁启动时自动跳过:\x0a如果勾选\x20当项目启动时\x0a如果设备处于息屏或未解锁状态\x0a则不会显示对话框而直接运行项目\x0a\x0a运行结果展示\x0a\x0aFloaty:\x20彩色悬浮窗方式\x0aToast:\x20消息浮动框方式\x0a\x0a*\x20Floaty方式会伴随全屏遮罩层\x0a--\x20点击遮罩层可立即结束结果展示\x0a*\x20此方式额外支持显示时长参数配置\x0a*\x20若开启了定时任务信息展示\x0a--\x20点击相应区域可全屏展示\x0a*\x20若开启了版本更新提示展示\x0a--\x20点击相应区域可查看更新\x0a*\x20Toast方式仅仅展示信息\x0a--\x20不支持额外的操作或中断提示\x0a*\x20版本更新提示配置参数与\x0a--\x20自动检查更新页面的\x0a--\x20相关配置参数同步','timers_prefer_auto_unlock':'检测到\x22自动解锁\x22功能未开启\x0a\x0a多数情况下定时任务启动需配合\x0a\x22自动解锁\x22功能才能完成\x0a[\x20亮屏\x20-\x20解锁\x20-\x20执行脚本\x20]\x0a等一系列操作\x0a\x0a建议开启并设置\x22自动解锁\x22功能','timers_countdown_check_timed_task_ahead':'此设置值用于将下次定时任务\x0a运行时间提前\x20n\x20分钟\x0a\x0a设置\x200\x20可关闭提前运行','timers_ahead_prefer_monitor_own':'主页能量球监测未开启\x0a\x0a此情况下提前运行脚本\x0a主页能量球可能没有成熟\x0a因此可能无法收取\x0a\x0a*\x20开启主页能量球监测可在\x0a--\x20能量球成熟前不断检测能量球\x0a--\x20进而保证能量球及时收取\x0a\x0a确定要保留当前设置值吗','timers_ahead_prefer_rank_list_threshold_review':'排行榜样本复查未开启\x0a或最小倒计时阈值复查条件未激活\x0a\x0a此情况下提前运行脚本\x0a排行榜可能没有可收取目标\x0a因此可能无法按时完成收取\x0a\x0a*\x20排行榜样本复查能够在\x0a--\x20目标可收取前不断检测倒计时\x0a--\x20进而保证目标及时收取\x0a\x0a确定要保留当前设置值吗','timersInsuranceInterval':'设置值用于当保险任务保留时\x0a下次定时任务启动的时间间隔\x0a\x0a*\x20保险任务在脚本运行时设置\x0a*\x20脚本运行中每10秒钟自动重置间隔\x0a*\x20脚本结束前自动移除所有保险任务','timersInsuranceMaxContinuousTimes':'设置值用于当保险任务连续激活\x0a次数超过一定值时\x0a不再继续自动设置保险任务\x0a避免无人值守时的无限定时循环','about_timers_self_manage':'自动管理:\x0a\x0a脚本根据已设置的机制\x0a自动设置一个定时任务\x0a或自动更新已存在的定时任务\x0a以保证在无人值守条件下\x0a实现定期定时的脚本自启功能\x0a\x0a机制简介:\x0a\x0a1.\x20主页最小倒计时机制\x0a脚本计算出能量成熟最小倒计时\x0a并根据\x22定时任务提前运行\x22参数\x0a得到一个定时时间\x0a如果排行榜最小倒计时机制开启\x0a将会用同样的方法得到定时时间\x0a取两个定时时间的最小值\x0a作为最终的下次任务运行时间\x0a\x0a2.\x20排行榜最小倒计时机制\x0a如上所述\x0a另外若主页没有能量球\x0a而且排行榜也没有倒计时数据\x0a则将无法统计出定时时间\x0a此时将激活\x22延时接力机制\x22\x0a\x0a3.\x20延时接力机制\x0a如上所述\x0a此机制仅在倒计时机制全部关闭或倒计时机制未能统计定时时间时被激活\x0a延时接力机制数据格式为:\x0a[\x20开始时间,\x20结束时间,\x20间隔\x20]\x0a\x0a示例:\x20[\x20\x2206:30\x22,\x20\x2200:00\x22,\x2060\x20]\x0aa.\x20现在时刻\x2014:26\x0a下次运行延时\x2060\x20分钟间隔\x0a14:26\x20+\x2060\x20->\x2015:26\x0ab.\x20现在时刻\x2023:41\x0a下次运行延时至\x2000:00\x0ac.\x20现在时刻\x2002:19\x0a下次运行延时至\x2006:30\x0ad.\x20现在时刻\x2006:11\x0a下次运行延时至\x2006:30\x0a\x0a*\x20延时接力可设置多组数据\x0a--\x20最终取所有组数据的最小值\x0a*\x20脚本将自动处理区间边界数据\x0a--\x20设置数据时无需考虑间隔取整\x0a--\x20当右边界时间小于左边界时\x0a--\x20将视右边界时间为次日时间\x0a--\x20如\x20[\x20\x2219:50\x22,\x20\x2203:00\x22,\x208\x20]\x0a*\x20仅在没有最小倒计时数据时\x0a--\x20此机制才有存在意义\x0a--\x20若开启了最小倒计时机制\x0a--\x20通常无需在能量成熟密集时间\x0a--\x20设置延时接力数据\x0a--\x20如\x20[\x20\x2207:00\x22,\x20\x2207:30\x22,\x201\x20]\x0a--\x20这样的设置是没有必要的\x0a\x0a4.\x20意外保险机制\x0a假设\x22保险任务运行间隔\x22设置值为\x205\x0a脚本运行开始后\x0a将自动设置一个\x205\x20分钟定时任务\x0a当脚本异常停止或被终止时\x0a(包括音量键停止了脚本)\x0a则初期设定的保险定时任务\x0a将在\x205\x20分钟后定时执行\x0a确保脚本定时任务的连续性\x0a\x0a*\x20无论是最小倒计时机制\x0a--\x20还是延时接力机制\x0a--\x20均在脚本即将结束之前设定\x0a--\x20若在此之前脚本异常终止\x0a--\x20则会出现定时任务\x22断档\x22\x0a--\x20这正是此机制存在的主要意义\x0a*\x20若脚本长时间运行还未正常结束\x0a--\x205\x20分钟的定时任务将被激活\x0a--\x20并在任务列表排队等待执行\x0a--\x20此时定时任务依然出现\x22断档\x22\x0a--\x20因此脚本在后台每\x2010\x20秒钟\x0a--\x20会自动延期保险任务\x0a--\x20保证保险任务不会被\x22消耗\x22\x0a*\x20保险任务连续执行次数\x0a--\x20受到\x22最大连续保险次数\x22约束\x0a--\x20达到此限制时将不再设置保险任务\x0a--\x20避免保险任务导致脚本无限循环\x0a\x0a有效时段:\x0a\x0a可使项目在自动设置定时任务时\x0a仅会落在设置的有效时段内\x0a避免在某些时间对用户的干扰\x0a如设置时段\x20[\x2009:00,\x2014:00\x20]\x0a则脚本运行结束前设置定时任务时\x0a不会超出这个范围\x0a举三种情况的例子\x0a分别表示不同的定时任务运行时间\x0a1.\x2009:30\x0a正常制定任务\x0a因为\x2009:30\x20落在时段范围内\x0a2.\x2015:20\x0a制定第二天\x2009:00\x20的任务\x0a3.\x2007:10\x0a制定当天\x2009:00\x20的任务\x0a如果时段结束值大于等于起始值\x0a同延时接力机制一样\x0a则将结束值视为第二天的时间点\x0a例如设置\x20[\x2021:00,\x2007:45\x20]\x0a则表示晚\x209\x20点到次日\x2007:45\x0a晚\x2023\x20点和早\x206\x20点都在范围内\x0a而上午\x2011\x20点则不在上述范围\x0a注意区分\x20[\x2007:45,\x2021:00\x20]\x0a如有多个时段将做并集处理\x0a如果设置了一个\x2024\x20小时区间\x0a则时段管理将失去意义\x0a如\x20[\x2005:23,\x2005:23\x20]\x0a等同于\x22全天有效\x22的效果','maxRunningTimeGlobal':'设置值用于脚本单次运行\x0a可消耗的最大时间\x0a避免无人值守时的无响应情况','maxQueueTimeGlobal':'当旧排他性任务运行或排队时\x0a新排他性任务将继续排队\x0a排队时间与排他性任务总数相关\x0a\x0a*\x20当排队时间达到阈值时将强制结束\x0a--\x20当前正在运行的排他性任务\x0a*\x20设置过小的值可能在脚本\x0a--\x20正常结束前被意外终止','minBombIntervalGlobal':'若当前脚本与最近一个正在运行的蚂蚁森林脚本的运行时间差小于此阈值\x0a则视当前脚本为炸弹脚本\x0a炸弹脚本将自动强制停止\x0a此安全设置通常针对因某些原因短时间内运行大量相同脚本的意外情况','about_kill_when_done':'此设置用于决定脚本结束时\x0a保留或关闭支付宝应用\x0a\x0a关闭总开关后将在脚本结束时\x0a无条件关闭支付宝应用\x0a\x0a支付宝应用保留:\x0a智能保留:\x0a脚本运行时检测当前前置应用\x0a根据前置应用是否是支付宝\x0a决定保留或关闭操作\x0a总是保留:\x0a无条件保留支付宝应用\x0a\x0a蚂蚁森林页面保留:\x0a智能剔除:\x0a脚本将自动关闭与蚂蚁森林项目相关的全部页面\x0a如蚂蚁森林主页/排行榜页面等\x0a最终回归到脚本启动前的支付宝页面\x0a全部保留:\x0a无条件保留项目运行中的所有页面\x0a除非支付宝应用被触发关闭\x0a\x0a*\x20关闭应用优先使用杀死应用方式\x0a--\x20杀死应用需要\x20Root\x20权限\x0a--\x20无\x20Root\x20权限将尝试最小化应用\x0a--\x20最小化原理并非模拟\x20Home\x20键\x0a*\x20\x27智能保留\x27的智能化程度十分有限','backup_to_local':'此功能将项目相关文件打包保存在本地\x0a可在还原页面恢复或删除已存在的备份','restore_project_confirm':'确定还原此版本项目吗\x0a本地项目将被覆盖\x0a此操作无法撤销\x0a\x0a还原后建议重启配置工具','v1_6_25_restore_confirm':'此版本过于陈旧\x0a不建议还原此版本\x0a\x0a还原后将丢失以下全部功能:\x0a1.\x20项目更新功能\x0a2.\x20项目备份还原功能\x0a3.\x20解锁模块的高效稳定性\x0a4.\x20解锁模块的开发者测试模式\x0a5.\x20重要的工具函数\x0a\x0a缺少工具函数将导致项目无法运行','rankListSwipeDuration':'通常无需自行设置\x0a若出现滑动异常现象\x0a可尝试适当增大此设置值','rankListSwipeInterval':'若出现遗漏目标的情况\x0a可尝试适当增大此设置值','rankListScrollInterval':'若出现遗漏目标的情况\x0a可尝试适当增大此设置值','rankListCaptPoolDiffCheckThreshold':'排行榜滑动前后截图样本相同时\x0a脚本认为滑动无效\x20并进行无效次数统计\x20当连续无效次数达到阈值时\x20将放弃滑动并结束好友能量检查\x0a\x0a达阈值时\x20脚本会判断\x22服务器打瞌睡\x22页面及\x22正在加载\x22按钮\x20根据实际情况点击\x22再试一次\x22或等待\x22正在加载\x22按钮消失\x20(最大等待2分钟)\x0a\x0a*\x20此参数主要避免因意外情况导致当前页面不在排行榜页面时的无限滑动\x0a*\x20截图样本相同指:\x20相似度极高','rankListNotTargetedLimit':'排行榜每滑动一次\x0a若当前页面没有好友\x0a则记录一次无目标命中次数\x0a当达到最大阈值时则停止排行榜检查\x0a*\x20此参数主要避免因意外情况导致在某一页面的无限滑动','about_rank_list_review':'样本复查:\x0a\x0a排行榜列表到达底部后\x0a由复查条件决定是否重新检查排行榜\x0a进而达到循环监测的目的\x0a\x0a列表到达底部后\x0a脚本会统计记录列表所有好友数据\x0a包括倒计时数据及对应好友昵称\x0a\x0a复查条件:\x0a\x0a1.\x20列表状态差异:\x0a比较上一次统计的昵称数据\x0a只要昵称数据不一致\x0a则触发复查条件\x0a脚本将复查列表并重新比较数据\x0a直到最近两次昵称数据完全一致\x0a\x0a*\x20因至少需要两组比较数据\x0a--\x20所以列表至少会复查一次\x0a*\x20即便这样会导致额外的操作\x0a--\x20此条件依然是循环检测的利器\x0a--\x20用户可自行斟酌保留与否\x0a\x0a2.\x20样本点击记录:\x0a在一次完整的列表滑动过程中\x0a只要出现了有效点击行为\x0a则触发复查条件\x0a\x0a3.\x20最小倒计时阈值:\x0a统计最小成熟倒计时\x0a如果达到设定阈值\x0a则触发复查条件\x0a\x0a*\x20有效点击指进入好友森林后\x0a--\x20点击过可收取的能量球','strollButtonLocateMainColor':'参数用于配置多点取色方式\x0a定位逛一逛按钮时的基准色值','strollButtonMatchThreshold':'参数用于配置多点取色方式\x0a定位逛一逛按钮时的匹配阈值','strollNotTargetedLimit':'参数用于防止逛一逛策略\x0a在采集过程中遇到无操作好友\x0a可能引起的无限循环\x0a\x0a无操作情况举例:\x0a·\x20好友位于自定义黑名单\x0a·\x20好友使用能量保护罩\x0a·\x20好友能量球采集失败\x0a·\x20好友能量球点击失败\x0a·\x20好友能量球被他人收取\x0a·\x20用户关闭了相关功能\x0a','about_collectable_samples':'排行榜列表\x20(默认策略):\x0a从排行榜遍历可操作目标\x0a优点:\x0a1.\x20方案成熟且不易出现目标遗漏\x0a2.\x20获取倒计时数据无需额外耗时\x0a缺点:\x0a1.\x20采集效率受好友数量影响较大\x0a2.\x20差异样本池消耗较多硬件资源\x0a3.\x20需要频繁进出排行榜页面\x0a\x0a逛一逛按钮:\x0a直接使用官方提供的快捷按钮\x0a优点:\x0a1.\x20采集效率高/不受好友数量影响\x0a2.\x20避开排行榜的所有潜在问题\x0a3.\x20无需考虑循环遍历条件\x0a缺点:\x0a1.\x20按钮定位判断条件可信度低\x0a2.\x20结束页面判断条件可信度低\x0a3.\x20过程可操控性/可预见性低\x0a4.\x20获取倒计时数据依赖排行榜\x0a5.\x20一定概率出现可操作目标遗漏\x0a\x0a注意:\x0a当逛一逛按钮方案出现异常时\x0a脚本将自动在当前会话过程中\x0a切换至\x22排行榜列表\x22采集策略','restore_from_local':'确定还原此备份吗\x0a本地项目将被覆盖\x0a此操作无法撤销\x0a\x0a还原后建议重启配置工具','restore_original_list_data':'要恢复本次会话开始前的列表数据吗\x0a\x0a此操作不可撤销','add_friend_nickname_manually':'手动添加易出错\x0a且难以键入特殊字符\x0a建议使用列表导入功能','phoneCallStateIdleValue':'当设备当前通话状态值\x0a与空闲状态值不一致时\x0a将触发通话状态事件\x0a脚本将持续等待\x0a直到通话状态变为空闲\x0a\x0a*\x20事件解除后\x0a--\x20脚本将执行一次支付宝前置操作\x0a*\x20不同设备的通话空闲状态值\x0a--\x20可能存在差异','phoneCallStateIdleValueWarn':'输入值与当前通话空闲值不一致\x0a此配置将导致脚本无法正常运行\x0a\x0a确定要使用当前输入值吗','rank_list_bottom_template_hint_base':'排行榜\x22没有更多了\x22控件的图片模板\x0a此模板用于排行榜底部判断\x0a\x0a','rank_list_bottom_template_hint_exists':'正常模板应包含\x22没有更多了\x22字样\x0a查看模板后若发现图片模板存在异常\x0a可选择删除模板\x0a模板删除后\x0a脚本在下次运行时将自动生成新模板','rank_list_bottom_template_hint_not_exists':'当前暂未生成图片模板\x0a脚本在下次运行时将自动生成新模板','about_rootAccessPrivileges':'当Auto.js被授予Root权限时\x0a可通过Root权限实现功能升级\x0a如可以直接模拟按键实现快速关屏\x0a或通过adb命令直接杀死应用进程\x0a\x0a即便Auto.js未获取Root权限\x0a用户依然可以进行功能参数配置\x0a此时所有开启的功能均无法生效\x0a脚本在运行过程中将做平稳退化\x0a\x0a注意:\x0aRoot权限关闭应用时\x0a可能出现几秒钟的黑屏现象\x0a此时Toast及Floaty消息会出现阻塞\x0a因此可能影响运行结果展示的效果','about_auto_enable_a11y_svc':'通过修改系统无障碍服务的列表参数\x0a实现Auto.js无障碍服务的自动开启\x0a此过程需要授予Auto.js以下权限:\x0a\x0aWRITE_SECURE_SETTINGS\x0a\x0a如果设备已经获取Root权限\x0a脚本将自动完成上述所需权限的授权\x0a否则需要将手机连接到计算机\x0a然后在计算机使用ADB工具\x0a执行以下指令(无换行):\x0a\x0aadb\x20shell\x20pm\x20grant\x20org.autojs.autojs\x20android.permission.WRITE_SECURE_SETTINGS\x0a\x0a执行后Auto.js将获取上述权限\x0a如需撤销授权需将上述指令的\x0agrant替换为revoke\x0a\x0a注:\x20如果没有权限授权\x0a脚本则会在需要的时候\x0a提示用户手动开启无障碍服务\x0a\x0a*\x20参数默认值:\x20禁用自动启动','about_app_launch_springboard':'某些设备或应用无法直接调用\x20APP\x0a如\x20launch()\x20或\x20startActivity()\x20等\x0a需先调用\x20Auto.js\x20再调用指定\x20APP\x0a当脚本运行结束时\x0a可自动关闭调用过的\x20Auto.js\x20页面\x0a以实现跳板的无痕特性\x0a\x0a*\x20参数默认值:\x20关闭跳板\x0a*\x20无痕特性以跳板页面暴露为前提','about_timed_task_type':'一次性任务执行后将自动失效\x0a每日/每周任务将按日/按周循环执行\x0a\x0a注意:\x0a1.\x20定时任务自动管理功能往往可以\x0a--\x20完成绝大多数定时任务需求\x0a--\x20因此不建议设置过多或\x0a--\x20过于繁杂的手动定时任务\x0a2.\x20也可以使用\x20Auto.js\x20自带的\x0a--\x20定时任务管理功能\x0a--\x20但涉及月份设置或修改时很可能\x0a--\x20会出现\x201\x20个月的偏差问题','delete_min_countdown_task_warn':'正在删除最小倒计时任务\x0a\x0a最小倒计时任务是\x0a定时任务自动管理功能的精髓\x0a除非已确定此任务的异常性\x0a否则强烈不建议删除此任务\x0a\x0a确定要删除最小倒计时任务吗','promptBeforeRunningCountdownSeconds':'倒计时结束前\x0a用户可自主点击按钮执行相应操作\x0a否则倒计时超时后脚本将自动执行','about_aj_global_log_page':'本地日志功能将Auto.js生成的\x0a所有控制台日志写入文件\x0a包括蚂蚁森林项目及其他所有脚本\x0a同样当关闭此功能时\x0a将停止所有脚本日志的本地写入\x0a\x0aAuto.js因崩溃等原因重启时\x0a本地日志写入功能将失效\x0a但原有的本地日志依然保留\x0a仅仅是停止继续写入\x0a此时运行蚂蚁森林项目\x0a若本地日志写入功能开关开启\x0a将自动重新激活本地日志的写入功能\x0a\x0a功能核心代码:\x0aconsole.setGlobalLogConfig','about_eballs_recognition':'能量球的识别基于霍夫变换\x0a关键参数如下:\x0a\x20\x20\x20\x20image:\x20%img%\x0a\x20\x20\x20\x20dp:\x201\x0a\x20\x20\x20\x20minDst:\x20cX(0.09)\x20(可配置)\x0a\x20\x20\x20\x20minRadius:\x20cX(0.054)\x0a\x20\x20\x20\x20maxRadius:\x20cX(0.078)\x0a\x20\x20\x20\x20param1:\x2015\x0a\x20\x20\x20\x20param2:\x2015\x0a可参阅\x20__image__.js\x20封装模块\x0a内部的\x20images.findCircles()\x20方法\x0a\x0a上述的\x20%img%\x20传入参数有以下策略:\x0a1.\x20灰度化\x0a基本的图像处理策略\x0a霍夫变换必须传入\x208\x20位单通道灰度图像\x0a2.\x20自适应阈值\x0a根据像素的邻域块的像素值分布\x0a确定该像素位置上的二值化阈值\x0a3.\x20中值滤波\x20&\x204.\x20均值滤波\x0a均值滤波和中值滤波都可以平滑图像并虑去噪声\x0a均值滤波采用线性方法对目标像素及周边像素取平均值后再填充目标像素\x0a中值滤波采用非线性方法使用所有像素中值替代中心位置像素值\x0a5.\x20双边滤波\x0a双边滤波是一种非线性滤波方法\x0a结合图像的空间邻近度和像素值相似度的一种折衷处理\x0a同时考虑空域信息和灰度相似性达到保边去噪的目的\x0a\x0a由于双边滤波耗时相对较长\x0a且识别结果准确率也未见明显优势\x0a因此不建议开启双边滤波策略\x0a除非对识别率有极高的要求或用于测试或关闭了\x202,3,4\x20策略仅保留\x201,5\x20等情况\x0a但依然不建议\x201,5\x20这样的策略组合\x0a\x0a通过霍夫变换得到页面的圆形样本后\x0a样本会按照横坐标升序排序\x0a排序后可对样本数据做进一步处理:\x0a1.\x20覆盖检测\x0a如果相邻两个圆形的圆心间距过小\x0a则认为样本重复并将后一个样本去除\x0a2.\x20对称检测\x0a对于所有样本的最左和最右两个样本\x0a如果做中轴镜像后不满足最小球间距\x0a则认为对方位置能量球缺失\x20并会做能量球补算填充\x0a3.\x20线性插值\x0a计算所有球的最小间距作为参考值\x0a如果检测到有相邻两个能量球间距大于这个参考值的某个倍数\x20则会做插值处理\x20可能插入\x201\x20个或多个能量球\x0a\x0a数据处理示例:\x0a森林页面最多可展示\x206\x20个能量球\x0a将这些球大概位置记为\x201,\x202...\x206\x0a以下示例仅针对线性插值和对称检测\x0a示例\x201:\x0a能量球\x201\x20个\x20位于\x203\x20号位置偏右\x0a识别到的能量球位置\x203\x0a对称检测不生效\x0a线性插值不生效\x0a结果:\x203\x20(正确)\x0a示例\x202:\x0a能量球\x202\x20个\x20位于\x203,4\x0a识别到的能量球位置\x204\x0a即遗漏了\x203\x20号位置的球\x0a对称检测生效\x0a由\x204\x20做镜像后补充\x0a线性插值不生效\x0a结果:\x203,4\x20(正确)\x0a示例\x203:\x0a能量球\x206\x20个\x20位于\x201,2,3,4,5,6\x0a识别到的能量球位置\x201,5,6\x0a即遗漏了\x202,3,4\x20位置的球\x0a对称检测不生效\x0a因为\x201\x20和\x206\x20镜像后不需补充\x0a线性插值生效\x0a5\x20和\x206\x20的间距作为参考\x0a会将\x201\x20与\x204\x20之间插入\x202\x20个球\x0a结果:\x201,2,3,4,5,6\x20(正确)\x0a示例\x204:\x0a能量球\x205\x20个\x20位置如下:\x0a1,\x202偏右,\x20居中,\x205偏左,\x206\x0a为方便阅读\x20将位置记为\x20A,B,C,D,E\x0aA,E\x20对称\x20\x20B,D\x20对称\x20\x20C\x20居中\x0a识别到的能量球位置\x20A,C,E\x0a即遗漏了\x20B,D\x20位置的球\x0a对称检测不生效\x0a因为\x20A\x20和\x20E\x20镜像后不需补充\x0a线性插值不生效\x0aA,C\x20和\x20C,E\x20的间距几乎相同\x0a因此无需插值\x0a结果:\x20A,C,E\x20(错误)\x0a如果上述情况的识别结果为\x20A,D,E\x0a则与示例\x203\x20类似\x0a最终将识别到正确结果:\x20A,B,C,D,E','update_ignore_confirm':'确定要忽略当前版本吗\x0a\x0a*\x20忽略后脚本将不再提示当前版本更新\x0a*\x20忽略后可在配置工具中管理已忽略的所有版本','about_update_auto_check':'自动检查更新功能可在不同场景\x0a进行版本更新的提示\x0a\x0a*\x20注意:\x20此功能不会自动下载更新\x0a\x0a更新提示场景:\x0a\x0a1.\x20运行结果展示时\x0a当\x22运行结果展示\x22功能生效时\x0a可同时展示版本更新提示\x0a包括Floaty或Toast方式\x0a\x0a2.\x20配置工具启动时\x0a在配置工具启动后\x0a脚本会在后台检查项目更新\x0a发现更新后以SnackBar方式提示\x0a\x0a版本忽略管理:\x0a\x0a对于不希望提示更新的版本\x0a可添加至忽略列表中\x0a例1:\x20当前版本为v2.0.1\x0a服务器最新版本为v2.0.2\x0a将v2.0.2添加至忽略列表中\x0a则脚本将不会提示项目有更新\x0a例2:\x20当前版本为v2.0.1\x0a服务器最新版本为v2.0.4\x0a将v2.0.4添加至忽略列表中\x0a则脚本将会提示项目有更新\x0a且最新版本为v2.0.3\x0a此时如果再将v2.0.3添加至列表\x0a则脚本依然会提示项目有更新\x0a且最新版本为v2.0.2\x0a','about_rankListScanStrategy':'控件滚动:\x0a基于排行榜可滚动控件的\x0a无障碍行为实现列表滚动\x0a优点:\x0a1.\x20滚动效率非常高\x0a2.\x20无需关心滚动距离\x0a3.\x20全平台无惯性滚动\x0a缺点:\x0a1.\x20依赖控件\x0a2.\x20定位唯一性可能不够严谨\x0a\x0a模拟滑动:\x0a基于辅助服务的\x0a无障碍行为实现列表滑动\x0a优点:\x0a1.\x20可定义滑动距离及时长\x0a2.\x20不依赖排行榜控件\x0a缺点:\x0a1.\x20某些平台可能出现惯性滑动','about_rank_list_scroll_distance':'采用\x22控件滑动\x22策略时\x0a无法指定滑动距离\x0a由\x22无障碍行为\x22实现基于控件的滚动','about_rank_list_scroll_time':'采用\x22控件滑动\x22策略时\x0a无法指定滑动时长\x0a由\x22无障碍行为\x22决定控件的滚动时长','about_memory_info':'System\x20Memory:\x20系统内存\x0a剩余内存\x20|\x20总内存\x20|\x20使用率\x0a\x0aRuntime\x20Heap:\x20JVM堆内存\x0aJVM总内存-JVM空闲内存\x20|\x20JVM可用最大内存\x20|\x20使用率\x0a\x0aProcess\x20Heap:\x20进程堆内存\x0a\x27summary.java-heap\x27\x20|\x20JVM可用最大内存\x20|\x20使用率\x0a\x0aPSS\x20(Proportional\x20Set\x20Size):\x20实际使用的物理内存\x20(比例分配共享库占用的内存)\x0aUSS\x20(Unique\x20Set\x20Size):\x20进程独自占用的物理内存\x20(不包含共享库占用的内存)\x0a\x0a*\x20JVM堆内存会定期回收\x0a*\x20进程堆内存更新频率较慢\x0a*\x20当任意内存使用率超过90%时建议重启进程\x0a\x0a*\x20相关内存信息对应的伪代码\x0a\x0aActivityManager.MemoryInfo\x20>\x20totalMem\x20-\x20系统总内存\x0aActivityManager.MemoryInfo\x20>\x20availMem\x20-\x20系统剩余内存\x0a\x0aRuntime\x20>\x20totalMemory()\x20-\x20JVM总内存\x0aRuntime\x20>\x20freeMemory()\x20-\x20JVM空闲内存\x0aRuntime\x20>\x20maxMemory()\x20-\x20JVM可用最大内存\x0a\x0aDebug.MemoryInfo\x20>\x20getTotalSharedDirty()\x0a-\x20RSS\x20(Resident\x20Set\x20Size)\x20-\x20实际使用物理内存\x20(包含共享库占用的内存)\x0aDebug.MemoryInfo\x20>\x20getTotalPss()\x0a-\x20PSS\x20(Proportional\x20Set\x20Size)\x20-\x20实际使用的物理内存\x20(比例分配共享库占用的内存)\x0aDebug.MemoryInfo\x20>\x20getTotalPrivateDirty()\x0a-\x20USS\x20(Unique\x20Set\x20Size)\x20-\x20进程独自占用的物理内存\x20(不包含共享库占用的内存)','about_process_restart':'脚本调用如下代码片段杀死当前应用活动进程:\x0aProcess.killProcess(Process.myPid());\x0a\x0a此操作将清理进程内所有资源\x0a由于ActivityManager时刻监听进程\x0a一旦发现进程非正常结束\x0a它将试图重启此进程\x0a进而实现进程的自动重启'};},724:(V,Y,Z)=>{let {$$impeded:i,$$str:n,$$num:s,$$rex:o,isObjectSpecies:a,isNullish:l,isNonEmptyObject:c,sleep:u,requirex:p,$$toast:h}=Z(0x2c4),{consolex:_}=Z(0x2d5),a0=android['provider']['Settings'],a1=a0['Secure'],a2=android['graphics']['Rect'],a3=org['opencv']['core']['Point'],a4=android['content']['Intent'],a5=com['stardust']['automator']['UiObject'],a6=com['stardust']['autojs']['core']['accessibility']['UiSelector'],a7=com['stardust']['autojs']['core']['accessibility']['AccessibilityService'],a8=android['view']['accessibility']['AccessibilityWindowInfo'],a9={'ctx_reso':context['getContentResolver'](),'autojs_a11y_svc_name':context['getPackageName']()+'/'+new a7()['getClass']()['getName'](),get 'sel'(){return this['selector']=this['selector']||aa['selector']();},'parseArgs'(V){let Y=[this['autojs_a11y_svc_name']],Z=!0x1,ae=typeof V[0x0];return'undefined'!==ae&&(Array['isArray'](ae)?(Y=V[0x0],Z=!!V[0x1]):'string'===ae?(Y=[V[0x0]],Z=!!V[0x1]):'boolean'===ae&&(Z=V[0x0])),{'forcible':Z,'svc':Y};},'getString'(){return a1['getString'](this['ctx_reso'],a1['ENABLED_ACCESSIBILITY_SERVICES'])||'';},'tryEnableAndRestart'(){if(aa['enable'](!0x0)){let {enginesx:V}=p('ext-engines');_['$'](['已自动开启无障碍服务','尝试一次项目重启操作'],0x1,0x0,0x0,0x2),V['restart']({'isDebug':!0x0,'is_instant_running':!0x1,'max_restart_e_times':0x1}),sleep(0x1068),exit();}}},aa={'bridge':{'setWindowFilter'(V){auto['setWindowFilter'](function(Y){try{return V(Y);}catch(ai){return!0x1;}});},'setWindowBlacklist'(V){this['setWindowFilter'](Y=>!V['includes'](Y['getRoot']()['getPackageName']()));},'setWindowWhitelist'(V){this['setWindowFilter'](Y=>V['includes'](Y['getRoot']()['getPackageName']()));},'setWindowAllowAll'(){this['setWindowFilter'](()=>!0x0);},'resetWindowFilter'(){this['setWindowFilter'](V=>this['isWindowType'](V,'APPLICATION')||this['isWindowType'](V,'SYSTEM')&&V['isActive']());},'isWindowType'(V,Y){if('number'==typeof Y)return Y===V['getType']();let Z=String(Y)['toUpperCase']();if(!(Z in{'APPLICATION':0x1,'INPUT_METHOD':0x2,'SYSTEM':0x3,'ACCESSIBILITY_OVERLAY':0x4,'SPLIT_SCREEN_DIVIDER':0x5}))throw TypeError('Unknown\x20type\x20of\x20\x22type\x22\x20for\x20isWindowType()');return a8['TYPE_'+Z]===V['getType']();}},'service':{'refreshServiceInfo'(){auto['service']['setServiceInfo'](auto['service']['getServiceInfo']());}},'click$'(){return(this['_click$']=this['_click$']||i['detach'](this['click'],0x2))['apply'](this,arguments);},'wait$'(){return(this['_wait$']=this['_wait$']||i['detach'](this['wait'],0x3))['apply'](this,arguments);},'swipe$'(){return(this['_swipe$']=this['_swipe$']||i['detach'](this['swipe'],0x3))['apply'](this,arguments);},'enable'(){try{let V,{forcible:Y,svc:Z}=a9['parseArgs'](arguments);if(this['state'](Z)?Y&&(V=this['enabled_svc']):V=this['enabled_svc']['split'](':')['filter'](V=>!Z['includes'](V))['concat'](Z)['join'](':'),V){a1['putString'](a9['ctx_reso'],a1['ENABLED_ACCESSIBILITY_SERVICES'],V),a1['putInt'](a9['ctx_reso'],a1['ACCESSIBILITY_ENABLED'],0x1);let Y=Date['now']();for(;Date['now']()-Y<0x7d0;){if(this['state'](Z))return!0x0;sleep(0xb4);}_['$']('Operation\x20timed\x20out',0x4,0x1);}return!0x0;}catch(au){return!0x1;}},'disable'(){try{let V=arguments[0x0];if(n(V)&&'all'===V['toLowerCase']())return a1['putString'](a9['ctx_reso'],a1['ENABLED_ACCESSIBILITY_SERVICES'],''),a1['putInt'](a9['ctx_reso'],a1['ACCESSIBILITY_ENABLED'],0x1),!0x0;let Y,{forcible:Z,svc:i}=a9['parseArgs'](arguments),ax=a9['getString'](),ay=function(){for(let V=0x0,Y=i['length'];V!i['includes'](V))['join'](':'):Z&&(Y=ax),Y){a1['putString'](a9['ctx_reso'],a1['ENABLED_ACCESSIBILITY_SERVICES'],Y),a1['putInt'](a9['ctx_reso'],a1['ACCESSIBILITY_ENABLED'],0x1),ax=a9['getString']();let V=Date['now']();for(;Date['now']()-V<0x7d0;){if(!ay())return!0x0;sleep(0xb4);}_['$']('Operation\x20timed\x20out',0x4,0x1);}return!0x0;}catch(aD){return!0x1;}},'restart'(){return this['disable']['apply'](this,arguments)&&this['enable']['apply'](this,arguments);},'state'(V){let Y=this['enabled_svc']=a9['getString'](),Z=[];if(Array['isArray'](V))Z=V['slice']();else if(void 0x0===V)Z=[a9['autojs_a11y_svc_name']];else{if('string'!=typeof V)throw TypeError('Unknown\x20a11y\x20state\x20type');Z=[V];}return Z['every'](V=>Y['includes'](V));},'services':()=>a9['getString']()['split'](':')['filter'](V=>!!V),'test'(){let V='%rand%'+Date['now']()+Math['random']()['toFixed'](0x9);return this['enable'](V,!0x0),this['disable'](V,!0x0);},'selector'(){let V={'sel_body_pool':{},'cache_pool':{}},Y={'pickup'(V,Y,aO){let aP={'loc_keys_abbr':{'bi$':'boundsInside','c$':'clickable','cn$':'className'},'options':aO||{},get 'res_type'(){return this['_res_type']=this['_res_type']||this['getResultType'](Y);},get 'locator'(){return this['_locator']||null;},get 'widget'(){return this['_widget']||null;},get 'widget_collection'(){return this['_wc']||[];},get 'selector'(){return this['_selector']||null;},'tools':{'uiObject2Point':V=>V instanceof a5?new a3(V['bounds']()['centerX'](),V['bounds']()['centerY']()):null,'wrapStrByOptDef':V=>!V&&'default'in aP['options']?aP['options']['default']:V,'isArrResType':()=>/^(widgets|points)$/['test'](aP['res_type']),'isCompass':V=>'string'==typeof V&&/([pck]\d*)+/['test'](V)},'refreshSvcInfoIFN'(){this['options']['refresh']&&aa['service']['refreshServiceInfo']();},'parseRawLocator'(){let Y,Z,aO=V;if(Array['isArray'](aO)){let V=aO['slice']();this['tools']['isCompass'](V[V['length']-0x1])&&(Z=V['pop']()),[aO,Y]=V;}let aX=this['setUniqueLocator'](aO,Y);aX instanceof a6?(this['_selector']=aX,this['_widget']=this['getWidgetByCompass'](aX['findOnce'](),Z),this['tools']['isArrResType']()&&(this['_wc']=aX['find']()['toArray']())):aX instanceof a5&&(this['_selector']=null,this['_widget']=this['getWidgetByCompass'](aX,Z),this['tools']['isArrResType']()&&(this['_wc']=[aX]));},'setUniqueLocator'(V,Y){if(V instanceof a6)return this['_locator']=this['assembleSelectors'](V,Y);if(n(V)||s(V)||o(V)){let Z=this['parseTextSelector'](V);return this['_locator']=this['assembleSelectors'](Z,Y);}if(a(V)){let Z=global['selector'](),aO=Object['assign'](V,Y);return this['_locator']=this['assembleSelectors'](Z,aO);}return this['_locator']=V;},'extendLocator'(V,Y,aO){let b6,{$$disp:s}=Z(0x19f),b7={get 'W'(){return'object'==typeof s?s['W']:device['width'];},get 'H'(){return'object'==typeof s?s['H']:device['height'];},'screenCenterX'(Y){let Z=Number(Y),aO=!0x0===Y||l(Y)||isNaN(Z)?0.01:!0x1===Y?Y:Z['clamp'](0x0,0.25),b6=V=>Math['abs'](V['bounds']()['centerX']()-this['W']/0x2)<=this['W']*aO;return!0x1!==aO?V['filter'](b6['toRegular']()):V['filter']((V=>!b6(V))['toRegular']());},'isFullScreen'(Y){let Z=Number(Y),aO=!0x0===Y||isNaN(Z)?0.15:!0x1===Y?Y:Z['clamp'](0x0,0.5),b6=V=>V['bounds']()['height']()/this['H']>=0x1-aO&&Math['abs'](V['bounds']()['width']()-this['W'])<=0x4;return!0x1!==aO?V['filter'](b6['toRegular']()):V['filter']((V=>!b6(V))['toRegular']());},'isAlipay'(Y){if(void 0x0===Y)return Y;let Z='.*(Alipay|alipay).*';return Y?V['packageNameMatches'](Z):V['filter']((V=>!V['packageName']()['match'](Z))['toRegular']());}};try{b6=b7[Y]['apply'](b7,aO);}catch(bn){throw console['warn'](bn['message']),Error('Cannot\x20apply\x20extended\x20locator:\x20'+Y);}if(b6 instanceof a6)return b6;throw Error('Extended\x20locator\x20('+Y+')\x20returns\x20non-UiSelector\x20type');},'assembleSelectors'(V,Y){return l(V)||!c(Y)||Object['keys'](Y)['forEach'](Z=>{let aO=Z in this['loc_keys_abbr']?this['loc_keys_abbr'][Z]:Z,bs=V=>'function'==typeof V?V['toRegular']():V,bt=Array['isArray'](Y[Z])?Y[Z]['map'](bs):[Y[Z]]['map'](bs),bu=V[aO];if('function'==typeof bu)try{return V=bu['apply'](V,bt);}catch(bw){throw console['warn'](bw['message']),Error('Cannot\x20apply\x20selector:\x20'+aO);}return V=this['extendLocator'](V,aO,bt);}),V;},'getTextSelector'(V,Y){let Z={'sel':Y['desc'](V),get 'txt'(){let V=this['sel']['findOnce']();return V&&V['desc']()||'';}},aO={'sel':Y['text'](V),get 'txt'(){let V=this['sel']['findOnce']();return V&&V['text']()||'';}},bB=Z['txt']['length'],bC=aO['txt']['length'];if(bB||bC)return bC>bB?aO['sel']:Z['sel'];let bF=Y['id'](V);return bF['exists']()?bF:null;},'parseTextSelector'(V){return V instanceof RegExp?this['getTextSelector'](V,{'desc':descMatches,'text':textMatches,'id':idMatches}):('number'==typeof V&&(V=V['toString']()),'string'==typeof V?this['getTextSelector'](V,{'desc':desc,'text':text,'id':id}):null);},'getWidgetByCompass'(V,Y){if(!(V instanceof a5))return null;if('string'!=typeof Y)return V;for(;Y['length']>0x0;){let Z,aO,bL,bM;if(Z=/^p[p\d]*/['exec'](Y)){let aO=Y['match'](/^p\d+|^p+(?!\d)/g)['reduce']((V,Y)=>V+(/\d/['test'](Y)?Number(Y['slice'](0x1)):Y['length']),0x0);for(;aO--;)if(!(V=V['parent']()))return null;Y=Y['slice'](Z[0x0]['length']);}else if(aO=/^c-?\d+([>c]?-?\d+)*/['exec'](Y)){let Z=aO[0x0]['split'](/[>c]/);for(let Y of Z)if(Y['length']){if(!(V instanceof a5))return null;let Z=V['childCount'](),aO=Number(Y);if(aO<0x0&&(aO+=Z),aO<0x0||aO>=Z)return null;V=V['child'](aO);}Y=Y['slice'](aO[0x0]['length']);}else if(bL=/^s[<>]?-?\d+/['exec'](Y)){let Z=V['parent']();if(!(Z instanceof a5))return null;let aO=V['indexInParent']();if(aO<0x0)return null;let bM=Z['childCount'](),bX=bL[0x0],bY=+bX['match'](/-?\d+/)[0x0];if(bX['includes']('>')?aO+=bY:bX['includes']('<')?aO-=bY:aO=bY<0x0?bY+bM:bY,aO<0x0||aO>=bM)return null;V=Z['child'](aO),Y=Y['slice'](bL[0x0]['length']);}else{if(!(bM=/^k[k\d]*/['exec'](Y)))throw Error('Invalid\x20rest\x20compass\x20for\x20$$sel.pickup():\x20'+Y);{let Z=Y['match'](/^k(\d*)/g)['map'](V=>{let Y=V['match'](/\d+/);return Y?Number(Y[0x0]):0x1;})['reduce']((V,Y)=>V+Y);V=function(){let Y=V;for(;;){if(!(Y instanceof a5))return null;if(Y['clickable']())return Y;if(!Z--)return V;Y=Y['parent']();}}(),Y=Y['slice'](bM[0x0]['length']);}}}return V||null;},'getResultType'(V){let Y=V?String(V):null;return null===Y||Y['match'](/^w(idget)?$/)?'widget':Y['match'](/^(w(idget)?_?c(ollection)?|wid(get)?s)$/)?'widgets':Y['match'](/^t(xt)?$/)?'txt':Y['match'](/^s(el(ector)?)?$/)?'selector':Y['match'](/^e(xist(s)?)?$/)?'exists':Y['match'](/^s(el(ector)?)?(_?s)(tr(ing)?)?$/)?'selector_name':Y['match'](/^p(oin)?ts?$/)?Y['includes']('s')?'points':'point':Y;},'getInternalResult'(){return{'selector':this['selector'],'widget':this['widget'],'widgets':this['widget_collection'],'exists':Boolean(this['widget']),get 'selector_name'(){if(!this['widget']||!this['selector'])return aP['tools']['wrapStrByOptDef']('');let V=this['selector']['toString']()['match'](/[a-z]+/);return aP['tools']['wrapStrByOptDef'](V?V[0x0]:'');},get 'txt'(){let V=this['widget']&&this['widget']['text']()||'',Y=this['widget']&&this['widget']['desc']()||'';return Y['length']>V['length']?aP['tools']['wrapStrByOptDef'](Y):aP['tools']['wrapStrByOptDef'](V);},get 'point'(){return aP['tools']['uiObject2Point'](this['widget']);},get 'points'(){return this['widgets']['map'](aP['tools']['uiObject2Point'])['filter'](V=>null!==V);}}[this['res_type']];},'getResult'(){this['refreshSvcInfoIFN'](),this['parseRawLocator']();let V=function(){let V=this['getInternalResult']();if(void 0x0!==V)return V;if(null===this['widget'])return null;let Y=this['widget'][this['res_type']];return'function'==typeof Y?Y['call'](this['widget']):Y;}['call'](this);return l(V)?'default'in this['options']?this['options']['default']:null:V;}};return aP['getResult']();},'traverse':(V,Z,cg)=>({'parseFilter'(){this['filter']='string'==typeof Z?V=>Y['pickup'](V,Z):'function'==typeof Z?Z:()=>!0x0;},'parseArgs'(){this['parseFilter'](),this['type']=cg||'widget',this['pickup']=Y['pickup']['bind'](Y),this['pickup_null_res']=this['pickup'](null,this['type']);},'traverse'(V){for(let Y of this['pickup'](V,'children',{'default':[]})){if(!(Y instanceof a5))continue;if(this['filter'](Y))return this['pickup'](Y,this['type']);let V=this['traverse'](Y);if(V!==this['pickup_null_res'])return V;}return this['pickup_null_res'];},'getResult'(){return this['parseArgs'](),this['filter'](V)?this['pickup'](V,this['type']):this['traverse'](V);}}['getResult']()),'traverseAll':(V,Z,cn)=>({'results':[],'type':cn||'widget','filter':'string'==typeof Z?V=>Y['pickup'](V,Z):'function'==typeof Z?Z:()=>!0x0,'pickup':Y['pickup']['bind'](Y),'traverse'(V){for(let Y of this['pickup'](V,'children',{'default':[]}))Y instanceof a5&&(this['filter'](Y)&&this['results']['push'](this['pickup'](Y,'widget')),this['traverse'](Y));return this['type']['match'](/^w(idget)?$/)?this['results']:this['results']['map'](V=>this['pickup'](V,this['type']));},'getResult'(){return this['filter'](V)&&this['results']['push'](this['pickup'](V,'widget')),this['traverse'](V);}}['getResult']()),'add'(Y,Z){return V['sel_body_pool'][Y]='function'==typeof Z?V=>Z(V):V=>this['pickup'](Z,V),this;},'get'(Y,Z){let cz=V['sel_body_pool'][Y];if(void 0x0!==cz)return cz?'cache'===Z?V['cache_pool'][Y]=cz('w'):cz(Z):null;throw Error('Key\x20\x22'+Y+'\x22\x20is\x20not\x20in\x20the\x20pool');},'getAndCache'(V){return this['get'](V,'cache');},'cache':{'save'(V){Y['getAndCache'](V);},'load'(Z,cD){let cE=V['cache_pool'][Z];return cE?Y['pickup'](cE,cD):null;},'refresh'(Y){let Z=V['cache_pool'][Y];Z&&Z['refresh'](),this['save'](Y);},'recycle'(Y){let Z=V['cache_pool'][Y];Z&&Z['recycle']();}}};return Object['assign'](Object['create'](global['selector']()),Y);},'enableByRoot'(){try{let V='enabled=$(settings\x20get\x20secure\x20enabled_accessibility_services)\x0apkg='+a9['autojs_a11y_svc_name']+'\x0aif\x20[[\x20$enabled\x20!=\x20*$pkg*\x20]]\x0athen\x0aenabled=$pkg:$enabled\x0asettings\x20put\x20secure\x20enabled_accessibility_services\x20$enabled\x0afi\x0asettings\x20put\x20secure\x20accessibility_enabled\x201';return 0x0===shell(V,!0x0)['code'];}catch(cK){return!0x1;}},'enableByRootAndWaitFor'(V){return this['enableByRoot']()&&a7['Companion']['waitForEnabled'](V||0x3e8);},'goToAccessibilitySetting'(){context['startActivity'](new a4(a0['ACTION_ACCESSIBILITY_SETTINGS'])['addFlags'](a4['FLAG_ACTIVITY_NEW_TASK']));},'waitForEnabled'(V){return threads['start'](function(){auto['waitFor']();})['join'](V||0xea60),this['state']()||_['$']('等待用户开启无障碍服务超时',0x8,0x2,0x0,0x2);},'isAutoEnableEnabled'(){try{let {storagesx:V}=p('ext-storages');return'ON'===V['create']('af_cfg')['get']('config',{'prop':'autoEnableA11yService'});}catch(cN){return!0x1;}},'autoEnable'(V){if(this['state']())return!0x0;let Y=V||{},Z=Y['is_essential'],cR=Y['is_manual_disallowed'];if(!this['isAutoEnableEnabled']()){if(!Z)return _['_']('自动开启无障碍服务未启用',0x3),!0x1;_['$']('无障碍服务关闭且自动启用未开启',0x8,0x2,0x0,0x2);}let cS=context['getPackageName']()+'\x20android.permission.WRITE_SECURE_SETTINGS';return'undefined'!=typeof activity?(this['enable'](!0x0)?h('已自动启用无障碍服务\x0a需要重新运行当前脚本','long'):Z&&_['$']('自动启用无障碍服务失败',0x4,0x2,0x0,0x2),exit(),!0x1):(a9['tryEnableAndRestart'](),function(){try{return 0x0===shell('date',!0x0)['code'];}catch(cT){return!0x1;}}()&&(shell('pm\x20grant\x20'+cS,!0x0),a9['tryEnableAndRestart']()),function(){if(_['$']('自动启用无障碍服务失败',0x4,0x2,0x0,-0x1),context['checkCallingOrSelfPermission'](android['Manifest']['permission']['WRITE_SECURE_SETTINGS'])!==android['content']['pm']['PackageManager']['PERMISSION_GRANTED']){let V='adb\x20shell\x20pm\x20grant\x20'+cS;_['$']('Auto.js缺少以下权限:',0x4,0x0,0x0,-0x1),_['$']('WRITE_SECURE_SETTINGS',0x4,0x0,0x0,0x1),_['$']('可尝试使用ADB工具连接手机',0x3),_['$']('并执行以下Shell指令(无换行):\x0a\x0a'+V+'\x0a',0x3),_['$']('Shell指令已复制到剪切板',0x3),_['$']('重启设备后授权不会失效',0x3),setClip(V);}_['__']();}(),Z&&cR&&exit(),this['waitForEnabled']());},'ensureService'(){this['autoEnable']({'is_essential':!0x0});},'ensureFunctionality'(){if('undefined'==typeof activity){let V=0x18;for(;!press(0x5f5e100,0x0,0x1)&&V--;)sleep(0x32);V<0x0&&(_['$']('无障碍服务状态异常',0x4,0x0,0x0,-0x1),_['$']('或基于服务的方法无法使用',0x4,0x0,0x0,0x1),_['$']('可尝试以下解决方案',0x3),_['$']('卸载并重新安装\x22Auto.js\x22',0x3,0x0,0x1),_['$']('安装后重启设备',0x3,0x0,0x1),_['$']('运行\x22Auto.js\x22并拉出侧边栏',0x3,0x0,0x1),_['$']('开启无障碍服务',0x3,0x0,0x1),_['$']('再次尝试运行本项目',0x3,0x0,0x1),_['$']('无障碍服务功能异常',0x8,0x2,0x0,0x2));}},'ensureSvcAndFunc'(){this['ensureService'](),this['ensureFunctionality']();},'click'(V,Y,Z){return a(Y)?this['click'](V,'widget',Y):!l(V)&&{'container':[],'options':Z||{},'wait':aa['wait']['bind'](aa),'pickup':a9['sel']['pickup']['bind'](a9['sel']),'impededIFN'(){this['options']['no_impeded']||'function'==typeof i&&i('a11yx.click');},'parsePadding'(){let V=this['options']['padding'];if(!V)return this['padding']={'x':0x0,'y':0x0};if('number'==typeof V)V=[0x0,V];else if(!Array['isArray'](V))throw Error('Invalid\x20paddings\x20for\x20a11yx.click()');let Y=function(){if(0x1===V['length'])return[0x0,V[0x0]];if(0x2===V['length']){let [Y,Z]=V;return'x'===Y?[Z,0x0]:'y'===Y?[0x0,Z]:[Y,Z];}throw Error('Invalid\x20paddings\x20amount\x20for\x20a11yx.click()');}(),[Z,d4]=Y['map'](V=>Number(V));if(isNaN(Z)||isNaN(d4))throw Error('Invalid\x20paddings\x20calc\x20results\x20for\x20a11yx.click()');this['padding']={'x':Z,'y':d4};},'parseStrategy'(){let V=this['options']['strategy']||this['options']['click_strategy']||this['options']['cs$']||Y||'widget';this['strategy']='string'==typeof V?V:String(this['strategy']);},'parseCondition'(){this['condition']=function(){let Y=this['options']['condition'];if('function'==typeof Y)return Y;if('disappear'===Y)return()=>this['checkDisappearance'](V);if(l(Y))return()=>!0x0;throw Error('Invalid\x20condition\x20for\x20a11yx.click():\x20'+Y);}['call'](this);},'parseArgs'(){this['parsePadding'](),this['parseStrategy'](),this['parseCondition'](),this['times']=this['options']['max_check_times']||0x3,this['timeout']=this['options']['check_time_once']||0x1f4,this['press_time']=this['options']['press_time']||this['options']['pt$']||0x1,this['buffer_time']=this['options']['buffer_time']||this['options']['bt$']||0x0;},'checkDisappearance'(V){if(l(V))return!0x0;if(V instanceof a5){let Y=V['parent']();return!Y||!this['container']['includes'](Y['hashCode']());}if(V instanceof a6){let Y=V['findOnce']();return!Y||!this['container']['includes'](Y['hashCode']());}return this['checkDisappearance'](this['pickup'](V));},'clickOnce'(V){let Y=(V,Y)=>this['strategy']['match'](/^p(ress)?$/)?press(V+this['padding']['x'],Y+this['padding']['y'],this['press_time']):click(V+this['padding']['x'],Y+this['padding']['y']);if(V instanceof a6){let Z=V['findOnce']();if(!Z)return!0x1;if(this['container']['push'](Z['hashCode']()),this['strategy']['match'](/^w(idget)?$/)&&Z['clickable']())return Z['click']();let dk=Z['bounds']();return Y(dk['centerX'](),dk['centerY']());}if(V instanceof a5){let Z=V['parent']();if(null!==Z&&this['container']['push'](Z['hashCode']()),this['strategy']['match'](/^w(idget)?$/)&&V['clickable']())return V['click']();let dm=V['bounds']();return Y(dm['centerX'](),dm['centerY']());}if(V instanceof a2)return Y(V['centerX'](),V['centerY']());if(V instanceof a3)return Y(V['x'],V['y']);if(a(V)&&'number'==typeof V['x']&&'number'==typeof V['y'])return Y(V['x'],V['y']);if(Array['isArray'](V)&&0x2===V['length']&&V['every'](V=>'number'==typeof V))return Y['apply'](null,V);let Z=this['pickup'](V,'widget');return!!Z&&this['clickOnce'](Z);},'getResult'(){this['impededIFN'](),this['parseArgs']();do{if(this['clickOnce'](V)){if(this['wait'](this['condition'],this['timeout'],0x50))return u(this['buffer_time']),!0x0;}else u(this['timeout']);}while(this['times']--);return!0x1;}}['getResult']();},'pipeline'(V,Y,Z){return'string'!=typeof V?this['pipeline'](String(),V,Y):{'options':Z||{},get 'name'(){return this['_name']=this['_name']||String(this['options']['name']||'pipeline')['surround']('\x22');},'pickup':a9['sel']['pickup']['bind'](a9['sel']),'waitAndClick':aa['waitAndClick']['bind'](aa),'parseActions'(){return this['actions']=Y['map'](V=>a(V)?V:{'locator':V});},'getResult'(){return this['parseActions']()['every']((V,Y)=>this['waitAndClick'](V['locator'],Object['assign']({},this['options'],{'condition':function(){return V['condition']?V['condition']:Ythis['pickup'](this['actions'][Y+0x1]['locator']):void 0x0;}['call'](this),'strategy':V['strategy']}))||_['w']([this['name']+'管道破裂',V['locator']],0x2,0x0,-0x2));}}['getResult']();},'wait'(V,Y,Z,dz){return a(Y)?this['wait'](V,null,null,Y):a(Z)?this['wait'](V,Y,null,Z):{'result':!0x1,'start':Date['now'](),'pickup':a9['sel']['pickup']['bind'](a9['sel']),'options':dz||{},'impededIFN'(){this['options']['no_impeded']||'function'==typeof i&&i('a11yx.wait');},'parseArgs'(){let V='number'==typeof Y?Y:Number(Y)||0x2710;this['times']=V<=0x0||!isFinite(V)||isNaN(V)||V>=0x64?0x1/0x0:V,this['timeout']=V>=0x64?V:0x1/0x0,this['interval']=Z||0xc8,this['interval']>=this['timeout']&&(this['times']=0x1);},'check'(){return l(V)?V:'function'==typeof V?V():this['pickup'](V);},'wait'(){for(;this['times']--&&!(this['result']=this['check']())&&!(Date['now']()-this['start']>this['timeout']);)sleep(this['interval']);},'callbackIFN'(){if('function'==typeof this['options']['then']&&this['result']){let V=this['options']['then']['call'](this['options']['this'],this['result']);void 0x0!==V&&(this['result']=V);}'function'==typeof this['options']['else']&&(this['result']||this['options']['else']['call'](this['options']['this']));},'getResult'(){return this['impededIFN'](),this['parseArgs'](),this['wait'](),this['callbackIFN'](),this['result'];}}['getResult']();},'waitEvery'(V,Y,Z,dF){},'waitSome'(V,Y,Z,dJ){},'waitAndClick'(V,Y,Z,dN){if(a(Y))return this['waitAndClick'](V,null,null,Y);if(a(Z))return this['waitAndClick'](V,Y,null,Z);let dO=!0x0;return this['wait'](V,Y,Z,{'then':function(V){let Y=dN||{};sleep(Y['intermission']||0xf0),dO=this['click'](V,Y)&&dO;}['bind'](this)})&&dO;},'waitAndStable'(V,Y,Z,dU){if(a(Y))return this['waitAndStable'](V,null,null,Y);if(a(Z))return this['waitAndStable'](V,Y,null,Z);let dV={'parseArgs'(){let V=dU||{};this['reference']=V['reference'],this['timeout']=V['timeout']||0x5dc0,this['threshold']=V['threshold']||0x1a4;},'isTimedOut'(){return Date['now']()-this['condition_start']>this['timeout'];},'condition'(){return this['last_condition']=V();},'checkInitCondition'(){let V=void 0x0!==this['reference']?()=>this['condition']()!==this['reference']:()=>this['condition']();return aa['wait'](V,Y,Z,{'then':V=>dV['last_stable']=V});},'checkStableCondition'(){for(this['condition_start']=Date['now']();aa['wait'](()=>dV['last_stable']!==this['condition'](),this['threshold']);)if(dV['last_stable']=dV['last_condition'],this['isTimedOut']())throw Error('a11yx.waitAndStable()\x20timed\x20out\x20waiting\x20for\x20stable\x20condition');return dV['last_stable'];},'getResult'(){return this['parseArgs'](),this['checkInitCondition']()&&this['checkStableCondition']();}};return dV['getResult']();},'swipe':(V,Y,Z,e2)=>({'impededIFN'(){this['options']['no_impeded']||'function'==typeof i&&i('a11yx.swipe');},'parsePoint'(V){if('number'==typeof V)return{'x':halfW,'y':this['scale'](V,'y')};if(Array['isArray'](V)){if(0x2!==V['length']||!V['every'](V=>s(V)))throw Error('Invalid\x20array\x20point:\x20'+V['join'](',\x20'));return{'x':this['scale'](V[0x0],'x'),'y':this['scale'](V[0x1],'y')};}if(a(V)){if('number'!=typeof V['x']||'number'!=typeof V['y'])throw Error('Invalid\x20object\x20point:\x20'+V['x']+',\x20'+V['y']);return{'x':this['scale'](V['x'],'x'),'y':this['scale'](V['y'],'y')};}if(V instanceof a3)return{'x':this['scale'](V['x'],'x'),'y':this['scale'](V['y'],'y')};throw TypeError('Unknown\x20type\x20of\x20point\x20for\x20a11yx.swipe()');},'parseDuration'(){this['duration']=Z>=0xc8?Z:Math['max'](Math['dist'](this['start'],this['end'])/0x5,0xc8);},'parseArgs'(){this['options']=e2||{},this['start']=this['parsePoint'](V),this['end']=this['parsePoint'](Y),this['parseDuration']();},'scale'(V,Y){let Z=void 0x0===Y?'x':Y;return-0x1===V?'x'===Z?W:H:V<0x1?'x'===Z?cX(V):cY(V):V;},'swipe'(){return swipe(this['start']['x'],this['start']['y'],this['end']['x'],this['end']['y'],this['duration']);},'getResult'(){return this['parseArgs'](),this['impededIFN'](),this['swipe']();}}['getResult']()),'swipeInBounds'(){},'swipeInScreen'(){},'swipeAndClick'(){}};V['exports']={'a11yx':aa,'$$sel':aa['selector']()};},121:(e8,e9,ea)=>{let {$$impeded:i,$$toast:n,isNullish:s}=ea(0x2c4),{a11yx:o}=ea(0x2d4),{devicex:a}=ea(0x19f),{timersx:l}=ea(0x357),{consolex:c}=ea(0x2d5),{threadsx:u}=ea(0xef),eb=android['net']['Uri'],ec=java['lang']['Runtime'],ed=android['Manifest'],ee=android['os']['Process'],ef=android['content']['Intent'],eg=android['content']['Context'],eh=android['provider']['Settings']['System'],ei=android['content']['pm']['ApplicationInfo'],ej=android['content']['pm']['PackageManager'],ek=android['app']['ActivityManager'],el=org['autojs']['autojs']['model']['script']['ScriptFile'],em=android['content']['ActivityNotFoundException'],en=org['autojs']['autojs']['ui']['shortcut']['ShortcutCreateActivity'],eo={'alipay_pkg':'com.eg.android.AlipayGphone','autojsPackageName':context['getPackageName'](),get 'autojs_ver'(){let e8=app['autojs']['versionName'];return String(e8)['match'](/^\d/)?e8:ep['getVerName']('Auto.js');},'toPct'(e8,e9,ea){let eu='number'==typeof e9?e9:isNaN(e9)?0x2:Number(e9),ev=(0x64*e8)['toFixed'](eu);return(ea?ev:Number(ev))+'%';},'startActivity'(e8){let e9=ef['FLAG_ACTIVITY_NEW_TASK'];if(e8 instanceof ef)return context['startActivity'](ep['intent'](new ef(e8),{'flags':e9}));if('object'==typeof e8)return u['monitorIFN'](e8['monitor']),e8['root']?void shell('am\x20start\x20'+app['intentToShell'](e8),!0x0):context['startActivity'](ep['intent'](e8,{'flags':e9}));if('string'==typeof e8){let ea=runtime['getProperty']('class.'+e8);if(!ea)throw new Error('Class\x20'+e8+'\x20not\x20found');return context['startActivity'](ep['intent'](new ef(context,ea),{'flags':e9}));}throw Error('Unknown\x20param\x20for\x20appx.startActivity()');}},ep={'version':{'getHex'(e8,e9){if('object'==typeof e8&&(e8=e8['version_name']),!e8)throw Error('A\x20\x22version\x22\x20must\x20be\x20defined\x20for\x20appx.version.getHex()');let ea=e9||{},eC=e8=>('00'+Number(e8||0x0)['toString'](0x10))['slice'](-0x2),eD=e8['toString']()['trim']()['replace'](/^[a-z\s]*(\d+)(?:\.(\d+)(?:\.(\d+)(?:-\d+)?\s*(b(?:eta)?|a(?:lpha)?)?\s*(\d*))?)?$/i,(e8,e9,ea,eD,eE,eL)=>{let eM=[e9,ea,eD]['map'](e8=>eC(e8))['reduce']((e8,e9)=>e8+e9),eN=eL?Number(eL):0x1,eO=0xff;if(eE)if(eE['match'](/b(eta)?/i)){if(eN>=0x7f)throw Error('Beta\x20version\x20code\x20must\x20be\x20smaller\x20than\x20127');eO=0x80;}else if(eE['match'](/a(lpha)?/i)){if(eN>0x80)throw Error('Alpha\x20version\x20code\x20cannot\x20be\x20greater\x20than\x20128');eO=0x0;}return eM+eC(Math['min'](eO+eN,0xff));}),eE='0x'+eD;return'number'===ea['type']?Number(eE):'string_with_prefix'===ea['type']?eE:eD;},'parseHex'(e8,e9){if('number'==typeof e8&&(e8=('0'['repeat'](0x7)+e8['toString'](0x10))['slice'](-0x8)),!e8)throw Error('A\x20\x22version\x22\x20must\x20be\x20defined\x20for\x20appx.version.parseHex()');return e8['replace'](/^0x/,'')['replace'](/(..)(..)(..)(..)/g,(e8,ea,eW,eX,eY)=>{let eZ=[ea,eW,eX]['map'](e8=>Number('0x'+e8))['join']('.'),f0=Number('0x'+eY),f1='';return f0<=0x80?f1='\x20Alpha'+(0x1===f0?'':f0):f0<0xff&&(f0-=0x80,f1='\x20Beta'+(0x1===f0?'':f0)),(null===e9?'':e9||'v')+eZ+f1;});},'parseName'(e8){let e9=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?\s*((a(lpha)?|b(eta)?)\s*\d*)?$/i,ea=String(e8);return ea['match'](e9)?this['parseHex'](this['getHex'](ea['replace'](e9,(e8,e9,ea,f9,fa)=>e9+'.'+(ea||0x0)+'.'+(f9||0x0)+(fa?'\x20'+fa:'')))):String();},'isNewer'(e8,e9){return this['getHex'](e8)>this['getHex'](e9);}},'getAppName':e8=>e8?app['getAppName'](e8)||app['getPackageName'](e8)&&e8:null,'getPkgName':e8=>e8?!String(e8)['includes']('.')&&app['getPackageName'](e8)||app['getAppName'](e8)&&e8:null,'getVerName':e8=>({'parsePkgName'(){if('string'==typeof e8)return e8['match'](/^auto\.?js$/i)?eo['autojsPackageName']:e8['match'](/^current$/i)?currentPackage():ep['getPkgName'](e8);},'getResult'(){let e8=this['parsePkgName']();if(e8)try{let e9=context['getPackageManager']()['getInstalledPackages'](0x0)['toArray']();for(let ea in e9)if(e8===e9[ea]['packageName'])return e9[ea]['versionName'];}catch(fj){}return null;}}['getResult']()),'checkAccessibility'(){o['ensureSvcAndFunc']();},'checkModules'(e8){let e9=()=>'-'['repeat'](0x21),fm=()=>'\x20-'['repeat'](0x11)['slice'](0x1);e8['filter'](e8=>{let fp='./'+e8+'.js';try{ea(0x206)(fp);}catch(fq){return console['log'](e9()),console['warn'](fp),console['log'](fm()),console['warn'](fq['message']),console['warn'](fq['stack']),!0x0;}})['some']((e8,ea,ft)=>{let fu='';fu+='脚本无法继续|以下模块缺失或加载失败:',fu+=fm()['surround']('|'),ft['forEach'](e8=>fu+='->\x20'+e8['surround']('\x22')),fu+=fm()['surround']('|'),fu+='需正确放置模块文件',console['log'](e9()),fu['split']('|')['forEach'](e8=>console['error'](e8)),console['log'](e9()),toast('模块缺失或加载失败'),exit();});},'checkAlipayPackage'(){let e8,e9,ea=context['getPackageManager']();try{e9=ea['getApplicationInfo'](eo['alipay_pkg'],0x0),e8=ea['getApplicationLabel'](e9);}catch(fA){c['w'](fA,0x0,0x0,0x2);}e8||c['$'](['脚本无法继续','此设备可能未安装\x22支付宝\x22应用'],0x8,0x4,0x0,0x2);},'checkScreenOffTimeout'(e8){let e9=e8||{},ea=a['screen_off_timeout']['get']();if(ea<(e9['min_timeout']||0x3a98)){if(void 0x0!==e9['is_auto_correction']&&!e9['is_auto_correction'])throw Error('Abnormal\x20screen\x20off\x20timeout:\x20'+ea);let e8=e9['default_timeout']||0x1d4c0,fF=(e8/0xea60)['toFixedNum'](0x2);c['d'](['修正异常的设备屏幕超时参数','修正值:\x20'+e8+'(\x20'+fF+'分钟)'],0x0,0x0,-0x2);try{a['screen_off_timeout']['put'](e8);}catch(fG){c['e'](['修正失败',fG],0x2,0x0,-0x2);}}},'checkActivity'(e8){let e9=context['getPackageManager']()['queryIntentActivities'](this['intent'](e8),0x0);return e9&&0x0!==e9['toArray']()['length'];},'resolveActivity'(e8){return this['intent'](e8)['resolveActivity'](context['getPackageManager']());},'startActivity'(e8,e9){try{if('string'==typeof e8||this['checkActivity'](e8))return eo['startActivity'](e8),!0x0;}catch(fM){let fN=e9||{};'function'==typeof fN['onActivityNotFoundException']?fM['javaException']instanceof em&&fN['onActivityNotFoundException']['call'](e8):'suppress'!==fN['onActivityNotFoundException']&&c['$'](fM,0x8,0x2,0x0,0x2);}return!0x1;},'intent'(e8,e9){let ea=e8 instanceof ef?e8:function(e8){let e9=new ef();if(e8['url']&&(e8['data']=function(e8){let e9=e8['url'];return'object'==typeof e9&&(e9=function e8(e9){let {src:ea,query:fR,exclude:g6}=e9;if(!ea||!fR)return ea;let fX=ea['match'](/\?/)?'&':'?';return ea+fX+function e9(ea){let fR=g6||[];return Array['isArray'](fR)||(fR=[fR]),Object['keys'](ea)['map'](g0=>{let fX=ea[g0];return'Object'===Object['prototype']['toString']['call'](fX)['slice'](0x8,-0x1)&&(fX='url'===g0?e8(fX):e9(fX),fX=('__webview_options__'===g0?'&':'')+fX),fR['includes'](g0)||(fX=encodeURI(fX)),g0+'='+fX;})['join']('&');}(fR);}(e9)),e9;}(e8)),e8['package']&&(e8['packageName']=e8['packageName']||e8['package'],delete e8['package']),e8['packageName']&&('alipay'===e8['packageName']['toString']()['toLowerCase']()&&(e8['packageName']=eo['alipay_pkg']),e8['className']?e9['setClassName'](e8['packageName'],e8['className']):e9['setPackage'](e8['packageName'])),e8['extras']&&Object['keys'](e8['extras'])['forEach'](ea=>{e9['putExtra'](ea,e8['extras'][ea]);}),e8['category'])if(Array['isArray'](e8['category']))for(let ea=0x0;e8(o['service']['refreshServiceInfo'](),ea['condition_ready']()),ei='function'!=typeof ea['condition_launch']?()=>currentPackage()===eb:()=>(o['service']['refreshServiceInfo'](),ea['condition_launch']()),ej=ea['disturbance'];ej&&(gb('已开启干扰排除线程'),eg=u['start'](function(){for(;;)sleep(0x4b0),ej();}));let ek=ea['global_retry_times']||0x2,el=ek;for(;ek--;){let e8=ea['launch_retry_times']||0x3,e9=e8,gq=ea['is_show_toast'];if(gq&&'none'!==gq){let e8=ed?'重新开始'+ed['surround']('\x22')+'任务':'重新启动'+ec['surround']('\x22')+'应用';ee?(!0x0===gq||String(gq)['match'](/^(all|greeting(_only)?)$/))&&c['d'](e8['replace'](/重新/g,''),0x1,0x0,0x2):String(gq)['match'](/^(greeting(_only)?)$/)||n(e8);}for(;e8--;){'object'==typeof gc?(gb('加载intent参数启动应用'),this['startActivity'](gc)):'string'==typeof gc?(gb('加载应用包名参数启动应用'),app['launchPackage'](eb)||(gb('加载应用名称参数启动应用'),app['launchApp'](ec))):(gb('使用触发器方法启动应用'),gc());let ea='(\x20'+(e9-e8)+'/'+e9+')';if(o['wait'](ei,0x1388,0x320)){gb('应用启动成功');break;}gb('应用启动超时'+ea),gb(currentPackage(),0x0,0x1);}if(e8<0x0&&c['$']('打开'+ec['surround']('\x22')+'失败',0x8,0x4,0x0,0x2),s(eh)){gb('未设置启动完成条件参数');break;}ee=!0x1,gb('开始监测启动完成条件');let gu=ea['ready_retry_times']||0x3,ef=gu;for(;!o['wait'](eh,0x1f40)&&gu--;){let e8=(ef-gu+'/'+ef)['surround']('()');'object'==typeof gc?(gb('重新启动Activity\x20'+e8),this['startActivity'](gc)):(gb('重新启动应用\x20'+e8),app['launchPackage'](gc));}if(gu>=0x0){gb('启动完成条件监测完毕');break;}gb('尝试关闭'+ec['surround']('\x22')+'应用:'),gb((el-ek+'/'+el)['surround']('()')),this['kill'](eb);}return eg&&(eg['interrupt'](),gb('干扰排除线程结束'),eg=null),ek<0x0&&c['$'](ef['surround']('\x22')+'初始状态准备失败',0x8,0x4,0x0,0x2),gb(ef['surround']('\x22')+'初始状态准备完毕'),!0x0;},'launchAndClearTop'(e8){this['startActivity'](this['intent'](this['getLaunchIntentForPackage'](e8),{'flags':ef['FLAG_ACTIVITY_CLEAR_TOP']}));},'getLaunchIntentForPackage':e8=>context['getPackageManager']()['getLaunchIntentForPackage'](e8||eo['autojsPackageName']),'kill'(e8,e9){let ea=e9||{};ea['no_impeded']||'function'==typeof i&&i(this['kill']['name']);let gC=e8||'';gC||(gC=currentPackage(),c['w'](['自动使用currentPackage()返回值','appx.kill()未指定name参数']));let gD=this['getAppName'](gC),gE=this['getPkgName'](gC);gD&&gE||c['$']('解析应用名称及包名失败',0x8,0x4,0x0,0x2);let gF=void 0x0===ea['shell_acceptable']||ea['shell_acceptable'],gG=void 0x0===ea['keycode_back_acceptable']||ea['keycode_back_acceptable'],eb=ea['keycode_back_twice']||!0x1,ec=ea['condition']||(()=>{let e8=()=>currentPackage()===gE;return o['wait'](()=>!e8(),0x2ee0)&&!o['wait'](e8,0x3,0x96);}),ed=!0x1,ee=Date['now'](),ef=ea['shell_max_wait_time']||0x2710;if(gF)try{ed=!shell('am\x20force-stop\x20'+gE,!0x0)['code'];}catch(gN){c['_']('shell()方法强制关闭'+gD['surround']('\x22')+'失败');}else c['_']('参数不接受shell()方法');if(!ed)return gG?function(){c['_']('尝试最小化当前应用');let e8=[idMatches(/.*nav.back|.*back.button/),descMatches(/关闭|返回/),textMatches(/关闭|返回/)],e9=0x14,ea=e9,gR=()=>{back(),back(),eb&&(sleep(0xc8),back());};for(;e9--;){let e9=!0x1;for(let ea=0x0,gR=e8['length'];eac['_'](['shell()关闭'+gD['surround']('\x22')+'成功','关闭用时:\x20'+eg+'毫秒']),'else':()=>c['e'](['关闭'+gD['surround']('\x22')+'失败','关闭时间已达最大超时'],0x1)});},'killProcess'(e8){let e9={'parseArgs'(){this['options']=e8||{},this['pid']=this['options']['pid']>0x0?this['options']['pid']:ee['myPid']();},'parseTask'(){let e8=this['pending_task'];if('object'==typeof e8)return e8;if('string'==typeof e8&&e8['match'](/^current(.*\d+s)?$/i)){let ea=e8['match'](/\d+/);return{'path':engines['myEngine']()['getSource'](),'date':Date['now']()+0x3e8*(ea?ea[0x0]:0x5),'isAsync':e9['options']['isAsync']};}throw Error('Cannot\x20parse\x20pending_task\x20for\x20appx.killProcess()');},'addTask'(){if(this['pending_task']=this['options']['pending_task'])return l['addDisposableTask'](Object['assign'](this['parseTask'](),{'callback'(){e9['killNow']();}})),!0x0;},'killNow'(){ee['killProcess'](this['pid']);},'kill'(){this['parseArgs'](),this['addTask']()||this['killNow']();}};e9['kill']();},'restart'(e8,e9){let ea=e8||currentPackage(),h4=e9||{};return this['kill'](ea,h4['kill'])&&this['launch'](ea,h4['launch']);},'hasRoot'(){try{return 0x0===shell('date',!0x0)['code'];}catch(h5){return!0x1;}},'hasSecure'(){return this['checkPermission']('WRITE_SECURE_SETTINGS');},'checkPermission'(e8){if(void 0x0===e8)throw Error('Argument\x20permission\x20must\x20be\x20specified');if('string'!=typeof e8)throw Error('Argument\x20permission\x20must\x20be\x20string\x20type');let e9=ed['permission'][e8['replace'](/[^A-Z_]+/g,'')];return context['checkCallingOrSelfPermission'](e9)===ej['PERMISSION_GRANTED'];},'canWriteSystem':()=>eh['canWrite'](context),'getInstalledApplications'(e8){let e9=e8||{},ea=e8=>{let hb=e8=>'string'==typeof e8?[e8]:e8||[],hc=hb(e9['include']),hd=hb(e9['exclude']);return(ea=hc['length']?e8=>(hc['includes'](e8['pkg_name'])||hc['includes'](e8['app_name']))&&!hd['includes'](e8['pkg_name'])&&!hd['includes'](e8['app_name']):e8=>!hd['includes'](e8['pkg_name'])&&!hd['includes'](e8['app_name']))(e8);},hb=e8=>'function'==typeof e9[e8]?e9[e8]():e9[e8],hc=context['getPackageManager'](),hd=hc['getInstalledApplications'](0x0)['toArray']()['map'](e8=>({'app_name':e8['loadLabel'](hc),'pkg_name':e8['packageName'],'is_enabled':e8['enabled'],'is_system':this['isSystemApp'](e8)}))['filter'](ea),he=hb('is_system');'boolean'==typeof he&&(hd=hd['filter'](e8=>e8['is_system']===he));let hq=hb('is_enabled');return'boolean'==typeof hq&&(hd=hd['filter'](e8=>e8['is_enabled']===hq)),Object['assign'](hd,{'getAppNames'(){return this['map'](e8=>e8['app_name']);},'getPkgNames'(){return this['map'](e8=>e8['pkg_name']);},'getJointStrArr'(e8,e9){return this['map'](ea=>e9?ea['pkg_name']+(e8||'\x0a')+ea['app_name']:ea['app_name']+(e8||'\x0a')+ea['pkg_name'])['sort']();}});},'createShortcut'(e8){if(!e8)throw Error('File\x20is\x20required\x20for\x20appx.createShortcut()');let e9=files['path'](e8);if(!files['isFile'](e9))throw Error('File\x20argument\x20must\x20be\x20a\x20file');if(!files['exists'](e9))throw Error('File\x20is\x20not\x20existed');let ea=new en()['getClass'](),hA=en['EXTRA_FILE'],hB=new el(e9),hC=new ef(context,ea)['putExtra'](hA,hB);this['startActivity'](hC);},'isSystemApp'(e8){if(!(e8 instanceof ei))throw Error('Source\x20must\x20be\x20the\x20instance\x20of\x20ApplicationInfo');return 0x0!=(e8['flags']&ei['FLAG_SYSTEM']);},'getMemoryInfo'(){let e8=context['getSystemService'](eg['ACTIVITY_SERVICE']),e9=new ek['MemoryInfo']();e8['getMemoryInfo'](e9);let {totalMem:ea,availMem:i,lowMemory:n}=e9,hG=ea-i,hH=hG/ea,hI=i/ea;return{'$memory_info':e9,'total':ea,'is_low':n,'avail':i,'avail_usage':hI,'avail_pct':eo['toPct'](hI),'used':hG,'used_usage':hH,'used_pct':eo['toPct'](hH)};},'getProcessMemoryInfo'(e8){let e9=ec['getRuntime']()['maxMemory'](),ea='number'==typeof e8?e8:ee['myPid'](),hM=context['getSystemService'](eg['ACTIVITY_SERVICE'])['getProcessMemoryInfo']([ea])[0x0],hN=hM['getTotalPrivateDirty']()<<0xa,hO=hM['getTotalPss']()<<0xa,hP=hM['getMemoryStat']('summary.java-heap')<<0xa,hQ=hP/e9;return{'$process_memory_info':hM,'uss':hN,'pss':hO,'heap':hP,'heap_usage':hQ,'heap_pct':eo['toPct'](hQ)};},'getRuntimeMemoryInfo'(){let e8=ec['getRuntime'](),e9=e8['maxMemory'](),ea=e8['totalMemory'](),hU=ea-e8['freeMemory'](),hV=hU/e9;return{'total':ea,'max':e9,'heap':hU,'heap_usage':hV,'heap_pct':eo['toPct'](hV)};}};e8['exports']={'appx':ep};},203:hW=>{let hX=android['content']['res']['ColorStateList'],hY={'toStr'(hW,hX){'string'==typeof hW&&Number(hW)['toString']()===hW&&(hW=Number(hW));let hY='number'==typeof hW?colors['toString'](hW):hW;if('string'!=typeof hY)throw TypeError('Unknown\x20type\x20of\x20color\x20for\x20colorsx.toStr()');let i2=colors['alpha'](hY),i3=colors['red'](hY),i4=colors['green'](hY),i5=colors['blue'](hY);if(void 0x0===hX||!0x0===hX||'keep'===hX||0x8===hX)return hY;if(!0x1===hX||'none'===hX||0x6===hX)return'#'+colors['toString'](colors['rgb'](i3,i4,i5))['slice'](-0x6);if('auto'===hX)return i2<0xff?hY:colors['toString'](colors['rgb'](i3,i4,i5));throw TypeError('Unknown\x20type\x20of\x20alpha\x20for\x20colorsx.toStr()');},'toInt'(hW){let hX;'string'==typeof hW&&Number(hW)['toString']()===hW&&(hW=Number(hW));try{hX='string'==typeof hW?colors['parseColor'](hW):hW;}catch(i8){throw console['error']('Passed\x20color:\x20'+hW),Error(i8+'\x0a'+i8['stack']);}if('number'!=typeof hX)throw TypeError('Unknown\x20type\x20of\x20color\x20for\x20colorsx.toInt()');return hX;},'rgba'(hW){if('string'!=typeof hW)throw Error('Param\x20rgba_hex\x20must\x20be\x20a\x20string\x20type');if('#'!==hW[0x0])throw Error('Param\x20rgba_hex\x20must\x20started\x20with\x20hash\x20symbol');if(0x7===(hW=hW['trim']()['toUpperCase']())['length']&&(hW+='FF'),0x9!==hW['length'])throw Error('Length\x20of\x20param\x20rgba_hex\x20must\x20be\x207\x20or\x209');return this['toInt']('#'+hW['slice'](-0x2)+hW['slice'](0x1,-0x2));},'toColorStateList'(hW){return hX['valueOf'](this['toInt'](hW));}};hW['exports']={'colorsx':hY};},725:(ib,ic,ie)=>{let {isObjectSpecies:i,$$toast:n}=ie(0x2c4),ig={'StateManager':function(){let ib=function(ib){this['state']=ib,this['last_state']=ib;};return ib['prototype']={'switchOn'(){this['last_state']=this['state'],this['state']=!0x0;},'switchOff'(){this['last_state']=this['state'],this['state']=!0x1;},'switchGet'(){return this['state'];},'switchSet'(ib){this['last_state']=this['state'],this['state']=i(ib)?ib['isDebug']:ib;},'switchBack'(){let ib=this['state'];this['state']=this['last_state'],this['last_state']=ib;},'enable'(){this['switchOn']();},'disable'(){this['switchOff']();},'isEnabled'(){return!0x0===this['switchGet']();}},ib;}(),'DebugConstructor'(ib,ic){let ie=function(ib,ic,it,iu){return{'parseMsgLevel'(){this['message_level']=void 0x0===ic?0x0:ic,this['is_high_level']=0x3===ic||'w'===ic||'warn'===ic||0x4===ic||'e'===ic||'error'===ic||0x8===ic||'x'===ic||0x9===ic||'r'===ic;},'trigger':()=>ie['switchGet'](),'print'(){ig['print'](ib,this['message_level'],0x0,it,iu,{'msg_prefix':'»','indent_symbol':'-\x20','indent_repeat':'whole','indent_trailing_space':!0x1});},'getResult'(){return this['trigger']()&&(this['parseMsgLevel'](),this['print']()),!this['is_high_level'];}}['getResult']();};return ig['StateManager']['call'](ie,ib),Object['assign'](ie,ig['StateManager']['prototype'],{'switchGet'(){let ib=ie['state'];if('boolean'==typeof ib)return ib;if(void 0x0!==ie['depot']){let ib=ie['depot']['state'];if('boolean'==typeof ib)return ib;}return'boolean'==typeof ig['debug']['state']?ig['debug']['state']:'object'==typeof global['consolex']?global['consolex']['debug']['state']:void 0x0;}}),Object['assign'](ie,{'depot':ic,'fuel'(ib){let ic=i(ib)?ib['isDebug']:ib;return new ig['DebugConstructor'](ic,ie);},'border'(ib,ic,iB){ie['isEnabled']()&&ig['border'](ib,void 0x0===ic?0x0:ic,iB);},'__'(ib,ic,ie){this['border']['apply'](this,arguments);}}),ie;},'setGlobalLogConfig'(ib){context['getPackageName']()['match'](/Pro\b/i)&&delete ib['filePattern'],console['setGlobalLogConfig'](ib);},'printBorder'(ib,ic,ie){this['border']['apply'](this,arguments);},'debugBorder'(ib,ic,ie){this['debug']['border']['apply'](this,arguments);},'$print'(){let ib={'last_border':{'save'(ib,ic){this['style']=ib,this['level']=ic;},'clear'(){delete this['style'],delete this['level'];},'match'(ib,ic){return ib&&ib===this['style']&&ic===this['level'];}}};return this['$']=this['print']=function(ic,ie,iT,iU,iV,iW){if(ic instanceof Error)return this['print'](ic['message']+'\x0a\x0a'+ic['stack']['replace'](/\s+.+?\n/g,'->$&'),ie,iT,iU,iV,iW);let iX={'trigger':()=>ig['print']['isEnabled'](),'parseBorder'(){let ib=Number(iV)||0x0,ic=String(void 0x0===iV?'':iV),ie=ic['match'](/[_\d]n(\d*)$/);this['border_line_break']=null!==ie?Number(ie[0x1]||0x1):0x0,ic['match'](/dash\/|-0\.5/)||-0.5===ib?this['border_line_before']='dash':ic['match'](/^(\/?dash|0\.5)(_?n\d*)?$/)||0.5===ib?this['border_line_after']='dash':ic['match'](/solid\/|-1/)||-0x1===ib?this['border_line_before']='solid':ic['match'](/^(\/?solid|1)(_?n\d*)?$/)||0x1===ib?this['border_line_after']='solid':ic['match'](/^(solid\/dash|-1\.5)(_?n\d*)?$/)||-1.5===ib?(this['border_line_before']='solid',this['border_line_after']='dash'):ic['match'](/^(dash\/solid|1\.5)(_?n\d*)?$/)||1.5===ib?(this['border_line_before']='dash',this['border_line_after']='solid'):ic['match'](/^(dashes|dash\/dash|-2)(_?n\d*)?$/)||-0x2===ib?(this['border_line_before']='dash',this['border_line_after']='dash'):(ic['match'](/^(solids|solid\/solid|2)(_?n\d*)?$/)||0x2===ib)&&(this['border_line_before']='solid',this['border_line_after']='solid');},'parseMsgLevel'(){switch(ie){case null:this['no_msg_level']=!0x0;break;case 0x0:case'v':case'verbose':this['fn']=console['verbose']['bind'](console);break;case void 0x0:case 0x1:case'l':case'd':case'log':this['fn']=console['log']['bind'](console);break;case 0x2:case'i':case'info':this['fn']=console['info']['bind'](console);break;case 0x3:case'w':case'warn':this['fn']=console['warn']['bind'](console),this['is_high_level']=!0x0;break;case 0x4:case'e':case'error':this['fn']=console['error']['bind'](console),this['is_high_level']=!0x0;break;case 0x8:case'x':this['fn']=console['error']['bind'](console),this['should_exit']=!0x0,this['is_high_level']=!0x0;break;case 0x9:case'r':this['fn']=console['error']['bind'](console),this['show_ex_msg']=!0x0,this['should_exit']=!0x0,this['is_high_level']=!0x0;break;default:throw Error('Invalid\x20message\x20level\x20for\x20consolex.print():\x20'+ie);}},'parseIndent'(){this['indent']={'lv':Math['min'](Number(iU)||0x0,0xa),'trigger'(){return this['lv']>0x0&&!iX['no_msg_level'];},'getIndent'(){let ib=iX['options']['indent_symbol']||'->',ic=iX['options']['indent_repeat']||'first',ie=void 0x0===iX['options']['indent_trailing_space']||Boolean(iX['options']['indent_trailing_space'])?'\x20':'';switch(ic){case'first':return ib['slice'](0x0,0x1)['repeat'](this['lv'])+ib['slice'](0x1)+ie;case'last':return ib['slice'](0x0,-0x1)+ib['slice'](-0x1)['repeat'](this['lv'])+ie;default:return ib['repeat'](this['lv'])+ie;}},'getResult'(){return this['trigger']()?this['getIndent']():'';}}['getResult']();},'stringify':ib=>Array['isArray'](ib)?ib['join'](',\x20')['surround']('[\x20'):i(ib)?Object['keys'](ib)['map'](ic=>ic+':\x20'+ib[ic])['join'](',\x20')['surround']('{\x20'):ib&&'function'==typeof ib['toString']?ib['toString']():void 0x0===ib?String():String(ib),'parseArgs'(){this['options']=iW||{},this['parseBorder'](),this['parseMsgLevel'](),this['parseIndent'](),this['msg_body']=Array['isArray'](ic)?ic['map'](this['stringify']['bind'](this)):this['stringify'](ic),this['prefix']=void 0x0===this['options']['msg_prefix']?'':String(this['options']['msg_prefix']||'')+'\x20';},'toastIFN'(){let ib='function'==typeof n?n:toast,ic=Array['isArray'](this['msg_body'])?this['msg_body']['join']('\x0a'):this['msg_body'];switch(iT){case 0x2:case'l':case'long':return ib(ic,'l');case 0x3:case's/f':case'short/forcible':return ib(ic,'s','f');case 0x4:case'l/f':case'long/forcible':return ib(ic,'l','f');}iT&&ib(ic,'S');},'showBorderIFN'(){let {border_line_before:ic,border_line_after:i,border_line_break:n}=this,{border_prefix:iT}=this['options'],iU=(void 0x0===ie?0x1:Number(ie)||0x0)['clamp'](0x0,0x1),iV=[()=>{void 0x0===ic||this['no_msg_level']||ib['last_border']['match'](ic,iU)||ig['print']['border'](ic,iU,0x0,!0x1,iT);},()=>{void 0x0===i||this['no_msg_level']||(ig['print']['border'](i,iU,n,!0x0,iT),n&&ib['last_border']['clear']());}][Symbol['iterator']]();return(this['showBorderIFN']=()=>iV['next']()['value']())();},'showMessageIFN'(){this['no_msg_level']||(ib['last_border']['clear'](),Array['isArray'](this['msg_body'])?this['msg_body']['forEach'](this['showMsg']['bind'](this)):this['showMsg'](this['msg_body']));},'showMsg'(ib){this['fn'](this['prefix']+this['indent']+ib);},'getResult'(){return this['trigger']()&&(this['parseArgs'](),this['toastIFN'](),this['showBorderIFN'](),this['showMessageIFN'](),this['showBorderIFN'](),this['show_ex_msg']&&ig['print']('Forcibly\x20stopped',0x4,0x1),this['should_exit']&&exit()),!this['is_high_level'];}};return iX['getResult']();},Object['assign'](this['print'],new this['StateManager'](!0x0),this['StateManager']['prototype'],{'border'(ic,ie,jd,je,jf){let jg={'style':String(ic||'solid'),'level':(void 0x0===ie?0x1:Number(ie)||0x0)['clamp'](0x0,0x1),'break':'\x0a'['repeat'](Math['max'](Number(jd)||0x0,0x0)),'prefix':void 0x0===jf?'':String(jf)+'\x20','trigger'(){return ig['print']['isEnabled']()&&!ib['last_border']['match'](this['style'],this['level']);},'saveStateIFN'(){je&&!this['break']&&ib['last_border']['save'](this['style'],this['level']);},'printIFN'(){let ib=this['style']['match'](/dash/)?this['prefix']+'-\x20'['repeat'](0x11)['trim']():this['prefix']+'-'['repeat'](0x21);this['level']?console['log'](ib+this['break']):console['verbose'](ib+this['break']);}};jg['trigger']()&&(jg['saveStateIFN'](),jg['printIFN']());}}),this['__']=this['border']=function(ib,ic,ie){this['print']['border'](ib,ic,ie,!0x0);},this['v']=this['verbose']=(ib,ic,ie,jo)=>this['$'](ib,0x0,ic,ie,jo),this['d']=this['log']=(ib,ic,ie,js)=>this['$'](ib,0x1,ic,ie,js),this['i']=this['info']=(ib,ic,ie,jw)=>this['$'](ib,0x2,ic,ie,jw),this['w']=this['warn']=(ib,ic,ie,jA)=>this['$'](ib,0x3,ic,ie,jA),this['e']=this['error']=(ib,ic,ie,jE)=>this['$'](ib,0x4,ic,ie,jE),delete this['$print'],this;},'$debug'(){return this['_']=this['debug']=new this['DebugConstructor'](void 0x0),delete this['$debug'],this;},'$bind'(){return this['$print']()['$debug'](),delete this['$bind'],this;}};ig['$bind'](),ib['exports']={'consolex':ig};},190:(jF,jG,jH)=>{let {isNullish:i}=jH(0x2c4),{filesx:n}=jH(0x2fb),jI=java['io']['File'],jJ=java['util']['zip']['CRC32'],jK=android['util']['Base64'],jL=javax['crypto']['Cipher'],jM=javax['crypto']['spec']['SecretKeySpec'],jN=java['security']['KeyFactory'],jO=java['security']['MessageDigest'],jP=java['security']['KeyPairGenerator'],jQ=java['security']['spec']['X509EncodedKeySpec'],jR=java['security']['spec']['PKCS8EncodedKeySpec'],jS=javax['crypto']['CipherOutputStream'],jT=java['io']['FileInputStream'],jU=java['io']['FileOutputStream'],jV=java['io']['ByteArrayOutputStream'],jW=function(){let jF=function(jF,jG){let jH=jG||{};this['keyPair']=jH['keyPair'],delete jH['keyPair'];let k2=new java['io']['ByteArrayOutputStream']();jX['_input'](jF,jH,(jF,jG,jH)=>{k2['write'](jF,jG,jH);}),this['data']=k2['toByteArray']();};return jF['prototype']['toKeySpec']=function(jF){let jG=String(jF)['replace'](/^(.+?)(?=\/).*$/,'$1');if('RSA'===jG){if('public'===this['keyPair'])return jN['getInstance'](jG)['generatePublic'](new jQ(this['data']));if('private'===this['keyPair'])return jN['getInstance'](jG)['generatePrivate'](new jR(this['data']));throw Error('Property\x20keyPair\x20must\x20be\x20either\x20public\x20or\x20private');}return new jM(this['data'],jG);},jF['prototype']['toString']=function(){let jF=jK['encodeToString'](this['data'],jK['NO_WRAP']);return this['keyPair']?'Key['+this['keyPair']+']{data=\x27'+jF+'\x27}':'Key{data=\x27'+jF+'\x27}';},jF;}(),jX={'_pwmap':new Function('return\x20{_dec(e,l){let\x20i=e.split(/,\x20?/).map(e=>e.replace(/^\x22([^]+)\x22$/g,\x22$1\x22)),s=0,a=\x22\x22;for(var\x20r=\x22_.|._\x22;;){for(let\x20t=0;t0x0;)jH(kf,0x0,jG);}else{let jG=function(){return'base64'===kc['input']?jK['decode'](jF,jK['NO_WRAP']):'hex'===kc['input']?this['_fromHex'](jF):'string'==typeof jF?new java['lang']['String'](jF)['getBytes'](kc['encoding']||'utf-8'):jF;}['call'](this);jH(jG,0x0,jG['length']);}},'_output'(jF,jG,jH){let kk=jG['output']||jH;if('base64'===kk)return jK['encodeToString'](jF,jK['NO_WRAP']);if('bytes'===kk)return jF;let kl=jG['encoding']||'utf-8';return'string'===kk?new java['lang']['String'](jF,kl)['toString']():this['_toHex'](jF);},'_toHex':jF=>jF['map'](jF=>{let jG=java['lang']['Integer']['toHexString'](0xff&jF);return jG['length']%0x2?'0'+jG:jG;})['join']('')['toUpperCase'](),'_fromHex'(jF){let jG=util['java']['array']('byte',jF['length']/0x2);return String(jF)['match'](/\w{2}/g)['forEach']((jF,jH)=>{let kt=java['lang']['Integer']['valueOf'](jF,0x10);jG[jH]='number'==typeof kt?new java['lang']['Integer'](kt)['byteValue']():kt['byteValue']();}),jG;},'_cipher'(jF,jG,jH,kx,ky){let jI=ky||{},jJ=jL['getInstance'](kx);jJ['init'](jG,jH['toKeySpec'](kx));let jK=function(){if('file'===jI['output'])return delete jI['output'],void 0x0!==jI['dest'];}(),jM=jK?new jU(jI['dest']):new jV(),jN=new jS(jM,jJ),jO=null;try{this['_input'](jF,jI,(jF,jG,jH)=>{jN['write'](jF,jG,jH);});}catch(kI){jO=kI;}finally{try{jN['close']();}catch(kJ){}}if(!jK&&!jO)return this['_output'](jM['toByteArray'](),jI,'bytes');},'Key':jW,'KeyPair':function(jF,jG,jH){let kN=jH||{};this['publicKey']=new jW(jF,Object['assign'](kN,{'keyPair':'public'})),this['privateKey']=new jW(jG,Object['assign'](kN,{'keyPair':'private'}));},'digest'(jF,jG,jH){let kR=jH||{},kS='CRC32'===jG?new jJ():jO['getInstance'](jG);return this['_input'](jF,kR,(jF,jG,jH)=>{kS['update'](jF,jG,jH);}),'CRC32'===jG?kS['getValue']()['toString'](0x10)['toUpperCase']():this['_output'](kS['digest'](),kR,'hex');},'digestFile'(jF,jG,jH){let kZ=Object['assign'](jH||{},{'input':'file'});if('string'==typeof jF)return this['digest'](files['path'](jF),jG,kZ);if(jF instanceof jI)return this['digest'](jF,jG,kZ);throw TypeError('Invalid\x20type\x20of\x20path\x20for\x20cryptox.digestFile()');},'encrypt'(jF,jG,jH,l3){return this['_cipher'](jF,jL['ENCRYPT_MODE'],jG,jH,l3);},'decrypt'(jF,jG,jH,l7){return this['_cipher'](jF,jL['DECRYPT_MODE'],jG,jH,l7);},'generateKeyPair'(jF,jG){let jH=jP['getInstance'](jF);jH['initialize'](jG||0x100);let lb=jH['generateKeyPair']();return new this['KeyPair'](lb['getPublic']()['getEncoded'](),lb['getPrivate']()['getEncoded']());},'generateRandomKeyInput'(jF){let jG=jF||0x20;if(0x20!==jG&&0x10!==jG)throw Error('length\x20must\x20be\x20either\x2016\x20or\x2032');let jH='';for(let jF=0x0;jF<0x20;jF+=0x1)jH+=String['fromCharCode'](0x9fff*Math['random']());return String(this['digest'](jH,'MD5'))['slice'](-jF);},'_getKey'(jF){if(!jF)throw Error('Invalid\x20key\x20for\x20cryptox._getKey()');if(jF['length']%0x10==0x0&&jF['match'](/^[a-f0-9]+$/i))return new this['Key'](jF);let jG=n['.local']('key.nfex');files['exists'](jG)||files['createWithDirs'](jG);let jH=n['readJson'](jG);if(jH[jF])return new this['Key'](jH[jF]);let lj=jH[jF]=this['generateRandomKeyInput']();return n['writeJson'](jG,jH),new this['Key'](lj);},'enc'(jF,jG){return this['encrypt'](jF,this['_getKey'](jG),'AES/ECB/PKCS5Padding',{'output':'hex'});},'dec'(jF,jG){if(i(jF)||jF===String())return jF;let jH=null,lp=function(){try{return this['decrypt'](jF,this['_getKey'](jG),'AES/ECB/PKCS5Padding',{'output':'string','input':'hex'});}catch(lq){jH=lq;}}['call'](this);if(!i(lp))return lp;let jI=this['_pwmap']['decrypt'](jF);if(!i(jI))return jI;throw Error(null!==jH?jH:'Decrypted\x20failed');}};jF['exports']={'cryptox':jX};},415:(ls,lu,lw)=>{let {$$impeded:i,$$toast:n,$$cvt:s,$$link:o,isNullish:a,$$str:l,$$und:c,$$nul:u,$$arr:p,$$num:h,$$rex:_,$$func:d}=lw(0x2c4),{timersx:g}=lw(0x357),{consolex:f}=lw(0x2d5),{a11yx:m,$$sel:y}=lw(0x2d4),lx=android['provider']['Settings'],ly=lx['System'],lz=lx['Global'],lA=lx['Secure'],lB=java['io']['File'],lC=android['net']['Uri'],lD=android['view']['Surface'],lE=android['content']['Intent'],lF=android['content']['Context'],lG=android['content']['res']['Resources'],lH=android['content']['IntentFilter'],lI=android['os']['Environment'],lJ=android['os']['PowerManager'],lK=android['os']['BatteryManager'],lL=android['util']['DisplayMetrics'],lM=org['autojs']['autojs']['tool']['RootTool'],lN={'FLAGS_ON':lJ['SCREEN_BRIGHT_WAKE_LOCK']|lJ['ACQUIRE_CAUSES_WAKEUP'],'FLAGS_DIM':lJ['SCREEN_DIM_WAKE_LOCK']|lJ['ACQUIRE_CAUSES_WAKEUP'],get 'keycode$'(){return this['_keycode$']=this['_keycode$']||i['detach'](this['keycode'],0x1);},get 'power_service'(){return context['getSystemService'](lF['POWER_SERVICE']);},'screen_metrics':{'metrics':runtime['getScreenMetrics'](),'getInfo'(){return{'width':this['metrics']['rescaleX'](W),'height':this['metrics']['rescaleY'](H)};},'setRatio'(ls){this['setMetrics'](ls*W,ls*H);},'setMetrics'(ls,lu){let lw=ls<=0x0?W:ls<0x1?W*ls:ls,lS=lu<=0x0?H:lu<0x1?H*lu:lu;runtime['setScreenMetrics'](lw,lS);},'getRatio'(){return{'width':this['metrics']['rescaleX'](W)/W,'height':this['metrics']['rescaleY'](H)/H};},'reset'(){this['setRatio'](0x0);},'saveState'(){let ls=this['getInfo']();this['_screen_metrics_w']=ls['width'],this['_screen_metrics_h']=ls['height'];},'loadState'(){let ls=this['_screen_metrics_w'],lu=this['_screen_metrics_h'];if(void 0x0===ls||void 0x0===lu)throw Error('State\x20must\x20be\x20saved\x20before\x20loading');this['setMetrics'](ls,lu),delete this['_screen_metrics_w'],delete this['_screen_metrics_h'];}},'battery':{'_getStatusIntent':()=>context['registerReceiver'](null,new lH(lE['ACTION_BATTERY_CHANGED'])),'_getStatus'(ls,lu,lw){let lZ=ls=>void 0x0===lw?ls:lw,m0=this['_getStatusIntent'](),m1=lK['EXTRA_'+ls];switch(lu){case'Boolean':return m0['getBooleanExtra'](m1,lZ(!0x1));case'Byte':return m0['getByteExtra'](m1,lZ(-0x1));case'Char':return m0['getCharExtra'](m1,lZ(''));case'Double':return m0['getDoubleExtra'](m1,lZ(-0x1));case'Float':return m0['getFloatExtra'](m1,lZ(-0x1));case'Long':return m0['getLongExtra'](m1,lZ(-0x1));case'Short':return m0['getShortExtra'](m1,lZ(-0x1));case'String':return m0['getStringExtra'](m1);default:return m0['getIntExtra'](m1,lZ(-0x1));}},'_checkNumRange'(ls,lu,lw,m6,m7){let m8=(ls,lu)=>void 0x0===ls||isNaN(Number(ls))?lu:Number(ls);return ls>=m8(lu,lw||-0x1/0x0)&&ls<=m8(m6,m7||0x1/0x0);},'getPercentage'(){let ls=this['_getStatusIntent']();return 0x64*ls['getIntExtra'](lK['EXTRA_LEVEL'],-0x1)/ls['getIntExtra'](lK['EXTRA_SCALE'],-0x1);},'checkPercentage'(ls){return this['_checkNumRange'](this['getPercentage'](),ls,0xf);},'isBatteryLow'(){return device['sdkInt']<0x1c?!this['checkPercentage'](0xf):this['_getStatus']('BATTERY_LOW','Boolean',!0x1);},'getTemperature'(ls){let lu=this['_getStatus']('TEMPERATURE')/0xa,lw=ls||{};return{get 'C'(){let ls=mj(lw['unit'],'°C');return null===ls?lu:lu+ls;},get 'F'(){let ls=mj(lw['unit'],'°F'),mi=Number((0x9*lu/0x5+0x20)['toFixed'](0x1));return null===ls?mi:mi+ls;}}['C'===(lw['format']||'C')['toUpperCase']()['slice'](0x0,0x1)?'C':'F'];function mj(ls,lu){return!0x0===ls?lu:'string'==typeof ls?ls:null;}},'getTemperatureString'(){return this['getTemperature']()+'°C';},'checkTemperature'(ls,lu){return this['_checkNumRange'](this['getTemperature'](),ls,-0xf,lu,0x29);},'isOverheating'(){return this['getHealth']()===lK['BATTERY_HEALTH_OVERHEAT'];},'isOvercooling'(){return this['getHealth']()===lK['BATTERY_HEALTH_COLD'];},'getHealth'(){return this['_getStatus']('HEALTH',lK['BATTERY_HEALTH_UNKNOWN']);},'getHealthDescription'(ls){return'detailed'===ls||void 0x0===ls?{1:'状态未知',2:'状态良好',3:'温度过高',4:'已损坏',5:'电压过高',6:'状态未指明',7:'温度过低'}[this['getHealth']()]:{1:'未知',2:'良好',3:'过热',4:'损坏',5:'电压过高',6:'未指明',7:'过冷'}[this['getHealth']()];},'isHealthy'(){return this['getHealth']()===lK['BATTERY_HEALTH_GOOD'];},'isCharging'(){return this['_getStatus']('STATUS')===lK['BATTERY_STATUS_CHARGING']||this['isCharged']();},'isCharged'(){return this['_getStatus']('STATUS')===lK['BATTERY_STATUS_FULL'];},'isAcPlugged'(){return this['_getStatus']('PLUGGED')===lK['BATTERY_PLUGGED_AC'];},'isUsbPlugged'(){return this['_getStatus']('PLUGGED')===lK['BATTERY_PLUGGED_USB'];},'isWirelessPlugged'(){return this['_getStatus']('PLUGGED')===lK['BATTERY_PLUGGED_WIRELESS'];},'isPlugged'(){return this['isAcPlugged']()||this['isUsbPlugged']()||this['isWirelessPlugged']();},'isPluggedAndStayingOn'(){let ls=lN['stay_on_while_plugged_in']['get'](),lu=lu=>(lu&ls)===lu;return this['isAcPlugged']()&&lu(lK['BATTERY_PLUGGED_AC'])||this['isUsbPlugged']()&&lu(lK['BATTERY_PLUGGED_USB'])||this['isWirelessPlugged']()&&lu(lK['BATTERY_PLUGGED_WIRELESS']);},'isIgnoringOptimizations':ls=>lN['power_service']['isIgnoringBatteryOptimizations'](ls||context['getPackageName']()),'requestIgnoreOptimizations'(ls,lu){try{if(!lu&&this['isIgnoringOptimizations']())return!0x0;let lw=new lE()['setAction'](lx['ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS'])['setData'](lC['parse']('package:'+(ls||context['getPackageName']())));return app['startActivity'](lw),this['isIgnoringOptimizations']();}catch(mx){return console['warn'](mx['message']),!0x1;}}},'accelerometer_rotation':new tI('System','ACCELEROMETER_ROTATION','Int',[0x0,0x1]),'user_rotation':new tI('System','USER_ROTATION','Int',[lD['ROTATION_0'],lD['ROTATION_90'],lD['ROTATION_180'],lD['ROTATION_270']]),'screen_off_timeout':new tI('System','SCREEN_OFF_TIMEOUT','Int'),'stay_on_while_plugged_in':new tI('Global','STAY_ON_WHILE_PLUGGED_IN','Int',function(){let ls=lK['BATTERY_PLUGGED_AC'],lu=lK['BATTERY_PLUGGED_USB'],lw=lK['BATTERY_PLUGGED_WIRELESS'];return[0x0,ls,lu,lw,ls|lu,ls|lw,lu|lw,ls|lu|lw];}()),'development_settings_enabled':new tI('Global','DEVELOPMENT_SETTINGS_ENABLED','Int',[0x0,0x1]),'user_dir':new lB(lI['getDataDirectory'](),'user'),'wakeUp'(ls){let lu=context['getSystemService'](lF['POWER_SERVICE'])['newWakeLock'](lJ['FULL_WAKE_LOCK']|lJ['ACQUIRE_CAUSES_WAKEUP']|lJ['ON_AFTER_RELEASE'],'bright'),lw=ls||0x3a98;lu['acquire'](lw);let mE=Date['now'](),mF=setInterval(()=>{(this['isScreenOn']()||Date['now']()-mE-0xf0>lw)&&(clearInterval(mF),null!==lu&&lu['isHeld']()&&lu['release']());},0xc8);},'wakeUpWithBuffer'(ls){let lu=this['isScreenOn']['bind'](this);if(!lu()){let lw=0x2328,mJ=(ls||lw)/0x5dc;for(;this['wakeUp'](),!m['wait$'](lu,0x5dc,0x78);)if(--mJ<=0x0)return!0x1;}return!0x0;},'screenOn'(ls){return this['wakeUp'](ls);},'isScreenOn'(){let ls=this['power_service'];return(ls['isInteractive']||ls['isScreenOn'])['call'](ls);},'keepOn'(ls){let lu=ls||0x5;lu*=lu<0x64?0xea60:0x1,device['keepScreenOn'](lu),f['_']('已设置屏幕常亮显示'),f['_']('最大超时时间:\x20'+(lu/0xea60)['toFixedNum'](0x2)+'分钟');},'keepDim'(ls){let lu=ls||0x5;lu*=lu<0x64?0xea60:0x1,device['keepScreenDim'](lu),f['_']('已设置屏幕常暗显示'),f['_']('最大超时时间:\x20'+(lu/0xea60)['toFixedNum'](0x2)+'分钟');},'cancelOn'(){device['cancelKeepingAwake'](),f['_']('屏幕常亮显示已取消');},'cancelDim'(){device['cancelKeepingAwake'](),f['_']('屏幕常暗显示已取消');},'screenOff'(ls){if('boolean'==typeof ls)return this['screenOff']({'isDebug':ls});let lu=ls||{},lw=lu['key_code']||{},mT=lu['provider']||{},mU={},mV=this;f['debug']['switchSet'](lu['isDebug']);let mW={'key_code':{'failed':()=>f['w'](['关屏策略执行失败','按键模拟失败'],0x0,0x0,-0x2),'bugModel':()=>f['_'](['跳过当前策略','设备不支持KeyCode方法','设备型号:\x20'+device['brand']])},'successWithElapsedTime'(ls){f['_'](['策略执行成功','用时:\x20'+ls]);},'noWriteSettingsPermission'(){let ls=files['path']('./tools/auto.js-write-settings-permission-helper.js'),lu='需要\x22修改系统设置\x22权限';f['w'](['关屏策略执行失败',lu,'可使用以下工具获得帮助支持',ls],0x0,0x0,-0x2),n('关闭屏幕失败\x0a'+lu,'long');},'noWriteSecureSettingsPermission'(){let ls='WRITE_SECURE_SETTINGS';f['w'](['无法完成屏幕关闭操作','需要以下必要权限:',ls,'权限的详细信息及获取方式','可参阅项目配置工具','->\x20运行与安全','->\x20自动开启无障碍服务'],0x0,0x0,-0x2),n('关闭屏幕失败\x0a缺少以下必要权限:\x0a'+ls,'long');},'toastWithDebugInfo'(ls){let lu=[];[]['slice']['call'](arguments)['forEach'](ls=>{Array['isArray'](ls)?lu=lu['concat'](ls):'string'==typeof ls?lu['push'](ls):Object['prototype']['toString']['call'](ls)['match']('Arguments')&&(lu=lu['concat']([]['slice']['call'](ls)));}),f['v'](lu,0x4,0x0,-0x2);}};return f['_']('尝试关闭屏幕'),function(ls){try{mU['brake_is_triggered']?f['_']('关闭屏幕操作已被中断'):ls?f['_']('关闭屏幕成功'):f['_']('关闭屏幕失败',0x3);}catch(n5){if(!n5['message']['match'](/InterruptedException/))throw n5;}return f['debug']['switchBack'](),ls;}(function(){if(!lw['is_disabled']&&function(){try{return 0x0===shell('date',!0x0)['code'];}catch(n6){return!0x1;}}())if(f['_']('尝试策略:\x20模拟电源按键'),[/[Mm]eizu/]['some'](ls=>device['brand']['match'](ls)))mW['key_code']['bugModel']();else{if(function(){let ls=lw['hint'];'function'==typeof ls?ls['call'](null):!0x0!==ls&&'toast'!==ls||n('正在尝试关闭屏幕...\x0a此过程可能需要几秒钟...','long');}(),g['rec']['save']('scr_off_tt'),lN['keycode']('KEYCODE_POWER',{'no_failed_msg':!0x0})){let ls=s['time'](g['rec']('scr_off_tt'),'$zh');return mW['successWithElapsedTime'](ls),!0x0;}mW['key_code']['failed']();}}()||function(){if(mT['is_disabled'])return;f['_']('尝试策略:\x20修改系统设置参数');let ls=!0x1;return ly['canWrite'](context)?mV['battery']['isPluggedAndStayingOn']()&&!(context['checkCallingOrSelfPermission'](android['Manifest']['permission']['WRITE_SECURE_SETTINGS'])===android['content']['pm']['PackageManager']['PERMISSION_GRANTED']?mU['staying_on_state_matters']=!0x0:void 0x0)?(mW['noWriteSecureSettingsPermission'](),ls):(o(function(){g['rec']['save']('set_provider');let ls=mT['hint'];'function'==typeof ls?ls['call'](null):!0x0!==ls&&'toast'!==ls||n(['正在尝试关闭屏幕...','此过程可能需要几秒钟...\x0a','触摸屏幕任意区域','或按下任意按键可终止关屏']['join']('\x0a'),'Long');})['$'](ng)['$'](function(){'function'==typeof mT['listener']&&mT['listener'](ne);})['$'](function(){for(;!mU['brake_is_triggered'];){let lu=g['rec']('set_provider'),lw=s['time'](lu,'$zh');if(lu>0xd7be){f['w'](['关屏策略执行失败','屏幕关闭超时','耗时:\x20'+lw],0x2,0x0,-0x2);break;}if(!mV['isScreenOn']()){mW['successWithElapsedTime'](lw),ls=!0x0;break;}sleep(0xc8);}})['$'](nh),ls):(mW['noWriteSettingsPermission'](),ls);}());function ne(ls){mU['brake_is_triggered']=!0x0,nh(),mW['toastWithDebugInfo'](arguments);}function ng(){f['_']('备份并设置相关参数:'),mV['stay_on_while_plugged_in']['clearStorage'](),mV['screen_off_timeout']['saveIntoStorage'](),mV['screen_off_timeout']['put'](0x0),mU['staying_on_state_matters']&&(mV['stay_on_while_plugged_in']['saveIntoStorage'](),mV['stay_on_while_plugged_in']['put'](0x0));}function nh(){mU['is_settings_restored']||(f['_']('恢复修改前的设置参数:'),mV['screen_off_timeout']['loadFromStorageIFN'](),mV['stay_on_while_plugged_in']['loadFromStorageIFN'](),mU['is_settings_restored']=!0x0);}},'isScreenOff'(){return!this['isScreenOn']();},'isLocked':()=>context['getSystemService'](lF['KEYGUARD_SERVICE'])['isKeyguardLocked'](),'isUnlocked'(){return!this['isLocked']();},'unlock':ls=>function(){let ls='com\x5c.android\x5c.systemui:id/',lu='com\x5c.android\x5c.keyguard:id/',nl='com\x5c.smartisanos\x5c.keyguard:id/',{storagesx:n}=lw(0xdc),nm={},nn={'p_container':{'trigger'(){return lE(),[{'desc':'QQ锁屏消息弹框控件','trigger':()=>y['pickup']('按住录音')||y['pickup'](idMatches(/com.tencent.mobileqq:id.+/)),'handle'(){m['click$'](y['pickup']('关闭'),'w'),m['wait$'](this['trigger']['bind'](this),0xbb8)?f['_']('关闭弹框控件成功'):f['_']('关闭弹框控件超时',0x3);}},{'desc':'闹钟应用前置','trigger'(){let ls=currentPackage();return['com\x5c.android\x5c.deskclock','com\x5c.alarmclock\x5c.xtreme.*']['some'](lu=>new RegExp(lu)['test'](ls));},'handle'(){m['wait$'](()=>!this['trigger'](),0x1d4c0)?f['_']('闹钟应用解除前置成功'):f['_']('闹钟应用解除前置超时',0x3);}}]['forEach'](ls=>{ls['trigger']()&&(f['_'](['检测到提示层页面干扰:',ls['desc']]),ls['handle']());}),function(){let ls=np['unlockDismissLayerStrategy'];if('preferred'===ls)return!0x0;if('disabled'===ls)return nm['unlock_dismiss_layer_disabled_hinted']||(f['_']('解锁页面提示层检测已禁用'),nm['unlock_dismiss_layer_disabled_hinted']=!0x0),!0x1;if('deferred'===ls)return!!nm['unlock_dismiss_layer_deferred']||(f['_']('解锁页面提示层检测延迟一次'),nm['unlock_dismiss_layer_deferred']=!0x0,!0x1);throw Error('Unknown\x20unlock\x20dismiss\x20layer\x20strategy:\x20'+ls);}()&&[{'desc':'通用','sel':idMatches(ls+'preview_container')},{'desc':'EMUI','sel':idMatches(ls+'.*(keyguard|lock)_indication.*')},{'desc':'锤子科技','sel':idMatches(nl+'keyguard_(content|.*view)')},{'desc':'MIUI','sel':idMatches(lu+'(.*unlock_screen.*|.*notification_.*(container|view).*|dot_digital)')},{'desc':'MIUI10','sel':idMatches(ls+'(.*lock_screen_container|notification_(container|panel).*|keyguard_.*)')},{'sel':y['pickup'](/上滑.{0,4}解锁/,'selector')}]['some'](ls=>{let {desc:lu,sel:lw}=ls;if(lw instanceof com['stardust']['autojs']['core']['accessibility']['UiSelector']&&lw['exists']())return lu?f['_']('匹配到'+lu+'解锁提示层控件'):(f['_']('匹配到解锁提示层文字:'),f['_'](y['pickup'](lw,'txt'))),(this['trigger']=lw['exists']['bind'](lw))();});},'dismiss'(){let ls=this,lu=np['unlockDismissLayerBottom'],lw=np['unlockDismissLayerTop'],nl=np['unlockDismissLayerSwipeDuration'],nF=!!nl,nm=[lu,lw],nn=nl,nI=np['swipe_time_reliable']||[],nJ=0x3,nK=np['continuous_swipe']||{};return nI['includes'](nn)&&(nJ=0x1/0x0,f['_']('当前滑动时长参数可信')),nn in nK||(f['_']('连续成功滑动累积器清零'),nK={},nK[nn]=0x0),function(){let lu=[nn]['concat'](nm['map'](ls=>[halfW,cY(ls)])),lw=0x0;for(lN['keepOn'](0x3);!nl()&&(lC('消除解锁页面提示层',lw,0x1e),f['_']('滑动时长:\x20'+nn+'毫秒'),f['_']('参数来源:\x20'+(nF?'本地存储':'自动计算')),gesture['apply'](null,lu),!ls['succ']());)if(f['_']('单次消除解锁页面提示层超时'),lw+=0x1,nF)--nJ<0x0?(nF=!0x1,nn=np['unlockDismissLayerSwipeDuration'],f['_']('放弃本地存储数据'),f['_']('从默认值模块获取默认值:\x20'+nn)):f['_']('继续使用本地存储数据');else{let ls=nn<0x78?0x5:0x32;nn+=ls,f['_']('参数增量:\x20'+ls);}function nl(){let ls=lw>0x1e;return ls&&(nK[nn]=0x0,no['put']('config',{'continuous_swipe':nK}),lD('消除解锁页面提示层失败')),ls;}lN['cancelOn'](),f['_']('解锁页面提示层消除成功'),ls['succ_fg']=!0x0;}(),function(){nn!==nl&&(no['put']('config',{'unlockDismissLayerSwipeDuration':nn}),f['_']('存储滑动时长参数:\x20'+nn)),nn in nK||(nK[nn]=0x0);let ls=++nK[nn];no['put']('config',{'continuous_swipe':nK}),f['_']('存储连续成功滑动次数:\x20'+ls),ls>=0x6&&!nI['includes'](nn)&&(f['_']('当前滑动时长可信度已达标'),f['_']('存储可信滑动时长数据:\x20'+nn),no['put']('config',{'swipe_time_reliable':nI['concat'](nn)}));}(),this['succ_fg'];},'handle'(){return this['succ_fg']||!this['trigger']()||this['dismiss']();},'succ'(){return m['wait$'](function(){return!this['trigger']();}['bind'](this),0x5dc)||nn['unlock_view']['trigger']();}},'unlock_view':{'trigger'(){let lw=this;if(lN['isScreenOn']())return function(){return[{'desc':'通用','sel':idMatches(ls+'lockPatternView')},{'desc':'MIUI','sel':idMatches(lu+'lockPattern(View)?')}]['some'](ls=>{if(ls['sel']['exists']())return f['_']('匹配到'+ls['desc']+'图案解锁控件'),re(ls['sel'],nl);});function nl(){let ls=np['unlockPatternStrategy'],lu={'segmental':'叠加路径','solid':'连续路径'},nl='unlock_pattern_swipe_time_'+ls,nY=np[nl],nm=!!nY,o0=0x3,o1=0x0,o2=Math['ceil'](0.6*lz);for(;!(o1>o2&&lD('图案解锁方案失败'));){lC('图案密码解锁',o1,o2),f['_']('滑动时长:\x20'+nY+'毫秒'),f['_']('滑动策略:\x20'+lu[ls]);let nn=of(),no={'segmental'(){let ls=[],lu=nn['length'];for(let lw=0x0;lw{let {left:lu,top:lw,right:nl,bottom:nY}=ls;return[lu,lw,nl,nY];},no=ls=>{[lu,lw,nl,nY]=nn(ls);};return m['wait$'](()=>{let ox=ls['findOnce']();if(ox)return nm=ox['bounds'](),c(lu)||c(lw)||c(nl)||c(nY)?no(nm):!!(ls=>{let [nm,no,ox,oC]=nn(ls);return lu===nm&&lw===no&&nl===ox&&nY===oC;})(nm)||void no(nm);},0x4b0,0x78),nm;}}(lw['sel']);if(!ls)return lD(['图案解锁方案失败','无法获取点阵布局']);let lu=lA,nl=Math['trunc'](ls['width']()/lu),nY=Math['trunc'](ls['height']()/lu),nm=ls['left']+Math['trunc'](nl/0x2),no=ls['top']+Math['trunc'](nY/0x2),o0=[];for(let ls=0x1;ls<=lu;ls+=0x1)for(let lw=0x1;lw<=lu;lw+=0x1)o0[(ls-0x1)*lu+lw]={'x':nm+(lw-0x1)*nl,'y':no+(ls-0x1)*nY};return l(lx)&&(lx=lx['match'](/[^1-9]+/)?lx['split'](/[^1-9]+/)['join']('|')['split']('|'):lx['split']('')),nn['unlock_pattern_pts']=function(ls,lu){let lw=ls['filter'](ls=>ls>0x0&&ls<=lu*lu),nl=[];for(;nl['length']!==lw['length'];)nl=lw['slice'](),nY(),nm();return lw;function nY(){let ls=function(){let ls={},lw=0x1;for(let nl=0x1;nl<=lu;nl+=0x1)for(let nY=0x1;nY<=lu;nY+=0x1)ls[lw++]=[nl,nY];return ls;}(),nl=NaN;for(let ls=0x0,lu=lw['length'];ls{if(!c(lu)&&!(lu in ls))return ls[lu]=!0x0;});}}(lx,lu)['filter'](ls=>+ls&&o0[ls])['map'](ls=>[o0[ls]['x'],o0[ls]['y']]);}}}()||function(){return!function(){let ls=ls=>l(ls)&&id(ls)['exists'](),lu=ls=>_(ls)&&idMatches(ls)['exists']();return['com.android.systemui:id/lockPattern']['some'](nl=>{if(ls(nl)||lu(nl))return lw['misjudge']=nl,f['_'](['匹配到误判干扰','转移至PIN解锁方案']),!0x0;});}()&&[{'desc':'通用','sel':idMatches('.*passwordEntry')},{'desc':'MIUI','sel':idMatches(lu+'miui_mixed_password_input_field')},{'desc':'锤子科技','sel':idMatches(nl+'passwordEntry(_.+)?')['className']('EditText')}]['some'](lu=>{if(lu['sel']['exists']())return f['_']('匹配到'+lu['desc']+'密码解锁控件'),re(lu['sel'],ls);});function ls(){let ls=lx;p(ls)&&(ls=ls['join'](''));let lu=ls=>y['pickup']([/确.|完成|[Cc]onfirm|[Ee]nter/,{'className':'Button','clickable':!0x0}],ls),nl=0x0,pp=Math['ceil'](0.6*lz);for(;!(nl>pp&&lD(['密码解锁方案失败','可能是密码错误','或无法点击密码确认按钮']));){lC('密码解锁',nl,pp),lw['sel']['setText'](ls),nm();let nn=lu('widget');if(nn){f['_']('点击\x22'+lu('txt')+'\x22按钮');try{m['click$'](nn,'w');}catch(ps){f['_']('按钮点击可能未成功',0x3);}}if(lw['succ'](0x2))break;try{if(0x0===shell('date',!0x0)['code']&&0x0===shell('input\x20keyevent\x2066',!0x0)['code']&&(f['_']('使用Root权限模拟回车键'),sleep(0x1e0),lw['succ']()))break;}catch(pt){}nl+=0x1,sleep(0xc8);}return f['_']('密码解锁成功'),!0x0;function nm(){let lu=ls[ls['length']-0x1],nl={'HUAWEI VOG-AL00 9':{'prefix':0x1,'keys':[[0x3f0,0x6aa]]},'HUAWEI ELE-AL00 10':{'keys':['DEL'],'keys_map':function(){let [ls,lu,lw,nl,pp]=[0x4a4,0x546,0x5e7,0x68a,0x72b],[nm,nn,no,pF,pG,pH,pI,pJ,pK,pL]=[0x38,0xa3,0x10f,0x17a,0x1e7,0x253,0x2bf,0x32a,0x396,0x403],[np,pN,pO,pP,lx,ly,lz,lA,lB]=[109.5,0xd9,324.5,432.5,0x21d,0x289,756.5,0x360,972.5];return{1:[nm,ls],2:[nn,ls],3:[no,ls],4:[pF,ls],5:[pG,ls],6:[pH,ls],7:[pI,ls],8:[pJ,ls],9:[pK,ls],0:[pL,ls],'q':[nm,lu],'w':[nn,lu],'e':[no,lu],'r':[pF,lu],'t':[pG,lu],'y':[pH,lu],'u':[pI,lu],'i':[pJ,lu],'o':[pK,lu],'p':[pL,lu],'a':[np,lw],'s':[pN,lw],'d':[pO,lw],'f':[pP,lw],'g':[lx,lw],'h':[ly,lw],'j':[lz,lw],'k':[lA,lw],'l':[lB,lw],'z':[pN,nl],'x':[pO,nl],'c':[pP,nl],'v':[lx,nl],'b':[ly,nl],'n':[lz,nl],'m':[lA,nl],',':[pN,pp],' ':[lx,pp],'.':[lA,pp],'del':[pL,nl]};}(),get 'suffix'(){return this['keys_map'][lu];}}};if(!(lB in nl))return;f['_']('此设备机型需要按键辅助');let pp=nl[lB],nm=pp['keys'],nn=pp['keys_map'],no=pp['prefix'],pZ=pp['suffix'];if(!c(no)&&!u(no)){let nl='';h(no)?nl+=lu['repeat'](no):nl=no['toString'](),lw['sel']['setText'](ls+nl),f['_']('辅助按键前置填充:\x20'+nl['length']+'项');}return nm['forEach']((ls,lu)=>{lu||sleep(0x12c),m['click$'](l(ls)?nn[ls]:ls),sleep(0x12c);}),pZ?pZ instanceof com['stardust']['automator']['UiObject']?(f['_']('辅助按键后置填充类型:\x20控件'),m['click$'](pZ)):pZ instanceof com['stardust']['autojs']['core']['accessibility']['UiSelector']?(f['_']('辅助按键后置填充类型:\x20选择器'),m['click$'](pZ)):p(pZ)?(f['_']('辅助按键后置填充类型:\x20坐标'),m['click$'](pZ)):h(pZ)||l(pZ)||_(pZ)?(f['_']('辅助按键后置填充类型:\x20文本'),m['click$'](y['pickup']('(key.?)?'+pZ))):lD(['密码解锁失败','无法判断末位字符类型']):void 0x0;}}}()||function(){return[{'desc':'通用','sel':idMatches(ls+'pinEntry')},{'desc':'MIUI','sel':idMatches(lu+'numeric_inputview')},{'desc':'EMUI10','sel':idMatches(ls+'fixedPinEntry')},{'desc':'EMUI','sel':descMatches('[Pp][Ii][Nn]\x20?(码区域|area)')},{'desc':'魅族','sel':idMatches(ls+'lockPattern')},{'desc':'OPPO','sel':idMatches(ls+'(coloros.)?keyguard.pin.(six.)?view')},{'desc':'OPPO','sel':idMatches(ls+'keyguard_security_container')},{'desc':'VIVO','sel':idMatches(ls+'vivo_pin_view')},{'desc':'拨号盘阵列',get 'sel'(){let ls={'_side':0x3,'_nums':[0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0],'_ft':cX(0.0125),'_checkPoints'(){return this['_points']=this['_points']||{},this['_nums']['every'](ls=>this['_points'][ls]=y['pickup'](ls,'point'));},'_checkOffset'(){let lu=ls=>ls['join']('|')['split']('|')['map'](()=>[]),lw=ls['_side'],nl=lu(Array(lw)),q8=lu(Array(lw)),nm=(lu,lw)=>ls['_points'][ls['_nums'][lu]][lw];for(let ls=0x0;lslu['every']((lw,nl)=>!nl||Math['abs'](lw-lu[nl-0x1])lu['every']((lw,nl)=>!nl||Math['abs'](lw-lu[nl-0x1])!!global['_$_dial_points']};}}]['some'](ls=>{let lu=ls['desc'];if(ls['sel']['exists']())return lu['match'](/\w$/)&&(lu+='/'),f['_']('匹配到'+lu+'PIN解锁控件'),re(ls['sel'],nl);});function nl(){let nl=0x0,qp=Math['ceil'](0.6*lz);for(;!(nl>qp&&lD(['PIN解锁方案失败','尝试次数已达上限'])||(lC('PIN解锁',nl,qp),d(lw['unlockPin'])?lw['unlockPin']():no(),lw['succ']()||nn()));)nl+=0x1,sleep(0xc8);return f['_']('PIN解锁成功'),!0x0;function nn(){let lu=idMatches(ls+'key_enter');if(lu['exists']())return f['_']('点击\x22key_enter\x22控件'),m['click$'](lu,'w'),lw['succ']();}function no(){let nl=[{'desc':'通用PIN/KEY','test'(){let lu=lu=>idMatches(ls+'key'+lu);if(r0(lu))return nn['call'](this),this['sel']=lu;},'click'(){let ls=this['sel'];return no(()=>ly['forEach'](lu=>m['click$'](ls(lu),'w')));}},{'desc':'通用PIN容器','test'(){let lu=idMatches(ls+'container')['findOnce']();if(lu)return nn['call'](this),this['widget']=lu;},'click'(){let ls=this['widget']['bounds'](),lu=[ls['left'],ls['top'],ls['right'],ls['bottom']];return no(()=>ly['forEach'](ls=>m['click$']((ls=>y['pickup']([ls,{'boundsInside':lu}]))(ls),'w')));}},{'desc':'MIUI/PIN','test'(){let ls=ls=>idMatches(lu+'numeric_inputview')['text'](ls);if(r0(ls))return nn['call'](this),this['sel']=ls;},'click'(){let ls=this['sel'];return no(()=>ly['forEach'](lu=>m['click$'](ls(lu),'w')));}},{'desc':'内容描述PIN','test'(){let ls=ls=>desc(ls);if(r0(ls))return nn['call'](this),this['sel']=ls;},'click'(){let ls=this['sel'],lu=lw=>{let nl=ls(lw)['findOnce']();if(lw>0x0||nl)return nl;let qp=ls=>{let lw=lu(ls)['bounds']();return{'x':lw['centerX'](),'y':lw['centerY']()};},nm=ls=>qp(0x8)[ls]+qp(0x5)[ls]-qp(0x2)[ls];return[nm('x'),nm('y')];};return no(()=>ly['forEach'](ls=>m['click$'](lu(ls),'w')));}},{'desc':'标记匹配PIN','test'(){if(lw['misjudge'])return nn['call'](this),f['_']('已匹配的字符串化标记:'),f['_'](lw['misjudge']),!0x0;},'click':()=>no(()=>{let ls=idMatches(lw['misjudge'])['findOnce']();ls&&nm(ly,ls['bounds']());})},{'desc':'拨号盘阵列PIN','test'(){if(global['_$_dial_points'])return nn['call'](this),!0x0;},'click':()=>no(()=>ly['forEach'](ls=>{m['click$'](global['_$_dial_points'][ls],'p',{'pt$':0x78});}))}],qp=0x8;for(;qp--;)for(let ls of nl)if(ls['test']())return ls['click']();return lD('预置的PIN解锁方案全部无效');function nn(){f['_']('采用'+this['desc']+'解锁方案');}function no(ls){return(lw['unlockPin']=ls['bind'](null))();}function r0(ls){let lu=0x0;for(let lw of'123456789')lu+=Number(ls(lw)['exists']());return lu>0x6;}}}}()||function(){return[{'desc':'\x22Gxzw\x22屏下指纹设备','sel':idMatches(/.*[Gg][Xx][Zz][Ww].*/),'pw_rect':[0.0875,0.47,0.9125,0.788]}]['some'](lu=>{if(lu['sel']['exists']())return f['_'](['匹配到特殊设备解锁方案:',lu['desc']]),re(lu['sel'],ls['bind'](null,lu['pw_rect']));});function ls(ls){let lu=ls['map']((ls,lu)=>lu%0x2?cY(ls):cX(ls)),[nl,r9,nn,no]=lu;if(f['_']('已构建密码区域边界:'),f['_']('Rect('+nl+',\x20'+r9+'\x20-\x20'+nn+',\x20'+no+')'),nm(ly,lu),lw['succ']())return!0x0;lD('尝试特殊解锁方案失败');}}()||void(lN['isUnlocked']()||f['_']('未匹配到可用的解锁控件'));function re(ls,lu){return lw['sel']=ls,lw['stg']=lu,(lw['trigger']=ls['exists']['bind'](ls))();}function nm(ls,lu){let lw,nl,re,nm;if(p(lu)){let [ls,nn,no,rr]=lu;lw=ls,nl=nn,re=no-ls,nm=rr-nn;}else lw=lu['left'],nl=lu['top'],re=lu['width'](),nm=lu['height']();let nn=Math['trunc'](re/0x3),no=Math['trunc'](nm/0x4),ru=lw+Math['trunc'](nn/0x2),rv=nl+Math['trunc'](no/0x2),rw=[];for(let ls=0x1;ls<=0x4;ls+=0x1)for(let lu=0x1;lu<=0x3;lu+=0x1)rw[0x3*(ls-0x1)+lu]={'x':ru+nn*(lu-0x1),'y':rv+no*(ls-0x1)};f['_']('已构建拨号盘数字坐标'),ls['forEach'](ls=>m['click$'](rw[Number(ls)||0xb]));}f['_'](['跳过解锁控件检测','屏幕未亮起']);},'dismiss'(){return lx?d(this['stg'])?(lN['keepOn'](0x5),this['stg'](),void lN['cancelOn']()):lD('没有可用的解锁方案'):lD('密码为空');},'handle'(){return this['trigger']()&&this['dismiss']();},'succ'(ls){let lw,nl=ls||0x780;return m['wait$'](()=>{if(function(){let ls=y['pickup'](/.*(重试|不正确|错误|[Ii]ncorrect|[Rr]etry|[Ww]rong).*/);return ls?lw||f['_'](y['pickup'](ls,'txt'),0x3):!idMatches(new RegExp(lu+'phone_locked_textview'))['exists']()||lw||f['_']('密码错误',0x3);}())return function(){let ls=()=>y['pickup'](/.*([Tt]ry again in.+|\d+.*后重试).*/);ls()&&(f['_']('正在等待重试超时'),m['wait$'](()=>!ls(),0xfde8,0x1f4));}(),function(){let ls=y['pickup'](/OK|确([认定])|好的?/);ls&&(f['_']('点击\x22'+y['pickup'](ls,'txt')+'\x22按钮'),m['click$'](ls,'w'),sleep(0x3e8));}(),lN['isUnlocked']();lw=!0x0;},nl,0xf0);}},'unlock':function(ls){f['debug']['switchSet'](ls),f['_']('尝试自动解锁',0x0,0x0,-0x2),no['put']('config',np),lE();for(let ls=0x0;!lN['isUnlocked']();ls+=0x1)ls>=lz&&lD('解锁尝试次数已达上限'),lC('解锁',ls,lz),nn['p_container']['handle'](),nn['unlock_view']['handle'](),sleep(0xf0);return f['_']('自动解锁完毕',0x0,0x0,-0x2),f['debug']['switchBack'](),!0x0;}},no=n['create']('unlock'),np=Object['assign']({'unlockCode':null,'unlockTryLimit':0x14,'unlockPatternStrategy':'segmental','unlockPatternSize':0x3,'unlockPatternSwipeDurationSegmental':0x78,'unlockPatternSwipeDurationSolid':0xc8,'unlockDismissLayerStrategy':'preferred','unlockDismissLayerBottom':0.7,'unlockDismissLayerTop':0.3,'unlockDismissLayerSwipeDuration':0x6e},no['get']('config')),lx=String(no['get']('config',{'prop':'unlockCode','is_crypto':!0x0,'default':''})),ly=lx['split'](/\D+/)['join']('')['split'](''),lz=np['unlockTryLimit'],lA=np['unlockPatternSize'],lB=device['brand']+'\x20'+device['product']+'\x20'+device['release'],lC=(ls,lu,lw)=>lu?f['_']('重试'+ls+'(\x20'+lu+'/'+lw+')'):f['_']('尝试'+ls);return nn;function lD(ls){lN['cancelOn'](),f['e'](['解锁失败',ls,lB]['flat'](),0x4,0x0,0x2),lN['isInitScreenOn']||(f['d']('自动关闭屏幕'),lN['screenOff']()||f['w']('自动关闭屏幕失败')),f['__'](),exit(),sleep(0xe10);}function lE(){lN['isScreenOn']()||(lN['wakeUpWithBuffer']()?(f['_']('设备唤起成功'),device['keepScreenOn'](0x1d4c0)):lD('设备唤起失败'));}}()['unlock'](ls),'vibrate'(ls,lu,lw){let rR=lu||0x1,rS='number'==typeof ls?[ls]:ls;function rT(){let ls=ls=>ls<0xa?0x3e8*ls:ls;for(;rR--;)rS['forEach']((lu,lw)=>{let rR=ls(lu),rT=ls(rS[lw-0x1]||0x0);lw%0x2?sleep(rR+rT):device['vibrate'](rR);}),lu&&rS['length']%0x2&&sleep(0x3e8);}void 0x0===lw||lw?threads['start'](rT):rT();},'hasRoot':()=>'function'==typeof lM['isRootAvailable']?lM['isRootAvailable']():Object['keys'](Shell)['indexOf']('Companion')>-0x1?Shell['Companion']['isRootAvailable']():void 0x0,'keycode'(ls,lu){let lw={'options':lu||{},'relations':[{'str':'home','num':0x3},{'str':'back','num':0x4},{'str':'recents','num':0xbb},{'str':'quick_settings','num':-0x1},{'str':'power_dialog','num':-0x1},{'str':'notifications','num':-0x1},{'str':'split_screen','num':-0x1}],get 'autojs_keycode'(){return this['_aj_kc']=this['_aj_kc']||this['relations']['map'](ls=>ls['str']);},'impededIFN'(){this['options']['no_impeded']||'function'==typeof i&&i('devicex.keycode');},'parseKeycode'(){if('number'==typeof ls||this['autojs_keycode']['includes'](ls))return this['keycode']=ls;if('string'==typeof ls){let lu=ls['match'](/^KEYCODE_/i)?ls:'KEYCODE_'+ls,lw=android['view']['KeyEvent'][lu['toUpperCase']()];if('number'==typeof lw)return this['keycode']=lw;}throw Error('Invalid\x20keycode:\x20'+ls);},'parseStrategy'(){'adb_only'===this['options']['strategy']?this['is_adb_only']=!0x0:'adb_advanced'===this['options']['strategy']?this['is_adb_advanced']=!0x0:'a11y_only'===this['options']['strategy']?this['is_a11y_only']=!0x0:this['is_a11y_advanced']=!0x0;},'parseArgs'(){this['parseStrategy'](),this['parseKeycode']();},'hasRoot'(){return'boolean'==typeof this['options']['root']?this['options']['root']:function(){try{return 0x0===shell('date',!0x0)['code'];}catch(s6){return!0x1;}}();},'toNumIFP'(ls){for(let lu of this['relations'])if(ls===lu['str']){if(lu['num']>-0x1)return lu['num'];break;}return ls;},'toStrIFP'(ls){for(let lu of this['relations'])if(ls===lu['num'])return lu['str'];return ls;},'showFailedMsgIFN'(ls){this['options']['no_failed_msg']||f['w'](['按键模拟失败','键值:\x20'+ls],0x0,0x0,-0x2);},'simulateByAdb'(ls){try{return 0x0===shell('input\x20keyevent\x20'+ls,lw['hasRoot']())['code'];}catch(sd){return this['showFailedMsgIFN'](ls),!0x1;}},'simulateByA11y'(ls){switch(ls){case'home':return home();case'back':return back();case'recents':return recents();case'power_dialog':return powerDialog();case'notifications':return notifications();case'quick_settings':return quickSettings();case'split_screen':return splitScreen();default:return null;}},'simulate'(ls){return this['is_a11y_only']?this['simulateByA11y'](this['toStrIFP'](ls)):this['is_adb_only']?this['simulateByAdb'](this['toNumIFP'](ls)):this['is_a11y_advanced']?this['simulateByA11y'](this['toStrIFP'](ls))||this['simulateByAdb'](this['toNumIFP'](ls)):this['is_adb_advanced']?this['simulateByAdb'](this['toNumIFP'](ls))||this['simulateByA11y'](this['toStrIFP'](ls)):void 0x0;},'simulateOnce'(){return this['simulate'](this['keycode']);},'simulateTwice'(){let ls=0x2;for(;ls--;)if(!this['simulateOnce']())return!0x1;return!0x0;},'getResult'(){return this['impededIFN'](),this['parseArgs'](),this['options']['rush']?this['simulateTwice']():this['simulateOnce']();}};return lw['getResult']();},'getCallState':()=>context['getSystemService'](lF['TELEPHONY_SERVICE'])['getCallState'](),'getDisplay'(){let ls,lu,lw=new lL(),sk=this['getDefaultDisplay']();sk['getRealMetrics'](lw);let sl=sU(),sm={'cX':su,'cY':sy,'cYx':sC},sn={'refresh'(){let ls=sU(),lu=!0x1;return Object['keys'](ls)['forEach'](lw=>{sl[lw]!==ls[lw]&&(sl[lw]=ls[lw],lu=!0x0);}),lu&&(f['_']('屏幕显示数据已更新'),this['debug']()),this;},'debug'(ls){let lu=f['debug']['fuel'](ls);return lu('屏幕宽高:\x20'+sl['W']+'\x20×\x20'+sl['H']),sl['is_rotation_portrait']?lu('可用高度:\x20'+sl['USABLE_HEIGHT']):sl['is_rotation_landscape']&&lu('可用宽度:\x20'+sl['USABLE_WIDTH']),lu('屏幕旋转:\x20'+0x5a*sl['display_rotation']+'°'),this;}};return sl||m['wait$'](()=>sl=sU(),0xbb8,0x1f4)||console['error']('devicex.getDisplay()返回结果异常'),Object['assign'](sl,sm,sn);function su(ls,lu,lw){return'boolean'==typeof lu?sL(0x1,ls,-0x1,Object['assign']({'is_ratio':lu},lw)):sL(0x1,ls,lu,lw);}function sy(ls,lu,lw){return'boolean'==typeof lu?sL(-0x1,ls,-0x1,Object['assign']({'is_ratio':lu},lw)):sL(-0x1,ls,lu,lw);}function sC(lw,sk,sl){let sm=sl||{},sn=sm['is_ratio'];'boolean'==typeof sk&&(sn=void 0x0===sn?sk:sn,sk=-0x1);let su=Number(lw),sy=Math['abs'](su)<0x1||sn,sC=Number(sk);if(sC&&-0x1!==sC)if(-0x2===sC)sC=0x438,su*=sy?0x780:0x1;else if(-0x3===sC)sC=0x448,su*=sy?0xa00:0x1;else{if(sC<0x0)throw Error('Can\x20not\x20parse\x20base\x20param\x20for\x20cYx()');if(sy)su*=lu;else if(sC<0x5)throw Error('Base\x20and\x20num\x20options\x20should\x20be\x20both\x20pixels\x20for\x20cYx()');sC=(sC>0x1?0x1/sC:sC)*lu;}else sC=0x2d0,su*=sy?0x500:0x1;return sm['to_ratio']?Number((0x9*su/0x10/sC)['toFixed'](0x3)):Math['round'](su*ls/sC);}function sL(lw,sk,sl,sm){let sn=-0x1!==lw?ls:lu,su=Number(sk);if(isNaN(su))throw Error('Can\x20not\x20parse\x20num\x20param\x20for\x20cTrans():\x20'+sk);let sy=Number(sl);sl&&-0x1!==sl?-0x2===sl?sy=-0x1!==lw?0x438:0x780:-0x3===sl&&(sy=-0x1!==lw?0x448:0xa00):sy=-0x1!==lw?0x2d0:0x500;let sC=sm||{};return(Math['abs'](su)<0x1||sC['is_ratio'])&&(su*=sy),sC['to_ratio']?Number((su/sy)['toFixed'](0x3)):Math['min'](Math['round'](su*sn/sy),sn);}function sU(){try{if(ls=sk['getWidth'](),lu=sk['getHeight'](),!(ls*lu))return sl();let sm=sk['getRotation'](),sn=[0x0,0x2]['indexOf'](sm)>-0x1,su=Math['max'](lw['widthPixels'],lw['heightPixels']),[sy,sC]=[lu,ls],sL=ls=>{try{let lu=context['getResources'](),lw=lu['getIdentifier'](ls,'dimen','android');if(lw>0x0)return lu['getDimensionPixelSize'](lw);}catch(t4){}return NaN;};return sn?[sy,lu]=[lu,su]:[sC,ls]=[ls,su],t7(),{'W':ls,'WIDTH':ls,'width':ls,'halfW':ls/0x2,'HALF_WIDTH':ls/0x2,'half_width':ls/0x2,'uW':sC,'USABLE_WIDTH':sC,'usable_width':sC,'H':lu,'HEIGHT':lu,'height':lu,'halfH':lu/0x2,'HALF_HEIGHT':lu/0x2,'half_height':lu/0x2,'uH':sy,'USABLE_HEIGHT':sy,'usable_height':sy,'display_rotation':sm,'ROTATION':sm,'is_rotation_portrait':sm===lD['ROTATION_0']||sm===lD['ROTATION_180'],'is_rotation_landscape':sm===lD['ROTATION_90']||sm===lD['ROTATION_270'],'status_bar_height':sL('status_bar_height'),'navigation_bar_height':sL('navigation_bar_height'),'navigation_bar_height_computed':sn?lu-sy:ls-sC,'action_bar_default_height':sL('action_bar_stacked_max_height')||sL('action_bar_default_height')};}catch(t5){return sl();}function sl(){return f['_']('devicex\x20display\x20raw()\x20is\x20triggered',0x3),ls=device['width'],lu=device['height'],t7(),ls&&lu?{'WIDTH':ls,'HEIGHT':lu,'USABLE_HEIGHT':Math['trunc'](0.9*lu)}:(f['_']('devicex\x20display\x20raw()\x20returns\x20null',0x4),null);}}function t7(){Object['assign'](global,{'W':ls,'WIDTH':ls,'H':lu,'HEIGHT':lu,'halfW':ls/0x2,'halfH':lu/0x2,'uW':sl?sl['USABLE_WIDTH']:ls,'uH':sl?sl['USABLE_HEIGHT']:lu,'ROTATION':sl?sl['display_rotation']:0x0,'cX':su,'cY':sy,'cYx':sC});}},'getDefaultDisplay':()=>context['getSystemService'](lF['WINDOW_SERVICE'])['getDefaultDisplay'](),'getDisplayRotation'(){return this['getDefaultDisplay']()['getRotation']();},'setUserRotation'(ls,lu){this['setAutoRotationDisabled'](lu);let lw={0:lD['ROTATION_0'],1:lD['ROTATION_90'],2:lD['ROTATION_180'],3:lD['ROTATION_270'],90:lD['ROTATION_90'],180:lD['ROTATION_180'],270:lD['ROTATION_270']}[ls];if(void 0x0===lw)throw Error('Unknown\x20rotation\x20for\x20devicex.setUserRotation()');let tb=()=>this['getDisplayRotation']()===lw;tb()||(this['user_rotation']['saveState'](),this['user_rotation']['put'](lw),lu||(m['wait'](tb,0x7d0,0x50),sleep(0x168)));},'setUserRotationPortrait'(ls){this['setUserRotation'](lD['ROTATION_0'],ls);},'setUserRotationInverted'(ls){this['setUserRotation'](lD['ROTATION_180'],ls);},'setUserRotationLandscapeRight'(ls){this['setUserRotation'](lD['ROTATION_90'],ls);},'setUserRotationLandscapeLeft'(ls){this['setUserRotation'](lD['ROTATION_270'],ls);},'setAutoRotationEnabled'(ls){this['accelerometer_rotation']['verify'](0x1)||(this['accelerometer_rotation']['saveState'](),this['accelerometer_rotation']['put'](0x1),ls||(m['wait'](()=>this['accelerometer_rotation']['verify'](0x1),0x7d0,0x50),sleep(0x168)));},'setAutoRotationDisabled'(ls){this['accelerometer_rotation']['verify'](0x0)||(this['accelerometer_rotation']['saveState'](),this['accelerometer_rotation']['put'](0x0),ls||(m['wait'](()=>this['accelerometer_rotation']['verify'](0x0),0x7d0,0x50),sleep(0x168)));},'restoreUserRotationIFN'(){this['restoreAutoRotationIFN'](),this['user_rotation']['loadStateIFN']();},'restoreAutoRotationIFN'(){this['accelerometer_rotation']['loadStateIFN']();},'getNextAlarmClockTriggerTime'(){let ls=context['getSystemService'](lF['ALARM_SERVICE'])['getNextAlarmClock']();return null!==ls?ls['getTriggerTime']():Number['NaN'];},'getNextAlarmClockTriggerGap'(){let ls=this['getNextAlarmClockTriggerTime']()-Date['now']();return isNaN(ls)?0x1/0x0:Math['max'](0x0,ls);},'isNextAlarmClockTriggered'(ls){let lu=Number(ls);return lu=isNaN(lu)||lu<0x0?0x0:lu,this['getNextAlarmClockTriggerGap']()({'raw_info':{1:{'version':'1.0','release':'September\x2023,\x202008'},2:{'version':'1.1','release':'February\x209,\x202009'},3:{'version':'1.5','release':'April\x2027,\x202009'},4:{'version':'1.6','release':'September\x2015,\x202009'},5:{'version':'2.0','release':'October\x2027,\x202009'},6:{'version':'2.0.1','release':'December\x203,\x202009'},7:{'version':'2.1','release':'January\x2011,\x202010'},8:{'version':['2.2','2.2.3'],'release':'May\x2020,\x202010'},9:{'version':['2.3','2.3.2'],'release':'December\x206,\x202010'},10:{'version':['2.3.3','2.3.7'],'release':'February\x209,\x202011'},11:{'version':'3.0','release':'February\x2022,\x202011'},12:{'version':'3.1','release':'May\x2010,\x202011'},13:{'version':['3.2','3.2.6'],'release':'July\x2015,\x202011'},14:{'version':['4.0','4.0.2'],'release':'October\x2018,\x202011'},15:{'version':['4.0.3','4.0.4'],'release':'December\x2016,\x202011'},16:{'version':['4.1','4.1.2'],'release':'July\x209,\x202012'},17:{'version':['4.2','4.2.2'],'release':'November\x2013,\x202012'},18:{'version':['4.3','4.3.1'],'release':'July\x2024,\x202013'},19:{'version':['4.4','4.4.4'],'release':'October\x2031,\x202013'},20:{'version':['4.4W','4.4W.2'],'release':'June\x2025,\x202014'},21:{'version':['5.0','5.0.2'],'release':'November\x204,\x202014'},22:{'version':['5.1','5.1.1'],'release':'March\x202,\x202015'},23:{'version':['6.0','6.0.1'],'release':'October\x202,\x202015'},24:{'version':'7.0','release':'August\x2022,\x202016'},25:{'version':['7.1','7.1.2'],'release':'October\x204,\x202016'},26:{'version':'8.0','release':'August\x2021,\x202017'},27:{'version':'8.1','release':'December\x205,\x202017'},28:{'version':'9','release':'August\x206,\x202018'},29:{'version':'10','release':'September\x207,\x202019'},30:{'version':'11','release':'September\x208,\x202020'},31:{'version':'12','release':'October\x204,\x202021'}},'month_map':{'Jan':0x0,'Feb':0x1,'Mar':0x2,'Apr':0x3,'May':0x4,'Jun':0x5,'Jul':0x6,'Aug':0x7,'Sep':0x8,'Oct':0x9,'Nov':0xa,'Dec':0xb},'parseDate'(ls){let lu=ls['replace'](/([A-Z]..)\D*?\s(\d\d?), (\d{4})/,(ls,lu,lw,ty)=>[ty,this['month_map'][lu],lw]['join'](','))['split'](',')['map'](ls=>Number(ls));return lu['unshift'](null),new(Function['prototype']['bind']['apply'](Date,lu))();},'parseRawInfo'(){this['versions']={},Object['keys'](this['raw_info'])['forEach'](ls=>{let lu=this['raw_info'][ls],lw=lu['version'];Array['isArray'](lw)&&(lw={'min':lw[0x0],'max':lw[0x1]}),this['versions'][ls]={'version':lw,'release':this['parseDate'](lu['release'])};});},'parseArgs'(){this['sdk']=ls||device['sdkInt'],this['parseRawInfo']();},'getResult'(){return this['parseArgs'](),this['versions'][this['sdk']]||{};}}['getResult']()),'ensureSdkInt'(ls){let lu=ls||0x18;if(device['sdkInt']\x20'+ls),ls;},this['put']=function(ls){return f['_'](lu+'\x20<-\x20'+ls),function(){try{switch(lw){case'Int':return tN['putInt']['apply'](tN,arguments);case'Long':return tN['putLong']['apply'](tN,arguments);case'Float':return tN['putFloat']['apply'](tN,arguments);case'String':return tN['putString']['apply'](tN,arguments);default:throw f['_']('Unknown\x20data_type:\x20'+lw,0x3),Error('Local\x20Exception');}}catch(u2){return tT('put',arguments);}}(tO,tN[lu],ls);},this['verify']=function(ls){return this['get']()===ls;},this['toggle']=function(ls,lu){if(!Array['isArray'](this['state_set']))throw Error('A\x20\x22state_set\x22\x20must\x20be\x20defined\x20for\x20StateManager.[[instance]].toggle');let lw=this['state_set'];'function'==typeof lu&&(lw=this['state_set']['filter'](lu));let tM=tP['call'](this,lw,function(ls){return void 0x0===ls||'+'===ls||'clockwise'===ls||Object['is'](ls,0x0);}(ls));return this['put'](tM),tM;},this['saveState']=function(){this['_last_state']=this['get']();},this['loadState']=function(ls){if(a(this['_last_state']))throw Error('State\x20must\x20be\x20saved\x20before\x20loading');this['put'](this['_last_state']),ls||this['clearState']();},this['loadStateIFN']=function(ls){a(this['_last_state'])||this['put'](this['_last_state']),ls||this['clearState']();},this['clearState']=function(){delete this['_last_state'];},this['storage']=storages['create']('devicex_state_manager'),this['saveIntoStorage']=function(){this['storage']['put'](this['key'],this['get']());},this['loadFromStorage']=function(ls){let lu=this['storage']['get'](this['key']);if(a(lu))throw Error('Storage\x20must\x20be\x20saved\x20before\x20loading');f['_'](this['key']+'\x20->\x20'+lu),this['put'](lu),ls||this['clearStorage']();},this['loadFromStorageIFN']=function(ls){let lu=this['storage']['get'](this['key']);a(lu)||this['put'](lu),ls||this['clearStorage']();},this['clearStorage']=function(){this['storage']['remove'](this['key']);};}lN['$bind'](),ls['exports']={'devicex':lN,'$$disp':lN['getDisplay']()};},949:(uf,ug,uh)=>{let {$$und,$$func,$$F,isObjectSpecies,isNullish,isXMLType}=uh(0x2c4),{colorsx}=uh(0xcb),{consolex}=uh(0x2d5),uj=android['view']['WindowManager'],uk=uj['LayoutParams'],ul=android['os']['Looper'],um=android['text']['util']['Linkify'],un=android['content']['res']['ColorStateList'],uo=android['graphics']['drawable']['ColorDrawable'],up=com['stardust']['autojs']['core']['ui']['dialog']['JsDialog'],uq=com['afollestad']['materialdialogs']['DialogAction'],ur=com['afollestad']['materialdialogs']['MaterialDialog'],us={'contents':uh(0x2f1),'isUiThread':()=>ul['myLooper']()===ul['getMainLooper'](),'rtDialogs':()=>us['isUiThread']()?runtime['dialogs']:runtime['dialogs']['nonUiDialogs']},ut={'colors':{'wrap'(uu,uv){if(uv&&this[uv])for(let uw in this[uv])if(this[uv]['hasOwnProperty'](uw)&&uu===uw){let uu=this[uv][uw];return Array['isArray'](uu)?uu[0x0]:uu;}return uu;},'title':{'default':'#212121','caution':'#880E0E','warn':'#880E4F','alert':['#C51162','#FFEFFE']},'content':{'default':'#757575','caution':'#AD1414','warn':'#AD1457','alert':['#283593','#E1F5FE']},'progress':{'download':['#FF6F00','#FFECB3','#C43E00'],'files':['#F9A825','#FFF59D','#C17900'],'backup':['#455A64','#ECEFF1','#1C313A'],'restore':['#AB47BC','#F3E5F5','#790E8B'],'indeterminate':['#00897B','#B2DFDB','#005B4F'],'finish':['#00C853','#DCEDC8','#009624'],'success':['#00C853','#DCEDC8','#009624'],'error':['#1565C0','#BBDEFB','#003C8F'],'failure':['#1565C0','#BBDEFB','#003C8F']},'button':{'default_aj_4':'#01A9F3','default':'#03A9F4','caution':'#FF3D00','warn':'#F57C00','attraction':'#7B1FA2','hint':'#0DA798','reset':'#A1887F','unavailable':'#BDBDBD','finish':'#009624','success':'#009624','error':'#003C8F','failure':'#003C8F'}},'text':{'btn':{'F':'完成','B':'返回','Q':'放弃','X':'退出','I':'终止','K':'确定','S':'确认','C':'关闭','D':'删除','N':'继续','M':'确认修改','R':'使用默认值','T':'了解更多'},'no_more_prompt':'不再提示','user_interrupted':'用户终止'},'pool':{'_data':{},'add'(uy,uz){return isNullish(uy)?uy:this['_data'][(uz||'')+ut['getName'](uy)]=uy;},'get'(uA){return this['_data'][uA];},'clear'(){let uB=Object['keys'](this['_data'])['filter'](uB=>{if(this['_data'][uB]['isShowing']())return!0x0;delete this['_data'][uB];})['map'](uB=>{let uE=this['_data'][uB];return uE['dismiss'](),uB['match'](/@[a-f0-9]{5,}$/)?uB:uB+ut['getName'](uE);});uB['length']&&consolex['_'](['清理扩展对话框样本池:']['concat'](uB),0x0,0x0,-0x2);}},'getName':uF=>'@'+java['lang']['Integer']['toHexString'](uF['hashCode']()),'build'(uG){let uI=Object['create'](runtime['dialogs']['newBuilder']());return uI['thread']=threads['currentThread'](),Object['keys'](uG)['forEach'](uJ=>vl['call'](this,uI,uJ,uG[uJ])),function(uG,uI){if(void 0x0!==uI['inputHint']||void 0x0!==uI['inputPrefill']){let uM=vd(uI['inputHint']),uN=vd(uI['inputPrefill']),uO=function(uI,uQ){return uG['emit']('input_change',uG['dialog'],uQ['toString']());};uG['input'](uM,uN,uO)['alwaysCallInputCallback']();}if(void 0x0!==uI['items']){let uR=uI['itemsSelectMode'];if(void 0x0===uR||'select'===uR)uG['itemsCallback'](function(uI,uR,uU,uV){uG['emit']('item_select',uU,uV['toString'](),uG['dialog']);});else if('single'===uR)uG['itemsCallbackSingleChoice'](void 0x0===uI['itemsSelectedIndex']?-0x1:uI['itemsSelectedIndex'],function(uI,uR,uZ,v0){return uG['emit']('single_choice',uZ,v0['toString'](),uG['dialog']),!0x0;});else{if('multi'!==uR)throw new Error('Unknown\x20itemsSelectMode\x20'+uR);uG['itemsCallbackMultiChoice'](void 0x0===uI['itemsSelectedIndex']?null:uI['itemsSelectedIndex'],function(uI,uR,v3){return uG['emit']('multi_choice',vf(uR,(uG,uI)=>parseInt(uG[uI])),vf(v3,(uG,uI)=>uG[uI]['toString']()),uG['dialog']),!0x0;});}}if(void 0x0!==uI['progress']){let v8=uI['progress'];uG['progress'](-0x1===v8['max'],v8['max'],!!v8['showMinMax']),uG['progressIndeterminateStyle'](!!v8['horizontal']);}if(void 0x0===uI['checkBoxPrompt']&&void 0x0===uI['checkBoxChecked']||uG['checkBoxPrompt'](vd(uI['checkBoxPrompt']),!!uI['checkBoxChecked'],function(uI,va){return uG['getDialog']()['emit']('check',va,uG['getDialog']());}),void 0x0!==uI['customView']){let vb=uI['customView'];(isXMLType(vb)||'string'==typeof vb)&&(vb=ui['run'](()=>ui['inflate']('customView')));let vc=uI['wrapInScrollView'];uG['customView'](vb,void 0x0===vc||vc);}function vd(uG){return uG||'';}function vf(uG,uI){let vd=[],vf=uG['length'];for(let vk=0x0;vkthis['text']['btn'][uG]||uG},'positiveColor':{'adapter':colorsx['toInt']},'neutral':{'method':'neutralText','adapter':uG=>this['text']['btn'][uG]||uG},'neutralColor':{'adapter':colorsx['toInt']},'negative':{'method':'negativeText','adapter':uG=>this['text']['btn'][uG]||uG},'negativeColor':{'adapter':colorsx['toInt']},'cancelable':null,'canceledOnTouchOutside':null,'autoDismiss':null};if(vp['hasOwnProperty'](uI)){let vt=vp[uI]||{};void 0x0===vt['method']&&(vt['method']=uI),vt['adapter']&&(vl=vt['adapter'](vl)),uG[vt['method']]['call'](uG,vl);}}},'builds'(vu,vv){if(isObjectSpecies(vu))return this['builds']('',vu);let [vw,vx,vy,vz,vA,vB,vC]='string'==typeof vu?[vu]:vu,vD={'autoDismiss':!vB,'canceledOnTouchOutside':!vB,'checkBoxPrompt':vC?'string'==typeof vC?vC:this['text']['no_more_prompt']:void 0x0},vE=vv||{};[['title',vw,this['colors']['title']],['content',vx,this['colors']['content']],['neutral',vy,this['colors']['button'],this['text']['btn']],['negative',vz,this['colors']['button'],this['text']['btn']],['positive',vA,this['colors']['button'],this['text']['btn']]]['map'](vu=>{let [vv,vw]=vu;return $$und(vw)&&!$$und(vE[vv])&&vu['splice'](0x1,0x1,vE[vv]),vu;})['forEach'](vu=>vS['apply'](this,vu)),Object['assign'](vD,vE),['title','content']['forEach'](vu=>{vu in vD&&(vD[vu]=String(vD[vu]));});let vK=this['build'](vD);if(vE['linkify']&&this['linkify'](vK),void 0x0!==vE['keycode_back']){let vu=vE['keycode_back'];('disabled'===vu||$$func(vu)||$$F(vu))&&this['disableBack'](vK,vu);}return ui['post'](()=>{let vu=vK['getWindow'](),vv=vE['dim_amount'];if('number'==typeof vv){for(;vv>0x1;)vv/=0x64;vu['setDimAmount'](vv);}let vw=vE['background'];'string'==typeof vw?vw['match'](/^#/)?vu['setBackgroundDrawable'](new uo(colorsx['toInt'](vw))):vu['setBackgroundDrawableResource'](android['R']['color'][vw]):'number'==typeof vw&&vu['setBackgroundDrawable'](new uo(vw));let vx=vE['animation'];'string'==typeof vx&&(vx=vx['split']('_')['map'](vu=>vu['toTitleCase']())['join'](''),'Default'===vx?vu['setWindowAnimations'](android['R']['style']['Animation']):vu['setWindowAnimations'](android['R']['style']['Animation_'+vx]));let vy=vE['is_keep_screen_on'];void 0x0!==vy&&vy&&vu['addFlags'](uk['FLAG_KEEP_SCREEN_ON']);}),vK;function vS(vu,vv,vw,vx){if(!vE[vu]||Array['isArray'](vE[vu])){let [vy,vz]=Array['isArray'](vv)?vv:[vv];vy&&('content'!==vu||vx||(vx=us['contents']),vE[vu]=vx&&vx[vy]||vy);let vA=vu+'Color',vB=vE[vA]||vw[vz]||vz||vw['default'];vE[vA]=colorsx['toInt'](vB);}}},'rawInput':(w1,w2,w3)=>us['isUiThread']()&&!w3?new Promise(w3=>{us['rtDialogs']()['rawInput'](w1,w2||'',function(){w3['apply'](null,[]['slice']['call'](arguments));});}):us['rtDialogs']()['rawInput'](w1,w2||'',w3||null),'input'(w5,w6,w7){if(w7)return this['rawInput'](w5,w6||'',w8=>w7(eval(w8)));if(us['isUiThread']())return new Promise(w9=>{us['rtDialogs']()['rawInput'](w5,w6||'',wa=>w9(eval(wa)));});let wb=this['rawInput'](w5,w6||'',w7||null);return'string'==typeof wb?eval(wb):void 0x0;},'alert':(wc,wd,we)=>us['isUiThread']()&&!we?new Promise(we=>{us['rtDialogs']()['alert'](wc,wd||'',function(){we['apply'](null,[]['slice']['call'](arguments));});}):us['rtDialogs']()['alert'](wc,wd||'',we||null),'alertTitle'(wg,wh,wi){let wj=global['_$_alert_title_info']=global['_$_alert_title_info']||{};wj[wg]=wj[wg]||{},wj['message_showing']?++wj['message_showing']:wj['message_showing']=0x1;let wk=wj[wg]['ori_text']||'',wl=wj[wg]['ori_text_color']||'',wm=wj[wg]['ori_bg_color']||'',wn=wg['getTitleView']();function wo(wg,wh,wi){let wj=wg['getTitleView'](),[wk,wl]=wi;ui['run'](()=>{wj['setText'](wh),wj['setTextColor'](wk),wj['setBackgroundColor'](wl);});}wk||(wj[wg]['ori_text']=wk=wn['getText']()),wl||(wj[wg]['ori_text_color']=wl=wn['getTextColors']()['getColorForState'](util['java']['array']('int',0x0),colors['parseColor']('#de000000'))),wm||(wj[wg]['ori_bg_color']=-0x1),wo(wg,wh,this['colors']['title']['alert']['map'](colorsx['toInt'])),0x0===wi||setTimeout(function(){--wj['message_showing']||wo(wg,wk,[wl,wm]);},wi||0xbb8);},'alertContent'(wv,ww,wx){let wy=wv['getContentView'](),wz=wy['getText']()['toString'](),wA='append'===wx||!0x0===wx,[wB,wC]=this['colors']['content']['alert']['map'](wv=>colorsx['toInt'](wv));ui['post'](()=>{wy['setText']((wA?wz+'\x0a\x0a':'')+ww),wy['setTextColor'](wB),wy['setBackgroundColor'](wC);});},'prompt'(wE,wF,wG){return this['rawInput'](wE,wF,wG);},'confirm':(wH,wI,wJ)=>us['isUiThread']()&&!wJ?new Promise(wJ=>{us['rtDialogs']()['confirm'](wH,wI||'',function(){wJ['apply'](null,[]['slice']['call'](arguments));});}):us['rtDialogs']()['confirm'](wH,wI||'',wJ||null),'select'(wL,wM,wN){return wM instanceof Array?us['isUiThread']()&&!wN?new Promise(wN=>{us['rtDialogs']()['select'](wL,wM,function(){wN['apply'](null,[]['slice']['call'](arguments));});}):us['rtDialogs']()['select'](wL,wM,wN||null):us['rtDialogs']()['select'](wL,[]['slice']['call'](arguments,0x1),null);},'singleChoice':(wP,wQ,wR,wS)=>us['isUiThread']()&&!wS?new Promise(wS=>{us['rtDialogs']()['singleChoice'](wP,wR||0x0,wQ,function(){wS['apply'](null,[]['slice']['call'](arguments));});}):us['rtDialogs']()['singleChoice'](wP,wR||0x0,wQ,wS||null),'multiChoice'(wU,wV,wW,wX){let wY=wU=>{let wV=[];for(let wW=0x0,wX=wU['length'];wWwX(wY(wU)))):us['isUiThread']()?new Promise(wX=>{us['rtDialogs']()['multiChoice'](wU,wW||[],wV,wU=>wX(wY(wU)));}):wY(us['rtDialogs']()['multiChoice'](wU,wW||[],wV,null));},'dismiss'(x6){(Array['isArray'](x6)?x6:[]['slice']['call'](arguments))['forEach'](x6=>{'object'==typeof x6&&x6['dismiss']&&x6['dismiss']();});},'clearPool'(){this['pool']['clear']();},'disableBack':(x8,x9)=>(x8['setOnKeyListener']({'onKey':(xa,xb,xc)=>xc['getAction']()===KeyEvent['ACTION_UP']&&('function'==typeof x9&&x9(x8),xb===KeyEvent['KEYCODE_BACK'])}),x8),'getTitleText':xd=>xd?xd['getTitleView']()['getText']()['toString']():'','setTitleText'(xe,xf){ui['run'](()=>{xe&&xe['getTitleView']()['setText'](xf?xf['toString']():'');});},'setTitleTextColor'(xg,xh){ui['run'](()=>{xg&&xg['getTitleView']()['setTextColor'](colorsx['toInt'](this['colors']['wrap'](xh,'title')));});},'setTitleBackgroundColor'(xi,xj){ui['run'](()=>{xi&&xi['getTitleView']()['setBackgroundColor'](colorsx['toInt'](this['colors']['wrap'](xj,'title')));});},'getContentText':xk=>xk?xk['getContentView']()['getText']()['toString']():null,'setContentText'(xl,xm){ui['run'](()=>{xl&&xl['getContentView']()['setText'](xm?xm['toString']():'');});},'appendContentText'(xn,xo){ui['run'](()=>{xn&&xn['getContentView']()['setText'](this['getContentText'](xn)+(xo?xo['toString']():''));});},'setContentTextColor'(xp,xq){ui['run'](()=>{xp&&xp['getContentView']()['setTextColor'](colorsx['toInt'](this['colors']['wrap'](xq,'content')));});},'setContentBackgroundColor'(xr,xs){ui['run'](()=>{xr&&xr['getContentView']()['setBackgroundColor'](colorsx['toInt'](this['colors']['wrap'](xs,'content')));});},'getInputText':xt=>xt?xt['getInputEditText']()['getText']()['toString']():'','setInputText'(xu,xv){let xw='string'==typeof xv?xv:void 0x0!==xv?xv['toString']():'';ui['run'](()=>xu&&xu['getInputEditText']()['setText'](xw));},'setInputTextColor'(xx,xy){ui['run'](()=>{xx&&xx['getInputEditText']()['setTextColor'](colorsx['toInt'](xy));});},'setInputBackgroundColor'(xz,xA){ui['run'](()=>{xz&&xz['getInputEditText']()['setBackgroundColor'](colorsx['toInt'](xA));});},'linkify'(xB,xC){if(xB){let xD=xB['getContentView']();ui['run'](()=>{let xB=xD['getText']()['toString']();xD['setAutoLinkMask'](um[xC||'ALL']),xD['setText'](xB);});}},'getDialogAction'(xF){try{switch(xF['toLowerCase']()){case'positive':return uq['valueOf']('POSITIVE');case'negative':return uq['valueOf']('NEGATIVE');case'neutral':return uq['valueOf']('NEUTRAL');}}catch(xG){return null;}throw TypeError('unknown\x20action\x20of\x20dialogsx.getDialogAction');},'getActionButton'(xH,xI){let xJ=xI['toLowerCase']();if(xH instanceof ur){let xI=this['getDialogAction'](xJ);if(null!==xI)return xH['getActionButton'](xI)['getText']()['toString']();if('object'==typeof xH[xJ+'Button'])return xH[xJ+'Button']['getText']();}return xH instanceof up?xH['getActionButton'](xJ):'';},'setActionButton'(xL,xM,xN,xO){let xP=function(xM){let xP=xM['toLowerCase']();xL instanceof ur?ui['run'](()=>{let xM=this['getDialogAction'](xP);null!==xM?xL['setActionButton'](xM,xN):'object'==typeof xL[xP+'Button']&&xL[xP+'Button']['setText'](xN);}):ui['run'](()=>xL['setActionButton'](xP,xN)),xO&&this['setActionButtonColor'](xL,xP,xO);}['bind'](this);Array['isArray'](xM)?xM['forEach'](xP):xP(xM);},'setActionButtonColor'(xT,xU,xV){let xW=function(xU){let xW=xU['toLowerCase'](),xZ=colorsx['toInt'](this['colors']['wrap'](xV,'button')),y0=this['getDialogAction'](xW);ui['run'](()=>null!==y0?xT['getActionButton'](y0)['setTextColor'](xZ):xT instanceof ur&&'object'==typeof xT[xW+'Button']?xT[xW+'Button']['setTextColor'](xZ):void 0x0);}['bind'](this);Array['isArray'](xU)?xU['forEach'](xW):xW(xU);},'buildCountdown'(y1,y2){let y3=Object['assign']({'keycode_back':()=>yd['pause'](0x64)},y2),y4=y3['onNeutral']||(y1=>y1),y5=y3['onNegative']||(y1=>y1),y6=y3['onPositive']||(y1=>y1),y7=y3['onTimeout'];if('function'!=typeof y7&&'string'!=typeof y7)throw Error('onTimeout\x20for\x20dialogsx.buildCountdown()\x20must\x20be\x20specified');let yb=0x0,yc=y3['timeout']||0x5;yc>0x64&&(yc=Math['round'](yc/0x3e8));let yd={'neutral'(){this['pause'](0x12c),y4(ye);},'negative'(){this['pause'](0x12c),y5(ye);},'positive'(){yb=0x1,this['pause'](0x64),y6(ye);},'pause'(y1){us['interrupt'](),setTimeout(()=>{if('function'==typeof y3['onPause'])return y3['onPause'](ye);if('object'==typeof y3['onPause']){let y1=y3['onPause'];'function'==typeof y1['action']&&y1['action'](ye),[{'key':'title','get':y1=>ut['getTitleText'](y1),'set'(y1,y2,y3){ut['setTitleText'](y1,y3);}},{'key':'content','get':y1=>ut['getContentText'](y1),'set'(y1,y2,y3){ut['setContentText'](y1,y3);}},{'key':'neutral','get':(y1,y2)=>ut['getActionButton'](y1,y2),'set'(y1,y2,y3){ut['setActionButton'](y1,y2,y3);}},{'key':'negative','get':(y1,y2)=>ut['getActionButton'](y1,y2),'set'(y1,y2,y3){ut['setActionButton'](y1,y2,y3);}},{'key':'positive','get':(y1,y2)=>ut['getActionButton'](y1,y2),'set'(y1,y2,y3){ut['setActionButton'](y1,y2,y3);}}]['forEach'](y2=>{let y4=y2['key'];if(y1[y4])if(Array['isArray'](y1[y4])){let [y3,y5]=y1[y4];y2['set'](ye,y4,y2['get'](ye,y4)['replace'](y3,y5));}else y2['set'](ye,y4,y1[y4]);else y3[y4]&&y2['set'](ye,y4,y3[y4]);});}},y1||0x320);},'block'(y1){let y2=y1||{},y3=y2['onStart']||(y1=>y1),y4=y2['onTimeout']||(y1=>y1),y5=y2['onUnblock']||(y1=>y1),y6=Date['now'](),y7=y2['timeout']||0x1;for(y7<0x64&&(y7*=0xea60),y3(ye);!yb;)Date['now']()-y6>y7&&(this['pause'](0x64),y4(ye)),sleep(0x78);y5(ye);}},ye=Object['create'](ut['builds'](y1,y3)['on']('neutral',()=>yd['neutral']())['on']('negative',()=>yd['negative']())['on']('positive',()=>yd['positive']())),yf={'act':()=>(ye['isShowing']()||ye['show'](),yg),'block':y1=>(yd['block'](y1),yg)},yg=Object['assign'](ye,yf),us=threads['start'](function(){let y1=ut['getContentText'](ye),y2=/%timeout%/,y4=y1['match'](y2)?function(y3){ye['setContent'](y1['replace'](y2,y3['toString']()));}:y1=>y1,y5=y3['timeout_button'],y6=y5&&ye['getActionButton'](y5),yb=y5?function(y1){ye['setActionButton'](y5,y6+'\x20\x20[\x20'+y1+'\x20]');}:y1=>y1;for(;y4(yc),yb(yc),!(yc<=0x0);)yc-=0x1,sleep(0x3e8);let yf=y7;'function'==typeof yf&&(yf=y7(ye)),yd[yf]['call'](yd);});return yg;},'buildFlow'(z8){let z9=this,za=Object['create'](z9['builds']([z8['title']||'',z8['steps']['map']((z8,z9)=>'\u3000\x20'+ ++z9+'.\x20'+z8['desc'])['join']('\x0a'),0x0,0x0,'I',0x1],{'progress':{'max':0x64,'showMinMax':!!z8['show_min_max']}})),zb={'act'(){let zb=new Promise(z9=>{za['on']('positive',()=>{global['_$_dialog_flow_interrupted']=!0x0;}),'function'==typeof z8['onStart']&&z8['onStart'](z8['initial_value'],za),z9(z8['initial_value']);});return z8['steps']['forEach']((z8,zc)=>{zb=zb['then'](zb=>{if(global['_$_dialog_flow_interrupted'])throw Error(ut['text']['user_interrupted']);let zk=z9=>(za['setProgress'](0x64),zK(zc+0x1),z8['onSuccess']&&z8['onSuccess'](zb),z9);za['setProgress'](0x0),function(z8){let zb=z8['toString'](),zc=z9['getContentText'](za);z9['setContentText'](za,zc['replace'](/^(. )(\d)(?=\.)/gm,(z8,z9,za)=>(za===zb?'▶\x20':z9)+za));}(zc+0x1);let zs=z8['action'](zb,za);return zs instanceof Promise?(zs=zs['then'](zk),zs):zk(zs);},z8['onFailure']);}),zb=zb['then'](zb=>{if(global['_$_dialog_flow_interrupted'])throw Error(ut['text']['user_interrupted']);z9['setProgressColorTheme'](za,'finish'),zK('all'),za['removeAllListeners']('positive'),za['setActionButton']('positive',ut['text']['btn']['F']),za['on']('positive',z8=>z8['dismiss']());let zc=z8['success_title'];zc&&z9['setTitleText'](za,zc);let zw=z8['success_content'];zw&&z9['appendContentText'](za,'\x0a\x0a'+zw),delete global['_$_dialog_flow_interrupted'],'function'==typeof z8['onSuccess']&&z8['onSuccess'](zb,za);}),zb['catch'](z9=>{delete global['_$_dialog_flow_interrupted'],'function'==typeof z8['onFailure']&&z8['onFailure']({'message':z9,'btn_text':ut['text']['btn'][z8['on_interrupt_btn_text']||'B'],'onPositive'(){ut['clearPool'](),exit();}},za);}),za['isShowing']()||za['show'](),zc;},'setStepDesc'(z9,zb,zA){if(z9<0x1)throw Error('step_num\x20is\x20less\x20than\x201');if(z9>=z8['steps']['length'])throw Error('step_num\x20must\x20be\x20less\x20than\x20steps\x20length');let zB=z9['toString'](),zC=za['getContentView'](),zD=zC['getText']()['toString'](),zE=z8['steps'][zB-0x1]['desc'];if(zD['match'](zE)){let z8=(zA?zE:'')+(zb||'');zC['setText'](zD['replace'](zE,z8));}return zc;},'setProgressData'(z8){if('object'==typeof z8){let z9=z8['processed']/z8['total']*0x64||0x0;za['setProgress'](Math['min'](Math['max'](0x0,z9),0x64));}return zc;},'setFailureData':z8=>(za['setActionButton']('positive',z8['btn_text']||ut['text']['btn']['B']),za['removeAllListeners']('positive'),za['on']('positive',z8['onPositive']||(z8=>z8['dismiss']())),ut['alertContent'](za,z8['message'],'append'),zc)},zc=Object['assign'](za,zb);return zc;function zK(z8){let zb='all'!==z8&&z8?z8:0x1/0x0,zc=z9['getContentText'](za);z9['setContentText'](za,zc['replace'](/^(. )(\d)(?=\.)/gm,(z8,z9,za)=>(za<=zb?'✔\x20':z9)+za));}},'buildProgress'(zR){let zS=Object['create'](ut['builds']([zR['title']||'',zR['content']||zR['desc']||'',0x0,0x0,'I',0x1],{'progress':{'max':0x64,'showMinMax':!!zR['show_min_max']}})),zT={'act':()=>(Promise['resolve'](zR['initial_value'])['then'](zT=>('function'==typeof zR['onStart']&&zR['onStart'](zR['initial_value'],zS),zT))['then'](zT=>{if(zS['on']('positive',()=>{global['_$_dialog_flow_interrupted']=!0x0;}),global['_$_dialog_flow_interrupted'])throw Error(ut['text']['user_interrupted']);return zR['action'](zT,zS);})['then'](zT=>{if(global['_$_dialog_flow_interrupted'])throw Error(ut['text']['user_interrupted']);ut['setProgressColorTheme'](zS,'finish'),zS['setProgress'](0x64),zS['removeAllListeners']('positive'),zS['setActionButton']('positive',ut['text']['btn']['F']),zS['on']('positive',zR=>zR['dismiss']());let zU=zR['success_title'];zU&&ut['setTitleText'](zS,zU);let A0=zR['success_content'];A0&&ut['appendContentText'](zS,'\x0a\x0a'+A0),delete global['_$_dialog_flow_interrupted'],'function'==typeof zR['onSuccess']&&zR['onSuccess'](zT,zS);})['catch'](zT=>{ut['setProgressColorTheme'](zS,'error'),zS['removeAllListeners']('positive');let zU=ut['text']['btn'][zR['on_interrupt_btn_text']||'B'];zS['setActionButton']('positive',zU),zS['on']('positive',zR=>zR['dismiss']()),ut['alertContent'](zS,zT,'append'),delete global['_$_dialog_flow_interrupted'],'function'==typeof zR['onFailure']&&zR['onFailure'](zT,zS);}),zS['isShowing']()||zS['show'](),zU),'setStepDesc'(zT,A5){let A6=zS['getContentView'](),A7=A6['getText']()['toString'](),A8=zR['content']||'';if(A7['match'](A8)){let zR=(A5?A8:'')+(zT||'');A6['setText'](A7['replace'](A8,zR));}return zU;},'setProgressData':zR=>(zS['setProgress'](zR['processed']/zR['total']*0x64),zU)},zU=Object['assign'](zS,zT);return zU;},'setProgress'(Ab,Ac,Ad){let Ae='object'==typeof Ac?Ac['processed']/Ac['total']*0x64:Ac;ui['run'](()=>Ab['getProgressBar']()['setProgress'](Ae,!!Ad));},'setProgressTintList'(Af,Ag){let Ah=colorsx['toInt'](this['colors']['wrap'](Ag,'progress')),Ai=un['valueOf'](Ah);Af['getProgressBar']()['setProgressTintList'](Ai);},'setProgressTintLists'(Aj,Ak){let Al=Ak;if(!Array['isArray'](Al))if('string'==typeof Al)Al=this['colors']['progress'][Ak]||[Al];else{if('number'!=typeof Al)throw Error('Unknown\x20colors\x20type\x20for\x20dialogsx.setProgressTintLists()');Al=[Al];}let [Am,An]=Al;Am&&this['setProgressTintList'](Aj,Am),An&&this['setProgressBackgroundTintList'](Aj,An);},'setProgressColorTheme'(Ao,Ap){let Aq=Ap;if(!Array['isArray'](Aq))if('string'==typeof Aq)Aq=this['colors']['progress'][Ap]||[Aq];else{if('number'!=typeof Aq)throw Error('Unknown\x20colors\x20type\x20for\x20dialogsx.setProgressColorTheme()');Aq=[Aq];}let [Ar,As,At]=Aq;Ar&&this['setProgressTintList'](Ao,Ar),As&&this['setProgressBackgroundTintList'](Ao,As),At&&this['setActionButtonColor'](Ao,'positive',At);},'setProgressBackgroundTintList'(Au,Av){let Aw=colorsx['toInt'](Av),Ax=un['valueOf'](Aw);Au['getProgressBar']()['setProgressBackgroundTintList'](Ax);},'setProgressNumberFormat'(Ay,Az,AA){ui['run'](()=>Ay['setProgressNumberFormat'](java['lang']['String']['format'](Az,AA)));},'clearProgressNumberFormat'(AB){ui['run'](()=>AB['setProgressNumberFormat'](''));},'performClick'(AC,AD){let AE=String(AD)['toLowerCase'](),AF=this['getDialogAction'](AE);null!==AF&&AC['getActionButton'](AF)['performClick']();},'alerts'(AG,AH){let AI=AH||{},AJ=AG||'',AK=AI['text_color']||'#E5FFFF',AL=AI['text_font_family']||'sans-serif-condensed',AM=AI['text_gravity']||'center',AN=AI['text_line_spacing']||'5cx',AO=AI['text_size']||0x12,AP=AI['button_width']||0x64,AQ=AI['button_text']||'OK',AR=AI['button_text_color']||'#E5FFFF',AS=AI['button_text_size']||0xf,us=AI['button_bg_tint_color']||'#00251A',AU=AI['button_font_family']||'sans-serif',AV=AI['button_layout_gravity']||'center',AW=AI['dialog_bg_color']||colorsx['rgba']('#005B4F91'),AX=AI['dialog_dim_amount']||0x5a,AY=ui['inflate']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20');AY['text']['attr']('text',AJ),AY['text']['attr']('text_color',AK),AY['text']['attr']('text_size',AO),AY['text']['attr']('font_family',AL),AY['text']['attr']('gravity',AM),AY['text']['attr']('line_spacing',AN),AY['btn']['attr']('width',AP),AY['btn']['attr']('text',AQ),AY['btn']['attr']('text_size',AS),AY['btn']['attr']('text_color',AR),AY['btn']['attr']('layout_gravity',AV),AY['btn']['attr']('background_tint',us),AY['btn']['attr']('font_family',AU),AY['btn']['on']('click',()=>AZ['dismiss']());let AZ=this['builds']({'customView':AY,'canceledOnTouchOutside':!0x1,'background':AW,'animation':'input_method','dim_amount':AX,'keycode_back':AG=>AG['dismiss']()})['show']();}};uf['exports']={'dialogsx':ut};},758:(B1,B2,B3)=>{B3(0x2c4);let {consolex:i}=B3(0x2d5),B4=com['stardust']['autojs']['project']['ScriptConfig'],B5=com['stardust']['autojs']['execution']['ExecutionConfig'],B6={get 'my_engine'(){return engines['myEngine']();},get 'my_engine_id'(){return this['my_engine']['getId']();},get 'my_engine_exec_argv'(){let B1=this['my_engine']['getExecArgv'](),B2={};for(let B3 in B1)if(B1['hasOwnProperty'](B3)){let Ba=B1[B3];Ba instanceof java['lang']['Boolean']?B2[B3]=Ba['booleanValue']():Ba instanceof java['lang']['Double']?B2[B3]=Ba['doubleValue']():B2[B3]=Ba;}return B2;},get 'my_engine_src_name'(){return'function'==typeof this['my_engine']['source']['getName']?this['my_engine']['source']['getName']():this['my_engine']['source']['toString']()['replace'](/(.+?)(.(js|auto))?$/,'$1');},get 'all_engines'(){return engines['all']();},get 'cwd'(){return this['my_engine']['cwd']();},get 'cwp'(){return this['isLocal']()?this['my_engine']['source']['toString']():'';},'isLocal'(){return!this['isRemote']();},'isRemote'(){return/^\[remote]/['test'](this['my_engine_src_name']);},'ensureLocal'(){if(!this['isLocal']())throw Error('Script\x20must\x20be\x20running\x20locally\x20rather\x20than\x20remotely');},'execScript':(B1,B2,B3)=>runtime['engines']['execScript'](B1,B2,Bv(B3)),'execScriptFile':(B1,B2)=>{try{return runtime['engines']['execScriptFile'](B1,Bv(B2));}catch(Bg){return engines['execScriptFile'](B1,B2);}},'execAutoFile':(B1,B2)=>runtime['engines']['execAutoFile'](B1,Bv(B2)),'setExecutePath'(B1){if('string'!=typeof B1)throw TypeError('path\x20of\x20enginesx.setExecutePath()\x20must\x20be\x20string\x20type');if(!files['isDir'](B1))throw Error('path\x20of\x20enginesx.setExecutePath()\x20must\x20be\x20a\x20directory');this['my_engine']['setTag']('execute_path',B1);},'restart'(B1){let B2=B1||{},B3=i['debug']['fuel'](B2),B4=this['my_engine_exec_argv'],B5=void 0x0!==B4['max_restart_e_times']?Number(B4['max_restart_e_times']):void 0x0!==B2['max_restart_e_times']?Number(B2['max_restart_e_times']):0x1;if(!B5)return i['$']('引擎重启次数已超限',0x3);let B6=Number(B4['max_restart_e_times_bak'])||B5;if(B3('重启当前引擎任务'),B3('当前次数:\x20'+(B6-B5+0x1),0x0,0x1),B3('最大次数:\x20'+B6,0x0,0x1),this['isRemote']())return i['$']('远程任务不支持重启引擎',0x8,0x4,0x0,0x1);let Bq=B2['new_file']||this['my_engine_src_name'],Br=files['path'](Bq+(Bq['match'](/\.js$/)?'':'.js'));B3('运行新引擎任务:\x0a'+Br),this['execScriptFile'](Br,{'arguments':Object['assign']({},B2,{'max_restart_e_times':B5-0x1,'max_restart_e_times_bak':B6,'is_instant_running':B2['is_instant_running']})}),B3('强制停止旧引擎任务');let Bs=this['my_engine_id'];return this['all_engines']['filter'](B1=>B1['getId']()===Bs)['forEach'](B1=>B1['forceStop']()),!0x0;}};function Bv(B1){let B2=new B5(),B3=B1||{};if(B2['workingDirectory']=B3['path']||files['cwd'](),B2['delay']=B3['delay']||0x0,B2['interval']=B3['interval']||0x0,B2['loopTimes']=void 0x0===B3['loopTimes']?0x1:B3['loopTimes'],Object['keys'](B3['arguments']||{})['forEach'](B1=>B2['setArgument'](B1,B3['arguments'][B1])),'object'==typeof B3['scriptConfig']){let B1=B3['scriptConfig']['useFeatures']||[],BB=void 0x0!==B3['scriptConfig']['uiMode']&&B3['scriptConfig']['uiMode'];B2['scriptConfig']=new B4(B1,BB);}return B2;}B1['exports']={'enginesx':B6};},763:(BC,BD,BE)=>{let {threadsx:i}=BE(0xef),{enginesx:n}=BE(0x2f6),BF=java['io']['File'],BG=java['io']['FileInputStream'],BH=java['io']['FileOutputStream'],BI=java['io']['BufferedInputStream'],BJ=java['io']['BufferedOutputStream'],BK=java['util']['zip']['CheckedOutputStream'],BL=java['util']['zip']['ZipOutputStream'],BM=java['util']['zip']['ZipEntry'],BN=java['util']['zip']['ZipFile'],BO=java['util']['zip']['CRC32'],BP=org['autojs']['autojs']['Pref'],BQ={'copy'(BC,BD,BE){let BV=files['path'](BC),BW=files['path'](BD),BI=BE||{},BJ=BI['onCopyStart']||BI['onStart']||(BC=>BC),BK=BI['onCopyProgress']||BI['onProgress']||(BC=>BC),BL=BI['onCopySuccess']||BI['onSuccess']||(BC=>BC),BM=BI['onCopyFailure']||BI['onFailure']||console['error'];try{return function(BC,BD){BJ(),files['createWithDirs'](BD);let BE=new BF(BD);try{return function(BC,BD,BE){let BW=util['java']['array']('byte',0x2000),BG=new BF(BV)['length'](),BH=0x0;try{for(;BC['available']()>0x0;){let BE=BC['read'](BW);BE>0x0&&(BD['write'](BW,0x0,BE),BK({'processed':BH+=BE,'total':BG}));}BE&&(BC['close'](),BD['close']()),BL();}catch(Cf){BM(Cf);}}(BC,new BH(BE),!0x0),!0x0;}catch(Cg){return BM(Cg),!0x1;}}(new BG(BV),BW);}catch(Ch){return BM(Ch),!0x1;}}},BR={'sep':BF['separator'],'json':{'replacer':(BC,BD)=>'number'!=typeof BD||!isNaN(BD)&&isFinite(BD)?BD:'\ufeff'+BD['toString']()+'\ufeff','reviver'(BC,BD){let BE=/^\ufeff(.+)\ufeff$/;return'string'==typeof BD&&BD['match'](BE)?Number(BD['replace'](BE,'$1')):BD;}},'.local'(BC){let BD=files['join'](files['getSdcardPath'](),'.local');files['isFile'](BD)&&files['remove'](BD);let BE=files['join']['apply'](files,[BD]['concat']([]['slice']['call'](arguments)));return files['createWithDirs'](BE['slice'](0x0,BE['lastIndexOf'](this['sep'])+0x1)),BE;},'run'(BC,BD){BC['match'](/^(launcher|settings)\$$/)&&(BC='ant-forest-'+BC['slice'](0x0,-0x1)+'.js');let BE=files['path'](BC['match'](/\.js$/)?BC:BC+'.js');return'object'==typeof BD?(BD['monitor']&&(i['monitor'](BD['monitor']),delete BD['monitor']),n['execScriptFile'](BE,{'arguments':BD})):n['execScriptFile'](BE,null);},'zip'(BC,BD,BE,Cw){let Cx,BJ,BN,BP,BQ,CC=function(){global['_$_dialog_flow_interrupted']=!0x1,[BQ,BP,BN,BJ,Cx]['forEach'](BC=>{try{BC&&BC['close']();}catch(CI){}});},CD=BE||{},CE=Cw||{},CF=BC=>{let BD=CD['onZipFailure']||CD['onFailure'];return'function'==typeof BD?BD(BC):toastLog(BC),!0x1;},CG=CD['onZipStart']||CD['onStart'];'function'==typeof CG&&CG();let CL=files['path'](BC);if(!files['exists'](CL))throw Error('无效的压缩源');let CM=new BF(CL);CL=CM['getAbsolutePath']();let CN=BD?files['path'](BD):CL+'.zip',CO=new BF(CN);CN=CO['getAbsolutePath'](),'zip'!==files['getExtension'](CN)&&(CO=new BF(CN+='.zip')),files['exists'](CN)&&files['remove'](CN);let CP=0x0,CQ=this['getDirSize'](CL);try{BN=new BH(CO),BP=new BK(BN,new BO()),BQ=new BL(BP),function(BC){return CE['is_exclude_root_folder']&&BC['isDirectory']()?BC['listFiles']()['filter'](BC=>BC['getAbsolutePath']()!==CO['getAbsolutePath']())['forEach'](BC=>BD(BC)):BD(BC);function BD(BC,BE){let Cw=(BE?BE+BR['sep']:'')+BC['getName']();if(BC['isFile']()){let BD,BE=0x400,BF=util['java']['array']('byte',BE);for(BQ['putNextEntry'](new BM(Cw)),Cx=new BG(BC),BJ=new BI(Cx);(BD=BJ['read'](BF,0x0,BE))>-0x1;){if(global['_$_dialog_flow_interrupted'])return CC(),CF('用户终止');BQ['write'](BF,0x0,BD);}BQ['closeEntry'](),BJ['close'](),Cx['close']();let BH=CD['onZipProgress']||CD['onProgress'];'function'==typeof BH&&BH({'processed':CP+=BC['length'](),'total':CQ});}else BC['listFiles']()['filter'](BC=>BC['getAbsolutePath']()!==CO['getAbsolutePath']())['forEach'](BC=>BD(BC,Cw));}}(CM),CC();let BC=CD['onZipSuccess']||CD['onSuccess'];return'function'==typeof BC&&BC({'zipped_path':CN}),CE['is_delete_source']&&this['removeWithDirs'](CL,{'isAsync':!0x0}),!0x0;}catch(D5){return CF('压缩失败:\x0a'+D5);}},'unzip'(BC,BD,BE,D9){let Da,BG,BK,BL=function(){global['_$_dialog_flow_interrupted']=!0x1,[BG,Da,BK]['forEach'](BC=>{try{BC&&BC['close']();}catch(Di){}});},BM=BE||{},BO=BC=>{let BD=BM['onUnzipFailure']||BM['onFailure'];return'function'==typeof BD?BD(BC):toastLog(BC),!0x1;},BP=BM['onUnzipStart']||BM['onStart'];'function'==typeof BP&&BP();let BQ=D9||{},Dm=files['path'](BC);if(files['exists'](Dm)||(Dm+='.zip'),!files['exists'](Dm))throw Error('解压缩源不存在');let Dn=new BF(Dm),Do=Dn['length'](),Dp=Dn['getName'](),Dq=Dp['slice'](0x0,Dp['lastIndexOf']('.')),Dr=files['path'](BD);Dr&&files['exists'](Dr)||(Dr=Dm['slice'](0x0,Dm['lastIndexOf'](this['sep']))),BQ['to_archive_name_folder']&&(Dr=files['join'](Dr,Dq)),files['createWithDirs'](Dr+this['sep']);try{let BC=0x0,BD=0x400,BE=util['java']['array']('byte',BD),D9=new BN(Dn),BP=D9['entries']();for(;BP['hasMoreElements']();){let BN=BP['nextElement'](),BQ=BN['getCompressedSize'](),Dm=BN['getName'](),Dn=files['join'](Dr,Dm);files['createWithDirs'](Dn+(BN['isDirectory']()?BR['sep']:''));let Dp=new BF(Dn);if(Dp['isDirectory']())continue;let Dq=-0x1;for(Da=new BH(Dp),BG=new BJ(Da),BK=new BI(D9['getInputStream'](BN));(Dq=BK['read'](BE,0x0,BD))>-0x1;){if(global['_$_dialog_flow_interrupted'])return BL(),BO('用户终止');Da['write'](BE,0x0,Dq);}let DD=BM['onUnzipProgress']||BM['onProgress'];'function'==typeof DD&&DD({'processed':BC+=BQ,'total':Do});}BL();let Dp=BM['onUnzipSuccess']||BM['onSuccess'];return'function'==typeof Dp&&Dp({'unzipped_path':Dr}),BQ['is_delete_source']&&this['removeWithDirs'](Dm,{'isAsync':!0x0}),!0x0;}catch(DF){return BO('解压失败:\x0a'+DF);}},'isValidZip'(BC){let BD=files['path'](BC);if(!BD||!files['exists'](BD))return!0x1;let BE=new BF(BD);if('zip'!==files['getExtension'](BE['getName']()))return!0x1;let DJ=null;try{return DJ=new BN(BE),!0x0;}catch(DK){return!0x1;}finally{try{null!==DJ&&(DJ['close'](),DJ=null);}catch(DL){}}},'copy'(BC,BD,BE,DP){let BG=DP||{},BH=BG['onCopyStart']||BG['onStart']||(BC=>BC),BI=BG['onCopyProgress']||BG['onProgress']||(BC=>BC),BJ=BG['onCopySuccess']||BG['onSuccess']||(BC=>BC),BK=BG['onCopyFailure']||BG['onFailure']||console['error'];BC&&BD||BK('Source\x20and\x20target\x20path\x20must\x20be\x20both\x20defined'),files['isDir'](BD)||BK('Target\x20path\x20must\x20be\x20a\x20directory');let BL=new BF(files['path'](BC))['getAbsolutePath'](),BM=new BF(files['path'](BD))['getAbsolutePath'](),BN=BE||{},BO=BN['is_unbundled'],BP=()=>{let BC=!0x0,BD=0x0,BE=0x1,E6=(DP,BF)=>{let BG=files['join'](BF,files['getName'](DP));files['isFile'](DP)?(BQ['copy'](DP,BG)||(BC=!0x1),BI({'processed':BD+=0x1,'total':BE})):files['listDir'](DP)['forEach'](BC=>{E6(files['join'](DP,BC),BG);});};if('function'==typeof BH&&BH(),files['isDir'](BL)){BO||(BM=files['join'](BM,files['getName'](BL)));let BC=files['listDir'](BL,function(BC){return'function'!=typeof BN['filter']||BN['filter'](BC);});BE=BC['length'],BC['forEach'](BC=>E6(files['join'](BL,BC),BM));}else E6(BL,BM);return BC&&BJ(),BC||BK('An\x20error\x20has\x20occurred\x20in\x20files.copy()'),BC;};if(!BN['isAsync'])return BP();i['start'](BP);},'getScriptDirPath':()=>'function'==typeof BP['getScriptDirPath']?BP['getScriptDirPath']():com['stardust']['autojs']['core']['pref']['Pref']['INSTANCE']['getScriptDirPath'](),'isScriptDirPath'(BC){return new BF(files['path'](BC))['getAbsolutePath']()===this['getScriptDirPath']();},'getDirSize'(BC){let BD=files['path'](BC);if(!files['exists'](BD))throw Error('path\x20of\x20filesx.getDirSize()\x20is\x20not\x20exist');return files['isFile'](BD)?new BF(BD)['length']():new BF(BD)['listFiles']()['reduce']((BC,BD)=>BC+(BD['isDirectory']()?this['getDirSize'](BD):BD['length']()),0x0);},'removeWithDirs'(BC,BD,BE){let Em=BD||{},BF=BE||{},BG=BF['onRemoveStart']||BF['onStart']||(BC=>BC),BH=BF['onRemoveProgress']||BF['onProgress']||(BC=>BC),BI=BF['onRemoveSuccess']||BF['onSuccess']||(BC=>BC),BJ=BF['onRemoveFailure']||BF['onFailure']||console['error'],BK=0x0,BL=0x1,BM=()=>{let BD=!0x0;if(BG(),files['isFile'](BC))BD=BN(BC);else{if(!files['isDir'](BC))throw Error('Cannot\x20parse\x20path\x20for\x20filesx.removeWithDirs()');{let BE=files['listDir'](BC);BL=BE['length'],BE['forEach'](BE=>{BD=BN(files['join'](BC,BE))&&BD;}),files['remove'](BC);}}return BD&&BI(),BD||BJ('An\x20error\x20has\x20occurred\x20in\x20files.removeWithDirs()'),BD;},BN=BC=>{let BD=files['isDir'](BC)?files['removeDir'](BC):!!files['isFile'](BC)&&files['remove'](BC);return BH({'progress':BK+=0x1,'total':BL}),BD;};try{return Em['isAsync']?i['start'](BM):BM();}catch(EE){BJ(EE);}},'listAllFiles'(BC){let BD=[];return'string'==typeof BC&&(BC=new BF(files['path'](BC))),function BC(BE){BE['isFile']()?BD['push'](BE):BE['isDirectory']()&&(BD['push'](BE),BE['listFiles']()['forEach'](BC));}(BC),BD;},'deleteRecursively'(BC){if('string'==typeof BC&&(BC=new BF(files['path'](BC))),BC['isDirectory']()){let BD=BC['listFiles']();if(null!==BD&&!BD['every'](BC=>this['deleteRecursively'](BC)))return!0x1;}return BC['delete']();},'deleteByList'(BC,BD,BE){let EO=this,BF=BD||{},BG=BE||{},BH=BG['onDeleteStart']||BG['onStart']||(BC=>BC),BI=BG['onDeleteProgress']||BG['onProgress']||(BC=>BC),BJ=BG['onDeleteSuccess']||BG['onSuccess']||(BC=>BC),BK=BG['onDeleteFailure']||BG['onFailure']||console['error'];if(BF['isAsync'])return BL();function BL(){BH();let BD=!0x0,BE=EO['listAllFiles'](BC)['reverse'](),F1=0x0,BF=BE['length'];return BE['forEach'](BC=>{BD=BC['delete']()&&BD,BI({'processed':F1+=0x1,'total':BF});}),BD&&BJ(),BD||BK('An\x20error\x20has\x20occurred\x20in\x20files.deleteByList()'),BD;}i['start'](BL);},'read'(BC,BD){let BE=null;return files['exists'](BC)&&(BE=files['read'](BC)),BE||(void 0x0===BD?BE:BD);},'readJson'(BC,BD,BE){let Fa=void 0x0===BD?{}:BD;try{return JSON['parse'](this['read'](BC),BE||this['json']['reviver'])||Fa;}catch(Fb){return Fa;}},'write'(BC,BD){BC&&!files['exists'](BC)&&files['createWithDirs'](BC),files['write'](BC,BD);},'writeJson'(BC,BD,BE){this['write'](BC,JSON['stringify'](BD,BE||this['json']['replacer']));}};BC['exports']={'filesx':BR};},131:(Fh,Fi,Fj)=>{let {threadsx:i}=Fj(0xef),Fk=java['net']['URL'],Fl=java['io']['File'],Fm=java['lang']['StringBuilder'],Fn=java['io']['BufferedReader'],Fo=java['io']['FileOutputStream'],Fp=java['io']['InputStreamReader'],Fq=java['io']['BufferedInputStream'],Fr=java['io']['BufferedOutputStream'],Fs=java['lang']['reflect']['Array'],Ft=okhttp3['Request']['Builder'],Fu={'getContentLength'(Fh,Fi,Fj){if('string'!=typeof Fh)throw Error('url\x20for\x20httpx.getContentLength()\x20is\x20required');if('function'!=typeof Fi)throw Error('callback\x20for\x20httpx.getContentLength()\x20is\x20required');let Fl=Fj||{},Fm=Fl['timeout']||0x2710,Fn=Date['now']()+Fm,Fo=i['atomic'](-0x1),Fp=function(Fj){let Fl=i['start'](function(){try{let Fj=new Fk(Fh)['openConnection']();Fj['setRequestProperty']('Accept-Encoding','identity'),Fj['setConnectTimeout'](Fm);let FH=Fj['getContentLengthLong']();Fj['disconnect'](),-0x1!==FH&&Fo['compareAndSet'](-0x1,FH)&&Fi(Fo['get']());}catch(FI){}});i['start'](function(){try{for(;;){if(Fo['get']()>0x0)return Fl['interrupt']();if(Date['now']()>=Fn)return Fj(-0x1),Fl['interrupt']();sleep(0x78);}}catch(FJ){}});},Fq=Fl['concurrence']||0xc;for(let Fh=0x0;FhFh),FS=Fk['onResponse']||(Fh=>Fh),FT=Fk['onDownloadProgress']||(Fh=>Fh),FU=Fk['onDownloadSuccess']||(Fh=>Fh),FV=Fh=>{if('function'!=typeof Fk['onDownloadFailure'])throw Error(Fh+'\x0a'+Fh['stack']);Fk['onDownloadFailure'](Fh);};if(!Fh)return FV('url\x20for\x20httpx.okhttp3Request()\x20is\x20required');if(void 0x0!==Fu['isAsync']&&!Fu['isAsync'])return G1();function G1(){try{let Fi;FR();let Fj=new Ft();Object['keys'](Fu['headers']||{})['forEach'](Fh=>{Fj['addHeader'](Fh,Fu['headers'][Fh]);});let G5=new OkHttpClient()['newCall'](Fj['url'](Fh)['get']()['build']())['execute']();FS(G5);let Fk=0x1000,G1=Fs['newInstance'](java['lang']['Byte']['TYPE'],Fk),G8=0x0,G9=G5['code']();0xc8!==G9&&FV(G9+'\x20'+G5['message']());let Ga=G5['body']()['byteStream'](),Gb=G5['body']()['contentLength']();if('string'==typeof FQ){let Fh=-0x1,Fj=new Fq(Ga),G5=new Fo(new Fl(files['path'](FQ))),Fm=new Fr(G5);for(;-0x1!==(Fh=Fj['read'](G1,0x0,Fk));)global['_$_dialog_flow_interrupted']&&(Gl([Fm,G5,Fj,Ga]),FV('用户终止')),G5['write'](G1,0x0,Fh),G8+=Fh,FT({'processed':G8,'total':Gb});Gl([Fm,G5,Fj,Ga]),FU({'downloaded_path':Fi=FQ});}else{let Fh=new Fp(Ga),Fj=new Fn(Fh),G5=new Fm(),Fk=null;for(;null!==(Fk=Fj['readLine']());)global['_$_dialog_flow_interrupted']&&(Gl([Fj,Fh,Ga]),FV('用户终止')),G5['append'](Fk)['append']('\x0d\x0a'),G8+=Fk['length'],FT({'processed':G8,'total':Gb});Gl([Fj,Fh,Ga]),FU({'downloaded_string':Fi=G5['toString']()});}return Fi;}catch(Gk){FV('请求失败:\x0a'+Gk);}}function Gl(Fh){Fh['forEach'](Fh=>{try{Fh&&Fh['close']();}catch(Go){}}),global['_$_dialog_flow_interrupted']=!0x1;}i['start'](G1);}};Fh['exports']={'httpx':Fu};},220:(Gp,Gq,Gr)=>{let {isNullish:i,isObjectSpecies:n}=Gr(0x2c4),{filesx:s}=Gr(0x2fb),{cryptox:o}=Gr(0xbe),Gs=function(){let Gp={'parseFile'(Gp){let Gq=s['read'](Gp,'');try{return Gq?JSON['parse'](Gq,s['json']['reviver']):{};}catch(Gy){console['warn']('JSON.parse()解析配置文件异常');}try{return this['tryRepairEscChar'](Gp,Gq);}catch(Gz){console['warn']('转义字符修复失败');}try{return this['tryRepairMojibakeLines'](Gp,Gq);}catch(GA){console['warn']('乱码行修复失败');}this['failAndBackup'](Gp);},'tryRepairEscChar'(Gp,Gq){console['warn']('尝试查找并修复异常的转义字符');let Gr=/[ntrfb\\'"0xu]/,GE='';for(let Gp in Gq){let GG=+Gp,GH=Gq[GG];if('\x5c'===GH){let Gp=Gq[GG-0x1],GE=Gq[GG+0x1];Gp&&GE&&'\x5c'!==Gp&&!GE['match'](Gr)&&(GH+='\x5c');}GE+=GH;}return this['writeBackFileAndParse'](Gp,GE);},'tryRepairMojibakeLines'(Gp,Gq){console['warn']('尝试查找并修复异常的乱码行');let Gr=Gq['split']('\x0a');for(;Gr['length']>0x0;)try{return Gr['pop'](),this['writeBackFileAndParse'](Gp,Gr['join']('\x0a'));}catch(GN){}throw Error('Failed\x20to\x20repair\x20mojibake\x20lines');},'writeBackFileAndParse'(Gp,Gq){let Gr=JSON['parse'](Gq,s['json']['reviver']);return console['info']('修复成功'),s['write'](Gp,Gq),console['info']('已重新写入修复后的数据'),Gr;},'failAndBackup'(Gp){let Gq=files['getName'](Gp)+'.'+Date['now']()+'.bak';throw files['rename'](Gp,Gq),console['error']('修复失败'),console['warn']('已将损坏的配置文件备份至'),console['warn'](files['join'](s['.local'](),Gq)),console['warn']('以供手动排查配置文件中的问题'),Error('JSON.parse()\x20failed\x20in\x20ext-storages');},'getKeyInput'(){let Gp=files['join'](s['.local'](),'key.nfex'),Gq=s['readJson'](Gp,{});return Gq['af']||(Gq['af']=o['generateRandomKeyInput'](),s['writeJson'](Gp,Gq)),Gq['af'];},'encrypt'(Gp){if(i(Gp))throw TypeError('Nullish\x20typed\x20value\x20cannot\x20be\x20encrypted');return o['enc'](Gp['toString'](),this['getKeyInput']());},'decrypt'(Gp){if(i(Gp))throw TypeError('Non-string\x20typed\x20value\x20cannot\x20be\x20decrypted');return o['dec'](Gp['toString'](),this['getKeyInput']());},'reEncryptFromLegacyFile'(Gp){let Gq=this['parseFile'](Gp),Gr=Gp=>{if(n(Gp))return(Gp=>(Object['keys'](Gp)['forEach'](Gq=>Gp[Gq]=Gr(Gp[Gq])),Gp))(Gp);if('string'==typeof Gp&&Gp['startsWith']('[')&&Gp['endsWith'](']')){let Gq=o['_pwmap']['decrypt'](Gp);if(!i(Gq))return this['encrypt'](Gq);}return Gp;};s['writeJson'](Gp,Gr(Gq));}},Gq=function(Gq){this['name']=Gq,this['dir']=s['.local'](),this['path_legacy']=files['join'](this['dir'],this['name']+'.nfe'),this['path']=this['path_legacy']+'x',files['exists'](this['path'])||(files['exists'](this['path_legacy'])?(files['copy'](this['path_legacy'],this['path']),Gp['reEncryptFromLegacyFile'](this['path'])):files['createWithDirs'](this['path']));};return Gq['prototype']={'constructor':Gq,'contains'(Gq){return Gq in Gp['parseFile'](this['path']);},'put'(Gq,Gr,H8){if(void 0x0===Gr)throw new TypeError('\x22put\x22\x20value\x20can\x27t\x20be\x20undefined');let H9={},Gs={},Gt=H8||{},Hc=Gq=>Gp['encrypt'](JSON['stringify'](Gq,s['json']['replacer'])),Hd=Gp=>{if(!Gt['is_crypto'])return Gp;if(!n(Gp)||Gt['is_forcible'])return Hc(Gp);let Gq={};return Object['keys'](Gp)['forEach'](Gr=>Gq[Gr]=Hc(Gp[Gr])),Gq;};try{H9=Gp['parseFile'](this['path']);}catch(Hi){console['warn'](Hi['message']);}!Gt['is_forcible']&&n(Gr)&&n(H9[Gq])&&Object['keys'](Gr)['length']>0x0?Gs[Gq]=Object['assign'](H9[Gq],Hd(Gr)):Gs[Gq]=Hd(Gr),Object['assign'](H9,Gs),s['writeJson'](this['path'],H9);},'get'(Gq,Gr,Hl){if(void 0x0===Hl&&'object'==typeof Gr){let Gp=['default','prop','is_crypto'],Hn=Object['keys'](Gr);if(Gp['some'](Gp=>Hn['indexOf'](Gp)>-0x1))return this['get'](Gq,Gr['default'],Gr);}let Hp=Gp['parseFile'](this['path']),Gs=Hl||{};if(Hp&&Gq in Hp){let Gr=Hp[Gq];if(void 0x0!==Gs['prop']&&(Array['isArray'](Gs['prop'])?Gs['prop']['forEach'](Gp=>Gr=Gr[Gp]):Gr=Gr[Gs['prop']]),i(Gr))return Gr;if(Gs['is_crypto']){let Gq=Gp['decrypt'](Gr);try{return JSON['parse'](Gq,s['json']['reviver']);}catch(Hu){return Gq;}}return Gr;}return void 0x0!==Gs['default']?Gs['default']:Gr;},'remove'(Gq){let Gr=Gp['parseFile'](this['path']);Gq in Gr&&(delete Gr[Gq],s['writeJson'](this['path'],Gr));},'clear'(){files['remove'](this['path']);}},Gq;}(),Gt={'@default':Gr(0xd9),get 'af'(){return this['_af']=this['_af']||this['create']('af');},get 'af_auto'(){return this['_af_auto']=this['_af_auto']||this['create']('af_auto');},get 'af_bak'(){return this['_af_bak']=this['_af_bak']||this['create']('af_bak');},get 'af_blist'(){return this['_af_blist']=this['_af_blist']||this['create']('af_blist');},get 'af_cfg'(){return this['_af_cfg']=this['_af_cfg']||this['create']('af_cfg');},get 'af_flist'(){return this['_af_flist']=this['_af_flist']||this['create']('af_flist');},get 'af_ins'(){return this['_af_ins']=this['_af_ins']||this['create']('af_ins');},get 'unlock'(){return this['_unlock']=this['_unlock']||this['create']('unlock');},'create':Gp=>new Gs(Gp),'remove'(Gp){this['create'](Gp)['clear']();}};Gp['exports']={'storagesx':Gt};},239:(Hz,HA,HB)=>{let {isNormalFunction:i,isArrowFunction:n}=HB(0x2c4),{a11yx:s}=HB(0x2d4),HC=java['lang']['Runnable'],HD=java['lang']['Throwable'],HE=java['util']['concurrent']['atomic']['AtomicLong'],HF=com['stardust']['autojs']['core']['looper']['TimerThread'],HG=com['stardust']['autojs']['runtime']['exception']['ScriptInterruptedException'],HH={'_monitor_preset':{'ensure_open':Hz=>{let HA=void 0x0===Hz?0x1068:Hz||0x1/0x0;return s['waitAndClick'](/打开/,HA,0xf0,{'cs$':'w'});}},'_start'(Hz){let HA=threads['start'](Hz);return Object['create'](HA,{'join':{'value'(Hz){Hz===0x1/0x0||void 0x0===Hz?Hz=0x0:Hz<0x1&&(Hz=0x1),HA['join'](Hz);}}});},'monitor'(Hz,HA){let HB='string'==typeof Hz?this['_monitor_preset'][Hz]:Hz;if('function'==typeof HB)return this['start'](()=>HB['apply'](null,[]['slice']['call'](arguments)['slice'](0x1)));if(HB instanceof HC)return this['start'](HB);throw TypeError('Invalid\x20monitor:\x20'+Hz);},'monitorIFN'(Hz,HA){if(void 0x0!==Hz)return this['monitor']['apply'](this,arguments);},'start'(Hz,HA){let HB=HA||{},HV=!0x0;try{if(i(Hz)||Hz instanceof HC)return this['_start'](Hz);if(n(Hz))return this['_start'](new HC({'run':()=>Hz()}));HV=!0x1;}catch(HW){if(!HG['causedByInterrupted'](new HD(HW))&&!HW['message']['match'](/script exiting/)&&!0x1!==HB['isErrorEnabled'])throw Error(HW+'\x0a'+HW['stack']);}if(!HV)throw TypeError('Unsupported\x20type\x20\x22'+typeof Hz+'\x22\x20for\x20threads.start()');},'atomic'(Hz){let HA=threads['atomic'](Hz);if(HA instanceof HE)return HA;let HB=Hz;return{'get':()=>HB,'incrementAndGet':()=>HB+=0x1,'compareAndSet':(Hz,HA)=>HB===Hz&&(HB=HA,!0x0)};},'interrupt'(Hz){Hz instanceof HF&&Hz['isAlive']()&&Hz['interrupt']();}};Hz['exports']={'threadsx':HH};},855:(I3,I4,I5)=>{let {isNullish:i}=I5(0x2c4),{threadsx:n}=I5(0xef),I6=context['getPackageName']()['match'](/Pro\b/i),I7=I6?com['stardust']['autojs']['core']['timing']:org['autojs']['autojs']['timing'],I8=I6?I7['TimedTask']['Companion']:I7['TimedTask'],I9=I7['TimedTaskManager'],Ia=I6?I9['Companion']['getInstance']():I9['getInstance'](),Ib=global['require']('__bridges__'),Ic=['monday','tuesday','wednesday','thursday','friday','saturday','sunday','mon','tue','wed','thu','fri','sat','sun','一','二','三','四','五','六','日',0x1,0x2,0x3,0x4,0x5,0x6,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7]['map'](I3=>'string'==typeof I3?I3:I3['toString']()),Id={'_taskFulfilled'(I3,I4){if(!I3)return null;let I5=I4||{},Ii='function'==typeof I5['condition']?I5['condition']:()=>I3['id']>0x0,I6='function'==typeof I5['callback']?I5['callback']:null,I7=0xbb8,I8=()=>{for(;I7>0x0;){if(Ii())return I6?I6(I3):I3;sleep(0x78),I7-=0x78;}return null;};if(!I5['isAsync'])return I8();n['start'](I8);},'addTask':I3=>(I3&&(I6?Ia['addTaskSync'](I3):Ia['addTask'](I3)),I3||null),'addDailyTask'(I3){let I4=I3||{},I5=JS('LocalTime',I4['time']||Date['now']()),Iq=files['path'](I4['path']),Ir=JP(I4),I6=this['addTask'](I8['dailyTask'](I5,Iq,Ir));return this['_taskFulfilled'](I6,I4);},'addWeeklyTask'(I3){let I4=I3||{},I5=0x0;for(let I3=0x0;I3Ia['getTimedTask'](I3),'getIntentTask':I3=>Ia['getIntentTask'](I3),'removeTask':I3=>I3?(I6?Ia['removeTaskSync'](I3):Ia['removeTask'](I3),I3):null,'removeIntentTask'(I3,I4){let I5=I4||{},IU=this['removeTask'](this['getIntentTask'](I3));return this['_taskFulfilled'](IU,Object['assign'](I5,{'condition':()=>!this['getIntentTask'](I3)}));},'removeTimedTask'(I3,I4){let I5=I4||{},IY=this['removeTask'](this['getTimedTask'](I3));return this['_taskFulfilled'](IY,Object['assign'](I5,{'condition':()=>!this['getTimedTask'](I3)}));},'updateTask':I3=>I3?(I3['setScheduled'](!0x1),Ia['updateTask'](I3),I3):null,'queryTimedTasks'(I3){let I4='',I5=[],J3=(I3||{})['path'];var J4;if(J3&&(J4='script_path\x20=\x20?',I4+=I4['length']?'\x20AND\x20'+J4:J4,I5['push'](J3)),I6){let I3=Ia['queryTimedTasks']['call'](Ia,I4||null,I5);return Ib['toArray'](I3);}let I7=Ia['getAllTasksAsList']()['toArray']();return J3?I7['filter'](I3=>I3['getScriptPath']()===J3):I7;},'queryIntentTasks'(I3){let I4=I3||{},I5='',Jb=[],Jc=I3=>I5+=I5['length']?'\x20AND\x20'+I3:I3,{path:I7,action:I8}=I4;if(I7&&(Jc('script_path\x20=\x20?'),Jb['push'](I7)),I8&&(Jc('action\x20=\x20?'),Jb['push'](I8)),I6){let I3=Ia['queryIntentTasks']['call'](Ia,I5||null,Jb);return Ib['toArray'](I3);}let I9=Ia['getAllIntentTasksAsList']()['toArray']();return I7||I8?I9['filter'](I3=>!(I7&&I3['getScriptPath']()!==I7||I8&&I3['getAction']()!==I8)):I9;},'timeFlagConverter'(I3){if(Array['isArray'](I3))return Array(0x7)['fill'](0x0)['reduce']((I4,I5,Jk)=>I4+(I3['includes'](Jk)?Math['pow'](0x2,Jk):0x0),0x0);let I4=[],I5=Number(I3)['toString'](0x2),Jn=I5['length']-0x1;for(let I3 of I5)I3>0x0&&I4['unshift'](Jn),Jn-=0x1;return I4;},'setInterval'(I3,I4,I5,Js){({'init_ts':Date['now'](),'interval':I4>0x0?I4:0xc8,'timeout':I5>0x0?I5:0x1/0x0,'isTimedOut'(){return'function'!=typeof this['_isTimedOut']&&(this['_isTimedOut']='function'==typeof I5?I5['bind'](this):()=>Date['now']()-this['init_ts']>this['timeout']),this['timeout_result']=this['_isTimedOut'](),!0x1!==this['timeout_result']&&!i(this['timeout_result']);},'relayIFN'(){this['isTimedOut']()?'function'==typeof Js&&Js['call'](this,this['timeout_result']):this['setTimeout']();},'run'(){I3(),this['relayIFN']();},'setTimeout'(){setTimeout(this['run']['bind'](this),this['interval']);}}['setTimeout']());},'$rec'(){let I3={'keys':{},'anonymity':[],'ts':I3=>'number'==typeof I3?I3:Date['now'](),'has'(I3){return I3 in this['keys'];},'add'(I3,I4){return void 0x0===I3?this['anonymity']['push'](this['ts'](I4)):this['keys'][I3]=this['ts'](I4),this['ts'](I4);},'get'(I3){return void 0x0===I3?this['anonymity']['pop']():this['keys'][I3];},'save'(I3,I4){return this['add'](I3,I4);},'load'(I3,I4){return this['ts'](I4)-this['get'](I3);},'shortcut'(I3,I4){return'function'==typeof I3?(this['save'](),I3['call'](I4),this['load']()):void 0x0!==I3?this['has'](I3)?this['load'](I3,I4):this['save'](I3,I4):this['anonymity']['length']?this['load']():this['save']();}};return this['rec']=function(I4,I5){return I3['shortcut'](I4,I5);},this['rec']['save']=(I4,I5)=>I3['save'](I4,I5),this['rec']['load']=(I4,I5)=>I3['load'](I4,I5),this['rec']['lt']=(I3,I4)=>this['rec']['load'](I3)this['rec']['load'](I3)>I4,this['rec']['clear']=()=>{I3['keys']={},I3['anonymity']['splice'](0x0);},delete this['$rec'],this;},'$bind'(){return this['$rec'](),delete this['$bind'],this;}};function JP(I3){let I4=new com['stardust']['autojs']['execution']['ExecutionConfig']();return I4['delay']=I3['delay']||0x0,I4['interval']=I3['interval']||0x0,I4['loopTimes']=void 0x0===I3['loopTimes']?0x1:I3['loopTimes'],I4;}function JS(I3,I4){let I5=I6?I3:org['joda']['time'][I3],JW=I4,JX=()=>JW['getTime']();if('string'==typeof I4)return I6?I8['parseDateTime']['call'](I8,I5,JW):I5['parse'](JW);if(I4 instanceof Date)return I6?I8['parseDateTime']['call'](I8,I5,JX()):new I5(JX());if('number'==typeof I4)return I6?I8['parseDateTime']['call'](I8,I5,JW):new I5(JW);throw new Error('Cannot\x20parse\x20date\x20time:\x20'+I4);}Id['$bind'](),I3['exports']={'timersx':Id};},708:JY=>{let JZ=android['os']['Looper'],K0=android['widget']['Toast'],K1=java['lang']['Runnable'],K2=java['util']['zip']['GZIPInputStream'],K3=java['io']['ByteArrayInputStream'],K4=java['io']['ByteArrayOutputStream'];global['de']=Packages['de'],global['okhttp3']=Packages['okhttp3'],global['androidx']=Packages['androidx'];let K5={'compare':{'<':(JY,JZ)=>JYJY<=JZ,'>':(JY,JZ)=>JY>JZ,'>=':(JY,JZ)=>JY>=JZ,'=':(JY,JZ)=>JY===JZ},'isNullish':JY=>null==JY,'isObjectSpecies':JY=>'Object'===Object['prototype']['toString']['call'](JY)['slice'](0x8,-0x1)},K6={'string'(){String['prototype']['toTitleCase']||Object['defineProperty'](String['prototype'],'toTitleCase',{'value'(){return this['replace'](/([A-Za-z])([A-Za-z]*)/g,(JY,JZ,K0)=>JZ['toUpperCase']()+K0['toLowerCase']());}}),String['prototype']['capitalize']||Object['defineProperty'](String['prototype'],'capitalize',{'value'(){return this['valueOf']()['replace'](/\b\w+\b/g,JY=>JY['charAt'](0x0)['toUpperCase']()+JY['slice'](0x1));}}),String['prototype']['surround']||Object['defineProperty'](String['prototype'],'surround',{'value'(JY,JZ){if(K5['isNullish'](JY))return this['valueOf']();let K0=JZ||{},K1=void 0x0===K0['no_intelli_brackets']||!K0['no_intelli_brackets'],K2=void 0x0===K0['no_symmetrical']||!K0['no_symmetrical'],K3=['()','[]','{}','<>','()','[]','{}','〈〉','《》','〔〕','【】','〖〗','‘’','“”'],K4=function(JY){let JZ={};return JY['forEach'](JY=>{JZ[JY[0x0]]=JY[0x1],JZ[JY[0x1]]=JY[0x0];}),JZ;}(K3),K6=JY['toString'](),Kv=K6['split'](''),Kw=K6['split']('');if(K1){let JY=[];!function(JY,JZ,K0){let K1=JZ||['()','[]','{}'],K2=function(JY){let JZ={};return JY['forEach'](JY=>JZ[JY[0x0]]=JY[0x1]),JZ;}(K1),K3=function(JY){let JZ={};return JY['forEach'](JY=>JZ[JY[0x1]]=JY[0x0]),JZ;}(K1),K4=[];(K0=K0||[])[0x0]=[],K0[0x1]=[];for(let JZ of JY)if(JZ in K2)K4['push'](JZ),K0[0x0]['push'](JZ);else{if(!(JZ in K3))return!0x1;if(K3[JZ]!==K4['pop']())return!0x1;K0[0x1]['push'](JZ);}return!K4['length'];}(K6,K3,JY)?Kv['forEach']((JY,JZ)=>{JY in K4&&(Kw[JZ]=K4[JY]);}):[Kv,Kw]=JY;}return K2&&(Kw=Kw['reverse']()),Kv['join']('')+this['valueOf']()+Kw['join']('');}}),String['prototype']['ts']||Object['defineProperty'](String['prototype'],'ts',{'get'(){let JY,JZ,K0=String(this);if(K0['length']<0x2||'`'!==K0[0x0]||'`'!==K0[K0['length']-0x1])return K0;for(;JY=K1(K0);){let [K1,K2]=JY,K3=JZ?'\x22':'';K0=K0['slice'](0x0,K1++)+K3+K0['slice'](K1,K2++)['replace'](/\${(.*?)}/g,(JY,JZ)=>Function('return\x20'+JZ)())+K3+K0['slice'](K2);}return K0;function K1(JY){let K0=[];Object['values'](JY)['forEach']((JY,JZ)=>'`'===JY&&K0['push'](JZ));let K1=K0['length']/0x2;if(K1>>0x0!==K1)throw Error('Backticks\x20must\x20come\x20in\x20pairs');return JZ=K1>0x1,K1?K0['slice'](K1-0x1,K1+0x1):null;}},'configurable':!0x0}),String['unTap']||Object['defineProperty'](String,'unTap',{'value':JY=>{let JZ=[['A','B','C','D','E'],['F','G','H','I','J'],['L','M','N','O','P'],['Q','R','S','T','U'],['V','W','X','Y','Z']],K0=JY['match'](/../g);return K0?K0['reduce']((JY,K0)=>{let [K1,K2]=K0;return JY+(+K1?JZ[--K1][--K2]:K2);},String()):String();}}),String['unEsc']||Object['defineProperty'](String,'unEsc',{'value':JY=>'function'==typeof String['fromCharCode']?JY['replace'](/.{4}/g,JY=>String['fromCharCode'](parseInt(JY,0x10))):unescape(JY['replace'](/.{4}/g,'%u$&'))}),String['decodeGzip']||Object['defineProperty'](String,'decodeGzip',{'value'(JY,JZ){let K0,K1=new K4(),K5=new K2(new K3(JY)),K6=util['java']['array']('byte',0x400);for(;-0x1!==(K0=K5['read'](K6));)K1['write'](K6,0x0,K0);let Lk=new java['lang']['String'](K1['toByteArray']())['toString']();return'json'===JZ?JSON['parse'](Lk):Lk;}});},'object'(){Object['prototype']['__proto__']||Object['defineProperty'](Object['prototype'],'__proto__',{'get'(){return Object['getPrototypeOf'](Object(this))||this['__proto__'];},'set'(JY){if(Object(JY)!==JY)throw TypeError('Proto\x20must\x20be\x20an\x20non-primitive\x20type');this['__proto__']=JY;},'configurable':!0x0}),Object['size']||Object['defineProperty'](Object,'size',{'value'(JY,JZ){if(Array['isArray'](JY))return JY['length'];if(!K5['isObjectSpecies'](JY))return-0x1;let K0=JY=>Array['isArray'](JY)?JY:void 0x0===JY?[]:[JY],K1=JZ||{},K2=K0(K1['include']),K3=K0(K1['exclude']);return Object['keys'](JY)['filter'](JY=>K2['length']?K2['includes'](JY):!K3['includes'](JY))['length'];}}),Object['getOwnNonEnumerableNames']||Object['defineProperty'](Object,'getOwnNonEnumerableNames',{'value':JY=>Object['getOwnPropertyNames'](JY)['filter'](JZ=>!Object['prototype']['propertyIsEnumerable']['call'](JY,JZ))}),Object['getNonEnumerableNames']||Object['defineProperty'](Object,'getNonEnumerableNames',{'value'(JY){let JZ=JY,K0={};for(;null!==JZ;)Object['getOwnNonEnumerableNames'](JZ)['forEach'](JY=>{K0[JY]=K0[JY]||!0x0;}),JZ=Object['getPrototypeOf'](JZ);return Object['keys'](K0);}}),Object['getAllPropertyNames']||Object['defineProperty'](Object,'getAllPropertyNames',{'value'(JY){let JZ=JY,K0={};for(;null!==JZ;)Object['getOwnPropertyNames'](JZ)['forEach'](JY=>{K0[JY]=K0[JY]||!0x0;}),JZ=Object['getPrototypeOf'](JZ);return Object['keys'](K0);}}),Object['assignDescriptors']||Object['defineProperty'](Object,'assignDescriptors',{'value'(JY,JZ){if(void 0x0!==JZ){let JZ=[]['slice']['call'](arguments),K0=JZ['length'];for(;K0-->0x1;){let K1=Object['getOwnPropertyDescriptors'](JZ[K0]);Object['defineProperties'](JY,K1);}}return JY;}}),Object['shallowClone']||(Object['shallowClone']=JY=>K5['isObjectSpecies'](JY)?Object['create'](Object['getPrototypeOf'](JY),Object['getOwnPropertyDescriptors'](JY)):Array['isArray'](JY)?JY['slice']():JY),Object['deepClone']||Object['defineProperty'](Object,'deepClone',{'value':function JY(JZ){if(K5['isObjectSpecies'](JZ)){let K0={};return Object['getOwnPropertyNames'](JZ)['forEach'](K1=>{let K2=Object['getOwnPropertyDescriptor'](JZ,K1);'object'==typeof K2['value']&&(K2['value']=JY(K2['value'])),Object['defineProperty'](K0,K1,K2);}),K0;}return Array['isArray'](JZ)?JZ['map'](JY):JZ;}}),Object['isDeepEqual']||Object['defineProperty'](Object,'isDeepEqual',{'value':function JY(JZ,K0){if(K5['isObjectSpecies'](JZ)&&K5['isObjectSpecies'](K0)){let K1=Object['getOwnPropertyNames'](JZ),K2=Object['getOwnPropertyNames'](K0);return K1['length']===K2['length']&&K1['every'](K1=>JY(JZ[K1],K0[K1]));}return Array['isArray'](JZ)&&Array['isArray'](K0)?JZ['length']===K0['length']&&JZ['every']((JZ,K1)=>JY(JZ,K0[K1])):JZ===K0;}});},'function'(){Function['prototype']['toRegular']||Object['defineProperty'](Function['prototype'],'toRegular',{'value'(){let JY=this;return'object'==typeof this['prototype']?this:function(){return JY['apply'](null,arguments);};}}),Function['prototype']['toRegularAndCall']||Object['defineProperty'](Function['prototype'],'toRegularAndCall',{'value'(JY){return this['toRegular']()['apply'](null,arguments);}}),Function['prototype']['toRegularAndApply']||Object['defineProperty'](Function['prototype'],'toRegularAndApply',{'value'(JY){if(!Array['isArray'](JY))throw Error('Param\x20args\x20must\x20be\x20an\x20Array');return this['toRegular']()['apply'](null,JY);}});},'number'(){Number['prototype']['ICU']||Object['defineProperty'](Number['prototype'],'ICU',{'value':function(){let JY='Hard\x20working\x20only'['split'](new RegExp('[your\x20health]'))['map'](JY=>JY?JY['charCodeAt'](0x0):97.6)['reduce']((JY,JZ)=>JY+JZ);return Math['round'](JY);}()}),Number['prototype']['clamp']||Object['defineProperty'](Number['prototype'],'clamp',{'value'(JY){let JZ=this['valueOf'](),K0=(Array['isArray'](JY)?JY:[]['slice']['call'](arguments))['map'](JY=>Number(JY))['filter'](JY=>!isNaN(JY))['sort']((JY,JZ)=>JY===JZ?0x0:JY>JZ?0x1:-0x1),K1=K0['length'];if(K1){let JY=K0[0x0],K2=K0[K1-0x1];if(JZK2)return K2;}return JZ;}}),Number['prototype']['toFixedNum']||Object['defineProperty'](Number['prototype'],'toFixedNum',{'value'(JY){return Number(this['toFixed'](JY));}}),Number['prototype']['padStart']||String['prototype']['padStart']&&Object['defineProperty'](Number['prototype'],'padStart',{'value'(JY,JZ){let K0=this['toString']();return K0['padStart']['call'](K0,JY,JZ||0x0);}}),Number['prototype']['padEnd']||String['prototype']['padEnd']&&Object['defineProperty'](Number['prototype'],'padEnd',{'value'(JY,JZ){let K0=this['toString']();return K0['padEnd']['call'](K0,JY,JZ||0x0);}}),Number['parsePercent']||Object['defineProperty'](Number,'parsePercent',{'value'(JY){if('string'==typeof JY){let JZ=JY['replace'](/\s*/g,'')['match'](/^(\d+(?:\.\d+)?)(%+)$/);if(JZ){let JY=Number(JZ[0x1]);for(let K0=0x0,K1=JZ[0x2]['length'];K0'number'!=typeof JY||isFinite(JY)||isNaN(JY)?+JY:Object['is'](0x0/JY,0x0)?Number['MAX_SAFE_INTEGER']:Number['MIN_SAFE_INTEGER'])['filter'](JY=>!isNaN(JY))['sort']((JY,JZ)=>JY===JZ?0x0:JY>JZ?0x1:-0x1))[0x0],K1=JY[JY['length']-0x1];let K2=Math['random']()*(K1-K0)+K0;return void 0x0===JZ?K2:Object['is'](JZ,-0x0)?Math['floor'](K2):+K2['toFixed'](+JZ||0x0);}}),Math['sum']||Object['defineProperty'](Math,'sum',{'value'(JZ,K0){let [K1,K2]=JY['parseArgs']['apply'](JY,arguments);if(!K1['length'])return 0x0;let K3=K1['reduce']((JY,JZ)=>{let [K0,K1]=[+JY,+JZ]['map'](JY=>isNaN(JY)?0x0:JY);return K0+K1;}),K4=parseInt(K2);return isNaN(K4)?K3:+K3['toFixed'](K4);}}),Math['avg']||Object['defineProperty'](Math,'avg',{'value'(JZ,K0){let [K1,K2]=JY['parseArgs']['apply'](JY,arguments),K3=K1['filter'](JY=>!isNaN(+JY));if(!K3['length'])return NaN;let K4=K3['reduce']((JY,JZ)=>+JY+ +JZ)/K3['length'],K5=parseInt(K2);return isNaN(K5)?K4:+K4['toFixed'](K5);}}),Math['median']||Object['defineProperty'](Math,'median',{'value'(JZ,K0){let [K1,K2]=JY['parseArgs']['apply'](JY,arguments),K3=K1['filter'](JY=>!isNaN(+JY));if(!K3['length'])return NaN;K3['sort']((JY,JZ)=>{let K0=Number(JY);return K0===Number(JZ)?0x0:K0>JZ?0x1:-0x1;});let K4=K3['length'],K5=K4%0x2?K3[Math['floor'](K4/0x2)]:(K3[K4/0x2-0x1]+K3[K4/0x2])/0x2,K6=parseInt(K2);return isNaN(K6)?K5:+K5['toFixed'](K6);}}),Math['var']||Object['defineProperty'](Math,'var',{'value'(JZ,K0){let [K1,K2]=JY['parseArgs']['apply'](JY,arguments);if(!K1['length'])return NaN;let K3=K1['filter'](JY=>!isNaN(+JY)),K4=Math['avg'](K3),K5=K3['length'],K6=0x0;for(let JY=0x0;JY!isNaN(+JY)),K4=Math['sqrt'](Math['var'](K3)),K5=parseInt(K2);return isNaN(K5)?K4:+K4['toFixed'](K5);}}),Math['cv']||Object['defineProperty'](Math,'cv',{'value'(JZ,K0){let [K1,K2]=JY['parseArgs']['apply'](JY,arguments),K3=K1['filter'](JY=>!isNaN(+JY)),K4=K3['length'];if(K4<0x2)return NaN;let K5=Math['avg'](K3),K6=0x0;for(let JY=0x0;JY!isNaN(+JY)),K4=Math['max']['apply'](null,K3),K5=parseInt(K2);return isNaN(K5)?K4:+K4['toFixed'](K5);}}),Math['mini']||Object['defineProperty'](Math,'mini',{'value'(JZ,K0){let K1,K2;Array['isArray'](JZ)?(K1=JY['spreadArr'](JZ),K2=K0):K1=JY['spreadArr'](arguments);let K3=K1['filter'](JY=>!isNaN(+JY)),K4=Math['min']['apply'](null,K3),K5=parseInt(K2);return isNaN(K5)?K4:+K4['toFixed'](K5);}}),Math['dist']||Object['defineProperty'](Math,'dist',{'value'(JY,JZ){if(Array['isArray'](JY)&&Array['isArray'](JZ)){let K0=Math['pow'](JZ[0x0]-JY[0x0],0x2),K1=Math['pow'](JZ[0x1]-JY[0x1],0x2);return Math['sqrt'](K0+K1);}if(K5['isObjectSpecies'](JY)&&K5['isObjectSpecies'](JZ)){let K0=Math['pow'](JZ['x']-JY['x'],0x2),K1=Math['pow'](JZ['y']-JY['y'],0x2);return Math['sqrt'](K0+K1);}return NaN;}}),Math['logMn']||Object['defineProperty'](Math,'logMn',{'value'(JY,JZ,K0){let K1='number'==typeof K0?K0:0xd,K2=Math['log'](JZ)/Math['log'](JY);return isNaN(K2)||!isFinite(K2)||-0x1!==K1?K2:Number(K2['toFixed'](K1));}}),Math['floorLog']||Object['defineProperty'](Math,'floorLog',{'value'(JY,JZ){return Math['floor'](this['logMn'](JY,JZ));}}),Math['ceilLog']||Object['defineProperty'](Math,'ceilLog',{'value'(JY,JZ){return Math['ceil'](this['logMn'](JY,JZ));}}),Math['roundLog']||Object['defineProperty'](Math,'roundLog',{'value'(JY,JZ){return Math['round'](this['logMn'](JY,JZ));}}),Math['floorPow']||Object['defineProperty'](Math,'floorPow',{'value'(JY,JZ){return Math['pow'](JY,this['floorLog'](JY,JZ));}}),Math['ceilPow']||Object['defineProperty'](Math,'ceilPow',{'value'(JY,JZ){return Math['pow'](JY,this['ceilLog'](JY,JZ));}}),Math['roundPow']||Object['defineProperty'](Math,'roundPow',{'value'(JY,JZ){return Math['pow'](JY,this['roundLog'](JY,JZ));}});}};JY['exports']={'$$0':JY=>0x0===JY,'$$nul':JY=>null===JY,'$$und':JY=>void 0x0===JY,'$$bool':JY=>'boolean'==typeof JY,'$$symb':JY=>'symbol'==typeof JY,'$$bigint':JY=>'bigint'==typeof JY,'$$func':JY=>'function'==typeof JY,'$$arr':JY=>Array['isArray'](JY),'$$obj':JY=>K5['isObjectSpecies'](JY),'$$rex':JY=>JY instanceof RegExp,'$$xml':JY=>/^xml$/['test'](typeof JY),'$$T':JY=>!0x0===JY,'$$F':JY=>!0x1===JY,'$$num'(JY){let JZ=arguments,K0=JZ['length'];if(0x0===K0)return!0x1;if(0x1===K0)return'number'==typeof JY;if(0x2===K0)return JY===JZ[0x1];for(let JY=0x1;JYNumber['isInteger'](JY),'isNullish':JY=>null==JY,'isPrimitive':JY=>JY!==Object(JY),'isReference':JY=>JY===Object(JY),'isObjectSpecies':JY=>K5['isObjectSpecies'](JY),'isEmptyObject':JY=>K5['isObjectSpecies'](JY)&&0x0===Object['keys'](Object['getOwnPropertyDescriptors'](JY))['length'],'isNonEmptyObject':JY=>K5['isObjectSpecies'](JY)&&Object['keys'](Object['getOwnPropertyDescriptors'](JY))['length']>0x0,'isNormalFunction':JY=>'function'==typeof JY&&K5['isObjectSpecies'](JY['prototype']),'isArrowFunction':JY=>'function'==typeof JY&&!K5['isObjectSpecies'](JY['prototype']),'isXMLType':JY=>/^xml$/['test'](typeof JY),'requirex'(JY){let JZ=JY=>files['exists'](JY)&&global['require'](files['path'](JY)),K0=JY;K0['match'](/\.js$/)||(K0+='.js');let K1=JZ('modules/'+K0)||JZ(K0)||JZ('../modules/'+K0);if('object'==typeof K1)return K1;throw Error('Cannot\x20locate\x20module\x20\x22'+JY+'\x22\x20for\x20global.requirex()');},'sleep'(JY,JZ){if('string'==typeof JZ){let K0=JZ['match'](/[+-]?(\d+(\.\d+)?(e\d+)?)/);if(K0){let K1=Number(K0[0x0]);JZ=Math['min'](JY+K1,Number['MAX_SAFE_INTEGER']),JY=Math['max'](JY-K1,0x0);}}return'number'==typeof JZ?sleep(JY+Math['floor'](Math['random']()*(JZ-JY+0x1))):sleep(Math['max'](JY,0x0)||0x0);},'$$link':function(){let JY={'init'(){return delete this['is_break'],this;},'invoke'(JY){if('function'!=typeof JY)throw TypeError('$$link\x20invoked\x20with\x20a\x20non-function\x20argument');try{this['is_break']='__BREAK__'===JY();}catch(Pc){if(this['is_break']=!0x0,!Pc['message']['match'](/InterruptedException/))throw Error(Pc+'\x0a'+Pc['stack']);sleep(0x1a4);}}};return function JZ(K0){return JY['init']()['invoke'](K0),JZ=function(K0){return JY['is_break']||JY['invoke'](K0),JZ['$']=JZ;},JZ['$']=JZ;};}(),'$$cvt':function(){let JY={'parse'(JY,K0,K1,K2){let K3=K5['isNullish'](K0)?{}:{'init_unit':K0};return JZ(JY,Object['assign'](K2,K3,K1));}},JZ=function(JY,JZ){return{'options':JZ||{},'parseArgs'(){this['step']=this['options']['step'],this['pot_step']=this['options']['potential_step'],this['ori_units']=this['options']['units'],this['init_unit']=this['options']['init_unit'],this['fixed']=this['options']['fixed'],this['parseSrc'](),this['parseSpace'](),this['parseUnits']();},'parseSrc'(){this['src']=Number('string'==typeof JY?JY['split'](/,\s*/)['join'](''):JY);},'parseSpace'(){this['space']=this['options']['space'],K5['isNullish'](this['space'])&&(this['space']=String()),!0x0===this['space']&&(this['space']='\x20');},'parseUnits'(){this['units']=[],this['ori_units']['forEach'](JY=>{'string'==typeof JY&&JY['match'](/\w+\|\w+/)?JY['split']('|')['reverse']()['forEach']((JY,JZ)=>{JZ?this['units']['push'](0x1,JY):this['units']['push'](JY);}):this['units']['push'](JY);}),this['init_unit']=this['init_unit']||this['units'][0x0];},'generateUnitMap'(){this['unit_map']={},this['unit_map'][this['units'][0x0]]=[0x1,0x1];let JY=0x1,JZ=this['units']['length'];for(let K0=0x1;K0JY>0x0!=0x3e8*JZ)return Number(JZ['toFixed'](0x2));return JZ;},'getResult'(){return this['parseArgs'](),this['generateUnitMap'](),this['units']['includes'](this['init_unit'])&&(this['src']*=this['unit_map'][this['init_unit']][0x0]),this['units']['filter'](JY=>JY in this['unit_map'])['reverse']()['some']((JY,JZ,K0)=>{let [K1,K2]=this['unit_map'][JY];if(this['src']>=K2||JZ===K0['length']-0x1)return this['result']=this['calc'](K1)+this['space']+JY;})?this['result']:String();}}['getResult']();};return JZ['bytes']=function(JZ,K0,K1){return JY['parse'](JZ,K0,K1,{'step':0x400,'potential_step':0x3e8,'units':['B','KB','MB','GB','TB','PB','EB','ZB','YB']});},JZ['time']=function(JZ,K0,K1,K2){return'object'==typeof K0?this['time'](JZ,'','$en',K0):'string'==typeof K0&&K0['startsWith']('$')?this['time'](JZ,'',K0,K1):'object'==typeof K1?this['time'](JZ,K0,'$en',K1):JY['parse'](JZ,K0,K2,{'step':0x3c,'units':'$zh'===K1?['毫秒',0x3e8,'秒','分钟','小时',0x18,'天']:['ms',0x3e8,'s','m','h',0x18,'d']});},JZ['linear']=function(JZ,K0,K1){return JY['parse'](JZ,K0,K1,{'step':0x3e8,'init_unit':'mm','units':['am','fm','pm','nm','μm|um','mm',0xa,'cm',0xa,'dm',0xa,'m','km']});},JZ['number']=function(JZ,K0,K1){return JY['parse'](JZ,K0,K1,{'step':0x3e8,'space':!0x0,'units':['one',0x64,'hundred',0xa,'thousand','million','billion','trillion','quadrillion','quintillion','sextillion','septillion','octillion','nonillion','decillion','undecillion','duodecillion','tredecillion','quattuordecillion','quindecillion']});},JZ['date']=function(JY,JZ){let K0=function(JY){if(JY instanceof Date)return JY;if('number'==typeof JY)return new Date(JY);if('string'==typeof JY){JY['match'](/^\d+$/)&&(0x8===JY['length']?JY=JY['replace'](/\d{2}/g,'$&%')['split']('%')['slice'](0x0,-0x1)['map']((JY,JZ)=>JZ>0x1?'/'+JY:JY)['join'](''):0xc===JY['length']?JY=JY['replace'](/\d{2}/g,'$&%')['split']('%')['slice'](0x0,-0x1)['map']((JY,JZ)=>0x0===JZ?new Date()['getFullYear']()['toString']()['slice'](0x0,0x2)+JY:JZ<0x3?'/'+JY:0x3===JZ?'\x20'+JY:JZ<0x6?':'+JY:JY)['join'](''):0xe===JY['length']&&(JY=JY['replace'](/\d{2}/g,'$&%')['split']('%')['slice'](0x0,-0x1)['map']((JY,JZ)=>JZ>0x1&&JZ<0x4?'/'+JY:0x4===JZ?'\x20'+JY:JZ>0x4&&JZ<0x7?':'+JY:JY)['join']('')));let JZ=new Date(JY);if('Invalid\x20Date'===JZ['toString']())throw Error('Invalid\x20Date');return JZ;}return new Date();}(JY||new Date()),K1=(JZ||'yyyy/MM/dd\x20hh:mm:ss')['toString']();if('ISO'===K1['toUpperCase']()){let JY=new Date(K0),JZ=JY['getTime']()+0xea60*JY['getTimezoneOffset'](),K1='yyyy-MM-ddThh:mm:ss.SSSZ';return this['date'](JZ,K1);}let K2=K0['getFullYear'](),K3=K2['toString']()['slice'](-0x2),K4=K0['getMonth']()+0x1,K5=K4['toString']()['padStart'](0x2,'0'),K6=K0['getDate'](),Qe=K6['toString']()['padStart'](0x2,'0'),Qf=K0['getHours'](),Qg=Qf['toString']()['padStart'](0x2,'0'),Qh=K0['getMinutes'](),Qi=Qh['toString']()['padStart'](0x2,'0'),Qj=K0['getSeconds'](),Qk=Qj['toString']()['padStart'](0x2,'0'),Ql=K0['getMilliseconds']()%0x3e8,Qm=Ql['toString']()['padEnd'](0x3,'0')['slice'](0x0,0x1),Qn=Ql['toString']()['padEnd'](0x3,'0')['slice'](0x0,0x2),Qo=Ql['toString']()['padEnd'](0x3,'0')['slice'](0x0,0x3),Qp={'yyyy':K2,'yy':K3,'MM':K5,'M':K4,'dd':Qe,'d':K6,'hh':Qg,'h':Qf,'mm':Qi,'m':Qh,'ss':Qk,'s':Qj},Qq=function(JY){let JZ=this;return{'get':()=>(delete JZ['S'],delete JZ['SS'],delete JZ['SSS'],JY),'configurable':!0x0};};return Object['defineProperties'](Qp,{'S':Qq['call'](Qp,Qm),'SS':Qq['call'](Qp,Qn),'SSS':Qq['call'](Qp,Qo)}),function(JY){let JZ='';for(;JY['length'];){let K0=0x4;for(;K0;){let K1=JY['slice'](0x0,K0);if(K1 in Qp){JZ+=Qp[K1],JY=JY['slice'](K0);break;}K0-=0x1;}K0||(JZ+=JY[0x0],JY=JY['slice'](0x1));}return JZ;}(K1);},JZ['url']=function(JY,JZ,K0){if(!JY)throw Error('Source\x20url\x20is\x20required\x20for\x20$$cvt.url()');if(!JZ)return JY;let K1=JY['match'](/\?/)?'&':'?';return JY+K1+function JY(JZ){let K1=K0||[];return Array['isArray'](K1)||(K1=[K1]),Object['keys'](JZ)['map'](K0=>{let K2=JZ[K0];return'object'==typeof K2&&(K2='&'+JY(K2)),K1['includes'](K0)||(K2=encodeURI(K2)),K0+'='+K2;})['join']('&');}(JZ);},JZ;}(),'$$toast':function(){let JY={'toast':null,'parseIsLong':JY=>'number'==typeof JY?Number(!!JY):'string'==typeof JY?Number(/^l(ong)?$/i['test'](JY)):'boolean'==typeof JY?Number(JY):0x0,'init'(JY){let [JZ,K0,K1]=JY;this['message']=K5['isNullish'](JZ)?'':JZ['toString'](),this['is_long']=this['parseIsLong'](K0),this['is_forcible']=K1;},'post'(){ui['post'](()=>{new android['os']['Handler'](JZ['getMainLooper']())['post'](new K1({'run':()=>{this['is_forcible']&&this['dismiss'](),this['toast']=K0['makeText'](context,this['message'],this['is_long']),this['show']();}}));});},'dismiss'(){this['toast']instanceof K0&&(this['toast']['cancel'](),this['toast']=null);},'show'(){this['toast']['show']();}},K2=function(JZ,K0,K1){JY['init'](arguments),JY['post']();};return K2['dismiss']=()=>JY['dismiss'](),K2;}(),'$$impeded':function(){let JY={'events_counter':0x0,'border'(){console['log']('-\x20'['repeat'](0x11)['trim']());},'msg'(JY){this['border'](),[]['slice']['call'](arguments)['forEach'](JY=>console['log'](JY)),this['border']();},'trigger'(){return this['events_counter']>0x0;},'increase'(){this['events_counter']+=0x1;},'decrease'(){this['events_counter']-=0x1;},'reset'(){this['events_counter']=0x0;},'onTrigger'(JY){this['msg']('检测到全局事件触发信号',JY+'被迫阻塞');},'onRelease'(JY){this['msg']('全局事件触发信号全部解除',JY+'解除阻塞');}},JZ=function(JZ){let K0=JZ||'%method%';if(JY['trigger']()){for(JY['onTrigger'](K0);JY['trigger']();)sleep(0xc8);JY['onRelease'](K0);}};return Object['assign'](JZ,{'increase':()=>JY['increase'](),'decrease':()=>JY['decrease'](),'reset':()=>JY['reset'](),'detach'(JY,JZ){if('function'!=typeof JY)throw TypeError('Param\x20\x22fn\x22\x20for\x20$$impeded.detach\x20must\x20be\x20defined\x20as\x20a\x20function');if('number'!=typeof JZ)throw TypeError('Param\x20\x22options_idx\x22\x20for\x20$$impeded.detach\x20must\x20be\x20defined\x20as\x20a\x20number');return function(){let K0=[]['slice']['call'](arguments);return K0[JZ]='object'==typeof K0[JZ]?Object['assign'](K0[JZ],{'no_impeded':!0x0}):{'no_impeded':!0x0},JY['apply'](null,K0);};}}),JZ;}(),'$polyfill'(){let JY={'getPadStr'(JY,JZ){return{'tar_len':Number(JY),'str_len':this['length'],'trigger'(){return this['tar_len']>this['str_len'];},'getPad'(){let JY=void 0x0===JZ?'\x20':String(JZ),K0=this['tar_len']-this['str_len'],K1=Math['ceil'](K0/JY['length']);return JY['repeat'](K1)['slice'](0x0,K0);},'getResult'(){return this['trigger']()?this['getPad']():String();}}['getResult']();}};return String['prototype']['padStart']||Object['defineProperty'](String['prototype'],'padStart',{'value'(JZ,K0){return JY['getPadStr']['apply'](this,arguments)+this['valueOf']();}}),String['prototype']['padEnd']||Object['defineProperty'](String['prototype'],'padEnd',{'value'(JZ,K0){return this['valueOf']()+JY['getPadStr']['apply'](this,arguments);}}),String['prototype']['trimStart']||Object['defineProperty'](String['prototype'],'trimStart',{'value'(){return String['prototype']['trimLeft']['apply'](this,arguments);}}),String['prototype']['trimEnd']||Object['defineProperty'](String['prototype'],'trimEnd',{'value'(){return String['prototype']['trimRight']['apply'](this,arguments);}}),Object['values']||(Object['values']=function(JY){if(void 0x0!==JY[Symbol['iterator']]){let JZ=[];for(let K0 of JY)JZ['push'](K0);return JZ;}return Object['keys'](JY)['map'](JZ=>JY[JZ]);}),Object['getOwnPropertyDescriptors']||(Object['getOwnPropertyDescriptors']=function(JY){let JZ={};return Object['getOwnPropertyNames'](JY)['forEach'](K0=>{JZ[K0]=Object['getOwnPropertyDescriptor'](JY,K0);}),JZ;}),Array['from']||(Array['from']=function(JY,JZ,K0){let K1=JY=>'function'==typeof JY,K2=Object(JY);if(K5['isNullish'](JY))throw TypeError('arrayLike\x20of\x20Array.from\x20must\x20be\x20an\x20array-like\x20object');if(void 0x0!==JZ&&!K1(JZ))throw TypeError('mapFn\x20of\x20Array.from\x20must\x20be\x20a\x20function\x20or\x20undefined');let K3=Math['min'](Math['max']((K4=K2['length'],isNaN(Number(K4))?0x0:Math['trunc'](K4)),0x0),Number['MAX_SAFE_INTEGER']);var K4;let K6=K1(this)?Object(new this(K3)):new Array(K3),Rq=void 0x0===K0?this:K0;for(let JY=0x0;JY{if(void 0x0!==JY)return Number['isNaN'](JY)?Number['isNaN'](JZ):JY===JZ;});}}),Array['prototype']['fill']||Object['defineProperty'](Array['prototype'],'fill',{'value'(JY,JZ,K0){let K1=this['length'],K2=JZ>>0x0;K2=K2<0x0?K2+K1:K2>K1?K1:K2;let K3=void 0x0===K0?K1:K0>>0x0;K3=K3<0x0?K3+K1:K3>K1?K1:K3;for(let JZ=K2;JZJZ['concat'](Array['isArray'](K1)?JY(K1,K0-0x1):K1),[]);}(this['slice'](),JY||0x1);}}),Array['prototype']['keys']||(Array['prototype']['keys']=function(){return(0x0,this['map']((JY,JZ)=>JZ)[Symbol['iterator']])();}),Array['prototype']['values']||(Array['prototype']['values']=function(){return this[Symbol['iterator']]();}),Array['prototype']['entries']||(Array['prototype']['entries']=function(){return(0x0,this['map']((JY,JZ)=>[JZ,JY])[Symbol['iterator']])();}),Number['isInteger']||(Number['isInteger']=function(JY){return'number'==typeof JY&&isFinite(JY)&&(0x0|JY)===JY;}),Number['EPSILON']||(Number['EPSILON']=Math['pow'](0x2,-0x34)),delete this['$polyfill'],this;},'$bind'(){return this['$polyfill'](),Object['keys'](K6)['forEach'](JY=>K6[JY]()),delete this['$bind'],this;}},JY['exports']['$bind']();},453:(RN,RO,RP)=>{let {$$cvt:i,isNullish:n}=RP(0x2c4),{appx:s}=RP(0x79),{httpx:o}=RP(0x83),{filesx:a}=RP(0x2fb),{threadsx:l}=RP(0xef),{dialogsx:c}=RP(0x3b5),{storagesx:u}=RP(0xdc),RQ=java['io']['File'],RR={'step':{'download':'下载数据包','decompress':'解压缩','backup':'备份本地项目','files_check':'检查文件','files_update':'项目文件替换','files_ready':'项目文件就绪','finish_deploy':'清理并完成部署','finish_restore':'清理并完成项目恢复'},'structure':[{'name':'/assets'},{'name':'/modules','necessary':!0x0},{'name':'/tools'},{'name':'ant-forest-launcher.js','necessary':!0x0},{'name':'ant-forest-settings.js'},{'name':'.gitignore'},{'name':'jsconfig.json'},{'name':'project.json','necessary':!0x0},{'name':'LICENSE'},{'name':'README.md'}],get 'ignore_list'(){return this['_ignore_list']=this['_ignore_list']||u['af']['get']('updateIgnoreList')||u['@default']['af']['updateIgnoreList'];}},RS={'version':{'isIgnored'(RN,RO){let RP=RO||RR['ignore_list'];if(!RP)throw Error('No\x20available\x20list\x20for\x20project.version.isIgnored()');return'string'==typeof RN?RP['includes'](RN):RP['includes'](RN['version_name']);},'isCared'(RN,RO){let RP=RO||RR['ignore_list'];if(!RP)throw Error('No\x20available\x20list\x20for\x20project.version.isCared()');return!this['isIgnored'](RN,RP);}},'.local'(RN){return a['.local']['apply'](a,arguments);},'getLocal'(){let RN=this['getLocalPath']();if(!RN)throw Error('Cannot\x20locate\x20project\x20path\x20for\x20project.getLocal()');let RO=files['join'](RN,'project.json'),RP='ant-forest-launcher.js',S3=files['join'](RN,RP),S4={'version_name':'','version_code':-0x1,'main':{'name':RP,'path':S3},'path':RN};if(files['exists'](RO))try{let RP=JSON['parse'](a['read'](RO,'{}'));return Object['assign'](S4,{'version_name':'v'+RP['versionName'],'version_code':Number(RP['versionCode']),'main':{'name':RP['main'],'path':files['join'](RN,RP['main'])}});}catch(S6){console['warn'](S6['message']),console['warn'](S6['stack']);}if(files['exists'](S3))try{return Object['assign'](S4,{'version_name':'v'+a['read'](S3)['match'](/version (\d+\.?)+( ?(Alpha|Beta)(\d+)?)?/)[0x0]['slice'](0x8)});}catch(S7){console['warn'](S7['message']),console['warn'](S7['stack']);}return console['warn']('Both\x20project.json\x20and\x20'+RP+'\x20do\x20not\x20exist'),S4;},'getLocalPath'(RN){return RR['local_path']||(RR['local_path']=(()=>{let RO=files['cwd']();if(this['isAlike'](RO))return RO;if(RO=new RQ(RO)['getParent'](),this['isAlike'](RO))return RO;let RP=files['join'](a['getScriptDirPath'](),'Ant-Forest-003');return files['isDir'](RP)?RP:RN?(files['createWithDirs'](RP+a['sep']),RP):String();})());},'getLocalVerName'(){return this['getLocal']()['version_name'];},'getAssetPath'(RN){return files['join']['apply'](files,[this['getLocalPath'](),'assets']['concat']([]['slice']['call'](arguments)));},'getReleases'(RN,RO){if('function'!=typeof RO)return RP();function RP(){let RO=[],RP=RN||{},Sh=null;delete global['_$_get_proj_releases_interrupted'],RP['show_progress_dialog']&&c['setProgressColorTheme'](Sh=c['builds']([null,'正在获取版本信息...',0x0,0x0,'I',0x1],{'progress':{'max':-0x1,'showMinMax':!0x1,'horizontal':!0x0},'keycode_back':'disabled'})['on']('positive',RN=>{RN['dismiss'](),global['_$_get_proj_releases_interrupted']=!0x0;})['show'](),'indeterminate');let Sj=RP['max_items']||0x1/0x0,Sk=0x1,Sl=RP['per_page']||0x1e,Sm=RP['min_version_name']||'v0.0.0',Sn=0x3;for(;Sn--;)try{let RN=http['get']('https://api.github.com/repos/SuperMonster003/Ant-Forest/releases?per_page='+Sl+'&page='+Sk++)['body']['json']()['filter'](RN=>RN['tag_name']>=Sm);if(global['_$_get_proj_releases_interrupted'])return[];if(RO=RO['concat'](RN),RN['length']=Sj)break;}catch(Sq){sleep(0x78+0xf0*Math['random']());}return Sn<0x0?(Sh&&(Sh['dismiss'](),c['builds'](['失败','版本信息获取失败',0x0,0x0,'X',0x1])['on']('positive',RN=>RN['dismiss']())['show']()),[]):(RO['splice'](Sj),Sh&&(Sh['dismiss'](),Sh=null),RP['no_extend']?RO:RO['map'](function(RN){return RN['version_name']=RN['tag_name'],RN['brief_info_str']=[{'key':'name','desc':'标题'},{'key':'tag_name','desc':'标签'},{'key':'published_at','desc':'发布','cvt':void 0x0!==i&&i['date']},{'key':'body','desc':'内容描述'}]['map'](RO=>{let RP=RO['key'],Sv=RN[RP];if(Sv)return'body'===RP&&(Sv='\x0a'+Sv),'function'==typeof RO['cvt']&&(Sv=RO['cvt']['call'](null,Sv)),RO['desc']+':\x20'+Sv;})['filter'](RN=>!!RN)['join']('\x0a\x0a'),RN;}));}l['start'](()=>RO(RP()));},'getNewestRelease'(RN,RO){let RP=()=>this['getReleases'](Object['assign'](RN||{},{'max_items':0x1,'per_page':0x1}))[0x0];if('function'!=typeof RO)return RP();l['start'](()=>RO(RP()));},'getNewestReleaseCared'(RN,RO){let RP=RN||{},SD=()=>this['getReleases'](Object['assign'](RP,{'max_items':0x64,'per_page':0x64}))['filter'](RN=>this['version']['isCared'](RN,RP['ignore_list']))[0x0];if('function'!=typeof RO)return SD();l['start'](()=>RO(SD()));},'getChangelog'(RN,RO,RP){let SI=Math['trunc'](Number(RN['toString']()['match'](/\d+/)[0x0])),SJ=RO||{},SK=RP||{},SL=SK['onStart']||(RN=>RN),SM=SK['onSuccess']||(RN=>RN),RQ=SK['onFailure']||console['error'],RR=null;if(!SJ['is_show_dialog'])return SV();let SR=null,ST=RN=>RN;function SV(){SL();let RN=function(){let RN=0x5,RO='https://cdn.jsdelivr.net/gh/SuperMonster003/Ant-Forest@master/assets/docs/CHANGELOG-'+SI+'.md';for(;RN--;)try{return o['okhttp3Request'](RO,{'onDownloadFailure'(RO){RN||RQ('请求失败:\x20'+RO);}},{'isAsync':!0x1});}catch(T0){RQ(T0['message']);}}();if(!RN){let RN='获取历史更新信息失败';return RR?RR['setContent'](RN):RQ(RN),SJ['is_joint']?'':[];}let RO=/# v\d+\.\d+\.\d+.*/g,RP=new RegExp(/^(\s*\n\s*)+/['source']+'|'+/(# *){3,}/['source']+'|'+/ +(?=\s+)/['source']+'|'+/.*~~.*/['source']+'|'+/.*`灵感`.*/['source']+'|'+/\(http.+?\)/['source']+'|'+/\[\/\/]:.+\(\n*.+?\n*\)/['source']+'|'+/\s*
/['source'],'g'),SK=RN['match'](RO),T5=RN['split'](RO),T6=SK['map']((RN,RO)=>({'ver':'v'+RN['split']('v')[0x1],'log':T5[RO+0x1]['replace'](/ ?_\[`(issue |pr )?#(\d+)`](\(http.+?\))?_ ?/g,'[$2]')['replace'](RP,'')['replace'](/(\[\d+])+/g,RN=>'\x20'+RN['split'](/\[]/)['join'](',')['replace'](/\d+/g,'#$&'))['replace'](/(\s*\n\s*){2,}/g,'\x0a')}));if(SM(T6),!RR&&!SJ['is_joint'])return T6;let RS=T6['map'](RN=>RN['ver']+'\x0a'+RN['log'])['join']('\x0a')['slice'](0x0,-0x1);return RR&&RR['setContent'](RS),SJ['is_joint']?RS:void 0x0;}!SJ['no_earlier']&&SI>0x1&&(SR='更早期的历史',ST=function(){c['builds'](['选择一个历史版本记录','',0x0,0x0,'B',0x1],{'items':function(){let RN=[];for(let RO=0x1;RO{RS['getChangelog'](RN+0x1,{'is_show_dialog':!0x0,'no_earlier':!0x0});})['show']();}),RR=c['builds'](['历史更新','处理中...',[SR,'hint'],'\u00a0','B',0x1])['on']('neutral',ST)['on']('positive',c['dismiss'])['show'](),l['start'](SV);},'isAlike'(RN,RO){let RP=files['path'](RN);if(!files['exists'](RP)){if(RO)throw Error('Passed\x20\x22dir\x22\x20is\x20not\x20exist');return!0x1;}if(!files['isDir'](RP)){if(RO)throw Error('Passed\x20\x22dir\x22\x20is\x20not\x20a\x20directory');return!0x1;}let Ti=files['listDir'](RP=new RQ(RP)['getAbsolutePath']());return RR['structure']['filter'](RN=>RN['necessary'])['map'](RN=>RN['name'][0x0]===a['sep']?{'name':RN['name']['slice'](0x1),'is_dir':!0x0}:{'name':RN['name']})['every'](RN=>{if(Ti['indexOf'](RN['name'])>-0x1){let RO=RN['is_dir'],Ti=files['isDir'](files['join'](RP,RN['name']));return RO&&Ti||!RO&&!Ti;}});},'deploy'(RN,RO,RP){let Tr=RP||{},Ts=RO||{},Tt=Ts['onDeployStart']||Ts['onStart']||(RN=>RN),RQ=Ts['onDeploySuccess']||Ts['onSuccess']||(RN=>RN),Tv=Ts['onDeployFailure']||Ts['onFailure']||console['error'];if(n(RN))throw Error('A\x20version\x20for\x20project.deploy()\x20must\x20be\x20defined');if('string'==typeof RN&&!(RN=(RN=>{if(RN['match'](/^(newest|latest)$/))return this['getNewestRelease']({'show_progress_dialog':!0x0});if(RN['match'](/^(newest|latest)_cared$/))return this['getNewestReleaseCared']({'show_progress_dialog':!0x0,'ignore_list':Tr['ignore_list']});let RO=null;return this['getReleases']({'per_page':0x64,'show_progress_dialog':!0x0})['some'](RP=>(RO=RP)['version_name']===RN),RO;})(RN))){if(global['_$_get_proj_releases_interrupted'])return void delete global['_$_get_proj_releases_interrupted'];throw Error('Cannot\x20parse\x20version\x20tag\x20for\x20project.deploy()');}if('object'!=typeof RN)throw Error('Cannot\x20parse\x20version\x20for\x20project.deploy()');let TB=RN['zipball_url'],TC=TB['slice'](TB['lastIndexOf'](a['sep'])+0x1)+'.zip',TD=files['join'](a['.local']('bak','ant-forest',TC)),TE=-0x1,TF=Tr['is_hide_title_version']?'':'\x20'+RN['version_name'],TG=RR['step'],TH=c['buildFlow']({'title':'正在部署项目'+TF,'success_title':Tr['success_title']||'部署完成','on_interrupt_btn_text':Tr['on_interrupt_btn_text']||'B','show_min_max':!0x0,'onStart'(RN,RO){Tt(),c['setProgressColorTheme'](RO,'download');},'onSuccess'(RN,RO){RQ(RN,RO);},'onFailure'(RN,RO){Tv(RN,RO),RO['setFailureData'](RN);},'steps':[{'desc':TG['download'],'action':(RN,RO)=>new Promise((RN,RP)=>{o['okhttp3Request'](TB,{'onStart'(){let RN=TE/0x400,RP=RN<0x0?'':'0KB/'+RN['toFixed'](0x1)+'KB';c['setProgressNumberFormat'](RO,RP);},'onDownloadProgress'(RN){RN['total']=Math['max'](RN['total'],TE);let RP=RN['total']/0x400,TW=RN['processed']/0x400;c['setProgressNumberFormat'](RO,'%.1fKB/%.1fKB',[TW,RP]),RO['setProgressData'](RN);},'onDownloadSuccess'(RP){RN(RP),c['clearProgressNumberFormat'](RO);},'onDownloadFailure'(RN){RP(RN);}},{'isAsync':!0x0,'path':TD});})},{'desc':TG['decompress'],'action':(RN,RO)=>new Promise((RP,U2)=>{a['unzip'](RN['downloaded_path'],null,{'onUnzipProgress':RN=>RO['setProgressData'](RN),'onUnzipSuccess'(RO){let U5=RO['unzipped_path'];RS['isAlike'](U5)||(U5=files['join'](U5,files['listDir'](U5)[0x0])),RS['isAlike'](U5)||U2('Cannot\x20locate\x20project\x20path\x20in\x20unzipped\x20files'),RP(Object['assign'](RN,{'unzipped_files_path':RO['unzipped_path'],'unzipped_proj_path':U5}));},'onUnzipFailure':RN=>U2(RN)},{'to_archive_name_folder':!0x0,'is_delete_source':!0x0});})},{'desc':TG['backup'],'action':(RN,RO)=>new Promise((RP,Ua)=>{if(!this['getLocalPath']()||!this['getLocalVerName']())return RO['setStepDesc'](0x3,'\x20\x20[\x20跳过\x20]',!0x0),RP(RN);this['backup']({'onBackupProgress':RN=>RO['setProgressData'](RN),'onBackupSuccess':RO=>RP(Object['assign'](RN,{'backup':RO})),'onBackupFailure':RN=>Ua(RN)},{'remark':'版本升级前的自动备份','is_save_storage':!0x0});})},{'desc':TG['files_update'],'action':(RN,RO)=>new Promise((RP,Uh)=>{let Ui=this['getLocalPath'](!0x0);a['copy'](RN['unzipped_proj_path'],Ui,{'is_unbundled':!0x0},{'onCopyProgress':RN=>RO['setProgressData'](RN),'onCopySuccess':()=>RP(Object['assign'](RN,{'tar_proj_path':Ui})),'onCopyFailure':RN=>Uh(RN)});})},{'desc':TG['finish_deploy'],'action':(RN,RO)=>new Promise((RP,Uo)=>{a['deleteByList'](RN['unzipped_files_path'],{'isAsync':!0x0},{'onDeleteProgress':RN=>RO['setProgressData'](RN),'onDeleteSuccess':()=>RP({'target_path':RN['tar_proj_path']}),'onDeleteFailure':RN=>Uo(RN)});})}]})['act']();o['getContentLength'](TB,function(RN){TH['setStepDesc'](0x1,'\x20\x20[\x20'+i['bytes'](TE=RN,'B',{'fixed':0x1,'space':!0x0})+'\x20]',!0x0);},{'timeout':0x3a98,'concurrence':0xf});},'backup'(RN,RO){let RP=RN||{},Uv=RO||{},Uw=Date['now'](),Ux=this['getLocalVerName'](),RS=s['version']['getHex'](Ux),Uz=a['.local']('bak','ant-forest'),UA=i['date'](Uw,'yyMMddhhmmss')+'-'+RS+'.zip',UB=files['join'](Uz,UA),UC=()=>{let RN=Uv['source_path'];if(RN&&'cwd'!==RN&&'current'!==RN||(RN=files['cwd']()),!files['isDir'](RN))throw Error('source_path\x20for\x20project.backup\x20must\x20be\x20a\x20directory');if(this['isAlike'](RN))return RN;if(RN=new RQ(RN)['getParent'](),this['isAlike'](RN))return RN;let RO=a['getScriptDirPath']();if(RN=files['join'](RO,'Ant-Forest-003'),this['isAlike'](RN))return RN;throw Error('Unable\x20to\x20locate\x20Ant-Forest\x20project\x20folder');},UD=RN=>{let RO=RN||{};return a['zip']((()=>{let RN=files['join'](Uz,'.'+Uw)+a['sep'];files['createWithDirs'](RN);let RO=UC();return a['copy'](RO,RN,{'is_unbundled':!0x0,'filter':RN=>RR['structure']['map'](RN=>RN['name']['replace'](/^\//,''))['includes'](RN)}),RN;})(),UB,{'onZipStart'(){'function'==typeof RO['onStart']&&RO['onStart']();let RN=RP['onBackupStart']||RP['onStart'];'function'==typeof RN&&RN['call'](RP);},'onZipProgress'(RN){'function'==typeof RO['onProgress']&&RO['onProgress'](RN);let UO=RP['onBackupProgress']||RP['onProgress'];'function'==typeof UO&&UO['call'](RP,RN);},'onZipSuccess'(){let RN={'path':UB,'timestamp':Uw,'version_name':Ux,'remark':Uv['remark']||'手动备份'};'function'==typeof RO['onSuccess']&&RO['onSuccess'](RN);let UQ=RP['onBackupSuccess']||RP['onSuccess'];if('function'==typeof UQ&&UQ['call'](RP,RN),Uv['is_save_storage']){let RO=u['af_bak'],RP=RO['get']('project',[]);RO['put']('project',RP['concat'](RN));}},'onZipFailure'(RN){'function'==typeof RO['onFailure']&&RO['onFailure'](RN);let UU=RP['onBackupFailure']||RP['onFailure'];'function'==typeof UU&&UU['call'](RP,RN);}},{'is_exclude_root_folder':!0x0,'is_delete_source':!0x0});};return Uv['is_show_dialog']?c['buildProgress']({'show_min_max':!0x0,'title':'正在备份','content':'此过程可能需要一些时间','success_title':'备份完成','onStart':(RN,RO)=>c['setProgressColorTheme'](RO,'backup'),'action':(RN,RO)=>UD({'onProgress'(RN){let RP=RN['processed']/0x400,V1=RN['total']/0x400;c['setProgressNumberFormat'](RO,'%.1fKB/%.1fKB',[RP,V1]),RO['setProgressData'](RN);},'onSuccess'(RN){c['setContentText'](RO,'版本:\x20'+RN['version_name']+'\x0a路径:\x20'+RN['path']+'\x0a备注:\x20'+RN['remark']);}})})['act']():UD();},'restore'(RN,RO){let RP=RR['step'],V6=RO||{},V7=V6['onRestoreStart']||V6['onStart']||(RN=>RN),V8={'local':{'title':'正在从本地恢复','success_title':'本地恢复完成','1st_step':{'desc':RP['files_check'],'action':()=>{let RO=files['path'](RN);if(!files['exists'](RO))throw Error('Source\x20file\x20of\x20project.restore()\x20doesn\x27t\x20exist');if(!a['isValidZip'](RO))throw Error('Source\x20file\x20of\x20project.restore()\x20is\x20corrupted');return{'zip_src_file':RO};}}},'server':{'title':'正在从服务器恢复','success_title':'服务器恢复完成','1st_step':{'desc':RP['download'],'action':(RO,RP)=>new Promise((RO,V6)=>{let V7=-0x1;o['getContentLength'](RN,function(RN){RP['setStepDesc'](0x1,'\x20\x20[\x20'+i['bytes'](V7=RN,'B',{'fixed':0x1,'space':!0x0})+'\x20]',!0x0);},{'timeout':0x3a98,'concurrence':0xf});let V8=RN['slice'](RN['lastIndexOf'](a['sep'])+0x1),V9=a['.local']('bak','ant-forest'),RQ=files['join'](V9,V8+'.zip');o['okhttp3Request'](RN,{'onStart'(){let RN=V7/0x400,RO=RN<0x0?'':'0KB/'+RN['toFixed'](0x1)+'KB';c['setProgressNumberFormat'](RP,RO);},'onDownloadProgress'(RN){let RO=RN['processed']/0x400;RN['total']=Math['max'](RN['total'],V7);let Vp=RN['total']/0x400;c['setProgressNumberFormat'](RP,'%.1fKB/%.1fKB',[RO,Vp]),RP['setProgressData'](RN);},'onDownloadSuccess'(RN){RO({'zip_src_file':RN['downloaded_path']}),c['clearProgressNumberFormat'](RP);},'onDownloadFailure'(RN){V6(RN);}},{'isAsync':!0x0,'path':RQ});})}}},V9='local';files['exists'](RN)||(V9='server',RN['match'](/^https?:\/\//)||(RN='http://'+RN));let RQ=V8[V9];c['buildFlow']({'title':RQ['title'],'success_title':RQ['success_title'],'show_min_max':!0x0,'onStart'(RN,RO){V7(),c['setProgressColorTheme'](RO,'restore'),c['clearProgressNumberFormat'](RO);},'onSuccess':V6['onRestoreSuccess']||V6['onSuccess'],'onFailure':V6['onRestoreFailure']||V6['onFailure'],'steps':[RQ['1st_step'],{'desc':RP['decompress'],'action':(RN,RO)=>new Promise((RP,Vy)=>{a['unzip'](RN['zip_src_file'],null,{'onProgress':RN=>RO['setProgressData'](RN),'onSuccess'(RO){let V6=RO['unzipped_path'];RS['isAlike'](V6)||(V6=files['join'](V6,files['listDir'](V6)[0x0])),RS['isAlike'](V6)?RP(Object['assign'](RN,{'unzipped_files_path':RO['unzipped_path'],'unzipped_proj_path':V6})):Vy('Cannot\x20locate\x20project\x20path\x20in\x20unzipped\x20files');},'onFailure':RN=>Vy(RN)},{'to_archive_name_folder':!0x0,'is_delete_source':!0x1});})},{'desc':RP['files_update'],'action':(RN,RO)=>new Promise((RP,VG)=>{let V6=this['getLocalPath'](!0x0);a['copy'](RN['unzipped_proj_path'],V6,{'is_unbundled':!0x0},{'onProgress':RN=>RO['setProgressData'](RN),'onSuccess':()=>RP(Object['assign'](RN,{'tar_proj_path':V6})),'onFailure':RN=>VG(RN)});})},{'desc':RP['finish_restore'],'action':(RN,RO)=>new Promise((RP,VN)=>{a['deleteByList'](RN['unzipped_files_path'],{'isAsync':!0x0},{'onStart':()=>'server'===V9&&files['remove'](RN['zip_src_file']),'onProgress':RN=>RO['setProgressData'](RN),'onSuccess':()=>RP({'target_path':RN['tar_proj_path']}),'onFailure':RN=>VN(RN)});})}]})['act']();}};RN['exports']={'project':RS};},883:(VQ,VR,VS)=>{VS(0x2c4);let {project:i}=VS(0x1c5),{threadsx:n}=VS(0xef),{dialogsx:s}=VS(0x3b5),VT={'dialog':s['builds'](['项目部署','欢迎使用蚂蚁森林项目部署工具\x0a此工具用于\x20v2.0.0\x20以上版本的项目部署',['了解项目','hint'],['退出','caution'],['开始部署','attraction'],0x1])['on']('neutral',function(){s['builds'](['关于项目','-\x20功能简介\x20-\x0a'+['自动收取好友能量','自动收取/监测自己能量','收取结果统计/展示','控制台消息提示','自动解锁屏幕','定时任务与循环监测','多任务自动排队','脚本运行安全','事件监测与处理','黑名单机制','项目管理','账户功能','统计功能','图形化配置工具']['map'](VQ=>'·\x20'+VQ)['join']('\x0a')+'\x0a\x0a-\x20项目作者\x20-\x0a·\x20SuperMonster003\x0a\x0a-\x20项目链接\x20-\x0a·\x20https://github.com/SuperMonster003/Ant-Forest',0x0,0x0,'返回',0x1],{'linkify':'WEB_URLS'})['on']('positive',VQ=>VQ['dismiss']())['show']();})['on']('negative',VQ=>{VQ['dismiss'](),exit();})['on']('positive',VQ=>{VQ['dismiss'](),i['getReleases']({'min_version_name':'v2.0.1','show_progress_dialog':!0x0},VY);}),'view':null,'run'(){this['dialog']['show']();},'config'(){s['alerts']('CUI\x20(Configuration\x20User\x20Interface)\x20for\x20current\x20plugin\x20hasn\x27t\x20been\x20accomplished');},'getView'(){return this['view'];},'getDialog'(){return this['dialog'];}};function VY(VQ){if(!VQ['length'])return exit();let VR=VQ[0x0],VS=VR['version_name'];s['builds'](['选择项目版本','选择希望部署的项目版本',['版本历史','hint'],['X','warn'],'下一步',0x1],{'items':['最新版本\x20('+VS+')','其他版本'],'itemsSelectMode':'single','itemsSelectedIndex':0x0})['on']('neutral',()=>{i['getChangelog'](VS['match'](/v(\d+)/)[0x1],{'is_show_dialog':!0x0});})['on']('negative',VQ=>{s['builds'](['提示','项目部署尚未完成\x0a确定要退出吗',0x0,'B',['确定退出','caution'],0x1])['on']('negative',VQ=>{VQ['dismiss']();})['on']('positive',VR=>{s['dismiss']([VR,VQ]),exit();})['show']();})['on']('positive',VS=>{VS['dismiss'](),0x0===VS['getSelectedIndex']()?n['start'](()=>Wa(VR)):s['builds'](['选择其他项目版本','',0x0,'上一步','下一步',0x1],{'items':VQ['slice'](0x1)['map'](VQ=>VQ['version_name']),'itemsSelectMode':'single','itemsSelectedIndex':0x0})['on']('negative',VQ=>{VQ['dismiss'](),VS['show']();})['on']('positive',VR=>{VR['dismiss']();let VS=VR['getSelectedIndex']()+0x1;n['start'](()=>Wa(VQ[VS]));})['show']();})['show']();}function Wa(VQ){i['deploy'](VQ,{'onSuccess'(VQ,VR){let VS=VQ['target_path'];VR['removeAllListeners']('positive'),VR['setActionButton']('positive','下一步'),s['appendContentText'](VR,'\x0a\x0a项目部署路径:\x0a'+files['path'](VS)['replace'](files['getSdcardPath'](),'/内部存储')),VR['on']('positive',VQ=>{function VR(){let VQ=function(){s['clearPool']();let VQ=context['getPackageName'](),VR=VR=>{let Wm=VR||VQ;app['startActivity']({'packageName':VQ,'className':Wm+'.external.open.RunIntentActivity','data':'file://'+VS+'/ant-forest-launcher.js'});};try{VR('org.autojs.autojs');}catch(Wn){VR(VQ);}},VR=function(){s['clearPool'](),exit();};s['builds'](['项目使用声明',['代码完全公开','杜绝恶意代码','项目永久免费','欢迎提议反馈','','如需获知项目启动方式','可点击\x22了解更多\x22按钮']['map'](VQ=>VQ&&'·\x20'+VQ)['join']('\x0a'),['T','hint'],0x0,['完成部署','finish'],0x1])['on']('neutral',()=>s['builds'](['项目启动方式','以下方式可用于启动项目:\x0a'+['ant-forest-launcher运行按钮','目录顶部的项目运行按钮\x20(如有)','创建并使用桌面快捷方式']['map'](VQ=>VQ&&'·\x20'+VQ)['join']('\x0a'),['立即运行项目','attraction'],['B','default_aj_4'],['完成部署','finish'],0x1])['on']('neutral',VQ)['on']('negative',VQ=>VQ['dismiss']())['on']('positive',VR)['show']())['on']('positive',VR)['show']();}VQ['dismiss'](),engines['myEngine']()['source']['toString']()['match'](/^Ant.Forest.+er/)?dialogs['build']({'title':'新项目使用提示','content':'可能需要在Auto.js程序主页下拉刷新才能看到新项目\x0a新项目默认是以\x22Ant-Forest-003\x22命名的蓝色目录\x20进入目录可运行新项目\x0a对于当前目录下的旧项目文件\x20若无保留需要\x20可全部移除\x0a移除时需谨慎\x20避免误删可能存在的项目以外的重要文件','positive':'下一步','autoDismiss':!0x1,'canceledOnTouchOutside':!0x1})['on']('positive',VQ=>{VQ['dismiss'](),VR();})['show']():VR();});}},{'on_interrupt_btn_text':'X','success_title':'项目部署完成'});}VQ['exports']=VT;}},E={};function Ws(Wt){var Wu=E[Wt];if(void 0x0!==Wu)return Wu['exports'];var Wv=E[Wt]={'exports':{}};return A[Wt](Wv,Wv['exports'],Ws),Wv['exports'];}Ws['o']=(Ww,Wx)=>Object['prototype']['hasOwnProperty']['call'](Ww,Wx);var Wy={};Ws(0x373)['run']();})();