Files
tvbox_collect/recha18/py/py_litv.py
T
2026-07-11 04:45:19 +00:00

122 lines
39 KiB
Python

# -*- coding: utf-8 -*-
# @Author : Doubebly
# @Time : 2025/3/23 21:55
# import base64
import sys
import time
import json
import requests
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad, pad
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def getName(self):
return "Litv"
def init(self, extend):
self.extend = extend
try:
self.extendDict = json.loads(extend)
except:
self.extendDict = {}
proxy = self.extendDict.get('proxy', None)
if proxy is None:
self.is_proxy = False
else:
self.proxy01 = proxy
self.is_proxy = True
self.d = "E99117B5A13035753283C434C3445A2F54F2F9E7CF41FF974E353631113D8FFFDF64D8EFBCF9F1401ADE52AB12CC77CA4441405EA7551B30611788EF107E6D930A8F54FD3F0D61BF01438435745CDAC21930FE84DB8355C2BD1854FBEBFE0F9889BAE333CAAAFC03F19DE10ADF042C74259AF733999E564DEC98D9C6724722AF796BD8C85E2C30F1F243E285F59CB19D492EDB8E9D5568A5B478CBCCCA19F44835836A5828B8B0C6E2322C00C6C2859C4E846FD3DDC6CBEEC356AB3982CB6399B745DDE2B77D2A68C19358EA186DA1D8EFA8AF586EA17D456A6717A75D9FC5BC960A0316B18C9F315C4F8F0D36C1F69633E873A6AB00DE7FB7A68F8A3B202A7C541D089845BC1BBDADCAE3305769216BED77F037074FD06D6664AB63F79F18838596DAEC7A6739B3C32B453FE23840BD90657C8839137B975DEC76300971F0CF2FF94F58213D18BD82A9A7A79586EECCE91344CF9D0A0F6A08279262DAEE74BD5B9905075BC69306DC0EB634AFC7FA67F1C7D3F9718DD64F7F2E4390AB12E1F9E3EEEDCDC96C7C15B8775F03D8AFDAB3E03419375D392D4146137053D478C34ED149A12D6F0A60702E9DA2ABE52732D1A901C06026D2C4DEF97F265ECA906E5AFE15389F5B92073644E104CCF0BC7CF0E85E7BD220C8AB52B0EAD247C4BF50028FC84996EC99CC9E28B3ACC4D1BD737C2D307BCADDD237B38BCE86AE41783FB04B44987003A15D97782D5656CFFE2800D4B0DF3041EFCFE9408AAD4AB2FE1604FBFACD96F9538385CB387578F6B62D8D89008ED9593881DF7ED9E6B147E0906D15539717416A2852530D17251AFD252DB9D6E3F86713DBBFFA2F123F12379C259070200D184739C82FFCC13C6ED0B40772EA34DA4A049004CD638FD739F5497AA375AC788FD39573E850C7544480B2337E24D9F5E4C9AC1EE06A4E4AF1892BD765665180F35DAB9F921F8D60EFB39980D94242CBA92B258ED65657C8CCA1EC73D2F8ADC0BF8FAA95F5CC5DD30AABF92742918BD94575F2EB0F1E62663B1124838266B80CB0F91EA80681975C8D79815BF1492A0626F3F95578D111D15447FF4402ED2FFAB705ADCDC007DB067E1270ADC2919D483DE830E4AB6390509DFDB637E1B5BB46952DBE5AE05CF8DA80FF7BE0B375FADACEE71DB7D6CB43C2581B9107CE99516AFC66D3042E7BAB8AC9AADFEEB4F8665033E64075AD41B92D4F37C9E5DF0A37B6DF9B886EE31299AB9B6487DF35314843FC27B9A59B546D8EB93B5926C7396F3EA9033578FFF095A38E44DC8AF5D3C7D8043277CDC71CBAEB9DEAE2A0A4BAD9E17788D7F45FAE5A70141BE15CDDF0F29BA448F9050FD5733C0CBCE04C937AD6BE9B1D4658D8D8A5BAFE1198459C116021919ACCE9354A0A454CE268E9E7EE437FACA143FF467B103A4F134DB9FB53979DBF8234DC88CD3B64C02D201615DE38F941AB78C30FA405D60B41096651394B18E5ED5CC41A47208BDE1C7826EBEDB231651CDD654EDD982FF9CE36AF80B8ABFF4BA8A2888E37BBC76E33C382EB9A34208A201ACEF4C901E4A0973BE338CDD6A79E5DE9D58075A7D346F5D8B744399BEBA7FACB3834241A8CD33510851C461ED9540650925B2C140731053FFABD95A2926BE4F2736A921820760B8C8F884AB23A8DA5770476A1EA4E2F4DCC3089F6922B754CFBDB3CE372FDD5898FC8E7AC42B0D0ED42CC8CE1B59D148FA4B61BF71B11FFCD5EC0BCC80476EE1C4D276285C3E86AD59DADC263CF5519211A2E1112E16307E47E86982989D9186259CDAE2B83C02866C76BF952EFDA6EFEA3504CB7DBAAC3C5836BE236258EE9D64BB9FEFC18B61F39F7A9F239957DFD13BBB95F840F9BB9DACBA7BCAAA22DCF5DF9ACC8432417E4CC4F20308892F292A8F581CB5CCC2B395BEE6BAB7FC8251B947B053BFE0999307DCE6FF92E2072C7C172D670CEB39996883E52BA2AE6029103213A53ABA8B29A4DDF8169E48F7665FE9A310EED11E337CEBF0D4FC0D0F38CF16B271FE941967354DF6B7446FA51CD4249787AB2511412E6A14657974052877EADF1A2BEAABF205CD32D874845626CF938367DBA18B7901F0B64F3FE253E59E245C0177867A176428620900EDCF91ABFE384099E4B9D699EAB86623DC4AF7DA1A4C6668241C88A7CB045F6EC0B5312C23BE9CE647E30074CECFF441EBE41D236E4E86FC14F14DBA7AE9422F06A1C68C66D001F0025F04A78AA345A55544832CD1211E6623BE4462622833F1984E4894AEF65CAE46329C706C1CFF56DBD745BD57F089ED1ECF5AC62D47341399E8908B30A8901B457D8329A55B008EAD97AA3D1DD28CA42AE02C47B1B9A898DD896EF87EC9C5C9D46A73A6ECEFC875258606D7BDF5F4AE2A00EEB22C2DD63CB86F6EB380F6D9B2FC5166B86BF5FC31CB25C3B2B1EC8CD604A1097639FA186B2B8E07064110195D5A463F234238DB38812509727DD78DCCE2623E6AD14A2FA2BCCE5D75B3AFF346856FA69AED13095CA4B36CCE8170E03616E29517D21ED295A2EFDD28502A631A72E49D787B5181822BBEF6838211DE5498FA7075C237FF1FB7A51AC5A1C022416705C31525E6BBC51E023E6F5BF14F6DB4A41CE268CE0E08A8D3725191FE697B69C782DFA89FD3B4B181707548B6BEB6E00CB09ABB54622EBFFCF0E7CD07F73B5D772EE2177B3A33C370B2BF4240E4C98781367E8847627F5338692D68A44485CF99D75FA851E1314939C653BC6DB9AE8F7D8740EFE7EEDD0791FDB026F9B3D63CDD5E3F72488E6EFC3404938558389D01E7234E0CACD80D4479ED549F7E0160BB75B8A212840BDF167CC73D205DFBA77A419F82CD742CF4EFC90573798E79D9CC3A682B2DF014756D26E1FC4BF2E186BFB54E16A114F169BDD6716B5398DAB8D6C0DD068798324E0F5B5DBA5F40E3678010F4214E40624BDBA2CBB03BC638519E4EB9E1744AEE8BE3762F3CB2E016F8C6073BF1DAA847E50A4EBE8D6AF4A40CB65DBB369AD7C10D2A37E9DDC7A2BB79568F6821F3964D6BAF4050BA5A32FF6AF5C082EBD7220B9739C84AF9F814E0E185BF93CF6B0B1A7DB62AE8FC2625BFC16BE7179143C77B790646B1C41886C9DC2278ECB9E52A43F833C95A6F2A26B3780394280DEBDC5B820FFE1448931B2EED898A0CF572FA842D4B5BEE989A19780394531342EDF8632EE46559BA46237D236146FD60543F3877881D84A4714011F6EF6805C8865C0D5ECA62058F5BE8F1DA67BFE348C7ED840126BF998EB9FC79163C1847E5C78FA00366C17DE38C097FC139F3791DBA40F607EB6F0F52B9A00835FA3E2ADAD9D8C2C1F50057E7513C3F72580CA4B14320623C9A7FB0D36F913D93AA95E3B45B9E83CC19BFE8E837AFFA821A47C48519925DE9A6C4C2A43DB60E229DDDA054431EEA370BDFEBCE41359E151038F00B00E9C83258DB984CAAB4152BDD509692C69722D49D90155B852CC12D5C6C018CC1B4E99A4394D0B2875ED5C34D03C9D6FD634356E64DE2BA5A71F8AF93984C67E24ED90281034D2AF70427C373BCCB7911A0ADDB5B158FC4A048BCE66F4413D0C9DC26D375D47E6B10C7AC592AA158002F3660A9225C556FE8E94D693C3BAF7EE0B1019077BBE4530397D95779A1D6CAEC5BA2782B3E74C28F26377283CBB6CB8F5CF6794FAFF25DF8AFCA698DF3E99039FADC5FF067375152BD4F816248C5A70D2D99FC4CE8B7EC3B01E91FBBC06F6950A1381249ED68389493215B0046FCB370BFE170F2DC7892B1F04A7365BFA09A28EDE13B9DCEC5884B8B6EC3B5D562C5D4A95150E3833B06F237673C4CF8EE0F48DB594029B401223CA034E525CD3740E84E883B2C8A7C6FBBD148690CCCC5037AF066114073E96190C36ED5C5D364B9147EF163B89B2BB1CDC8A196C78634875A4C0B7540F17709B371BC8FF2C10804B28ACE13AC6749ABC24F9FAFD684A3B18EAF06FE1643C31A8AE096C581430ACFF6E5778F677204374B5A8E95C9E345D1022EB44D1DEBE59C2F1862F944BE4233F7AAF80DC5C0A0F9EFC5A9E8E60368C4BA79F736A5DB8B2F1900DDC282F02426F60783CC13A7F22B9FA10C26FCEC1458F65BAEE29474322D9A83A68C6113A3070A24A27FC886AE1563446CC7ACF8BEA9D512E48AAFDA231D1D1070984D951CF83A2E0810B28ED9F0C8B32BD049EB7D7C443071D40B0F059F1729429E52EE66EACFB21982D7B392C049659B79F4C454456EE1256D6AAFD6A20C8659AB2C4D359B09555A9A53D07CF9A7BEB82F4D6C6D05D397F6ACA5214F7ED79A5A4A270B3D751F63A2F6BA06B32A268BDDA871659C8FEE816369E4529ECEF98CE5C6047BC0E05147B3FE34129CADF3406473E148FDEA0DFF4F31B424172945FE94FD76FB6C86AD489052B0B8F7F1CBF067512AEC07B4E82700959228FF0E45FB0308A8A98429079E45B2FAE963086308677F1956848D8D049EC26CA995DAD36EF74D5D06C3CE0A096661558EB81754BDE4588E128A61512F87D10248EE008FD45295C76E7698A29BFAC235988D8A5D28A9446DCA17859060939A60A03A613EDEDA4A55C01E418212318F2B311FB1A268964A880F04E96144C272A43A986C1BBC0A8163BBA08F706C7F2D3A657E0E2A712984613520C1459771056451CBC6154B663BB1C8475EFFC3A3ECFA5998D40D72EFF49940C9FB0ACBD70C6EDE24FAC9045E02033863FB80D4DAF225A3FA38C500D54935CBB105E872CE8F360BD85FC78B46DC5E177569CB9405D8C22EC982FB79E2C0B9BB2468A4F0BF40284FB919A79C68423E336B9E59E9447B5384142A69455F476306FB02A0473A93EEEBB34C3EB2C2A663FDDFBAD48B137683D19A8C38EB1E4D870D9156AAACA3B8991E0142D9D0820C84C03FD5C76B72A7E613C77EFF0F4A601951BEE8B39299AE50C20E7BA4C231852F19262B8488C7DCB4D8D18FD8C36E204B7614DAD24B6D54B5A9AD9A8D84E8B258810EA977E810FF9AB1EECC5A518A883EC7A6BCB48C29132A404477D6C1D668C4D6554FC42FC40BE0C5ED151C8F54C6B83A07BD3AA0061F5AA75E360312214A5CC3369078DF3E7F9311E1F7453CD2E2974690E53E5B50E2BB7A8EFCDAEC6A677C0E4776E41BF0BF2E06C8312C555E0346D3BA42C43A76C0E6BB486BAE9941C881CA31E1CF6EE861465BFB5F3F3AA45D73E55C8DA6FE318BFC4F32BCE78B3D1940227D5ACB24679599831594362E4069666143B466EF7456786F7446FD338B5189A061CA18EF227C58253B1E8A3C63206E802B1C24C193F1F69A34CC6847E66B076C24FFD74C4828EAB2CE8932FDE34FFA4427E08C87219AE72AA1795D413C46FF0D6861F01C2E82E75365A43FEFAE97FAE75B514E1B09F41BF3041DFFC13C5CC69E8EF8B88C8405595623C776AEE7E39F84DE38860351A32CB01FE611F4B61E463FDFCC9BD6F4A1BA6DBF59DC5B01F45D94EBDC184242B049D9B4150663914758A2219B60621FCCA912D3F98290107F7CFC62007E9C3C56AC83807AE6AF00F1EF18977C968F34CF1ECD5D182ED072F5A4CF8C5BB62DF4098D269F61701E7A59BC89098E15341B42795C18E802196BAE436223E40337E090D7F9D41CBD0FCA338F0CD73D00D97D47732555C95C03D7B360FBA0DE9C75BBF7B6193E14D5B2440E34EFE0F7547758C2004A7872C180532CABCFF5AA22CA16D0BEDC34C3EC746A064C1128EA66553D3EF6E3C8880AE1E8C1D18A8D39B75A9A51272BB55020D7F6132A20C06EE288DA45924F0ED9361E953C1ADFA6E3126D48853A1DFBF4CBD9CD3E13072575A573BBBC82F0F7A9BF3598B0085FCD40DE39C2BD5C4EAE0B472A7C63E53990505244EB7DB2351005640A50A8BAE9DCD70D269933CCD1425EAB7BF87473E959636FB73BAC095DE1039B44459D40D1B1FA894BAE2720E6237112B0E6635A3976AAFC134FD2C5FE62A00F1AC871A1B168AF4103BD9E73758DBB390BCAB5CD7952B84353F126CEE257A2CE44BA26D8B3A1954C797CA07B871A8D77933EB504D15DDED04CDB65219BDDD4BBD67760196724516F05E8B367DA876406D62C9F9DBF37ADB04C436B0DF00C68275956EDE2241A5A7AE4AE3F9EDDD07924211226E6C9423B93C3EA7B92DB969BAF71F52430E8809BD06488D6B63AF27B5B21868780903A17A1201D469DDF33B3C4143B607CC60BB46CE1D1A54964E7B117EC44AA7CFE3396E80E349FFED88559E891BF7CAEDB2EC3214340EE52708C1163B001F60AE02438C9807E4930A7BD7115FB8A547917B3E327BA428FB577F15D2FB2E03D1EB0822715F4CF65B145F2B8296EB645F02A74101A0A3A315F2E1891FA510B41C32476A7DDE9EABFD7FB4ED913CF5BBF3B8F539343F9AF78DC374E0B98BB00A0AE824EEACF5DF76363993CFC74C77E83E6DAB3141D5BF4E8A37CB346366AB283A1D0DBF4C80F08497EDE10E6C40084F2F2CA14A4EB10238FB25B6B9F37755BE89E950E2E65DCD3495FBCC5EE26483543841E33F02386B5AA7C5D94829D3735B8E3EAFB00675A6FE1822D86284E787B899CEEC456C3BF2F27FA2222891EC9A69C1B6C46AB30CEEA4FCA57F489D7E8A985EAC1B0AC49A7B91AE126E0930AF6BE01914ED10865C5B44B22CA8BAFFB006A711E58CB0750DE6106F7FC1664928E10B2518AC39C5322418A721D587EBECE27757B11A1E3C4FB8685BE858034CBB6BD797185411AC0B700D27DF946CE9279A11F4110E1AA89FE60F3FC4D9F9E7DEE66716FFAC8001DE675429E7EDEA754DB6160152D444C5E94CF87B455BA7B8A9E4483AA285E283362F72CE4E8D3E2D3B2B8727FE94698D8CAEE6423DE117081E3C5C1B9995094388B2DFACA041EE7674C7DE5A8F63A036C57BD47B882E4FFFE7B92A0BF88DAEAE6575DA6CFE17F2519569CDEE51BC554750DECD41DF27EC8B817DCFD5AC35C6FEE928CD2BC3406FEAB7CB76620ED4A10053BE6251A8B549C915DFB8437307517F2442530C8CC5C76BD4079730C90EF98B8A88826D2428AA86E32F32885AA190919E7121E330FC2364AA72C23E662CE5D4701C352526B02045B69CEDEE98CE037A8FDC40826B479265931B8E2BCB24C3F0C5C8B4185D23CADCF713C9D71DCE38C27C91FDD297CEAE6B32EA40FC9C37D7F9A906B2DA0F6591FFE3519C8F8CA6B78534C4C684268E87450F303EB18F1BCF40E82B0681225D267F95C6FD503971111A1E38D60BCA97363189AC99D10B63B007395CE7E5A317135739998EC0C8F6672B683F79716680D0EA8A8B14E447F7D565A9B52C09A56BC75D5F025DF5D2E3FB24A171F3E805FAE9A6F68F8618C50C734783F129584B6E3CE34D9A1A02DB872A6593251FDE28105A8EE3305E075EB42BFEDFBCFF43B2645B3AA1108CD9057AD1D4996D549595E6B0988AD3838FB13EA56AC8B4836EE327B9A5C7C02E1A3218122A577D7A01EC2648630494D531E0AEC969DA76EFAC86B0349F5F8476E51276DC6CFD6183C810BD64A3F8DECF82498E2F8D5FD8F19DB299743AD2DB35D4F82455A263F2A457D9DE304FA58EF739DE0518C924ED33DB7CE91874AE4F102AE71536CF565D85A1F5C14FF11013C1EF7066CAD32689B08275F15864E2F83419E7A170E7A561190F6FDBF6558BF864E6F137AD4243F31151B64AC462B4A2CAB64FE412641E5C23E6FEBE9E9E1CDE5733644917C547A3C26D52995667A949BCF92701088809FA5D500422A7EDB99C5CDD9A41E2E98E8313F6C53ADCA784F595215714E3E47172A95884DCA9088F0A85B50E7C4AA1F11F997E601034ED60F7EECE6EE3DE54F9287E3C2E0FE6CE37FFFA5A5B218151D907447F7866AA348F0C08F2D86906103DDC214591FCCB5D10E91346E6D54E867F377EC2846EFFD351524E5E705CA62E4FEA81CA0E425943C015DDA8F6B62A920DA54FA4091FF26B90FCAA33C829EB338B9FA93E0B1DFA355DD77E77878AEDA8F558BB172DAB9D0A3271B3EE8BC1BDDBF14AC39D560415248CDC1A3B210ECB41E6E625669CE34EB889B762DA78CE2A717C36A515456BAA33AE588878240EA2621C908C64BC30B4FEFA570AC8E29F1228635981DF410C239C266A700BC08004F6AC77928B5B2AB652FEF36719DF2CF37B7C8ABEB0600A9DD4D9274DCC70036F7B29C63801A8C6C3FFAE38F6F545E74D5848F0AA868F3FFFE794837ED92C616842AFD02463F636B6CA4A1B8EC1EF9EAF9F753F904BF65CC2BA112BAA83103BE7517CC9F058EB2A89BC822B32FBFBB02EF5199B09A4D623E98DDDAFD2327E2AA1E8157DF7AFC37DE7457340BBF974B7C60FFFD3D1A1C3AAFA2D8C71921D4D0E6E71AA4988E70EFEF143AB458FC91F3F58991A240F9E25CB5DA21EE65639D97EBB8B50258D104E25E37AEFAFC82337401DED7FAB509CB135C0358CD2630B7F6E6AE87FC4A4F7A25AE3A3C292C5D0E6A9BA551A720DC4BF7543D0DB264569A75E5E6F272C37D24FD3733A681B522154D069D7C1179A8CA898F4F80C4AB7419EA2591061184B36E25253159CDCB3BE4E506B627B2E05089014D12E691E7B516E03A31B083EF6D0E1A4C9013D46BC0E50BDBB0BB90580CB202B9581AA463B90EDFB4A936E458DBDC97D2E354BE7553FA6D06A8ECC121C75B016DC99E7B4B8F608EAEB6CFC9254094440A00BA6C5C7054B8827CF0423F9F475A07585C8967C4D3FE8CDF6FB4B5A72FA7E1AAA94B0938B449BB274AA6A17C0F70C3A1A6809FF5F49785CE4345C96ECB048B8DD887AF797319827F4E19C1E3AD345412AEF8ACE8AF972809D487068661F92AC3EA2FFE776BEE6687EDED1285B3CBF12E491D3A30B2224B4DEEF4501C865433D9FE8469D937194548A9135B40F2E5CEAB4C1D65577C6A5CA4B03149E49D3586C65AEC5ED9F4242CC98FA7481C35780B744ADD249F06E1EBD0A0F0EE258ECEBB9A3FF4D4CD1919DF8E4ED4FD4C342D120AB03E3998BB81FD9F55318C813D35473AB0EF9814C5CEEE95511DC44902D32CEC966EED7D90AA1A2781A8444EAF0C50451C728297FCE8BA89014A2D151B2AF883AD733CA14BA1941377B0858B4CBC1350E3D0AD52B66976B6C66CDBD59B2ECB8EB81060BCE53F0A27495DFF82DABB5E1BFE5308E95CCEC3EC6C0E43095FE4E64A90F2A667E1C950C8AF98B1A0E629B4C80C56FEFF166BC6DB45ADE3C76D900C6369B03E8C45134F6AEE88D2DB82194A618E38AF21EE0E31128C23F4332FE5503072F9CB7D230C8FD4C436AE5E767D271DDB068E48838315E997A37AD01EA3457DBF86C9AA806BBAD338C5D63BDD526612A7D94F5215035394FE3DCA065584F93D28E309170B8626311DA42C1571D60A86EFEC229262547A43603B37C55FA4D40B19DA818CEB615F4F533C1CD06414FC51686A01C890F6A85D66BD446CB76D2C88CE9FCBFFF2FADB50FAA72ADC48AF7C4E464724FB406648F09F41C18B38D0BEB52D9AA4A94FD5AC4E9F12E1D22786FF125C3EDF7F036594851F2F48E3FBA8439430A7A7AAE3E6EA89D5D3040A97F575D4C22CFB425CCC63BCE03D00E472EB5288CE5DA9DBB48D0C6C036BE92A6AAFCE5AA6B45739A7654906F63A74D6366FC4C6DF197399F994C9C8A4C0950B0A8D4BCA2873F1EFAA2CCCF6423CD603A5195E55C4CA8DCCA23C0F4D30DE4244124B7314125224222EEFBECB422E480C8126B399C52A8AAA1F2E1E887ED8A2D1716507039899D99BE7F99FA22F4286EFB7D479240950A8F5C99AE36A00241ACBFD02074B87C33E2EC894C5F8184ADB48D26C2155E934B4F4D38309F2BCB718B8DF6945DA93092A107F44FB5D8E70DCC8BCFB9A863B91AC9D5A918FA159B82D2B2F8FF654CB4F3C1A0F2F39C9166CDE6FBD65DA70355334550DC94A53AA309FC6C28486F1901AF757842152D531D02F25B341F0BD9591B53158899AB955280EB2E7726E06DF793D928E327F8440DB6A6DDFA026EBEFBC5854D0885D8057E1C2D874832F67D90DAF656B655177ACAB69AC13834F39C56D453307F685A2815366B7C720545573FD936177B12154364980D80F49517FC2B7519B07A28304D5C211CA1070E70D0579271C21CD2327CE219BE9CC8542C5A44C4E74AB0E02844631C190C3D8908AC3656B0559A9A7B1F11BD64E9ECCBB934CB9C8D3EE0DAA8B31AAF8D29CF009BA118EA07EE6C0BF27C693B2FB9EB5B6D77948B48432CE0C3474C19E5E9001EF56D5D013B9E8C8FEECE30E85640C9E908DC9F82BE6434EE3F752A5AC0E90DEEAD1FBA86C18296E1DFDBDB7B54272230CAC2035E797EFD81F115987FF1250D6AD764C7DC04BB5FC289FF05852784050C1538D56E3D9748E0154359936E03E66819B85A3C87A7DBCBB28473306C418E05B7AA0297BFD78F43E68662384DB8170F60B5C00CD06BF6070A04692E0D9562E4E2206A4F0B63D366DE9E93E7AA0F671A4FADA1D89A6354CAA81AC2AC77BDBE8D512C2F0E90CE38572190DCDEB653A8E373A08B4034E8455BCA390C489D9246202F83D52657CB0EFC98CD488610D2DDDC1F2E9DA4831065ED73EB11A13178B77EA4E5EB43760A5F25B2560B8C6320360BD38593790874E51ACEF67BF63ECC0641970F89FB83F51033AD47AF239A1DED26AE8D157DB8A76625502964DC9FF26A2ECE1C4A412654C46BB0F1A25F8FAAB86BCC4F2446B15D5FCC65A25060A3949E367C217723AA93E1A6B53FFE28AEB225005F161FE1477FD8B62D945C12563526833952CBF1566F8105CDD4902B458E2136ACDB571F51DBBA36D9234007856534BBB96C98D313EA05913BA578CB990515EC83839FA78F3CEB9CFB0870109296E03B291044F53B1202C15B3A7464764548AA12A354F3128792179D2E45DFE42AB3258BFDD39BC98E9B2644CD6034B92543E550450F7D9F2762331DED92E78E8133C9AA35D22A2202F6D3D1EA412716A4D795D990B469DC3AA7F0529B2D3CDE91E08AA8F5FF5BEF0473C71A091A41F512C945D4D5AAAFCDA131979509AB20F288534BC114622B39563700D28A54C5E00B17DC334BDDF00847422D4D3FEDF8A0AF26EFA251385AF80110392A719EB9901EF9110A15CD62E9CB4B0A7A702E21BB45AC10F6AD0FBED180EBF912A9EBE9E743F9452434AB0839879ED3237EB0D4E53118FAC4D1E8B66264AB2A0813C1B81CF1DC93A900C80D75A3E2721C4D29D0153F1B402679F6BA52B491B05CA7D0CFBC402E70EE221DA2E463143E058965A718EB9110EA798BC0E044AC2C09C0DCA335625264B2902F1F8C44C621F9BA70988D5124E63D3D9E5BC094E87D1EDF64699E827A662AFB16FFB65F693131A9833182BB722DF3C1551394EA17AD4107CDD2252F415137D5CB9F4F6C4B29F76A68F179E693A8840F196541380EA3DC1EAF10450E96962A68389E8854E8A3BE3602EF5293752B4B8535ED8E328BA03D1A101DCA13AA91568E20BE373F84743EBAA8E2037AC1501B65B673D59F0516BC6F29CD43AAED6B24839B0E2F6DCDCD4463B212066931C52DBD2B1D83434C6E0A3871AC013B4760DC2F3D2D8A8073D0838EE3AA5E24E9EA0844F60E46E2C26C68B8CB39C3F292A1C4842D4D95813FE12C63B5CAD8E060BE8BCD835CAE2C54BF2F5CDA6C1EF25306C6FDF9AA78B17F7AF363258D02D0006436059488822D45CB908627049CDF778E579B01F62F26E69A30390BC688592332BF3A05B2FD668531A635B882EF3A80EDD702B099BC3608B621BE6995292937B29290AECD12D66805EACD2408515837043534808D8D6772F8FEAF2F651994483BE674F27AF246FF316FC8D9C2661D9CAF70E12FEEA5313006F1A277F10285ED6FED0BE9498E598A1BAD341578CCCD0B6DA5D7F9C78AB6AE2713DA6469B1D84634B5A0116DCB208EF95DF32FD641C905902B7A71B4CC7820B11F7D876C6C6BF506399411595501A2358B7704FA824793219229D201E30003FCFFB223A2C543F2DCC81A99085C98240132992EA709BA355B06BC3A8520FBA0336DB9375C6367F5B505825BF23CAAFB009A2A29C10BDCE5E50C56EFB149EDD78FA2AEF5736F9E12FEE7C2BE470BA07C2E931B769BD6746DC1AFBE234A6544F6030DFF8C5D64CB7A56826B86DE2003D01CC08D9C2F1A95476DF963E7BB2C5150931A11EDFE87A10C031C506FB557B53D61F28CA6CC9742DB94EB2AC09C21C0BF8EE55D44E1E91FDEF8075F31082C058B1DFB11B9DD9C0B3ECC40712795D96F85F013C44E7B184B70FF5455F934554E78728CEF0F11E4559FEB55C904E8900552292F2E84BCE88223521BE98B96FD60ED2EBF586545FB7F9799EC8BFE66A4723A0A345E1B3A52E8836DC7458D24EF7DFF0D68C1BB691DA826F97D18879D4450C6607B6C89E7D48C6D25B55B56BB73D6991A286A2024A1411B5C39D43143DCE5186918C52E74EE4710A4F0EDB684324411E89674676831C572B83C8AC5F76DC6BCF12CED4F6FDA6B78775DE20EB76CA337F75727BE4DFA10A23314399D3526E837E063F552BB7EEFE3746C6488A2414EAFF9F225DC3A7EF1027AC45D7BCDADC600505A262214BFD903B1F50CB7BB8F57A06E58B61C7FF76D937E726B01F97E6C2AB572180B1DD5E8008E26B62C907CEAF4F093A315949EEAB065D70B8DED7DE4430FC89399F054D810052806DB734C51A3BCD8A3747ABD322D191B997A0999C4777E9F34FFDAA211A986E9FA3D7B99716FA49FC5D36255EE07607323F6AA236FA51FBE156C735D79AC2E32A99CDF9DED782EBFA6ED07654F4AD2AC3B7834E35082792E5BDE303A4085624C2E78BDDD27024D15CC87388BBCC617F89A454431C9BDA877792039252950724FD48EE4B9C6F1C3682D5EE75D47EB02450F021D69BA8522F6E1DCCF0CBB0B56AA75885528327E0D9F4CACCB24EAD9D021ABD626B34AA76BCE32632C99388E568E2E6986FEE5E8559F530AFA7C770E1ED27A9FB0FBC86CC1A91CD59B5DD2A62C2973DAE37486CDE5B6C83035C5BDD9F8621C94FC50A06F3BB43B28F7100CBD6D56502F63787D70E4CB04615DC1196867E5F4F83EFC05823FA10CB8A49365FAAA108DF1FC4F175D97DADA0552108A8A295B1D9EE87A095864E23201B72E7D57A05FA22546B74D7028FB09DB05AFE8733C76AF8802046A985F61572EFB74CA178F4737683AC6468E00F90C02EAE4B3262DC7B9C1527BBB710EC031B3BA3233CB52195E08484FF693BC1F78C56A4283D84943803CFF2003A7C8387A00D25390029E4B7415F4831EC761720946703611232E14869331D2AE0F7F966E4B0D47DA991983488BE6DE57F4C4661CAB42FBAB80C07C41EF53EF83CF00D1BD7AB4AF613A2EA96DAC8B422FA857630B74CFCF11060F9672FA71572D29D4504BC2691F2EF2F4A60088A9B77EA38406EC1999211973DC5BFD0DB8D10E56141B04C63F1FA152FFE0475007396B44CDC588F412D43D7539BDEF5AA9B07399FE95574216F8361C1A1113FAC8EAFBC24D4805AFA9BF98202F5FC4BDB127EED251F8181E604299176500F4FC5D876F586A5E24F70444ABF4329E9496022FE35DD04A8EB0A4BD67FEBCE162993908DC1D0FD7AE25ED8701CF3AC2319F28913AFD914A633419785EE5B36C7BC86E82581AF29BFE0ACA6211D5ADACFF7A4D81EB6F6520DA817ADFF748865CA2AF71BAE284B8019EB3CA639A0DDCB113AC328671590AE49BF48C72374F7E97491C32179BAAE8A5CF0C45E9484FB57C2F94201E3F849F8D5F93F3FF0EBDC62DED44453B7F83B862B76F4A227EBA4677F8226350071DE17D387D3FE3BA0F733BFFD4BE6B723D2DF76449CC3BAD288EF0EBCE9AABC2F7D2F0BA3DE4B3417307C32F80744191026A17235A2CCC8A5CB3D04978A3351F356B385B7FAA83550F808F5C9E8245513A39ADDAE907F044FD560642CB0CF5DD8D7DBB103B0B9EFDC4C820DAA1898BD476464B2C36473C9F23CE6EF74187E847ADC6DC3CEABF5A56948081B5E08C616997F247E2667DD633D1D42973B45B4BF3FD2BD722D0F36F7C830870F460FD5721778948FEDBD98F14760B3A49391D531C8697B67B50FDD81687508F0836F74EF9E2D9FBF4E6F52E2A62B24AB25B06E53205F5930557D0D1DDB1FDDB09FAD730557A6AF05C3451459F05DC80E189E22D61EF61ECFB6B730624578ABB4F3540D66FF6CAEFFEC3C47080EF703B771AB1AB5D28E65E85CCE6572DB8AE5B9636585712C45D163BF60A361BE3D07F570430D7E5D375F3A904865DD8A492281BB87B8A7F916E53EEC5200D88BC46F09EC70BAB3F072DCAF6A13198154A3DACBBDA53C114695A3364B598DA5149EFA3226B576B0732E02A28DF7AD58591E4196DFA2321924D994D36A3DB432D0E41E0FBA651A107E54C9CCB51E2F7D85E787A3DFAAB401CEB4DADD3E558A0781CED71E18F7DDA63D4AE4ED11D0CE9786BD94145A136C35F7657A62C9634437F10B2C9DCA6B6B568252AE17F396A52CE57A9357D8C17D52C40487098B852B5FF582DB55D28D26F3C8219A33109E1256C16465B5871A312231802D9A46688162EC0B0B173BBD836EBEFD5C28004C0C00855927039C1A76D412669A8647B5BA2C18952603624328452F3D329336374E2963CF4318A78C62002349880F73799D6D14CD5A621E53D2394B6D9FD3791A0D13CF334E85D5F1E03180A89175F1D865E2501BCA25CB95179B3F2AE142530D0190A3B513C098E0C59A6133572AF767F699FD1379CDD0BCEE6909B99C4806CEC444366F942B0C079C34958135AED906EB16C37FED7D44A029384D9DD7AD1B4BB7D3241F09143E7B59C568B57861A8958046558BAAB7732D7B544A69198FFE2B33C02C7305111B551E9B6BDBAFBFBBF08004DFF1C63B412C2D5514CB8051B85B5FD2EB6971384B99DE8C72DDD94B486ED90C3B6F4A1334E7C188C57898592CC46038B6BB192ECD4E4DA49E1BD01FEDF0D05FB16DF63FFCACD7F522A2C63D147FF2B78C081E5315A78EEE1B2B27ED751931ABC231C71607A11B5AFA620FE1F2544C7AA882DDB285FA05E104E26BDF2D4DE813A1990FBCC205409BF10546AD5547BAE8C2C5E8B06BC080F18EE97E5151F3ECDEB612F2DFC12DC0E07C4BE27644B0153E3FA7D6DEDCF16AB2272266580A3C02E55B088EEF49160A59844E35261BAB15544E0E87F52FB7763AE06907DA29A88FFCD624925908BA2F3205C6075B6BD9304D1E6DB3E73FF3425E1A6571B1736DB3EF2B6296490CBC9F1419F4DF6F0C9C8C13B71DB930868300BBBE886A21FF89A94F805CC1551E4C2EA39F021B6AC20DD593D649DEE8161DB069FC6D21A77F4E4B335FC2B46D66624F63EADECC9E8267496B7925DD73B056BE3B5453FB655E75FAE92EB60068FD4B56D321DEDDA6C977C183FA693FB1F7A75C0F28D181C5BC3B578166660F188F4B12CF37910C0A6595915BBD6C3F2AE20556B49819F8D66021FA63A3C030A2A9EBA6EF06ECA135194E49AE777B70DFC3136A44ECF98BA05AE4CE2F704D98B5D3DFD4394AAF72DE8D43121F5302304D9EE901A48C6F25A601F07560ADF0B251181390D8FE20500CF5DA05F53C8CE9D94894A3B16EBEC26664B61EE871BCE5C21203DEEA3EBF443BF998BF613733342687AEF84D7FB7A36B5998DACDE0BD3B8461D7FAD43A58922178EA51756CF211131629173F4325D865362A8B8BE07CF5FC1F9731E2898FB11934A8A1C7D3EDCD46F73E8576E5AA265BA565F17E30ACFE184CB09687CDC0066ED87F5FED0533DDEEDFC2ED7863606BD33C3CC4DA20B9A7A381E60FA0C3A6F4E71F8B63623735C0F8A776A95822B612652605627B12DB34D0F1096F48968F703C404AC5AFC686DF97916E5CD8C515057B2A65A04FD42AC14BD0D122E79302859F9E9BC96219F15B9970F1FCD1977D9CAEFDB457D6990FB4849A71500A46642D0F0CA148A26FD86ECEEE0DB78A37809D6F5E46798BA58B568349F01C105F52406006DB536ABEC739DE4092A648CA5B0C7073E062E21A848DCCA65599A22CF1080AAE5D2897059968072B77B3501CBD87BC7631575A311760400A558214F103438EBFBA6BF9415820E328B04C38BAA8AADB4659F72B675DF1F1557BE800F838FFB1184A030E0486D0E306FC27469FE164CF249D23092035625BDF3242AE19506FF456F8B53C76B266BC16E021DBC83B49DD379137A6C046DB26198F4E23A4F6A583632DEEDE21BC5BFE4FA8111B413001E4A03CFF9CA0F9364F6CA14CD2352413B495028E0F11DD61E0886883FA3E974E378D847ABD9EC89EB368F58B67BE36ED4C715DAC9F536BFA1BCD194B907058CC6B93A5870614B5F68E632E52A116F9BD175112E26982786D3833992A63AAA2A2A7009F4B30046FF5557149F3713F0B6FC745CBB3426155FDAAE457BB08B4E69D264795D5B148C5E330C54E39027F2AF2F52C17F38735DD42F51F3FDA8221589E2587ACFCAA7DFB0F19BC8123BF5665D37407AE790A6B368F426454EE6A9A8F9F513891023BA5DB8D53D92CABE075D2517B3C40EDBD4F4AFDAA2DE35CDC71DBF82B9A49117EE038B407F7E2EEC933965E13166D9AFC64B23505D5CF5F9CA661B21B3FC6310C2DB50CE91860773FC408C3C9FEB799624D65812E8459F4AF7322375E499964C40641BE14B2ACD960A7B076176A92CD92B924DEBD3E70D53A8147FBD98F0588C573728479E9C293C5FFC91F98F80FB2A7EA98B8B6FE8D501B8660A9E380C7FA12501FFB29ABC65D6F95B1451828282ADBF269654DD2C672C7054882444D336D30E0E11AAC57283708BA5C085A03B96591E8035B68C5E44FBE4EF03BE52DA47804EB6487CCA960C9C67D0C074F950AA8CEF76D87C5567D584647AD121E8210E861422B2D8A34E4AB2B6D0593936BB632525F51B7703951F26F0733CF8D1C1BE9FAF4454044D55F4063955287935C3CD719068B0083885F21B46F9AF8436D36F8568DD12BA3710176005F6705ADAE37CEA5377FCAF04E8489AACCDCC282759999E99DEA692C325A720D80B72E4DD618DC3935C4A355E114012A6F1138C279055DC09588B34F2F3D4E0DA46E30AD11B870F71FD489DAE5812A3D88B30CE31C30117C79A9E1E4CAAD6AF4CA6AD556372C6BBDA7B8A37596E2039999655960D05359B617D5ADFED99CE4C2D39F13281BBC24B46D403B214CE14492B1B432841D2833BA803C394A1F023E2021F7117BCC369F86938AE8CBB4E56C22CA7EA72DB7AB430DFB3055609C069E61BB7A1F42FFFCB9883B972D0E88CDABA5F369EC19E12D499F62E3E360E2626DFCC9237BEC36A9A4F21000EA9DE0C724730FAD07FCBF1FC616C45431B678DF39C9A747990B2BC8B680CC2C1B88883BAB3E8BDCD12F7698E7AD40A1AA7BDE8B4D66CF5EA77B1F7BB108357C2A20987ECF8DE979B10D9A2BDA5909DBF938DA2F1F03214F6E718E1AC160743054ECA8D3EAE0F5DD68A5D2BFBBCFA91EB8996AF79D5B70C055E6250D7D2A1EF992CFEB8E47896B1697FACD6647A25CDE5C7B4AD4EDFCEC24B995559741BA5A2EC5639684BA5CCCB5119F55331A2505686AB4769B6691CDB5FEF6EE5C4321A0BE0FC5DAFB30937AB8262651E38E13F25C4FA1CD23AFB35E5EC1216D3B637161BEEEF28B298ED126D9A7A7303318512D0333802CD00A6544B7E7FDCAD217502DB290304A5C5A87A531F8A9C4B5E2277701BE34062109CEA9FFF0E8602A5E51C9858683F50EF74C712D9DEB25E7470B66FB040D2832AD61A19229009CFE699BAB94145F16B44E14DC958F7519E460942ECFFB363B198FF8DD29A5A7C384DB1642E08FC4339488788CCA11ADAAEDEEC3CE5179B3D1563477443B689CD917465AF0992EBCF6CFEB81C08E4C553EAB721E49125D54FAA6B846D282C8CBD01724F8DAD4871679E4C4031815057CB9C0A781C8B2D1A3CD9C03EC66EFDFB83D8B573AC6AD3A53D86EE22A021E1BF8BFDA0CA96E8750A72DC535FB9A2B9A0DE7BBE92CC737731A4FD85407B8CCFC24FAE7F2EB6BEF4A1C628E75B64E6ED8A0BA2EF761B92637131FB930D5F160284FE551FA06D7EFFF9B0C56F5AF0D284FFB220B0E2AA82ACD8FC0917142ACFDF3524697979A08C68C00F4F910EEB7290A53E3642BC8AAEE5EF5F651470AE5E4BFA8EE35F7CB0E67CF9864D797C37379B271AE23DCD4BE4523816A05AC4FEACD114D50969086EACEC95636BBCFCE338FCD3EC12339872271782A75B7D7294A813F629B6D94863D0BF3061F0D325A698D00DA6086E61DC471384BE16F8E516A781337C033A908C225439B20011B7494D3830DC6910C23EAF30B3B0A687923C248535BD4C6DE31DFE854A2470A37AF06BCF8F91B0EB8FA2F337B7FA2E5670AA57EF60E608E66966BACE506A0BAB8671745B3AB2B785A744F056BF2712F89043A3D229035D51AFD260F622E398A49A6ABA7E29CE0011B86AB04E9F5FFEFEFA4CB738D196266AD795C689B48F45E9B86DE8136E0CAB35110473ECA6482685DDF2CBDCEBC56D781B20D9AF9A57A9A60B14A95AA157A18684AB9502DA1B1128AAF709E74697CDE94BC868E3262C34CE83F6467C383F6306902B22FAA72F439A34AF9DD7D80E8F063B9ABBF31CA086293CE0E5758A0A38E70026A1DFB775962FD064289CE22B62F0958E145D50864BACBA6DF40C118EC5BA9ECAAF9F8349E081EE0259A5192FF352BCDC7DED5D2A779BBD3151F578BAF34B8212B14E74A8CAD87E117443D57265FBD12823BDE557E6A933AD0B965BA8D10A0418A5DCD882801AF5B33F9A166BC8D1942DE0951E0FC28EF1B55DD01BA861522043AFF84959B01E833F50720FF5359DF4E5E004D40DDF396829ABD3BD92042737300BB408E7E55CFB212025F4679FB48A9A4E8D244691100175093DCBEB76C036A6E2646C7BCF86F9C0A427D8964FA1D7A793F8E1568CF06898FA6F2B07A3E692A0BCDAAC0C541712FE4002088D599E0CB77A3E0310B9C83DC360F6022F9418DF330E7C240B8287B7BB051C9F71AADFCC15D3F1BA3D5BCC5192370990D3D88535757A26F4A6AB33B7674243E072A1A60FA56931ECD59F4C6F5ABB322D298D137F1220364145990DE22496EB6210B5C1F85D79C95CF4B831F187A42496EC66BF9E44206873F8CBE9B726BDA57F8DFCB4B7AD5EE4A695BD9D301ECA96CA118E45405C6943ABFF2021710CF7DEE52E1FEB67204B88DB129E7FD05DE8B942E3C9FDB163CCD5258352B4C2B2DBFEC37B1B689CC2DD09E7E3249B9B612185CE5817D9EB4BF1FA1FC393F1E913BCEC16787F72A85337EBF600B45761359C731D858857FA6A5F957601783BA2E6BAB824CC8B84E218AEBD8EFE3888CCA441EA01721D3E076F03E91FB3B21BF7243C5B3AF70A200A76B498E7D462971972FDA0DA39A60BFE76B2002AC965F3F6537DABF2BB6D376280D228B3C659A9F5202111F9CC889DF032A0A23D75916B09A3F0178D403CA3B863CB042C6D839D9A3404588882A0CCE79FF32201603DC282E2D2CC8926DE3131F96B2E86FB1D1EA4D0D9BB0859A3BA671D95E64D3579246BD14D00B74256ADE365E3744FE49EEC3B766F3B8ABFBAE14AD8466F1C6E716B80EA62461DF29A7BA2A29956C05676CEC070483D9516474F7B1C891B6F08B26D92C8E2A076D5E88B0E63D5F7E81218ECD0C02799807B89C6726F3EF5C8808DE9F55B06929AEA845FDD93BCF784B15E897947A5395A73B8A0695CCD280791A4A00064D415CCAA510D1C8888E3F34A52EB46756C9120831D4B87F07D5702C0DD8AFBB5557EA376318CF2C6F7FE1E70B879DBCDB27C3309EB12B26DE34EEA200850F7269B96A3AB0D10FDB1A7F7459D1F312F391F15BD65561091D963254A5591C679239FAA32F63B4B6DDF6FCEF8EBA61DE7CEA57B0CCE0694BD0DDADB55F3819A2127BC745DC4817B9F2BAC85B40FFA5246F27333876D91C6E940DA24F4ADCA7A332C184EAE8CD6F45566B64B3BBDE948747B5EC5F14FE499E93FFB729DEE82BCD2692B832065DFA1832C0382BE9612761C06D8B8F8291EB7F8EF0A45959A2A4D01112A47E213C00878C16D5D6DFAF1F03B069DDA4E93EEB1C58982EC3385BDFB0941010858B21E1A9BB9D2BB376CC895F5EC086F9CD81F0DEF93B427152EC5ACD2A424CE2CF355E49DCE1AEA8374073D5CDF5013ACD0E366FC0C7AA11E85A127330824BCC1A5914EDFE1D86DF07C51C5EDC9D74124D45E759891DF3966ACC8D1675E9566E404CA3686982AE1B405E9ED7AAFF8FE7CDBA756485D1285F0214CE112E6EFE7828188899564394A10FD479830E1B541AB2328C3A9AA77020A2D7CCECD6F835B9DB52687184BD71F0379B27064BEAB7C5911518B38306765A907C388DA500669E1A305C55B270712DFFB85F21C074B91FC2EC1B8502D6B9C7F039E38DAE85F21559B7E48B4B807202AF96AF1ABD48D6D143F26BE975604A2495567C453F8F110BA373C8870F564507BF8807DA14D81C6B503B32FF3167A49E14146C1CB0F1D35156ABD1F428971CDE9C41DA28988A936A6ABA6270ED08ABE7491AD590C4434EAAA68C8D54B566C2D0F43AF85E122AA804BAD530392287EBA78FA323CA7085C8EFC10EB2216345C8578591387A1649F0482DAC0156A4854BF600B38DEBFFCDB38CDB07025C7D17925ECAFEEAC71AA16C870742D0A20765EC7EB6B3734B81C9F671EBD49B841BFDD1B79C2EF70C4BFA2E309AB94AC53FCEC4A76CF7CBF10E2C93EFEA3A884006F2435FEE85CF6883A65FF4668176857880E24F705D86FE8B314DDD9665A352C545B6048E00CFE50EA8BC98E54C6E609A63DAED32277004F73C85A0E7A9C9025C8474482EDC86EEA464A637F44B618B0D787410BEBC598E52E07E28412D0059207325E8FF13AB72639848048263F5BC5A1DD8C78580013E4C82E45CEBB5255F23901DAA9D2953DCBD90AD43A3992277D0D82E1A644848F33601F16D3E4E35DD1B7439D5EEBAF04421D044BDB1673032F7358313A959A6629CA7E168E0D4A0404C9161AF3BEAE684F726D105698CDDC3052407F0ABC3BBBFECB617F23E8DEF129461219FFC11A729B5EC1F13325AD7DAC086369B3D93EDF9A284E18DF76A6FA39BE87C7BAC27E211044F182AA903E3E3D52AF99DAF41855FF23FF9E0704F16A3F86E923329C32B424A65FDB3EF09A50FAD72882E6A871E08301256EAE5E8021C54827E888F812E606849576C8A7B686F9F9F46FDDFFED3FF58278EE6E6C67A769271723CC66F36DD55BAACDA22377DF7B7D09A39424E86F4E6DCFB46D3683D3ABC5642641451BD0867E2BB3D4A4B2309D64895F8E7CEB531390FD565763C95AB97771512879CB08FD61BE4B5EDE0889BA04B9831467993431C1A01B71876453784C9D974AFC52264E16B8DC4EBE7410DB2F09A179C92DA145854EC58D26CC86DC5E45E30CC2E57E5BEE34F488E44EF6C72053AFAB3B49368143F485B6B4E519D79E20D6C4E1DC2DDB63380402A1078C93DEA8E6F66557A4F768AAC6DD2E9F3444E5C4C869B61EA7C9EA016D408ABCF02DBF03F9FA210F47DE9DB7D124A39BAC61EFA769603D1C5601F06DF168E1D310BEB34AB8094BA1837BDE409E010122367045953C95321FE0DE665ABA08F75FE431BCB5726C7DB13574D6363284CD4607EF16CF9E2A52FFF7F4AF88D78AE057051538C62A15AB54F995268CE0A09AA3324542084A005D4164FD349C8163C2239D201AE6F0DE837A6A53B62A5940B81750C571507F5D93F1C3B4DF96B1BB12B1106A4C1103FCDA10BAA76BD3474D10B62657243C893AA42701C53F521C4F858179DE628124BADEF3DC5751728F7D65D0D1A121180890056D00B2CF6DFFE193BA2A05712058CDD3ABC3D301A7A5F497F621BC8BDDAB1F46F0174BF3080C55D6D6693A872F63B453404D5A713ECBBFB462228097A6F1262A29A9D0DD8F8F971712EE45668C160831299DD44F29D5D8CE9A331FE639CEDEF176BCE05C896ACB76B8FBDE81F2626AE38476180A189769D7B8ADB139BF1B68649C00A1E8D829BA994B2E3E779F04EA1FD3EA0992DCAF5DDD72A10A80E8213E3EB01D17540CA6DDAF2C295856B845D1D9C7DBEC17A4BC3AB0BFF22C14DA9992D0505F775214DE2A5072574EBE71E28B9B328F8224B9810CA5AC989C2E2074276C06E429C646867600D73FB43D914F8AF0B006907593256CC2A165FA502F1CDBB238986D04B7129FF0287F28FFCCA3218093CE00926BAFE3152D0E30F25628A54F6DC44190F2637864202807377C0E2688335FF4A6F091D590E11E968A733ECECE078D0E20F594D860508C3A67EB2A141EDA45DEAFC89121ABAB78E40C00218C2C84B9BC2920364F799DC65A306580A0B0BAA7A2719ADB504530EA048E23E9AE64489A5CC60728B7D80AAEFB56908D497E457E5A747A55482EE6CC85F30F429E40292E3A06AE6B1F3E22EC37115A4DBCC622499AD32C079F7734FB8BC7ECC5DC6F02FE684454E2579CCB9F78F0B008D815C60647132CEBE1EA1146C4C26A3B060343435A91CF8FF3AF86CAE7EE5286F7C559532BCED48883AE1099EDCD363707D1CCB25580FED293ECBB9D90AD723166176338992A6C7897374F565094F9CBE5E6AE136A560E81CB66076986F123993FA76932CC05CF96C2C04DB87C7AC230D63E927955D0D4CF23B0486B1746709884071E770FAE8C4DA9B1405F5D9CC9AA76229E78F1476D02A7F7E7665B663AE92480F7761511FAA930EF76477C0FB393F31391493B5DC365DDD5273561F94C2E243ADFD52B3D04FE773FDD0F1B159BA59280DD0510DAE58DC1434452EC07A96CF76163D9F57028F84F842BDAFE095C6A6D6BDD23CBEDA18C5181CA529DD4A5293810970BED53B3BD6522053A2E7B1B54B080874E6215D1AED72AF88CC05BE738204C50A9FCC1001C850EFF2BE1280E8D65FEA855971350E22558A9FCAE3DD31C414FD88EB1782FF49A1D686DC87FA1D75F2F8483017FA0A2519DB8A9EA9C50CB6ECA7ADAE963C76DFB757AED29D43E3CC4B10A86C7DC4BA6DBCFDEBCDB4309634E756CA2F28061318C15076CD38F172D93481235748B65FF90EB60986E1E153A5A80ED7AB2B12C3EA59775589B117E319378819BA33D1EA058CEB54F2EC2B8D8E7D5A50E6AEA79BCFFF658EF96FD2FA2489384C5A66E1EA8FF4594536DBF94FB10C2FB4AE1D87B42A09D12B3E3275B6735EA3F3B500146FE04475322ECC90BA0D73BCE158836321EC0FB5C176B80D05C03CC18A0C6FA29E96C1C7DF3C431964E92BA2CBE686FE271CC5EF4E3438DFC62A9448F2797DE2B6333CCA38B8B3837E563DFCF32E9CFA344FC5BD1D406E48051E41A04F196E81F18E67E040B2AAB52B7FE00B15C167D1FFF9BA06585E264A52DED0545ADCE13AE1AE2F2E951DEA7AABF6E20591485F1695B266A8D55C95E54717EAB3F892BB1AC443AC1DC52BD0E712942F1E2F6B91AADFA6DB8B5ECE46A1C45C7A097FAD430AE1D7A1D0BA8FCC9045BE462506C8A18590D7D4FBE128677C4215C8601ADC4FBBC3CA14F6E71B3BD3BD5154F23925647FB4E2F39A6EC994224651E6187D6F84F489B28A530C078D9BF949D9D3759ADE19D4259766E2BD58CA4DC6C4F48E611E55780049A057634097BECC122B01C8DD3BC504585B9928BFC8DE23DC60AAE5C34152DD04B78F7DA3824D67B51F1186DEB3C1EB8DC87513929C1E60563E65D2CD8C2B25D49C7309A275EE53074C9C470E16472CB7DB329408D781B2347F3479E1E9FE90F71BA45A772BF27F5B24DB7025B32CCD27EBBF27B240163091DEC3583D822C9516C1A1266333AC8EEC2610E160624EDCEA875A03F79150556DE2D83598CDE0EBB51027C9C7470554F434BB2CA259F7EAAF34195AA8F43B24399BF9F4DF3A639E0BAD269335EBE8DACF6B925E2B2264E3BB2D44EEE691C788F1C2D086132DA4EE78AEFC6B1652FD6D78E55186F882FF3D22F3FEE3C428E278850C0DDDA43AF5D755AAF339647297F54CA2744C434B16C25556D77DAA0AF56C22159504E89F417C23F49EE412D7439B61C9064255D567C216BE80ECB24F0EC85ED7565B60E6E97581985D6924D4D2B202E6ECBA52B24F2ED3336BD2D7D018B554E9C1FD869FC8A215C67CAE4D18F88F4CC8AC3752D8D2F01EE9FD19BCD7F2FB58660F8E42168B345EDD4F89B7CE16A63868A587777E7F89E2738B2AB73E846AD4610B96B98643B8A19B6EB500ECD51390E140B1140739E511DA4B2141613D5DECEE0304AB639183872323A17C9A518AED5DE98EC625C8493ED1571C2665CE3100EB075B748825FA466C579946F406A2E9491651F3455ACC430CFE2B30A2375758B3305EFCF60A49A341932E9888CDC9FB26C67E6DE74C14DFEDBF5CDB066003794CC0AA2BD853CFB0F6BC842E47B5104A9AC0ED02F5ADAFD9BBA6DA69F73860D77D3D255147F22BCE65C8F44CC28AAC31053149117F447CADDA55A500DD0EFAE2E7DCCE2D5E975046CE2D7DCF3E891D6E5AA1E4A4549DDF9E7F4CD04D44EF6E2B761B74D042585DC332BB78AF6931B87882A0D82C8ABD2FBE4B2BB85330476BD61FAD8BC6B7E24A60CD84BFE9F116EE9223753C0866C9C6C2584C3D8C02E2F31CCC8673E13F3D35720C301B33E140A4C9FBCCB0FCAEEF858A2F618B9416DE83BA3FF9B22E19C6D356BF586349829DD2562C24AD7BED12D705BEBCE37E43DB031A264A7FBC6EA60C4284C658A2940D714E6C81F0BF597B209C418F62639CE5B457C67319054D7B4A8DB90FCDB42142D67F4004E67D85C799E7E3E46425636C4C4281BE3ACA7AF16A0AAD826E24B14C13FB7AF860B24BC9432AF2FC2D888EEA66172E50FABD8C897D200A0E6BD1BB5CEE460D581C54AC8E796E97C01A73EC2CFAB57792FF794C5E8932C1AABB06931962BBA99C8EAAA3B797D5B4C485DFE2AF1D7C1283F96590AE60B447E2EA082CC5D05E31601A00E86E320A35AF5949F1FF7101B1BB93D0A1F302063F450F5DB7A7EB7813DFAAA142D5F1648C9F1936826FF515261A5BDC65BD580CA41C053C64C73EEE024127B15B358AC280535D513DC403DEDE1BBCA2AD34F048303EE895662B10BAEE5CFBBF0386D5114881DBECC6C0D1917DBA758CAEA651F29F66CF2C52501E5215A2BB8FEEA460F66614A1C1780DD1ABBBB436EC304E4D8DE51783A8EACBEB6EA43953B4575A7982FE5C1640C10AB1D9D2A8BF61601E40BC05C912E930B8634DC04B832674CFE2E9AEA5155BBECFF536BFEB039C33968D6399BFCFD2DCDE68E7A5F70E69FF42ADB5D85D4D77D2E524294DDE7A6B2D3001205DCE2DDD9D20AE42707A17C8A7244EA5F1DD14ECF299FDB93475F30A80E821807ED2ACF3C023B7679486E547CE32875A81450CC356CA4124EDE3FC950F43422D28EF86CE26BB16C7EFBECE2071BDA2BB1CA7B50E2AE2977CF7C66238CCAB5413704A99878A3F0ED7E9D4CE216A606D43B113341A0AD31F1CAC180E2D473AE5AF094FAFDCB25B90B95CC973B0F02F3763DAB1C0D6AF63958A965A4D8858D221F588457E21889D2E73FD99E10F948785FCC31548E55678F69C567ED4CD3F796523E03157B0E0E888571FC4BF33BD38DBC334CB214EECDE33612512BCB857C8B9FA2C34FE0618EF18FDBC82FF05E358FE86622CD9E0B35AB0ABFB60DD8A9C5F06841CF236B53D4AEFBCC9325E0EC1771BD0D5897F65B55E97A129BAC34F6A3DD211455E3A64EA918F543C249B7864DADDB1437EFC7EE7D089190460934428460FAB1E32B02A8605685EB5E250455D4EFDBBB97F57B6D18F9B26789D44643319A29B6BBEFA65FEFAF6C48E1F04A08826DB89347761CDB5CEB02D6283E"
self.key = 'QnBECDd6L9C65VYw'
self.iv ='IwM2QIh7HKUTETbI'
pass
def getDependence(self):
return []
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def liveContent(self, url):
tv_list = json.loads(self.decrypt(self.d))
d = ['#EXTM3U']
for i in tv_list:
d.append(f"#EXTINF:-1 tvg-id=\"{i['tvg-id']}\" tvg-name=\"{i['tvg-name']}\" tvg-logo=\"{i['tvg-logo']}\" group-title=\"{i['group-title']}\",{i['name']}")
d.append(f'{self.getProxyUrl()}&type=m3u8&pid={i["pid"]}')
return '\n'.join(d)
def homeContent(self, filter):
return {}
def homeVideoContent(self):
return {}
def categoryContent(self, cid, page, filter, ext):
return {}
def detailContent(self, did):
return {}
def searchContent(self, key, quick, page='1'):
return {}
def searchContentPage(self, keywords, quick, page):
return {}
def playerContent(self, flag, pid, vipFlags):
return {}
def localProxy(self, params):
if params['type'] == "m3u8":
return self.proxyM3u8(params)
if params['type'] == "ts":
return self.get_ts(params)
return [302, "text/plain", None, {'Location': 'https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-720p.mp4'}]
def proxyM3u8(self, params):
pid = params['pid']
info = pid.split(',')
a = info[0]
b = info[1]
c = info[2]
timestamp = int(time.time() / 4 - 355017625)
t = timestamp * 4
m3u8_text = f'#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:4\n#EXT-X-MEDIA-SEQUENCE:{timestamp}\n'
for i in range(10):
url = f'https://ntd-tgc.cdn.hinet.net/live/pool/{a}/litv-pc/{a}-avc1_6000000={b}-mp4a_134000_zho={c}-begin={t}0000000-dur=40000000-seq={timestamp}.ts'
if self.is_proxy:
url = f'{self.getProxyUrl()}&type=ts&url={self.encrypt(url)}'
m3u8_text += f'#EXTINF:4,\n{url}\n'
timestamp += 1
t += 4
return [200, "application/vnd.apple.mpegurl", m3u8_text]
def get_ts(self, params):
url = self.decrypt(params['url'])
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers, stream=True, proxies=self.proxy01)
return [206, "application/octet-stream", response.content]
def destroy(self):
return '正在Destroy'
def decrypt(self, e):
cipher = AES.new(self.key.encode(), AES.MODE_CBC, self.iv.encode())
plain_text = unpad(cipher.decrypt(bytes.fromhex(e)), AES.block_size)
return plain_text.decode('utf-8')
def encrypt(self, e):
cipher = AES.new(self.key.encode(), AES.MODE_CBC, self.iv.encode())
cipher_text = cipher.encrypt(pad(e.encode('utf-8'), AES.block_size))
return cipher_text.hex()
if __name__ == '__main__':
pass