From c10cbddfac8be5da92b3e89e4d286d8a3373f17a Mon Sep 17 00:00:00 2001 From: tzagim <2285958+tzagim@users.noreply.github.com> Date: Tue, 13 Feb 2024 10:58:42 +0200 Subject: [PATCH] 3.5.4 --- resources/images/wallanews.png | Bin 15895 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 15815 -> 0 bytes .../exceptions.cpython-38.opt-1.pyc | Bin 3686 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 1439 -> 0 bytes .../lib/cloudscraper/captcha/capmonster.py | 199 ------- .../lib/cloudscraper/captcha/capsolver.py | 188 ------- resources/lib/cloudscraper/cloudflare.py | 490 ------------------ .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 1695 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 3445 -> 0 bytes resources/lib/common.py | 28 +- resources/lib/radio.py | 3 +- .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 1384 -> 0 bytes .../__pycache__/_compat.cpython-38.opt-1.pyc | Bin 8991 -> 0 bytes .../streaming_iterator.cpython-38.opt-1.pyc | Bin 4137 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 560 -> 0 bytes .../__pycache__/source.cpython-38.opt-1.pyc | Bin 2917 -> 0 bytes .../__pycache__/ssl.cpython-38.opt-1.pyc | Bin 2610 -> 0 bytes .../requests_toolbelt/adapters/appengine.py | 206 -------- .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 202 -> 0 bytes .../_digest_auth_compat.cpython-38.opt-1.pyc | Bin 1416 -> 0 bytes .../__pycache__/guess.cpython-38.opt-1.pyc | Bin 4257 -> 0 bytes .../http_proxy_digest.cpython-38.opt-1.pyc | Bin 3270 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 962 -> 0 bytes .../__pycache__/decoder.cpython-38.opt-1.pyc | Bin 5849 -> 0 bytes .../__pycache__/encoder.cpython-38.opt-1.pyc | Bin 21109 -> 0 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 203 -> 0 bytes .../__pycache__/dump.cpython-38.opt-1.pyc | Bin 5646 -> 0 bytes .../user_agent.cpython-38.opt-1.pyc | Bin 4930 -> 0 bytes 28 files changed, 7 insertions(+), 1107 deletions(-) delete mode 100644 resources/images/wallanews.png delete mode 100644 resources/lib/cloudscraper/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/cloudscraper/__pycache__/exceptions.cpython-38.opt-1.pyc delete mode 100644 resources/lib/cloudscraper/captcha/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/cloudscraper/captcha/capmonster.py delete mode 100644 resources/lib/cloudscraper/captcha/capsolver.py delete mode 100644 resources/lib/cloudscraper/cloudflare.py delete mode 100644 resources/lib/cloudscraper/interpreters/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/cloudscraper/user_agent/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/__pycache__/_compat.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/__pycache__/streaming_iterator.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/adapters/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/adapters/__pycache__/source.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/adapters/__pycache__/ssl.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/adapters/appengine.py delete mode 100644 resources/lib/requests_toolbelt/auth/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/auth/__pycache__/_digest_auth_compat.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/auth/__pycache__/guess.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/auth/__pycache__/http_proxy_digest.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/multipart/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/multipart/__pycache__/decoder.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/multipart/__pycache__/encoder.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/utils/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/utils/__pycache__/dump.cpython-38.opt-1.pyc delete mode 100644 resources/lib/requests_toolbelt/utils/__pycache__/user_agent.cpython-38.opt-1.pyc diff --git a/resources/images/wallanews.png b/resources/images/wallanews.png deleted file mode 100644 index 552091dfa43534727dcea2f6c373ff8431d3f7bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15895 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 diff --git a/resources/lib/cloudscraper/__pycache__/exceptions.cpython-38.opt-1.pyc b/resources/lib/cloudscraper/__pycache__/exceptions.cpython-38.opt-1.pyc deleted file mode 100644 index 7407bc4349e6b19458c7d6d5e4e33b8a332c77cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3686 zcmb`JPgC1Q7{+B|j4@!0Ap~feZhPtEP=>VALun^15T>PR879ER#k(e z_|QxHWpeDd>2U40=&8@UvaAgO9L+?GgnqJC`@HYIfA)N7sp{bP`=6ToV%~B7C9sbY z;5(dArQkTiX*%CKq9BTYIie^Ff6g?E;2BW@mt+w<1D+LSaM^GPJSQsPis4!Cyr_b! zhRfguu?Su?JO^G9HE_*v1-vZk;JV>?@QP@F8)p70cvY-{*JKs*FM#ifb@003Meu#G z0p2jY1l|-|;4Q;7@CV`n_<`YN@Q30d_@UuC_#?r<%bQ|kvw$@zib8Wn6rpS8YW09*bpo#CVXA5Lq{?vY^GIeN$DBNhSV!qMXQv0*H_X7} z*QKk9>xR51UH7W$x``#YUv%By20R%5GUvKNd9M4~(Q{B|F8^IT-EBQn!Z(-4UnTc_ zrDNU>q$_yLTU-b@uGJ3)7k;=s^o3O0zThDqL@g~NHPD`nT7lng*^X*ij_SYC*Bnd_O?bkY2$ddO9&3)p2rn3oVtuZ8FP1to13OyvtiZ*uuL8xz zG&a5nlN3L`y^K;f+_y9n=hnPA)_f}U(D&qd z$cNkys85ZK?s7c}lhh#((9O+2YVAB`9uGqmv$jNg;9gfwtwk#k{exu$ac(1)$42a( z93|=SYT)w13UBX{aZgs&NQUB**+EmCINu+BYJfU8Rj-yArcZqIu!B8lBDD$LsGHR;Wdl2`FC6+k1*fezax%g4F zkDiWp?$YXqLmv2o{i@o`7gH6kLs7?4NSs??V;lj`CGB97puJuiZV%c)NVNnJfLx>T zjNDCabb8L+huXkWPkj8Sq09JxH9y(un@z9TQ)=3nY1++b+8Ai+u$mf@rgE;SK5D8j wnzC0@I%oVH=3rnY0G+5`6k)_KbgfF5yPc4UoV@#x$(6!=HzMlf7#VH+yDRo diff --git a/resources/lib/cloudscraper/captcha/__pycache__/__init__.cpython-38.opt-1.pyc b/resources/lib/cloudscraper/captcha/__pycache__/__init__.cpython-38.opt-1.pyc deleted file mode 100644 index 98064c537ce204984953280f27a1b020e9086064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1439 zcmZt`%Wm8@kffxQEU&jt`bvNn(5b-&=mG_LNniv?-J&Rh8UdW3tsqpOMcS6F6*nX| z!LHYr*dJma{UiMd-in_53q5s)t4-V_6gV8tL-Xc~jg6GRdinRD{3{~lAH3XLKqHS~ zn`Zz75ws!s@}xQSca}5Bjsn4sBYj_zqc9KKfg~4^2t-(u%OD4s_kJcK61{UGdNMo< z@>tMaGK{a`uViP)t^+u)LjW##^27EOsgQAVp}=FpCos%<~N3w?| zJsx|GHwc_W#3DH-`I=Y*qp6Fx`NUR-ykhXL)j}MNY{NEv01INtf^I>yyX1=Q45=Gb zOTAsyypq}snG20<_FdTWvDBC<5B?qh_^^1YMD4+M50>~uY0LK-Sqg4>!G%z*DJISI zpl(O6Y9ZCA7Q6+5DYP_dsw-)Vrrs;6MoopOG@nRabRHCCS+}(<%h6=!lGWuly6$6Q z^UW^C(Te#&un9=}VD~XtYRPe||D2C374(8F$WgGMm+XvEVnYk%gd4TJGiJWGu>krT z`WtD#35ku5Q(aJkpG_{-L;%_#dkLCv$RDI-zxzbqg)|Psoq2R}IyyO>kDedOjJLMV zx{$JoR+tB!z2+usmCZ21nm6@aiqZVuix#t&S(P=4i|pj|+wbp;}IzMTxw2K>c0M$8gk;FTcJE$6?abVsR zTd$+uhL}MQ)YVe`4v-8MgRq1$dYf+2J{2Dn@A68C&Ife@y;aj~hbd@5&dqhmeenvc!<&Tc}uofl79^IGbA@Viyt+*$ee zzR(9QV#2(On}96H1@zE@ErLaO8Fuatss0Lh`bz|F$77kXzQG~tjC~6NO9$xuvy}rk z1$JO+q0Mp5%2Iy<;;vtoFQ>d&l3c*|DmUPJ#%f;Kv9yOuXq;k5Q^SqvC|{r_-lwk- zd*_qKu#~{n^I c??tcnF {fnct} -> {rPayload.get('errorDescription')}" - ) - - # ------------------------------------------------------------------------------- # - - def requestJob(self, jobID): - if not jobID: - raise CaptchaBadJobID("CapSolver: Error bad job id to request task result.") - - def _checkRequest(response): - self.checkErrorStatus(response, 'requestJob') - try: - if response.ok and response.json()['status'] == 'ready': - return True - except Exception: - pass - return None - - response = polling2.poll( - lambda: self.session.post( - f'{self.host}/getTaskResult', - json={ - 'clientKey': self.api_key, - 'taskId': jobID - }, - timeout=30 - ), - check_success=_checkRequest, - step=5, - timeout=180 - ) - - if response: - try: - rPayload = response.json()['solution'] - if 'token' in rPayload: - return rPayload['token'] - else: - return rPayload['gRecaptchaResponse'] - except Exception: - pass - - raise CaptchaTimeout( - "CapSolver: Error failed to solve Captcha." - ) - - # ------------------------------------------------------------------------------- # - - def requestSolve(self, captchaType, url, siteKey): - - # ------------------------------------------------------------------------------- # - - def _checkRequest(response): - self.checkErrorStatus(response, 'createTask') - try: - rPayload = response.json() - if response.ok: - if rPayload.get("taskId", False): - return True - except Exception: - pass - return None - - # ------------------------------------------------------------------------------- # - - payload = { - 'clientKey': self.api_key, - 'appId': '9E717405-8C70-49B3-B277-7C2F2196484B', - 'task': { - 'type': self.captchaType[captchaType], - 'websiteURL': url, - 'websiteKey': siteKey - } - } - - if captchaType == 'turnstile': - payload['task']['metadata'] = {'type': 'turnstile'} - - if self.proxy: - payload['task']['proxy'] = self.proxy - else: - payload['task']['type'] = f"{self.captchaType[captchaType]}Proxyless" - - response = polling2.poll( - lambda: self.session.post( - f'{self.host}/createTask', - json=payload, - allow_redirects=False, - timeout=30 - ), - check_success=_checkRequest, - step=5, - timeout=180 - ) - - if response: - rPayload = response.json() - if rPayload.get('taskId'): - return rPayload['taskId'] - - raise CaptchaBadJobID( - 'CapSolver: Error no job id was returned.' - ) - - # ------------------------------------------------------------------------------- # - - def getCaptchaAnswer(self, captchaType, url, siteKey, captchaParams): - if not captchaParams.get('api_key'): - raise CaptchaParameter("CapSolver: Missing api_key parameter.") - self.api_key = captchaParams.get('api_key') - - if captchaParams.get('proxy') and not captchaParams.get('no_proxy'): - hostParsed = urlparse(captchaParams.get('proxy', {}).get('https')) - - if not hostParsed.scheme: - raise CaptchaParameter('Cannot parse proxy correctly, bad scheme') - - if not hostParsed.netloc: - raise CaptchaParameter('Cannot parse proxy correctly, bad netloc') - - self.proxy = captchaParams['proxy']['https'] - else: - self.proxy = None - - try: - jobID = self.requestSolve(captchaType, url, siteKey) - return self.requestJob(jobID) - except polling2.TimeoutException: - raise CaptchaTimeout( - f"CapSolver: Captcha solve (task ID: {jobID}) took to long." - ) - - raise CaptchaAPIError('CapSolver: Job Failure.') - - -# ------------------------------------------------------------------------------- # - -captchaSolver() diff --git a/resources/lib/cloudscraper/cloudflare.py b/resources/lib/cloudscraper/cloudflare.py deleted file mode 100644 index 66f4ecb3..00000000 --- a/resources/lib/cloudscraper/cloudflare.py +++ /dev/null @@ -1,490 +0,0 @@ -# Cloudflare V1 - -import re -import sys -import time - -from copy import deepcopy -from collections import OrderedDict - -# ------------------------------------------------------------------------------- # - -try: - from HTMLParser import HTMLParser -except ImportError: - if sys.version_info >= (3, 4): - import html - else: - from html.parser import HTMLParser - -try: - from urlparse import urlparse, urljoin -except ImportError: - from urllib.parse import urlparse, urljoin - -# ------------------------------------------------------------------------------- # - -from .exceptions import ( - CloudflareCode1020, - CloudflareIUAMError, - CloudflareSolveError, - CloudflareChallengeError, - CloudflareCaptchaError, - CloudflareCaptchaProvider -) - -# ------------------------------------------------------------------------------- # - -from .captcha import Captcha -from .interpreters import JavaScriptInterpreter - -# ------------------------------------------------------------------------------- # - - -class Cloudflare(): - - def __init__(self, cloudscraper): - self.cloudscraper = cloudscraper - - # ------------------------------------------------------------------------------- # - # Unescape / decode html entities - # ------------------------------------------------------------------------------- # - - @staticmethod - def unescape(html_text): - if sys.version_info >= (3, 0): - if sys.version_info >= (3, 4): - return html.unescape(html_text) - - return HTMLParser().unescape(html_text) - - return HTMLParser().unescape(html_text) - - # ------------------------------------------------------------------------------- # - # check if the response contains a valid Cloudflare challenge - # ------------------------------------------------------------------------------- # - - @staticmethod - def is_IUAM_Challenge(resp): - try: - return ( - resp.headers.get('Server', '').startswith('cloudflare') - and resp.status_code in [429, 503] - and re.search(r'/cdn-cgi/images/trace/jsch/', resp.text, re.M | re.S) - and re.search( - r'''
1020', - resp.text, - re.M | re.DOTALL - ) - ) - except AttributeError: - pass - - return False - - # ------------------------------------------------------------------------------- # - # Wrapper for is_Captcha_Challenge, is_IUAM_Challenge, is_Firewall_Blocked - # ------------------------------------------------------------------------------- # - - def is_Challenge_Request(self, resp): - if self.is_Firewall_Blocked(resp): - self.cloudscraper.simpleException( - CloudflareCode1020, - 'Cloudflare has blocked this request (Code 1020 Detected).' - ) - - if self.is_New_Captcha_Challenge(resp): - self.cloudscraper.simpleException( - CloudflareChallengeError, - 'Detected a Cloudflare version 2 Captcha challenge, This feature is not available in the opensource (free) version.' - ) - - if self.is_New_IUAM_Challenge(resp): - self.cloudscraper.simpleException( - CloudflareChallengeError, - 'Detected a Cloudflare version 2 challenge, This feature is not available in the opensource (free) version.' - ) - - if self.is_Captcha_Challenge(resp) or self.is_IUAM_Challenge(resp): - if self.cloudscraper.debug: - print('Detected a Cloudflare version 1 challenge.') - return True - - return False - - # ------------------------------------------------------------------------------- # - # Try to solve cloudflare javascript challenge. - # ------------------------------------------------------------------------------- # - - def IUAM_Challenge_Response(self, body, url, interpreter): - try: - formPayload = re.search( - r'.*?="challenge-form" ' - r'action="(?P.*?' - r'__cf_chl_f_tk=\S+)"(.*?))', - body, - re.M | re.DOTALL - ).groupdict() - - if not all(key in formPayload for key in ['form', 'challengeUUID']): - self.cloudscraper.simpleException( - CloudflareIUAMError, - "Cloudflare IUAM detected, unfortunately we can't extract the parameters correctly." - ) - - payload = OrderedDict() - for challengeParam in re.findall(r'^\s*', formPayload['form'], re.M | re.S): - inputPayload = dict(re.findall(r'(\S+)="(\S+)"', challengeParam)) - if inputPayload.get('name') in ['r', 'jschl_vc', 'pass']: - payload.update({inputPayload['name']: inputPayload['value']}) - - except AttributeError: - self.cloudscraper.simpleException( - CloudflareIUAMError, - "Cloudflare IUAM detected, unfortunately we can't extract the parameters correctly." - ) - - hostParsed = urlparse(url) - - try: - payload['jschl_answer'] = JavaScriptInterpreter.dynamicImport( - interpreter - ).solveChallenge(body, hostParsed.netloc) - except Exception as e: - self.cloudscraper.simpleException( - CloudflareIUAMError, - f"Unable to parse Cloudflare anti-bots page: {getattr(e, 'message', e)}" - ) - - return { - 'url': f"{hostParsed.scheme}://{hostParsed.netloc}{self.unescape(formPayload['challengeUUID'])}", - 'data': payload - } - - # ------------------------------------------------------------------------------- # - # Try to solve the Captcha challenge via 3rd party. - # ------------------------------------------------------------------------------- # - - def captcha_Challenge_Response(self, provider, provider_params, body, url): - try: - formPayload = re.search( - r'
.*?="challenge-form" ' - r'action="(?P.*?__cf_chl_captcha_tk__=\S+)"(.*?))', - body, - re.M | re.DOTALL - ).groupdict() - - if not all(key in formPayload for key in ['form', 'challengeUUID']): - self.cloudscraper.simpleException( - CloudflareCaptchaError, - "Cloudflare Captcha detected, unfortunately we can't extract the parameters correctly." - ) - - payload = OrderedDict( - re.findall( - r'(name="r"\svalue|data-ray|data-sitekey|name="cf_captcha_kind"\svalue)="(.*?)"', - formPayload['form'] - ) - ) - - captchaType = 'reCaptcha' if payload['name="cf_captcha_kind" value'] == 're' else 'hCaptcha' - - except (AttributeError, KeyError): - self.cloudscraper.simpleException( - CloudflareCaptchaError, - "Cloudflare Captcha detected, unfortunately we can't extract the parameters correctly." - ) - - # ------------------------------------------------------------------------------- # - # Pass proxy parameter to provider to solve captcha. - # ------------------------------------------------------------------------------- # - - if self.cloudscraper.proxies and self.cloudscraper.proxies != self.cloudscraper.captcha.get('proxy'): - self.cloudscraper.captcha['proxy'] = self.proxies - - # ------------------------------------------------------------------------------- # - # Pass User-Agent if provider supports it to solve captcha. - # ------------------------------------------------------------------------------- # - - self.cloudscraper.captcha['User-Agent'] = self.cloudscraper.headers['User-Agent'] - - # ------------------------------------------------------------------------------- # - # Submit job to provider to request captcha solve. - # ------------------------------------------------------------------------------- # - - captchaResponse = Captcha.dynamicImport( - provider.lower() - ).solveCaptcha( - captchaType, - url, - payload['data-sitekey'], - provider_params - ) - - # ------------------------------------------------------------------------------- # - # Parse and handle the response of solved captcha. - # ------------------------------------------------------------------------------- # - - dataPayload = OrderedDict([ - ('r', payload.get('name="r" value', '')), - ('cf_captcha_kind', payload['name="cf_captcha_kind" value']), - ('id', payload.get('data-ray')), - ('g-recaptcha-response', captchaResponse) - ]) - - if captchaType == 'hCaptcha': - dataPayload.update({'h-captcha-response': captchaResponse}) - - hostParsed = urlparse(url) - - return { - 'url': f"{hostParsed.scheme}://{hostParsed.netloc}{self.unescape(formPayload['challengeUUID'])}", - 'data': dataPayload - } - - # ------------------------------------------------------------------------------- # - # Attempt to handle and send the challenge response back to cloudflare - # ------------------------------------------------------------------------------- # - - def Challenge_Response(self, resp, **kwargs): - if self.is_Captcha_Challenge(resp): - # ------------------------------------------------------------------------------- # - # double down on the request as some websites are only checking - # if cfuid is populated before issuing Captcha. - # ------------------------------------------------------------------------------- # - - if self.cloudscraper.doubleDown: - resp = self.cloudscraper.decodeBrotli( - self.cloudscraper.perform_request(resp.request.method, resp.url, **kwargs) - ) - - if not self.is_Captcha_Challenge(resp): - return resp - - # ------------------------------------------------------------------------------- # - # if no captcha provider raise a runtime error. - # ------------------------------------------------------------------------------- # - - if ( - not self.cloudscraper.captcha - or not isinstance(self.cloudscraper.captcha, dict) - or not self.cloudscraper.captcha.get('provider') - ): - self.cloudscraper.simpleException( - CloudflareCaptchaProvider, - "Cloudflare Captcha detected, unfortunately you haven't loaded an anti Captcha provider " - "correctly via the 'captcha' parameter." - ) - - # ------------------------------------------------------------------------------- # - # if provider is return_response, return the response without doing anything. - # ------------------------------------------------------------------------------- # - - if self.cloudscraper.captcha.get('provider') == 'return_response': - return resp - - # ------------------------------------------------------------------------------- # - # Submit request to parser wrapper to solve captcha - # ------------------------------------------------------------------------------- # - - submit_url = self.captcha_Challenge_Response( - self.cloudscraper.captcha.get('provider'), - self.cloudscraper.captcha, - resp.text, - resp.url - ) - else: - # ------------------------------------------------------------------------------- # - # Cloudflare requires a delay before solving the challenge - # ------------------------------------------------------------------------------- # - - if not self.cloudscraper.delay: - try: - delay = float( - re.search( - r'submit\(\);\r?\n\s*},\s*([0-9]+)', - resp.text - ).group(1) - ) / float(1000) - if isinstance(delay, (int, float)): - self.cloudscraper.delay = delay - except (AttributeError, ValueError): - self.cloudscraper.simpleException( - CloudflareIUAMError, - "Cloudflare IUAM possibility malformed, issue extracing delay value." - ) - - time.sleep(self.cloudscraper.delay) - - # ------------------------------------------------------------------------------- # - - submit_url = self.IUAM_Challenge_Response( - resp.text, - resp.url, - self.cloudscraper.interpreter - ) - - # ------------------------------------------------------------------------------- # - # Send the Challenge Response back to Cloudflare - # ------------------------------------------------------------------------------- # - - if submit_url: - - def updateAttr(obj, name, newValue): - try: - obj[name].update(newValue) - return obj[name] - except (AttributeError, KeyError): - obj[name] = {} - obj[name].update(newValue) - return obj[name] - - cloudflare_kwargs = deepcopy(kwargs) - cloudflare_kwargs['allow_redirects'] = False - cloudflare_kwargs['data'] = updateAttr( - cloudflare_kwargs, - 'data', - submit_url['data'] - ) - - urlParsed = urlparse(resp.url) - cloudflare_kwargs['headers'] = updateAttr( - cloudflare_kwargs, - 'headers', - { - 'Origin': f'{urlParsed.scheme}://{urlParsed.netloc}', - 'Referer': resp.url - } - ) - - challengeSubmitResponse = self.cloudscraper.request( - 'POST', - submit_url['url'], - **cloudflare_kwargs - ) - - if challengeSubmitResponse.status_code == 400: - self.cloudscraper.simpleException( - CloudflareSolveError, - 'Invalid challenge answer detected, Cloudflare broken?' - ) - - # ------------------------------------------------------------------------------- # - # Return response if Cloudflare is doing content pass through instead of 3xx - # else request with redirect URL also handle protocol scheme change http -> https - # ------------------------------------------------------------------------------- # - - if not challengeSubmitResponse.is_redirect: - return challengeSubmitResponse - - else: - cloudflare_kwargs = deepcopy(kwargs) - cloudflare_kwargs['headers'] = updateAttr( - cloudflare_kwargs, - 'headers', - {'Referer': challengeSubmitResponse.url} - ) - - if not urlparse(challengeSubmitResponse.headers['Location']).netloc: - redirect_location = urljoin( - challengeSubmitResponse.url, - challengeSubmitResponse.headers['Location'] - ) - else: - redirect_location = challengeSubmitResponse.headers['Location'] - - return self.cloudscraper.request( - resp.request.method, - redirect_location, - **cloudflare_kwargs - ) - - # ------------------------------------------------------------------------------- # - # We shouldn't be here... - # Re-request the original query and/or process again.... - # ------------------------------------------------------------------------------- # - - return self.cloudscraper.request(resp.request.method, resp.url, **kwargs) - - # ------------------------------------------------------------------------------- # diff --git a/resources/lib/cloudscraper/interpreters/__pycache__/__init__.cpython-38.opt-1.pyc b/resources/lib/cloudscraper/interpreters/__pycache__/__init__.cpython-38.opt-1.pyc deleted file mode 100644 index ce9b455d535d174d87401d8e20101d040393f7bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1695 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 diff --git a/resources/lib/common.py b/resources/lib/common.py index 51d19434..4c50cea8 100644 --- a/resources/lib/common.py +++ b/resources/lib/common.py @@ -650,32 +650,14 @@ def GetYouTube(url): video_id = video_id[:video_id.find('?')] return '{0}/play/?video_id={1}'.format(youtubePlugin, video_id) -class TLSAdapter(requests.adapters.HTTPAdapter): - def init_poolmanager(self, connections, maxsize, block=False): - import ssl, urllib3 - ctx = ssl.create_default_context() - ctx.set_ciphers('DEFAULT@SECLEVEL=1') - ctx.check_hostname = False - self.poolmanager = urllib3.poolmanager.PoolManager(num_pools=connections, maxsize=maxsize, block=block, ssl_version=ssl.PROTOCOL_TLSv1_2, ssl_context=ctx) - + def GetCF(url, ua=None, retries=10, responseMethod='text'): - if ua is None: - ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' - scraper = cloudscraper.create_scraper(delay=10) - scraper.mount('https://', TLSAdapter()) - scraper.headers.update({'User-Agent': ua}) - - for i in range(retries): try: - response = scraper.get(url) - if response.status_code in [503, 429, 403]: - if response.status_code == 503: - xbmc.sleep(6000) - if response.status_code == 429: - xbmc.sleep(4000) - else: - xbmc.sleep(100) + scraper = cloudscraper.create_scraper(interpreter = 'native') + response = scraper.request('get', url) + if response.status_code == 403: + xbmc.sleep(1000) xbmc.log('{0} - response {1}.'.format(url, response.status_code), 3) continue if responseMethod == 'json': diff --git a/resources/lib/radio.py b/resources/lib/radio.py index 36a71fd4..5367b134 100644 --- a/resources/lib/radio.py +++ b/resources/lib/radio.py @@ -11,7 +11,7 @@ def WatchLive(url, name='', iconimage='', quality='best'): '91fm': { 'link': 'https://acdn.streamgates.net/91fm', 'final': True}, '97fm': { 'link': 'https://www.ytn.co.il/radiodarom/97fm/', 'regex': '&2Aev5Z+x$mb8*=$(Dce({_(lk*w{YhemLNI<`?5O^gC+av&5C^bRdC*j;W& zt`P~zDSeRkP@sL3yux04>MOLD4kgQ0U9^<=VP?qXelzoNU$k1jgX7i51Nf!vIKNwG zd9=~_2B-cN0UY9h3tsFd9`TYADY@1!#pR?zDl@wruOwAcO=_f;)JZ+@iJvq`W42a_ zn@NkbX7)X1{os;qSc5in zU>!D~3!AV7+pq(7;4a*Q`|t^TI%<<0_-x?xg6T(J@i#fwMn5!C#^*dX{@1sM?+-W+ z#>Qm2zq`BG7b?!cj5)|iheGZK7g7c2Ce_ zuW-e0j#|V0f4)BM55JQjX0ZQwZf8;%b{=yI%&;K?kf|PKaXu1hcqxF(PykCYpoiGK zStIo@7U$^A6-yUN98xNe7t@ZiZC07~+fKHpzg(K1n zN$FYdPEn;4FAJ{L*j%mph6eHNTf&i5>5OnuPZlD*&HaYwx?ZS=iYpn-@*(Zq;0+0H z^fb?K!)DmEuxY_|R&65`6_aN%FDg2Vg;6^;glt(HQ#$MC64>uvQ9DQ^!`m% dDEn=<>E16l-KJM|7r&j7hn?`;|3Jt4>u>qyhz9@w diff --git a/resources/lib/requests_toolbelt/__pycache__/_compat.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/__pycache__/_compat.cpython-38.opt-1.pyc deleted file mode 100644 index 2397ba1477e26ee8164d72a74de1d01cc00c1e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8991 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 diff --git a/resources/lib/requests_toolbelt/adapters/__pycache__/ssl.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/adapters/__pycache__/ssl.cpython-38.opt-1.pyc deleted file mode 100644 index f5c93f24d94799c7d1a8bd1c3477b8a651a0c26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2610 zcmaJ@-EP}96sBZ5c9f)R(G3H-Uhu9l&?!l`0b9@pExL6r)}_Ug4VaOEphendB8e(V zC2^3u2I$rL9(|O(g71c1^%aI)>>NsRoDLWRF%o~y&v(9aj(=WTiwKP0{R2wx`IZx9m6*AMgb%r}BB9+5QkT^{Bm=@Z)?P%g$VYfFn z((;H~9w$03k2daYZhf(_xwY|lqP11|n1O8ei!>J0v1d8^srG3jirxc2WVav8R-W$f zzpM>-AHpK872tEmb3T?P!GntfF~(tcVUh%}C4*1|gO+R`c0@Q1J|%;WSbalA0U~{| z45+S&uIOC^gRblyE{o-(j(OtuBe8PP8$@qNn+#R}`D?T25)M8FRS|{ph@z2uw83el z4ShLv69BPs2>{}b0(APsdRUW*R*75yd1L?io|kr90YY;*)=nY7bU2+0im4A?0`VG3 zT3XnZ3gTp_(^Tf58l=Lv7j>y*qQ;ZYtxQUz+?0YUTC1^i{RD1HYRjU~2DJ6>LZDIF zi8e=+8(rqYOUslU$_YP)$Wbc|3aH!~ah2kQL>nU$2lSZR?tK+<#LLv7+AAIoC5qCc z5$G3jK?O;seu^3k0z+a->c{H(Ui;`Tg23l-#fqYK4gz0n|)2I4Gf>C$DP$)ea z2hwTGuoFIoN+hukSp|q~dr^f^6{+VkkMG4_#+!>UP@#ku0vrd(lLR7iJ%*o+pu;Ijgcy$#cOa84L;feX*c>+rBOBIn`T0Qw4n3Ks14+hz$)%{q|q z(wGju_ZU;Ta*Xv`v$mD#s5-KAbi&Qpz6)l{j3p_zma%u_@BG{CgCDd|e%kt`ddJK} zf-=D!Kj1<@dpIc45*kK)tc29D5Cb?4Rm_gfKHl2@q@5ha~)R9 z4V>2I(=|MG-NU@lzP^H0y9yHt+Ck|5+W(w=w&34~Hxy}yBnj|JJsJjl1m6_{$RWgB z1oszMfWE&CfC1rdV>jYsx;S|f-0&P{bzf!BNx*6ETN_zm@TZMImQ_xnKjssd9>PV>P}YU^KH`0v~R diff --git a/resources/lib/requests_toolbelt/adapters/appengine.py b/resources/lib/requests_toolbelt/adapters/appengine.py deleted file mode 100644 index 25a70a17..00000000 --- a/resources/lib/requests_toolbelt/adapters/appengine.py +++ /dev/null @@ -1,206 +0,0 @@ -# -*- coding: utf-8 -*- -"""The App Engine Transport Adapter for requests. - -.. versionadded:: 0.6.0 - -This requires a version of requests >= 2.10.0 and Python 2. - -There are two ways to use this library: - -#. If you're using requests directly, you can use code like: - - .. code-block:: python - - >>> import requests - >>> import ssl - >>> import requests.packages.urllib3.contrib.appengine as ul_appengine - >>> from requests_toolbelt.adapters import appengine - >>> s = requests.Session() - >>> if ul_appengine.is_appengine_sandbox(): - ... s.mount('http://', appengine.AppEngineAdapter()) - ... s.mount('https://', appengine.AppEngineAdapter()) - -#. If you depend on external libraries which use requests, you can use code - like: - - .. code-block:: python - - >>> from requests_toolbelt.adapters import appengine - >>> appengine.monkeypatch() - -which will ensure all requests.Session objects use AppEngineAdapter properly. - -You are also able to :ref:`disable certificate validation ` -when monkey-patching. -""" -import requests -import warnings -from requests import adapters -from requests import sessions - -from .. import exceptions as exc -from .._compat import gaecontrib -from .._compat import timeout - - -class AppEngineMROHack(adapters.HTTPAdapter): - """Resolves infinite recursion when monkeypatching. - - This works by injecting itself as the base class of both the - :class:`AppEngineAdapter` and Requests' default HTTPAdapter, which needs to - be done because default HTTPAdapter's MRO is recompiled when we - monkeypatch, at which point this class becomes HTTPAdapter's base class. - In addition, we use an instantiation flag to avoid infinite recursion. - """ - _initialized = False - - def __init__(self, *args, **kwargs): - if not self._initialized: - self._initialized = True - super(AppEngineMROHack, self).__init__(*args, **kwargs) - - -class AppEngineAdapter(AppEngineMROHack, adapters.HTTPAdapter): - """The transport adapter for Requests to use urllib3's GAE support. - - Implements Requests's HTTPAdapter API. - - When deploying to Google's App Engine service, some of Requests' - functionality is broken. There is underlying support for GAE in urllib3. - This functionality, however, is opt-in and needs to be enabled explicitly - for Requests to be able to use it. - """ - - __attrs__ = adapters.HTTPAdapter.__attrs__ + ['_validate_certificate'] - - def __init__(self, validate_certificate=True, *args, **kwargs): - _check_version() - self._validate_certificate = validate_certificate - super(AppEngineAdapter, self).__init__(*args, **kwargs) - - def init_poolmanager(self, connections, maxsize, block=False): - self.poolmanager = _AppEnginePoolManager(self._validate_certificate) - - -class InsecureAppEngineAdapter(AppEngineAdapter): - """An always-insecure GAE adapter for Requests. - - This is a variant of the the transport adapter for Requests to use - urllib3's GAE support that does not validate certificates. Use with - caution! - - .. note:: - The ``validate_certificate`` keyword argument will not be honored here - and is not part of the signature because we always force it to - ``False``. - - See :class:`AppEngineAdapter` for further details. - """ - - def __init__(self, *args, **kwargs): - if kwargs.pop("validate_certificate", False): - warnings.warn("Certificate validation cannot be specified on the " - "InsecureAppEngineAdapter, but was present. This " - "will be ignored and certificate validation will " - "remain off.", exc.IgnoringGAECertificateValidation) - - super(InsecureAppEngineAdapter, self).__init__( - validate_certificate=False, *args, **kwargs) - - -class _AppEnginePoolManager(object): - """Implements urllib3's PoolManager API expected by requests. - - While a real PoolManager map hostnames to reusable Connections, - AppEngine has no concept of a reusable connection to a host. - So instead, this class constructs a small Connection per request, - that is returned to the Adapter and used to access the URL. - """ - - def __init__(self, validate_certificate=True): - self.appengine_manager = gaecontrib.AppEngineManager( - validate_certificate=validate_certificate) - - def connection_from_url(self, url): - return _AppEngineConnection(self.appengine_manager, url) - - def clear(self): - pass - - -class _AppEngineConnection(object): - """Implements urllib3's HTTPConnectionPool API's urlopen(). - - This Connection's urlopen() is called with a host-relative path, - so in order to properly support opening the URL, we need to store - the full URL when this Connection is constructed from the PoolManager. - - This code wraps AppEngineManager.urlopen(), which exposes a different - API than in the original urllib3 urlopen(), and thus needs this adapter. - """ - - def __init__(self, appengine_manager, url): - self.appengine_manager = appengine_manager - self.url = url - - def urlopen(self, method, url, body=None, headers=None, retries=None, - redirect=True, assert_same_host=True, - timeout=timeout.Timeout.DEFAULT_TIMEOUT, - pool_timeout=None, release_conn=None, **response_kw): - # This function's url argument is a host-relative URL, - # but the AppEngineManager expects an absolute URL. - # So we saved out the self.url when the AppEngineConnection - # was constructed, which we then can use down below instead. - - # We once tried to verify our assumptions here, but sometimes the - # passed-in URL differs on url fragments, or "http://a.com" vs "/". - - # urllib3's App Engine adapter only uses Timeout.total, not read or - # connect. - if not timeout.total: - timeout.total = timeout._read or timeout._connect - - # Jump through the hoops necessary to call AppEngineManager's API. - return self.appengine_manager.urlopen( - method, - self.url, - body=body, - headers=headers, - retries=retries, - redirect=redirect, - timeout=timeout, - **response_kw) - - -def monkeypatch(validate_certificate=True): - """Sets up all Sessions to use AppEngineAdapter by default. - - If you don't want to deal with configuring your own Sessions, - or if you use libraries that use requests directly (ie requests.post), - then you may prefer to monkeypatch and auto-configure all Sessions. - - .. warning: : - - If ``validate_certificate`` is ``False``, certification validation will - effectively be disabled for all requests. - """ - _check_version() - # HACK: We should consider modifying urllib3 to support this cleanly, - # so that we can set a module-level variable in the sessions module, - # instead of overriding an imported HTTPAdapter as is done here. - adapter = AppEngineAdapter - if not validate_certificate: - adapter = InsecureAppEngineAdapter - - sessions.HTTPAdapter = adapter - adapters.HTTPAdapter = adapter - - -def _check_version(): - if gaecontrib is None: - raise exc.VersionMismatchError( - "The toolbelt requires at least Requests 2.10.0 to be " - "installed. Version {} was found instead.".format( - requests.__version__ - ) - ) diff --git a/resources/lib/requests_toolbelt/auth/__pycache__/__init__.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/auth/__pycache__/__init__.cpython-38.opt-1.pyc deleted file mode 100644 index f5182db8eeb0b96569816a75a13774cad098c913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmYk0JqiLb5QVc~A%X|7S+GK`rPRy<)m%!w70IjXJN$a}1-22UuF*}-- IAy2V-14J`9Gynhq diff --git a/resources/lib/requests_toolbelt/auth/__pycache__/_digest_auth_compat.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/auth/__pycache__/_digest_auth_compat.cpython-38.opt-1.pyc deleted file mode 100644 index d95e6e290c24f8ffc1fc04653ac81c9f44ab546a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmah}%Wl*#6m{O2X@_S4@sehRG@B7fY(NN#s00$ILZWP>h#4+F=bZg=`>YwPVswSx=KDg2I-*k(z1 zdf+vB$@h>*Rs<+JB-tmdh(s=8k(>lYEK-r-N+Kc@Gw^G$wQD37RlTzzZE32;X;ad> zmVV!)0HgA=iL_W4sZ5uMuBnV%a$?)Hg z!;QzY*IHB^Jb2XeMjOZHN`l~y&$tk}wzEdHJ5@a;tMs%Iyv7APGt%nTl+w;rHOHto z3Y^wzE|r^+V>1w)T|fc!CQq9Kp955NPXhQMz@8Q@CLjDNz^9h0e#Z<*#sz}Q1XMn!fZQ=;2vwIQ zBl94Shf%jyVt8gyPS$bSR|w1QkP-FAaahF2u&t3L$grW2rO2|1Aex)N=iEZsnfC_wE?sDa$M%zt4s@pwyc>e)l zbtwCt_9sI_#bvG%P~N&*nd`)E5ZolVMR1$o4#9Z_UBeA>&r%BWVEFsb&`!nj5Py=W z$b>F20r|3_e2VobOV@qZ$J9vv!r7~KZ}0fx;!ABHqMc*u*q{q!a;V<+nPx%WxV7}9%>w3)t#RId|M?F0=eL3el-*@(Rl}eG} z`orIEi-+rs{ey0nFAq0&(DWl1!CFjk;q>^4({ecVUG&|Si@qmvJ?|vf@=x-uJZB#< z;fwrpCi2qh2G8790V9DZV5A@mxG#$0W7a5*u0J`F^^;f(d$Qh+`$^R4clw9*1f%U( z$ofI7>K_fI)^~@=(e~Ha25WHRMYzLnz8%NM9jU+OH13%7P;?HZPC|Mfw&RmQl$fhW zNiqlrD*obZ`nXNgEME?8?x5*+VI*sDoYfJ$w+fyEwS9cx{|9Dev;GGj?fY!a1DP^{mZ}{Ry)@KF&|r zQ#T1xSMX zDrzUQMG=p%8!2;TpyVJ@G^5R*3?Y>VPo6ydAkv*SL34o-Q>2Aun_x;C>DBRRN_SKunCgf3y@yC!8 zJ9Z0W-h3EA4x)>u1EE0=G0F+U{`YMltcAf_0B=PFQt%Td$e|XdU~CnPPtYZ zW^xvK#?Q9iY~%oFOTXH`^SRvlbY8GtS8_WKJZgPmxKTib88Nf~Ds_3211nkITkSOP3OL*8XMMfyhQNj+H4 z77{rsBov{q;hUTuf_v0m+*!YyYF0$eD~##=tj;jS>^UV{BNK#$h^Tus&3%}2ZVCWP z57h|*x`-Bqb{8$H2SE8$5sa>_y6^wJD5xPtYxAODy}Pke6l{*SE*1rfQl)V%OFWxc zl#PlASZ$KoB6E$*H^^ABr;w`G$&hNQZ<3+%a7oAKfLl0TQEDoZSoIw;buw>|`7W77 z2K@(_-uWY5)%3oVX=hcYkz+4>XD-!0xEQ<3gn#GNdi?;aBn;))RIdg9D-~XuVo!^@ zDfQ(+eLr8JKC9A8itIES&H|2&g7PuDStkXyzFLyuIaD)`5h1G|ld;6O5ZN8IO`{ha z_X=U%(Rf!=gc+C!fBy1 z-5~Q5807U&sehBq&&YgChGgnxk*qEF;8ik7oBuOfCX;+FldoNH$XqK|eK6BX%WgyhfY|`0AVxqJq#@5QjyjxI*s~(j3rGgOuwL8Qj{gC zqX&OMyIdz8S;SYe#UBHIZqV=7awZA0E?d}|SF_hfaF zHv0(8q7ymnq3&huMKvF62IZh&57TUv>_R4({d1Sq4wi~6Mo4c|gN)6rfYc8EO-L)Y fnL`$tVtbZng4>zqzfZBWFz`_5mz_1Y_VK>~c7WVD diff --git a/resources/lib/requests_toolbelt/auth/__pycache__/http_proxy_digest.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/auth/__pycache__/http_proxy_digest.cpython-38.opt-1.pyc deleted file mode 100644 index 60dbde7265ad097ca24742804f872e85d7512442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3270 zcmZ`*UvJ#T5#L?%cocQ|W64gP*a+A*FmQn*G;I>2s*%QU96Jaq82NeXxUFmq@ zk(cFCvJU5$%0Qk{6n$wQPmg}hx9C^c*FO0xY^(ObKXQ6=Qf#uWKmPDpUxmX$R+$QuA~$iGr}=L9=-IO;PjvC(@XK^pmF8Y$ z`fG1+AKT~(+fIsNFIA;&RVK~KHyrdXx2ut?nWGroQBn*?u}Nsp`H!ThuiQbW7^G%B zA$iYH?w}%z;vQI3hCyL5OdC6zg~x zmL|?rq}4zrrd$unf_XLERyr(p!V_|s=8{fQq3OqFz1~ho;EFKGQrr^`vO{b(`mpBF>e~v2Kizkbntm9ExjG0{p6J7oQ4;LssK`ro8|RpQQ5jGm?r>!2 z4e6??gj73)4&&34=m;X`@lb_vF2hk=mIsBFYhk*k)^48&v0bH^oV{pY#Zu|U2Ig?2 zer|#^ZzLVJPizTyXzgV2ZkdpC%svMLYD;M42j~nle8P^zKuq{V{DZ@3F^`-Ho4Usg zGlu6A8@l$emTi^QNNMe1r}d)9E@KmK#ZtoLTcfPnP4l(= zRH|Yvm2nP2xrGNQDxIiuD@(UAtKYDUOi^UpDl=Q;Vq1Mm53lBT?kZoD${)~O)h{4>k1y39Cxfxg8t=j^X67k_DdmTz=j zP1|c{)$=FEin#j()+EZL5e+AkKq+lM>@y+r89A)3xD~{0DX`6-+8_a&eqhMV72^e z0v|H%sZX>4a2ecf>3@$kJV+qtaKrpS?0NbJ8Gt9C5&dQGE}M3anVjDf`acuAFm7+( zVS=8KeDjQ>1CAeX`vTpL^AGbK+F?;En<>{4)J6ItK+Ul``Rd;%oXvY8& zK*%+W-$DDuu|O~6++Es#eemwY-KpW`WoyzJyf?iu;q?x8(u(FMEsBv%WKTfP;`m>W z0FlUzb)xv>H+RA!2Tm7x0?;jhuo?)i!rgQqSUYO61W_8E_11k@za_Z0^;`p{`+Z> z0smz9^sD>fo!|cM({<8fc4+vg=bO)Fi9c*$zR7qO4z)~EL=vheMU|T$SD#Q;{OBI= ztkCJW&X|B_LJjL0T`9nSoRw;P<2hv@B%oQA3DXj}5s{h7?oB&S;9Qlc7AU{q3fpdk zD6IoDvhA-Q*TG`l2-Spb4N+3`HN~X8f@E9*l+(mS%^vHN)wXq$ew^9%3HaJpRvaiz zHA`;r4p1N~N(h-0KwUDTeMh}8I>sp{Wewmu8pIkIW>)7oIzF&VBP7>Yt5fRgB`MN+ zLj{va>r^_k0WQr^B%qw2?2}7qmzJi`ht`WnBM`b?165pW)OyT%WnDd4moBp+(mw+( z8}w^`jPQsbV?+4`I_6#H1hs;Tx1Q7Cu5kJCTdxJ$TOn5XGMevt;0X9t-odKN+_!;P z#x75|V*LJP=yG<^1xO*2oucz+m>|$t9hwMe{Q+jkPdkhZyyT^ zVuY5nq2I@D>(5-V>o+hNARC(~rx4ShfJ1*u9o?jVO&b=p+JzC3-}@*-^&dey$xZqX z#B>qqsZKz4%c3a4V!4ctabI}+#0btJ|9^S5+16dABdAzHsS!j`Q!8WKiK1_-I6GNs zN0BTNkcC#{Y{OBCPzb($xbgVugZuY3A85*Cb(*(60u=R$Icz-ME0uvdwf40-`aW2Z zo}0oXQ6&92wd#aXr(1$|3YzjNI-k4#vgmk%2cFA=cBk#H)!C;T=!aO>kI<31o1&!l u{W_BLO>7s(yY3jZdBotd>B(f!uH+gRgsa*8@(xv(vSaDD=*L~fA) diff --git a/resources/lib/requests_toolbelt/multipart/__pycache__/__init__.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/multipart/__pycache__/__init__.cpython-38.opt-1.pyc deleted file mode 100644 index 0b8f7dc62d26708d1b9e91a177bf54e0ba8c7daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmaJ<&2AGh5Z>MVY_e%+3rHNe_`rc6NPonIs32&XLj|pn3LI98EN5rhSn{qH+gp*m z5s$(vti*{EPk_V;J843Q1h)KXzVX=O`8@Bt-N>`!(*|@&AHvMb{L1&ZpJML<2JP72-qHOrZyRd#kew z8JG!zOm&~jJ#r}(v82o}H_ULEN6{da#Z>XDi5ZZGX^$N4A3P=FDLG|18A=6Ar;@N7 z9GQ}1%r7|#hz5eEm}?x6R|QKaNUjh2`;UpXuXuAh9Gzc`=E*XtkN_ISg^qssR>xjY z?VK%38s(`3RMovr&za1*k*epf1)tzN*!sw6Rw!AZI+iefYo!^=+}M&vpHnPcSuW;W z=Brz8_TNnlT*b_Gms&qr>NUH+UiIU@OP+PsDxEzVE@fLN_Md|)uw^UTV4kWwXgFwE zsM?eoZUjpJ=y2T&9)!@;wKT}Wlv*gh1PVF?3}xlRgEUh%wt%>iYf z1Iw*LCknMJRf;+hd~Df9J147lPAKK}lPT>N)2elpNhk%ra4n)ASg1!k{+63T-Jj1| J;BU;IzX41qA7TIi diff --git a/resources/lib/requests_toolbelt/multipart/__pycache__/decoder.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/multipart/__pycache__/decoder.cpython-38.opt-1.pyc deleted file mode 100644 index 85f841d24c511d65510e48a9fc0b2bbd9a734a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5849 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 I$+K9z0fdb?v;Y7A diff --git a/resources/lib/requests_toolbelt/utils/__pycache__/dump.cpython-38.opt-1.pyc b/resources/lib/requests_toolbelt/utils/__pycache__/dump.cpython-38.opt-1.pyc deleted file mode 100644 index a60a5ff01fe954a7d95be158c82ec63053c6fb04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5646 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