Files
yakpanel-core/class/__pycache__/panelPlugin.cpython-314.pyc

669 lines
160 KiB
Plaintext
Raw Normal View History

2026-04-07 02:04:22 +05:30
+
<00><><EFBFBD>i<EFBFBD><69><00><00><><00>^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RI H
t
H t H t ]P^,^8Xd^RIHt!RR4t!RR4tR#)<08>N)<03>session<6F>cache<68> send_file)<01>reloadc<00><00>]tRt^tRtR#)<03>mget<65>N)<05>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__static_attributes__r <00><00>;C:\wwwroot\yakpanel.com\YakPanel-master\class\panelPlugin.pyrrs<00><00>Drrc<00>a<00>]tRt^toRtRtRtRt]P!4t
Rt Rt Rt RtR tR
tR tR tR tRtRtRtRtRtRtRtRpRltRtRtRtRtRt Rt!Rt"Rt#Rt$R t%R!t&RpR"lt'RpR#lt(R$t)R%t*R&t+RpR'lt,R(t-R)t.R*t/R+t0R,t1R-t2R.t3R/t4RpR0lt5R1t6R2t7R3t8RpR4lt9R5t:RpR6lt;RpR7lt<R8t=R9t>RpR:lt?R;t@R<tAR=tBR>tCR?tDR@tERAtFRBtGRCtHRqRDltIREtJRFtKRGtLRHtMRItNRJtORKtPRLtQRMtRRNtSROtTRPtURQtVRRtWRStXRTtYRpRUltZRVt[RWt\RXt]RrRYlt^RZt_R[t`R\taR]tbR^tcR_tdRpR`lteRpRaltfRpRbltgRcthRdtiRetjRpRfltkRgtlRsRhltmRitnRjtoRktpRltqRtV3RmlRnlltrRotsVttR#)u<> panelPluginzdata/list.jsonzdata/type.jsonzconfig/index.jsonzconfig/link.jsonc<08><00>RVnRVnRVnRVn/Vn.VnRVnRVnRVnRVnRVn VPR,Vn
VPR,Vn VPR,Vn VPR,VnVPR,VnVPR,VnVPR,VnVPR ,VnVPR
,VnR VnR VnR Vn^VnVPR,VnRVn.Vn.VnRVn^VnRVnVP'gJ\>P@!R4PCRR4PER4PG4Vn\HPJPMVP&4'g%\HPN!VP&R4R#R# .TnL`;i \Pd1p\>PR!RPUT44Rp?R#Rp?ii;i)Nz/www/server/panelz/plugin/z/data/plugin_bin.plz/apiz/panel/get_plugin_listz/panel/download_pluginz/panel/download_plugin_mainz/panel/get_soft_list_statusz/panel/get_unbindingz/temp/<2F>F<>iz/data/error_pl.plz=/www/server/panel/YakPanel/templates/default/block_error.htmlz/www/server/panel/plugin<69>tasks<6B> status!=?<3F> status,namei<65>z(Failed to create temporary directory: {}<7D><01>1)+<2B>_panelPlugin__isTable<6C>_panelPlugin__tasks<6B>_panelPlugin__product_list<73>_panelPlugin__plugin_list<73>_panelPlugin__exists_names<65>_panelPlugin__plugin_s_list<73>_panelPlugin__plugin_info<66>_panelPlugin__plugin_name<6D>_panelPlugin__plugin_object<63>_panelPlugin__panel_path<74>_panelPlugin__plugin_path<74>_panelPlugin__plugin_save_file<6C>_panelPlugin__official_url<72>_panelPlugin__api_root_url<72>_panelPlugin__api_url<72>_panelPlugin__download_url<72>!_panelPlugin__download_d_main_url<72>
_check_url<EFBFBD>_unbinding_url<72>_panelPlugin__tmp_path<74>_panelPlugin__plugin_timeout<75>_panelPlugin__is_php<68>_panelPlugin__install_opt<70>_panelPlugin__pid<69>_panelPlugin__path_error<6F>_panelPlugin__error_html<6D>_panelPlugin__sub_rules<65>_panelPlugin__replace_rule<6C>pids<64>ROWS<57>_panelPlugin__install_path<74>public<69>M<>where<72>field<6C>select<63>os<6F>path<74>exists<74>makedirs<72>OSError<6F> print_log<6F>format)<02>self<6C>es& r<00>__init__<5F>panelPlugin.__init__#s<00><00><1D><04><0E><1B><04> <0C>"<22><04><1B>!<21><04><1A> <20><04><1B>!<21><04><1C>!<21><04><1A>!<21><04><1A>#<23><04><1C>!<21><04><1A>/<2F><04><19>!<21>.<2E>.<2E><1A>;<3B><04><1A>"&<26>"3<>"3<>6K<36>"K<><04><1F>"<22>1<>1<>F<EFBFBD>:<3A><04><1B><1D>,<2C>,<2C>/G<>G<><04><0E>"<22>1<>1<>4L<34>L<><04><1B>%)<29>%8<>%8<>;X<>%X<><04>"<22><1E>-<2D>-<2D>0M<30>M<><04><0F>"<22>1<>1<>4J<34>J<><04><1B><1E>+<2B>+<2B>h<EFBFBD>6<><04><0F> $<24><04><1D><1D><04> <0A> <20><04><1A><16><04>
<EFBFBD> <20>-<2D>-<2D>0C<30>C<><04><19>[<5B><04><19><1D><04><18> <20><04><1B><18><04> <09><16><04> <09>8<><04><1B><13>|<7C>|<7C>|<7C> "<22>%<25>x<EFBFBD>x<EFBFBD><07>0<>6<>6<>{<7B>F<EFBFBD>K<>Q<>Q<>R_<52>`<60>g<>g<>i<><04> <0C><12>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>o<EFBFBD>o<EFBFBD>.<2E>.<2E> W<01><12> <0B> <0B>D<EFBFBD>O<EFBFBD>O<EFBFBD>U<EFBFBD>3<>/<2F><> "<22>!<21><04> <0C><>
<1B> W<01><16> <20> <20>!K<>!R<>!R<>ST<53>!U<>V<>V<><56> W<01>s%<00>AH4<00>!I<00>4 H?<03> I=<03> %I8<03>8I=c<08><><00>RpRV9g!\P!V4pV'dV#\P!\P
!R44p\ PPR4pVP4EFZp\\W5,44EF7pW5,V,R,PR4pRW5,V,R&VF<p\ PPV4'gK*RW5,V,R&M R W5,V,R
&W5,V,R,'gK<>W5,V,R ,PR 4p V ^,p
\V 4^8<>dV'g
V ^,p
\P!V
4^,P4W5,V,R
&EK: EK] \P!W#R 4V#)<0E>plugin_lib_list<73>forcezconfig/lib.jsonz/bin/yum<75>check<63>,F<>statusT<73>-<2D>version<6F>getvz:D<><44>Q)r<00>get<65>json<6F>loadsr:<00>readFiler?r@rA<00>keys<79>range<67>len<65>split<69> ExecShell<6C>strip<69>set) rFrT<00>cacheKey<65>libList<73>centos<6F>keyr<00>checksrM<00>shellTmp<6D>shellExs && r<00>
check_deps<EFBFBD>panelPlugin.check_depsTsi<00><00>$<24><08><16>#<23>~<7E><1B>i<EFBFBD>i<EFBFBD><08>)<29>G<EFBFBD><16>w<EFBFBD><0E><16>*<2A>*<2A>V<EFBFBD>_<EFBFBD>_<EFBFBD>-><3E>?<3F>@<40><07><13><17><17><1E><1E>
<EFBFBD>+<2B><06><1A><<3C><<3C>><3E>C<EFBFBD><1A>3<EFBFBD>w<EFBFBD>|<7C>,<2C>-<2D><01> <20><1C>a<EFBFBD><1F><17>1<>7<>7<><03><<3C><06>,1<><07> <0C>Q<EFBFBD><0F><08>)<29>#<23>E<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>e<EFBFBD>,<2C>,<2C>48<34><07> <0C>Q<EFBFBD><0F><08>1<><1D>$<24>.1<EFBFBD><07> <0C>Q<EFBFBD><0F> <09>*<2A><1A><<3C><01>?<3F>8<EFBFBD>,<2C>,<2C>&<26>|<7C>A<EFBFBD><EFBFBD>v<EFBFBD>6<><<3C><<3C>T<EFBFBD>B<>H<EFBFBD>&<26>q<EFBFBD>k<EFBFBD>G<EFBFBD><1A>8<EFBFBD>}<7D>q<EFBFBD>(<28><16>8<EFBFBD>A<EFBFBD>;<3B><17>17<31>1A<31>1A<31>'<27>1J<31>1<EFBFBD>1M<31>1S<31>1S<31>1U<31>G<EFBFBD>L<EFBFBD><11>O<EFBFBD>I<EFBFBD>.<2E>.<2E>"<22> <0E> <09> <09>(<28>5<EFBFBD>)<29><16>rc<08><00>Rp\P!VR4\PP V4'dJ\P
!V4R8Xd\P !V4R#\P !V4R#)z/etc/init.d/bt_10000100.pl<70>TrueTF)r:<00> writeFiler?r@rArW<00>remove)rF<00> test_files& r<00>check_sys_write<74>panelPlugin.check_sys_writemsY<00><00>0<> <09><0E><18><18><19>6<EFBFBD>*<2A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>)<29> $<24> $<24><15><EFBFBD><EFBFBD>y<EFBFBD>)<29>V<EFBFBD>3<><12> <09> <09>)<29>$<24><1B> <0E>I<EFBFBD>I<EFBFBD>i<EFBFBD> <20>rc<08><><00>VR8XdR#VPR4pVF=pVPV4pV'gKVR,R8XgK.VR,VnR# R#)<07>TrN<00>setup<75>titleF<65><46><EFBFBD><EFBFBD><EFBFBD>)r[<00> get_soft_find<6E> mutex_title)rF<00>mutex<65>mutexs<78>name<6D>
pluginInfos&& r<00> check_mutex<65>panelPlugin.check_mutexxsZ<00><00> <10>B<EFBFBD>;<3B>t<EFBFBD><16><1B><1B>S<EFBFBD>!<21><06><1A>D<EFBFBD><1D>+<2B>+<2B>D<EFBFBD>1<>J<EFBFBD><1D>x<EFBFBD><19>'<27>"<22>d<EFBFBD>*<2A>#-<2D>g<EFBFBD>#6<><04> <20><1C> <1B> rc<08>v<00>V'gR#VPR4pRpVF<>pV'gK VPR4R8wdOVPR4pVF5pVPV4pV'gR#VR,R8XdRpKiRpK7 KqVPV4pVR,R8wgK<>RpV# V#)TrN<00>|rqFrs)r[<00>findrt)rF<00> dependent<6E>
dependentsrO<00>dep<65>namesrxrys&& r<00>check_dependent<6E>panelPlugin.check_dependent<6E>s<><00><00><18><14><1E>_<EFBFBD>_<EFBFBD>S<EFBFBD>)<29>
<EFBFBD><15><06><1D>C<EFBFBD><16><08><12>x<EFBFBD>x<EFBFBD><03>}<7D><02>"<22><1B> <09> <09>#<23><0E><05>!<21>D<EFBFBD>!%<25>!3<>!3<>D<EFBFBD>!9<>J<EFBFBD>%<25>d<EFBFBD>!<21>'<27>*<2A>d<EFBFBD>2<>!%<25><06><1D>!&<26><06>"<22>"<22>/<2F>/<2F><03>4<>
<EFBFBD><1D>g<EFBFBD>&<26>$<24>.<2E>"<22>F<EFBFBD><19><15> <0A>#<1E>"<16> rc<08>><00>\P!4V8dR#R#)FT)<02>psutil<69> cpu_count)rF<00>cpuLimits&&r<00>check_cpu_limit<69>panelPlugin.check_cpu_limit<69>s<00><00> <11> <1B> <1B> <1D><08> (<28><15>rc<08>n<00>\P!4PR, R, V8dR#R#)iFT)r<><00>virtual_memory<72>total)rF<00>memLimits&&r<00>check_mem_limit<69>panelPlugin.check_mem_limit<69>s(<00><00> <11> <20> <20> "<22> (<28> (<28><14> -<2D>d<EFBFBD> 2<>X<EFBFBD> =<3D>e<EFBFBD>rc<08><><00>V^8XdR#V^8Xd"\PPR4pV#V^8Xd"\PPR4pV#R#)rTz /usr/bin/yum<75>/usr/bin/apt-get)r?r@rA)rF<00>osLimitra<00>debians&& r<00>check_os_limit<69>panelPlugin.check_os_limit<69>sK<00><00> <12>a<EFBFBD><<3C><04> <12>a<EFBFBD><<3C><17>W<EFBFBD>W<EFBFBD>^<5E>^<5E>N<EFBFBD>3<>F<EFBFBD><19>M<EFBFBD> <14><01>\<5C><17>W<EFBFBD>W<EFBFBD>^<5E>^<5E>$6<>7<>F<EFBFBD><19>M<EFBFBD>rc <08>
<00>\VR4'gVPVP4pM VPpRp\P
P V4'd;\\P!V44^d8d\P!V4V'g,\P!R\P!R44#VR,Vn VPVR,4'g7\P!R\P!RVP44#\VR4'gRVPVR,4'g4\P!R\P!RVR,44#R V9Ed<>VR
,EF<>pVR ,VP 8wdKR V9gR Vn\%VP"4^8<>dR VnVP"R 8Xd<>VP'VR,4'g6\P!R\P!RVR,44u#VP)VR,4'g6\P!R\P!RVR,44u#VP+VR,4'gN^R^R^R/p\P!R\P!RV\%VR,4,44u#\VR4'dEK<>VPVR,4'dEK<>\P!R\P!RVR,44u# R#R#)ryz#/www/server/panel/install/public.shF<68>$The specified plugin does not exist!rvzPlease uninstall [{}] first<73>idrz<Depends on the following software, please install [{}] firstrQ<00>versions<6E> m_version<6F>type<70>0<> cpu_limitz0At least [{0}] CPU cores are required to install<6C> mem_limitz/At least [{0} MB] memory is required to install<6C>os_limit<69>All<6C>Centosz Ubuntu/DebianzOnly supports [{}] systemz;Depend on the following software, please install first [{}]N)<16>hasattrrt<00>sNameryr?r@rArZr:rWrk<00>return_msg_gettext<78>langrurzr<>rQr<><00>intr<74>r<>r<>)rFrTry<00>p_node<64> versionInfo<66>m_pss&& r<00>check_install_limit<69>panelPlugin.check_install_limit<69>s,<00><00><16>s<EFBFBD><<3C>(<28>(<28><1D>+<2B>+<2B>C<EFBFBD>I<EFBFBD>I<EFBFBD>6<>J<EFBFBD><1C><1E><1E>J<EFBFBD>6<><06> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>&<26> !<21> !<21><12>6<EFBFBD>?<3F>?<3F>6<EFBFBD>*<2A>+<2B>c<EFBFBD>1<>2<EFBFBD>9<EFBFBD>9<EFBFBD>V<EFBFBD>3D<33><19>&<26>";<3B>";<3B>E<EFBFBD>6<EFBFBD>;<3B>;<3B>Ou<4F>Cv<43>"w<>w<>%<25>g<EFBFBD>.<2E><04><18><13><1F><1F>
<EFBFBD>7<EFBFBD> 3<>4<>4<>V<EFBFBD>=V<>=V<>W\<5C>^d<>^i<>^i<>kH<02>IM<02>IY<02>IY<02>_Z<02>>[<02>7[<02><16>s<EFBFBD>D<EFBFBD>!<21>!<21><17>'<27>'<27>
<EFBFBD>;<3B>(?<3F>@<40>@<40><16>Ib<49>Ib<49>ch<63>jp<6A>ju<6A>ju<6A>wu<02>v@<03>AL<03>vM<03>kN<03>JO<03>CO<03> <14><03> <1B>)<29>*<2A>5<>5<> <0B><1E>{<7B>+<2B>s<EFBFBD>{<7B>{<7B>:<3A>H<EFBFBD><1D><13>}<7D><13>c<EFBFBD>h<EFBFBD><16>s<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D>1<EFBFBD>$<24><13>c<EFBFBD>h<EFBFBD><16>8<EFBFBD>8<EFBFBD>s<EFBFBD>?<3F><1F>/<2F>/<2F> <0B>K<EFBFBD>0H<30>I<>I<>%<25>8<>8<><15><06> <0B> <0B>L~<7E>AL<02>MX<02>AY<02>AZ<02> [<02>[<02><1F>/<2F>/<2F> <0B>K<EFBFBD>0H<30>I<>I<>%<25>8<>8<><15><06> <0B> <0B>L}<7D>@K<02>LW<02>@X<02>AY<02> Z<02>Z<02><1B>*<2A>*<2A>;<3B>z<EFBFBD>+B<>C<>C<><1D>u<EFBFBD>a<EFBFBD><18>1<EFBFBD>o<EFBFBD>F<>D<EFBFBD>!<21>4<>4<>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>Hc<48>dh<64>il<69>mx<6D>zD<02>nE<02>jF<02>eG<02>=H<02>I<02>I<02><1E>s<EFBFBD>D<EFBFBD>)<29>)<29><1F>/<2F>/<2F> <0B>K<EFBFBD>0H<30>I<>I<>%<25>8<>8<><15>v<EFBFBD>{<7B>{<7B>LI<02>JU<02>Va<02>Jb<02>@c<02> d<02>d<02> 6<> rc <0C><<00>VPVP4pV#)uq
@name 获取插件下载进度
@author hwliang<2021-06-25>
@param plugin_name<string> 插件名称
@return dict
)<02> _panelPlugin__get_download_speed<65> plugin_name)rFrT<00>results&& r<00>get_download_speed<65>panelPlugin.get_download_speed<65>s<00><00><16>*<2A>*<2A>3<EFBFBD>?<3F>?<3F>;<3B><06><15> rc <0C>:<00>VPP4pRPVPV4p\P
P V4'd\P!V4\P!R\P!R44#)uw
@name 取消指定插件安装过程
@author hwliang<2021-07-07>
@param plugin_name<string> 插件名称
@return void
z{}/{}FzInstallation process canceled!) r<>r]rEr.r?r@rA<00>shutil<69>rmtreer:<00> returnMsgr<67>)rFrTr<><00>tmp_paths&& r<00> close_install<6C>panelPlugin.close_install<6C>se<00><00><1A>o<EFBFBD>o<EFBFBD>+<2B>+<2B>-<2D> <0B><1A>><3E>><3E>$<24>/<2F>/<2F>;<3B>?<3F><08> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28> #<23> #<23>V<EFBFBD>]<5D>]<5D>8<EFBFBD>%<<3C><15><1F><1F><05>v<EFBFBD>{<7B>{<7B>3S<33>'T<>U<>Urc <08><><00>\P!R4p\P!R4p\P!R4p\P!R4p\P!R4pVP4'g(\P!RRP W#WE44#RV9g,\P!R\P!R44#VP VP 4pWqnVPV4pV'dV#VR ,R9d^VR
&VR
,^8wdVPWq4p MVPWq4p R V 9dpV R ,'da\P!4'gF\P!R R P VP4RVR,RVR ,/^R7V # T #;i)z*System critical directory is not writable!z91. If [System Hardening] is installed, please turn it offzE2. If Yunsuo is installed, please turn off [System Hardening] featurezG3. If Safedog is installed, please turn off [System Protection] featurez:4. If other security software is used, please uninstall itFz><a style=color:red;>ERROR:{}</a><br>{}<br><br>{}<br>{}<br><br>r<>z!Please specify the software name!rxr<>rO<00>postz{}/api/setupCount/setupPlugin<69>pidr<64><00>p_name)<02>data<74>timeout)<02> dns_manager<65>mail_sys)r:r<>rmr<>rErtr<>ryr<><00> install_sync<6E> install_async<6E>is_self_hosted<65> arequestsr')
rFrT<00>str1<72>str2<72>str3<72>str4<72>str5ry<00> check_resultr<74>s
&& r<00>install_plugin<69>panelPlugin.install_plugin<69>s<><00><00><15>{<7B>{<7B>G<>H<><04><15>{<7B>{<7B>V<>W<><04><15>{<7B>{<7B>b<>c<><04><15>{<7B>{<7B>d<>e<><04><15>{<7B>{<7B>W<>X<><04><13>#<23>#<23>%<25>%<25><19>,<2C>,<2C>U<EFBFBD>-m<>-t<>-t<>15<31>T<EFBFBD>.I<01>J<01> J<01><17>#<23>~<7E>f<EFBFBD>&?<3F>&?<3F><05>v<EFBFBD>{<7B>{<7B>Sv<53>Gw<47>&x<>x<><1A>'<27>'<27><03> <09> <09>2<>
<EFBFBD>#<23><0E><1B>/<2F>/<2F><03>4<> <0C> <17><1F> <1F> <15>f<EFBFBD> <1D>!;<3B> ;<3B>!"<22>J<EFBFBD>v<EFBFBD> <1E> <15>f<EFBFBD> <1D><11> "<22><19>&<26>&<26>z<EFBFBD>6<>F<EFBFBD><19>'<27>'<27>
<EFBFBD>7<>F<EFBFBD> <14><17>6<EFBFBD>!<21><19>(<28>#<23>#<23>F<EFBFBD>,A<>,A<>,C<>,C<><1A>$<24>$<24>V<EFBFBD>,K<>,R<>,R<>SW<53>Sf<53>Sf<53>,g<>ns<6E>t~<7E>@D<02>uE<02>FN<02>OY<02>Z`<02>Oa<02>nb<02>kl<02>m<02><16> <0A><> <14>t<EFBFBD><15> <0A>s<00>G<00>5G<00>AG<00>Gc<08>J<00>^RIpVP4PR4R,pRTR,^,9Ed{Rp\PP T4'g\P
!TRR7\ P!RT,R ,4TR
,TR ,,R ,p\ P!R PTPTR,^,R,T4T4\ P!T4TR,^,R,8wd,\ P!R\ P!R44#Rp\PP TR,4'dTR,^,R,pTPRYg4#\TR4'd+T;P RTP",, unTP%TR ,TP 4# RpEL<>;i)rN<>token<65>downloadr<64><00>/www/server/panel/temp<6D><70><00><01>mode<64>rm -rf <20>/*<2A>/rx<00>.zipz+{}/api/plugin/download?filename={}&token={}<7D>md5Fz1File hash verification failed, stop installation!<21>install_checks<6B> version_msg<73> min_version<6F>.)<13> panelAuth<74>create_serveridr?r@rArBr:r\<00> downloadFilerEr'<00>FileMd5r<35>r<><00>
update_zipr<EFBFBD>rQr<><00>_panelPlugin__install_plugin)rFryrTr<>r<>r<><00>toFile<6C>updates&&& rr<><00>panelPlugin.install_sync s<><00><00><18> <19><1D>'<27>'<27>)<29>9<>9<>$<24>?<3F><07>H<>E<EFBFBD> <16><1A>J<EFBFBD>/<2F><01>2<> 2<>/<2F>H<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>R<EFBFBD>[<5B>[<5B><18>s<EFBFBD>-K<> <12> <1C> <1C>Y<EFBFBD><18>1<>D<EFBFBD>8<> 9<><1D><03>^<5E>j<EFBFBD><16>&8<>8<>6<EFBFBD>A<>F<EFBFBD> <12> <1F> <1F> M<> T<> T<><14>#<23>#<23><1A>:<3A>&<26>q<EFBFBD>)<29>*<2A>5<><15>!<12><19>  <1A>
<16>~<7E>~<7E>f<EFBFBD>%<25><1A>J<EFBFBD>)?<3F><01>)B<>5<EFBFBD>)I<>I<>RX<52>Rk<52>Rk<52>lq<6C>sy<73>s~<7E>s~<7E>@s<02>tt<02>Su<02>Lu<02><1A>F<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)9<>:<3A>;<3B>;<3B>Z<EFBFBD>PZ<50>E[<5B>\]<5D>E^<5E>_l<5F>Em<45>V<EFBFBD><17>?<3F>?<3F>4<EFBFBD><06>6<> 6<><17>s<EFBFBD>M<EFBFBD>*<2A>*<2A><13> <0B> <0B>s<EFBFBD>S<EFBFBD>_<EFBFBD>_<EFBFBD>4<>4<> <0B><17>(<28>(<28><1A>F<EFBFBD>);<3B>S<EFBFBD>[<5B>[<5B>I<> I<><49>A <19><18>E<EFBFBD>s <00>&H<00>H"c<08><><00>\PPV4'gR#Rp\PPV4'gR#\P!V4pR.pRP VR,4.p\ \V44F!pVPWF,WV,4pK# \P!W4R#)Fz/www/server/panel/pyenv/binzGPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binzIPATH={}/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<69>:T)
r?r@rAr:rWrErYrZ<00>replacerj)rF<00>filename<6D>env_py<70> temp_file<6C>env_path<74>rep_pathrs&& r<00> set_pyenv<6E>panelPlugin.set_pyenv3s<><00><00><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><05>.<2E><06><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25>%<25>e<EFBFBD><1A>O<EFBFBD>O<EFBFBD>H<EFBFBD>-<2D> <09>]<5D>^<5E><08>_<>f<>f<>gm<67>ps<70>gs<67>t<>u<><08><16>s<EFBFBD>8<EFBFBD>}<7D>%<25>A<EFBFBD>!<21>)<29>)<29>(<28>+<2B>x<EFBFBD>{<7B>C<>I<EFBFBD>&<26><0E><18><18><18>-<2D>rc
<08><> <00>Rp\P!R4p\VR4'dRpRpRV9gRVn\ VP4^8<>dRVnVP
R8Xd=VP R8Xd,\P!R\P!R 44#VP
PR
4R58wd(VP
PR 4^,VnR pR VP
8Xd[\PPR4'd6RpVP PRR 4pRV,R,V,pRp\PPV4'g\P!V4Rp \P!4R8Xd+\P !\P"!R44p \P$!RV 4\P$!RR4\PPR4'd!VPR8Xd RVnMRVnV'dVP'VPV4pRP'VPW2P
VP V4p
VP
R8Xd<>\PPRP'\P(!444'dQ\+R P'\P(!44R!4;_uu_4p V P-R"4R#R#R#4V
R$, p
\P!4R%8Xd
V
R&, p
\PPR'4'd\P$!R'R 4\P.!R(4P1R)R#VR*,VP
,R ,VP ,R+,R,R\2P4!R-4V
34\6P8!R.4\P$!R/R04\P:!R1R2VP
VP 34\P!R3\P!R444# +'giELv;i)6<>install<6C>Install<6C>upgrader<65>r<>r<><00>nginxz1.8FzKNginx 1.8.1 is too old, no longer available, please choose another version!<21>php-rP<00><00>php<68>/usr/local/lsws/bin/lswsctrlzphp-olsr<73>z: &> /tmp/panelExec.log && /bin/bash install_soft.sh {} {} <20> <20>/www/server/php<68>false<73>apache<68>/www/server/apache/version.pl<70>/var/bt_apacheVersion.pl<70>/var/bt_setupPath.confz/wwwr<77><00>3<>4zHcd /www/server/panel/install && /bin/bash install_soft.sh {} {} {} {} {}<7D>
phpmyadminz{}/data/ssl.pl<70>{}/data/phpmyadmin_ssl.mark<72>wrNz&> /tmp/panelExec.log<6F> openlitespeedz3 && sleep 1 && /usr/local/lsws/bin/lswsctrl restartz/tmp/panelExec.logr<00>#id,name,type,status,addtime,execstr<74>[<5B>]<5D> execshell<6C>%Y-%m-%d %H:%M:%S<> install_task<73>/tmp/panelTask.plri<00> Installer<65>+Successfully added intallation task [{}-{}]T<> Installation task added to queuers)r:r<>r<>r<>r<>r<>rQr<>r~r[r?r@rAr<>rB<00> get_webserver<65> xss_versionrWrjrE<00>get_panel_path<74>open<65>writer;<00>add<64>time<6D>strftimer<00>delete<74>write_log_gettext) rFryrT<00>mtype<70>mmsg<73> ols_execstr<74> ols_sName<6D> ols_version<6F>php_path<74> apacheVersion<6F>execstr<74>fps &&& rr<><00>panelPlugin.install_async@s<><00><00>
<1A><05><15>{<7B>{<7B>9<EFBFBD>%<25><04> <12>3<EFBFBD> <09> "<22> "<22><1C>E<EFBFBD><1C>D<EFBFBD><15><13>}<7D><13>c<EFBFBD>h<EFBFBD> <0E>s<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D>1<EFBFBD> <1C><13>c<EFBFBD>h<EFBFBD> <0E>9<EFBFBD>9<EFBFBD><07> <1F><12>{<7B>{<7B>e<EFBFBD>#<23>F<EFBFBD>,E<>,E<>e<EFBFBD>V<EFBFBD>[<5B>[<5B>Zg<02>Nh<02>-i<02>&i<02> <0E>9<EFBFBD>9<EFBFBD>><3E>><3E>&<26> !<21>R<EFBFBD> '<27>C<EFBFBD>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>4H<34><11>4K<34><03> <09><18> <0B> <10>C<EFBFBD>I<EFBFBD>I<EFBFBD> <1D>"<22>'<27>'<27>.<2E>.<2E>1O<31>"P<>"P<>!<21>I<EFBFBD><1D>+<2B>+<2B>-<2D>-<2D>c<EFBFBD>"<22>5<>K<EFBFBD>V<>Yb<59>b<>eh<65>h<>kv<6B>v<>K<EFBFBD>$<24><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><12><1B><1B>X<EFBFBD>)><3E><1D> <0A> <11> <1F> <1F> !<21>X<EFBFBD> -<2D>"<22>.<2E>.<2E>v<EFBFBD><EFBFBD><EFBFBD>?^<5E>/_<>`<60>M<EFBFBD><0E><18><18>3<>M<EFBFBD>B<><0E><18><18>1<>&<26>9<> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>,<2C> -<2D> -<2D><12>x<EFBFBD>x<EFBFBD>3<EFBFBD><EFBFBD><1E><03><08><1E><03><08> <16>%<25>,<2C>,<2C>S<EFBFBD>X<EFBFBD>X<EFBFBD>e<EFBFBD><<3C>K<EFBFBD>\<5C>c<>c<> <0F>H<EFBFBD>H<EFBFBD>e<EFBFBD>Y<EFBFBD>Y<EFBFBD><03> <0B> <0B>[<5B>B<01><07> <0E>9<EFBFBD>9<EFBFBD> <0C> $<24><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>.<2E>5<>5<>f<EFBFBD>6K<36>6K<36>6M<36>N<>O<>O<><19>7<>><3E>><3E>v<EFBFBD>?T<>?T<>?V<>W<>Y\<5C>]<5D>]<5D>ac<61><16>H<EFBFBD>H<EFBFBD>S<EFBFBD>M<EFBFBD>^<01> <14>.<2E> .<2E>G<EFBFBD> <11> <1F> <1F> !<21>_<EFBFBD> 4<> <13>L<> L<>G<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>.<2E> /<2F> /<2F> <12> <1C> <1C>1<>"<22> 5<><0E><08><08><17><19><1D><1D>C<>T<EFBFBD>4<EFBFBD>RU<52>:<3A>VY<56>V_<56>V_<56>K_<4B>`c<>Kc<4B>dg<64>do<64>do<64>Ko<4B>ps<70>Ks<4B>t<74>AD<02>EI<02>ER<02>ER<02>Sf<02>Eg<02>ho<02>Ep<02> q<02> <0A> <0C> <0C>^<5E>$<24><0E><18><18>,<2C>V<EFBFBD>4<><0E> <20> <20><1B>-Z<>\_<>\e<>\e<>fi<66>fq<66>fq<66>[r<>s<><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;]<5D>/^<5E>_<>_<>^<01>]<5D>]<5D>s <00>9R8<05>8 S c<08> <00>VPVP4pV'g,\P!R\P!R44#VR,^8wEd<>VP
R,VR,,pVR,^8wd<>\ R,R,VR,,R,pRVR,,p\P!WE4VPV4\PPV4'dI\PPV4^d8<64>d%\P!R V,R
,4\PPVR ,4'd=VPVR ,4\P!R V,R ,4\PPV4'd\P!R V,4\P!RRVR,34\P!R\P!R44#VR,R8Xde\P!R4P!R^4P#4^8<>d,\P!R\P!R44#VR,R8Xd$^RIpVP%4P'V4VR,R8Xd$^RIpVP)4P'V4RVn\ R,R,R8wdRVnVPP-4VnVPP/R4R(8wd(VPP1R 4^,VnR!VP*,R",VPP-4,R#,VP2P5R$R%4,p\P!V4\P!RR&VPVP234\P!R\P!R'44#))Fr<46>r<>r<>rx<00> download_url<72>/install/plugin/z_en/install.shz
/tmp/%s.sh<73>
/bin/bash z
uninstall<6C> /install.sh<73>/install.sh uninstallr<6C>r<00>&Successfully uninstalled software [{}]rrTzUninstallaton succeeded<65>mysql<71> databasesz db_type=?z<>The database list is not empty. For your data security, please backup and delete the existing database.<br>Forced uninstall command: rm -rf /www/server/mysqlr<6C>Nr<4E>r<><00> server_os<6F>x<>RHELrr<>rP<00>:cd /www/server/panel/install && /bin/bash install_soft.sh <20> uninstall r<>r<>r<>zSuccessfully unintalled [{}-{}]<5D>Uninstallation succeededrs)rtr<>r:r<>r<>r9rr<>r<>r?r@rA<00>getsizer\rr;r<<00>countr<74><00>del_all_log_formatr<74>r<><00>lowerr~r[rQr<>) rFrTry<00>
pluginPathr&r<>r<>r<>r"s && r<00>uninstall_plugin<69>panelPlugin.uninstall_pluginwsj<00><00><19>'<27>'<27><03> <09> <09>2<>
<EFBFBD><19>&<26>";<3B>";<3B>E<EFBFBD>6<EFBFBD>;<3B>;<3B>Ou<4F>Cv<43>"w<>w<> <15>f<EFBFBD> <1D><11> "<22><1D>,<2C>,<2C>s<EFBFBD>2<>Z<EFBFBD><06>5G<35>G<>J<EFBFBD><19>&<26>!<21>Q<EFBFBD>&<26>&<26>~<7E>6<>9K<39>K<>j<EFBFBD>Y_<59>N`<60>`<60>cs<63>s<> <0C>%<25>
<EFBFBD>6<EFBFBD>(:<3A>:<3A><06><16>#<23>#<23>L<EFBFBD>8<><14><0E><0E>v<EFBFBD>&<26><15>7<EFBFBD>7<EFBFBD>><3E>><3E>&<26>)<29>)<29><19>w<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>.<2E><13>4<><1E>(<28>(<28><1C><06>)><3E><1C>)M<>N<><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>=<3D>8<>9<>9<><14><0E><0E>z<EFBFBD>M<EFBFBD>9<>:<3A><16> <20> <20><1C>
<EFBFBD>!:<3A>=T<>!T<>U<><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29>6<EFBFBD>+;<3B>+;<3B>I<EFBFBD>
<EFBFBD><R<>+S<> <12> $<24> $<24>[<5B>1Y<31>[e<>fm<66>[n<>Zp<5A> q<><19>,<2C>,<2C>T<EFBFBD>6<EFBFBD>;<3B>;<3B>?X<>3Y<33>Z<> Z<><1A>&<26>!<21>W<EFBFBD>,<2C><19>8<EFBFBD>8<EFBFBD>K<EFBFBD>(<28>.<2E>.<2E>{<7B>1<EFBFBD>=<3D>C<>C<>E<><01>I<>RX<52>Rk<52>Rk<52>lq<6C>sy<73>s~<7E>s~<7E>@_<04>t`<04>Sa<04>La<04><19>&<26>!<21>W<EFBFBD>,<2C><1C><15> <0B> <0B> <0A>0<>0<><13>5<><19>&<26>!<21>X<EFBFBD>-<2D><1D><16> <0A> <0A><0F>2<>2<>3<EFBFBD>7<><1A>C<EFBFBD>H<EFBFBD><16>{<7B>#<23>C<EFBFBD>(<28>F<EFBFBD>2<>s<EFBFBD>C<EFBFBD>H<EFBFBD><1B> <09> <09><0F><0F>)<29>C<EFBFBD>I<EFBFBD><12>y<EFBFBD>y<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25><12>+<2B><1F>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>0<><11>3<><03> <09>R<>SV<53>S[<5B>S[<5B>[<5B>\i<>i<>lo<6C>lu<6C>lu<6C>l{<7B>l{<7B>l}<7D>}<7D>AD<02>D<02>FI<02>FQ<02>FQ<02>FY<02>FY<02>Z]<02>^`<02>Fa<02>a<02>G<EFBFBD> <12> <1C> <1C>W<EFBFBD> %<25> <12> $<24> $<24>[<5B>1R<31>TW<54>T]<5D>T]<5D>^a<>^i<>^i<>Sj<53> k<><19>,<2C>,<2C>T<EFBFBD>6<EFBFBD>;<3B>;<3B>?Y<>3Z<33>[<5B> [rNc <08><><00>^pV'd(\VR4'd\VP4pR\9d\R,'d ^pR\R&R\9d ^pR\R&\P
!V^8XdRMR4pV'dRV9dV'd
RV9dV#V^8<>d7\P !R4\P!VP4\P!R 4pVfHR \P!\P!44,p\P!R V4\P!R V,\VR ,44\P!RP!V4\\\"P"!4444^p\TR4'd\TR,4p\TR4'd<>TP$'d<>^R
Ip^R
IpRP!TP*4pTP'4P-R
4p /p
RT 9dRRP!T R,4/p
\.P0!\P2!44T R&RTP$/p TP4!Y<>T
R^R7^pTP7TR,4TR&TP9TR,T4TR&\TR4'd<>TP$'d<>TP$P;4Tn.p TR,F<>p T R,P;4P=TP$4R8wgmT R,P;4P=TP$4R8wg8T R,P;4P=TP$4R8wgK<>T P?T 4K<> Y<>R&TR,Fp RT 9gK T R,T R&K T# ELq;i ELx;i EL~;i)rrL<00> focre_cloudF<64>
init_cloudT<EFBFBD>init<69>successzrm -f /tmp/bmac_*<2A>p_tokenN<6E>bmac_z/tmp/<2F>proz /tmp/{}.timer<65><00>queryz{}/api/panel/submit_keywordr<64><00> authorizationzbt {}<7D>environment_info<66>keyword)<04>params<6D>headers<72>verifyr<79><00>listrxrr<00>ps<70>uninsatll_checks<6B>uninstall_checksrs) r<>r<>rLrr:<00>load_soft_listr\<00>
run_thread<EFBFBD>getCloudPHPExtrrT<00>Md5<64>get_mac_addressr^rj<00>strrErrCr<><00>requestsr'r<>rU<00>dumps<70>fetch_env_infor<6F><00>get_local_plugin<69> get_typesr7r~<00>append)rFrTrL<00>softListr@<00>sTyper<65>rT<00>countUrl<72>pdata<74> url_headersrF<00>tmpList<73>softInfos&& r<00>get_cloud_list<73>panelPlugin.get_cloud_list<73>sm<00><00><11><05> <0E>7<EFBFBD>3<EFBFBD><07>(<28>(<28><17><03> <09> <09>N<EFBFBD>E<EFBFBD> <18>G<EFBFBD> #<23><16>}<7D>%<25>%<25><19><05>).<2E><07> <0A>&<26> <17>w<EFBFBD> &<26><15>E<EFBFBD>$(<28>G<EFBFBD>L<EFBFBD> !<21><19>(<28>(<28><15>!<21><1A><14><15>G<><08> <0F>6<EFBFBD>S<EFBFBD>=<3D><17><1C>H<EFBFBD>,<2C>#<23>O<EFBFBD> <10>1<EFBFBD>9<EFBFBD> <12> <1C> <1C>0<> 1<> <12> <1D> <1D>d<EFBFBD>1<>1<> 2<>
<11><1B>i<EFBFBD>i<EFBFBD> <09>*<2A>G<EFBFBD><16><EFBFBD>!<21>F<EFBFBD>J<EFBFBD>J<EFBFBD>v<EFBFBD>/E<>/E<>/G<>$H<>H<><07><15> <09> <09>)<29>W<EFBFBD>-<2D> <12> <1C> <1C>W<EFBFBD>w<EFBFBD>.<2E><03>H<EFBFBD>U<EFBFBD>O<EFBFBD>0D<30> E<> <12> <1C> <1C>^<5E>2<>2<>7<EFBFBD>;<3B>S<EFBFBD><13>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B>AQ<41>=R<> S<><12><05> <14><16>s<EFBFBD>6<EFBFBD>"<22>"<22>C<EFBFBD><03>F<EFBFBD> <0B>,<<3C>E<EFBFBD><16>s<EFBFBD>7<EFBFBD>#<23>#<23><16>9<EFBFBD>9<EFBFBD>9<EFBFBD>$<24>#<23><<3C>C<>C<>D<EFBFBD>DW<44>DW<44>X<>H<EFBFBD>%<25>/<2F>/<2F>1<>A<>A<>$<24>G<>E<EFBFBD>"$<24>K<EFBFBD><1E>%<25>'<27>'6<><07><0E><0E>u<EFBFBD>W<EFBFBD>~<7E>8V<38>&W<> <0B>04<30>
<EFBFBD>
<EFBFBD>6<EFBFBD>;P<>;P<>;R<>0S<30>E<EFBFBD>,<2C>-<2D>!<21>3<EFBFBD>9<EFBFBD>9<EFBFBD><16>G<EFBFBD><1D> <20> <0A> <0A>h<EFBFBD> <0B>\a<>kl<6B>m<><1E>E<EFBFBD> <20>0<>0<><18>&<26>1A<31>B<><08><16><18> <20>><3E>><3E>(<28>6<EFBFBD>*:<3A>E<EFBFBD>B<><08><16><18> <12>3<EFBFBD><07> <20> <20><12>y<EFBFBD>y<EFBFBD>y<EFBFBD><1F>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD>-<2D><03> <09><1C><07> (<28><16> 0<> 0<>H<EFBFBD><1F><06>'<27>-<2D>-<2D>/<2F>4<>4<>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>?<3F>2<EFBFBD>E<> <20><17>)<29>/<2F>/<2F>1<>6<>6<>s<EFBFBD>y<EFBFBD>y<EFBFBD>A<>R<EFBFBD>G<> <20><14><0E>,<2C>,<2C>.<2E>3<>3<>C<EFBFBD>I<EFBFBD>I<EFBFBD>><3E>"<22>D<><1F><0E><0E>x<EFBFBD>0<> !1<>
$+<2B><16> <20> <20><16>(<28>(<28>H<EFBFBD>!<21><18>1<>/7<>8J<38>/K<><08>+<2B>,<2C>)<29><18><0F><>a <11> <10><>*<1D><1C><><13>t<EFBFBD>s9<00>.CP4<00> AQ<00>BQ<00>3P<<00> Q<00>4P9<03><Q<03>>Q<00>Q c <0C><><00>W2,
R, pV^8dV^8<>d VR,pW3#V^8dV^8<>d VR,pW3#V^8dV^8<>d
VR,pW3#)uC
level 提醒标记
s_time 当前时间戳
endtime 到期时间戳
rS<00>15<31>7rr )rF<00>level<65>s_time<6D>endtime<6D>
expire_days&&&& r<00> get_level_msg<73>panelPlugin.get_level_msg<73>sv<00><00> <1E>&<26>%<25>/<2F>
<EFBFBD> <15><02>?<3F>z<EFBFBD>A<EFBFBD>~<7E><19>D<EFBFBD>L<EFBFBD>E<EFBFBD>
<15><1F><1F> <18>!<21>^<5E>
<EFBFBD>Q<EFBFBD><0E><19>C<EFBFBD>K<EFBFBD>E<EFBFBD><15><1F><1F><18>!<21>^<5E>
<EFBFBD>Q<EFBFBD><0E><19>C<EFBFBD>K<EFBFBD>E<EFBFBD><14><1F>rc  <0C><><00>^RIpVP4pVPV4V^8<>dR#VPV4'd<>W#8wd$RPV\ V4^,4p MRPV4p Rp
VR9dRp
RV: RV: R V: R
V
: R V: R 2 p VP V^R PW<>V 4R7R#R#)uQ
title 软件标题
level 提醒标记
name 软件名称
expire_day 剩余天数
NFu%您的【{}】授权还有{}天到期u您的【{}】授权已到期<E588B0>truer<65>z;<a class="btlink" onclick="bt.soft.product_pay_view({name:'z',pid:z,limit:'z ',plugin:z,renew:u});">立即续费</a>uH{},为了不影响您正常使用【{}】功能,请及时续费,{})rf<00>expire<72>msgT)rB<00>ltd)<06> panelMessage<67>remove_message_level<65>is_levelrEr<><00>create_message) rFrrrfrxrir<>rhrq<00>pm<70>msg_last<73>pl_msg<73> renew_msgs &&&&&&& r<00>add_expire_msg<73>panelPlugin.add_expire_msg s<><00><00> <1C> <19> &<26> &<26> (<28><02>
<EFBFBD><1F><1F><05>&<26> <15><02>?<3F>5<EFBFBD> <0A>;<3B>;<3B>u<EFBFBD> <1D> <1D><14>}<7D>B<>I<>I<>%<25>PS<50>T^<5E>P_<50>bc<62>Pc<50>d<><08>:<3A>A<>A<>%<25>H<><08><1B>F<EFBFBD><13>}<7D>$<24> <20><06><>[`<02>ad<02>ei<02>jp<02>qx<02>y<02>I<EFBFBD> <0E> <1D> <1D>E<EFBFBD><11>8B<02>8I<02>8I<02>JR<02>Yb<02>8c<02> <1D> d<02><17>rc  <0C>*<00>\P!4pRp^RIpVP4pVR,R 9g<>VR,^8gVR,V,
R, ^8dWVPRW!R,4wrg\Wg4VP RVRVRVR,4VP R4R#VR,R 9gLVPRW!R,4wrgVP RVRVR VR,4VP R4R
pR#) u
data 插件列表
TNrprBrSu 企业版i.<2E><>u 专业版i<1E><>F)rs)rsr)rrqrj<00>printryrr)rFr<>rg<00> is_pluginrqrurfris&& r<00>
expire_msg<EFBFBD>panelPlugin.expire_msg"s<><00><00><16><19><19><1B><06><18> <09><1B> <19> &<26> &<26> (<28><02><13>E<EFBFBD>{<7B>d<EFBFBD>"<22><13>E<EFBFBD>{<7B>Q<EFBFBD><EFBFBD>D<EFBFBD><15>K<EFBFBD>&<26>$8<>E<EFBFBD>#A<>B<EFBFBD>#F<>#'<27>#5<>#5<>e<EFBFBD>F<EFBFBD><05>;<3B>#O<> <20><05><15>e<EFBFBD>'<27><14>#<23>#<23>K<EFBFBD><05>e<EFBFBD>J<EFBFBD>y<EFBFBD>QU<51>V[<5B>Q\<5C>]<5D><12>'<27>'<27><05>.<2E><1B><14>E<EFBFBD>{<7B>f<EFBFBD>$<24>#<23>1<>1<>%<25><06>E<EFBFBD>{<7B>K<> <1C>E<EFBFBD> <10> <1F> <1F> <0B>E<EFBFBD>%<25>
<EFBFBD>9<EFBFBD>T<EFBFBD>RW<EFBFBD>[<5B> Y<> <0E> #<23> #<23>E<EFBFBD> *<2A><1D>I<EFBFBD>rc<08><><00>^RIpVP4PR4pVPVR&\VP4VR&\VP
4VR&^VR,u;8d^8<>d/MM+\ P!R\ P!R44#VR,'g,\ P!R\ P!R44#\ P!\ P!R4R ,V^
4p\P!V4pV# \ P!R\ P!R
44u#;i) rNrK<00>numr<6D>FzScoring range [1-5]r<><00>homez/api/panel/plugin_score<72>Connection failure!) r<>r<>rKr<>r<>r<>r:r<>r<><00>httpPost<73>GetConfigValuerUrV)rF<00>argsr<73>r]r<>s&& r<00> set_score<72>panelPlugin.set_score?s<00><00> X<01> <1C><1D>'<27>'<27>)<29>9<>9<>$<24>?<3F>E<EFBFBD><1E>'<27>'<27>E<EFBFBD>$<24>K<EFBFBD><1E>t<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D>E<EFBFBD>%<25>L<EFBFBD><1E>t<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D>E<EFBFBD>%<25>L<EFBFBD><10>%<25><05>,<2C>!<21><01>!<21>&<26>*C<>*C<>E<EFBFBD>6<EFBFBD>;<3B>;<3B>Wl<57>Km<4B>*n<>#n<><18><15><<3C><<3C><06>(A<>(A<>%<25><16><1B><1B>U{<7B>I|<7C>(}<7D>!}<7D><1B>_<EFBFBD>_<EFBFBD>V<EFBFBD>%:<3A>%:<3A>6<EFBFBD>%B<>E^<5E>%^<5E>_d<5F>eg<65>h<>F<EFBFBD><19>Z<EFBFBD>Z<EFBFBD><06>'<27>F<EFBFBD><19>M<EFBFBD><4D> X<01><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@U<>4V<34>W<> W<>s<00>B%D-<00>(D-<00>7*D-<00>"A
D-<00>--Ec<08><><00>^RIpVP4PR4p\VP4VR&VR,'g.#RpRpRV9d#WER,VP,, pRpRV9d#WER ,VP
,, pRpR
V9d\VP 4VR
&\P!\P!R 4R ,V,V^
4p\P!V4pV# \P!R \P!R44u#;i)rNr<4E>r<><00>?<3F>pzp=<3D>&<26>tojsztojs=<3D> limit_numr<6D>z/api/panel/get_plugin_socreFr<46>)r<>r<>r<>r<>r<>r<>r<>r:r<>r<>rUrVr<>r<>)rFr<>r<>r]<00>u_args<67>sp_tipr<70>s&& r<00> get_score<72>panelPlugin.get_scorePs <00><00> X<01> <1C><1D>'<27>'<27>)<29>9<>9<>$<24>?<3F>E<EFBFBD><1E>t<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D>E<EFBFBD>%<25>L<EFBFBD><18><15><<3C><<3C><02><19><17>F<EFBFBD><18>F<EFBFBD><12>d<EFBFBD>{<7B><16>4<EFBFBD>-<2D>$<24>&<26>&<26>0<>0<><06><1C><06><15><14>~<7E><16>7<EFBFBD>*<2A>D<EFBFBD>I<EFBFBD>I<EFBFBD>5<>5<><06><1C><06><1A>d<EFBFBD>"<22>%(<28><14><1E><1E>%8<><05>k<EFBFBD>"<22><1B>_<EFBFBD>_<EFBFBD>V<EFBFBD>%:<3A>%:<3A>6<EFBFBD>%B<>Eb<45>%b<>ek<65>%k<>lq<6C>rt<72>u<>F<EFBFBD><19>Z<EFBFBD>Z<EFBFBD><06>'<27>F<EFBFBD><19>M<EFBFBD><4D> X<01><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@U<>4V<34>W<> W<>s<00>A D<00>CD<00>-Ec<08>L<00>Rp\PPV4'gR#^<5E>p\\P!V44p\ V4V,
pV^8<>df\ V4FVpVR,W5,,p\PPV4'gK@\P!V4KX \P!RR7p\P!V4FYpVPR4p V R ,R8wdK$V ^,V8XdK4\P!RPW44K[ \P!R^
^4\P!R ^
^4\P!R
^
^4R # R#;i) z logs/requestFr<46><00>%Y-%m-%d)rEr<>rUzcd {} && gzip {}z /www/server/panel/logs/error.logz!/www/server/panel/logs/socks5.logz/www/server/panel/logs/oos.logTrs)r?r@rA<00>sorted<65>listdirrZrYrkr:<00>getDater[r\rE<00> clean_max_log)
rF<00>log_pathr<68><00>p_logsr<73>rr<><00>today<61>fname<6D>fsplits
& r<00>clean_panel_log<6F>panelPlugin.clean_panel_loggs;<00><00> <1C>%<25>H<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>E<EFBFBD><1B>I<EFBFBD><1B>B<EFBFBD>J<EFBFBD>J<EFBFBD>x<EFBFBD>0<>1<>F<EFBFBD><15>f<EFBFBD>+<2B> <09>)<29>C<EFBFBD><12>Q<EFBFBD>w<EFBFBD><1E>s<EFBFBD><1A>A<EFBFBD>'<27>#<23>~<7E><06> <09>9<>H<EFBFBD><1D>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>3<>3<>X<EFBFBD><16>I<EFBFBD>I<EFBFBD>h<EFBFBD>'<27>$<24>
<1B>N<EFBFBD>N<EFBFBD>*<2A>5<>E<EFBFBD><1B><1A><1A>H<EFBFBD>-<2D><05><1E><1B><1B>S<EFBFBD>)<29><06><19>"<22>:<3A><16>'<27><1C><19>!<21>9<EFBFBD><05>%<25><1C><16> <20> <20>!3<>!:<3A>!:<3A>8<EFBFBD>!J<>K<> .<2E> <13> <20> <20>!C<>B<EFBFBD>r<EFBFBD> J<> <12> <20> <20>!D<>R<EFBFBD><02> K<> <12> <20> <20>!A<>"<22>R<EFBFBD> H<><17><><1B>e<EFBFBD>s<00>&F<00>E1F<00>F#c<08><><00>\P!R4F<>pRpVFpW$R,8XgKRpM V'dK)RV,R,p\PPV4'gK`\P
!V4P 4pV'gK<>\P!V4pTPT4pT'gK<>TPT4K<> V# K<>;i)<05>plugin/FrxT<>
/info.json) r?r<>r@rAr:<00>ReadFiler]rUrV<00>get_local_plugin_inforY) rF<00>sListrx<00>isExistsr`r<><00>tmpInfo<66>inforys && rrW<00>panelPlugin.get_local_plugin<69>s<><00><00><16>J<EFBFBD>J<EFBFBD>y<EFBFBD>)<29>D<EFBFBD><1C>H<EFBFBD>!<21><08><17>F<EFBFBD>+<2B>+<2B>#<23>H<EFBFBD><19>"<22><18><18> <20>4<EFBFBD>'<27>,<2C>6<>H<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>X<EFBFBD><1C>o<EFBFBD>o<EFBFBD>h<EFBFBD>/<2F>5<>5<>7<>G<EFBFBD><1A>H<EFBFBD> <1D><1B>z<EFBFBD>z<EFBFBD>'<27>*<2A><04><1D>3<>3<>D<EFBFBD>9<>J<EFBFBD><1D>x<EFBFBD> <11>L<EFBFBD>L<EFBFBD><1A> $<24>!*<2A>"<15> <0C><> <1D>H<EFBFBD>s <00>&C.<02>.C3c<08>J<00>VP'gI\P!R4PRR4P R4P 4Vn\ VP\4'gR#VPR4R8wd$VPR4pV^,pV^,pRpVPF<>p\ V\4'gK\P!RRVR,4pV'gKDVPR4pV^,P4pVR 8Xd!W<>8wgV^,X8wdK<>VR
,pMVR 8XdR pW<>8wdK<>VR
,pVR 8XgVR8Xd VR,PR4R8wdRpV# V#)rrrrr<>rPrr rxr<>rO<00>pure<72> pure-ftpd<70>-1r<31>r<>z-2rrs) rr:r;r<r=r><00>
isinstancerJr~r[<00>dict<63> getStrBetweenr7) rFr<><00>tmprQ<00>isTask<73>task<73>tmpt<70>tmp1<70>name1s && r<00>check_setup_task<73>panelPlugin.check_setup_task<73>sP<00><00><13>|<7C>|<7C>|<7C>!<21>8<EFBFBD>8<EFBFBD>G<EFBFBD>,<2C>2<>2<>;<3B>v<EFBFBD>F<>L<>L<>]<5D>[<5B>b<>b<>d<>D<EFBFBD>L<EFBFBD><19>$<24>,<2C>,<2C><04>-<2D>-<2D><16> <10>:<3A>:<3A>f<EFBFBD> <1D><12> #<23><17>+<2B>+<2B>c<EFBFBD>"<22>C<EFBFBD><17><01>F<EFBFBD>E<EFBFBD><19>!<21>f<EFBFBD>G<EFBFBD><14><06><18>L<EFBFBD>L<EFBFBD>D<EFBFBD><1D>d<EFBFBD>D<EFBFBD>)<29>)<29>8<EFBFBD><19>'<27>'<27><03>C<EFBFBD><04>V<EFBFBD> <0C>=<3D>D<EFBFBD><17><08><17>:<3A>:<3A>c<EFBFBD>?<3F>D<EFBFBD><18><11>G<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>E<EFBFBD><14><05>~<7E><18>><3E>T<EFBFBD>!<21>W<EFBFBD><07>%7<><18><1D>h<EFBFBD><1E><06><18>F<EFBFBD>?<3F>K<EFBFBD>E<EFBFBD><18>><3E>8<EFBFBD><1D>h<EFBFBD><1E><06><15><14>~<7E><16>3<EFBFBD><1D><17><06><<3C>$<24>$<24>Y<EFBFBD>/<2F>2<EFBFBD>5<><04>v<EFBFBD> <11><15> <0A>#!<21>"<16> rc<08>f<00>RV9dR#VR,PR4p\V4^8dR#\V4^8<>d!VR,pV^RPV4V^&RV9gRVR&RV9gRVR&/RR bR
^bR ^
bR ^bRVR,bRVR,bR VR ,bRVR,bR^bR^bR^bRVR,bRVR,bRRbRRbRRbRRbRRRRVR ,,RRVR ,,R^R ^RR!V^,RV^,RRR"^ R#^R$^R%R&/.R%R&R'R&/CpV# RpT#;i)(r<>Nr<4E>:NNN<4E>authoru未知r<E79FA5><00>#r<><00>'r<>r<><00>pricerxrr<00> panel_pro<72>
panel_free<EFBFBD>
panel_testrKrQ<00> s_versionr<6E><00>manager_versionr<00>c_manager_versionrr<>rvr<><00>/www/server/panel/plugin/rL<00> compile_args<67>version_coexistr<74>r<>r<>r<>rqTrO)r[rZ<00>join)rFr<>r<>r<>rys&& rr<><00>!panelPlugin.get_local_plugin_info<66>s<><00><00> <15>T<EFBFBD> !<21><17><18><1A>$<24>*<2A>*<2A>3<EFBFBD>/<2F> <09> <0E>y<EFBFBD>><3E>A<EFBFBD> <1D>d<EFBFBD> <0E>y<EFBFBD>><3E>A<EFBFBD> <1D><1B>A<EFBFBD>,<2C>C<EFBFBD><13>A<EFBFBD><06><1E>8<EFBFBD>8<EFBFBD>C<EFBFBD>=<3D>I<EFBFBD>a<EFBFBD>L<EFBFBD>( "<22><1B>t<EFBFBD>#<23>h<EFBFBD>T<EFBFBD>(<28>^<5E><19>T<EFBFBD>><3E>#<23>4<EFBFBD><06><<3C>$<1A><1D>u<EFBFBD>$<1A><1E><01>$<1A> <20><12>$<1A>!<21>!<21> $<1A>
%<25>T<EFBFBD>(<28>^<5E> $<1A> #<23>4<EFBFBD><06><<3C> $<1A> <20><14>f<EFBFBD><1C>$<1A>!<21>$<24>w<EFBFBD>-<2D>$<1A>%<25>a<EFBFBD>$<1A>&<26>q<EFBFBD>$<1A>&<26>q<EFBFBD>$<1A><1E>t<EFBFBD>D<EFBFBD>z<EFBFBD>$<1A>#<23>D<EFBFBD><1A>$4<>$<1A>%<25>c<EFBFBD>$<1A>+<2B>C<EFBFBD>$<1A> -<2D>c<EFBFBD>!$<1A>"%<25>b<EFBFBD>#$<1A>$!<21>"<22>)<29>+F<><14>f<EFBFBD><1C>+U<>+<2B>-H<>4<EFBFBD>PV<50><<3C>-W<>'<27><11>*<2A>A<EFBFBD>#<23>&<26> <09>!<21> <0C>$<24>i<EFBFBD><01>l<EFBFBD>&<26><02>&<26><02>&<26><01>%<25>q<EFBFBD>"<22>D<EFBFBD><1C>
&<1B>!<21>$<24>!<21>4<EFBFBD>G$<1A>J<EFBFBD>L<1A><19><> "<22>T<EFBFBD>
<EFBFBD><19><19>s <00>%CD)<00>)D0c<08><><00>V^8:dV#V.p.pVF-p\VR,4V9gKVPV4K/ V#)rr<>)r<>rY)rFr<>r[<00>newList<73>sInfos&&& rrX<00>panelPlugin.get_types<65>sF<00><00> <10>A<EFBFBD>:<3A>e<EFBFBD>|<7C><16><07><05>
<15><07><1A>E<EFBFBD><12>5<EFBFBD><16>=<3D>!<21>U<EFBFBD>*<2A>G<EFBFBD>N<EFBFBD>N<EFBFBD>5<EFBFBD>,A<><1B><16>rc<08><><00>\P!4pRVnVPV4pVR,FNpVR,VP8XgK\ VR,4^8d\ VR,4^8dR#M RVnVPV4pVR,F@pVR,VP8XgKRV9gK&\ VR,4^8dR#M RVnVPV4pVR,FhpVR,R 9gKVR,VP8XgK-RV9gK6\ VR ,4^8d\ VR,4^8dR#R
# R
#) <0C>8rJrxrBrhF<>10<31>12r<32>rpT)<02> r<>)r:<00>dict_objr<6A>rarxr<>)rFrTr<><00>p_listr<74>s&& r<00> check_accept<70>panelPlugin.check_accept<70>sA<00><00><15><EFBFBD><EFBFBD> <20><04><17><04> <09><15>$<24>$<24>T<EFBFBD>*<2A><06><17><06><1E><1E>A<EFBFBD><10><16>y<EFBFBD>C<EFBFBD>H<EFBFBD>H<EFBFBD>$<24><16>v<EFBFBD>e<EFBFBD>}<7D>%<25><01>)<29>c<EFBFBD>!<21>I<EFBFBD>,<2C>.?<3F>!<21>.C<>E<EFBFBD><15> <20>
<19><04> <09><15>$<24>$<24>T<EFBFBD>*<2A><06><17><06><1E><1E>A<EFBFBD><10><16>y<EFBFBD>C<EFBFBD>H<EFBFBD>H<EFBFBD>$<24> <20>A<EFBFBD>~<7E>x<EFBFBD><16>q<EFBFBD><19>|<7C>$<24>q<EFBFBD>(<28><15><15>  <20> <19><04> <09><15>$<24>$<24>T<EFBFBD>*<2A><06><17><06><1E><1E>A<EFBFBD><14>V<EFBFBD>9<EFBFBD> <09>)<29>8<EFBFBD><10><16>y<EFBFBD>C<EFBFBD>H<EFBFBD>H<EFBFBD>$<24> <20>A<EFBFBD>~<7E>x<EFBFBD><16>v<EFBFBD>e<EFBFBD>}<7D>%<25><01>)<29>c<EFBFBD>!<21>I<EFBFBD>,<2C>.?<3F>!<21>.C<>E<EFBFBD><15><13>  <20> rc<08><><00>VPV4pV'gM^VnVPV4pV'g-\P!R\P!RR44#VP VR,4VR&RV9gRVnVP R8Xdz.pVPVR,4VR&VR,F.pRV9gK VR,'gKVPV4K0 W2R&VPVR,V4VR&MEVPVR,V4VR&VPVR,R ,4VR,R &RVR
&RVR &R p\PPV4'd:R VR &\P!V4PR4^8Xd R VR
&RVR &V#)rpF<> Failed to get software list ({})<29>401rJr<>r<>r<>rqr<><00>apache22<32>apache24z#/www/server/apache/version_check.plT<6C>2.2)rarLr:r<>r<><00> set_coexistr<74><00>check_isinstallrY<00>get_pager?r@rArWr~)rFrTrZ<00> soft_list_tmp<6D>val<61>check_version_paths&& r<00> get_soft_list<73>panelPlugin.get_soft_lists<><00><00><17>&<26>&<26>s<EFBFBD>+<2B><08><17><19>C<EFBFBD>I<EFBFBD><1B>*<2A>*<2A>3<EFBFBD>/<2F>H<EFBFBD><1B>F<EFBFBD>$=<3D>$=<3D>e<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>Pr<50>sx<73>Dy<44>$z<>z<><1F>+<2B>+<2B>H<EFBFBD>V<EFBFBD>,<<3C>=<3D><08><16><18><15><13>}<7D><13>c<EFBFBD>h<EFBFBD> <0E>8<EFBFBD>8<EFBFBD>t<EFBFBD> <1B><1E>M<EFBFBD>#<23>3<>3<>H<EFBFBD>V<EFBFBD>4D<34>E<>H<EFBFBD>V<EFBFBD> <1C><1F><06>'<27>'<27><03><1A>c<EFBFBD>><3E><1A>7<EFBFBD>|<7C>|<7C>]<5D>%9<>%9<>#<23>%><3E>(<28> -<2D>V<EFBFBD> <1C>#<23>}<7D>}<7D>X<EFBFBD>f<EFBFBD>-=<3D>c<EFBFBD>B<>H<EFBFBD>V<EFBFBD> <1C>#<23>}<7D>}<7D>X<EFBFBD>f<EFBFBD>-=<3D>c<EFBFBD>B<>H<EFBFBD>V<EFBFBD> <1C>'+<2B>';<3B>';<3B>H<EFBFBD>V<EFBFBD><L<>V<EFBFBD><T<>'U<>H<EFBFBD>V<EFBFBD> <1C>V<EFBFBD> $<24>$<24><08><1A><1C>$<24><08><1A><1C>B<><1A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>,<2C> -<2D> -<2D>#'<27>H<EFBFBD>Z<EFBFBD> <20><15><EFBFBD><EFBFBD>1<>2<>7<>7<><05>><3E>!<21>C<>'+<2B><08><1A>$<24>',<2C><08><1A>$<24><17>rc<08>L<00>VPV4R,pV'gT^VnVPV4R,pV'g-\P!R\P!RR44#VP V4p\ PPVP4'g"\P!VPR4\P!\P!VP44p.pVF-pVF$pVR,V8XgKVP!V4K& K/ VP#V4pV# \dG\ P!TP4\P!TPR4.pL<>i;i)rJFr<46>r<><00>[]rx)rarLr:r<>r<>r<>r?r@rA<00>_panelPlugin__indexrjrUrVr<><00> ExceptionrkrYr<><00>rFrTrZ<00> indexList<73>dataList<73>indexr`s&& r<00>get_index_list<73>panelPlugin.get_index_list7s6<00><00><17>&<26>&<26>s<EFBFBD>+<2B>F<EFBFBD>3<><08><17><19>C<EFBFBD>I<EFBFBD><1B>*<2A>*<2A>3<EFBFBD>/<2F><06>7<>H<EFBFBD><1B>F<EFBFBD>$=<3D>$=<3D>e<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>Pr<50>sx<73>Dy<44>$z<>z<><17>#<23>#<23>H<EFBFBD>-<2D><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>l<EFBFBD>l<EFBFBD>+<2B>+<2B>V<EFBFBD>-=<3D>-=<3D>d<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD>-P<> <1B><1C>
<EFBFBD>
<EFBFBD>6<EFBFBD>?<3F>?<3F>4<EFBFBD><<3C><<3C>#@<40>A<>I<EFBFBD>
<16><08><1E>E<EFBFBD>$<24><08><1B>F<EFBFBD>#<23>u<EFBFBD>,<2C>h<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>.G<>%<25><1F><18>'<27>'<27><08>1<><08><17><0F><><19> <1B> <0E>I<EFBFBD>I<EFBFBD>d<EFBFBD>l<EFBFBD>l<EFBFBD> #<23> <12> <1C> <1C>T<EFBFBD>\<5C>\<5C>4<EFBFBD> 0<><1A>I<EFBFBD> <1B>s<00>4E<00>AF#<03>"F#c<08>h<00>VPp\PPVP4'g"\
P !VPR4\P!\
P!VP44pW#9d,\
P!R\
P!R44#\V4^ 8<>EdqVPV4R,pVPV4pVF<>pVR,R8XdwVR,FipRVR,,p\PPR PVR,44'dKPWs9gKXVP!V4Kk VR,V9gK<>VP#V4pVR
,'dK<>VP!VR,4K<> \
P !VP\P$!V44\V4^ 8<>d,\
P!R\
P!R 44#VP'V4\
P !VP\P$!V44\
P!R \
P!R 44#)r<>F<>Please do NOT repeat addingrJrxr<>r<>r<>r<>z/www/server/php/{}rqz)Dashboard only display up to 12 software!T<>Setup successfully!)r<>r?r@rAr<>r:rjrUrVr<>r<>r<>rZrar<>rErk<00> check_statusrUrY) rFrTr<>r<>rZr`r<00>php_v<5F> new_softInfos && r<00> add_index<65>panelPlugin.add_indexNs<><00><00><13> <09> <09><05><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>l<EFBFBD>l<EFBFBD>+<2B>+<2B>V<EFBFBD>-=<3D>-=<3D>d<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD>-P<><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>|<7C>|<7C><<3C>=<3D> <09> <10> <1D>f<EFBFBD>&?<3F>&?<3F><05>v<EFBFBD>{<7B>{<7B>Sp<53>Gq<47>&r<>r<> <0E>y<EFBFBD>><3E>R<EFBFBD> <1F><1B>*<2A>*<2A>3<EFBFBD>/<2F><06>7<>H<EFBFBD><1B>'<27>'<27><08>1<>H<EFBFBD>$<24><08><1B>F<EFBFBD>#<23>u<EFBFBD>,<2C>%<25>j<EFBFBD>1<>1<><01> &<26><01>+<2B><0E> 6<><05>!<21>w<EFBFBD>w<EFBFBD>~<7E>~<7E>.B<>.I<>.I<>!<21>K<EFBFBD>.<2E>.Y<>Z<>Z<>$)<29>$6<>%<25>,<2C>,<2C>U<EFBFBD>3<> 2<>
<1C>F<EFBFBD>#<23>y<EFBFBD>0<>#'<27>#4<>#4<>X<EFBFBD>#><3E>L<EFBFBD>'<27><07>0<>0<>)<29>2B<32>2B<32>8<EFBFBD>F<EFBFBD>CS<43>2T<32>%<25> <13> <1C> <1C>T<EFBFBD>\<5C>\<5C>$<24>*<2A>*<2A>Y<EFBFBD>*?<3F> @<40><12>9<EFBFBD>~<7E><12>#<23>F<EFBFBD>,E<>,E<>e<EFBFBD>V<EFBFBD>[<5B>[<5B>ZE<02>NF<02>-G<02>&G<02><11><18><18><15><1F><0E><18><18><14><1C><1C>d<EFBFBD>j<EFBFBD>j<EFBFBD><19>&;<3B><<3C><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08>j<00>VPp.p\PPVP4'g"\
P !VPR4\P!\
P!VP44pW#9g,\
P!R\
P!R44#VPV4\
P !VP\P!V44\
P!R\
P!R44#)r<>T<>Successfully deleted!)r<>r?r@rAr<>r:rjrUrVr<>r<>r<>rkrU<00>rFrTr<>r<>s&& r<00> remove_index<65>panelPlugin.remove_indexhs<><00><00><13> <09> <09><05><16> <09><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>l<EFBFBD>l<EFBFBD>+<2B>+<2B>V<EFBFBD>-=<3D>-=<3D>d<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD>-P<><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>|<7C>|<7C><<3C>=<3D> <09><14>!<21>&<26>*C<>*C<>D<EFBFBD>&<26>+<2B>+<2B>Vm<56>Jn<4A>*o<>#o<><11><18><18><15><1F><0E><18><18><14><1C><1C>d<EFBFBD>j<EFBFBD>j<EFBFBD><19>&;<3B><<3C><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;R<>/S<>T<>Trc<08><><00>VPPR4p\P!VP\
P !V44\P!R\P!R44#<00>r}Tr<54>) <09>ssortr[r:rjr<>rUrUr<>r<><00>rFrTr<>s&& r<00>
sort_index<EFBFBD>panelPlugin.sort_indexssN<00><00><17>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>(<28> <09><0E><18><18><14><1C><1C>d<EFBFBD>j<EFBFBD>j<EFBFBD><19>&;<3B><<3C><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08>L<00>VPV4R,pVPV4p\P!\P
!VP 44p.pVF-pVF$pVR,V8XgKVPV4K& K/ VPV4pV#)rJrx) rar<>rUrVr:r<><00>_panelPlugin__linkrYr<>r<>s&& r<00> get_link_list<73>panelPlugin.get_link_listys<><00><00><17>&<26>&<26>s<EFBFBD>+<2B>F<EFBFBD>3<><08><17>#<23>#<23>H<EFBFBD>-<2D><08><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>{<7B>{<7B>;<3B><<3C> <09><15><08><1E>E<EFBFBD>$<24><08><1B>F<EFBFBD>#<23>u<EFBFBD>,<2C>h<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>.G<>%<25><1F><18>'<27>'<27><08>1<><08><17>rc<08><<00>VPp\P!\P!VP
44pW#9d,\P !R\P!R44#\V4^8<>d,\P !R\P!R44#VPV4\P!VP
\P!V44\P !R\P!R44#)Fr<46>z+Shortcut Bar only display up to 5 software!Tr<54>) r<>rUrVr:r<>rr<>r<>rZrYrjrUr<>s&& r<00>add_link<6E>panelPlugin.add_link<6E>s<><00><00><13> <09> <09><05><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>{<7B>{<7B>;<3B><<3C> <09> <10> <1D>f<EFBFBD>&?<3F>&?<3F><05>v<EFBFBD>{<7B>{<7B>Sp<53>Gq<47>&r<>r<> <0E>y<EFBFBD>><3E>Q<EFBFBD> <1E>v<EFBFBD>'@<40>'@<40><15><06> <0B> <0B>UB<02>IC<02>(D<02>!D<02><11><18><18><15><1F><0E><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD> <09>%:<3A>;<3B><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08><><00>VPp.p\P!\P!VP
44pW#9d,\P !R\P!R44#VPV4\P!VP
\P!V44\P !R\P!R44#)Tr<54>) r<>rUrVr:r<>rr<>r<>rkrjrUr<>s&& r<00> remove_link<6E>panelPlugin.remove_link<6E>s<><00><00><13> <09> <09><05><16> <09><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>{<7B>{<7B>;<3B><<3C> <09> <10> <1D>f<EFBFBD>&?<3F>&?<3F><04>f<EFBFBD>k<EFBFBD>k<EFBFBD>Ri<52>Fj<46>&k<>k<><11><18><18><15><1F><0E><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD> <09>%:<3A>;<3B><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;R<>/S<>T<>Trc<08><><00>VPPR4p\P!VP\
P !V44\P!R\P!R44#r<>) r<>r[r:rjrrUrUr<>r<>r<>s&& r<00> sort_link<6E>panelPlugin.sort_link<6E>sN<00><00><17>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>(<28> <09><0E><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD> <09>%:<3A>;<3B><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08>T<00>.pVEF<>pVR,^8XEdhRV9Ed`VR,EFNpVP4pVR,PRR4pVR,R,VR,,VR&VR,R,VR,,VR&VR,PR V4VR&VR
,PR V4VR
&VR ,PR V4VR &R V9dVR ,PR V4VR &MVR ,PR V4VR &VR,PR V4VR&.VR&VR,PV4VPV4EKQ EK{VPV4EK<> V# EKt;i EK<>;i)r<>r<>r<>r<>r<>rrrPrxrQ<00> {VERSION}r<>r<>rLrMr<>)<03>copyr<79>rY)rFr<>rZr<><00>versionA<6E>sTmp<6D>vs&& rr<><00>panelPlugin.set_coexist<73>s<><00><00><15><08><1A>E<EFBFBD> <1D><18>*<2A>+<2B>q<EFBFBD>0<>Z<EFBFBD>5<EFBFBD>5H<35>$)<29>*<2A>$5<>$5<><08>)<29>#(<28>:<3A>:<3A><<3C>D<EFBFBD> (<28><1B> 5<> =<3D> =<3D>c<EFBFBD>"<22> E<>A<EFBFBD>,0<><17>M<EFBFBD>#<23>,=<3D>h<EFBFBD>{<7B>>S<>,S<>D<EFBFBD><17>M<EFBFBD>+/<2F><06><<3C><03>+;<3B>H<EFBFBD>[<5B><Q<>+Q<>D<EFBFBD><16>L<EFBFBD>.2<EFBFBD>9<EFBFBD>o<EFBFBD>.E<>.E<>k<EFBFBD>RS<52>.T<>D<EFBFBD><19>O<EFBFBD>6:<3A>;L<>6M<36>6U<36>6U<36>Va<56>bc<62>6d<36>D<EFBFBD>!2<>3<>59<35>:J<>5K<35>5S<35>5S<35>T_<54>`a<>5b<35>D<EFBFBD>!1<>2<>1<><14>=<3D>;?<3F>@R<>;S<>;[<5B>;[<5B>\g<>hi<68>;j<><04>%7<> 8<>;?<3F>@R<>;S<>;[<5B>;[<5B>\g<>hi<68>;j<><04>%7<> 8<>04<30>[<5B>0A<30>0I<30>0I<30>+<2B>VW<56>0X<30>D<EFBFBD><1B>-<2D>/1<>D<EFBFBD><1A>,<2C> <20><1A>,<2C>3<>3<>H<EFBFBD>=<3D>$<24>O<EFBFBD>O<EFBFBD>D<EFBFBD>1<>!%6<>&<1D>O<EFBFBD>O<EFBFBD>E<EFBFBD>*<2A>-<1B>0<18><0F><> )<29><08><> <1D>H<EFBFBD>s)<00>$F!<02>E F<04>8F!<02>F!<02>F<07>F!<02>!F'c<08><><00>\PPVP4'g"\P
!VPR4\ P!\P!VP44p\\V44F7pW,R,V9W,R&VPW,4W&K9 V#)r<>rx<00> index_display) r?r@rAr<>r:rjrUrVr<>rYrZr<>)rFr<>r<>rs&& rr<><00>panelPlugin.check_isinstall<6C>s<><00><00><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>l<EFBFBD>l<EFBFBD>+<2B>+<2B>V<EFBFBD>-=<3D>-=<3D>d<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD>-P<><18>J<EFBFBD>J<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>|<7C>|<7C><<3C>=<3D> <09><16>s<EFBFBD>5<EFBFBD>z<EFBFBD>"<22>A<EFBFBD>(-<2D><08><16>(8<>I<EFBFBD>(E<>E<EFBFBD>H<EFBFBD>_<EFBFBD> %<25><1B>(<28>(<28><15><18>2<>E<EFBFBD>H<EFBFBD>#<23><15> rc<08><><00>\PPVR,4VR&RVR&VPVR,4VR&VR,P R4R"8wdRVR&VR,'EdVR,VR &VP V4VR&R
VR&VP VR ,VR,4VR &\PPR VR,,4VR &RV9d<>\VR,4^8<>dzVR,PR4pVF[p\VR,4^8<>dVPW1R,4VR&MVPV4VR&VR,'gK[M MRVR&VR,^8Xd>VR,R8wd/VPVR,PR4^,4MNRV9d0VR,R8wd!VPVR,VR,4MVPVR,4VR,P R4R"8wd<>VR ,^,R,PRR4p\PPRV,R,4VR&VPV4VR&RV,R,pVR,'gR
VR&MkVR,'d]\PPV4'd8\P!\\P !V444VR&VR,R8Xd8VPR4VR&VR,'gVPR4VR&VR,R8XdVP%4VR&VR,R 8Xd`R!p\PPV4'd9\\P !V44p\P!V4VR&V# \PPT4'd\P"!T4EL;i)#r<>rqFrOrxr<>r<><00>fpmrQ<00>shellTr<54>r<><00>adminr<6E>rNr<>r<>r<>r<>r<>rP<00> min_imager<65>r<><00>/www/server/php/z /sbin/php-fpm<70>/var/run/php-fpm.pidr,<00>mysqld<6C>mariadbdrrz/run/openlitespeed.pidrs)r?r@rAr<>r~<00>get_version_info<66> tips_versionrZr[<00>process_exists<74>get_iconr<6E><00>get_php_statusr:<00>
pid_existsr<EFBFBD>rWrk<00>get_phpmyadmin_stat)rFr`<00>pNames<65>pName<6D>v2<76>pid_filer<65>s&& rr<><00>panelPlugin.check_status<75>s<><00><00><1E>G<EFBFBD>G<EFBFBD>N<EFBFBD>N<EFBFBD>8<EFBFBD>4D<34>+E<>F<><08><17><19>"<22><08><18><1A><1F>0<>0<><18>&<26>1A<31>B<><08><16><18> <13>F<EFBFBD> <1B> <20> <20><16> (<28>B<EFBFBD> .<2E>%<25><08><15><0F> <13>G<EFBFBD> <1C> <1C> (<28><19> 3<>H<EFBFBD>W<EFBFBD> <1D>"&<26>"7<>"7<><08>"A<>H<EFBFBD>Y<EFBFBD> <1F>!%<25>H<EFBFBD>X<EFBFBD> <1E>#'<27>#4<>#4<>X<EFBFBD>j<EFBFBD>5I<35>(<28>S\<5C>J]<5D>#^<5E>H<EFBFBD>Z<EFBFBD> <20> "<22><07><07><0E><0E>/J<>X<EFBFBD>V\<5C>M]<5D>/]<5D> ^<5E>H<EFBFBD>W<EFBFBD> <1D><1A>h<EFBFBD>&<26>3<EFBFBD>x<EFBFBD> <0B>/D<>+E<><01>+I<>!<21>+<2B>.<2E>4<>4<>S<EFBFBD>9<><06>#<23>E<EFBFBD><1A>8<EFBFBD>$5<>6<>7<>!<21>;<3B>-1<>-@<40>-@<40><15>Pa<50>Gb<47>-c<><08><18>*<2A>-1<>-@<40>-@<40><15>-G<><08><18>*<2A><1F><08>)<29>)<29>5<EFBFBD> $<24><>#%<25>H<EFBFBD>Y<EFBFBD> <1F> <13>%<25> &<26>!<21> +<2B><17><04>~<7E><15>&<26><14> <0A> <0A>h<EFBFBD>v<EFBFBD>.<2E>4<>4<>S<EFBFBD>9<>!<21><<3C>=<3D><><1A>h<EFBFBD>&<26><1B>D<EFBFBD>><3E>U<EFBFBD>*<2A><18>M<EFBFBD>M<EFBFBD>(<28>6<EFBFBD>"2<>8<EFBFBD>K<EFBFBD>3H<33>I<><49><15> <0A> <0A>h<EFBFBD>v<EFBFBD>.<2E>/<2F> <13>F<EFBFBD> <1B> <20> <20><16> (<28>B<EFBFBD> .<2E><18><1A>$<24>Q<EFBFBD>'<27> <0B>4<><<3C><<3C>S<EFBFBD><12>D<>B<EFBFBD> <20>g<EFBFBD>g<EFBFBD>n<EFBFBD>n<EFBFBD>-?<3F>"<22>-D<><EFBFBD>-V<>W<>H<EFBFBD>U<EFBFBD>O<EFBFBD>!%<25>!4<>!4<>R<EFBFBD>!8<>H<EFBFBD>X<EFBFBD> <1E>)<29>B<EFBFBD>.<2E>1G<31>G<>H<EFBFBD><1B>E<EFBFBD>?<3F>?<3F>%)<29><08><18>"<22><19>(<28>#<23>#<23><02><07><07><0E><0E>x<EFBFBD>(@<40>(@<40>,<2C>)/<2F>):<3A>):<3A>3<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>?X<>;Y<>)Z<>H<EFBFBD>X<EFBFBD>&<26>
<14>F<EFBFBD> <1B>w<EFBFBD> &<26>!%<25>!4<>!4<>X<EFBFBD>!><3E>H<EFBFBD>X<EFBFBD> <1E><1B>H<EFBFBD>%<25>%<25>D<EFBFBD><O<><O<>PZ<50><[<5B>x<EFBFBD><08>'9<> <13>F<EFBFBD> <1B>|<7C> +<2B>$<24>BZ<42>BZ<42>B\<5C>X<EFBFBD>h<EFBFBD>-?<3F> <13>F<EFBFBD> <1B><EFBFBD> .<2E>/<2F>H<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><19>&<26>/<2F>/<2F>(<28>3<>4<><03>%+<2B>%6<>%6<>s<EFBFBD>%;<3B><08><18>"<22><17><0F><>,<2C><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>/<2F>/<2F><1A> <09> <09>(<28>+<2B>s <00> 6P<00>=Qc <0C><><00>\PPRV,R,4pV'dV#RPV4p\PPV4'gR#\ \
P !V44p\PPRPV44# R#;i)ux
@name 获取指定PHP版本的服务状态
@author hwliang<2020-10-23>
@param phpversion string PHP版本
@return bool
<EFBFBD> /tmp/php-cgi-<2D>.sockz&/www/server/php/{}/var/run/php-fpm.pidFz /proc/{}/comm)r?r@rArEr<>r:rW)rF<00>
phpversion<EFBFBD>
php_statusr+r<>s&& rr%<00>panelPlugin.get_php_statuss<><00><00> <19><1B><17><17><1E><1E><0F>
<EFBFBD>(B<>7<EFBFBD>(J<>K<>J<EFBFBD><19>*<2A>,<2C>?<3F>F<>F<>z<EFBFBD>R<>H<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>E<EFBFBD><15>f<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>/<2F>0<>C<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>/<2F>"8<>"8<><13>"=<3D>><3E> ><3E><> <19><18>s<00>4B><00>B><00>5B><00>1A B><00>>Cc<08><><00>\P!4pVR8Xd\P!R4R,pM'VR8Xd\P!R4R,pMRp\PP V4'gR#\P !V4pV'gR#VPR4R
8HpV'd9VR8XdVPR4R
8HpV#VR8XdVPR 4R
8HpV#) r<><00>
setup_path<EFBFBD>/nginx/conf/nginx.confr<66><00>$/apache/conf/extra/httpd-vhosts.conf<6E></www/server/panel/vhost/openlitespeed/detail/phpmyadmin.confF<66>/www/server/stopzallow 127.0.0.1;z"Allow from 127.0.0.1 ::1 localhostrs)r:rr<>r?r@rArWr~)rF<00> webserverr<72><00>conf<6E>is_starts& rr'<00>panelPlugin.get_phpmyadmin_stats<><00><00><1A>(<28>(<28>*<2A> <09> <14><07> <1F><1D>,<2C>,<2C>\<5C>:<3A>=U<>U<>H<EFBFBD> <16>(<28> "<22><1D>,<2C>,<2C>\<5C>:<3A>=c<>c<>H<EFBFBD>U<>H<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><05><15><EFBFBD><EFBFBD>x<EFBFBD>(<28><04><13>E<EFBFBD><17>9<EFBFBD>9<EFBFBD>/<2F>0<>B<EFBFBD>6<><08> <13><18>G<EFBFBD>#<23><1F>9<EFBFBD>9<EFBFBD>%7<>8<>B<EFBFBD>><3E><08><18><0F><1B>h<EFBFBD>&<26><1F>9<EFBFBD>9<EFBFBD>%I<>J<>b<EFBFBD>P<><08><17>rc<08>><00>VP'g/VPV4R,pVPV4VnVR,pTPEF<>pTR,T8XgKTR8XEd<>\PP RP \P!444'd<>\PP RP \P!444'dk\P!RP \P!444^RI H pT!4P\P!RR/44^R IHpT!4pTP#4TR
&TR
,'d<>T'd<>TR
,P%R R 4'dTR
,R ,MT^,pRTR
,P%R R 4'dRMR,R,\P&!4,R,T,R,T^,,TR
,R&RT9d<>TR,^,R,p T P)RR4p
\P*!4R8XdORP Y<>4TR&\PP R4'dRP T
4TR&MRP T
4TR&TP-T4u# R # TpEL<>;i)rJr<>rxrrz {}/phpmyadmin)<01>ajaxrr)<01>get_phpmyadmin_dir<69>ext<78> ssl_enabledF<64>ssl_port<72>http<74>sr<73>z://r<>r<><00>urlr<6C>r<>r<>r<>rz4/usr/local/lsws/lsphp{}/etc/php/{}/litespeed/php.ini<6E>php_iniz/etc/redhat-releasez#/usr/local/lsws/lsphp{}/etc/php.iniz/www/server/php/{}/etc/php.ini)r rar<>r?r@rArEr:r<00>get_setup_pathrk<00>ajax_v2r><00>set_phpmyadmin_ssl<73> to_dict_obj<62>YakPanelr?<00>getPHPMyAdminStatusrT<00>GetHostr<74>rr<>) rFrTrZr<>r`r>r?<00>pmd<6D>portr<00>v1s && rrt<00>panelPlugin.get_soft_find,s<><00><00><13>#<23>#<23>#<23><1B>*<2A>*<2A>3<EFBFBD>/<2F><06>7<>H<EFBFBD>#'<27>#3<>#3<>H<EFBFBD>#=<3D>D<EFBFBD> <20> <18><17><07>L<EFBFBD>E<EFBFBD><1D>,<2C>,<2C>H<EFBFBD><17><06><1F>5<EFBFBD>(<28><18>L<EFBFBD>(<28><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>&C<>&J<>&J<>6<EFBFBD>K`<60>K`<60>Kb<4B>&c<>d<>d<>ik<69>ip<69>ip<69>iw<69>iw<69>yH<02>yO<02>yO<02>PV<02>Pe<02>Pe<02>Pg<02>yh<02>ji<02>ji<02><1A> <09> <09>"?<3F>"F<>"F<>v<EFBFBD>G\<5C>G\<5C>G^<5E>"_<>`<60>0<><1C><06>1<>1<>&<26>2D<32>2D<32>c<EFBFBD>3<EFBFBD>Z<EFBFBD>2P<32>Q<>;<3B>,<2C>.<2E>C<EFBFBD>&*<2A>&><3E>&><3E>&@<40>H<EFBFBD>U<EFBFBD>O<EFBFBD><1F><05><EFBFBD><EFBFBD>3<EFBFBD>>F<>u<EFBFBD>o<EFBFBD>>Q<>>Q<>R_<52>af<61>>g<>>g<>x<EFBFBD><05><EFBFBD>z<EFBFBD>:<3A>mp<6D>qr<71>ms<6D><04>17<31>(<28>5<EFBFBD>/<2F>BU<42>BU<42>Vc<56>ej<65>Bk<42>Bk<42>3<EFBFBD>qs<71>1t<31>w|<7C>1|<7C>@F<02>@N<02>@N<02>@P<02>2P<02>SV<02>2V<02>X\<02>2\<02>_b<02>2b<02>eh<02>ij<02>ek<02>2k<02><08><15><0F><05>.<2E><19>U<EFBFBD>?<3F> <20><1A>,<2C>Q<EFBFBD>/<2F> <0B><<3C>A<EFBFBD><1A><19><19>3<EFBFBD><02>+<2B>B<EFBFBD><1D>+<2B>+<2B>-<2D><1F>@<40>.d<>.k<>.k<>ln<6C>.r<><08><19>+<2B><1D>7<EFBFBD>7<EFBFBD>><3E>><3E>*?<3F>@<40>@<40>2W<32>2^<5E>2^<5E>_a<5F>2b<32>H<EFBFBD>Y<EFBFBD>/<2F><>.N<>.U<>.U<>VX<56>.Y<><08><19>+<2B><1B>(<28>(<28><18>2<>2<>5-<2D>8<15><>? <18><17>E<EFBFBD>s <00> L<00>Lc<08><><00>RpVR,R,pVR,R,p\PPV4'dY\P!\P
!V4P 44pV'g\P!V4EM<>\PPV4'dQ\P
!V4P 4pV'd!\P!V4R,pEMNRpEMJRRR R
R R R RRRRRRRRRRRRRRR/ pRpVR,V9dWaR,,pVR,^8XdOVR,PR4pWe^,,PR V^,PR!R44p\P!V4^,P 4pV'd\P!W24MmVR,R",p\PPV4'd9\P!\P!V4P 44pVR,R 8Xd<>VR,R",p R#p
\PPV 4'dC\P!\P!V 44p
V
PR$4R)8wdR$pVR%8Xd!V
'dT
p\P!W24VR,R8Xd VPR&4R)8wd
R'V,pVPR(R4# \P!RT,4EL;i)*r<>rLz/version_check.plr<6C>r<><00>rm -f z1.0r<EFBFBD>zP/www/server/nginx/sbin/nginx -v 2>&1|grep version|awk '{print $3}'|cut -f2 -d'/'r<>zK/www/server/apache/bin/httpd -v|grep version|awk '{print $3}'|cut -f2 -d'/'r,zF/www/server/mysql/bin/mysql -V|grep Ver|awk '{print $5}'|cut -f1 -d','r<>z>/www/server/php/{VERSION}/bin/php -v|grep cli|awk '{print $2}'<27>pureftpdz$cat /www/server/pure-ftpd/version.plrz%cat /www/server/phpmyadmin/version.pl<70>tomcatzM/www/server/tomcat/bin/version.sh|grep version|awk '{print $4}'|cut -f2 -d'/'<27> memcachedz6/usr/local/memcached/bin/memcached -V|awk '{print $2}'<27>rediszD/www/server/redis/src/redis-server -v|awk '{print $3}'|cut -f2 -d'='rzcat /usr/local/lsws/VERSION<4F>gitlabz echo "8.8.5"rxr<>rPrr<><00> /version.plN<6C>AliSQL<51>Linuxz2.2.z-Tengine<6E>p1rs)r?r@rAr:rr<>r]rkrUrVr\r[r<>rjrWr~) rFr<>rQ<00>vFile1<65>vFile2<65>v_tmp<6D> exec_args<67>exec_str<74>vFile4<65>vFile3<65> version_strs && rr!<00>panelPlugin.get_version_infoVs<><00><00><14><07><16>)<29>*<2A>-@<40>@<40><06><16>)<29>*<2A>\<5C>9<><06> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>&<26> !<21> !<21><1C>(<28>(<28><16><1F><1F><16>)@<40>)F<>)F<>)H<>I<>G<EFBFBD><1A>B<EFBFBD>I<EFBFBD>I<EFBFBD>f<EFBFBD>-<2D><><10>g<EFBFBD>g<EFBFBD>n<EFBFBD>n<EFBFBD>V<EFBFBD>$<24>$<24><1A>O<EFBFBD>O<EFBFBD>F<EFBFBD>+<2B>1<>1<>3<>E<EFBFBD><14><<3C>"<22>j<EFBFBD>j<EFBFBD><15>/<2F>
<EFBFBD>;<3B>G<EFBFBD> <20><07><1C>n<><1C>j<><1B>d<><19>Z<><1E>E<> <20>!H<><1C>l<><1F> X<><1B>b<>#<23>%B<><1C>^<5E> <12>I<EFBFBD><1A>H<EFBFBD><14>V<EFBFBD>}<7D> <09>)<29>i<EFBFBD>f<EFBFBD> <0A>6N<36>8<EFBFBD><14>&<26>'<27>1<EFBFBD>,<2C><1D>f<EFBFBD> <0A>+<2B>+<2B>C<EFBFBD>0<><05>$<24>1<EFBFBD>X<EFBFBD>.<2E>6<>6<>{<7B>5<EFBFBD><11>8<EFBFBD>CS<43>CS<43>TW<54>XZ<58>C[<5B>\<5C><08><1C>&<26>&<26>x<EFBFBD>0<><11>3<>9<>9<>;<3B>G<EFBFBD><16><16> <20> <20><16>0<><1E>1<>2<>]<5D>B<><06><15>7<EFBFBD>7<EFBFBD>><3E>><3E>&<26>)<29>)<29>$<24>0<>0<><16><1F><1F><16>1H<31>1N<31>1N<31>1P<31>Q<>G<EFBFBD> <10><16>=<3D>G<EFBFBD> #<23><1A>-<2D>.<2E><1D>><3E>F<EFBFBD><1E>K<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25>%<25>$<24>0<>0<><16><1F><1F><16>1H<31>I<> <0B><1E>#<23>#<23>H<EFBFBD>-<2D><12>3<>x<EFBFBD>W<EFBFBD><16>'<27>!<21>k<EFBFBD>%<25><07><16> <20> <20><16>0<> <10><16>=<3D>G<EFBFBD> #<23><16>|<7C>|<7C>F<EFBFBD>#<23>r<EFBFBD>)<29>Z<EFBFBD>'<27>5I<35>7<EFBFBD><16><EFBFBD><EFBFBD>t<EFBFBD>B<EFBFBD>'<27>'<27><>W<<3C><06>(<28>(<28><18>F<EFBFBD>):<3A>;<3B>s <00>2M <00> M.c<08><><00>\V4^8XdRV^,R&V#\\V44F<>pW!V,R,R,W,R,,8XdRW,R&K?W,R,PR4p\V4^8<>d V^,pM V^,p\V4pVRVV8HW,R&K<> V#)rpTrqr<>r<>rQ<00>_N)rZrYr[)rFr<>rQr<00>vTmp<6D>vLens&&& rr"<00>panelPlugin.tips_version<6F>s<><00><00> <0E>x<EFBFBD>=<3D>A<EFBFBD> <1D>#'<27>H<EFBFBD>Q<EFBFBD>K<EFBFBD><07> <20><1B>O<EFBFBD><16>s<EFBFBD>8<EFBFBD>}<7D>%<25>A<EFBFBD><16>A<EFBFBD>;<3B>{<7B>3<>c<EFBFBD>9<>H<EFBFBD>K<EFBFBD> <09><R<>R<>S<>'+<2B><08> <0B>G<EFBFBD>$<24><18><1B>;<3B>{<7B>+<2B>1<>1<>#<23>6<>D<EFBFBD><12>4<EFBFBD>y<EFBFBD>1<EFBFBD>}<7D><1B>A<EFBFBD>w<EFBFBD><04><1B>A<EFBFBD>w<EFBFBD><04><16>t<EFBFBD>9<EFBFBD>D<EFBFBD>$+<2B>E<EFBFBD>T<EFBFBD>N<EFBFBD>d<EFBFBD>$:<3A>H<EFBFBD>K<EFBFBD><07> <20>&<26><18>rc<08><><00>.p\P!R4F3p\P!RV4'gK"VP V4K5 V#)z/procz^\d+$)r?r<><00>re<72>matchrY)rFr7r<>s& r<00>get_pids<64>panelPlugin.get_pids<64>s;<00><00><11><04><15>:<3A>:<3A>g<EFBFBD>&<26>C<EFBFBD><11>x<EFBFBD>x<EFBFBD><08><13>%<25>%<25>t<EFBFBD>{<7B>{<7B>3<EFBFBD>'7<>'<27><13> rc<08><00>VR 9d<>\P!4pV'd<>RPV\P!44p\P
P V4'dB\\P!V44p\P!V4pV'dV#VR 9dvV'dnVPRR4p\P
P V4'd7\\P!V44p\P!V4#VP'g\P!4Vn VPEFpRV,pRV,pRp Rp
\P
P V4'd7\P!V4p V
'gV PR4R ,p
V
'g`\P
P V4'd;\VR 4p V P!4P#4p
V P%4V
'gK<>W<>8XdV'gR
#W<>8XdR
#EKEK R# R#;i R#;i EK!;i)rz {}/{}.pidFz sbin/php-fpmrz /proc/%s/exez /proc/%s/commr<6D>r<><00>rT)rr )zphp-fpmrs)r:<00> get_datadirrE<00> get_hostnamer?r@rAr<>rWr&r<>r7r<><00>readlinkr[r<00>readr]<00>close) rF<00>pname<6D>exe<78>datadirr+r<>rO<00>l<>f<>p_exer<65>r#s &&& rr#<00>panelPlugin.process_exists<74>s<><00><00> <10>)<29> )<29><1C>(<28>(<28>*<2A>G<EFBFBD><16>&<26>-<2D>-<2D>g<EFBFBD>f<EFBFBD>6I<36>6I<36>6K<36>L<><08><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>%<25>!<21>&<26>/<2F>/<2F>(<28>";<3B><<3C><03>!'<27>!2<>!2<>3<EFBFBD>!7<><06>!<21>&<26>=<3D>6<EFBFBD> <11>K<EFBFBD> <1F>C<EFBFBD><1A>{<7B>{<7B>><3E>2H<32>I<>H<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27>!<21><1D>f<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>7<>8<>C<EFBFBD>!<21>,<2C>,<2C>S<EFBFBD>1<>1<><14>y<EFBFBD>y<EFBFBD>y<EFBFBD>f<EFBFBD>k<EFBFBD>k<EFBFBD>m<EFBFBD>$<24>)<29><17>9<EFBFBD>9<EFBFBD>C<EFBFBD> <1D>"<22>S<EFBFBD>(<28><01>#<23>c<EFBFBD>)<29><01><1A><05><1B><06><15>7<EFBFBD>7<EFBFBD>><3E>><3E>!<21>$<24>$<24><1E>K<EFBFBD>K<EFBFBD><01>N<EFBFBD>E<EFBFBD>!<21>E<EFBFBD>K<EFBFBD>K<EFBFBD><03>,<<3C>R<EFBFBD>,@<40>6<EFBFBD><1D>"<22>'<27>'<27>.<2E>.<2E><11>"3<>"3<><1D>a<EFBFBD><03><1B>B<EFBFBD><1F>W<EFBFBD>W<EFBFBD>Y<EFBFBD>_<EFBFBD>_<EFBFBD>.<2E>F<EFBFBD><16>H<EFBFBD>H<EFBFBD>J<EFBFBD><1D>x<EFBFBD><19>?<3F><1E>#<23> <20><<3C><04><<3C> #<23>!<1D>,<15><>G%<25>$<24><>!<21> <20><>0 <1D>H<EFBFBD>sD<00>0>I/<00>74I7<00>)AI?<02>I?<02>"$I?<02>AI?<02> I?<02>I?<02>/I4<03>7I<<03>?Jc<08><><00>^RIpVP4p/p\V4VR&VPVR&\ VR4'd\ VR,4VR&^VR&\ VR4'd\ VR,4VR&/VR&RVR&\ VR4'dVP VR&/pVPV4VR &^p.VR
&\VR,4FOpWcP8<>dV#WsP8dK(V^, pVR
,PW,4KQ V# TPTR&L<>;i ^TR&L<>;i<01> rNr5<00>rowr<77><00>urir<69><00> return_jsr<73><00>pager<65><00> r<><00>PagerZr8r<>r<>r<><00>GetPagerY<00>ROW<4F>SHIFTrY<00>rFr<>rTr<>r<>r<><00>nrs&&& rr<><00>panelPlugin.get_page<67>sP<00><00><13><13>y<EFBFBD>y<EFBFBD>{<7B><04><11><04><1B>D<EFBFBD> <09><04>W<EFBFBD> <0A><1A>i<EFBFBD>i<EFBFBD><04>U<EFBFBD> <0B> <12>3<EFBFBD>u<EFBFBD> <1D> <1D> (<28>"%<25>c<EFBFBD>%<25>j<EFBFBD>/<2F><04>U<EFBFBD> <0B><16><04>S<EFBFBD> <09> <12>3<EFBFBD>s<EFBFBD> <1B> <1B> <1E> #<23>C<EFBFBD><03>H<EFBFBD> <0A><04>S<EFBFBD> <09><1B><04>U<EFBFBD> <0B><1E><04>[<5B><19> <12>3<EFBFBD>v<EFBFBD> <1E> <1E>"%<25>(<28>(<28>D<EFBFBD><1B> <1D><14><06><1D><1C><1C>d<EFBFBD>+<2B><06>v<EFBFBD><0E> <0A><01><1B><06>v<EFBFBD><0E><16>t<EFBFBD>G<EFBFBD>}<7D>%<25>A<EFBFBD><10>H<EFBFBD>H<EFBFBD>}<7D>e<EFBFBD><16> <0A><11>:<3A>:<3A>~<7E>x<EFBFBD> <0A><11>F<EFBFBD>A<EFBFBD> <12>6<EFBFBD>N<EFBFBD> !<21> !<21>$<24>'<27> *<2A> &<26>
<16> <0A><>1 (<28>"<22>i<EFBFBD>i<EFBFBD><04>U<EFBFBD> <0B><>  <1E><1D><04>S<EFBFBD> <09>s<00>D8<00>4E<00>8E <03>Ec<08><><00>\PPVP4'g.#\P
!\ P!VP44p\VRRR7p^p\P!VP4EFgpRpVFpVR,V8XgKRpK V'gK+VPR,V,p\PPV4'gKlVR,p\PPV4'gK<>\P
!\ P!V44p \VR4'g ^Vn M\VP4Vn VP^8<>dVPV R,8wdEK(\V4R ,V,V R
&V R ,V R &^V R &VP!V 4EKj V'Ed R p
\VR 4'dRp
\VR4'g ^Vn M\VP4Vn \VR4'gR p ^p M+VP"P%R4P'4p ^p .p VEF<>p V R,R8wdVP)V R,4V
'dV R ,^8XdKB^pVP^8<>d#VPV R,8Xd
V^, pM V^, pV 'd<>V R,P'4P+V 4R8wd
V^, pV R,P+V 4R8wd
V^, pV R,P'4P+V 4R8wd
V^, pV R,P+V 4R8wd
V^, pVP^8<>d"VPV R,8wd
V^,pW<>8<EFBFBD>gEKwV P!V 4EK<> T pV# EK<>;i EK<>;i \,dp\/T4uR p?#R p?ii;i)c<00><00>VR,#)<01>sortr )<01>bs&r<00><lambda><3E>%panelPlugin.GetList.<locals>.<lambda> s<00><00>a<EFBFBD><06>irF)rb<00>reverseTrxr<>r<>r<>r<><00><>r<><00>displayrON<>searchzutf-8r<38>rrrs)r?r@rA<00>_panelPlugin__listrUrVr:rWr<>r<>r9<00>isdirr<72>r<>r<>rZrYr<><00>encoder7r$r~r<>rS)rFrTr<>r<><00>dirinfo<66>isTrue<75>tmr@<00>jsonFiler<65>r<>r<><00>m<>dr<00>exs&& r<00>GetList<73>panelPlugin.GetListsU<00><00>J <1B><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>+<2B>+<2B>.<2E>.<2E>r<EFBFBD> <09><17>:<3A>:<3A>f<EFBFBD>o<EFBFBD>o<EFBFBD>d<EFBFBD>k<EFBFBD>k<EFBFBD>:<3A>;<3B>D<EFBFBD><1A>$<24>%7<><05>F<>D<EFBFBD><12>A<EFBFBD><1D>:<3A>:<3A>d<EFBFBD>&9<>&9<>:<3A><07><1D><06><1E>B<EFBFBD><19>&<26>z<EFBFBD>W<EFBFBD>,<2C>u<EFBFBD>f<EFBFBD><1F><1D>x<EFBFBD><1B>*<2A>*<2A>S<EFBFBD>0<>7<EFBFBD>:<3A><04><15>7<EFBFBD>7<EFBFBD>=<3D>=<3D><14>&<26>&<26>#<23>l<EFBFBD>2<>H<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>/<2F>/<2F>!<21>"&<26>*<2A>*<2A>V<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD>-F<>"G<>C<EFBFBD>#*<2A>3<EFBFBD>v<EFBFBD>#6<>#6<>+,<2C><03><08>+.<2E>s<EFBFBD>x<EFBFBD>x<EFBFBD>=<3D><03><08>"<22>x<EFBFBD>x<EFBFBD>!<21>|<7C>!-<2D>'*<2A>x<EFBFBD>x<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>'<<3C>h<EFBFBD>'<<3C>*-<2D>T<EFBFBD><19>T<EFBFBD>)9<>A<EFBFBD>)=<3D>C<EFBFBD><05>J<EFBFBD>,/<2F> <09>N<EFBFBD>C<EFBFBD><08>M<EFBFBD>-.<2E>C<EFBFBD> <09>N<EFBFBD> <20>K<EFBFBD>K<EFBFBD><03>,<2C>5;<3B><<13>s<EFBFBD><1E><07><1A>3<EFBFBD>y<EFBFBD>)<29>)<29>T<EFBFBD>7<EFBFBD><1E>s<EFBFBD>6<EFBFBD>*<2A>*<2A> <20>C<EFBFBD>H<EFBFBD>"<22>3<EFBFBD>8<EFBFBD>8<EFBFBD>}<7D>C<EFBFBD>H<EFBFBD><1E>s<EFBFBD>8<EFBFBD>,<2C>,<2C>!<21>F<EFBFBD><19>A<EFBFBD> <20>Z<EFBFBD>Z<EFBFBD>.<2E>.<2E>w<EFBFBD>7<>=<3D>=<3D>?<3F>F<EFBFBD><19>A<EFBFBD><18><03><1D>A<EFBFBD><18><14>w<EFBFBD>%<25>'<27><1C> <0A> <0A>a<EFBFBD><06>i<EFBFBD>0<><1E><1C>Y<EFBFBD><<3C>1<EFBFBD>,<2C>h<EFBFBD><17>A<EFBFBD><1A>x<EFBFBD>x<EFBFBD>!<21>|<7C><1E>8<EFBFBD>8<EFBFBD>q<EFBFBD><14>w<EFBFBD>.<2E><01>1<EFBFBD><04><01><><19>1<EFBFBD><04><01><1D><1C>V<EFBFBD>9<EFBFBD>?<3F>?<3F>,<2C>1<>1<>&<26>9<>R<EFBFBD>?<3F><11>A<EFBFBD><14><11><1C>V<EFBFBD>9<EFBFBD>><3E>><3E>&<26>1<>R<EFBFBD>7<><11>A<EFBFBD><14><11><1C>W<EFBFBD>:<3A>+<2B>+<2B>-<2D>2<>2<>6<EFBFBD>:<3A>b<EFBFBD>@<40>!<21>Q<EFBFBD>$<24>!<21><1C>W<EFBFBD>:<3A>?<3F>?<3F>6<EFBFBD>2<>b<EFBFBD>8<>!<21>Q<EFBFBD>$<24>!<21><1E>8<EFBFBD>8<EFBFBD>a<EFBFBD><<3C>C<EFBFBD>H<EFBFBD>H<EFBFBD><01>&<26> <09>,A<>1<EFBFBD><01>6<EFBFBD>1<EFBFBD><18>s<EFBFBD>3<EFBFBD>:<3A>:<3A>a<EFBFBD>=<3D>!<1E>"<1B><04><17>K<EFBFBD><4B>W!-<2D>$,<2C><> !<21> <20><>H<19> <1B><16>r<EFBFBD>7<EFBFBD>N<EFBFBD><4E> <1B>s<EFBFBD><00>.Q<00>Q<00>A;Q<00>3 Q<00>>Q<00>+Q<00>5A/P7<02>%P.<02>=Q<00>?P7<02>? Q<00> CQ<00>AQ<00>%C)Q<00>Q<00>.P4<05>0P7<02>1Q<00>4P7<02>7P=<05>9Q<00> Q <03>
Q<03>Q <03>Q c<08>P<00>RV,R,p\PPV4'g&\P!VP
WV34R#\PP V4pV^8Xd&\P!VP
WV34R#R#)z!YakPanel/static/img/soft_ico/ico-z.pngN)r?r@rAr:rO<00> download_iconr4)rFrx<00>downFile<6C>iconFile<6C>sizes&&& rr$<00>panelPlugin.get_iconRsx<00><00>6<><14>=<3D><06>F<><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27> <12> <1D> <1D>d<EFBFBD>0<>0<>$<24><08>1I<31> J<><15>7<EFBFBD>7<EFBFBD>?<3F>?<3F>8<EFBFBD>,<2C>D<EFBFBD><13>q<EFBFBD>y<EFBFBD><16>!<21>!<21>$<24>"4<>"4<>d<EFBFBD>H<EFBFBD>5M<35>N<>rc<08><><00>RV,R,pVR,p\P!V4'dR#\PP V4'd-\
P !RV,R,V,4M<>V'dO\
P !RV,R,\
P!R4,V,R,4MZ\
P !RV,R,\
P!4,R ,V,R,R,4\P!V^R
4R#) r<><00> /icon.png<6E>_iconNz \cp -a -r r<>zwget -O r<>z &r'rS)
rrTr?r@rAr:r\r<><00>get_urlr^)rFrxr<>r<><00>srcIcon<6F>skeys&&&& rr<><00>panelPlugin.download_icon]s<><00><00><1C>t<EFBFBD>#<23>k<EFBFBD>1<><07><13>G<EFBFBD>|<7C><04> <10>9<EFBFBD>9<EFBFBD>T<EFBFBD>?<3F>?<3F>4<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>'<27> "<22> "<22> <12> <1C> <1C>^<5E>g<EFBFBD>5<><03>;<3B>h<EFBFBD>F<> G<><17><16> <20> <20><1A>h<EFBFBD>!6<><13>!<<3C>v<EFBFBD>?T<>?T<>U[<5B>?\<5C>!\<5C>_g<5F>!g<>jn<6A>!n<>o<><16> <20> <20><1A>h<EFBFBD>!6<><13>!<<3C>v<EFBFBD>~<7E>~<7E>?O<>!O<>Rd<52>!d<>gk<67>!k<>ny<6E>!y<>}A<02>"A<02>B<02> <0A> <09> <09>$<24>q<EFBFBD><15>rc<08><00>^RIpVP4p/p\V4VR&VPVR&^VR&\ VR4'd\ VR,4VR&/VR&RVR&\ VR4'dVP VR&/pVPV4VR &^p.VR
&\VR,4FOpWcP8<>dV#WsP8dK(V^, pVR
,PW,4KQ V#rr<>r<>s&&& rr<><00>panelPlugin.GetPagels<00><00><13><13>y<EFBFBD>y<EFBFBD>{<7B><04><11><04><1B>D<EFBFBD> <09><04>W<EFBFBD> <0A><1C> <09> <09><04>U<EFBFBD> <0B><15><04>S<EFBFBD> <09> <12>3<EFBFBD>s<EFBFBD> <1B> <1B><1F><03>C<EFBFBD><08>M<EFBFBD>D<EFBFBD><13>I<EFBFBD><1A><04>U<EFBFBD> <0B><1E><04>[<5B><19> <12>3<EFBFBD>v<EFBFBD> <1E> <1E>"%<25>(<28>(<28>D<EFBFBD><1B> <1D><14><06><1D><1C><1C>d<EFBFBD>+<2B><06>v<EFBFBD><0E> <0A><01><1B><06>v<EFBFBD><0E><16>t<EFBFBD>G<EFBFBD>}<7D>%<25>A<EFBFBD><10>8<EFBFBD>8<EFBFBD>|<7C>U<EFBFBD><16> <0A><11>:<3A>:<3A>~<7E>x<EFBFBD> <0A><11>F<EFBFBD>A<EFBFBD> <12>6<EFBFBD>N<EFBFBD> !<21> !<21>$<24>'<27> *<2A> &<26>
<16> rc<08><><00>\PPVP4'gR#\P
!\ P!VP44pV# R#;i<01>F)r?r@rA<00>_panelPlugin__typerUrVr:rW)rFrTr<>s&& r<00>GetType<70>panelPlugin.GetType<70>sJ<00><00> <19><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>+<2B>+<2B>.<2E>.<2E>u<EFBFBD><17>:<3A>:<3A>f<EFBFBD>o<EFBFBD>o<EFBFBD>d<EFBFBD>k<EFBFBD>k<EFBFBD>:<3A>;<3B>D<EFBFBD><17>K<EFBFBD><4B> <19><18>s<00>.A)<00>5A)<00>)A.c<08>p<00>VPR4pVFpVR,V8XgKVu# R# R#;i)Nrx)r<>)rFrxr<>r<>s&& r<00>GetFind<6E>panelPlugin.GetFind<6E>s<<00><00> <18><17><<3C><<3C><04>%<25>D<EFBFBD><19><01><14>V<EFBFBD>9<EFBFBD><04>$<24>Q<EFBFBD>h<EFBFBD><1A><17><> <18><17>s<00>!0<00>0<00>0<00>5c<08>
<00>VPR4p\\V44F$pWE,R,V8wdKW4V,V&K& \P!VP
\ P!V44R#)NrxT)r<>rYrZr:rjr<>rUrU)rFrxrb<00>valuer<65>rs&&&& r<00>SetField<6C>panelPlugin.SetField<6C>s`<00><00><13>|<7C>|<7C>D<EFBFBD>!<21><04><16>s<EFBFBD>4<EFBFBD>y<EFBFBD>!<21>A<EFBFBD><13>w<EFBFBD>v<EFBFBD><EFBFBD>$<24>&<26><08> <20><11>G<EFBFBD>C<EFBFBD>L<EFBFBD>"<22> <0F><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><04>%5<>6<>rc
<08><>
<00>VPVP4pV'gT^RIpVP!\P
!VP R,VP,R,44pVR,R8XEd=\PPVP R,VR,,4'g=\P!RVP ,R,VR,,4R\9g\P!4\R&\R,R ,VR,,R
,pVP R,VR,,R
,p\P!WE4VPV4\P!R V,R ,4VPVR,VR ,VR,4^,R,'gH\PPVP R,VP,4'dL\P !RRVR,34\P"!R\P$!R44#\P"!R\P$!R44#^RIp^RIpRp\PPV4'g\P!RV,4\P
!R4p \R,R,R8wdRVnRp
\P,!4R8Xd+\P.!\P
!R44p
\P0!R V
4\P0!R!\P2!R"44R#p R$p R$p \5VR%4'dVP6'dR&p R%p R'VP*,R(,V ,R(,VP,R(,VP8,pVP;4p\5VR)4'dVP<pMRpVP?R*4PAR+RV R,,VP,R-,VP8,R.,R/R0VPB!R14V34\P0!V R24\P !RR3VPVP834\P"!R\P$!R444#)5rNr<4E>r<><00>tip<69>librx<00> mkdir -p r&r'r)r(z installrcr<>rOrz"Successfully installed plugin [{}]rrT<>Installation succeeded!FzInstallation failed!r<><00>
/etc/issuer.r/r0rr<>r<>r<>r<>r<00> root_pathr r<>r<>r<>r1r<>r<>rrrrPr r
r<>r rirr)"r<>rxrUrVr:rWr9r?r@rAr\rr<>r<>r<><00> checksSetuprr<>r<><00>dbrr<>rrrjr<>r<>r<>rQ<00>Sqlr<6C><00>tablerr)rFrTryrUr&r<>r<>rr@<00>issuer!r<>rrr"<00>sqlr<6C>s&& rr<><00>panelPlugin.install<6C>sw<00><00><19>\<5C>\<5C>#<23>(<28>(<28>+<2B>
<EFBFBD><19> <17><1D><1A><1A>F<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>4G<34>4G<34>#<23>4M<34>PS<50>PX<50>PX<50>4X<34>[g<>4g<34>$h<>i<>J<EFBFBD> <15>e<EFBFBD> <1C><05> %<25><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>"5<>"5<><03>";<3B>j<EFBFBD><16>>P<>"P<>Q<>Q<>SY<53>Sc<53>Sc<53>do<64>rv<72>sF<02>sF<02>eF<02>IL<02>eL<02>OY<02>Z`<02>Oa<02>ea<02>Tb<02>!<21>W<EFBFBD>,<2C><06><0E><0E>HX<48>g<EFBFBD>n<EFBFBD>.E<>"<22>><3E>2<>5G<35>G<>*<2A>U[<5B>J\<5C>\<5C>_l<5F>l<>L<EFBFBD><19>(<28>(<28>3<EFBFBD>.<2E><1A>F<EFBFBD>1C<31>C<>m<EFBFBD>S<>F<EFBFBD> <12> <1F> <1F> <0C> 4<> <10>N<EFBFBD>N<EFBFBD>6<EFBFBD> "<22> <12> <1C> <1C>\<5C>F<EFBFBD>2<>Z<EFBFBD>?<3F> @<40><13><1F><1F>
<EFBFBD>6<EFBFBD> 2<>:<3A>h<EFBFBD>3G<33>
<EFBFBD>S]<5D>H^<5E>_<>`a<>b<>ck<63>l<>l<>pr<70>pw<70>pw<70>p~<7E>p~<7E>@D<02>@S<02>@S<02>VY<02>@Y<02>\_<02>\d<02>\d<02>@d<02>qe<02>qe<02><16>(<28>(<28><1B>5Y<35>[e<>fm<66>[n<>Zp<5A>q<><1D>0<>0<><14>v<EFBFBD>{<7B>{<7B>C\<5C>7]<5D>^<5E>^<5E><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@V<>4W<34>X<> X<> <1A>$<24>D<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27><16>)9<>)9<>+<2B><04>:L<>)M<><1A>O<EFBFBD>O<EFBFBD>L<EFBFBD>1<>E<EFBFBD><16>{<7B>#<23>C<EFBFBD>(<28>F<EFBFBD>2<>s<EFBFBD>C<EFBFBD>H<EFBFBD>!<21>M<EFBFBD><15>#<23>#<23>%<25><18>1<> &<26> 2<> 2<>6<EFBFBD>?<3F>?<3F>Cb<43>3c<33> d<> <0A> <12> <1C> <1C>7<> <0A> F<> <12> <1C> <1C>5<>f<EFBFBD>6K<36>6K<36>K<EFBFBD>6X<36> Y<>(<28>F<EFBFBD><1D>E<EFBFBD><1C>D<EFBFBD><16>s<EFBFBD>I<EFBFBD>&<26>&<26><16>;<3B>;<3B>;<3B>$<24>E<EFBFBD>$<24>D<EFBFBD>R<>UX<55>U]<5D>U]<5D>]<5D>`c<>c<>di<64>i<>jm<6A>m<>ps<70>px<70>px<70>x<>{~<7E>~<7E>AD<02>AL<02>AL<02>L<02>G<EFBFBD><14>&<26>&<26>(<28>C<EFBFBD><16>s<EFBFBD>4<EFBFBD> <20> <20><18>V<EFBFBD>V<EFBFBD><02><19><02> <0F>I<EFBFBD>I<EFBFBD>g<EFBFBD> <1E> "<22> "<22>#H<>$<24>PT<50>WZ<57>PZ<50>[^<5E>[c<>[c<>Pc<50>dg<64>Pg<50>hk<68>hs<68>hs<68>Ps<50>tw<74>Pw<50>yD<02>EH<02>IM<02>IV<02>IV<02>Wj<02>Ik<02>ls<02>Jt<02> u<02> <12> <1C> <1C>V<EFBFBD>F<EFBFBD> +<2B> <12> $<24> $<24>[<5B>1^<5E>`c<>`h<>`h<>il<69>it<69>it<69>_u<5F> v<><19>,<2C>,<2C>T<EFBFBD>6<EFBFBD>;<3B>;<3B>?a<>3b<33>c<> crc<08><><00>VPVP4pV'gT^RIpVP!\P
!VP R,VP,R,44pVR,R8XEd<>\PPVP R,VR,,4'g=\P!RVP ,R,VR,,4\R,R ,VR,,R
,pVP R,VR,,R ,pVP R,VR,,R
,p\PPV4'gM\PPV4'g(\P!WE4VPV4VP R,VR,,p\PPV4'd'\P!R PV44MP\PPVR
,4'd%\P!R V,R,4\PPV4'd\P!RV,4\P!RRVR,34\P !R\P"!R44#RVn\P
!R4p\R,R,R8wdRVn\P&!R\P(!R44RVP$,R,VPP+4,R,VP,P/R R!4,p \P!V 4\P0!R"R#VPVP,34\P2!R\P"!R44#)$rNr<4E>r<>r<>r<>rxr<>r&r'r)z /uninstall.shz/bin/bash {} uninstallr(r*r<>rr+rrTr3r<>r<>r.r/r0rrr<>r1r2r<>r<>r<><00>
TYPE_SETUPz Successfully uninstalled [{}-{}])r<>rxrUrVr:rWr9r?r@rAr\rr<>r<>rErr<>r<>r<>rjr<>r7rQr<><00>WriteLogr<67>)
rFrTryrUr&r<><00>
install_shr8r<>r"s
&& r<00> unInstall<6C>panelPlugin.unInstall<6C>sZ<00><00><19>\<5C>\<5C>#<23>(<28>(<28>+<2B>
<EFBFBD><19> <17><1D><1A><1A>F<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>4G<34>4G<34>#<23>4M<34>PS<50>PX<50>PX<50>4X<34>[g<>4g<34>$h<>i<>J<EFBFBD> <15>e<EFBFBD> <1C><05> %<25><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>"5<>"5<>s<EFBFBD>":<3A>Z<EFBFBD><06>=O<>"O<>P<>P<>RX<52>Rb<52>Rb<52>cn<63>qu<71>rE<02>rE<02>dE<02>HK<02>dK<02>NX<02>Y_<02>N`<02>d`<02>Sa<02>"<22>><3E>2<>5G<35>G<>*<2A>U[<5B>J\<5C>\<5C>_l<5F>l<>L<EFBFBD><19>(<28>(<28>3<EFBFBD>.<2E><1A>F<EFBFBD>1C<31>C<>o<EFBFBD>U<>F<EFBFBD><1D>,<2C>,<2C>s<EFBFBD>2<>Z<EFBFBD><06>5G<35>G<>-<2D>W<>J<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>&<26>)<29>)<29>"<22>'<27>'<27>.<2E>.<2E><1A>2L<32>2L<32><16>#<23>#<23>L<EFBFBD>8<><14><0E><0E>v<EFBFBD>&<26><1D>,<2C>,<2C>s<EFBFBD>2<>Z<EFBFBD><06>5G<35>G<>J<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25>%<25><16> <20> <20>!9<>!@<40>!@<40><16>!H<>I<><13><17><17><1E><1E>
<EFBFBD>]<5D> :<3A>;<3B>;<3B><16> <20> <20><1C>
<EFBFBD>!:<3A>=T<>!T<>U<><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29><16> <20> <20><19>Z<EFBFBD>!7<>8<> <12> $<24> $<24>[<5B>1Y<31>[e<>fm<66>[n<>Zp<5A> q<><19>,<2C>,<2C>T<EFBFBD>6<EFBFBD>;<3B>;<3B>?Y<>3Z<33>[<5B> [<5B><1A>C<EFBFBD>H<EFBFBD><1A>O<EFBFBD>O<EFBFBD>L<EFBFBD>1<>E<EFBFBD><16>{<7B>#<23>C<EFBFBD>(<28>F<EFBFBD>2<>s<EFBFBD>C<EFBFBD>H<EFBFBD> <12> <1C> <1C>5<>f<EFBFBD>6K<36>6K<36>K<EFBFBD>6X<36> Y<>R<>SV<53>S[<5B>S[<5B>[<5B>\i<>i<>lo<6C>lt<6C>lt<6C>lz<6C>lz<6C>l|<7C>|<7C>@C<02>C<02>EH<02>EP<02>EP<02>EX<02>EX<02>Y\<02>]_<02>E`<02>`<02>G<EFBFBD> <12> <1C> <1C>W<EFBFBD> %<25> <12>O<EFBFBD>O<EFBFBD>L<EFBFBD>)K<>S<EFBFBD>X<EFBFBD>X<EFBFBD>VY<56>Va<56>Va<56>Lb<4C> c<><19>#<23>#<23>D<EFBFBD>&<26>+<2B>+<2B>6P<36>*Q<>R<> Rrc<08><><00>VP'g+^RIpVP4pVPR4VnVPFpVR,V8XgKVu# R#)rNrx)rr<><00>get_business_plugin)rF<00> productNamer<65><00>Auth<74>products&& r<00>getProductInfo<66>panelPlugin.getProductInfosU<00><00><13>"<22>"<22>"<22> <1C><1C>&<26>&<26>(<28>D<EFBFBD>"&<26>":<3A>":<3A>4<EFBFBD>"@<40>D<EFBFBD> <1F><1B>*<2A>*<2A>G<EFBFBD><16>v<EFBFBD><EFBFBD>+<2B>-<2D>g<EFBFBD>~<7E>+<2B>rc<08><><00>VP'go^RIpVP4pVPR4pV'g\P!R4#RV9g\P!R4#VR,VnVPF<>pVR,V8XgKVR,'dVR,'g\P!R4u#VR,\
P
!48d\P!R4u#\
P !R \
P!VR,44u# \P!R4#)
rNz
NOT openedr<64>r<>rh<00>statez
To be paid<69>Expiredr<64>)rr<><00>get_plugin_listr:r<>rr<00> localtime)rF<00>
pluginNamer<EFBFBD>r<>r<><00>pluinfos&& r<00>
getEndDate<EFBFBD>panelPlugin.getEndDate s<><00><00><13>!<21>!<21>!<21> <1C><1C>&<26>&<26>(<28>D<EFBFBD><16>&<26>&<26>t<EFBFBD>,<2C>C<EFBFBD><16>v<EFBFBD>{<7B>{<7B><<3C>8<>8<><19>S<EFBFBD>=<3D><16><1B><1B>\<5C>)B<>"B<>!$<24>V<EFBFBD><1B>D<EFBFBD> <1E><1B>)<29>)<29>G<EFBFBD><16>y<EFBFBD>!<21>Z<EFBFBD>/<2F><1E>y<EFBFBD>)<29>)<29><17><17>1A<31>1A<31>&<26>+<2B>+<2B>Vb<56>Jc<4A>Cc<43><1A>9<EFBFBD>%<25><04> <09> <09> <0B>3<>F<EFBFBD>K<EFBFBD>K<EFBFBD> <09><R<>5R<35><1B>}<7D>}<7D>Z<EFBFBD><04><0E><0E>w<EFBFBD>y<EFBFBD>?Q<>0R<30>S<>S<> *<2A>
<16>{<7B>{<7B><<3C>(<28>(rc<08>,<00>^RIpVPV4p/pV'gW4R&VPR4VR&V#RpRp\PP V4'd9\ P!\ P!V4P44pTPY14pTR,p\\T44EFOpRY7,R&Y7,R,R 8Xd<>TR
8XdBR Y7,R &TPY7,R ,Y7,R ,4Y7,R &MGTR8XdARY7,R &TPY7,R ,Y7,R ,4Y7,R &YST,R&TPY7,R,PRR4Y7,R,Y7,R ,4Y7,R &Y7,R ,P!R4Y7,R &\PP TP"R,Y7,R,,4'd RY7,R&Y7,R,R8Xd<>TP"R,Y7,R,PRR4,Y7,R&\PP Y7,R,R,4Y7,R&EK RY7,R,PRR4,Y7,R&EKR TP%\ P&!R4P)RR4P+44Y4R&TPR4TR&T# EL<>;i .Y7,R &EL<>;i)rNr<4E>r<>r<>r<>z--<2D>endrxr<>r<><00> 5.2,5.3,5.4r<EFBFBD>r<><00>2.4<EFBFBD>#5.3,5.4,5.5,5.6,7.0,7.1,7.2,7.3,7.4r<EFBFBD><00>_softrcrNr<>r<>r<>r@<00> /index.html<6D>config<69> /www/server/rrr)rUr<>r<>r?r@rAr:rrWr]r<>rYrZ<00>GetPvr<76>r<>r[r9rYr;r<r5)rFrTrU<00>arrr<72>r!<00>apavFilers&& r<00> getPluginList<73>panelPlugin.getPluginLists<><00><00><13><12>l<EFBFBD>l<EFBFBD>3<EFBFBD><1F><03><13><06><12> <20>6<EFBFBD>N<EFBFBD>!<21>\<5C>\<5C>$<24>/<2F>F<EFBFBD>6<EFBFBD>N<EFBFBD><19>M<EFBFBD><1A> <0A> <11>6<>H<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27> &<26> 2<> 2<>6<EFBFBD>?<3F>?<3F>8<EFBFBD>3L<33>3R<33>3R<33>3T<33> U<> <0A><16><1C><1C>c<EFBFBD>&<26><06><14>V<EFBFBD>n<EFBFBD><03><16>s<EFBFBD>3<EFBFBD>x<EFBFBD><1F>A<EFBFBD> <20>C<EFBFBD>F<EFBFBD>5<EFBFBD>M<EFBFBD><13>v<EFBFBD>f<EFBFBD>~<7E><15>&<26> <20>E<EFBFBD>)<29>)6<>C<EFBFBD>F<EFBFBD>:<3A>&<26>'+<2B>z<EFBFBD>z<EFBFBD>#<23>&<26><1A>2D<32>c<EFBFBD>f<EFBFBD>X<EFBFBD>FV<46>'W<>C<EFBFBD>F<EFBFBD>8<EFBFBD>$<24>"<22>e<EFBFBD>+<2B>)N<>C<EFBFBD>F<EFBFBD>:<3A>&<26>'+<2B>z<EFBFBD>z<EFBFBD>#<23>&<26><1A>2D<32>c<EFBFBD>f<EFBFBD>X<EFBFBD>FV<46>'W<>C<EFBFBD>F<EFBFBD>8<EFBFBD>$<24>#0<>A<EFBFBD><06>x<EFBFBD> <20>!%<25>!1<>!1<>#<23>&<26><16>.<2E>2H<32>2H<32><17>QS<51>2T<32>UX<55>U[<5B>\d<>Ue<55>fi<66>fl<66>mw<6D>fx<66>!y<>C<EFBFBD>F<EFBFBD>:<3A> <1E> &<26>#&<26>6<EFBFBD>(<28>#3<>#9<>#9<>#<23>#><3E><03><06>x<EFBFBD> <20>
<12>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>1<>1<>#<23>5<>c<EFBFBD>f<EFBFBD>V<EFBFBD>n<EFBFBD>D<>E<>E<>W\<5C>s<EFBFBD>v<EFBFBD>e<EFBFBD>}<7D><12>v<EFBFBD>e<EFBFBD>}<7D><05>%<25>!%<25>!4<>!4<>s<EFBFBD>!:<3A>S<EFBFBD>V<EFBFBD>F<EFBFBD>^<5E>=S<>=S<>T[<5B>\^<5E>=_<>!_<><03><06>v<EFBFBD><0E>#%<25>7<EFBFBD>7<EFBFBD>><3E>><3E>#<23>&<26><16>.<2E>=<3D>2P<32>#Q<><03><06>x<EFBFBD> <20>!/<2F>#<23>&<26><16>.<2E>2H<32>2H<32><17>QS<51>2T<32>!T<><03><06>v<EFBFBD><0E>A!<21>B <0C>
<EFBFBD>
<EFBFBD>6<EFBFBD>8<EFBFBD>8<EFBFBD>G<EFBFBD>$<24>*<2A>*<2A>;<3B>v<EFBFBD>><3E>D<>D<>F<>G<><1D>v<EFBFBD><0E><1D><1C><1C>d<EFBFBD>+<2B><06>v<EFBFBD><0E><15> <0A><>W <11> <10><>4 &<26>#%<25><03><06>x<EFBFBD> <20>s<00>&M;<00>$8M;<00>'N<02>;N<03> Nc<08><><00>VPR4pVPR4p.pVF$pVR,V9gKVPV4K& RPV4#)rN:N<>N)r[rYr<>)rFr<>r<><00>updates<65>ups&&& rr<><00>panelPlugin.GetPvVsS<00><00><1B>><3E>><3E>#<23>&<26><08><17><1C><1C>c<EFBFBD>"<22><06><14><07><18>B<EFBFBD><11>"<22>v<EFBFBD><18>!<21>7<EFBFBD>><3E>><3E>"<22>#5<><19><12>x<EFBFBD>x<EFBFBD><07> <20> rc<08><00>VPPR4pVPR4p\V4p\ \V44F]p\ W%,4R8<>dK\ V4F3pW6,R,\ W%,48XgK(WSV,R&K5 K_ \ P!VP\P!V44\ P!R\ P!R44#)r}Nr<4E>r<>r<>Tz
Sort saved) r<>r[r<>rZrYr<>r:rjr<>rUrUr<>r<>)rFrTr<>r<>rzrr<>s&& r<00>savePluginSort<72>panelPlugin.savePluginSort_s<><00><00><13> <09> <09><0F><0F><03>$<24><05><13>|<7C>|<7C>D<EFBFBD>!<21><04> <0F><04>I<EFBFBD><01><16>s<EFBFBD>5<EFBFBD>z<EFBFBD>"<22>A<EFBFBD><12>5<EFBFBD>8<EFBFBD>}<7D>t<EFBFBD>#<23>X<EFBFBD><1A>1<EFBFBD>X<EFBFBD><01><17>7<EFBFBD>5<EFBFBD>><3E>S<EFBFBD><15><18>]<5D>2<>a<EFBFBD><11>G<EFBFBD>F<EFBFBD>O<EFBFBD><1E>#<23> <0F><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><04>%5<>6<><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B><<3C>/H<>I<>Irc<08> <00>VPR4p.pRV,R,pRp\PPV4'd9\P
!\P !V4P44pVR8XdVPRR4pVP'gI\P!R4PRR*4PR
4P4Vn ^pVPR4p V EF<>p
/p T
p VR 8XdV PR R4p R p VEF<>pVR 8XEd=RV ,p\PPVR,4'd_\PPVR,4'g3\P!RV,R,V,R,4\P
!\P !VR,4P44pV'g%\P!RV,R,4\PPTPRT 44'dRp EKEEKH\PPV4'gEKpV^8XgEKz\V 4^8<>d4VP!V
4pVR+8wdV^8dRp V^, pEK<>EK<>EK<>Rp V^, pEK<> VP'gI\P!R4PRR*4PR
4P4Vn R pVPF<>p\#V\$4'gKRV9dK$\P&!RRVR,4pV'gKM\P&!RRVR,4pV'gKvVPR4pV^,P)4pVR 8Xd%VV8XdV^,V
8Xd VR,pK<>K<>K<>VR8XdRpVV8XgK<>VR,pK<> RV,R,p\PPV4'd=\*P,!\P !V44pV'd
VR,pVR8Xdx\PPR 4'dS\.P0!R!4pV'g5\P!R"4^,P4pV\.R!&VR#8Xdx\PPR$4'dS\.P0!R%4pV'g5\P!R&4^,P4pV\.R%&W<>R&W<>R'&VV R(&W{R)&VP3V 4EK<> VP5W4# RpEL<>;i ELC;i),rNr<>rYr<>r<>z1.10z1.12rrrrr<>r<>Frz/bin/phpzecho `z5/bin/php 2>/dev/null -v|grep cli|awk '{print $2}'` > rS<00>VERSIONTrxrr rPrOr<>r<>r<>r<>r<>rVz/etc/init.d/memcached<65>
memcachedvzmemcached -V|awk '{print $2}'r<>z/www/server/apache/bin/httpd<70>httpdvzO/www/server/apache/bin/httpd -v|grep Apache|awk '{print $3}'|sed 's/Apache\///'rQr<><00>norrs)r[r?r@rAr:rrWr]r<>rr;r<r=r>r\rZr~r<>r<>r<>r7rUrVrrTrY<00>checkRun)rFrxrc<00>versr<73>r<>r@rP<00>isStatus<75>versArrrrQr*rOr<><00>imr<6D>r<>r<>r<>r<><00>infoFile<6C>tmpss&&&& rr<><00>panelPlugin.checksSetupks<><00><00><14>l<EFBFBD>l<EFBFBD>3<EFBFBD><1F><03><15><08><1D><04>$<24>}<7D>4<><04> <0F><02> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24> <1F> <1F>f<EFBFBD>&8<>&8<><16><1F><1F><14>9N<39>9T<39>9T<39>9V<39>&W<><12> <0F>7<EFBFBD>?<3F><12><1A><1A>F<EFBFBD>F<EFBFBD>!;<3B>B<EFBFBD><13>|<7C>|<7C>|<7C>!<21>8<EFBFBD>8<EFBFBD>G<EFBFBD>,<2C>2<>2<>;<3B>v<EFBFBD>F<>L<>L<>]<5D>[<5B>b<>b<>d<>D<EFBFBD>L<EFBFBD><14><08><16>*<2A>*<2A>S<EFBFBD>/<2F><07><18>A<EFBFBD><18>G<EFBFBD><12>B<EFBFBD><13>u<EFBFBD>}<7D>2<EFBFBD>:<3A>:<3A>c<EFBFBD>"<22>#5<>b<EFBFBD><1A>F<EFBFBD><19><02><17>5<EFBFBD>=<3D>-<2D><02>2<>D<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>Z<EFBFBD>&7<>8<>8<><12><17><17><1E><1E>PT<50>Wd<57>Pd<50>Ae<41>Ae<41><1E>(<28>(<28><18>$<24><1D>7n<37>)n<>qu<71>)u<>yF<02>*F<02>G<02> <20>#<23>/<2F>/<2F><06><0F><0F><04>]<5D>@R<>0S<30>0Y<30>0Y<30>0[<5B>\<5C><02>!<21>6<EFBFBD>#3<>#3<>H<EFBFBD>t<EFBFBD>O<EFBFBD>m<EFBFBD>4S<34>#T<><1A>w<EFBFBD>w<EFBFBD>~<7E>~<7E>b<EFBFBD>j<EFBFBD>j<EFBFBD><19>2<EFBFBD>&><3E>?<3F>?<3F>$<24><16>?<3F><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>b<EFBFBD>)<29>)<29>h<EFBFBD>!<21>m<EFBFBD><1E>w<EFBFBD><<3C>!<21>+<2B>!#<23><17><17><11><1A>B<EFBFBD>!<21>R<EFBFBD>x<EFBFBD>B<EFBFBD><11>F<EFBFBD>)-<2D><06> (<28>A<EFBFBD> <0A><08>-3<>x<EFBFBD>&*<2A>F<EFBFBD>$<24><01>M<EFBFBD>H<EFBFBD>)<1A>,<18><<3C><<3C><<3C>%<25>x<EFBFBD>x<EFBFBD><07>0<>6<>6<>{<7B>6<EFBFBD>J<>P<>P<>Q^<5E>_<>f<>f<>h<><04> <0C><18>F<EFBFBD><1C> <0C> <0C><04>!<21>$<24><04>-<2D>-<2D><1C><19><14>%<25><1C><1D>+<2B>+<2B>C<EFBFBD><03>D<EFBFBD><16>L<EFBFBD>A<><04><1B><1C><1D>+<2B>+<2B>C<EFBFBD><03>D<EFBFBD><16>L<EFBFBD>A<><04><1B>H<EFBFBD><1B>z<EFBFBD>z<EFBFBD>#<23><EFBFBD><04><1C>Q<EFBFBD><07> <0A> <0A><0F><05><17>5<EFBFBD>=<3D><1C><04>}<7D><14>a<EFBFBD><17>A<EFBFBD><1C><04>X<EFBFBD><0E>v<EFBFBD><1C>}<7D><1C><06><EFBFBD> <0B><05><1C><04>}<7D>t<EFBFBD>H<EFBFBD>~<7E>f<EFBFBD>!%<25>$!<21>4<EFBFBD>'<27>,<2C>6<>H<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><1C><1F>:<3A>:<3A>f<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>&?<3F>@<40>D<EFBFBD><1B>$<24>z<EFBFBD>"2<>R<EFBFBD><14>{<7B>"<22><15>7<EFBFBD>7<EFBFBD>><3E>><3E>"9<>:<3A>:<3A> <20><1B><1B>\<5C>2<>B<EFBFBD><1D>#<23>-<2D>-<2D>.M<>N<>q<EFBFBD>Q<>W<>W<>Y<><02>02<30><07> <0C>-<2D><13>x<EFBFBD><1F><15>7<EFBFBD>7<EFBFBD>><3E>><3E>"@<40>A<>A<> <20><1B><1B>X<EFBFBD>.<2E>B<EFBFBD><1D>#<23>-<2D>-<2D>/A<02>B<02>CD<02>E<02>K<02>K<02>M<02><02>,.<2E><07><08>)<29>!'<27>H<EFBFBD> <1D>!"<22>I<EFBFBD> <1E>$<24>G<EFBFBD>F<EFBFBD>O<EFBFBD><1E>D<EFBFBD>M<EFBFBD> <14>O<EFBFBD>O<EFBFBD>G<EFBFBD> $<24>W<19>X<14>}<7D>}<7D>T<EFBFBD>+<2B>+<2B><>} <20><1F><02><>N<1C>t<EFBFBD>s%<00>AW2<04>$W2<04>1W<<02>5 W<<02>2W9<07><Xc<08><><00>VR8XEdRp\P!4p\\V44EF<>pW%,R,'gKW%,R,P RR4p\
P PRV,R,4W%,R&VR ,V,R
,p\P!V4W%,R &W%,R,'dU\
P PV4'd0\\P!V44V9g R W%,R&\
P PR V,4W%,R&VPV4pVR,W%,R&VR,W%,R&VR,W%,R&\
P PVR ,V,R,4W%,R&\V4^8gEK<>RW%,R&EK<> V#VR8Xd<>R p \
P PR4'dZRp
\
P PV
4'd3\P!V
4p VPV 4p V 'dRp \\V44F0pR W%,R&W%,R,'gK%W<>V,R&K2 V#VR8Xd<>R p \
P PR4'dORp
\
P PV
4'd(\P!V
4p VPV 4p \\V44F0pR W%,R&W%,R,'gK%W<>V,R&K2 V#VR8Xdj\
P PR4p \\V44F0pR W%,R&W%,R,'gK%W<>V,R&K2 V#VR8Xd<>R p \
P PR4'dVPR4'dRp V 'gVPR 4'dRp \\V44F0pR W%,R&W%,R,'gK%W<>V,R&K2 V#VR!8Xd<>\\V44F<>pR"p
\
P PV
4'gK,\P!V
4p VPV 4W%,R&W%,R,'dKs\P!R#V
,4K<> V#VR$8XdG\\V44F,pW%,R,'gKVP4W%&K. V#VR%8Xd<>\\V44F<>pR&p
\
P PV
4'gK,\P!V
4p VPV 4W%,R&W%,R,'dKs\P!R#V
,4K<> V#VR'8Xd<>\\V44F<>pR(p
\
P PV
4'gK,\P!V
4p VPV 4W%,R&W%,R,'dKs\P!R#V
,4K<> V#\\V44F%pW%,R,'gKRW%,R&K' V# R p EL<>;i))r<>r<>rOrQr<>r<>r.r/<00>runr<6E>r<00>
process_idFz/etc/init.d/php-fpm-r<00>max<61>maxTime<6D>pathinfo<66> /display.plr<6C>Tr<54>z/etc/init.d/nginxz /www/server/nginx/logs/nginx.pidr<64>z/etc/init.d/httpdz!/www/server/apache/logs/httpd.pidr,z/tmp/mysql.sockrUz+/www/server/tomcat/logs/catalina-daemon.pid<69>jsvc<76>javar<61>z/var/run/pure-ftpd.pidrSrrWz/var/run/redis_6379.pidrVz/var/run/memcached.pid)r<>r7rYrZr<>r?r@rAr:rWr<><00> GetPHPConfig<69> checkProcess<73>getPidr\rL) rFrxr<>r@r7r<00>v4r+<00> phpConfigrO<00>pidfr<66>rws &&& rr<><00>panelPlugin.checkRun<75>s<><00><00> <0F>5<EFBFBD>=<3D>$<24>D<EFBFBD><19>;<3B>;<3B>=<3D>D<EFBFBD><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01><1B>;<3B>x<EFBFBD>(<28>(<28>!<21><1B>Y<EFBFBD>/<2F>7<>7<><03>B<EFBFBD>?<3F>B<EFBFBD>)+<2B><17><17><1E><1E><0F>"<22>8L<38>w<EFBFBD>8V<38>)W<>H<EFBFBD>K<EFBFBD><05>&<26>#<23>c<EFBFBD>z<EFBFBD>B<EFBFBD><EFBFBD>1G<31>G<>H<EFBFBD>06<30><0F><0F><08>0I<30>H<EFBFBD>K<EFBFBD> <0C>-<2D><1F>{<7B>5<EFBFBD>)<29>)<29>b<EFBFBD>g<EFBFBD>g<EFBFBD>n<EFBFBD>n<EFBFBD>X<EFBFBD>.F<>.F<>"<22>6<EFBFBD>?<3F>?<3F>8<EFBFBD>#<<3C>=<3D><14>E<>16<31>H<EFBFBD>K<EFBFBD><05>.<2E>)+<2B><17><17><1E><1E>8N<38>r<EFBFBD>8Q<38>)R<>H<EFBFBD>K<EFBFBD><05>&<26> $<24> 1<> 1<>"<22> 5<>I<EFBFBD>)2<>5<EFBFBD>)9<>H<EFBFBD>K<EFBFBD><05>&<26>-6<>y<EFBFBD>-A<>H<EFBFBD>K<EFBFBD> <09>*<2A>.7<EFBFBD>
<EFBFBD>.C<>H<EFBFBD>K<EFBFBD>
<EFBFBD>+<2B>-/<2F>W<EFBFBD>W<EFBFBD>^<5E>^<5E>D<EFBFBD>3<EFBFBD>J<EFBFBD><12>O<EFBFBD>m<EFBFBD><[<5B>-\<5C>H<EFBFBD>K<EFBFBD> <09>*<2A><1A>8<EFBFBD>}<7D>q<EFBFBD>(<28>t<EFBFBD>(<28>+<2B>e<EFBFBD>*<<3C>!*<2A>f<18><0F>C<12>W<EFBFBD>_<EFBFBD><1A>F<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>1<>2<>2<>9<><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27>'<27>$<24>o<EFBFBD>o<EFBFBD>d<EFBFBD>3<><03> $<24> 1<> 1<>#<23> 6<><05> <20>4<EFBFBD>&<26><1B>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>%*<2A><08> <0B>E<EFBFBD>"<22><1B>;<3B>x<EFBFBD>(<28>(<28>v<EFBFBD>1<EFBFBD>+<2B>e<EFBFBD>*<<3C>*<2A>l<18><0F>g<12>X<EFBFBD> <1D><1A>F<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>1<>2<>2<>:<3A><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27> <20>/<2F>/<2F>$<24>/<2F>C<EFBFBD>!<21>.<2E>.<2E>s<EFBFBD>3<>F<EFBFBD><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>%*<2A><08> <0B>E<EFBFBD>"<22><1B>;<3B>x<EFBFBD>(<28>(<28>v<EFBFBD>1<EFBFBD>+<2B>e<EFBFBD>*<<3C>*<2A>X<18><0F>S<12>W<EFBFBD>_<EFBFBD><17>W<EFBFBD>W<EFBFBD>^<5E>^<5E>$5<>6<>F<EFBFBD><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>%*<2A><08> <0B>E<EFBFBD>"<22><1B>;<3B>x<EFBFBD>(<28>(<28>v<EFBFBD>1<EFBFBD>+<2B>e<EFBFBD>*<<3C>*<2A>N<18><0F>I<12>X<EFBFBD> <1D><1A>F<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>K<>L<>L<><17>;<3B>;<3B>v<EFBFBD>&<26>&<26><14><06><19><17>;<3B>;<3B>v<EFBFBD>&<26>&<26><14><06><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>%*<2A><08> <0B>E<EFBFBD>"<22><1B>;<3B>x<EFBFBD>(<28>(<28>v<EFBFBD>1<EFBFBD>+<2B>e<EFBFBD>*<<3C>*<2A><<18><0F>7<12>[<5B> <20><1B>C<EFBFBD><08>M<EFBFBD>*<2A><11>/<2F><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27> <20>/<2F>/<2F>$<24>/<2F>C<EFBFBD>)-<2D>):<3A>):<3A>3<EFBFBD>)?<3F>H<EFBFBD>K<EFBFBD><05>&<26>#<23>;<3B>u<EFBFBD>-<2D>-<2D>v<EFBFBD>/?<3F>/?<3F><08>4<EFBFBD><0F>/P<> +<2B>4<18><0F>)<12>\<5C> !<21><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01><1B>;<3B>x<EFBFBD>(<28>(<28><04>8P<38>8P<38>8R<38>(<28>+<2B>*<2A>&<18><0F>#<12>W<EFBFBD>_<EFBFBD><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>0<><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27> <20>/<2F>/<2F>$<24>/<2F>C<EFBFBD>)-<2D>):<3A>):<3A>3<EFBFBD>)?<3F>H<EFBFBD>K<EFBFBD><05>&<26>#<23>;<3B>u<EFBFBD>-<2D>-<2D>v<EFBFBD>/?<3F>/?<3F><08>4<EFBFBD><0F>/P<> *<2A> <18><0F><12>[<5B> <20><1A>3<EFBFBD>x<EFBFBD>=<3D>)<29><01>/<2F><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27> <20>/<2F>/<2F>$<24>/<2F>C<EFBFBD>)-<2D>):<3A>):<3A>3<EFBFBD>)?<3F>H<EFBFBD>K<EFBFBD><05>&<26>#<23>;<3B>u<EFBFBD>-<2D>-<2D>v<EFBFBD>/?<3F>/?<3F><08>4<EFBFBD><0F>/P<> *<2A><18><0F><1B>3<EFBFBD>x<EFBFBD>=<3D>)<29><01><1B>;<3B>x<EFBFBD>(<28>(<28>t<EFBFBD>(<28>+<2B>e<EFBFBD>*<<3C>*<2A><17><0F><>q'<27>!&<26><06>s<00>1.]3<00> ]3<00>3]:c<08>*
<00>^RIp/pRpVR,pRpRpRpRpRp Rp
\PPV4'Ed\P
!V4p Rp VP !W<>4p V 'dV P4^,pR P\P!44p\PPV4'de\PPV4^
8<EFBFBD>dA\P
!V4pVP !R
V4pVeR p
VP^4p V PR 4R)8wdR pV PVR ,4R)8XdR pVR,p\PPV4'g3\P!V\P
!VR,44\P
!V4p Rp VP !W<>4p V 'dV P4^,pM@Rp VP!W<>4p V 'd V ^,pMRp \P!WK4RpVR,p\PPV4'EdZ\P
!V4p Rp VP !W<>4p V 'dV P4^,pRp VP !W<>4p V 'dV P4^,pRP\P!44p\PPV4'de\PPV4^
8<EFBFBD>dA\P
!V4pVP !RV4pVeR p
VP^4p V PR 4R)8wdR pV PR4R)8XdR p\PPR4'd=VP4pV'd%VR,pVR,pVR,pVR,pVR,p\PPV4'dN\P !\P
!V4P#44VR&R VR&VR,VR &MR!VR&RVR&R!VR &WbR"&WrR#&W<>R$&W<>R%&W<>R&&WRR'&V# \$dpRTR&\'T4TR(&Rp?T#Rp?ii;i)*rN<> /www/serverr5F<>54<35>888<38>887zlisten\s+([0-9]+)\s*;z{}/vhost/nginx/phpmyadmin.confzlisten\s*(\d+)T<>
AUTH_STARTz/stopz/nginx/conf/enable-php.confz/nginx/conf/enable-php-54.confzphp-cgi-([0-9]+)\.sockz127.0.0.1:10(\d{2,2})1zphp-cgi.*\.sockr6zListen\s+([0-9]+)\s*\nz{}/vhost/apache/phpmyadmin.confzListen\s*(\d+)r8r<><00> php_version<6F>php_port<72>pauth<74>pstatusz/phpmyadmin/version.plrQrOr<>r<>rr0rArOrB<00>auth<74>errorrs)rlr?r@rAr:rWr<><00>groupsrErr4<00>groupr~rj<00>findall<6C>_get_ols_myphpadmin_inforr]r<>rS)rFrlr<><00> setupPath<74>
configFilerrr0<00>phpportrBrAr:<00>rep<65>rtmp<6D>ssl_config_filerr<>r<><00>vfiler<65>s& rrL<00>panelPlugin.getPHPMyAdminStatuss!<00><00><11><10><03>!<21> <09><1E>!9<>9<>
<EFBFBD><15><05><17><07><19>
<EFBFBD><17><07><18><08><1B> <0B> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>*<2A> %<25> %<25><19>?<3F>?<3F>:<3A>.<2E>D<EFBFBD>*<2A>C<EFBFBD><15>9<EFBFBD>9<EFBFBD>S<EFBFBD>&<26>D<EFBFBD><13><1E>+<2B>+<2B>-<2D><01>*<2A><07>?<3F>E<>E<>f<EFBFBD>F[<5B>F[<5B>F]<5D>^<5E>O<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>o<EFBFBD>.<2E>.<2E>2<EFBFBD>7<EFBFBD>7<EFBFBD>?<3F>?<3F>?<3F>3S<33>VX<56>3X<33><1D><EFBFBD><EFBFBD><EFBFBD>7<><04><16>I<EFBFBD>I<EFBFBD>/<2F><14>6<><01><14>=<3D>"&<26>K<EFBFBD> <20>w<EFBFBD>w<EFBFBD>q<EFBFBD>z<EFBFBD>H<EFBFBD><13>y<EFBFBD>y<EFBFBD><1C>&<26>"<22>,<2C>d<EFBFBD>e<EFBFBD><13>y<EFBFBD>y<EFBFBD><19>W<EFBFBD>,<2C>-<2D><12>3<>t<EFBFBD>W<EFBFBD>"<22>%B<>B<>J<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>*<2A>-<2D>-<2D>v<EFBFBD>/?<3F>/?<3F>
<EFBFBD>6<EFBFBD>?<3F>?<3F>[d<>hH<02>\H<02>LI<02>0J<02><19>?<3F>?<3F>:<3A>.<2E>D<EFBFBD>+<2B>C<EFBFBD><15>9<EFBFBD>9<EFBFBD>S<EFBFBD>&<26>D<EFBFBD><13>!<21>[<5B>[<5B>]<5D>1<EFBFBD>-<2D>
<EFBFBD>/<2F><03><19>z<EFBFBD>z<EFBFBD>#<23>+<2B><04><17>!%<25>a<EFBFBD><17>J<EFBFBD>,<2C>C<EFBFBD><1A>$<24>$<24>Z<EFBFBD>5<>!%<25>J<EFBFBD><1E>!G<>G<>
<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>*<2A> %<25> %<25><19>?<3F>?<3F>:<3A>.<2E>D<EFBFBD>+<2B>C<EFBFBD><15>9<EFBFBD>9<EFBFBD>S<EFBFBD>&<26>D<EFBFBD><13>!<21>[<5B>[<5B>]<5D>1<EFBFBD>-<2D>
<EFBFBD>+<2B>C<EFBFBD><15>9<EFBFBD>9<EFBFBD>S<EFBFBD>&<26>D<EFBFBD><13><1E>+<2B>+<2B>-<2D><01>*<2A><07>@<01>F<>F<>v<EFBFBD>G\<5C>G\<5C>G^<5E>_<>O<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>o<EFBFBD>.<2E>.<2E>2<EFBFBD>7<EFBFBD>7<EFBFBD>?<3F>?<3F>?<3F>3S<33>VX<56>3X<33><1D><EFBFBD><EFBFBD><EFBFBD>7<><04><16>I<EFBFBD>I<EFBFBD>/<2F><14>6<><01><14>=<3D>"&<26>K<EFBFBD> <20>w<EFBFBD>w<EFBFBD>q<EFBFBD>z<EFBFBD>H<EFBFBD><13>y<EFBFBD>y<EFBFBD><1C>&<26>"<22>,<2C>d<EFBFBD>e<EFBFBD><13>y<EFBFBD>y<EFBFBD>+<2B>,<2C><02>2<>d<EFBFBD>G<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>8<> 9<> 9<><19>2<>2<>4<>F<EFBFBD><15>#<23>M<EFBFBD>2<>
<EFBFBD> <20><1A>,<2C><07><1E>w<EFBFBD><0F><05> <20><19>+<2B><07> #<23><1D> 8<>8<>E<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>e<EFBFBD>$<24>$<24>!'<27>!3<>!3<>F<EFBFBD>O<EFBFBD>O<EFBFBD>E<EFBFBD>4J<34>4P<34>4P<34>4R<34>!S<><03>I<EFBFBD><0E> $<24><03>H<EFBFBD> <0A><1F> <09>N<EFBFBD><03>D<EFBFBD> <09>!#<23><03>I<EFBFBD><0E> %<25><03>H<EFBFBD> <0A><1E><03>D<EFBFBD> <09> <20><05>J<EFBFBD> *<2A> <0C> <1D>!,<2C> <0A> <1E>!<21><06>K<EFBFBD>&<26>
<EFBFBD>O<EFBFBD><1F><06>K<EFBFBD><13>
<EFBFBD><EFBFBD><19> #<23>!<21>C<EFBFBD><08>M<EFBFBD><1E>r<EFBFBD>7<EFBFBD>C<EFBFBD><07>L<EFBFBD><12>
<EFBFBD><EFBFBD> #<23>s<00>-S)<00>3A4S)<00>) T<03>4T <03> Tc<08><><00>Rp\P!V4pV'gR#Rp\P!W24pRpRpV'dVP ^4pRp\P!V4pRp\P!W24pV'dVP ^4pRpRp VP R4R 8XdRp R VR
VR VR V /#)r7Fz$/usr/local/lsws/lsphp(\d+)/bin/lsphp<68>73rz5/www/server/panel/vhost/openlitespeed/listen/888.confzaddress\s+\*\:(\d+)r8Trrrrrs)r:rWrlr<>r!r~)
rFr<>r:<00>regr<67>r0r&rrrs
& rr#<00>$panelPlugin._get_ols_myphpadmin_info<66>s<><00><00>Q<><08><15><EFBFBD><EFBFBD>x<EFBFBD>(<28><04><13>5<EFBFBD>5<><03><12> <09> <09>#<23>#<23><05><19>
<EFBFBD><17><07> <10><1E><1B><1B>Q<EFBFBD><1E>J<EFBFBD>J<><08><15><EFBFBD><EFBFBD>x<EFBFBD>(<28><04>$<24><03><15>9<EFBFBD>9<EFBFBD>S<EFBFBD>&<26><08> <13><1E>n<EFBFBD>n<EFBFBD>Q<EFBFBD>'<27>G<EFBFBD><15><05><17><07> <0F>9<EFBFBD>9<EFBFBD>'<27> (<28>B<EFBFBD> .<2E>$<24><07><1D>j<EFBFBD><1A>G<EFBFBD>G<EFBFBD>E<EFBFBD>)<29>T[<5B>\<5C>\rc<08>L<00>^RIpRpVR,V,R,p\P!V4pVR,V,R,p\P!V4p/pRpVP!W<>4P 4p V ^,VR&R pTP!Y<>4P 4p T ^,TR
&R pTP!Y<>4P 4p T ^,R 8XdR TR&T#RTR&T# RTR&Lx;i ^TR
&LU;i RTR&T#;i)rNrz/php/z /etc/php.iniz/etc/php-fpm.confz#upload_max_filesize\s*=\s*([0-9]+)Mr<00>50z*request_terminate_timeout\s*=\s*([0-9]+)\nrz,\n;*\s*cgi\.fix_pathinfo\s*=\s*([0-9]+)\s*\nrTr F)rlr:rWr<>r )
rFrQrlr$<00>file<6C>phpini<6E>phpfpmr<6D>r'r<>s
&& rr <00>panelPlugin.GetPHPConfig<69>s4<00><00><11>!<21> <09><18>7<EFBFBD>"<22>7<EFBFBD>*<2A>><3E>9<><04><17><1F><1F><14>&<26><06><18>7<EFBFBD>"<22>7<EFBFBD>*<2A>+><3E>><3E><04><17><1F><1F><14>&<26><06><11><04> <1F>8<>C<EFBFBD><14>)<29>)<29>C<EFBFBD>'<27>.<2E>.<2E>0<>C<EFBFBD><1D>a<EFBFBD>&<26>D<EFBFBD><15>K<EFBFBD> <20>?<3F>C<EFBFBD><14>)<29>)<29>C<EFBFBD>'<27>.<2E>.<2E>0<>C<EFBFBD>!<21>!<21>f<EFBFBD>D<EFBFBD><19>O<EFBFBD> %<25>A<>C<EFBFBD><14>)<29>)<29>C<EFBFBD>'<27>.<2E>.<2E>0<>C<EFBFBD><12>1<EFBFBD>v<EFBFBD><13>}<7D>#'<27><04>Z<EFBFBD> <20> <14> <0B> $)<29><04>Z<EFBFBD> <20><14> <0B><>) <1F><1E>D<EFBFBD><15>K<EFBFBD><4B>
 <20><1F>D<EFBFBD><19>O<EFBFBD><4F> %<25>$<24>D<EFBFBD><1A> <1C><13> <0B>s*<00>$.D<00>.D <00>5D<00>9D<00>D
<03> D<03>D#c<08><><00>VP'g\P!4VnVPF/p\P!V4P4V8XgK.R# R# R#;i<01>TF)r7r<><00>Processrx)rFrwr<>s&& rr<00>panelPlugin.getPid<69>sP<00><00> <1C><17>9<EFBFBD>9<EFBFBD>9<EFBFBD>&<26>+<2B>+<2B>-<2D>d<EFBFBD>i<EFBFBD><1B>y<EFBFBD>y<EFBFBD><03><19>><3E>><3E>#<23>&<26>+<2B>+<2B>-<2D><15>6<>t<EFBFBD>!<21><18><><1B>t<EFBFBD>s<00>A/<00>AA/<00>(A/<00>+A/<00>/A4c<08><><00>VP'g\P!4Vn\V4VP9dR#R# R#;ir7)r7r<>r<>)rFr<>s&&rr<00>panelPlugin.checkProcess<73>s8<00><00> <1D><17>9<EFBFBD>9<EFBFBD>9<EFBFBD>&<26>+<2B>+<2B>-<2D>d<EFBFBD>i<EFBFBD><12>3<EFBFBD>x<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>$<24>T<EFBFBD><18><><1C>u<EFBFBD>s<00>A <00>4A <00> Ac <08><><00>VPR,VP,R,p\PP V4'g,\
P !R\
P!R44#Rp\
P!4'd^MRpVPVP4^RI
pVPR8d\VVRRRVR 7#\VVRRRVR
7#) r<>r<>Fz#This plugin does NOT have template!z text/htmlrSNz2.1.0T)<05>mimetype<70> as_attachment<6E> add_etags<67> conditional<61> cache_timeout)r=r><00>etagr@<00>max_age) r9rxr?r@rAr:r<>r<><00>is_debug<75>plugin_open_total<61>flask<73> __version__r)rFrTr<>r=<00>
cache_timerFs&& r<00> getConfigHtml<6D>panelPlugin.getConfigHtml<6D>s<><00><00><17>&<26>&<26><13>,<2C>s<EFBFBD>x<EFBFBD>x<EFBFBD>7<>-<2D>G<><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><06>0I<30>0I<30>%<25>QW<51>Q\<5C>Q\<5C>^C<02>RD<02>1E<02>*E<02><1E><08> <20>/<2F>/<2F>+<2B>+<2B>Q<EFBFBD><15>
<EFBFBD> <0C><1E><1E>s<EFBFBD>x<EFBFBD>x<EFBFBD>(<28><14> <10> <1C> <1C>w<EFBFBD> &<26><1C>X<EFBFBD>#+<2B>(,<2C>$(<28>&*<2A>(2<> 4<> 4<><1D>X<EFBFBD>#+<2B>(,<2C>#<23>&*<2A>",<2C> .<2E> .rc <0C><><00>VPR4PRR4P4'gRpVPVR4R#R#)uo
@name 创建插件打开统计表
@author hwliang<2021-06-26>
@param sql<db.Sql> 数据库对像
@return void
<EFBFBD> sqlite_masterztype=? AND name=?zuCREATE TABLE IF NOT EXISTS `open_total` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`plugin_name` REAL,
`num` INTEGER
)N)r<><00>
open_totalr )r<>r<r5<00>execute)rFr<><00>csqls&& r<00>creatab_open_total_table<6C>$panelPlugin.creatab_open_total_table<6C>sH<00><00><13>y<EFBFBD>y<EFBFBD><1F>)<29>/<2F>/<2F>0C<30>E\<5C>]<5D>c<>c<>e<>e<><05>D<EFBFBD>
<10>K<EFBFBD>K<EFBFBD><04>R<EFBFBD> <20> frc <0C><><00>^RIpVP4PR4pVPV4RVR^/pVP R4P RV4P R4pV'g#VP R4PV4R#VP R4P RV4PRV^,4R#)uk
@name 插件打开统计
@author hwliang<2021-06-26>
@param plugin_name<string> 插件名称
@return void
N<EFBFBD> plugin_totalr<6C>r<>rMz plugin_name=?) r<>r<><00>dbfilerPr<>r<<00>getField<6C>insert<72>setField)rFr<>r<>r<>r]r<>s&& rrE<00>panelPlugin.plugin_open_total<61>s<><00><00> <12><10>f<EFBFBD>f<EFBFBD>h<EFBFBD>o<EFBFBD>o<EFBFBD>n<EFBFBD>-<2D><03> <0C>%<25>%<25>c<EFBFBD>*<2A> <19>+<2B> <11>!<21><0E><05>
<12>i<EFBFBD>i<EFBFBD> <0C>%<25>+<2B>+<2B>O<EFBFBD>K<EFBFBD>H<>Q<>Q<>RW<52>X<><03><12> <0F>I<EFBFBD>I<EFBFBD>l<EFBFBD> #<23> *<2A> *<2A>5<EFBFBD> 1<> <0F>I<EFBFBD>I<EFBFBD>l<EFBFBD> #<23> )<29> )<29>/<2F>+<2B> F<> O<> O<>PU<50>VY<56>Z[<5B>V[<5B> \rc <0C><><00>^RIpVP4PR4pVPV4VP R4P R4P ^
4P4p.pVFVpVPVR,4pV'd!VR,'dVPV4\V4^8<>gKUV# V#)uX
@name 获取常用插件
@author hwliang<2021-06-26>
@param get<obj_dict>
@return list
NrSrMznum descr<63>rq) r<>r<>rTrPr<><00>order<65>limitr>rtrYrZ)rFrTr<>r<><00> plugin_list<73> usually_listr<74><00> plugin_infos&& r<00>get_usually_plugin<69>panelPlugin.get_usually_plugins<><00><00> <12><10>f<EFBFBD>f<EFBFBD>h<EFBFBD>o<EFBFBD>o<EFBFBD>n<EFBFBD>-<2D><03> <0C>%<25>%<25>c<EFBFBD>*<2A><1A>y<EFBFBD>y<EFBFBD><1C>.<2E>4<>4<>Z<EFBFBD>@<40>F<>F<>r<EFBFBD>J<>Q<>Q<>S<> <0B><19> <0C><1C>A<EFBFBD><1E>,<2C>,<2C>Q<EFBFBD>}<7D>-=<3D>><3E>K<EFBFBD><1A><1E>w<EFBFBD>'<27>'<27> <20>'<27>'<27> <0B>4<><12><<3C> <20>A<EFBFBD>%<25>u<EFBFBD><1B><1B> <1D> <1C>rc <0C><><00>VPp\VR^4'd,VPV4pV'dRV9d
VR,#.#VPV4#)u<>
@name 获取指定插件的近期更新历史
@author hwliang<2021-06-30>
@param get<obj_dict>{
plugin_name: string 插件名称
}
@return list
<EFBFBD>showr<77>)r<><00>getattr<74>_panelPlugin__get_plugin_find<6E>!_panelPlugin__get_plugin_upgrades)rFrTr<>r^s&& r<00>get_plugin_upgrades<65>panelPlugin.get_plugin_upgradessW<00><00><1A>o<EFBFBD>o<EFBFBD> <0B> <12>3<EFBFBD>v<EFBFBD>a<EFBFBD> <20> <20><1E>0<>0<><1B>=<3D>K<EFBFBD><1A>z<EFBFBD>[<5B>8<>"<22>:<3A>.<2E>.<2E><15>I<EFBFBD><17>-<2D>-<2D>k<EFBFBD>:<3A> :rc<08><00>VPVP4pRpRp\PP V4'd9\
P !\
P!V4P44pTR,R8XdTR8XdRTR&M TR8XdRTR&TPTR,TR ,TR,4TR&TPR8Xd\
P!R
4TR &T# L<>;i R #;i) r<>r<>rxr<>r<>r<>r<>r<>r<>rcz/www/server/php/sort.pl<70>phpSortF)
r<EFBFBD>rxr?r@rAr:rrWr]r<>)rFrTryr!r<>s&& r<00> getPluginInfo<66>panelPlugin.getPluginInfo0s<><00><00> <19><1D><1C><1C>c<EFBFBD>h<EFBFBD>h<EFBFBD>/<2F>J<EFBFBD><1E>M<EFBFBD> <15>:<3A><08><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>$*<2A>$6<>$6<>v<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>7P<37>7V<37>7V<37>7X<37>$Y<>M<EFBFBD><1A>&<26>!<21>U<EFBFBD>*<2A> <20>E<EFBFBD>)<29>-:<3A>J<EFBFBD>z<EFBFBD>*<2A>"<22>e<EFBFBD>+<2B>-R<>J<EFBFBD>z<EFBFBD>*<2A>%)<29>%5<>%5<>j<EFBFBD><16>6H<36><1A>T\<5C>I]<5D>^h<>is<69>^t<>%u<>J<EFBFBD>z<EFBFBD> "<22><12>x<EFBFBD>x<EFBFBD>5<EFBFBD> <20>(.<2E><0F><0F>8Q<38>(R<>
<EFBFBD>9<EFBFBD>%<25><1D> <1D><> <15><14><> <19><18>s)<00>D<00>&C=<00>8C=<00>?A=D<00>=D<03>?D<00>D c<08>z<00>VPVP4p.pRpVR,PR4Fp/pWVR&VPR8XdI\PP VR,VP RR4,R,4VR&M VR,VR&VPV4K<> V#) r<>r<>rNrQr<>r<>r<>r
rO)r<>rxr[r?r@rAr<>rY)rFrTr~r<>r@rQr<>s&& r<00>getPluginStatus<75>panelPlugin.getPluginStatusHs<><00><00><13>|<7C>|<7C>C<EFBFBD>H<EFBFBD>H<EFBFBD>%<25><04><15><08> <20><04><1B>J<EFBFBD>'<27>-<2D>-<2D>c<EFBFBD>2<>G<EFBFBD><14>C<EFBFBD>$<24> <09>N<EFBFBD><12>x<EFBFBD>x<EFBFBD>5<EFBFBD> <20> "<22><07><07><0E><0E>t<EFBFBD>c<EFBFBD>z<EFBFBD>G<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>PR<50><S<>/S<>Vc<56>/c<> d<><03>H<EFBFBD> <0A> $<24>X<EFBFBD><0E><03>H<EFBFBD> <0A> <14>O<EFBFBD>O<EFBFBD>C<EFBFBD> <20>3<><18>rc<08><><00>VPR8XEdjRpRpVPR8Xd<>VPVP4R,p\P!RV,R,VP
P RR4,R ,4VPR
4FQp\PPVR,VP RR4,R ,4'gKOR pMI MF\P!VR,VP
P RR4,R ,R 4V'd1VPVPR \VP44M0VPVPR \VP44\P!R\P!R44#)r<>Tr<54>r<>r<>rSr<>r<>r<>r
rNFrir<>r<>)rxrOr<>r:r\rQr<>r[r?r@rArjr<>r<>r<>r<>)rFrT<00>isRemover@r<>rQs&& r<00>setPluginStatus<75>panelPlugin.setPluginStatusWsA<00><00> <0E>8<EFBFBD>8<EFBFBD>u<EFBFBD> <1C><1B>H<EFBFBD>$<24>D<EFBFBD><12>z<EFBFBD>z<EFBFBD>S<EFBFBD> <20><1F><<3C><<3C><03><08><08>1<>*<2A>=<3D><08><16> <20> <20><18>D<EFBFBD><1F>3<EFBFBD>!6<><13><1B><1B>9L<39>9L<39>S<EFBFBD>QS<51>9T<39>!T<>Wd<57>!d<>e<>'<27>~<7E>~<7E>c<EFBFBD>2<>G<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>S<EFBFBD>j<EFBFBD>7<EFBFBD>?<3F>?<3F>3<EFBFBD>r<EFBFBD>3J<33>&J<>]<5D>&Z<>[<5B>[<5B>#(<28><08><1D> 3<>
<17> <20> <20><14><03><1A>c<EFBFBD>k<EFBFBD>k<EFBFBD>.A<>.A<>#<23>b<EFBFBD>.I<>!I<>M<EFBFBD>!Y<>Z`<60>a<><17><14> <0A> <0A>c<EFBFBD>h<EFBFBD>h<EFBFBD> <09>3<EFBFBD>s<EFBFBD>z<EFBFBD>z<EFBFBD>?<3F>C<><43> <10>M<EFBFBD>M<EFBFBD>#<23>(<28>(<28>I<EFBFBD>s<EFBFBD>3<EFBFBD>:<3A>:<3A><EFBFBD> ?<3F><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08><><00>\P!R4'd VR8wd\P!RRR4#^RIp\P!R4'g
R\R&\P
!4p\ PPR4'd VR,pM VR,pVP!\P!V44pV\R&^;p;rxTPR4p \\T44FwpT F2p
YW,R ,T
R ,8wdK T
R
,YW,R
&K4 YW,R ,'gKRYW,R ,TnTPT4Ky \P !TP"TP$!T44\R,R ,pTP!\P!T44p \P !TP&TP$!T 44TP)T4TP+T4R\R&\P!R\P,!R 44# \R,R,pTP!\P!T44pEL<>;i L<>;i)<0F>getCloudPluginNTz2Your plugin list is already the latest version {}!r&zhttp://node.yakpanel.comzplugin/beta/config.confz/install/list.jsonz/install/list_pro.jsonrxr<><00>defaultz/install/type.json<6F>Software list updated!)r<>)rrTr:r<>rUr<>r?r@rArV<00>httpGetr<74>rYrZrxr<>rjr<>rUr<>rP<00>GetCloudWarningr<67>) rFrTrU<00>newUrlr&r<>r<>r<00>j<>lists<74>pinfo<66>typess && rrt<00>panelPlugin.getCloudPluginls <00><00> <12>;<3B>;<3B>'<27> (<28> (<28>S<EFBFBD>D<EFBFBD>[<5B><16>AZ<41>AZ<41>[_<>aU<02>V]<02>B^<02>;^<02><13><16>{<7B>{<7B>><3E>*<2A>*<2A>F`<60>G<EFBFBD>N<EFBFBD>,C<>
<<3C><1B>^<5E>^<5E>%<25>F<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>7<>8<>8<>%<25>(<<3C><<3C> <0C>%<25>(@<40>@<40> <0C><17>:<3A>:<3A>f<EFBFBD>n<EFBFBD>n<EFBFBD>\<5C>:<3A>;<3B>D<EFBFBD>&,<2C>G<EFBFBD>N<EFBFBD> #<23>
<16> <0A><01> <0A>A<EFBFBD><14> <0C> <0C>T<EFBFBD>"<22><05><16>s<EFBFBD>4<EFBFBD>y<EFBFBD>!<21>A<EFBFBD><1E><05><17>7<EFBFBD>6<EFBFBD>?<3F>e<EFBFBD>F<EFBFBD>m<EFBFBD>3<>X<EFBFBD>%*<2A>9<EFBFBD>%5<><04><07> <09>"<22><1F><14>w<EFBFBD>y<EFBFBD>!<21>!<21><1F>7<EFBFBD>6<EFBFBD>?<3F><03><08><14> <0C> <0C>S<EFBFBD>!<21> "<22> <0F><18><18><14><1B><1B>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><04>%5<>6<> <11>"<22>><3E>2<>5I<35>I<>L<EFBFBD><18>J<EFBFBD>J<EFBFBD>v<EFBFBD>~<7E>~<7E>l<EFBFBD>;<3B><<3C>E<EFBFBD> <12> <1C> <1C>T<EFBFBD>[<5B>[<5B><14><1A><1A>E<EFBFBD>):<3A> ;<3B> <0A><1B><1B>C<EFBFBD> <20> <0C><1C><1C>S<EFBFBD>!<21>$(<28><07> <20>!<21><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;S<>/T<>U<>U<><55>; <<3C>"<22>><3E>2<>5M<35>M<>L<EFBFBD><17>:<3A>:<3A>f<EFBFBD>n<EFBFBD>n<EFBFBD>\<5C>:<3A>;<3B>D<EFBFBD><44>* <11> <10>s <00>&9I:<00> AI:<00>9A+J<<00>:<J9<03><Kc<08>z<00>VPR4\P!R\P!R44#)NTrv)rtr:r<>r<><00>rFrTs&&r<00> flush_cache<68>panelPlugin.flush_cache<68>s-<00><00> <0C><1B><1B>D<EFBFBD>!<21><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;S<>/T<>U<>Urc<08><><00>^RIpRp\P!V4'd^#\P!4pVR,p\P
!V4pVP !V4pV'g^#\P!RVP!V44\P!VR4R# \P!4u#;i)rN<> php_ext_cachez/install/lib/phplib.jsonzdata/phplib.confrST) rUrrTr:r<>rwrVrjrUr^<00>get_error_info)rFrTrUrb<00>surlr&<00>tstrr<72>s&& rrP<00>panelPlugin.getCloudPHPExt<78>s<><00><00><13>! +<2B>!<21>C<EFBFBD><14>y<EFBFBD>y<EFBFBD><13>~<7E>~<7E>a<EFBFBD><19>><3E>><3E>#<23>D<EFBFBD><1F>"<<3C><<3C>L<EFBFBD><19>><3E>><3E>,<2C>/<2F>D<EFBFBD><17>:<3A>:<3A>d<EFBFBD>#<23>D<EFBFBD><17><01> <12> <1C> <1C>/<2F><04>
<EFBFBD>
<EFBFBD>4<EFBFBD>0@<40> A<>, <12>I<EFBFBD>I<EFBFBD>c<EFBFBD>%<25> <20><17><> +<2B><19>(<28>(<28>*<2A> *<2A>s<00>B6<00>A B6<00>6>B6<00>6Cc<08><><00>^RIp\P!R4'g\P!4\R&\R,R,p\P
!V4pVP !V4pV'gR#RpVP !\P!V44p\\VR,44FlpVR,F\p VR,V,R,V R,8wdK(V R,VR,V,R&V R ,VR,V,R &K^ Kn \P!WbP!V44V#)
rNr&z/install/warning.jsonFzdata/warning.jsonr<6E>rx<00> ignore_count<6E> ignore_time) rUrrTr:r<>rwrVrWrYrZrjrU)
rFrTrUr&r<>r<><00>wfile<6C>wlistrrs
&& rrx<00>panelPlugin.GetCloudWarning<6E>s<00><00><13><16>{<7B>{<7B>><3E>*<2A>*<2A>f<EFBFBD>n<EFBFBD>n<EFBFBD>FV<46>G<EFBFBD>N<EFBFBD>,C<><1E>~<7E>.<2E>1H<31>H<> <0C><15>~<7E>~<7E>l<EFBFBD>+<2B><04><13>z<EFBFBD>z<EFBFBD>$<24><1F><04><13>E<EFBFBD>#<23><05><14>
<EFBFBD>
<EFBFBD>6<EFBFBD>?<3F>?<3F>5<EFBFBD>1<>2<><05><16>s<EFBFBD>4<EFBFBD><06><<3C>(<28>)<29>A<EFBFBD><1A>6<EFBFBD>]<5D>]<5D><01><17><06><<3C><01>?<3F>6<EFBFBD>*<2A>a<EFBFBD><06>i<EFBFBD>7<><18>23<32>N<EFBFBD>2C<32><04>V<EFBFBD> <0C>Q<EFBFBD><0F><0E>/<2F>12<31>=<3D>1A<31><04>V<EFBFBD> <0C>Q<EFBFBD><0F> <0A>.<2E>#<23>*<2A>
<0F><18><18><15>z<EFBFBD>z<EFBFBD>$<24>/<2F>0<><13> rc<08>X<00>VPVnVPV4pVR,#)rr)rxr<>rt)rFrTr~s&& r<00>get_title_byname<6D>panelPlugin.get_title_byname<6D>s'<00><00><17>H<EFBFBD>H<EFBFBD><03> <09><13>!<21>!<21>#<23>&<26><04><13>G<EFBFBD>}<7D>rc<08><><00>\P!VPVPV4# \P!RTPR7u#;i)N<>r<>)r:<00>
run_pluginrxrD<00>get_error_objectr<74>s&&r<00>a<> panelPlugin.a<>sD<00><00> G<01><19>$<24>$<24>S<EFBFBD>X<EFBFBD>X<EFBFBD>s<EFBFBD>u<EFBFBD>u<EFBFBD>c<EFBFBD>:<3A> :<3A><> G<01><19>*<2A>*<2A>4<EFBFBD>S<EFBFBD>X<EFBFBD>X<EFBFBD>F<> F<>s <00>+.<00>$Ac<08>~<00>Rp\PPV4'g\P!VRR7V'dQ\PPV4'g,\P
!R\P !R44#V'd{\P!RV,R,4VR,p^RIH p^R I
H pVPR
,pVPR!R R 8wd
VR ,pVPV4^R IpVP!4P#W$RR4\P$!V4VR,p \PPV 4'g<>R p
\P&!V4Fzp \)V ^,4^8dKRV ^,9gK,RV ^,9gK<\PPV ^,R,4'gKqV ^,p
K| V
'd T
pVR,p \*P,!\P.!V 44p \P2!T4T R&RT 9g\P !R4T R&RT 9gRT R&RT R,,R,p RT R&YLR&\PPT 4'd9\*P,!\P.!T 44pTR,T R&MY<R &T # \*P,!\P.!T 4P1R44p EL;i LK;i \P!RT,R,4\P
!R\P !R44u#;i)"r<>r<>r<>F<>File download failed!r<>r<>z/plugin_tmp.zip)<01>secure_filename)<01>request<73>
plugin_zipNr<EFBFBD>z/plugin_tmp.tar.gzr<7A><00> /dev/nullr<6C><00> info.json<6F>
install.shz utf-8-sigr<67>r<><00>Unknownr<6E>z,https://www.yakpanel.com/bbs/forum-40-1.htmlr<6C>rxr<><00> old_versionr<6E>r<>zENo plugin info found in the archive, please check the plugin package!r<><00><><EFBFBD><EFBFBD><EFBFBD>)r?r@rArBr:r<>r<>r\<00>werkzeug.utilsr<73>rFr<><00>filesr<73><00>save<76> panelTask<73>bt_task<73>_unziprk<00>walkrZrUrVr<><00>decode<64> get_path_size)rFrT<00>tmp_filer<65>r<>r<>r<>r{r<><00>p_info<66>d_path<74>dfr<66><00> plugin_path<74>old_infos&&&& rr<><00>panelPlugin.update_zip<69>s<><00><00>+<2B><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27> <0E>K<EFBFBD>K<EFBFBD><08>c<EFBFBD> *<2A> <13><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B>F<EFBFBD>4M<34>4M<34>e<EFBFBD>U[<5B>U`<60>U`<60>ax<61>Uy<55>4z<34>-z<> <0F> <12> <1C> <1C>Y<EFBFBD><18>1<>D<EFBFBD>8<> 9<><1F>"3<>3<>H<EFBFBD> 6<> %<25><17> <0A> <0A>l<EFBFBD>+<2B>A<EFBFBD><10>z<EFBFBD>z<EFBFBD>"<22>#<23><EFBFBD>&<26>(<28>X<EFBFBD>@T<>5T<35>(<28> <0A>F<EFBFBD>F<EFBFBD>8<EFBFBD> <1C> <19><11><19><19><1B>"<22>"<22>8<EFBFBD>R<EFBFBD> <0B>D<>
<EFBFBD> <09> <09>(<28><1B><19>L<EFBFBD>(<28><06><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25>%<25><19>F<EFBFBD><18>g<EFBFBD>g<EFBFBD>h<EFBFBD>'<27><02><16>r<EFBFBD>!<21>u<EFBFBD>:<3A><01>><3E>8<EFBFBD>"<22>b<EFBFBD><11>e<EFBFBD>+<2B>X<EFBFBD>#<23>r<EFBFBD>!<21>u<EFBFBD>,<2C>h<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>b<EFBFBD><11>e<EFBFBD>l<EFBFBD>&:<3A>;<3B>;<3B>X<EFBFBD><1B>A<EFBFBD><15><06> (<28> <16>!<21><08>!<21>L<EFBFBD>0<><06> J<02> O<01><1B>z<EFBFBD>z<EFBFBD>&<26>/<2F>/<2F>&<26>"9<>:<3A><04>"<22>/<2F>/<2F><08>9<>D<EFBFBD><16>L<EFBFBD><1B>t<EFBFBD>#<23>f<EFBFBD>k<EFBFBD>k<EFBFBD>)<29>6L<36>T<EFBFBD>(<28>^<5E><19>T<EFBFBD>><3E>2`<60>4<EFBFBD><06><<3C>5<><04>V<EFBFBD> <0C>D<>|<7C>S<>K<EFBFBD>"%<25>D<EFBFBD><1D> <1F>'<27><1A> <1C><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A><1C>#<23>z<EFBFBD>z<EFBFBD>&<26>/<2F>/<2F>+<2B>*F<>G<>H<EFBFBD>*2<>:<3A>*><3E>D<EFBFBD><1D>'<27>+<2B> <20>X<EFBFBD><0E><13> <0B><>' O<01><1B>z<EFBFBD>z<EFBFBD>&<26>/<2F>/<2F>&<26>"9<>"@<40>"@<40><1B>"M<>N<><04><><1C>t<EFBFBD><74> J<02> <12> <1C> <1C>Y<EFBFBD><18>1<>D<EFBFBD>8<> 9<><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>AH<02>5I<02>J<02> J<02>s8<00>.*L!<00>B
M)<00>#6M"<00>!;M<03>M)<00>"M&<03>$M)<00>&M)<00>)AN<c<08>0<00>\VR4'd0\PPVP4'g,\
P !R\
P!R44#RVP,p\PPV4'g\P!V4\
P!RVP,R,V,R,4\
P!RV,4VPVR,4\
P!R V,R
,4\
P!VR ,4p\
P!R 4V'd<>VR ,pRPVP4p\PPVR ,4'd^RIpVP!WE4\
P !RR\"P$!V4R,34\
P !R\
P!R44#\
P!RV,4\
P !R\
P!R44#)r<>Fz0Temporary file does NOT exist, please re-upload!r<>z
\cp -a -r z/* r<>z chmod -R 600 r)zcd z1 && bash install.sh install &> /tmp/panelShell.plr<6C>zrm -rf /www/server/panel/temp/*r<>z9/www/server/panel/YakPanel/static/img/soft_ico/ico-{}.pngN<67>Software managerz!Installed third-party plugin [{}]rrTr<54>r<>zInstallation failed)r<>r?r@rAr<>r:r<>r<>r<>rBr\r<>r<>rEr<><00>copyfilerrUrV)rFrTr<>r<><00>
icon_sfile<EFBFBD>
icon_dfiler<EFBFBD>s&& r<00> input_zip<69>panelPlugin.input_zip" s<><00><00><16>s<EFBFBD>J<EFBFBD>'<27>'<27>r<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>~<7E>c<EFBFBD>l<EFBFBD>l<EFBFBD>/K<>/K<><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@r<>4s<34>t<> t<>1<>C<EFBFBD>O<EFBFBD>O<EFBFBD>C<> <0B><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A>B<EFBFBD>K<EFBFBD>K<EFBFBD> <0B>,D<><0E><18><18><1D><13><1C><1C>5<><05>=<3D> <0B>K<>c<EFBFBD>Q<>R<><0E><18><18><1F>;<3B>6<>7<> <0C><0E><0E>{<7B>]<5D>2<>3<><0E><18><18><15><1B>,<2C>/b<>b<>c<><17><1F><1F><1B>|<7C>!;<3B><<3C><06><0E><18><18>:<3A>;<3B> <11>$<24>{<7B>2<>J<EFBFBD>T<>[<5B>[<5B>\_<>\k<>\k<>l<>J<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>K<EFBFBD>7<>8<>8<><1D><16><0F><0F>
<EFBFBD>6<> <12> $<24> $<24>%7<>8[<5B>^b<>^h<>^h<>io<69>^p<>qx<71>^y<>]{<7B> |<7C><19>,<2C>,<2C>T<EFBFBD>6<EFBFBD>;<3B>;<3B>?X<>3Y<33>Z<> Z<><0E><18><18><19>[<5B>0<>1<><15>(<28>(<28><15><06> <0B> <0B><Q<>0R<30>S<>Src<08>l<00>RVP,p\PPV4'g,\P
!R\P !R44#VR,VnRVP,R,VnRVn ^RI
pVP4PV4\PPVP4'g,\P
!R\P !R44#\P
!R VP4#)
r<EFBFBD>Fr<46>r<>z!/www/server/panel/temp/bt_plugin_r<5F><00>zipNz(Export failed, please check permissions!T) r<>r?r@rAr:r<>r<><00>sfile<6C>dfiler<65>r<><00>Zip)rFrTr<>r<>s&& r<00>
export_zip<EFBFBD>panelPlugin.export_zip< s<><00><00>1<>C<EFBFBD>O<EFBFBD>O<EFBFBD>C<> <0B><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A>6<EFBFBD>3L<33>3L<33>U<EFBFBD>TZ<54>T_<54>T_<54>aG<02>UH<02>4I<02>-I<02><1F>#<23>%<25><03> <09>7<>#<23>/<2F>/<2F>I<>F<EFBFBD>R<><03> <09><18><03><08><14> <0A> <0B> <0B> <0A><19><19>#<23><1E><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>c<EFBFBD>i<EFBFBD>i<EFBFBD>(<28>(<28><16>1J<31>1J<31>5<EFBFBD>RX<52>R]<5D>R]<5D>_I<02>SJ<02>2K<02>+K<02><15>(<28>(<28><14>c<EFBFBD>i<EFBFBD>i<EFBFBD>8<>8rc <08>x<00>RVP,p\PPV4'g\P!V4.p\P
!V4EF<>p\PP W$4p\PPV4'gKJRVRRRRRR/p\PP VR4p\PP VR4p\PP VR4p \PPV4'gK<>\PPV4'd\P!V4VR&\PPV 4'd\P!V 4VR&\P!V4VR&VPV4EK<> RVR R/p
VR
,p \PPV 4'd\P!V 4V
R &V
#) <0B>install/rxr>r<>r<>rK<00>init.sh<73>args.pl<70>ps.plr<6C><00>
/config.pl) rxr?r@rArBr<>r<>r<>r:rWrY) rFrT<00> config_path<74> make_argsr<73>r@<00> make_info<66> init_file<6C> args_file<6C>ps_filer<65><00> config_files && r<00> get_make_args<67>panelPlugin.get_make_argsJ s<><00><00> <20>3<EFBFBD>8<EFBFBD>8<EFBFBD>+<2B> <0B><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A> <0E>K<EFBFBD>K<EFBFBD> <0B> $<24><16> <09><18>j<EFBFBD>j<EFBFBD><1B>-<2D>F<EFBFBD><15>7<EFBFBD>7<EFBFBD><<3C><<3C> <0B>3<>D<EFBFBD><15>7<EFBFBD>7<EFBFBD>=<3D>=<3D><14>&<26>&<26><08><1F><06>v<EFBFBD>b<EFBFBD><16><02>4<EFBFBD><02>C<>I<EFBFBD><1A><07><07> <0C> <0C>T<EFBFBD>)<29>4<>I<EFBFBD><1A><07><07> <0C> <0C>T<EFBFBD>)<29>4<>I<EFBFBD><18>g<EFBFBD>g<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD><07>0<>G<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>)<29>,<2C>,<2C><18><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>i<EFBFBD>(<28>(<28>$*<2A>O<EFBFBD>O<EFBFBD>I<EFBFBD>$><3E> <09>&<26>!<21><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>g<EFBFBD>&<26>&<26>"(<28>/<2F>/<2F>'<27>":<3A> <09>$<24><0F> &<26><0F><0F> <09> :<3A>I<EFBFBD>f<EFBFBD> <1D> <15> <1C> <1C>Y<EFBFBD> '<27>.<2E> <17>y<EFBFBD><18>"<22>-<2D><04>!<21>L<EFBFBD>0<> <0B> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> &<26> &<26>#<23>_<EFBFBD>_<EFBFBD>[<5B>9<>D<EFBFBD><18>N<EFBFBD><13> rc<08><><00>VPP4VnVPP4VnVPP4Vn\P
!RVP4'g,\ P!R\ P!R44#\PPRVPVP4p\PPV4'g\P!VR4\PPVR4p\PPVR4p\PPVR4p\ P!W1PP!RR 44\ P!WAP"4\ P!WQP4\ P$!R
R VPVP34\ P!R \ P!R 44#)<0E>^\w+$F<>=Non-compliant names can only be numbers, letters, underscoresr<73>r<>r<>r<>r<>z
<EFBFBD>
r<EFBFBD>z(Add custom compilation parameters: {}:{}Tr<54>)<13> args_namer]rxrKrlrmr:r<>r<>r?r@r<>rArBrjr>r<>r<>r)rFrTr<>r<>r<>r<>s&& r<00> add_make_args<67>panelPlugin.add_make_argsg sv<00><00><1B> <0A> <0A>+<2B>+<2B>-<2D><03> <0A><16>8<EFBFBD>8<EFBFBD>><3E>><3E>#<23><03><08><14><16><16><1C><1C><1E><03><06><11>x<EFBFBD>x<EFBFBD><08><13><1D><1D>/<2F>/<2F><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@<>5A<02>B<02> B<02><18>g<EFBFBD>g<EFBFBD>l<EFBFBD>l<EFBFBD>9<EFBFBD>s<EFBFBD>x<EFBFBD>x<EFBFBD>#<23>-<2D>-<2D>H<> <0B><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A> <0E>K<EFBFBD>K<EFBFBD> <0B>C<EFBFBD> (<28><16>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><1B>Y<EFBFBD>7<> <09><16>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><1B>Y<EFBFBD>7<> <09><14>'<27>'<27>,<2C>,<2C>{<7B>7<EFBFBD>3<><07><0E><18><18><19>8<EFBFBD>8<EFBFBD>#3<>#3<>F<EFBFBD>4<EFBFBD>#@<40>A<><0E><18><18><19>8<EFBFBD>8<EFBFBD>,<2C><0E><18><18><17><16><16>(<28><0E> <20> <20>!3<>4^<5E>`c<>`h<>`h<>il<69>iv<69>iv<69>_w<5F>x<><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc<08><><00>VPP4VnVPP4Vn\P!RVP4'g,\
P !R\
P!R44#\PPRVPVP4p\PPV4'g,\
P !R\
P!R44#\
P!RPV44RVP,R,p\PPV4'dx\
P!V4PR4pVPV9dBVP!VP4\
P"!VRPV44\
P$!R R
VPVP34\
P !R \
P!R 44#) r<>Fr<46>r<>z9The specified custom compilation parameters do not exist!z rm -rf {}r<>r<>r<>r<>z+Remove custom compilation parameters: {}:{}TzSuccessfully deleted)r<>r]rxrlrmr:r<>r<>r?r@r<>rAr\rErWr[rkrjr)rFrTr<>r<><00> config_datas&& r<00> del_make_args<67>panelPlugin.del_make_args} s<><00><00><1B> <0A> <0A>+<2B>+<2B>-<2D><03> <0A><16>8<EFBFBD>8<EFBFBD>><3E>><3E>#<23><03><08><11>x<EFBFBD>x<EFBFBD><08><13><1D><1D>/<2F>/<2F><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@<>5A<02>B<02> B<02><18>g<EFBFBD>g<EFBFBD>l<EFBFBD>l<EFBFBD>9<EFBFBD>s<EFBFBD>x<EFBFBD>x<EFBFBD>#<23>-<2D>-<2D>H<> <0B><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A><19>,<2C>,<2C>U<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>@{<7B>4|<7C>}<7D> }<7D><0E><18><18><1B>+<2B>+<2B>K<EFBFBD>8<>9<> <20>3<EFBFBD>8<EFBFBD>8<EFBFBD>+<2B>l<EFBFBD>:<3A> <0B> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> &<26> &<26> <20>/<2F>/<2F>+<2B>6<><<3C><<3C>T<EFBFBD>B<>K<EFBFBD><12>}<7D>}<7D> <0B>+<2B><1B>"<22>"<22>3<EFBFBD>=<3D>=<3D>1<><16> <20> <20><1B>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>{<7B>-C<>D<><0E> <20> <20>!3<>4a<34>cf<63>ck<63>ck<63>lo<6C>ly<6C>ly<6C>bz<62>{<7B><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;Q<>/R<>S<>Src<08><><00>VPP4PR4VnVPP4VnRVP,R,p.pVPFdpRVP,R,V,p\P
P V4'gKKWC9dKSVPV4Kf \P!VRPV44\P!RRPVPV44\P!R\P!R44#)r<>r<>r<>r<>r<>zJSetup software: Custom compilation parameters for {} are configured as: {}Tr<54>)<0F>
args_namesr]r[rxr?r@rArYr:rjr<>rrEr<>r<>)rFrTr<>r<>r<>r@s&& r<00> set_make_args<67>panelPlugin.set_make_args<67> s<00><00><1C><1E><1E>-<2D>-<2D>/<2F>5<>5<>d<EFBFBD>;<3B><03><0E><16>8<EFBFBD>8<EFBFBD>><3E>><3E>#<23><03><08> <20>3<EFBFBD>8<EFBFBD>8<EFBFBD>+<2B>l<EFBFBD>:<3A> <0B><18> <0B><1C><1E><1E>I<EFBFBD><1D><03><08><08>(<28>3<EFBFBD>.<2E><19>:<3A>D<EFBFBD><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27><18><18>'<27><18> <17> <1E> <1E>y<EFBFBD> )<29> (<28>
<0F><18><18><1B>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>{<7B>%;<3B><<3C><0E> <20> <20>!3<>5A<02>5H<02>5H<02>IL<02>IQ<02>IQ<02>R]<02>5^<02> _<02><15>(<28>(<28><14>v<EFBFBD>{<7B>{<7B>;P<>/Q<>R<>Rrc <0C><><00>WnVPV4pV'g\P!R4hVR,'g\P!R4hV'g=RP VR,^,R,VR,^,R,4pVP W4p\ V\4'dV#VPV4#)u<>
@name 安装指定插件
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@param upgrade_version<string> 插件版本 版本号.指定版本号 / tls.最新正式版 / beta.最新测试版
@return dict
zPlugin not foundr<64>z&Not available versions for this plugin<69>{}.{}r<>rQ) r"rdr:<00>
PanelErrorrE<00>_panelPlugin__download_pluginr<6E>r<><00>_panelPlugin__unpackup_plugin)rF<00>upgrade_plugin_name<6D>upgrade_versionr^r<>s&&& r<00>__install_plugin<69>panelPlugin.__install_plugin<69> s<><00><00>1<><1A><1A>,<2C>,<2C>-@<40>A<> <0B><1A><18>#<23>#<23>$6<>7<> 7<><1A>:<3A>&<26>&<26><18>#<23>#<23>$L<>M<> M<><1E>%<25>n<EFBFBD>n<EFBFBD><1B>J<EFBFBD>'<27><01>*<2A>;<3B>7<><1B>J<EFBFBD>'<27><01>*<2A>9<EFBFBD>5<>7<>O<EFBFBD><18>)<29>)<29>*=<3D>O<><08> <15>h<EFBFBD><04> %<25> %<25><1B>O<EFBFBD><13>%<25>%<25>h<EFBFBD>/<2F>/rc <0C>2<00>RVnVPW4#)u<>
@name 修复指定插件
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@param upgrade_version<string> 插件版本 版本号.指定版本号 / tls.最新正式版 / beta.最新测试版
@return dict
rq<00>r1r<><00>rFr<>r<>s&&&r<00>__repair_plugin<69>panelPlugin.__repair_plugin<69> <00><00><00>!<21><04><1A><13>$<24>$<24>%8<>J<>Jrc <0C>2<00>RVnVPW4#)u<>
@name 升级到指定版本
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@param upgrade_version<string> 插件版本 版本号.指定版本号 / tls.最新正式版 / beta.最新测试版
@return dict
<EFBFBD>ur<75>r<>s&&&r<00>__upgrade_plugin<69>panelPlugin.__upgrade_plugin<69> r<>rc <0C><><00>RPVPV4p\PP V4'g/#VP V4pV'g/#\ P!V4pV#)us
@name 获取插件信息
@author hwliang<2021-06-15>
@param upgrade_plugin_name<string> 插件名称
@return dict
z{}/{}/info.json)rEr%r?r@rA<00>_panelPlugin__read_filerUrV)rFr<><00>plugin_info_file<6C> info_bodyr^s&& r<00>__get_plugin_info<66>panelPlugin.__get_plugin_info<66> se<00><00>-<2D>3<>3<>D<EFBFBD>4F<34>4F<34>4G<34>I<01><18><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>.<2E>/<2F>/<2F><02><19><18>$<24>$<24>%5<>6<> <09><18><12>)<29><1A>j<EFBFBD>j<EFBFBD><19>+<2B> <0B><1A>rc <0C><><00>RpVPV4pV'gV#VR,F5pRPVR,VR,4pWb8XgK+VR,pV# V#)u<>
@name 检查指定插件版本更新日志
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@param upgrade_version<string> 插件版本
@return string
r<EFBFBD>r<>r<>r<>rQ<00>
update_msg)rdrE)rFr<>r<><00>plugin_update_msgr^<00> _version_info<66> l_versions&&& r<00>__get_update_msg<73>panelPlugin.__get_update_msg<73> sv<00><00><1F><19><1A>,<2C>,<2C>-@<40>A<> <0B><1A>#4<>4<>(<28><1A>4<>4<>M<EFBFBD><1F><0E><0E>}<7D>[<5B>'A<>'4<>Y<EFBFBD>'?<3F>A<01>I<EFBFBD><18>+<2B>$1<>,<2C>$?<3F>!<21><15> <20> <20> 5<> !<21> rc <0C><><00>VPV4pV'g.#\P!VPR,RVR,/4p\P
!V4# .u#;i)u<>
@name 检查指定插件最近10条更新日志
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@return list
z/down/get_update_msg<73>soft_idr<64>)rdr:r<>r(rUrV)rFr<>r^<00> upgrade_lists&& r<00>__get_plugin_upgrades<65>!panelPlugin.__get_plugin_upgrades<65> sh<00><00><1B>,<2C>,<2C>-@<40>A<> <0B><1A>2<EFBFBD>I<EFBFBD> <16>!<21>?<3F>?<3F><14>#<23>#<23>&<<3C><<3C><1A>K<EFBFBD><04>-<2D>.<2E>0<>L<EFBFBD><18>:<3A>:<3A>l<EFBFBD>+<2B> +<2B><> <16><15>I<EFBFBD>s <00>AA$<00>$A*c <0C><><00>VPR4VPR,FpVR,V8XgKVR,pVu# VPV4#)uy
@name 获取指定软件信息
@author hwliang<2021-06-15>
@param upgrade_plugin_name<string> 插件名称
@return dict
TrJrx)<03>)_panelPlugin__ensure_plugin_list_obtainedr<00>_panelPlugin__get_plugin_info)rFr<><00> p_data_infos&& r<00>__get_plugin_find<6E>panelPlugin.__get_plugin_find
s]<00><00> <0A>*<2A>*<2A>4<EFBFBD>0<><1F>-<2D>-<2D>f<EFBFBD>5<>5<>K<EFBFBD><1A>6<EFBFBD>"<22>&9<>9<>&1<>&<26>&9<>#<23>"<22>"<22>6<> <14>%<25>%<25>&9<>:<3A>:rc <0C>&<00>VPV4pV'g/#VR,'g/#/pVR,PR4FFpVPV4pV'gK\PP VR,4W4&KH V#)u<>
@name 检查指定插件的依赖安装情况
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@return dict
rrNr<>)rdr[r?r@rA)rFr<>r^<00>deployment_list<73>dependent_plu_namer<65>s&& r<00>__check_dependent<6E>panelPlugin.__check_dependent
s<><00><00><1B>,<2C>,<2C>-@<40>A<> <0B><1A>2<EFBFBD>I<EFBFBD><1A>;<3B>'<27>'<27><02><19><1C><0F>"-<2D>k<EFBFBD>":<3A>"@<40>"@<40><13>"E<> <1E><19>+<2B>+<2B>,><3E>?<3F>F<EFBFBD><19>8<EFBFBD>24<32>'<27>'<27>.<2E>.<2E><16>'<27>(<28>3*<2A>O<EFBFBD> /<2F>#F<01>
<1F>rc <0C>^<00>\WR7pVP4pVP4V#)u<>
@name 读取指定文件
@author hwliang<2021-06-16>
@param filename<string> 文件名
@param mode<string> 打开模式, 默认: r
@return bytes or string
r<EFBFBD>)rrurv)rFr<><00> open_mode<64>f_object<63> file_bodys&&& r<00> __read_file<6C>panelPlugin.__read_file-
s)<00><00><18><08>1<><08><1C>M<EFBFBD>M<EFBFBD>O<EFBFBD> <09><10><0E><0E><18><18>rc <0C><><00>\V4\8XdV#RV9gRV9d\P!V4#VPp\
P PV4'g\
P!VRR7V'd<>\
P PV4'g,\P!R\P!R44#^RI pVP4PWRR 4\
P PV4'd\
P!V4\
P P!W P"4p\
P P!VR
4p\
P PV4'g<>Rp\
P$!V4Fzp\'V^,4^8dKR
V^,9gK,R V^,9gK<\
P PV^,R ,4'gKqV^,pK| V'd TpVR ,p\P!\P(!V44p\P,!T4TR &RT9gRTR&RT9g(RP/\P0!44TR&TP2TR,,R ,pRTR&Y'R&\
P PT4'd9\P!\P(!T44p T R,TR&MTP8TR&TP;TR,4TR&TP=TR,TR,4TR&TP?T4p
T
'd>\
P PT4'd\@PB!T4T
#T# \P!TP+T44pEL<>;i L<>;i \P4!RT,R,4\P6!TP"R7u#;i)u<>
@name 解包插件包
@author hwliang<2021-06-21>
@param tmp_file<string> 下载好的保存路径从self.download_plugin方法中获取
@return dict
r<EFBFBD>u错误r<E8AFAF>r<>Fr<46>Nr<4E>r<>r<>r<>r<>r<>r<><00>yakpanelr<6C>z{}rxr<>r<>r<>r<>r<>r<>r<><00> install_optrr<>)"r<>r<>rUrVr.r?r@rArBr:r<>r<>r<>r<>r<>rkr<>r"r<>rZr<>r<>r<>rE<00>OfficialApiBaser%r\r<>r1<00>_panelPlugin__check_dependent<6E>_panelPlugin__get_update_msg<73>not_cpu_or_bitr<74>r<>) rFr<><00>
s_tmp_path<EFBFBD> plu_panelTaskr<6B>r<><00> plugin_df<64>plugin_data_info<66> p_info_filer<65><00> not_checks && r<00>__unpackup_plugin<69>panelPlugin.__unpackup_plugin;
sw<00><00> <10><08>><3E>T<EFBFBD> !<21><1B>O<EFBFBD> <12>h<EFBFBD> <1E>(<28>h<EFBFBD>"6<><17>:<3A>:<3A>h<EFBFBD>'<27> '<27><19>_<EFBFBD>_<EFBFBD>
<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29> <0E>K<EFBFBD>K<EFBFBD>
<EFBFBD><13> -<2D> <13><15>7<EFBFBD>7<EFBFBD>><3E>><3E>(<28>+<2B>+<2B><1D>'<27>'<27><05>v<EFBFBD>{<7B>{<7B>;R<>/S<>T<>T<> -<2D> <19> !<21> !<21> #<23> *<2A> *<2A>8<EFBFBD><12>+6<> 8<><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>h<EFBFBD>'<27>'<27><12> <09> <09>(<28>#<23><17>W<EFBFBD>W<EFBFBD>\<5C>\<5C>*<2A>.@<40>.@<40>A<>
<EFBFBD><13><17><17><1C><1C>j<EFBFBD>+<2B>6<><06><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>f<EFBFBD>%<25>%<25><19>F<EFBFBD><1F>W<EFBFBD>W<EFBFBD>Z<EFBFBD>0<> <09><16>y<EFBFBD><11>|<7C>$<24>q<EFBFBD>(<28>(<28>"<22>i<EFBFBD><01>l<EFBFBD>2<>H<EFBFBD>#<23>y<EFBFBD><11>|<7C>3<>X<EFBFBD><19>w<EFBFBD>w<EFBFBD>~<7E>~<7E>i<EFBFBD><01>l<EFBFBD>\<5C>&A<>B<>B<>H<EFBFBD>"<22>1<EFBFBD><1C><06> 1<> <16>#<23>
<EFBFBD>#<23>l<EFBFBD>2<><06> K<01> H<01>#'<27>:<3A>:<3A>f<EFBFBD>o<EFBFBD>o<EFBFBD>f<EFBFBD>.E<>#F<> <20>(.<2E>';<3B>';<3B>J<EFBFBD>'G<> <1C>V<EFBFBD> $<24><1B>/<2F>/<2F>-7<> <20><18>*<2A><19>-<2D>-<2D>+/<2F>;<3B>;<3B>v<EFBFBD>7M<37>7M<37>7O<37>+P<> <20><16>(<28><1E>,<2C>,<2C>/?<3F><16>0<18><18>&<26>'<27>K<EFBFBD>.1<EFBFBD> <1C>]<5D> +<2B>+5<>Z<EFBFBD> (<28><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>k<EFBFBD>*<2A>*<2A><19>#<23>z<EFBFBD>z<EFBFBD>&<26>/<2F>/<2F>+<2B>*F<>G<>H<EFBFBD>6><3E>z<EFBFBD>6J<36>$<24>]<5D>3<>+<2B>+/<2F>*<<3C>*<<3C><18><1D>'<27>(,<2C>(><3E>(><3E>?O<>PV<50>?W<>(X<><18><1B>%<25>)-<2D>)><3E>)><3E> <1C>V<EFBFBD> $<24>&6<>z<EFBFBD>&B<>*D<01><18><1C>&<26><18>'<27>'<27>(8<>9<> <09> <14><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29>6<EFBFBD>=<3D>=<3D><1A>+D<><1C> <1C><1F><1F><>? H<01>#'<27>:<3A>:<3A>d<EFBFBD>.><3E>.><3E>v<EFBFBD>.F<>#G<> <20><> <19><18><> K<01> <12> <1C> <1C>Y<EFBFBD><1A>3<>d<EFBFBD>:<3A> ;<3B><19>*<2A>*<2A>t<EFBFBD>7I<37>7I<37>J<> J<>s8<00>*O?<00>?B"P3<00>"6P,<00>?'P)<03>&P3<00>,P0<03>.P3<00>0P3<00>3AQ<c <0C>R<00>RV9dX\P!4\VR,48Xd.\P!RRP VR,44#RV9d<>VR,'gR#\
P !4PpVR,F<>pVP4p\P!RRP W244pVR9dVR 9dVu#KMVR
9dVPR4R 8wdVu#KpVR 9gKyVR 9gK<>Vu# R#) u<>
@name 检测是否为不支持的平台和系统位数
@author hwliang<2021-07-07>
@param plugin_data_info<dict> 插件信息数据
@return dict or None
<EFBFBD>
not_os_bitFz Not supported for {}bit systems.<2E> not_cpu_typeNzNot supported for {},{}<7D>mips)<03>arm<72>aarch64<36>aarch)r)r*)r'<00>mips64<36>mips64elrs)<02>x86zx86-64)
r:<00>
get_sysbitr<EFBFBD>r<>rEr?<00>uname<6D>machiner7r~)rFrr0<00>c_typer<65>s&& rr<00>panelPlugin.not_cpu_or_bit<69>
s<00><00> <18>+<2B> +<2B><15> <20> <20>"<22>c<EFBFBD>*:<3A><<3C>*H<>&I<>I<><1D>'<27>'<27><19>6<>=<3D>=<3D>>N<>|<7C>>\<5C>]<5D>_<01>_<01> <1A>-<2D> -<2D>#<23>N<EFBFBD>3<>3<>D<EFBFBD><18>h<EFBFBD>h<EFBFBD>j<EFBFBD>(<28>(<28>G<EFBFBD>*<2A>><3E>:<3A>:<3A><06><1F><1C><1C><1E><06><1F>)<29>)<29><19>4<>;<3B>;<3B>F<EFBFBD>L<>N<01><06><19>8<>8<><1E>"6<>6<>%<25> <0A>7<><1B>=<3D>=<3D><1E>|<7C>|<7C>F<EFBFBD>+<2B>r<EFBFBD>1<>%<25> <0A>2<><1B>0<>0<><1E>"3<>3<>%<25> <0A>;<3B>rc
 <0C> a<19>RPV4p\P!4pWR&W$R&RVR&\P!\P
!4RR7VR&R PVP V4p\PPVP 4'g"\P!VP R
4\P!V4'Eg;^R I p^R Io^R IHuHuHuHpVP4P)4pVP*p VR 8Xd V3R lVnMVR8Xd V3RlVn\,P.!VP0V\P2!4R*RR7p
Y<>n\=T
P>R,4p ^pRp\JPJ!4p\MTR 4;_uu_4pT
POTR!7F<>pT'gK TPQT4\ST4pTT, p\JPJ!4pTT,
p\=TT, 4pR"PTT T4p\PT!TTR#4K<> TPW4R R R 4\P!T4'd\PX!T4\PZ!T4T
P>R',8wd,\P8!R\P:!R(44#T#\JP\!^4\P!V4'dK5R)# \4Edyp \7T 4p RT 9d7\P8!R\P:!R44uR p ? Y<>n#RT 9d7\P8!R\P:!R44uR p ? Y<>n#RT 9d7\P8!R\P:!R44uR p ? Y<>n#RT 9d7\P8!R\P:!R44uR p ? Y<>n#RT 9d7\P8!R\P:!R44uR p ? Y<>n#\P8!R\P:!RT 44uR p ? Y<>n#R p ? ii;i Y<>ni;i \P@!T
PB4P4u# T
PBPER4R+8wd5\PF!\PH!T
PB44h\PF!T
PB4h;i;i \4d<>p \7T 4pRT9dL\P8!R\P:!R$T44uR p ? TPW4uuR R R 4#R%T9dK\P8!R\P:!R&44uR p ? TPW4uuR R R 4#R p ? EL<>R p ? ii;i TPW4i;i +'giEL<>;i),u<>
@name 下载插件包
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@param upgrade_version<string> 插件版本
@return string 保存路径
<EFBFBD>{}_prerxrQr[r?F)<01> ensure_asciirEz {}/{}.zipr<70>N<>ipv4c<00><<01>SP#<00>N)<01>AF_INET<45><01>sockets<00>rr<><00>/panelPlugin.__download_plugin.<locals>.<lambda><3E>
s <00><><00>&<26>.<2E>.r<00>ipv6c<00><<01>SP#r8)<01>AF_INET6r:s<00>rr<>r<<00>
s <00><><00>&<26>/<2F>/rT)rHr<><00>streamzName or service not knownz Error: Name or service not knownz$Failed to establish a new connectionz+Error: Failed to establish a new connectionzRead timed outzError: Read timed outzConnection refusedzError: Connection refusedz-Remote end closed connection without responsez4Error: Remote end closed connection without responsez Error: {}z File-sizez<html>i zwb+)<01>
chunk_sizez{}/{}/{}rzDownload timeout: {}zNo space left on devicezNo available disk space.z Content-md5zVerify package checksum failed.r<>)<02><irs)/rEr:<00> get_user_inforUrUrVr.r?r@rArBrrTr<>r;<00>)requests.packages.urllib3.util.connection<6F>packages<65>urllib3<62>util<69>
connection<EFBFBD>get_request_iptype<70>allowed_gai_familyrTr<>r*<00>get_requests_headersr<73>rSr<>r<>r<>rHrV<00>textr~r<><00>error_conn_cloudrr<00> iter_contentrrZr^rvrr<><00>sleep)rFr<>r<><00>pkeyr]r<>r<><00> urllib3_conn<6E>_ip_type<70>
old_family<EFBFBD> download_resr<73><00>str_ex<65>headers_total_size<7A> res_down_size<7A>res_chunk_size<7A> last_time<6D>
with_res_f<EFBFBD>download_chunk<6E>speed_last_size<7A>res_start_time<6D> res_timeout<75> res_sec_speed<65>pre_text<78>ex_strr;s&&& @r<00>__download_plugin<69>panelPlugin.__download_plugin<69>
s.<00><><00><18><EFBFBD><EFBFBD>2<>3<><04><16>$<24>$<24>&<26><05>+<2B>f<EFBFBD> <0A>*<2A>i<EFBFBD><18><1D><05>d<EFBFBD> <0B>$(<28>J<EFBFBD>J<EFBFBD>v<EFBFBD>/D<>/D<>/F<>UZ<55>$[<5B><05> <20>!<21><1E>%<25>%<25>d<EFBFBD>o<EFBFBD>o<EFBFBD>7J<37>K<><08><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD>o<EFBFBD>o<EFBFBD>.<2E>.<2E> <0E>K<EFBFBD>K<EFBFBD><04><0F><0F><13> -<2D><14>y<EFBFBD>y<EFBFBD><14><EFBFBD><EFBFBD> !<21> L<> L<><1D>}<7D>}<7D><EFBFBD>9<>9<>;<3B>H<EFBFBD>%<25>8<>8<>J<EFBFBD><17>6<EFBFBD>!<21>2H<32> <0C>/<2F><19>V<EFBFBD>#<23>2I<32> <0C>/<2F> =<3D>'<27>}<7D>}<7D><18>'<27>'<27><19>"<22>7<>7<>9<>&<26><1F>  !<21> <0C>43=<3D>/<2F> ?<3F>%(<28><1C>)=<3D>)=<3D>k<EFBFBD>)J<>%K<>"<22><1E>M<EFBFBD>!<21>N<EFBFBD><1C> <09> <09> <0B>I<EFBFBD><15>h<EFBFBD><05>&<26>&<26>*<2A>'<27>*6<>*C<>*C<>'5<>+D<01>+7<><0E>)<29>><3E>&<26>,<2C>,<2C>^<5E><<3C>.1<EFBFBD>.<2E>.A<>O<EFBFBD>)<29>_<EFBFBD><<3C>M<EFBFBD>-1<>Y<EFBFBD>Y<EFBFBD>[<5B>N<EFBFBD>+9<>I<EFBFBD>+E<>K<EFBFBD>,/<2F> <0A> <0B>0K<30>,L<>M<EFBFBD>'1<>'8<>'8<><1D>9K<39>9F<39>(H<01>H<EFBFBD>"<22>I<EFBFBD>I<EFBFBD>d<EFBFBD>H<EFBFBD>d<EFBFBD>;<3B>+7<>*<1F>$<24>$<24>&<26>/'<27>0<15>y<EFBFBD>y<EFBFBD><14><EFBFBD><EFBFBD><05> <0C> <0C>T<EFBFBD> 2<><15>~<7E>~<7E>h<EFBFBD>'<27><<3C>+?<3F>+?<3F> <0A>+N<>N<><1D>'<27>'<27><05><06> <0B> <0B><]<5D>0^<5E>_<>_<>O<01><18><0F> <17><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A><1C>y<EFBFBD>y<EFBFBD><14><EFBFBD><EFBFBD><05><15><>I<1D> T<01><1C>R<EFBFBD><17><06>.<2E>&<26>8<>!<21>+<2B>+<2B>E<EFBFBD>,2<>K<EFBFBD>K<EFBFBD>8Z<38>,[<5B>]<01>]<01>"3=<3D>/<2F><<3C>v<EFBFBD>E<>!<21>+<2B>+<2B>E<EFBFBD>,2<>K<EFBFBD>K<EFBFBD>8e<38>,f<>h<01>h<01>3=<3D>/<2F>&<26><16>/<2F>!<21>+<2B>+<2B>E<EFBFBD>,2<>K<EFBFBD>K<EFBFBD>8O<38>,P<>R<01>R<01>3=<3D>/<2F>*<2A>V<EFBFBD>3<>!<21>+<2B>+<2B>E<EFBFBD>,2<>K<EFBFBD>K<EFBFBD>8S<38>,T<>V<01>V<01>3=<3D>/<2F> E<01><06>N<>!<21>+<2B>+<2B>E<EFBFBD>,2<>K<EFBFBD>K<EFBFBD>8n<38>,o<>q<01>q<01>
3=<3D>/<2F>"<22>+<2B>+<2B>E<EFBFBD>6<EFBFBD>;<3B>;<3B>{<7B>6<EFBFBD>3R<33>S<>S<>2<<3C>/<2F><>) T<01><>(3=<3D>/<2F><> ?<3F>?<3F><1F>:<3A>:<3A>l<EFBFBD>&7<>&7<>8<>=<3D>=<3D>?<3F>?<3F><>?<3F>#<23>(<28>(<28>-<2D>-<2D>h<EFBFBD>7<>2<EFBFBD>=<3D>$<24>/<2F>/<2F>"<22>3<>3<>L<EFBFBD>4E<34>4E<34>F<>H<01>H<01> <20>+<2B>+<2B>L<EFBFBD>,=<3D>,=<3D>><3E>><3E><>*!<21>`<01> <20><12>W<EFBFBD>F<EFBFBD>'<27>6<EFBFBD>1<>%<25>/<2F>/<2F><05>v<EFBFBD>{<7B>{<7B>CY<43>Z`<60>7a<37>b<>b<><1F>$<24>$<24>&<26>/'<27>&<26>(1<>F<EFBFBD>:<3A>%<25>/<2F>/<2F><05>v<EFBFBD>{<7B>{<7B>C]<5D>7^<5E>_<>_<><1E>$<24>$<24>&<26>/'<27>&<26>(;<3B><> `<01><><1F>$<24>$<24>&<26><>/'<27>&<26>&<26>s"<00>8M<00>S0<00>Y;<05>V<04>=BV<04>Y;<05> S"<03>*<S<03>&S"<03>'S%<00>21S<03>#S"<03>$S%<00>/1S<03> S"<03>!S%<00>,1S<03>S"<03>S%<00>)1S<03>S"<03>S%<00>&+S<03>S"<03>S%<00>S"<03>"S%<00>%S-<03>0V<03>3-T#<02> V<03>#A6V<05>V<03> Y#<07>*=Y<07>'Y#<07>(Y&<04>,Y;<05>1Y<07>8Y#<07>9Y&<04>=Y;<05>Y&<04>Y#<07>#Y&<04>&Y8<07>8Y;<05>; Z c <0C>.<00>RPV4p\P!V4pV'g,\P!R\P
!R44#RR/pVP R4p\V^,4\V^,4uVR&VR&\VR,VR,, ^d,^4VR &\\V^,44VR
&\VR,VR,,
VR
,, 4VR &V#) uv
@name 取插件下载进度
@author hwliang<2021-06-21>
@param upgrade_plugin_name<string> 插件名称
@return dict
r4Fz(Cannot get progress bar for this plugin.rOTr<54><00> down_size<7A>
total_size<EFBFBD>down_pre<72> sec_speed<65> need_time)
rErrTr:r<>r<>r[r<><00>round<6E>float)rFr<>rPr`r<><00>pre_tmps&& r<00>__get_download_speed<65> panelPlugin.__get_download_speed s<><00><00><18><EFBFBD><EFBFBD>2<>3<><04><18>9<EFBFBD>9<EFBFBD>T<EFBFBD>?<3F><08><17><19>#<23>#<23>E<EFBFBD>6<EFBFBD>;<3B>;<3B>7a<37>+b<>c<> c<><1A>D<EFBFBD>!<21><06><1A>.<2E>.<2E><13>%<25><07>58<35><17><11><1A>_<EFBFBD>58<35><17><11><1A>_<EFBFBD> 2<><06>{<7B><1B>V<EFBFBD>L<EFBFBD>1<>"<22> <12>;<3B> <1F>&<26><1C>"6<> 6<><13> <<3C>a<EFBFBD>A<01><06>z<EFBFBD><1A>!<21>%<25><07><01>
<EFBFBD>"3<>4<><06>{<7B><1B>!<21> <13>L<EFBFBD> !<21>F<EFBFBD>;<3B>$7<> 7<>6<EFBFBD>+<2B>;N<> N<>P<01><06>{<7B><1B><15> rc<00> <<01>V^8<>dQhRS[/#)<02>rL)<01>bool)rE<00> __classdict__s"<22>r<00> __annotate__<5F>panelPlugin.__annotate__* s<00><><00>><3E>><3E>4<EFBFBD>>rc<08>t<00>V'gVP'g\P!V4VnR#R#r8)rr:rN)rFrLs&&r<00>__ensure_plugin_list_obtained<65>)panelPlugin.__ensure_plugin_list_obtained* s(<00><00> <10><04>*<2A>*<2A>*<2A>!'<27>!6<>!6<>u<EFBFBD>!=<3D>D<EFBFBD> <1E>+r)r8<00>__api_root_url<72> __api_url<72>__download_d_main_url<72>__download_url<72> __error_html<6D>__exists_names<65> __install_opt<70>__install_path<74> __isTable<6C>__is_php<68> __panel_path<74> __path_error<6F>__pid<69> __plugin_info<66> __plugin_list<73> __plugin_name<6D>__plugin_object<63> __plugin_path<74>__plugin_s_list<73>__plugin_save_file<6C>__plugin_timeout<75>__product_list<73>__replace_rule<6C> __sub_rules<65>__tasks<6B>
__tmp_pathr,r-rur7r8)r<>)NNF)rqr<>)ur
r r r r<>r<>r<>rr:rr'rHrfrmrzr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r9rarjryr~r<>r<>r<>rWr<>r<>rXr<>r<>r<>r<>r<>r<>rrr r r<>r<>r<>r%r'rtr!r"rnr#r<>r<>r$r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rLr#r rrrIrPrEr_rfrjrmrqrtr<>rPrxr<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>_panelPlugin__repair_plugin<69>_panelPlugin__upgrade_pluginrrrerdrr<>r<>rr<>r<>rr<00>__classdictcell__)rrs@rrrsx<00><><00><00> <1D>F<EFBFBD> <1D>F<EFBFBD>!<21>G<EFBFBD> <1F>F<EFBFBD><1B>+<2B>+<2B>-<2D>N<EFBFBD>.W<01>b<17>2<15> <14><16>0<14>
<14>
<14>d<02>><16>
V<01>!<16>H$J<01>N
<14>4`<01>n'\<01>TU<18>p  <20> <15>2<14>:X<01>"X<01>.<1C><<15>*<16>@3<1A>l
<17><14>8<18><<18>.S<01>4U<01>S<01> <18>S<01>U<01>S<01><18>:<15>8<18>t<19>*<18>*&<15>T7(<28>v<18>&<14>-<15>`#<16>NK<1B>^O<01>  <20><16>:<19><18><14>0d<01>h"S<01>J<14> )<29> 8<16>v!<21> J<01>W,<2C>tW<18>ta<13>F]<01>, <14>F<1C><1D>.<2E>. !<21> ]<01>*<1C>*;<3B>&<19>0 <18>S<01>*+V<01>\V<01>
#+<2B>P<14>$<1D> G<01>9<14>xT<01>4
9<><14>:S<01>,T<01>( S<01>0<>2 K<01> K<01> <1B> !<21>(<16>&;<3B>$<1F>& <19>J <20>Z<14>>h<18>V<16>0><3E>><3E>>rr)r:r?<00>sysrUrr<>rlr<>rTrKrrr<00> version_info<66> importlibrrrr rr<00><module>r<>sT<00><01><0E> <09>
<EFBFBD> <0B> <0B> <0A> <09> <0A><0F>.<2E>.<2E><07><13><13>A<EFBFBD><16>!<21><1B>9<><11><10>Q,><3E>Q,>r