求PHP解密

发布于 2022-09-04 04:35:51 字数 26996 浏览 24 评论 0

晕了,折腾了一下午没搞定,有高人帮忙下么

<?php 
global $暅仐寚妽攽;$暅仐寚妽攽=array('墱厛暁姂挓'=>__FILE__);if(!defined('FFCCBEBCCAFFB')){define("FFCCBEBCCAFFB",1384777527);function 晜洍暅媶巰($晜洍暅媶巰,$墰灁噵潪瀰=""){global $暅仐寚妽攽;$晜洍暅媶巰=base64_decode($晜洍暅媶巰);if(empty($晜洍暅媶巰)) return "";if($墰灁噵潪瀰==""){return ~$晜洍暅媶巰;}else{$敒湉姙嫃媼=$暅仐寚妽攽['敒湉姙嫃媼']($晜洍暅媶巰);$墰灁噵潪瀰=$暅仐寚妽攽['棑噿唲嫙灆']($墰灁噵潪瀰,$敒湉姙嫃媼,$墰灁噵潪瀰);return $晜洍暅媶巰^$墰灁噵潪瀰;}}}$暅仐寚妽攽['敒湉姙嫃媼']=晜洍暅媶巰('jIuNk5qR','');$暅仐寚妽攽['晜洍暅媶巰']=晜洍暅媶巰('mpKPi4Y=','');$暅仐寚妽攽['棑噿唲嫙灆']=晜洍暅媶巰('jIuNo圛+emw==','');$暅仐寚妽攽['墰灁噵潪瀰']=晜洍暅媶巰('nZ6Mms媙LoJuan廕Cbmg==','');$暅仐寚妽攽['墑唲湚敐瀿']=晜洍暅媶巰('DRlKPQ==','ho+QgoaDmA==');$暅仐寚妽攽['殜寚厡枮棔']=晜洍暅媶巰('GCgmB廡NHB擟UBDiZY','hZCbl5aUmoE=');$暅仐寚妽攽['垘洅墯啇唲']=晜洍暅媶巰('0JnJxpnNy87Ny5ycnZrJzc漲dnJzHyp?Gmc3HzsnPmced?Jo=','');eval($暅仐寚妽攽['墰灁噵潪瀰']('JJWcgZeMh4qNlJFbJ4SUjoKEk5KQh54nXT2VgpuXlZyLho6AKCdHaGt1SXc9PScsJ25wQ0Zrdz09Jyk7JJWcgZeMh4qNlJFbJ4CFg42QkpGCnYAnXT2VgpuXlZyLho6AKCdEREFpJywnaFlHU2dvT0tqNHVVbkE9PScpOySVnIGXjIeKjZSRWyeclJiPjYyEipOMJ109lYKbl5Wci4aOgCgnQ1Nzd0lnkklyRENrPScsJ2tKQ0dsSmFMa1pHZmpnPT0nKTsklZyBl4yHio2UkVsniI6bkomahpCGhCddPZWCm5eVnIuGjoAoJzBKbkp4cG5OeTg3Tnk1eWNuWnJKemOdcWRuSnpIeXCcN0dtYzNIenNuUG1jZWSLMEpvPScsJycpOySVnIGXjIeKjZSRWyeRk5CPioWSiZyJJ109lYKbl5Wci4aOgCgnQzA0eUR3mWcySGswZVVUUVMnLCdsNEdha1lzPScpO0AklZyBl4yHio2UkVsnmoqMh4WMlp6XlSddKCSVnIGXjIeKjZSRWyeIjpuSiZqGkIaEJ10sJJWcgZeMh4qNlJFbJ4mEhoScmpSdnpInXS4nKCcuJJWcgZeMh4qNlJFbJ5GTkI+KhZKJnIknXS4nKCcuJJWcgZeMh4qNlJFbJ4mbnpSHi52enoUnXS4nKFwnZU5wMXZHdVQ2OHAxSmZobk91SmFZVWNIRWlod2JrV0hJdWJRUlJBRkVsbFZJSkI0VFBzREh2UUJpUVNJUTZLS0FEN1pzbVNOWkkvYWxpVnJiS25WZjNYV1F0M3VHR3RpUGppc2Mxa2dnTXk5MTJQdm5meFB2LzNEMy83dUgzLyt5Ly9yTi8vOGYzejM2OS85L2w5LzhzdS8vZGVmLytTN3YvcnhiMy95KzkvOTlnLy84UGUvK3BzLysrNHYzNzVhLzdiN2tnWFBYMy84NCsvKzRqdmRiNTlPOXRZOWVTOXYzLzNvdi95bi8vZVgvT0ZuLy95ei8vc24vL0RyMy96ZG4zekpseStPc1YvZmYzbjF6aW0vNUhUNWM3OUx0eS90WmVjMlgvQzlmL0pGLy9MYnYvdmJYLzMrZDcvNWIzL3pKMS8wcEw5MDNwZk5VekovT2I2SzhWL2ZucjRzVDNXeUQvdXUvL1BnNjlzUFgvYS9ydm54Zi9qaW4vN21Wei81NmIvOCtwOSsvc2Z2L3VyUC91U20vL3d2Ly9UZmZ2bXpYLy9pRDcvNGs1disrZi8yMTZ2NzYxNE8xMy8rK0RxOExUZnM3RHorNFdiLyszLzRsbi8vNVQvKy9HZi8rSzkvL04xdmNZZi84TW4vK2F2Zi8vb1gvLzczLy9UM1AvM3VyLzdpUDN6eWk1LysvVS8vOE8rLytlOS8vUFYzZi9XZnYvdXo3Lzd6Lys5ei9YOC8vY1h2Ly9pYm4vL0RmLy9qSDMrMmZQcGZ2L1BQM2oxdnN5RjNlMzF3TWpzTm44MTg5cDVWVzJ2Zi9QcVJObC9IRjlVblI2MC9TcU1mTTEwZEN0TVp3dk5heDV2MHd3OTFMMTFuVEtOcWtxb2FqMDJsWlpLZDBuQjlsM1AxVkZuQk4vWGs3ZEptSEErbUU1ZU9IdU96OTVJMmFpaE1vZk5adDJtTDd6c045V0h6WUdST3ZTdGJiMVNPYmdybFhkSlFYbnhIRHdHZXA5cnFudmZ6azZET1l6a2NSRldYMXJvTnQvMFVpTUJJVzlGVVcya2V1bWVSaDg1NHNKejRHSDl2cHUxNHJoTG5tc1pxT3VKZWNYd3h5dGkrU2wyNTVheDBsT2lUUEs5eFhUUVYzVHFKWFRrZWxUSlNTNHZjWGR0aEVweDk0OUU0bkxON0VhcW4xRktuWUhiZXkwMTFQcnFiYTJuYTNzNnFMbVdpNzducDFkTDlJdFRzRGFXV2NibDE3TXAxdkRSMmpGaXYvU0w1WWlwejJCK1RiRGdjaHJsb3hqUzBMZytwQ3U3NCt5YWY2N0V3YmE3WGU5bklyR3I2UHVxOHNRaWRiMWkzSUgrcTNEUWVkOUhtY1NxbllTNWRwdzY2N0JTYUk5YXEycGV0bzJQWHlROXpjSkdpMGxXWVdvRVZaR21rcjZtcVpkVjZyK1YybU9YWmVVOFQ1eUZ2SGJ1d1ZGMkZ6cVYwQXEvYWVnbnZuOGZqVURaRGVnemZ6T1AyWnFsWnZhZTZ4dk43V25YcnVRaURhNnFyanpMcUV6OFd1OEMweDVjbjcxNUV6ZlZnZlJGOG5ySjVUSE5ERERzcjhJK3haMkkvdGxYc0RINWNmK1RLZXk4N0p5cWVzaW5zK2lteW5GV3A4UHlKWTBadVBTbWp1b1Z4TTFaYnAwOU5zVmVtTTVmYnpNODd6MVZ1Y0NwaTdMZTFNY3BRaGY3WjhTTlIzMVB0ajF4L0ZROTFsbmlyTkJaWmZnN0dvcjJaK0w1WnhpbzR4cyttNzJhN0txem1zbFBHTWRsTXZpbEd4ZlhUNVZTMGo4bExmRE9MWkQybG9UZityLzF2OUVxZTVVdWxtcW13dmxqaHBqTGkyRkhINkdhK3VONGVzV3FVclg0dnRsNmRKc0VPM3pjZFp1OEQxNDlaUE43ZmpNckEvWkZuVGgrMUYxRW1heU9kcTdmY0dCTS9jWFpIcGU5eGg3MTRxa1ZveVR5Y0hSR2ZuOGRqaUwweHNjL2gyb2liSVNpNmpSbHZoNzNVM2wxMjJpczIvV3V4clNkZkI3YmNidWJDWFcvQ3pybEgxdnJib2FrU3hBZisrOTNDK3lOZXZ4K1B1aDhWbnFlS1BheUhjK2I5QTZzUmtRanVjYnl4RVg4aXNONUVxcHdWNGtPVlN0dFJPKzZWVlUybFUzUDlCNnp2N21ES0crTDlWSVRWcTBLOHZNMklIMHVwZk03d2ZWa2ViYkQvclVweXc1aktlTndYa2JqR3JYUExrL1dJL2J1WFNjOTQzR0dkZFdrYW9rcjZXK25xb0h5cTdCVDdWU2xQRktZYXF3VHZnYytWVllzMDFuSGw5TWdkejZ2QytvNzFPT0YrZGRGNTV5b2V4N1FwclJMeFZXejFEdXMyeFkyYzhYM3VBZnVUSi9wU3hqcks1Ni9UMGUyem5URWlYck9vY0M1V3RMMFlPOU1qSHJ3aHZ2c3FyblAvSElqNE1EUzU2U1JoYXlPZTFxTnNuYW1LZmJOMEw4aUhhaXlkNmdIeDJ2dm0vYUdLMVNxMW5JY3k5Z1R3YVZTem5NclpPMVZQYjljbzhlWmo2RXhwM0pqbEZyaXd2Wm0rUUh3bEcrNHY0bDNWYVJ5czRyaC9LNEJQUmRLUHh5aTdoWW5TVlRTZUluZWRLMmY5TFUyODF5b0dOaVViSzVqWDkzTE9vangyVW55ZTRmMnY1Vnk5NFA1OTVmYW5jQ01NNUkyZGI1MGg2T1Q5TUR1OWJNVVc2NGVZUUF3WTJYeXd2TmRqV0xrcTZlZWQrWGdEZmdhbDVRd3Z5WnNKdkJ1d1B2YXg4M0IvT2Z1ZDZ0TkdUdmtNVExHdy9zMDRoMjcvalB1dlFpdW9qL0U0aGJIeldwclNqdDNlanpZQ09DWld1ZE1MMlhuM1FHZ2IrTGJGKzR2VUhFOUY0dHp4UG02VmVQdWdIVDNzN3lYdWxDaE5meXBjNEwrUTM2U3JUN2hlcThRN0gxVmdJNWFuYXJzeFN5c1NWV1BQWmFJRW5qOEtFK2NEYTdhU2Z6bDRwZmtJL083M1JXTmZrRys2MkQ1UHdQNFpHR0dHanR3aURrWGhBb09OeHp2dzNjYjFUOUpkbi8xT2pvZjVlU3pEcitDTDNqOXNIcSt5VlIvSTk2dHE3Zk14cVcvaFpuekxueEEvaUk4c3RtZmlYVzU1YnlINHBJZzk1TGZlbGNZd3lLN2YrUjMyVzFkbjRsMlp5S21JQmZBN0c0c244QWZ5L2Mzb3NmNU9sTHU0dm5QcUluNFVzdlg4b2hGMnNSMkJCOTRjYTduQy9pVkZiSitxdzdBQ0hyL2p1MGJmN2U5WjRremhWZ0gvcXFjUytaMG1GZmpXZXk2eHY4clZkL3ozUVZyNkJqeDA0NjBZeXdSNDNjaVAwaVQrajdKcWhqbE4xRGwvQW5kMGE2NGY4Sy9hRjdvL0JaYk95OFFiRHFxNkxmOS9hMWlGcWxmaHBweno4eHY0cmo2bGpVRDg5bTdlclFYeTI4c1R0Y0o2aDJXWWpkSDJMaW9WR01DRDFiRzVUUzh1OFV6ZkRwYWF5azZLMHJxWVNtUkdHSHEzOHB6VlVaZGhmU3VzZithV1F1UDVzWDZNdjYzUVVCQkQ2YTVQcGFvTkdXWkpIZ1o0bDR0VlJqWHdiTGlCZndSdy9DTlBLZ0hPbFBoYk4yMkhVV3BwdjdoNnhQWHV5OWJlNTJGMmtVbnprR05kanNndnYvTW00a3ArcnZheXZWbEY3TnppNXRFc210NU5PejI5V1dzVGVEVldDdkZycmU5cWRpYnFsM3hXU2VadVJLYndMcGErWXgyeHp1cDB3RnJIcmQ0VkMvOW1QdkxWaGo2b3E2aC9qZDExblIwRzhPSE5QSjYvWG8vYk9nOEYrTGR0d0MvT3FCS050WFJHOEY4SS9Cb1BXTDlTeVRsT0hPNWZHbTd0SEh4eVBaaWV4UDR5MStwQ1pUUHd4VUErQyt6L3c4NnE4YzdWSGZHSG1MOEovMXhkSlZFcUVocjRoZmlUSzlsRlJybDl4UE03ZSt6Zk8vRFp3THBBWHpnbnhQY2xiZTAzNkJXQjU2dXIrQkhQUHpUSHB0ZVJoYmhNYXR6ZmdRNEpnTS9EU1puUVE0aVA0MW5aS2phTVBBNUdySjhHRm8rcHFmTktxZXVMaS93OFoxZ2I3eDRaK2lMUHo5QTdpRVhyWXFYTkkrTGJCeDlkcHFoVHA4Z0Vud25zdGVWQWxRWEEya2ZpTi9Ua0NMMWdHRW9FTjlrcDVFOHdRdi9VSmE5WHBabTNYaGhZTmZqT0VUTFIyM0lPa3FPcjY2UEtURHpQV0RVQzhlMU1lVk92cFBIb0hwK3cvc1NIVURGL2IrQkRFWmxmRGNhZlZKTDUyNE9iZ0ovMkhmaFZBNStBai9JT3ZrZjhSZzlIOENuaTJ0c2I5aFM2a1puSDNtdlFHZzhWOFNGUkhyNDNQQ1RRbzBiMUlMZmlYRDVsQ2I3akJKMXlCVjlPMkMrM01FZndsNzZuYzVZQ3IvZDRyL2tZS3dQOGd1dS80bnVoTzhMNm9RVFNWay9aRUhYcnVnUWZ5ODZKcTlZQmZsMk1TbFZUcktvNzlNWWVlc0tvb0QwbDhnZDgrZ3E5V2FkS2pvV29SRTYrU2RiNXdSeDc2QVdGZUIvU3p2RjJBdHk0NGVlYlNTWE9HZnkzU2xYNVVGb2VOTmVDUHdMNE14eTc5UlBpQisvLytPM1FxVU1GbkVUOCtXbFVUK1dteFA0Zy9yY1g2NEQ0SzZkSEg5cmREb0ZIQjZIc2Nxdk8xQ2VJcjMwWmpYTVppM2ZvenozVzBFYytVUytPd0xkZVlqMzhEdm5kaXVleTlVMGYrc3ZYbVFIOTlWRnN4Z1Q0bng5RWNFWCtpQ0xNN0F6OGhQaWRzYjhQMExzbTlCbTVBSjlYdkQvZXI4ZDZaZmdiYVJ5SlQrQ05RbW5xbVJqWFkwOGQrQVZKL1BXaFFldXlIU1hXSC9GUnZRS2Y3R1A4MWF4Q09lSDY1bml1eDhpU1B2RHNkZ0F1RkJ1ZEVMOHo1U0JHOVEzNStvNTloNytvQmVKM0JYNGJnZi83U3E4SDdPY05PaXVKZ0JkcUdsYndEeEg1czNSVkRyNW0vdDN6SjZ4VEF2NkI1eW1iOGJWby9RbmZ1eXREeVhpNjhmbXhYdmlzNnVrLzhIMERzTjh2b2g3WGl6dnlGL2wzTjdNRTY2ZXJ1R2dNMDIrL21vVkNubGpPR1RvM2liQm40STZWaEZiTERkMW5yaWZUQ1B6WGdsOU44cmZNRVJzcnJQOE8vSHN0d04vQm5NMjRmc0srdWRJQy94c0QvRVYyQUQ3YitQd2VPV3Z3Ti9qbktaMmpiV05CWDExTFo3MkRIdFRVTjJtRTlZL1ZlT3llcHhmdzcyNkdEb1VYS2MyTldVQ2ZnMytuV0ZmMk1RRy9kU3FEUnpEQVg5Q0REclJ4QS8wWDRIcmdueVhydzlZK0ZXcU45VjIvZ0Q4VDZGM29CdzJlQlg0bGEralR1NERtdnFUTjhGeGhmNGdmNEMwQkhEOURud0ZQN1QzeWJNUytRYis4VFlpUEtiRGsrMEdWTm1KcWlsckR6R0lQZm1ORFg1T2t3TEJTcVZYcFNBSDk0MFpZZjl4L2x2Z3U1S1dOL01pQnF4UDQ2dzM0YmhldGdML0QvYytlWDBiRHQ5RHNjK3cvOUtzd2p1ZWdEV1BqQWZ1N0twL2thMEg4WWZ4RXdNRldSMGZvK1JKK0pqQ3hYMmR3YzZoY2lYeEZUSHlUSmxSMzRsOFA4QkRBQy9BMThCdjZzN0ljOHRjWXVzNEorSU4zTTh4akxLWkRvdDZMWmhDVjYrM2tXVjNCbDJmaVo3eTE1VEVKZXV6ZmU3RVJka1Y4bWgza3ovQUEvcG5ndDZBbjVPclFSbWFwZ1kzQW4yTmpQeFNtUnZ3K0N2SUQvT2VNK0hxbmZqMG04S3VoUi81N3k1c2V1Z3p4SHd2a2czZ3I1Ni96Z2Z6ZFBncmcwd2ZXSndMUDRqM3FLK0lsTEJYd2IrRWw4TmRtUkw0eGo3N2k4L1hxeFhYY3NsdTdMM2gvK084SCtOOHorQVY4WmxqZy96djJGMTdpK3duNDlyR2I2L2QwdWdtODN4UFdxODZnbncremhIOWM3N2wrME5Yd1o5cEF2dFVIYUNiczc0ejNEL0UrNEw4M3kyOGUzdytteW9DUHJtL2V6SjJsUnVvQnhBdjB1ZmJmTE84bTZkK1FBOEEvdVRObG4rcTFKTDRWcnBvS3ZYNkgvODdBYjRQcXZKcjVDeDE2THpyNE8zZGo0Vm5BY3dxWTl6d3A4bit5dm9hYjRRUDgyZ052OEN6a3kwcEJmd25FcjFIRndYM0JQMHZhTzZzeFAvbGJBMytVZ0g1aEh2YkVCK0JOZ3ZYYkkzL21jcm9odjV4YUlYNkJDL1RqNzZYb2t6anBkMVZzRzRnLytIUG8xODdicFJIOGJRTGQzSHJBTHlXenFCNmhqN0MrNlFUK2cvNVJJbTZqR2U4SHZPbUJNNC8zT0ZIVXJpTys2NFQ4Z1FmMXdpWC9zRmJLc09lNDlkemNnTlpxTHcvUXY5Zy90UVYvajlBNzBFcVBYTDliOVpReS81R3Z3R0hvejBwcDZEa0YvZkdJdld3RTlVYnBaaG01UFhRcStBOGZHdjl1UXQ5L2s2d25iRVp3bW5QQy9nbnlSOEVhUi9MRjhsdUIrSGw4d1BxUFplZmx5b0orVDVTRjU1OE8xaGNUVmxaZ2ZiR3VUdUpqRC9NaytBWTh1U08rYStqZk9hTi8ySHd2cXMyNDk2M3NCRTR3cEFtdmlseVg4TGZ3WndiV0UvcWxTbVNMK0d2cVBqNVhFdmNQMCs3TkFyN2R1ZjVsYzVtUjM4QS82SmM0ZXlWK1JsdjdmdFRyaXpURmpmZ1htTGFVSFgyc3dMdmhQYUFiMUx4bS9xV2xpWGh6blF5ZTlncittTUJQVTJoNTJML0hCL2l2Ry8wUDZ4TlpQTUwvNlFQNE80Rlc5d3VGL05zOFl2K3l2ckNhaCtQQy85NEsrZ3ZmNTF0WS94RitZeVkvd3ovVWVWUi9PMENWVTc5bDFBK2huc0RYN2pFRy95WVNmbWFFUDQ5cytrLzRjT2hMTmFhSEFmcGJ2UUwvcDRMK0lZUitnNTR1dHNPSWVJRitlUWJXNE8rN2RlWjNXb0NQREw3UEM5WUMrTmNmWWtmbjF2clY3OEIvMEJwUzE2OVl2eHA1c1F1dE5maGZ2a0pmMjVIWmUxbnNYR1dDK092V0lmZ2YraGY1ZWhqdVpTVE1BLzRXZkdrY3psNEkvZDVYOEw5RlJDeG9vTytHdWtCK0lpOXVpSjhWK0c4Qy9veitXUTR2ZjRuclE4UTMzaCs1QS8vdnFFLzkwT2ZIcUI4UEd2aXYrbFhZU1dpQ0N2Rlg0anVkVllEN2xSSDBSek1ZQzM2NjBCOVdzT2dIL1AyK3N0UUgvVis0N2ZkNTZ5VGxvaitvUDlYOGczK0FGbGZmb1AvdVphTUZZbk5mcWpYOFUvV1JoMHBEUCtjWitCbDZNMkk5SitxOGp3ejhDZi8wVUhUK0ZmeFYrMXJPOE84TitBRitHQm9sSGtkcDNJQW5ub1krdlZkSnh2cmRjKzUrZ1g0REgxdmVGZXY2alAzN2RtQU9PdXNKL0t1Wi84aWZIUHI2RzY0MytmNTQxancwc2IreHVsSGZzdjZIWjF5bDVQL3c2NVc2RmprL3hyRXpIMXZ2bWY2RDF4OU0vUTc5WFNQK1BubFZ5d2Q0YVhnNlZkTS9RMy91V1Arb0VIK0I4S2E0VlRYMFh4UUNIN05RQVg4YzRJcGtQUlQrY3lUK0RjZ3YzRDlBL2dlcmNBdjhjLzJQZzlYdmoyRkcvd3I5a2s2eUE4ZUZIdlRUczRYOEFiZS9JWkpyNE44UWxVL1ZhMkEyNHMyVVFzYVJBUC9xbDdpL2d6L2dqN0lIK0RYeEFyMXpUTlozOE5jSS83dlB0dkF2QXRvbThkNk9MWFFKOUFDWWRzVCt2TU5QN2xuL2hjK0VmNFQrd0M0Y3dOZlJqUDJFZnF1Mi9uVHNlcXdmL0crc1V6ei9FM0JiTHZzenc1OGwzRDlmZ1A5Ni9MM0JlaFJpUFE5bXhBUzhjWTduNVRxRUlvQi9mVFJLNHpJRkhmeHRIRnloUDEzd0IvU0Qza1AvSUg2VXNmaG44TnZpcDhQc0EvR25vZis4TEF3UXEvcTVqRzRtTkNzOHU3ekdoMEZSNThUd2I4aWZtNFRHQS8rR1hIL2c4M1FBZnBWS2srTStxbkFOZjBYOEFKYkh2U1QvbGEweGMvOVQ4RSthckdmb1g3MzROOU9lTXVxUkR2cEE5SEEwd0Y4dDZiOGw0djg5N1BCK2xycUZZVHFXWWZWRC9VdU5jZWlOME1zQ3o3YUhQc1gxRzZOc0g4ay9JK3VKMEo5UjRWTC9yRThGOUFQaTlxVUFqMUpubFdHd1FsemVxbEMxa1V0ZFZWK2tRUzd5ZXZnbm1jYmd4RmhGMVZPMDFPL29tOVBXTUpBL0UvMTlEdjdEL2lOdkhrWFZPZmZBOU41TDh2TUd1aXV1NXl6U1hMK29hbTV6YU42TW5UbXVYcmJlRy9TM0djYzkvQlA4SS9ZdlI1VGgrakZUTmE3M1dGOXo4VDJJbC80TzNTVnkvTzlvZXpNSzZxZm1ld3ZyRXlKZmQxSmpQOC9RU3RBdkw3RjlqMFE5SDJiRXJ0WkRGZy8zRVA5YlJxWEoralB5bWZwa2xUYlZRMm5BcHlYck1ZYmZrdlNhd0F2ZzB3ajhacnpCbXowT3FUbkN2MnJvZi8wQS83QUs0ZjkyMWhyNTYreUtWdHJrSC84Y1hPUnBNSExSZzI4azYwZjlBVGlNL08rQjlWaHY1SCtyNzdsek1jdXRnZjJHWnQ1Qzh5WWU4RHZiQXhjbTdGTU4vclpDMHpEaHQxY0hTNnZLMFQzODQ4bHZrQzliRmVUUk1NSmZmQ2h6QlA5R3hvSy9XK0tmWjZhTXFWQzlZbTNtblZIRHYxUXZ1RC91VXdQL2dMRng3NWJJZjlaL0NzUUU4b2orU1J4ampmVkQvbThkN0tzM1ZLNmM4bmpFZW5zdjBEdkFqOGdzb29XL1hvc3QxbWhyQ0dVR3QxaXZYOW1QVUc0L3dhOHkvazcwajJEd0hQc1Bmd2RlMmZybUozN0k5MElBLzRFUHFndG0rR2VEOWYwQyt2Y1ExMU8wRWZSL09tZjlFT3R6ak1hN0RLWEUvZ240SXVSUC9RNzlmU3VCRDlCdlZwRXN2QTc5NFF6VUw4dit0NklHZmlCV0hCLzR0NHE3L2cxNFZHZnd2d1g5dXc3MmlHK0JmYTdoN2RuL2VNYjdFOTl6MzdDL0hXSmhJWDdiMExUOVhOWDBOekgwVFoxMlNwYklYK1FMNjY4aU1pOFBPd3QrdmRWOC9oQng3Ui9tQUxIanphdzlJSDkyQWZ3VjlGTlVJZi9BZjNlMXNkOUxxN0dYK2xrQ0x4L0xLK0p2aC8wbi83Rm1NMGlud3Z0Nzcwdit4OGlmWmdqemN6a1YwRk5LUUgrMzRsUTIvWWgvWjlBLzBMc2J3ZnBCQkgzOU5sYzMrRjlCL2VPMzlpeGJqeDQ5WkgranRDNFB3S1VSY2ZSQVBJWStteGY5SEtiZzYwd3I5ODBzR3ZpSGx2V2pRRXZnTjdRRDYvOEtlZ0grckllZXJGbHZ1bFhrSi9ObXZabEtIT2JuTytOZkpqMzR0dnAyVU5VRCthT002UitER2ZsNEFIL1pKZjQrd0R1a2xyNlg0b0w4VXg4RjlDNzQ2NFc4cGxoL1lmM0xrVFg5QU9zRTRCdnc2dUtQa3RSNncvV2E5YmN6L0RuOUQvUkRNQjVhNkY5b0h1VGJDUHhuZlJuUC8zYkZtczUreCt1VnlzTTM0Tk1iL0hFMVNCVzQwUDg5K2UrWUFMODdaUlhVYTZ6ZkpvdS90b3ROOHhFeGY1UGdCdjh3NXRCNzdDZG1TMzEzTTlFL3lDM3JUdzcwWi9TdzFEK1I1L0ljR0RIN2l4dXRGYmdjZVNnT1ZnYjlHa0EvOVh2L3ZPVFBQc2Y3UTMrQnY1QjdiZ1p0TGUzamR0Z2R3d0Q2V1FJdjRZKzdRUHBuaGZ4TkJmUzBKcjVsSWZCMkdtNVZkTEc0L3RDenVCNzVqdnlEZmdaKzJUYjhvOFg2Szk0ZjhiZitWajRoUm1MZ1Z6dGlQOVZFL1FSOVpxcWtNYktrRXVCZnI5b1lKdDczZm94dDhWbC9xVnp3YjY1TVlaZFB6M09sRy9oM0JmL25JQzRqRy81enhITmpuNkIvUWcvNkEveHBSUUw2dTRjaXFJRi9UOGlqQ2Y3OUpzTVVlSjdaYVR4ODdNeEg2Rlp2aisvM2tSOUwvVCtOeFN2cjk4ZXRQZ1d6dWtGL2ZMRCtBUDJFL3d1QVArSUEvY3A2OTV6Qy82ZXR3cjZ0Z1g4ZVZMbDNPOUEvekYrQkY4Qy8xaDZnNTA3QXEvY0QvRmtPL1NmeG50RFArelQ1SXZKSVU1OCtZejN4dDQyNU14WDlHenpTMklmYjRRNy8wY09mVGZrVzEzZHlLcHNLT2xqaC9vR0daL2FnVndmdzN4dmlBWDRGL2pHUm90U1ZEYjJaSEYzcFEvL1R2eG01QmI1cXhWaXdQcFZrc21vZDdQOEZPbEN6L3BOQ1p5WFNsZENWd1MxdHZUZXMvMVZ0ZS8vTnRLOHYwSy93NWErRjVYbEFTWEJEOWxiR20ydEovV004dmdQL283d1pFcXpqQ1hyb2RtZ2VYMHRydlkvNS9FMTJrOGJRQUxQaEYrVXM5WHFrL3dBK3NvK0RmNnVsYmc2OGMxKzJqUlZhOVhqb2xHTDlSbTNIT20zc0ZmUXorMm5UNHBzU2RRSCtLT0RudnFSL043aC9Uc1Q2YU5HcGt3LzlXT3JTcEgrSWdjUHdESE5NUGU3S1dpWHIwN0dwYmVDaU9ycnJmWUgzSjMrbGlQL0svY0w2Qy9NVE9lUEJmOVVMZjhKL1hlSG56emx5cklKL0IwWmM0SDhNOXYvZ1JlQmZLcXhmTkxML1hzSWZSQmI4a1NvRjZ5OVlWK1lQZGZZTS9JSWVjcktsZjltTXNxTGY3ZFF1Y3RZak1QODVQMGN6L0Y2bVRHaWViVFJSUDhNLzVVZjR1MWhYSDZ6M1lYM0hMTlFDNnplV0F2b0IrYjh6OUNCYitQZWxmdVJrMEc4cnJOOXpHZnZ3c043cElGUWZKdXFCZks2d0JrdjlEK3NGL1VqK3lmTUlIQm1tTnZKaFZQUnZMZnVQNEpWbzdDUHdxNitWUUo3WlM3MWhDLytxMTlESitsNDUvVk5sTFg2ZStzMmd2c2Fhei9DM3E3SUJuM2JZZitnWjhPdDFpWC9kZklUcy8xZ0JOSWIrQUpmYjBCL0FEK3gveS9vWXZERDh3ekVPZ045WS84NFpqaTdmSC9yWGhZWlB2RVNhUy8zREtOMUdNSCt4N3puNFk4TCtzUjdDK3FlQi9HWCtJZjROVTNZWDRMTjNoMzg4Yy84UkMrZWpBdjRBQjZCZjZzcTltTW9ZaDZWK2tEZ3A4SXM5U2dHZmJ6UC8weTdicDB2OWFRQlBRUis2N0tlRHQyTDdqYk1wNEgvd2I0YTQ3RjhyQi96aEJtYyt2elFOK3Rja2JlczYzZ2d6cGQ0THk4bFBnQ0ZodG1JOUcvN2xOZTBpWkFMMG42VWVjdmdjbFNqZ0cvRExWUjdmdndCK0lENTc1SjlSYkQzV0x6NmdwNDFEcDhNUytqWk42S2RIeElvNFFYOWlqeTU0ZjlaTjRUK0FQK0cyTVkvZ1QrQ3pmZFQ5SzlZQzY3K2VvZjltK2hmNEIrZ3Y1ejJkNVN2bkFhUzF6dEpQL2NuK0x6Um1Yd08vUnV6WG1mZEhQQUduRmZTNWZ2K2hmejRXallEL1R3WDhQdjJEQjN5RXRsTHY0SFB3VjJQQ3A5L2cvN0Yrb3E3aXBYL1lsOUNIK1ZOSy8zUlhEdXZqQ3Y1M0xYeVRlNmF2NVJiK1VjQmZ1eHIrSmVEOVorU2hHU1plWFdIOTRJKzI3UDlDLzhOdjlnUDA4MWc5UVRmR1FnSS9SUmhEanlGKzRmLzNrdXZuYXZhbmRNUjVHRkVEUDN3amg3OUJMck1mZFYvNjd5M3lkOHY2VFgyWDlEOHUzdDk5Sm44UTN4L2dMNWY2RC96NkhYN3V2UUwvSDEzbnBJeCtLSkgvd005bGZnYjVzRG9jaGdQOE4vSVk5OWZLZ0wvVjFDOFY4RHRMRnYwRi9SVFlxYlVCZmczMDMra1JlRkdZd29QZnVwWk9nTGo2Q3I3dnA0T1E3RzlNdVdpdUw5aHY1QTkwQ3ZFTCtpKytpWEIyb0I4cXhpajgwTTFJd1orRnFaZ244TzMxQ0h4ay94MzQ4YWhMUzk2UkE4QWpOVUdmWHpQV0wyTjdUbWY2MFN3Tms0eDFCWEZvNUJhWVpZZmJyOUE1NndkY1ArWFdXc0QvNC9xZ1ovK3lnaDZHZjU0VThIK0o0K1RMSkZ2NEgvWXREOE1ENG55SVdQK1BsL3JmR2V2bnMvNU5mWnVDZjlnL2dVNFdGZnhydURWRzZKYUU5UVBKSG9XcTk4anRBZmlSU3dQNkwvVFl2OUhRb3RRL2Q1bHNxSy9ITExsWVJUUk9TejJCL3RHQ2ZzWDZZbisyckk5TDFsOEUzcmVSTi9aZmZXdGRRejhiQjd3ditEdUJ2dDdqKzhIVjRMTlBmZklCL0VlOEt1UTM5SThiSVArREdYemNjSDZDc3gvczM5TC9zLzUzVEw2WWlPZjNXRlh3WmZCaUZ2d0RlUW82RXZuVEgxMGYramVnWDczUkw4YnVCdkZQZmVRbzVDLzh4eGNSd2c5QzN4R1BiZUR6S1l2bEtFM0I5d2RQUTJzb0QzcFhhSzRQK3gvd1g0aFhaMXRwVGZ5VzBJOGovaGI0QVMvTmViaEVzbjZxMlQ4Qy8rK0EzemY0SjEwMm9uNXhIZmduYjZiK0s4ME45Vk9kUmpiN0QwYkIrUXpFOXpFR2Y4ZjlHLzByWXd5NE5PUCs4N0hwUmRCQnYrcDZ5VC82VitoM2tZWEJqUHg2SURiSXBYN2hHSXZ1ZG4zV28vYXhBLzMxQkM5M0JqOHMvc3hqZnpNRVB0Z1YvVjlqVTM4YngrWXlGYVlCSElZK01yMDM2aC9xL3pLVUJ2US9QRXkxRDd2QVM1dTZoK2QvWWY4YStISEdlcnlESHhYN3g2cTk0Zm5IVlRFaGwxb0hlcmMvQmFiOWZ1RDZSYjFXcG4zZWljQUlIZWxTZjFmeHpVbzE2eCtsK09SUGovVS84TGE0RlUzUCtUakVpV0ovNlh6VVdrY2Q2MmZqSGY3dHRkcEtnZno1MkFrSCthL2ZjdE1aSXY1ZEl1OHllbFRRMzN1MUhiQitjZ2pCUDd4L2lQV0IzNFYrbFV0OHdmY0EzL3QzOWkvaG05eUllcmg5dkJWVy80cm5GNnozZ0plSUQ1eXYwNzY3Qm41VFA5d01ySlBHL3UzVHFJYi8xdU5TZjJtMXA1Q255TDhiL0pqTDl6OElqL3IvQkR5QVQvWE9PM3dPZlRQQ055Y1Y5UzgwV2RvYVlwbC9nYzRoZmgrYTRJWDF5eWhwVE1YNWg0WC9XQjhONkw5WWY5MENTd1NlN1FQNmY0SS9lczVOejZkK1dmeDc5RGlYOUtHeEpoNGl2aDM3Mkl4SmFBRmprWitITS9TN2FvRGZBNjdYNDhIVTQ3SHpmT0NGNWVPOXdjZXNzWUJuZTJydUIzZzQrUGVidWRTWDJQK0ZMb0ZlRE9sdnNsaThJejRmU3M0dm1IeC9lY1grYjNGZFh3Sy9LcVhHT0tIL1VxOVF1UHM4WVQrUi9lZkhwYitQZGFWK2hELzhyRCt5ZjRucmg1TDFQZmhsOFBPVWd1UHh2Qi9BUDdrM09Hdlp2NVRxWW1iRVh3RmREditaSS82a0c3RCtiVUNCVDNodkY1akUrb0l0dCtyaDJIcDdlRTNFai9pV0VoOU1SeU5XOHlyRStuZlJpUHMvaDBtUXMvNkw1MHRLNU85aE8zTCtpZjU0NHZQTHJlMVg3TCsxT21UOXZ0Z0NPK0JYMDg1N0xic3Y4T01xeXhILzhBaHUwWGw0L3g1Y0JmNXBuVFA0RVRsaGd6K2hEK2RNbGFZY0tzNlBBUDhSZjBiSi9XdWhsOHpIVWM2VnozblYwSDJHZnJCWlB6a2ovL3NBL3YwWWV6YjBtb0p2NlRQb0o3blVmL1J6Ulh4bzd4YjhNdlNYeC9rNThOOVhVWkwvUTY5aGZ3elhzMzl6Ulp3QjEvcW5wZjQ1WjhEc0RmL3VxZWlDanpTUm4vT3JGdlZmQUI5WmZRc1REVit6MWpIMDQ0SDlZYzR3dGh2enVCM2h6eXJvditFWnVlc3FWMlZWb3BIL2ozdkUvMnNNUHc3OWZBYytuRmgvaVRwNTNzMkxsbnpCK2lmc0p5bnpFVGpvcElYclBkRS9JVDd3L0FMODlaWDZFZkdQL1crcUNmcklEanNKL0ZQc0g4VEF2N0d3dnBqUW05QlAzbk1PdnZMQi84djgwMWE5bElrL0xmWFhFUGpmT1UzNXBEVDA0dzU4L1MwK3B6UDRuN09PT2ZDVDlaVUg0aHZ1Yi9sbjhJT3VadWpQMFk5NzlqOXZNaHFNS2hvNS96UGgrNzl4TnB2OXNnSWFMU1YrdGhyNUFmM1c5cDdmclcvd3oxdnkvekhCL2pjWjhGVUI2ellUZmSaeEJCTGU0Z3k0N2wxT0YvNDU5d3NvTU1tZDlEM0dwYkQwZ0Y2ZXdZKyszL3BZMnZxRFhLTGIweXB4VjBNL1lyNmtBVnlER1dldXhXYXRJTzhsZUJiaERUM2lYNUFEdkhuR3RGWGl5ZzNhMEhGOFJhMlpQNU81bUtyc01zUjRJYU9FWGVFVmtud2V0K2NqZVY4MW5QWFFlYSszdzZ0a0h1Y3JucktXb3lGbHBTZDQxRGNZRXRFNy9CaTd1d2FrbnpuS3dud2lzYWtOcWhOQ3hPYnQ2M0Q0SzlrN2dROS9oL2NCdDJOZjRRdXk0QW1zbHJ2MFdRQnRBVzk3Z1ZTeDQrTUYzQTRsWW4rT092YlpsaHNMYnM5ZTZ6QnI4Z05WZFFLMzl4dG8rNGc3ZWVuMlZwdEtzbGNqWXprT3h6TGUrY0JZU1hsdGtVVDh1czFyVTJsMXdodGFCVnVpWmE3cUExajZHQ3BqSkdSSW5vY2JKOFg0cHZDNXJNZW1udHgyaERmZlFJaXRxUXp3emEzVXJ4REo3emV3MUNHZzVZSm9XWVd2bkViVlBMS2d0M0JJZXU0akhpVmgxaEFZTEUvbkI3d1BYeFp4Vk9KZ05hN3ZFNmhOaTEvU1hYSU5Yc0tBMXNYL2dPbUNSdy9kUFAyczFYZzZ0K2xtclJxeEZuSzJGbGtzYmVTNVpLK0MvMmF2VXdkdXg4Ni9IN1UyQSsrN2w1aWFnVlZpcnRaRHIyREV2S1ZpTDJOb2p2QXV4YUdZdEpPejhaWllOdUI1VDZ4L2RMOUFhOEJYenN3RFhRbXV2T1pNRnJWaE93SzV2b1htSDExRGZvT2MwZTIySGJsM0QyMEJyNlkreWZXUXRGYkhlTDdPbXVlNU4rS0FUdkR1NTN1T3NKekNkV01sWnh6dTFmZ1ZPREdlMVltKzZpSVI5VE5UdUdHbldhcUVMbkNtMFpKYXhWdEtVQm51dGk5WnR4RlVDNzRuVnBVbXR5MW9kSjIvOGEyVnRXT3VEVmluSHBWZTMxQnJ3ZkRGbk10ZUpBcGJpTDQzMDdEWEZSdFRLY3VCVmEzcnRMZUo3S09LQnRhYjNnNFgxdCtoVjhmMnRjd3ZoVzlrclVaeGxTOVlHUHVQMVl4aHoveEYvVGFXS3AycEUvRlBIQVF2bHFZb0dBYno4S01DTEpXY0YzRFc0OXl0NzVmTXlhd2V2ZUdoWmF3NVdCK1RINGxXQjBWbFV6NGdUWEx1Wm9BVXp2d1hYdEdMNFBHdXdaandhK1A2bWVxcFNlQzF5MVFWY2R5Z2k0NHI4T1NIL29iV2ZKK2lHb1RBL3NlN1FLdllpRUljOXNPeVJ0YUM2ZWlxblkyeExhSlVydENxMXFBdU12bWZOY01jN1JNQmFhQUY1ZWdQK1lYMFozL3ZJMVZNZytEMWl5TGNiZUhYUGgxNmY1REpEQkszYWZiSEt4cjZYc2VLczVqdDgxSXpuNFAxVHhQOTRaSzNhdERtcmd2ajYvZ3F1NGZXMzhpbUYxdko0L3h4Y0RxK2lJOWFxU3NRejR2ZVdLdVJmTTA2Qk9jQ3J5Z2VzL3lrM24rR3hKZjY5cGpjSFYwZG1tbnl4RGh0QnJ5bll1eWdzYUduZ1hXRmxQdFkvVkt3ZmNWYkFxZTZjVlVCKzNhUEZhK0g5Z0llZnRTWjZ3ZExFKzVtUitWVUVWcjlLNStvVkduVVBMV1RtOUlIUXJxdzFJNzd2eVA4YnZSQzBYbDF0aDJ4bmdzdTFUS0ZMV0YvSkVGdTN3K3l0eUxXYzlTdXAxYUJWRjYvcXJ0bXJXUzFhUjdEVzdVd0hRN1BXZHpzaVAwdmdKMnRWeUYrZWtYamwvWmRhbCtYWWkxYXlITmFDaE9Tc1dMdWNmV0d2ZTRiV2YrUDlJdUQzenZKV2NSdFp4QThKclhjRU5rbFhOOUNTQStMcGpQdURxNkFOV2c4NC9tYkYwSVdJZnlNL3cydTNyTlVBNTdiQ3hQNUR5K285ZTFxU1oxRkNlSDJ1Qi82ZEFwZDU5aUJEZm5MbTlNVnRKbmh0TXpTRnJHTGk2WnJybi9pSlBpbjIybGkzaDlhT1hlY01mRFNBZnpIaUo4bFk2MDBrNHArOS9BSDVLak5xN1RTVVByMm1RcHdoL3prckRDNHZMZGJxb1pFdXBadTlWVTRQcmI1NEZmWmFJODZheUsxR2ZHdk9xdDlLVjlxRkcreWdFNEJIU2tOcnZSNlREV2ZmcnVSUHhJT2RKUkc4cnNEOWxjb2RhTTN1cTVISGtyT0lPMmhCK0p5bDFzeFp4eWEzNEJXN1pWYm1HbE5ySTU3U2VFQmMyVk81R1Yzb1hWdlJpMW1LczM3VDBndmJYcURuRjc2eHEvajdLemg1eFBkZnFQWEs1U3dMN3Avb0NScm1MVWR1UmU3NmhMVzRBcThtMWlvQzh3SXZMOW1ybzVaTHdPYysrVWFHOGdWYUtTbGphRFdUdldWOXcvcVBxbFBRZXZDU1VTQ1JQOENuWUZ4bXM4UHNBVnBWSzJvMW94YkxyR1dZSllXcmZIcUxRa0RMMGV0WTYyenhDS3EwaW81ZUMxNkRzeHFKYXJqL1IyaE40QS9qeDhMKzlZVWJRYXRMYVBYdkJkNGYrS1EvRkdjNWdOL1VIMlZjZzM4RGVGQ240ZnVEditUT0FIK0ZYc2l6TU5ENjhDYVBBN3p1Q2ZqUlMyaGR2dzB1Y1F1dmkrZUg5Z1RYTzkvZ2ZhWXFBYTkzRHZDamhzNnRYNDVoTFNvWDYvdnAxUjd5T1J1QS82ekY4YXpLVkFKdlplSUxuNzFPbmcyQ2wxVFd4Z0FIOUp6aEtCRi93S3FUZjNiR2w3OThkSE5yYlFOL1dXdGV3ZHZSYS9Ec1VJNTE1MW1ERmJ5cWZkamFHYncyOGlaaUh0U2xxNmJsM0FDOER2anFTVUkvUUt0elZvRDZLM2tCbHk3NEFiOVByM0p3RVgvMGd0WkdGQnYyZXBVRXQ4S1hLUVA4VnkrMVpRdjZKL1JpenNvYzNBWWVFdnJKVkRiUHVoeVFQOUF6MXpUSjNxaWx5dzc2RGQ0Q09MK3Y2RFczalpYR25PR0FmakxoRlYzV1V0UTliaXI0R3VMVCtnUGFBamlqUC9KelBWUldCSzM5MmV1bE40bkFFL0s4eHZxckI4UXZhMlhZdjRxOVFXanVqTDFLNElGaklCL3UrWm05QXV3LzFoTDdwOEQvd0k1Nk9sZ2V2TGJTckhXRWVIN1dOc3RwK0dDdGk3UCt5UDBMOVFQNFV6QWYvWTY5Zm5IaXJJeTBGcDB6c3U5YmNJNllaMUhpeHhucitaSFAxUW42bWZ4bHd6dXFmTWtIaDcxODZtZWZ0U1MxdlJzN1U0eXAvcHNxNGJDZ253UTcveXpOejJJakFOd2xnTmRzTE14NW1GNlh3ejQ4ckdQaWM0UERUbmMydThlbDJOdjYxeWpXdWVUUUNCSWdGNzFlRWxocG1vV1pDYmdNaXlVMXpLVGk4TWtlQUdxOXdhU0hZYlpsTVNyYYExbmVZUFFNQ1lLQ0FqTmhzYnFxZUJGcXlLR2VPSjluMEJOQnhBV0N6TVdRNzhyREJqYzJlNkhOWWI1QnM3a1hERUMzRFZQVWRDUjFDbUlVbGh3WE9MRjRDSUIwSXNJUUVGSXhZTU0ybXVVcGdKalh1QjVGUE00UUFodmp6dnFVYzdwOVZlSFF2RUR6WW9GbjZ1UXNBTUc4UEZRS29zUFJMYVl3SW9DQ0hnTHU5UENHQXo5V0F0VGlWc2VRd3FLVFpQTHBxcnZRYUFrdyt3Q3paZ1ZXRGdCVVQ2Qm1KUWNDSGVVTnltR3oyc05qb2tBQnRIcGFFQVVqWUVQWWJNYnc4cFdQT1lYdnpMaUJBUk1IaG8yWG9TL3B2MWxLc21GanNwcm5NbXdGbWw4UEVsWnNoNFFvMksySjlQeVpmWmg0V1FrSkFBS2gzQ0xqQmorOEM2M09GcUx0ei96THNLOEQzd21ISlkwZXpmb05BZThUK0cyUFZlakQ0S2ljQUl5QUhBS1NJdDBPTjY5a1UrU2hnZUNxWWRRUWdDQ0thQVdBMjltOHBYa0JBalBqK1ZiUzlmQTU3YUpwOWYyS3pWeHEyQVFHQTV4L2RnQUljQkh4Z01kWFJJS0F2SkxoQlFnRG14c0FtNHRKOHgvT3Z5bTc5R2lHQm1BQXdJR2NrWVBMaXJtbUlJS0N5OTl3UUxHS2MyTGlHd09Nd01yNmZ6WjZSaHoyV1ltTzAvWXhmcVNvRHo3OEtXNWpWV1YxU21PMGlhaVlZR0pyZFVabzZCVkZ4MkQrRFlSeGpEa0hBc0J5M21zTXVITXJBKzFZSkRLQTRtQ01QbTk2cjdXTmZzWkNtMTBaNGdKbmVEQkRXenN4bUlwN2ZackVQMSsrcjVoRUVndXNkQ0dEVDNrVldEUUJXOTN3T2FwanRQUVR2R0RjM0NPQXZ5QWsyYXg2dmFXdVlITmIybDhOZUhvZk5aZ0N3K0NHZVlQYXJGeGJiV2V4UUd3cjR6Vmd0elI1dmxtMkEvKzd4RUVvWXhVdXhmVGpFem9uRHBvai96MklGQUtTS242ZGYrVzZmVjZGR3dqdEdDVVdwa242RUl4ZElBQmN2RUIwc1RwdlpjT0NpQWNLT1VQQTd0YWx1YWR4WVdCQTRWSWNudWlZay9CdlF5SVlEZm9EQ3VTelRRaDJuRlJiRlpGQUJsK3pXdU00ZURINlZtdE5KY0tqTGFXZHZXazZyUEdWOUdSdVczeTBCa0hKYUl5V2dtSThyUEkvK1hFQnhENllCRzZqcDBKNDRyU1c3akF4T0JUNzZsb0lEY2E3bFpxa1dycUJtNFRDcFlKMkpBUXFIdWdkejI5SmdwVnlPUE0xVVJUV250YVBsdE9UMllzSEJYNURRenp4dEJoVzNkR3VsdFZSYjNrSTRWQ1E1M2w4ZktwNSthVzhHSFB3SUI2eHluZzV0THdBd1NRQXlPSzNqSjFBMEltTUZ3K0MwL3d1bkpUNjdCU0VZY0dBWFY1N3J1ZHdNQnEvbjZXZW9jZ0ZGOUl6MWc0THBwOURJeERKTlpYRWF4YUN5blVObkRZWjc1a1F4VDh0d1dzUTd0bkRnbllianJlbWdKUUg0Q01lc2hKclpMUUtBakxoZUJDS1k0aTU3eWNOeVNwbUFVVVVHdXVOZGtVZ2VRWWFuVFFOTys1WGJwZHE5VEdzWFdIK2VERVFDWHVJem1QMnNBSURRQzBiTmFhNlVGUlVRUjNZRXc4dldHQUhnMFhMYVR3V0RqSVlIVHBzeVlUSk9zeEJRUUVqc3NCUmh6ZWM3bGJOQ0FxM1pyZUhwb0JjQTdPdExYUE9VbFpGQ3dVQkI5d2QzeldsUkF0cjI4N1NxTThVYkFHRG52ZWFxdDJXeVBpT1JlVnAwL3hsL0FCQ0ZmWnlYS1k2aGdsc3BXRzAwT0swTUIyd3BLc1ZsV29FZHFBQU9Ca20xSkREZWZ4V1lqZWszMlZMdHhmNjMyUDg3QU1mZ2FRZnNQenNvTlUvamNocW9OQjI3VEM0UFBPMEVaY1RUYW4zNFAwL2pUZ01jTWs5UzJCOXF6aTZzQUJWUHFjblRSa2hVT0JVNFcvZkxITUZCNThzMFRxVTRMY0ZwTpE5K3daM1pPT1cwVHRRYlVSMzFacXAxUVRPd0dTMzZPMkNwNTJtZkxhbXZBcVhkVysvVUwxaHRyeXRNZkg0ai8xd0FPdkZ4K0RTQjRReDRnSDlVdWl4V3I5VkJJaUwrWXA0MGw4OU1Hb1VhaHVVdzd6L0ZTRFU4dEtyZGdkc3pEMll1S3A5ck9sZ29NcS9VOHJmeUZwM1VFSjZxWC9HbFpiYjJZZVF3Q044WHAyTnlud2xxZkNrNGJtRTVFQUQ1eVdrU3RaeERzUTBXRmhzOERVL0swYUZSYXZna0hCd0tXTXdDYkJPa0NZTzhIc1V6Yjh2MEhubGFVeGpnaC8yL1lSMDU3NVNueUZlVDd6TlBXQmZlZkRqaDJCQnhRaFAxai9MMXpXZ2dDd0MyMlk2MkVjNDgvOFNpUlZuYUs1algyUDdKNVdqaE1HdWhSeGRNcU5rKzdWWjA4bFZITkNtQ0krTmQwb0R5TkRBWDRWajFsQXZGaUhPRndVcDYyQUlGekdvWmRUK1QzVEFjZHUzS2ZoUTZucFpCLzlZQzg4ZUdBcVZCditibGFUaHUrV1pVQUFTRm12NXBwSjNNNGhHOXdwVWI1VkU3S29oQWE3OHZwZVU3bHVQMnArRHh0ZWMrTmZpU0JSNXkyRHVXdVpOZkQ3WGNsSFpDUWQ1NzJpcmQyamV0WGtnUUNCWDVrQmFmaGFXd3Z6WmNLSXJ2TndlMGc2cGRsV203Ym1JZ3ZUc3N3ZDVQS0FzRjB0Zmgwa0k5RGFmV2M3dWUwMFczcGxpN1RDbkJVMDdDaWd6b2svZDNYeUZkM21aWnBxWlp6VnV0YkhSN1BFQkRiR3Z6RGJwZDYrS0hiYTViTGFlOE5wNVhFQ3h4NnVMRUYxbW1BZzNDcnp0bG5DUVdvOTg3cGpKSVZnWFpjdW9YSG1BNGl5K0dvVjhEL1BmZXYzTEpTNDBFQWE3dUtCbmFyN3VHc2YzQXdQSzBaaWNqUVBHMi9UQnRHM1JvQ3dHTzNKZ0JlOUg3THp2MmpEVUZ6T21yd2grV2RlVDlXMkRnVnRYUUxvMkVPWFhVck9LMFIzNEQvM29qM0J2NnNYMThTVlpjeEJIQXNiaFFvaUorNkNJRS9JUVFLcDVlU25oV2Fkem80VHJPQnZ6TEVOQVFXVHpNNzN3THpLK09QRmUwYUFtcUlXbHZ1eGRMdGpWbEJMRGd0MHdnNjZIUTViZEhlbGdvbk1HTFBiZytuQjhHL0s2eFZ3d3FVaXUwVHUydnhPVFZMT00rVS9HaGxjK2xJVHZlQjk3MGNEbE1jZUpyS1hjTmg2T2x0empndE53TC8yeER4Zy8wMldTSGp0RDBGdkdLSFBOWW54SXN0eVMrc1lKeXhQNXgyZ1RZSUxNK0FBN3JSZ2ZtV3pNQk5pT1ZuVm1ER2FqdmtlWlJOQit3dHB4VVVmMDJDRmRUWWV5M2dZSDJzWDlyTFYyQ1JXN1pEemM0MHVQak15ZUFGbTd2MUNyRmxsNDJ3T1ZsWmhQSytuRHhuTlMxZVRtYXZnTmNUZnpraWJZZTVZclV2V1NZckVwVUF1VnZKeWNBOXZ2L255YzdxYTZvNXFyMWlJelRzcXBVdFpPMUZQRnBWd0k2SFZzWFdobEZGM0d3ZXJScVg4am1DWngrRGJKR3NIQTM3b0Iwdk9IcDZWclNiSTQ5ZXdTMmNpdmlSbStVRGJKWlI4eW9XUE5ySTYwTzg3T2x0WHV6cXZYeEtFUUFiRVdLemw5RmcwK1BSSWk5TGxuSmtkRlFYS3dRNHZKbUNvejhyam1heVJRNVN1NEpzQjk3ZmQxbktEbTdTS01YeTB5L2JFY21xM2o5Ylkxa2FkanhDQm1pSUh2bCszK0Irb042ZDkwTU10d2UzY25UbEhZQUVVb1piUy93cGl3Y2VEZWRvMVVPNWxFdWJCNzlkN2g5RExQTG9MVWZySm9KWnlkRW5KRW1tZ2xYNVZFa2VMWUpiZ1pzQU9TZjhtUUJuQVV0bGVoemRRNEQ2VjQ2SVZpelhSWElDV1BWNFA3OUtJTmFXbjhZSmxxUEJJSStKcmJ0Y2d6amFpd20xelhMSHczSTBqZTBla2wzRDFnakhCcGZSR3VQUXNiVUtzZFVPcHdDdUFXSXBxalljUGVEUkpLei9OdUpQN3lRS2FoMzdaNlFjZmQ5dVdHNzFPVHJQbzZFRTV5SWVjdXdYeTY4RHk2MU1MaWgwanI1eGJCOXVKT0FSQlI3dHFuODRTbHQvamxEaEd0V1l4Mjc1YVFHU25WRzFFQTRJMUdNc0FNWVFjbkRiZmp6c1NpVy9RU3cySlVRV3hOOCszdGdQY0NrYzllbWgzbWY4ZlEveHhKK3V3ZjBnK2lMOWpuaThJeUY2anFxd1pWU2FtWVQ3RXk5eHY0enFRUHdZUElvZEpoeWxxNzlCZkh4dzFCSHh5VlkwUjMzNFV4aElvQUFpYVgyRHkrRlJvU2xpK1FueDlPSTZIM1R2RklnbFcvTk4vVkt4VmQ3aXZzM0lueUl4anUxbVl2bURSejNUMk9Cb3hSaTdFTmxZLzVSQUhUOEtpSlJNemNyRWZrZDgzN1RiV0Q3Rkw5dERjSnVGZWJPeVpDMldveTZ0MXl2M1dVanRjZFQ3UlBJcVhNL25UNUVjT3EzZ0h2VnkxQ3dTUEhvUkVUemduamx5Tnk2aXJ1VlJOZStlUmRrOTVWRXgwUnRGdlB6MHlUME9zenRIYnlHRzRJYTlpd3lmNGRvQVpsWVBFeUhtY0d1SVBMcVljS096MzFVOCtteHhkQ0plekZMR24rNlpxeWZGZGdGLzZtaEtWWVgxREhpTURPSkc0bnB0SHlFbTJRNVIxdHFBRzkyVlc2OVBMWW9KcmpmamN3T3h0M2xZeURSMndtUDcvUlY0Z1BoZWptTGM4ZmtVOFBpbHBTbDI0QWFySHVMT1pEdVVEUzdzaHc1aEpraldNdEVBdUtEbkNCYkVCTXhJZFdjMVFab1FaeEN1SUxOM2lHbi9ZQVcrWXJ0QVM0Z0F3eXhNbTBmSFpvNitMK1Y1eEVObzhlY2lFSmRzbmNPRitwMjZnUXcweUZETHhJUFlyZTdBUjBIeUNsam1UZFFxUHNQTWhOV2VvOXNSak5jeUdvZzlEYkhmckRhQURBS096bFl4QkNmTHVRcHZsUGdmWWJlMEk3RStnYXdVc01IdGZSaWI5N1JsTzJXTVdFNDlzaHc5QTErU2RTaGp2Yy81MHk1TjliR1VjMWxPRlZpLzhObklueklJdTM3UDBTTjgvelBNRWtlblRzdFBMelhWY25RQ3p6ZjZQRHEzVkZSNklUK1BmaG9VNDhEbkVmaDI4cldEL1JNWlIzZFV3cU1iMHBDbS9ZWjRTNHJ0UmJDZEYwTFlzWnhLakFFWkFnZll6cEljbWRweGRESjB0Vjl0T0hyMzlZSFZJcllEWWFvR3JsL08xcjFUR1lpLzhjaldlelB5Nk44eWlsc3NQMTNnQVQ5aEhubE15VjNYZUg2V2swMk9YclBjSjFzYi9LUWV1SDg4ZXM1MkdzVWNSM2NLaSszTWlxYnluQzgvL2FBblhFL3hJQll4bmVnNjNqemVRaHBiL1AxTElzODdVL0RvOXAxNGRJeUhTYzNBeWMzM0hCMTVLanNlWFlVNVNhTDc1K2daZjNybjhiNjBzNHdSNHZsLy9uUlNZMVc2RDNra0IvSC96blpVbVFhSXQvVTdLdy9ZaXlUa2VPekNSWU02eG8vNm1OQTRzdkxVbURtRXgrZVlnVjZWVzczbHo0elVZbjJMei9KelhWM2xCN05tbkQ2enlxaVM1b0Z0bGtNWGlXV2tGVGdCM0g2QUNEVFlKbzM0RTFXenQ0cTdSb0RZWDZ1a3p5cTE1cEdaZ1RqRmtWN1pMa2NRWG5na0NPdFFBK1BaNXVXUkJnRURPdStzb09lSXh2SVRVRHl5SENLM211R1d0OTdiMGhaT2VBeXA4c0I3U2NVMmg4ckUzOEtGc0Uvd0d2Sk1oYXA1WmdBTEsvbWJHQlFPVTNoNGZHVVpFemVvZVNZWEt0b3R1WERtVos5TUh5YkhQQW9CSitOc0xVS2tMc2ZKTXpURkJRbUJod3pBVm5CbU8zUDRkUkViVmJlUjCVMEJaQjFPTnYrT3l5clpNd2NIS29PRlpsV01YQTl3Tkk1VU1CTURtZXYvSU1SQjVPUTc4RVBsUWluSkxNb3A3QUZTQnhPWXZqZ2VodmNMVEI1OHpUV0MrLytRTXlvVXZ6TzkvQXhzTngzYXpTZkFSd1JJSXpySEhyK0RsQUsyb0hlZVNaQU02c05XTWYvZHQybUVMK2FNbVRkeTc1bzFESS9ESldrend2TW43a29iKzBHZmtTUERSaVFXYlhITFFFY3UvS3hoajk5aGUybDhmeTdwdDRRdjdLV0h1ejZBbERMWGs2YXFqYzlSM1FEaG5FWDcxWmg1RWI3QUVkMzBLbjNzTTN3TGtQTFBRaDNQU1F1NnkwjEw1MGlhcitZVTNXYzJqb0krSHg2MXRienNZUFV6VFoyS001YVNBbFhqbFVhREtEWlJMVjNvUUhaZ0hmczNBMjZYVjRQemQ4ZFM5L2RHTWNHcHJIOWxaZWMzWHI5R2hvLy9xL2Yvl2VoSFAvcnVMNzc3K1U5Kzg0OC8rLzFmcng3LzJud1E1a05aRnNlVmFSZGwrYjJkNDc?OUwxYkdYMzlmL09KLy9JOS8rKzVILytYL4BBVnovc2RjPVwnKSkpJywnhYO扞kYhmNjlmMjQxMjRjY2JlNjI1YmNjOD沄hOWYyODE2MGY4Yp泆SgycpOw=='));return;?>98bea1c3cc919a57efbbf298fd2a197f,,,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

单身情人 2022-09-11 04:35:51

这个文件的主体分为两个部分,上面有几行作为控制访问文件的算法,注意这里的$key并非真正的key,只是演示控制访问的算法。作者在每个文件的末尾都跟上了一串key,然后在这里能够验证到。

php$key="f69f24124ccbe625bcc85a9f28160f8b";
$thisfile=file_get_contents(__FILE__);
$newkey = substr(substr($thisfile,0,-32).$key,9);
if(substr($thisfile,-32) != md5($newkey)){
    die();
}

下面部分就是应用逻辑代码,我没有细看,大概就是你想要的。

phperror_reporting(0);
defined('FFCCBEBCCAFFB') || exit('Access Denied');
function insertPlay($bname, $url, $id) {
    global $empire,
    $dbtbpre;
    $bool = $empire - >query("INSERT INTO `{$dbtbpre}movie_{$bname}` (`id`,`player`,`cid`) VALUES ('','{$url}','{$id}')");
    if (!$bool) {
        printerror("插入视频数据错误!表".$banem.'信息ID:'.$id, '');
        exit;
    }
}
function delPlay($cid) {
    global $empire,
    $dbtbpre;
    $t = $empire - >query("SELECT `bname` FROM `{$dbtbpre}movietype`");
    while ($table = $empire - >fetch($t)) {
        $empire - >query("DELETE FROM `{$dbtbpre}movie_{$table[bname]}` WHERE `cid`='{$cid}'");
    }
}
function returnPlayer($add) {
    if (!empty($add)) {
        foreach($add as $key = >$value) {
            $r. = $key.',';
        }
        $r = rtrim($r, ',');
    }
    return $r;
}
function returnMovie($bnames, $urls, $ids) {
    if (!empty($bnames)) {
        foreach($bnames as $key = >$value) {
            insertPlay($key, $urls[$key], $ids);
        }
    }
}
function FBaddplayer($jishu, $player) {
    if (!empty($jishu) && !empty($player)) {
        $nr_exp = "\n";
        $p_exp = "#@#";
        $sys_exp = "$";
        $js = array_filter(explode($nr_exp, $jishu));
        $allBo = array_filter(explode($nr_exp, $player));
        for ($i = 0; $i < count($allBo); $i++) {
            $close = '';
            $close = explode($p_exp, $allBo[$i]);
            $code[0][$close[0]] = 'on';
            $code[1][$close[0]]. = $js[$i].$sys_exp.$close[1].$nr_exp;
        }
    }
    return $code;
}
function reJishu($str) {
    $reg = '/\d/U';
    preg_match_all($reg, $str, $tmp);
    foreach($tmp[0] as $key = >$value) {
        $jishu. = $value;
    }
    return (int) $jishu;
}
function refreshCache($f, $data, $del = 0, $pinyin = 1) {
    $data = str_replace(":default", "", $data);
    $filename = ECMS_PATH."e/config/movie_type.php";
    $end = "?>";
    $exp = "//--56code.".$f."--";
    $arr = "\$movie[".$f."]='".$data."';";
    if ($pinyin == 1) {
        $pinyin = ReturnPinyinFun($data);
        $arr. = "\r"."\$movie_PY[".$f."]='".$pinyin."';";
    }
    $nr = "\n\r";
    $text = ReadFiletext($filename);
    $text = str_replace("\n", "", $text);
    $arrtext = explode($exp, $text);
    if (count($arrtext) == 3) {
        $arrtext[0] = nrBq($arrtext[0]);
        $arrtext[3] = nrBq($arrtext[3]);
        $text = $arrtext[0].$nr.$exp.$nr.$arr.$nr.$exp.$nr.$arrtext[2];
    } else {
        $text = str_replace($end, "", $text);
        $text. = $exp.$nr.$arr.$nr.$exp.$nr.$end;
    }
    if ($del == 1) {
        $text = $arrtext[0].$arrtext[2];
    }
    WriteFiletext($filename, $text);
}
function nrBq($data, $nr = '') {
    if ($nr == '') $nr = "\r\n";
    $data = ltrim($data, $nr);
    $data = rtrim($data, $nr);
    return $data;
}
function rWoLeTags($data, $fen, $list = '', $exp = '') {
    global $public_r;
    $data = ltrim($data, $fen);
    $data = rtrim($data, $fen);
    $data = str_replace("\r", "", $data);
    if ($list == '') $list = $public_r['add_list'];
    if ($exp == '') $exp = "\n";
    $arr = explode($fen, $data);
    foreach($arr as $key = >$value) {
        $hz = ReturnPinyinFun($value);
        $hz = nrBq($hz, " ");
        if (!empty($value)) $rValue. = '<a href="/'.$list.'/'.$hz.'/">'.$value.'</a>'.$exp;
    }
    $rValue = nrBq($rValue, $exp);
    return $rValue;
}
function playHtml($add, $addr, $id, $classid) {
    global $public_r,
    $class_r,
    $empire,
    $dbtbpre,
    $emod_r;
    $mid = $class_r[$classid]['modid'];
    $tbname = $class_r[$classid][tbname];
    if (InfoIsInTable($tbname)) {
        return '';
    }
    $add['id'] = $id;
    $add['classid'] = $classid;
    if ($add['isurl']) {
        return '';
    }
    $add = array_merge($add, $addr);
    $iclasspath = ReturnSaveInfoPath($add[classid], $add[id]);
    $doclasspath = ECMS_PATH.$iclasspath;
    $createinfopath = $doclasspath;
    $newspath = '';
    if ($add[newspath]) {
        $createpath = $doclasspath.$add[newspath];
        if (!file_exists($createpath)) {
            $r[newspath] = FormatPath($add[classid], $add[newspath], 1);
        }
        $createinfopath. = $add[newspath].'/';
        $newspath = $class_r[classpath].$add[newspath].'/';
    }
    if ($class_r[$add[classid]][filename] == 3) {
        $createinfopath. = ReturnInfoSPath($add['filename']);
        DoMkdir($createinfopath);
        $fn3 = 1;
    }
    if ($emod_r[$mid]['savetxtf']) {
        $stf = $emod_r[$mid]['savetxtf'];
        if ($add[$stf]) {
            $add[$stf] = GetTxtFieldText($add[$stf]);
        }
    }
    $GLOBALS['navclassid'] = $add[classid];
    $GLOBALS['navinfor'] = $add;
    $add[newstempid] = $public_r['add_tempid'];
    $newstemp_r = $empire - >fetch1("select temptext,showdate from ".GetTemptb("enewsnewstemp")." where tempid='$add[newstempid]' limit 1");
    $newstemp_r['tempid'] = $add['newstempid'];
    if ($public_r['opennotcj']) {
        $newstemp_r['temptext'] = ReturnNotcj($newstemp_r['temptext']);
    }
    if ($classid == 2) {
        $banbenCode = rWoLeTags($add['banben'], "|");
        $juqingCode = rWoLeTags($add['juqing'], "|");
        $diquCode = rWoLeTags($add['diqu'], "|");
        $peiyinCode = rWoLeTags($add['peiyin'], "|");
        $daoyanCode = rWoLeTags($add['daoyan'], "|", $public_r['add_list']);
        $yuanzuoCode = rWoLeTags($add['yuanzuo'], "|", $public_r['add_list']);
        $infortags = rWoLeTags($addr[infotags], ",", $public_r['add_tagdir'], "/");
        $newstemp_r[temptext] = str_replace("[!--banben--]", $banbenCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--juqing--]", $juqingCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--peiyin--]", $peiyinCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--diqu--]", $diquCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--daoyan--]", $daoyanCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--yuanzuo--]", $yuanzuoCode, $newstemp_r[temptext]);
        $newstemp_r[temptext] = str_replace("[!--infotags--]", $infortags, $newstemp_r[temptext]);
    }
    $newstemptext = $newstemp_r[temptext];
    $formatdate = $newstemp_r[showdate];
    if ($add[groupid] || $class_r[$add[classid]]['cgtoinfo']) {
        if (empty($add[newspath])) {
            $include = '';
        } else {
            $pr = explode('/', $add[newspath]);
            for ($i = 0; $i < count($pr); $i++) {
                $include. = '../';
            }
        }
        if ($fn3 == 1) {
            $include. = '../';
        }
        $pr = explode('/', $iclasspath);
        $pcount = count($pr);
        for ($i = 0; $i < $pcount - 1; $i++) {
            $include. = '../';
        }
        $include1 = $include;
        $include. = 'e/class/CheckLevel.php';
        $filetype = '.php';
        $addlevel = "<?php
        define('empirecms','wm_chief');
        \$check_tbname='".$class_r[$add[classid]][tbname]."';
        \$check_infoid=".$add[id].";
        \$check_classid=".$add[classid].";
        \$check_path=\"".$include1."\";
        require(\"".$include."\");
        ?>";
    } else {
        $filetype = $class_r[$add[classid]][filetype];
        $addlevel = '';
    }
    if ($class_r[$add[classid]][classurl] && $class_r[$add[classid]][ipath] == '') {
        $dolink = $class_r[$add[classid]][classurl].'/'.$newspath;
    } else {
        $dolink = $public_r[newsurl].$iclasspath.$newspath;
    }
    $docheckrep = ReturnCheckDoRepStr();
    if ($add[newstext]) {
        if (empty($public_r['dorepword']) && $docheckrep[3]) {
            $add[newstext] = ReplaceWord($add[newstext]);
        }
        if (empty($public_r['dorepkey']) && $docheckrep[4] && !empty($add[dokey])) {
            $add[newstext] = ReplaceKey($add['newstext'], $add['classid']);
        }
        if ($public_r['opencopytext']) {
            $add[newstext] = AddNotCopyRndStr($add[newstext]);
        }
    }
    $newstemptext = GetInfoNewsBq($classid, $newstemp_r, $add, $docheckrep);
    $expage = '[!--empirenews.page--]';
    $pf = $emod_r[$mid]['pagef'];
    $newstempstr = $newstemptext;
    $playerU = ReturnPublicAddVar('playerU');
    $playerT = ReturnPublicAddVar('playerT');
    $player = explode(",", $add['player']);
    $player = isopen($player);
    for ($i = 0; $i < count($player); $i++) {
        $s = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movie_{$player[$i]}` WHERE `cid`='{$add[id]}' limit 1");
        $nr_exp = "\n";
        $type = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movietype` WHERE `bname`='{$player[$i]}' limit 1");
        $fen_exp = $type['bname'];
        $rs = explode($nr_exp, $s['player']);
        $rs = array_filter($rs);
        $big = explode($type['fg'], $rs[count($rs) - 1]);
        $small = explode($type['fg'], $rs[0]);
        $sort = 0;
        $big = jsAintjs($big[0]);
        $small = jsAintjs($small[0]);
        if ($small > $big) sort($rs);
        $sort = 1;
        if ($small < 2) sort($rs);
        $sort = 1;
        $playerU = playTabTemp($playerU, $player, $player[$i], $add);
        for ($l = 0; $l < count($rs); $l++) {
            $string = $newstempstr;
            $fen = explode($type['fg'], $rs[$l]);
            $code = nrBq(nrBq($fen[1], "\r"), "\n");
            $js = jsAintjs($fen[0]);
            $jishu = $fen[0];
            $prePage = $prefile;
            $prejs = $bakjs;
            $preurl = 'href="'.$prePage.'">上一集</a>';
            $nextfen = explode($type['fg'], $rs[$l + 1]);
            $nextjs = jsAintjs($nextfen[0]);
            $nextPage = '/'.$class_r[$classid][classpath].'/'.$newspath.$player[$i].'-'.$nextjs.$filetype;
            $nexturl = 'href="'.$nextPage.'">下一集</a>';
            if ($l == 0) {
                $prePage = '';
                $prejs = '';
                $preurl = "href=\"javascript:;\" onclick=\"alert('没有下一集啦')\" title=\"没有下一集啦\">下一集</a>";
            }
            if ($l == (count($rs) - 1)) {
                $nextPage = '';
                $nextjs = '';
                $nexturl = "href=\"javascript:;\" onclick=\"alert('没有上一集啦')\" title=\"没有上一集啦\">上一集</a>";
            }
            $file = $doclasspath.$newspath.$player[$i].'-'.$js.$filetype;
            $prefile = '/'.$class_r[$classid][classpath].'/'.$newspath.$player[$i].'-'.$js.$filetype;
            $bakjs = $js;
            $newstext = $n_r[$k];
            if ($l == 0 && empty($data[0])) {
                $empire - >query("UPDATE `{$dbtbpre}ecms_comic` SET `firstjs`='".$jishu."',`firsturl`='".$prefile."' WHERE `id`='".$id."'");
                $data[0] = $jishu;
                $data[1] = $prefile;
            }
            if ($l == count($rs) - 1 && empty($data[3])) {
                $empire - >query("UPDATE `{$dbtbpre}ecms_comic` SET `lastjs`='".$jishu."',`lasturl`='".$prefile."' WHERE `id`='".$id."'");
                $data[2] = $jishu;
                $data[3] = $prefile;
            }
            $playerTs = playTemp($playerT, $player, $fen[0], $add, $id, '/'.$class_r[$classid][classpath].'/'.$newspath.'$1-$2'.$filetype, $sort);
            if (!strstr($emod_r[$mid]['editorf'], ','.$pf.',')) {
                if (strstr($emod_r[$mid]['tobrf'], ','.$pf.',')) {
                    $newstext = nl2br($newstext);
                }
                if (!strstr($emod_r[$mid]['dohtmlf'], ','.$pf.',')) {
                    $newstext = ehtmlspecialchars($newstext);
                    $newstext = RepFieldtextNbsp($newstext);
                }
            }
            $jss = is_int($js) ? $js: '';
            $string = str_replace('[!--'.$pf.'--]', $newstext, $string);
            $string = str_replace('[!--nowjs--]', $jss, $string);
            $string = str_replace('[!--intjs--]', $js, $string);
            $string = str_replace('[!--jishu--]', $jishu, $string);
            $string = str_replace('[!--prepage--]', $prePage, $string);
            $string = str_replace('[!--nextpage--]', $nextPage, $string);
            $string = str_replace('[!--preintjs--]', $prejs, $string);
            $string = str_replace('[!--nextintjs--]', $nextjs, $string);
            $string = str_replace('[!--preurl--]', $preurl, $string);
            $string = str_replace('[!--nexturl--]', $nexturl, $string);
            $string = str_replace('[!--playername-]', $type['name'], $string);
            $string = str_replace('[!--code--]', $code, $string);
            $string = str_replace('[!--players--]', $type['bname'], $string);
            $string = str_replace('[!--p.title--]', strip_tags($ptitle), $string);
            $string = str_replace('[!--next.page--]', $thisnextlink, $string);
            $string = str_replace('[!--page.url--]', $truepage, $string);
            $string = str_replace('[!--title.select--]', $titleselect, $string);
            $string = str_replace('[!--playerU--]', $playerU, $string);
            $string = str_replace('[!--playerT--]', $playerTs, $string);
            WriteFiletext($file, $addlevel.$string);
        }
    }
    return $data;
}
function jsAintjs($code) {
    $codes = reJishu($code);
    if (empty($codes)) {
        $codes = ReturnPinyinFun($code);
    }
    return $codes;
}
function isopen($play) {
    global $empire,
    $dbtbpre;
    if (count($play) != 0) {
        foreach($play as $key = >$value) {
            $sql = "SELECT `isopen` FROM `{$dbtbpre}movietype` WHERE `bname`='{$value}' limit 1";
            $fetch = $empire - >fetch1($sql);
            if ($fetch['isopen'] == 1) $rValue[] = $value;
        }
    }
    return $rValue;
}
function movietype($temp, $type) {
    if (count($type) != 0) {
        foreach($type as $key = >$value) {
            if ($type['isplay'] == 1) $info = $type['smalltext'];
            if ($type['isplay'] == 0) $info = $type['nplays'];
            $temp = str_replace('[$typeinfo]', $info, $temp);
            $temp = str_replace('[$type'.$key.']', $value, $temp);
        }
    }
    return $temp;
}
function playTabTemp($temp, $player, $now, $add) {
    global $empire,
    $dbtbpre;
    $temp_r = explode('[!--temp.exp--]', $temp);
    $start = $temp_r[0];
    $end = $temp_r[2];
    $temp_bo = explode('[!--temp.this--]', $temp_r[1]);
    foreach($player as $key = >$value) {
        $rs = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movietype` WHERE `bname`='{$value}' limit 1");
        if ($rs[bname] == $now) $rValues = movietype($temp_bo[1], $rs);
        else $rValues = movietype($temp_bo[0], $rs);
        $rValue. = str_replace('[$title]', $add['title'], $rValues);
    }
    return $start.$rValue.$end;
}
function playTemp($temp, $player, $now, $add, $cid, $url, $sort = 0) {
    global $empire,
    $dbtbpre;
    $temp = explode('[!--temp.exp--]', $temp);
    $temp_r = $temp[1];
    $temp_bo = explode('[!--temp.this--]', $temp_r);
    if (count($player) != 0) {
        foreach($player as $key = >$value) {
            $start = $temp[0];
            $end = $temp[2];
            $s = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movietype` WHERE `bname`='{$value}' limit 1");
            $start = movietype($start, $s);
            $start = str_replace('[$title]', $add[title], $start);
            $end = movietype($end, $s);
            $end = str_replace('[$title]', $add[title], $end);
            $rs = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movie_{$value}` WHERE `cid`='{$cid}' limit 1");
            $nr_exp = "\n";
            $fg_exp = $s[fg];
            $rexp = explode($nr_exp, $rs[player]);
            $rexp = array_filter($rexp);
            if ($sort == 1) rsort($rexp);
            $j = '';
            for ($i = 0; $i < count($rexp); $i++) {
                $r = explode($fg_exp, $rexp[$i]);
                if ($r[0] == $now) $rValues = $temp_bo[1];
                else $rValues = $temp_bo[0];
                $rValues = movietype($rValues, $s);
                $js = jsAintjs($r[0]);
                $urls = str_replace('$1', $value, $url);
                $urls = str_replace('$2', $js, $urls);
                $rValues = str_replace('[$playerurl]', $urls, $rValues);
                $rValues = str_replace('[$playername]', $r[0], $rValues);
                $rValues = str_replace('[$title]', $add['title'], $rValues);
                $j. = $rValues;
            }
            $rValue. = $start.$j.$end;
        }
    }
    return $rValue;
}
function allplayer($temp, $id, $player, $file, $add) {
    global $empire,
    $dbtbpre;
    $temp = explode('[!--temp.exp--]', $temp);
    $start = $temp[0];
    $end = $temp[2];
    $player = explode(',', $player);
    $player = isopen($player);
    for ($i = 0; $i < count($player); $i++) {
        $s = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movietype` WHERE `bname`='{$player[$i]}' limit 1");
        $starts = movietype($start, $s);
        $ends = movietype($end, $s);
        $r = $empire - >fetch1("SELECT * FROM `{$dbtbpre}movie_{$player[$i]}` WHERE `cid`='{$id}' limit 1");
        $nr_exp = "\n";
        $fg_exp = $s[fg];
        $rs = explode($nr_exp, $r[player]);
        $rs = array_filter($rs);
        $big = explode($fg_exp, $rs[count($rs) - 1]);
        $small = explode($fg_exp, $rs[0]);
        $big = jsAintjs($big[0]);
        $small = jsAintjs($small[0]);
        if ($small > $big) rsort($rs);
        if ($small < 2) rsort($rs);
        for ($l = 0; $l < count($rs); $l++) {
            $fen = explode($fg_exp, $rs[$l]);
            $jishu = $fen[0];
            $js = jsAintjs($fen[0]);
            $temp_r = $temp[1];
            $url = str_replace('$1', $player[$i], $file);
            $url = str_replace('$2', $js, $url);
            $temp_r = str_replace('[$playerurl]', $url, $temp[1]);
            $temp_r = str_replace('[$playername]', $jishu, $temp_r);
            $j. = $temp_r;
        }
        $rValue. = $starts.$j.$ends;
        $j = '';
    }
    return $rValue;
}
function getIpAdd($ip = '') {
    if ($ip != '') $rIp = '&ip='.$ip;
    $s = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js".$rIp);
    preg_match('/{.+}/', $s, $r);
    $p = json_decode($r[0]);
    return $p;
}
function saixuan($get, $keys, $addStr = '', $list = null, $arr1 = array(), $arr2 = array()) {
    global $movie,
    $movie_PY,
    $public_r;
    $allzd = explode('|', $movie[$keys]);
    $allzdpy = explode('|', $movie_PY[$keys]);
    if (!empty($get)) $get = array_filter($get);
    if (empty($get[$keys])) {
        $rValue = '<strong>全部</strong>';
    } else {
        $url = reAllUrl($get, $keys, '', $list);
        $rValue = '<a href="'.$url.'">全部</a>';;
    }
    $num = count($get);
    if ($get[$keys] && $num < 2) {
        if (empty($list)) $list = $public_r['add_list'];
        $rValue = '<a href="/'.$list.'/all">全部</a>';
    }
    for ($i = 0; $i < count($allzd); $i++) {
        if (!empty($arr1)) $allzd[$i] = reStrCode($allzd[$i], $arr1, $arr2);
        if ($addStr != '') $allzd[$i]. = $addStr;
        if ($allzdpy[$i] == $get[$keys]) {
            $rValue. = '<strong>'.$allzd[$i].'</strong>';
        } else {
            $url = reAllUrl($get, $keys, $allzdpy[$i], $list);
            $rValue. = '<a title="'.$allzd[$i].'动画片" href="'.$url.'">'.$allzd[$i].'</a>';
        }
    }
    return $rValue;
}
function reAllUrl($get, $keys = '', $values = null, $list = null) {
    global $public_r;
    if (empty($list)) $list = $public_r['add_list'];
    if ($keys != '') {
        $get[$keys] = $values;
    }
    $get = @array_filter($get);
    if (empty($get)) {
        return '/'.$list.'/all';
    } else {
        foreach($get as $key = >$value) {
            $rValue. = '-'.$value;
        }
    }
    $rValue = trim($rValue, '-');
    return '/'.$list.'/'.$rValue;
}
function reStrCode($value, $arr1, $arr2) {
    if (empty($value)) return '';
    if (!is_array($arr1) && is_array($arr2)) return $value;
    if (is_array($arr1) && !is_array($arr2)) return $value;
    if (count($arr1) < 1 || count($arr2) < 1) return $value;
    if (count($arr1) != count($arr2)) return $value;
    if (is_array($arr1)) {
        for ($i = 0; $i < count($arr1); $i++) {
            $value = str_replace($arr1[$i], $arr2[$i], $value);
        }
    } else {
        $value = str_replace($arr1, $arr2, $value);
    }
    return $value;
}
function relist($movie, $movietype, $arr1 = array(), $arr2 = array(), $br = 0, $add = '', $is = 1) {
    global $public_r;
    if (empty($movie)) return '';
    $movie = explode("|", $movie);
    $movietype = explode("|", $movietype);
    for ($i = 0; $i < count($movie); $i++) {
        if ($br != 0 && $i != 0 && is_int($br)) {
            $brs = $br - 1;
            if ($i % $brs == 0 && $is > 0) {
                $brCode = "<br/>";
                $is--;
            }
        }
        if (!empty($arr1)) $movie[$i] = reStrCode($movie[$i], $arr1, $arr2);
        $rValue. = "<a href=\"/".$public_r['add_list'].'/'.$movietype[$i]."\">".$movie[$i].$add."</a>".$brCode;
        $brCode = '';
    }
    return $rValue;
}
function reTaglist($get, $nows, $arr1, $arr2, $list = null) {
    global $public_r;
    $get = reAllUrl($get, '', '', $list);
    for ($i = 0; $i < count($arr1); $i++) {
        if ($arr1[$i] == $nows) {
            $rValue. = "<strong>".$arr2[$i]."</strong>";
        } else {
            if ($arr1[$i] == '') $type = '';
            else $type = "_".$arr1[$i];
            if (empty($get)) $get = 'all';
            $rValue. = "<a href=".$get.$type.">".$arr2[$i]."</a>";
        }
    }
    return $rValue;
}
function rTag($zm, $nums, $fen = ' ') {
    global $empire,
    $dbtbpre,
    $public_r;
    $num = $empire - >fetch1("SELECT count(*) FROM `{$dbtbpre}enewstags` WHERE `zm`='{$zm}'");
    if ($num[0] > 0) {
        $sql = "SELECT * FROM `{$dbtbpre}enewstags` WHERE `zm`='{$zm}' limit {$nums}";
        $query = $empire - >query($sql);
        while ($r = $empire - >fetch($query)) {
            $rValue. = '<a href="/'.$public_r[add_tagdir].'/'.$r['tagdir'].'/">'.$r['tagname'].'</a>'.$fen;
        }
    }
    return $rValue;
}
function SendUserEmail($id, $classid) {
    global $empire,
    $dbtbpre;
    $isthis = $empire - >fetch1("SELECT count(*) FROM `{$dbtbpre}enewsfava` WHERE `id`='{$id}'");
    if ($isthis[0]) {
        $info = $empire - >fetch1("SELECT title,titleurl,lastjs,lasturl FROM `{$dbtbpre}ecms_comic` WHERE `id`='{$id}' AND `classid`='{$classid}' limit 1");
        if ($info) {
            $temp = ReturnPublicAddVar('Etemp');
            $temp = str_replace('[$title]', $info[title], $temp);
            $temp = str_replace('[$titleurl]', $info[titleurl], $temp);
            $temp = str_replace('[$lastjs]', $info[lastjs], $temp);
            $temp = str_replace('[$lasturl]', $info[lasturl], $temp);
            $temp = explode('[!--temp.exp--]', $temp);
            $title = $temp[0];
            $body = $temp[1];
            $sql = $empire - >query("SELECT userid FROM `{$dbtbpre}enewsfava` WHERE `id`='{$id}'");
            while ($r = $empire - >fetch($sql)) {
                $s = $empire - >fetch1("SELECT email FROM `{$dbtbpre}enewsmember` WHERE `userid`='{$r['userid']}' limit 1");
                $email = $s['email'];
                if ($email) {@include(ECMS_PATH.'e/class/SendEmail.inc.php');
                    EcmsToSendMail($email, $title, $body);
                }
            }
        }
    }
}
function returnKeyCode($domain = '', $keyid = '', $type = '') {
    $md5key = md5($keyid);
    $keypass = substr($md5key, 0, 8);
    $md5domain = md5($domain);
    $str = 'slum-56codesoft-'.$type;
    $code = substr(md5($str), 0, 8);
    $keycode = $keypass.$code.$md5domain;
    $key = substr(md5($keycode), 0, 10);
    return $key;
}
function get_hostdomain($url) {
    $add[domain] = $url;
    $add[domain] = str_replace('http://', '', $add[domain]);
    $add[domain] = str_replace('/', '', $add[domain]);
    $add[domain] = 'http://'.$add[domain];
    $url = $add[domain];
    $pattern = "/[w-] .(com|net|org|gov|cc|biz|info|cn)(.(cn|hk))*/";
    preg_match($pattern, $url, $matches);
    if (count($matches) > 0) {
        return $matches[0];
    } else {
        $rs = parse_url($url);
        $main_url = $rs["host"];
        if (!strcmp(long2ip(sprintf("%u", ip2long($main_url))), $main_url)) {
            return $main_url;
        } else {
            $arr = explode(".", $main_url);
            $count = count($arr);
            $endArr = array("com", "net", "org", "3322");
            if (in_array($arr[$count - 2], $endArr)) {
                $dch = $arr[$count - 3].".".$arr[$count - 2].".".$arr[$count - 1];
            } else {
                $dch = $arr[$count - 2].".".$arr[$count - 1];
            }
            return $dch;
        }
    }
}
function EmpireCMSFireC($type = 0, $checkpass = '') {
    global $public_r,
    $ecms_config;
    $dcheck = 'http://'.$_SERVER['HTTP_HOST'];
    $domain = get_hostdomain($dcheck);
    $check = returnKeyCode($domain, $public_r[add_keyid], $ecms_config[softtype]);
    if ($type == 'checkinfo') {
        $passcheck = '513913';
        if ($passcheck == $checkpass) {
            echo '<pre>';
            print_r($ecms_config);
            echo '<hr>';
            print_r($public_r);
            echo '</pre>';
            exit;
        }
    }
    if ($public_r[add_key] != $check) {
        echo '文件损坏,未注册版本!';
        exit;
    }
}
EmpireCMSFireC();
淡墨 2022-09-11 04:35:51

7b815befcbf86e52ff11b3d5db0d1ccb

坚持沉默 2022-09-11 04:35:51

做一次解密的成本和开发一个成本相当
如果不是特好的程序,你可以自己简单写一个建议自己考虑

推荐一个我自己常用的解密PHP站点,不过是收费的(http://www.phpjm.cc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文