From 6380ef0f266a5fff898c18953d6b03ca320b2fd4 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Mon, 11 May 2026 15:41:27 +0300 Subject: [PATCH 01/17] docs: adding a new sponsor --- README.md | 10 ++++++++++ docs/README_AR.md | 10 ++++++++++ docs/README_CN.md | 10 ++++++++++ docs/README_DE.md | 10 ++++++++++ docs/README_ES.md | 10 ++++++++++ docs/README_FR.md | 10 ++++++++++ docs/README_JP.md | 10 ++++++++++ docs/README_KR.md | 10 ++++++++++ docs/README_PT_BR.md | 10 ++++++++++ docs/README_RU.md | 10 ++++++++++ docs/index.md | 3 +++ images/9proxy.png | Bin 0 -> 6810 bytes 12 files changed, 103 insertions(+) create mode 100644 images/9proxy.png diff --git a/README.md b/README.md index 6c087b8..afd5d56 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,16 @@ MySpider().start() Swiftproxy provides scalable residential proxies with 80M+ IPs across 195+ countries, delivering fast, reliable connections, automatic rotation, and strong anti-block performance. Free trial available. + + + + + + + + 9Proxy provides residential proxies from just $0.015/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app. + + Do you want to show your ad here? Click [here](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_AR.md b/docs/README_AR.md index 7c28c79..1f18a8d 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -188,6 +188,16 @@ MySpider().start() يوفر Swiftproxy بروكسيات سكنية قابلة للتوسع مع أكثر من 80 مليون عنوان IP في أكثر من 195 دولة، ويقدم اتصالات سريعة وموثوقة، وتدوير تلقائي، وأداء قوي ضد الحظر. تجربة مجانية متاحة. + + + + + + + + يوفر 9Proxy بروكسيات سكنية بدءًا من 0.015 دولار فقط لكل IP أو 0.68 دولار لكل جيجابايت. أكثر من 20 مليون عنوان IP في أكثر من 90 دولة. جلسات ثابتة أو متناوبة، تتم إدارتها من تطبيق سطح المكتب أو الجوال. + + هل تريد عرض إعلانك هنا؟ انقر [هنا](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_CN.md b/docs/README_CN.md index b4a1dd1..01e8096 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy 提供可扩展的住宅代理,覆盖 195+ 国家/地区的 8000 万+ IP,提供快速可靠的连接、自动轮换和强大的反屏蔽性能。提供免费试用。 + + + + + + + + 9Proxy 提供住宅代理,价格低至每个 IP 仅 $0.015 或每 GB $0.68。覆盖 90+ 国家/地区的 2000 万+ IP。支持固定或轮换会话,可通过桌面或移动应用进行管理。 + + 想在这里展示您的广告吗?点击 [这里](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_DE.md b/docs/README_DE.md index ee133de..c8f34c5 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy bietet skalierbare Residential-Proxys mit über 80 Mio. IPs in mehr als 195 Ländern und liefert schnelle, zuverlässige Verbindungen, automatische Rotation und starke Anti-Block-Leistung. Kostenlose Testversion verfügbar. + + + + + + + + 9Proxy bietet Residential-Proxys ab nur 0,015 $/IP oder 0,68 $/GB. Über 20 Mio. IPs in mehr als 90 Ländern. Sticky oder rotierende Sessions, verwaltet über die Desktop- oder Mobile-App. + + Möchten Sie Ihre Anzeige hier zeigen? Klicken Sie [hier](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_ES.md b/docs/README_ES.md index 056d7ba..c781d8c 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy ofrece proxies residenciales escalables con más de 80 millones de IPs en más de 195 países, brindando conexiones rápidas y fiables, rotación automática y un sólido rendimiento anti-bloqueo. Prueba gratuita disponible. + + + + + + + + 9Proxy ofrece proxies residenciales desde solo $0,015/IP o $0,68/GB. Más de 20 millones de IPs en más de 90 países. Sesiones fijas o rotativas, gestionadas desde la aplicación de escritorio o móvil. + + ¿Quieres mostrar tu anuncio aquí? Haz clic [aquí](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_FR.md b/docs/README_FR.md index 862e989..a127af1 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy propose des proxys résidentiels évolutifs avec plus de 80 millions d'IPs dans plus de 195 pays, offrant des connexions rapides et fiables, une rotation automatique et de solides performances anti-blocage. Essai gratuit disponible. + + + + + + + + 9Proxy propose des proxys résidentiels à partir de seulement 0,015 $/IP ou 0,68 $/Go. Plus de 20 millions d'IPs dans plus de 90 pays. Sessions fixes ou rotatives, gérées depuis l'application de bureau ou mobile. + + Vous souhaitez afficher votre publicité ici ? Cliquez [ici](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_JP.md b/docs/README_JP.md index a82b916..e359844 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy は195カ国以上、8,000万以上のIPを備えたスケーラブルな住宅用プロキシを提供し、高速で信頼性の高い接続、自動ローテーション、強力なブロック回避性能を実現します。無料トライアルあり。 + + + + + + + + 9Proxy はIPあたり $0.015 またはGBあたり $0.68 からの住宅用プロキシを提供します。90カ国以上で2,000万以上のIPを保有。固定セッションまたはローテーションセッションをデスクトップまたはモバイルアプリで管理できます。 + + ここに広告を表示したいですか?[こちら](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646)をクリック diff --git a/docs/README_KR.md b/docs/README_KR.md index 9bf98c4..79feb97 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -188,6 +188,16 @@ MySpider().start() Swiftproxy는 195개국 이상에서 8천만 개 이상의 IP를 갖춘 확장 가능한 주거용 프록시를 제공하며, 빠르고 안정적인 연결, 자동 회전, 강력한 차단 방지 성능을 제공합니다. 무료 체험판 이용 가능. + + + + + + + + 9Proxy는 IP당 $0.015 또는 GB당 $0.68의 저렴한 가격부터 시작하는 주거용 프록시를 제공합니다. 90개국 이상에서 2천만 개 이상의 IP를 보유하고 있으며, 고정 또는 회전 세션을 데스크톱이나 모바일 앱에서 관리할 수 있습니다. + + 여기에 광고를 게재하고 싶으신가요? [여기](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646)를 클릭하세요 diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index 0b6aa58..f9e8b15 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -190,6 +190,16 @@ MySpider().start() Swiftproxy fornece proxies residenciais escaláveis com mais de 80M de IPs em mais de 195 países, entregando conexões rápidas e confiáveis, rotação automática e forte desempenho anti-bloqueio. Teste grátis disponível. + + + + + + + + 9Proxy oferece proxies residenciais a partir de apenas $0,015/IP ou $0,68/GB. Mais de 20M de IPs em mais de 90 países. Sessões fixas ou rotativas, gerenciadas pelo aplicativo desktop ou móvel. + + Quer mostrar seu anúncio aqui? Clique [aqui](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_RU.md b/docs/README_RU.md index dbe5b63..70f825e 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -191,6 +191,16 @@ MySpider().start() Swiftproxy предоставляет масштабируемые резидентные прокси с более чем 80 млн IP в 195+ странах, обеспечивая быстрые и надёжные соединения, автоматическую ротацию и высокую устойчивость к блокировкам. Доступна бесплатная пробная версия. + + + + + + + + 9Proxy предоставляет резидентные прокси всего от $0,015 за IP или $0,68 за ГБ. Более 20 млн IP в 90+ странах. Закреплённые или ротационные сессии, управление через настольное или мобильное приложение. + + Хотите показать здесь свою рекламу? Нажмите [здесь](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/index.md b/docs/index.md index 272a86a..f801b33 100644 --- a/docs/index.md +++ b/docs/index.md @@ -86,6 +86,9 @@ MySpider().start() + + +

diff --git a/images/9proxy.png b/images/9proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a196910cd3743fc22d72dd4c79f7811c3fcb1b GIT binary patch literal 6810 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 py?7bV?=gFn9{o24?$OtW2P%z@UqW4dvi Date: Fri, 15 May 2026 09:35:04 -0400 Subject: [PATCH 02/17] docs: fix Docker image name in MCP example --- docs/ai/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ai/mcp-server.md b/docs/ai/mcp-server.md index 534c525..0ab72b5 100644 --- a/docs/ai/mcp-server.md +++ b/docs/ai/mcp-server.md @@ -129,7 +129,7 @@ If you are using the Docker image, then it would be something like "ScraplingServer": { "command": "docker", "args": [ - "run", "-i", "--rm", "scrapling", "mcp" + "run", "-i", "--rm", "pyd4vinci/scrapling", "mcp" ] } } From ed008efcf77e13048192579d465b0ed2192d1925 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Mon, 18 May 2026 19:33:49 +0300 Subject: [PATCH 03/17] docs: updating a sponsor image --- images/IPFoxy.jpg | Bin 5746 -> 6136 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/IPFoxy.jpg b/images/IPFoxy.jpg index 8d7efffa2b3381a3b84db7f261be814b3c201c6d..29a2484c489367a5630ea779017e684ff06c4664 100644 GIT binary patch delta 6006 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 delta 5613 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 H3_t(bx8;_q From b31dc50a063418307c6572cf01a1a9d14ccda8fc Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Wed, 27 May 2026 04:10:38 +0300 Subject: [PATCH 04/17] docs: remove an old sponsor --- README.md | 2 -- docs/README_AR.md | 3 --- docs/README_CN.md | 2 -- docs/README_DE.md | 2 -- docs/README_ES.md | 2 -- docs/README_FR.md | 2 -- docs/README_JP.md | 2 -- docs/README_KR.md | 2 -- docs/README_PT_BR.md | 3 --- docs/README_RU.md | 2 -- docs/index.md | 2 -- images/crawleo.png | Bin 27953 -> 0 bytes 12 files changed, 24 deletions(-) delete mode 100644 images/crawleo.png diff --git a/README.md b/README.md index afd5d56..0a92648 100644 --- a/README.md +++ b/README.md @@ -208,8 +208,6 @@ MySpider().start() # Sponsors - -
diff --git a/docs/README_AR.md b/docs/README_AR.md index 1f18a8d..8fc30d1 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -204,9 +204,6 @@ MySpider().start() # الرعاة - -
- diff --git a/docs/README_CN.md b/docs/README_CN.md index 01e8096..0b87617 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -204,8 +204,6 @@ MySpider().start() # 赞助商 - -
diff --git a/docs/README_DE.md b/docs/README_DE.md index c8f34c5..dddaae5 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -204,8 +204,6 @@ MySpider().start() # Sponsoren - -
diff --git a/docs/README_ES.md b/docs/README_ES.md index c781d8c..7523c62 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -204,8 +204,6 @@ MySpider().start() # Patrocinadores - -
diff --git a/docs/README_FR.md b/docs/README_FR.md index a127af1..3bfbb86 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -204,8 +204,6 @@ MySpider().start() # Sponsors - -
diff --git a/docs/README_JP.md b/docs/README_JP.md index e359844..9047b32 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -204,8 +204,6 @@ MySpider().start() # スポンサー - -
diff --git a/docs/README_KR.md b/docs/README_KR.md index 79feb97..09c1fa6 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -204,8 +204,6 @@ MySpider().start() # 스폰서 - -
diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index f9e8b15..acba5b6 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -206,9 +206,6 @@ MySpider().start() # Patrocinadores - -
- diff --git a/docs/README_RU.md b/docs/README_RU.md index 70f825e..89a7724 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -207,8 +207,6 @@ MySpider().start() # Спонсоры - -
diff --git a/docs/index.md b/docs/index.md index f801b33..6f83796 100644 --- a/docs/index.md +++ b/docs/index.md @@ -91,8 +91,6 @@ MySpider().start()

- -
diff --git a/images/crawleo.png b/images/crawleo.png deleted file mode 100644 index 7549f8523f7999536fd65208847f4dad7f487354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27953 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 i#4to1*WhKWyZj#r%!^anUvQxS0000 Date: Thu, 28 May 2026 00:53:54 +0300 Subject: [PATCH 05/17] docs: add a new sponsor --- README.md | 10 ++++++++++ docs/README_AR.md | 10 ++++++++++ docs/README_CN.md | 10 ++++++++++ docs/README_DE.md | 10 ++++++++++ docs/README_ES.md | 10 ++++++++++ docs/README_FR.md | 10 ++++++++++ docs/README_JP.md | 10 ++++++++++ docs/README_KR.md | 10 ++++++++++ docs/README_PT_BR.md | 10 ++++++++++ docs/README_RU.md | 10 ++++++++++ docs/index.md | 3 +++ images/NodeMaven.png | Bin 0 -> 27721 bytes 12 files changed, 103 insertions(+) create mode 100644 images/NodeMaven.png diff --git a/README.md b/README.md index 0a92648..af65e37 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,16 @@ MySpider().start() 9Proxy provides residential proxies from just $0.015/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app. + + + + + + + + NodeMaven - reliable proxy provider with the highest quality IP on the market. Use promo code SCRAPLING35 for 35% discount on proxies. + + Do you want to show your ad here? Click [here](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_AR.md b/docs/README_AR.md index 8fc30d1..87b69e2 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -198,6 +198,16 @@ MySpider().start() يوفر 9Proxy بروكسيات سكنية بدءًا من 0.015 دولار فقط لكل IP أو 0.68 دولار لكل جيجابايت. أكثر من 20 مليون عنوان IP في أكثر من 90 دولة. جلسات ثابتة أو متناوبة، تتم إدارتها من تطبيق سطح المكتب أو الجوال. + + + + + + + + NodeMaven - مزود بروكسيات موثوق يقدم أعلى جودة IP في السوق. استخدم كود الخصم SCRAPLING35 للحصول على خصم 35% على البروكسيات. + + هل تريد عرض إعلانك هنا؟ انقر [هنا](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_CN.md b/docs/README_CN.md index 0b87617..d1791ba 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy 提供住宅代理,价格低至每个 IP 仅 $0.015 或每 GB $0.68。覆盖 90+ 国家/地区的 2000 万+ IP。支持固定或轮换会话,可通过桌面或移动应用进行管理。 + + + + + + + + NodeMaven - 市场上 IP 质量最高的可靠代理提供商。使用优惠码 SCRAPLING35 可享代理 35% 折扣。 + + 想在这里展示您的广告吗?点击 [这里](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_DE.md b/docs/README_DE.md index dddaae5..fecb0e1 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy bietet Residential-Proxys ab nur 0,015 $/IP oder 0,68 $/GB. Über 20 Mio. IPs in mehr als 90 Ländern. Sticky oder rotierende Sessions, verwaltet über die Desktop- oder Mobile-App. + + + + + + + + NodeMaven - zuverlässiger Proxy-Anbieter mit der höchsten IP-Qualität auf dem Markt. Nutze den Promo-Code SCRAPLING35 für 35% Rabatt auf Proxys. + + Möchten Sie Ihre Anzeige hier zeigen? Klicken Sie [hier](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_ES.md b/docs/README_ES.md index 7523c62..db4aba7 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy ofrece proxies residenciales desde solo $0,015/IP o $0,68/GB. Más de 20 millones de IPs en más de 90 países. Sesiones fijas o rotativas, gestionadas desde la aplicación de escritorio o móvil. + + + + + + + + NodeMaven - proveedor de proxies confiable con la mayor calidad de IP del mercado. Usa el código promocional SCRAPLING35 para obtener un 35% de descuento en proxies. + + ¿Quieres mostrar tu anuncio aquí? Haz clic [aquí](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_FR.md b/docs/README_FR.md index 3bfbb86..d797345 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy propose des proxys résidentiels à partir de seulement 0,015 $/IP ou 0,68 $/Go. Plus de 20 millions d'IPs dans plus de 90 pays. Sessions fixes ou rotatives, gérées depuis l'application de bureau ou mobile. + + + + + + + + NodeMaven - fournisseur de proxys fiable offrant la meilleure qualité d'IP du marché. Utilisez le code promo SCRAPLING35 pour obtenir 35% de réduction sur les proxys. + + Vous souhaitez afficher votre publicité ici ? Cliquez [ici](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_JP.md b/docs/README_JP.md index 9047b32..c139772 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy はIPあたり $0.015 またはGBあたり $0.68 からの住宅用プロキシを提供します。90カ国以上で2,000万以上のIPを保有。固定セッションまたはローテーションセッションをデスクトップまたはモバイルアプリで管理できます。 + + + + + + + + NodeMaven - 市場最高品質のIPを提供する信頼性の高いプロキシプロバイダー。プロモコード SCRAPLING35 でプロキシが35%割引になります。 + + ここに広告を表示したいですか?[こちら](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646)をクリック diff --git a/docs/README_KR.md b/docs/README_KR.md index 09c1fa6..fb4ce92 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -198,6 +198,16 @@ MySpider().start() 9Proxy는 IP당 $0.015 또는 GB당 $0.68의 저렴한 가격부터 시작하는 주거용 프록시를 제공합니다. 90개국 이상에서 2천만 개 이상의 IP를 보유하고 있으며, 고정 또는 회전 세션을 데스크톱이나 모바일 앱에서 관리할 수 있습니다. + + + + + + + + NodeMaven - 시장에서 가장 높은 품질의 IP를 제공하는 신뢰할 수 있는 프록시 제공업체입니다. 프로모 코드 SCRAPLING35를 사용하면 프록시 35% 할인을 받을 수 있습니다. + + 여기에 광고를 게재하고 싶으신가요? [여기](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646)를 클릭하세요 diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index acba5b6..8423225 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -200,6 +200,16 @@ MySpider().start() 9Proxy oferece proxies residenciais a partir de apenas $0,015/IP ou $0,68/GB. Mais de 20M de IPs em mais de 90 países. Sessões fixas ou rotativas, gerenciadas pelo aplicativo desktop ou móvel. + + + + + + + + NodeMaven - provedor de proxies confiável com a mais alta qualidade de IP do mercado. Use o código promocional SCRAPLING35 para obter 35% de desconto em proxies. + + Quer mostrar seu anúncio aqui? Clique [aqui](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/README_RU.md b/docs/README_RU.md index 89a7724..0076e9e 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -201,6 +201,16 @@ MySpider().start() 9Proxy предоставляет резидентные прокси всего от $0,015 за IP или $0,68 за ГБ. Более 20 млн IP в 90+ странах. Закреплённые или ротационные сессии, управление через настольное или мобильное приложение. + + + + + + + + NodeMaven - надёжный провайдер прокси с самым высоким качеством IP на рынке. Используйте промокод SCRAPLING35 для получения скидки 35% на прокси. + + Хотите показать здесь свою рекламу? Нажмите [здесь](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646) diff --git a/docs/index.md b/docs/index.md index 6f83796..65ea7fd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -89,6 +89,9 @@ MySpider().start() + + +

diff --git a/images/NodeMaven.png b/images/NodeMaven.png new file mode 100644 index 0000000000000000000000000000000000000000..315348ca0277c5102f9570ed7a9faff1be3acb9e GIT binary patch literal 27721 zcmV(&K;gfMP)?1=OOQVzW;CiYwfDD&pGdK?@dHM>)x|>?W$F4 zty;B)s@lUl`NZtFS(!`gx|-^@F;_a#^+qx1M5ozgqpaz?F;QOsbc!~!nF>|sw4w4z z)Xrw#cM**v8D=tD7mk{*<>1>W>uR}Cra?nzs0cPvz>Axi+9|)TfAG5o7b=4{uFZ38 zLwmu|i%Gz%T+C0VZfnG9H?$XO!Gg!h?FTqzz!x-?qyKPC8Od!U+Z~LHJ{8GPo;GnTA!g~-ddaaoNMV2$xclR^?iM-Q{UF6N$cks9UlqTAA&dMRu-yrd}=KYusimL)UlmQbF=W z9rw(CWWcvBC90yVh8fHRPQ#|cVG{6SBjQYb^P!exp~MdM|4+nv;;9YW7i*h%X>hc#VO zUe)KFP}z=bdwjbhie(7~5*XS*nl+cB##Cd7L^%dyDg|iDo9*)4E56`6+%~eAJ+*M9 zm-1Q05F@Sj7&1{U=w&$yhym$ZQF$7$rnw=5w|a98eXg(64?f9*kGka1c^kWmySfIy zq+DJc=Yqh3#|6zybD}ND^fLOo%*STD$x~n3=fSxghM7P($kgcCY=Ny>z9xA%Eyq_Y zm!7N>t{N*G{adBTt9V&TWJO_*BaBD-k@VoD=O_8>%T}OWC{F1tRQ!My>}t~{IO_+~ zc{-0EY>FHmDMOGlDkh~C5D`di!r;_E0G`k!PK=GwCncQNZ_x$aF&5L#{pf}H=fg|-PREt4%H6u0Hn<*h4C8BFw_GlM=`-+)TXtJ z>zr1S&(tP;OK2p}aNZmy6?p)^3Nn_P`;s%Tp3ENcAc3!%KKC@pC!IWx>jP$4;fk^} z*v%!pyz$soFNfN?G-bOrWP{i>i8WsY8~%3R*s zxz$jv%VxaU2AJAza1`0DKYLcfvS2>BZIlf%n1@((l@5ja1+=vh(RW>3dp*7!Q#j8+ zLZ6TuMiANI0Bei957m*OHO-b8?>yw7^J!-R(#kN;#Nhg!dqHp$x^JY9YfLK%4Ho;Rh zlAsplf>ZAX{9!Ose(?=nj!vc%c%y)Fcuj-A;ImKEdAjTNl&dW0a7s8zllMwTJbADa zhBNDICl5r{WofPKPFoLHHSiUH8FlmAq4p9W3qnrjW0|4YX$e?zPs3lPq{)V7O^LkJ z=uhqHz5+d`X07?ZX>PklyHh5?n;Njww%di@wJ|5rR7#pBX$&FhmyH-v0o*{p2? zeCTU$ybV5EBwnAT63Hg?JGwm_V;5^*&xiY}ArB>#9tVf38Yk0fE}HtJP3hQRma*d2 z>A-+kMQ2RiUCWk>weuyx*D?m?!Qv{x`Y}tezE9hwoqF2KhJH`CkbT3COqR=L;43pb zIPb!ELurK@=2+LkmHr_tuDeBxM17H90W!<>@sq|g+c3G z6f>vxAtbd2ySc*SnWp)Krul()-z@UR*m!fRDV7bpIS8Q;c9KObeDphbrJT}Crj=KF z`%k93xI7mqP0xtH#-ME^YEP%ZJ*>HD4;?2PvT??gS$IJWZ$VFn z9nnT5b}qye5=Z9-twx^#Ncuk8@#O8JZ0kW|R?;@8vM%X!cK@8qqdDcO zdE%@SeBf-?Lv9;}J4D|(=OTGk^B0y4Xek}>ketx&{_lCcbB z-ff(Fvtbx84@y{t_eumzZ*qVl?|O$XCuQ`xT0sLD*B$+BanX7|+iw$ncKc9Htt zDM_a|9?iXjeb2CTw~^AA5+RDSsN`Wt6r<=Nxl}O6xu)2TX70Rk8A9cA?Xs>JVNN{L zaN(nE8o?*9=FNF{_S!h6{c*pz@lKrw8J;V>!HKvn$C%>Bxo=BNA9-otCtrt1hT?2L z6f9)MiW%2~^QhqC>k$?kPb(bb%$ik-x0Bt|tHelFF`SJ50G(L_dl$cH_*U$#lKWQe zc2eIxO4$^1;rZymnDsgj2AD<*K-OoTb#*Foo`G@Hv{Cittz9!p@HgXYk=yMYm)#Bn zkF_&Z16|VtBKaHoR*i!-F%fIE@!}YkrM|zehug8DFKe6ZMZ}Dz!ZmKVjHJq9`n;kp zitQaEyNvc`O|RCv6v8G%w*j(Uv28+S>#A6WRk>BQoWb z5xq(ywZdXtfTWRlifSeA4bNifmE4nE83SoJKDw{K8^3dHAo{)l>%?#x-hHaYJ2++k-6ZiQf*6ikn8wSk z5$;Kkr^@5&#K9S3$f;mn51r@%ua5k7Ec5E%V;eMjV`YT<>s8HDXT~yL1-~cd+QedH zrNB8|8#Ktq(^kPvLA|L&GZ}Nh+sNn~W=aQIG)%?MGk6?TY47`Vre)Hurv!)4rp_*R zXGKMXG3XYB%^&b>r@7LM{?T%A`fi8iwj6mjoRphMel&9w`6Mg105Yfk4DPa2d8k#P z09D35<+0%mJ}P_{P>1`_F?Fsu084wo4W$up#69tfM5i=fxLM9;gY9!2nZ9_G@1ZQ2 z0p%!Kyy6m;u^hZWswsBR0FzDGXvpNv-e^eWQIE zv+4$TXq&#(nt6atb($MW5siJ{H+kZ`V7zLXPNs)T{Dbz3UavSQAh+p`1CL#qvVN0l z+{%5Jhur#VjAiQ<+lNTwO+(+Tcis;!ba&$Bp}%+LUpN+#}DUj!K6}qEsWv^ zGhrA^-Q`niYh@~K+z0K97bDKd*&?v6#J(>uJ(-we)l99e6$re1Y8$q3RTPVyeoAKTAc2(v3(cdnOtIBYb{%{{S6`qQIDjP;dA)_)VIEI9YwTCUzaB_;w=FpX4 z1X5QPNJ+C9VK=y@RTqva~;Qgxgpo1z46nUxQ!qK@7zXMG}b}< z%xSFoGv5^^`H%a^n+;`O*XKnd*tlr z^Wjr>#=- zI_Xg0d*R!%&ewi_}{%=pWH{)YL>AQke zP6d7e8yoL3Ui-fFeD~#hBcE);6KNT(@#yuMS&7#)a1 zDz6QV$mq@ihglmQjO^&PU1n-qUBJrP@_FQp+`&g61Xfp)BoP(Nc@Ni-yY6;}qz&8J zM$2dq9ZaP0Sc`)f=i$rsi*;bOiDkbNhW;r(GV)dCm%yDZ$$b&@Sz`^vRxN7WslC%!Bspr0KCwXvSTe}A12(-PSCTpBAAC9R~ zf*T%5ge=#X0k@SfIKgUd+&rjp;SBONO&G3V=ZzXejm8|vRRig!;n0o93l-tz6shNz zg4$j=gJgXGcZa^b&x5_;FqU?m1B+7FNp&b!WTQqm7Ed zpteG#Kfw^`u)homI@fa^j6plgbcPOMhHZ1suuPZrim^r`+j7C+aGj=6>mvL>Q02nM zS0;ggAI@=qS!>sD5~9mX`0*+=wB;y<6u9Bgv?$L$S@6jV70xpVEg^pM=2BjOPh5F6 zbPg=aGmoQTi=2dz3fW$3F&*k7`Uj3tJ6*b$rrR41oG(=r$&G(VWUQpw25fzg$JeT! zPj$`T@NLxs?B*Fnt=&A@&8{-K(U(5;d{e$1!<}m{`K;n6tWI|^T%u!4jg_}LTiH>1H|82ZQ1A_B zgc!IbL%b$YFEI!{OgX@6n+`{yj%(vtWbQU)p3y87NU9K>F%EPGn(p~U9Z zTBVl})?cf{7__mC zc7p)t`w+!@N^rZ3?GUc-0W7u;yH_KNHEA&KL1{`)Oibg*0h0m5G@1wwCo)~(8RQZ; z8*K18RAzZKy4uc;1hwUEvWy~T2H=g>g95JW+Wcgf+Vk7<3YF7-;A1i#d{%7cwesYs zZ$dT#cuaFhI*sqdvDtZ*@j@jr_U&`poKZKa_b}uKF?PHsOsq&m04dU^gkQx=w%hz{ zxvYjs9hiqhW41Elp)V_t&tqHxw6vJMY8FGc)sR){Q;FV1=!3B@PD zv>A^FG3vm3lPLfsirTTcDQQNz8qI*=uQdoJ2+05=)luTEZ!b{3DO4ebSpYHiFaLN} z-u*|VeD6COjB75VdNt5gXf`7Au>{*^Ce>uCY###RdL&z$3GRVa z8l_=9je?Sh0Zt9xBCGJC%?#6?8YeI-AA09TdBd}rh)c0Iq#y$L@f()%oOhIR&3zEL z+j7K+BUSz#xm@oG@u2lFe=T7=AkmefKMB3K=5);nX9e%4xJ?xruH3zBB{ncG5So&} zH+>mLNnYBRFY^p%zRcK{(NDUKkHvltuAM-E}4Y)UeWQ^XlX8GkYC$WpSkq| z0T6PQf^6tYu(tKlHyL` zL;o=TzdolKFABWAzFxlmj~nHa?=^oy9BFL4K|AOOlW+!a^ka$f27(-|if{ReequB- zf$kR@V6kzwycMO*Xy##1G$fOQk+ox`fxU5=BL-?R|C?^XOVSv(^X8v$ZM%KLL=OJO zzp%<+KD3At*yDt}Rwd+Vm>y z8o@A~X}A#yUlL%m$c7>YhbWz7VOoX)oKUPsJ)%}Q2E;X&qyfK-w7Z5BU!r6H{^gQV z&U)soeDPzZnbFtuXXTpvF*Rq}T=$m;e&C}|!a6Js;Kr-p22puv1)JnT7@O3)Y77;= zVTA^T10G?-ef3dpGvBgk)D;;P)tvFfag@}v7s%Z(25_?d z^>Wcbsnbv*$3cJm5DI5Ik{m)Lv!?c7rY_tDJn7$j0#Zo^w^&!J)C6T($6=``_^W*y zmNTmHa>Dq0D^J{1yvA&=p|_?!XsgTzQ0fJ|<6Mq}FRb z3OG~|L?o$g(lL#{wHz~_+Rz`@cLVtF<|gu{44p}u^F7Y1Jj3gi!GA@pQ}jzXV(idY z{gP4Y#wo`gm|WH+Oa#JcQ#%@Yu`lP%OSDKr`o{E^5UW10T5RfMU!*rE$PF5YWOWB0iKEiNIs@TUT-BP|J)TWAyTY zn!qbM$TXrrV6ZwmD(ngxKthK^xp{<||LU)0@16!-nB;%$L$r(bl8MS}AkGI;l{i^S z(Krg|wGc606()l=N*lTZgmA74g*UL0(ZmTK&Vy^fgKk8!j)iliZJK|Qz7#k#+ zAgP~?7S4y!OgcC$+cdCltC!+&5s{)^*OpZ^P|+VStMBQY&?xu;3qN`jWnc=%Db1D? z?p{h=b?d~*xkg|zaeIeM5Kf{g2wx8hiS|?@N49AyoN2zHdIkyjRPQhg0sr&G8|AGp z*eIVmKWU&3f|Uon@vWxisAo^gEf0Ya>Nm=@_T{K9h@?GsY^eb-48-|ol=6x9&dPm{ zE9KDpAxsnq;Ui!PwJHGIam_jV(yu)+bpBvDDTWN=)@aAHnL-Uds8TAq!t(a@m#-`3g4fT=_msz2BHE#q`hSyyOF9032y1YRz-(j|5rdr+ zX{+Hx5DbIRyQPc(=Sn%i^z-~eRhOg}lie3#}qFG>!%piv_ zG8uIGYKDo$2V8g%-GA_e!7!bKuF#|*hf_dty7?Y`!NFj(nZU=yljva#SpzQqp-g=E zpp}!0iCicqM&mzG6MRP-!_pe8gCeWgMk0E{xC=_ST`m<-KVyGHg{CPE)KBtOCE?RG z-NOH&_~^t24lu~7BBTs->XKl=feeMW?@H!PU(yp?$|qziEcBJAiC*Ax!n~Ac%LEbN zis&iHNB9y=#?YBsBe(QFlK&&JTQv+w|N{L!&mKEGlMDS<5nQ`{q|C<+!_Sl*8^{ z%Ke@=)wCM?#uo~sY#48h5(7^iL?rZp+bCCDJ}DnR58gBc!hOiyO8JrfXXSGrUN0Yg z@1%TJ4(Nazt(Su}Q@D-Ro&qw8Fdn36Z;iB2qR)P0R=)h1QvUICf)mc`-KdmX-;s5z zuJxauB_Gi*2A{AhhX416C*>bLtKa8lnvG1#O%L8EcRFHL_R)?!Eiq6WK(MY76bzau zwWp4yd|G^eSvbD@Splg0fE!Ikn;($k7q+6UxKQS6a)y_Fbyj}*)>GYgzcS=;q5Azz zmHp(cX65F$o|FR)#4VvMbzIc&i=Qj%=UTM=$y*h{&B}q2zoh}~rqb|BpP~ER%S!p; zXJ_S-ue$8|lF#iVpPV^;L4ChMFh8d|<9XyqN;OuGnoYvWQ ze?%!q9P6=*w$*U6PdPxuQt%S_uK3P+dBs!ICJ3oBr%cLUy=_uHqyEsZ>6+*W8EyZ| zk)=HHcp12qvSN_pz3YvuaPR>W^~SMvVj)2=M%pFJsW{J^Z7tA78<%TRWWZ>1v^%MtgRmEV5e ztn8~L&etXT7d>TCKKWq*;1Ft(n96TzS#$IgFjVT4z`;oe9QmJ~rCWzDbAPj*^9{t) zF>3p3M^4JiPMDRi%Q3(0gT`^8jONUj&&ms5RmxosSEs~KP!&!bIZll9zhu0>^Pp1h z`5UD?_f+H;pyj*YmEN7PQU3JIQZBp9PC8|B!yC`au}@GNEyZx&7&3ig*7NGq^mO3c zVtWZD+@=s4%FBiP73P;zh`!EQesCtA9;ueRfQ0c&1O398w z*=4Bmq8BMjJntUgFHhHw>W^zv3aIdg$VUQ&eOLq6dayGszxD_@1Vxi~YEa+*HUR)5 zpl@DO${SBC^rBfg<}T~yb3=Df#F8$i1oc5+k zdD4S)*WlW-^3u0V%1_-22ec8<_=QiMl`~(;({r=(069?-qQ^0iS6{_DC7c zoexLaj{bjf_N=_%smyk&fiURm8^;Gea#qfe(ZBVqi3}J+Vbp|J3O$KP44rB4h-{9P zBOo#Jx?GX`x7Fvr(`@M8_nVY^$U)rv*4zbIFJJiVRCs6Qgr{xD`Ay2B@>~7PTWiU&4>zR}CXOhboh5PmAZj>L}XMSlEOzimJ@o+QC zr$H| z#z@gH+HYQrL(zb%KScO{{G2w)H1#7A`J=>4VW z2Te64F6IAyyNu)8>V;rG^Vdbw>sh&#oKkFf3E%M#v=LXtGO9llcPG58OKKX?sv>5QODA^ zg46ElN3F-yl%d*Z|5ENNx&PALn67S=_nuwK`QhlMik>pyr%uC&9l6|Z=zjWRvvS&7 zr{%gDBddj`(6^kFr@nY1oU?MynX~fTM~k%5OW!yt`)P_#@JG#VCs~~NZaJuXmh!rn zmvRq9!F@DK0S~%%u6TIc>tp~&Ov|%Q)l@i^P3Y33+(7hhFNb_v$?W7OYpN{AYc2D* zv6T1)EnPnLp_!s-Df{d3T8x+gfFbV^k?&l-Q7*hd`kxB=RD7t}1 zyr87g4!Z>%)i9!u%G21Wy~Eum<)s%+%Y7xhxP1hBqtpwl&yT?365Q8Q*2d@l;3=|oX#uV5`|>l_2KiywJw+={N>q>fLz1l0~7&HdW)3f{_EwxNRj{hDWyE< zxHcdd;=5kQu&BKp*qcsQUg&-MOZRsrn@2r&Qto=>TDgx5@pT_8tU;zs$BBAOoxfk%FtniCzx%-he9)KHE1g+fO?)9ml)7UVs& z#PQySrutgHzU!P)?)894d8Blagz=KNvKya96Xb zLhd-gM;^CPX#4*22s;@4P80kzDLP-TnPCJ@u8mtc7~t28)&{M?4Z|cRB@Bk{a*L8_ zG}lgsN|;)xPTgKc^)U zi3Uz>Ls_)Qf;z@+TpCO&Wi^K#8Ez-ZZF){VmH~mADf*9ul38itgH5QLXzE2EFzyI7+{kGwQ_rD!o%1_*y z?GRLiq?~wq(o3chS)q|h*y7)(6`4rDv6*!E{TVGKWT^Hi!Tpa}i-<@uYx*yJ21JQW zwAA(ptpn$ijfFCdF4oS<-}V=iGefIskiy{~meb;ko0LDPX*nBZx6?-2fjQo4noc5n z3bzkX|2^QQVG3${Cmh7AyjimVC->3IAnhGUo(F0Pc2CV*_`(b6V?6Yt>|wtu3IY#3 z(zUh7xAWMG*-x{9!=$sH5d7CJLOWT_+F+Pr-13%nJVTa@8u*djG-e^!*R1g(ZEV?& zpu9Du!L@PMP3#!jV$D7JHzM@@B?In4-DohOLH?*sXVbK-? zva(?Oo}ODG8*1-eW*8u1lD?-YZW<+l*Q_Ya6D` zwSdxd(l!$~Xdln=YN0sQHhruQRd$9pH!#fmL}c=m83jcYM7n2aQ|08NCgox&B4YTa z2LA;Q*6y^{#28b+3MWb$h9X{_G++o?h95i)<+XZr!XZUa8kP5#;J1L?`MfzFG~hu9 zVsJY-Tv3gRw%1gD!o#aMTmtXg3oIv^!bD%hJBrR|;OW_5hiBl}wVzCNk2q}5{Dr~jnn;V&%fvlV0EI$*paGPlVSt3A5>7@kc!(YV6&wmi z>Z!Ky0QF4CQxww?a566XnYv*exk8hKkuukZJfpEOUhhDRp1j+kC*;`}!+_tSY4q*t zCLj=$k&Zsj_>37Ri+rS8PnB#%E6hs_;V60VCq%1u=mn02L>sP<6|$e{Ml);qC=(B? zy6K^>(_rh&u;Pg7Wd|u%=oX|PGbCe-%aEU{2N~D8D3<}l=tQp#4hf|nkZJQk`7quA zfQ&a4j0#Uh2Sa^^e2aiqK%Nl>E#^o2Khy3cla_ne=_Odx-gt50ByE83V8#dEZsxDh zi~YZM)U-TW8y-J@c*Rn64IZT%F*u==!o^gYfj~fek}No@Hh3VpCgFKMz?eh#qYh`J zsjUY1>y@AHX%{%GvGyNK^qcgJizFNPRDNB~00FS(L=O5Ni3ob#8VSALat+Zuc9`k7 zQnXQLdH#BzeVOh#8r@9M;C@;+4~o(Tx59W7Z=t8)8dYRz#{l+bycVX%n{lVkva!Ou zKAtO1xr?81inTq3Vk)R6qRLy+j{DmJ_=F1sed-dy1Is}1h zT@ex4H)o)WEt2Tfemm#!h(_Wo^)FzOuWG#LdPLydl{KYa;C(*%a9JZW5927y;M=o> z%7<~of`ln;N8yPE@6?t((dfu0NTnq>gq=_PK%e8N4*!;DLJni674J%Wm}FYq|z+Yz|>)*9x!As|I-N zwRjrsZ>4xd8%*tI??n4)x#_L73Ii7wCo_J>nd|W&$xkG7fKNvV=zsSzcB$bTLtKw(suh*J3L9@aLsQ{MpKQ3!yC%j{Lj?tn@XyGl z?2{Lu!F_Wr9XNkNhIV&tGLavre2C*~nr`#31#9I#G2U!W9dq2IJWjK<_ee(`c#LlA zoj=q1TANgQh=;MTR@s@|;x@*>Ln^nwBXzpzhCVWe!sSO}^+Jlupc`_~=v+g+xiWg> zGVp?t@nVG>n`F@ia5^Cq;I>N8jeQ&8u{%S8I3mjuDwJ5FWHD--gvyoI6S*eoX-QA8 z<;nS~m8obLAo37F6^B7H{%D7BX2*8rXfl-(lSJZoyvzb_QzwKkno>xN^}ey=2-8ll ze!3_L#HbLWhY21sNzF0{WzlY(t(@iuoXkd23Je_e^bR>9YVO1ya)fgzz!iFG>*Y_~ zh-H9lCtyk+82O+D4BS$5ty?( zA1}eb?;u(2 zx8FwjfSwdXHt*K$IX02*aevE#J}0+_={DMaa-{4;ZIEl4aDX|eNcV@RtC%bJ zm?fxA>vl+LfCWYu+Aj)pV7kE30?E?6Vo=h7g2ReL3(=@RIrRui;`l!DnpDwAe(!u) zDgWbTctZVBqCpiT({leOV#Ho+gc8u$Hm}ZVfYeu$l0ns6;%9`+liJjz5{56z-Ofj_ zSPmkKT=a|ek=8wl9~ADLpe5<(1GvP41;0^#<`8W@VMMf2;fHlg;n~_v|2@qfUho** zYS5_Bj3enj(ry5+T@X*mygaKH9phpp?$u335I2^;0H_uSB?l}25_)IUTHl8qTm z$FlPHp!)R5d}aTbS*4U*SH&7K3OVSI!x+(p3;p0N)3JJzjN3fVmOO}vtuDtx4~(2u z%BQs1bihGw08d);2Ak&di7}=AXWX&cFBVQXYJKqJgh$RmzdvH^%=b+?fMK2*x{MmaWhCa8V=pR{I{qLXmO2k5pNPws!?BJ@Epk^xe%Ay17(MxSrg7nLdGd<#Oqs{#d{z#+;jVJ6 zYj5b$OGogJ>j|~TK1uiewTn%1j~G{?EgiN#M;H(YjxL^ngD;FsLe}a{?T{6%)h=}r zl;Eh>HcntN1%NJG=1`+N#Tt0<^Cs1r96u;z@@+U`aH}ySx;;Iklu$@N6jKgybN6F+ z$$+(aCMMWzC7pMcHY~2tQ!+2oCVg!ew_a3-V)AkVUh`~uPcVX8r}9s%H+9or*+^bL zASVoqp07^!ua4VH($g!`0v^~!4?4mQ4=~K@XNZ?U@_H{F6tv*YPn*5;-Fn>brPK1h zcWAo&PvDWzQ39oF?LRBOt|T}po-GsM2rXNpv*=#-C)Wm{&GsDVqn=N=3esa zPS+!uCkUrJ2Xv7$FEgC}M(r+ZZ{Tfb(Oj5?FO8VZI!`;%=j$>#`$i{erv0Cl*tuFA=B#k#M&^X@iiVakHAp(=hHOl1A zzsbZaqEzF0Kdf zV>M`pRgVfMRXnOe)LikD4IYj@v^6VNyd8BdMTSi9fRcSr&((6DFkcdn2OAh+HKH9t zU(+>;_m$7-=`tB2={g7L{_w#-2(F>^b(MeijoU?E)^wM3FZV5f>St!q)wlC$fztS=TQf+Q4D(fJ7w5y7rT6O1~ueTqc^x;|4btZQ+z;!%1EiaxUeD z+z&Q(@vR)rMGX{%%C~{hrrdrSr)y~!o@b&fHAu`QOV4A-yeevMg6*LPLlvauOCQ1JUyO_T z$xcs{DF_gtqSvw=`o2X<1+j3q0A8r}nA=EW;;9a#a)z$sN@@ycAceh9Z+u+znMrxp zTlln&yAm#^!u{H@idy@Z@~Wq1-K3nYDfo?b%j9-id(!p5rEYGWfX16^pkl-^O&N*q zzvc`3!WKBG0eeIwm2n@J&)hP&rY8vD03#{B^q_0>mG_-*c1!cswpBd%3`YzUe1t*> zLyS208JT9Y>4Uc>YeKkG44jzlAX;l6dMV%Ks&{58K zTh|$&!*u)M$*=Z%x>oF>j|OOf={%i`h=JqSI>kVtG2$@R)(lK=n{DGynb#64ZG6Q6 z;p#E0G~R#?0n-I|FwX+h6;Z)=fF1Rso8py0b2PyEdqtzYVeK+J8dja;48seVauy+r z6z)-eYLO@7DR&}#15d(CLLCxE;*4@BCW;@ti!ZpW-4UDFFVO>_Ch(AIwezZ{IfhDt zC*%;kQl~QTCKh9GU!qj{kaW!hknmF5f>gbWF^s%gC4ahxCzd&Vg0^qfxs)lgjnGDk z@d~4Ore3-$_|%9deM)ezHeMh@Ok{?X*3-)=%LK2%PC0mN(|9#DLPlMbqc^%nw>^8n zuoZBmdkvdF-2mzo=Z|YA801H4gnhl)k+mesKniat+@Ty2Qj`lRZyh~TujE}vYa*3~ zdi~QEv~#Oh^1jLXO=Uxxc;aw-ZG=2iud`iK>q+{OMLX2H)7#JeDB&KkE;#Kr&U((5i5l5NEF2^sMEjefZa3X1#F^0%R za!nc1KVXnZmVqwxBSxO_=7&SJCQzSIIXMQ;e5$a}($Df_3>bO;aBeIs~*xpd4`Ob z2NAf%!B+e~{H-2+(>=>?X|o1p4UrPoL%fr66RqW*`6ixL0+)qo!EcvCN4J1R3B(Ef z@ympgkzz+P61lz?XbR4+W(X9Epl2a+b)|k_W%@4L>lgJ^YZWtqpY` zF`VTEucU~CI=fXA3C?v~v1x_DVmzGrh0~y4fzz;{V+YzPxd3mDg4zm*eirD1Rxa>b#hUL+nnbwNX4|44THjI3!z;m}fs7=1?`Hrl2;&3HX4tn~z}xWz;y z*2a|#m+Of(2a}(Qbe@#2=8qu|1lJWeHOfK{5(DPkKt=>T@yPOc-7;lY17BygIt2 zzz`Xt_aw^vr!q3A!*ooV)Tls-9_c3ovuapb7}S)NHZkkq3QT$MMnu*HN(&ZbW)9#l z)u=fYdwf9>HI(>>0DJ)H={!p0I_l|HJlaTJynu-_cLUf(%~=NgP{XYf;v;gfx+X5D zz#m6DFlw?rrKE5o*k$k-(`jRgMCL@|(tOAY1LA=)8L%0yARKAkcS za13Pq(Ff6B{OKN!6Pi5a0Sq6(ov9r#yJWn4KzSB-0#r@1cXYlTTZe`LZk1gQc10B_ zE5(t6m~~Jw9(P&Y5-9me{W2qMLixxj@s`aq-@;iPuPksYV^N=wS-<3})$fs6^!F4;pX~DuqHwNRHZ`x{@bx zH^6*J5~0BG1?RXRs5Ci814@K9jS|TKWqyQ1ofs#a5R z)+SaCFocYT94zv4N@d9FJcAPt&ol@28N9qt#fWf?J$+SM_5Vk=LCU)Pr(i>XRRGW= zQ6B4|>IAN*?fetpy`h)T)&0r}k@y9gPXCK;hs5ZqT+Ni=B$M->*B3GZXDB3m!kb~z zS;abBWkdgnR=S9&Da4S?DJd-xIeoHMG3U^5(sgNT0=mz@>AE-Br z^gzMT0qO(_HOj*4=YXoS>M-(G zKE-&sPZ<0Ojx+Q~3{3Lp!Gnf7d!>f!blsx*!za(;{0BO}Lf^%DpWcijz4ktFg90)uD45+~yqUc*&a zT+T?@S=x}{$O%!{Jkm(!#|bEIdw8l>nF_AOKaE2=E@vomZ1PM^@Cay4z|r4G$d3YK zA%rR4%k{`4pVlEs_4Oe+_>(jQ^B&3cQpto?{MM?>fW=^GflDG;9+Ewd22oYHQ0Kmj zvO!fT=cRfugaPUN{_{#XL7xxeqjvBSMuk!-@u{6RpBdR0H>jhPsT1^x@xxf*1V_=# zmpsX1|Kb;{mp_j`{S$?8V7;4b-gsnErQw>=usO#dpi3C4$Jx(GxUK*0h~@%{(zDr* z2!@Agf~lafaKIyUGFqsoAe6S&Kr*++Z+}+_NCR4JA|9+b^BMYJ-LGwwf6><&SPPIa zbQB$>V!&enr2LK$-0z*~JI~W{knW?Bh#-99>e=_2m4DKwR;v8tfr?kj&`y-2-~|A~ zO0^_e?j_%}wl`k&IvBIqV~{2MRBQ(BL3;S)0eU#(U-c#tFDLwl9z;1rUzecSN6*&* z!HD@#B56}hhr)RYM#RBEU+7aNc>l`Z^4ziBiTQELK!C9)@Fv=Ok^5ESlyq zgf_BC2%l9ibdHh&)VP5Ci=UsAbKgFb1EGyLP~lY5RjB`!g3SBhYp(h++hD^el4-jC z{0SXMK+R^1Ud5OT*Z;hL4+ao~FnB=?I^bS1ea1mRmtPn(Q{@fnT^>fv)LF*tJiE>^ zY(?TSQ9cZZ_oU|1czAr>cW4g0ULYL2*4d`4%K&;&XEvN zJoSq6wXUsasAYsN`+)v1nr_%5VqWK?S7C4=UX_a9I&>=W&K`fJg|#>jYW%3^^Yjf5 zZU}L7=v`;&S!c}z_-riSiAGT`mtvfu52Eo5^vj>ZNBU~t-K2a)3iO(j{1uLq^bkLt z`|~q6P4x9g<%RPZddrA!Pk&EQ;#DW=+grMR$y0ql{Jm1X4@t>hd4fJlcTUAEH1zfF zKd;9wUsmE1txr*#H|Q}zr&&2wJib$O9;%lp==tBv@jdU+r94UUd;1x3TM`&EgHttY z$@IKO`-!YSe!0G0`4LA{l;scfG6c_bV-ox$J^N8M5U$TWjW1S;Cz0osywlYOI63n) z8{ab?tB=a*S?AvoZ4%SyFY7zcPZz!au9?Y~bpPK`6x?=VDC?h|IW3QuTxoZ%zB%R{ zWxdRQrkw%QGIcp*p@rttCpA zUUS-d`K<@(qjq{+*BZF4&*g5Er#))DJXUf&k@2oizkN+|I8igT-+G9?O8PW^3B(av z{g)mQySJtthdHAYuj-vFp`N3``oD^lr0}dlaqBzI%J034$18ba3G)P3aA|&( z2UZ7|h_)QP2iy3h0v<_zfWa>i+(e)EIY~2vef4AxpR&c#yiU=PZ(#8OyPL>iyi5iG zCQGBlEa0fe&&sc=56{sH45Uwg%slh5!8^~ImFK;hNIxlW`27uiBz&qrSmx)2d3)$^ zwd2c@zxBML*ALBC@`gh@TkUyv_*Cu4^O)s1XF_43KY+%}MqlgvfT!)Rcs}2B)|Vs& zcj+a9JA)V3r6^+QZxr3nJ9}1cc55C<^atlY`B6q_65p}>(X*TjK zMQ2Z)T@O$1lH>Y)IX>Q)x`A#No+P8;Gdk~ouljI;zhL=Ox}A8k932t;+;>dEfN!q1 zyngb3FYwg!9-s2`cazqfHB&L(u%k<%>rhzv4xGvh}nhK?WDR3J+G{4wUAIX z56?oClpC+YF#3p>iJQziB%9Vtpy{(ED{*q)-`s1sZUvjB!?dUSk~5Id$++ zGU9_ZD8V&2gkLNKE(YjUzocpUTlA??Dd%+*H8V;u^@>d-oz+aZjo)7iv9Edd`4dXGy_ep_yLE)Qvv0Tk7PI5J|JD(C& zN9ZR%jPgh2Z1A}U+-OZ-me^3l)!SRg6n&N!M&Jb;QlB^{!l;TD0Dkrm;S=C}kJgta zKN^A)ZvB;tV@v}>I#4_I*ViXeNk<;7nac%w<5eHVdff4o@`@M80Aw(~sV}84w!CnE zUVKo&U%Gg>#u5r7YtA%2F!za%>hE2N-y0xv2r7M02FAzZkxfe}2bXbtfW8>Qr($Uf zY_54xX?n){yFYzPO}$T9(_P4kYkxDqnf)Bf_Q%D(Nlo8EaL z9}$q$s;WQ!xx)40wfJidyyawy>WB2|_)|*xU42Mme=XhKf59x?HU7&_>pSLhI`P1d z#*Syo`Di?|7T$b1R>;AN4mrsKS;;*8;sO3+Upy^OP=p~$VZ1TW5K@YPv!#YWB`uW(rhvoae@|bLc*FDc z!E*_Z6h^557fC&hrB97MPv2vHlRhe@=<6h*SB}G(04u?mjQfm|0E3t^nJUyV+FGg% z?aUS}fKuOd0%Uk1223iTZ>*!Okb>8&B+8SB5CH=|<+4-*6PjUP61d7bK!w_}<}skP?5HhrgWzygi(c!|J+_=%cZa%?2t zT(gN!DZ-v7!~VHD3Yz}uM?!9g>f`2rqb0x>^^o0w-upTFU=mK7=gJ3`gk2u@g-I?jE`XD^? z<3j!2svGE*9ggjfPtzx8wa>s`DtP;u#sl2_AF&ZH*8>AioFQ$I0P-dp0{5P`ug9li z57iQYzq)YeyTXa<=x4}J6E**t7UK_3AZrCDyarrUwcY2#gy*w*xrHe+Uz@z&oyGTg zntFdokx?>#(X0ITkCGNscfQQ=q~o=mP#rWb(QJq{+w4jq*H~G{#D6HJuEZbF`~CW+ z_FK;4gYo*Hyl!FsFF8>1zpKdn&|{Rpf-zl_laPUG`NVAH?>?{T`_r}Fekh$VuEXxO zR*rq#TKVKh^*ZDmkQ6jo94Ig2l(>Qq=(0J*hF3=3Fis3uhDyZ6c$r2sefE=Mj>J4+ zXY&`XourU;*8morI#0?7E7g;$yW;{Cjg`5bMMT=+IC)Rk(&@*Jgj&6D~2Mlw8Y~gD!4^_a(}kY6 zkqcJ<5sdzXhZN>?ZDw3kA6xs%=V#?1TJMsqEW)Gq;dJIW14a;<-+_@lbTPyi>rZ@K zPt(KC=mqmr^ygQI&38OvQeJ(6H?@wqKhkh3TJlH7ewWR$z^@OkYsQm_moG@X@^~A4 zv+H4UhS%5IL@3bHG$pYE(s`dY8D`e{DcR~>FVpF0b%P^OOG>`d=1r) zQR=%_deP+)JxB2LM+bVn^XuOyN({TAOcbLE}NkpxIOX2^YP)eVFRC4n9y$m9(Eep!bC5=ugL- zJ}nQwH<4JIY`TuMtcHrWqmF#&TKpA`Ka_lLe+N0npQbH8@gRepD4L?z=rv)feS-U zoWMp0D(-J+aQ=^??JYI%+%P}?EWPi0LLyQ-{XYR4AFhm6=BYPL&f49!%zx+5+CJb;zEBiWxuQ#eB_;-bFJ(2x}T*h41#BP;3!fI znjH_Q7{^_KlgMK;XQ;ofKaj?Y{SoWb1}8S3z^9MrDN>v#N64Q&`MRceZqtC%7?|bI zV`eq{SrXR5Az#TgqhLrpnj&8t`LXxdC}*7;BUj1OH%UTpwMS8Iii-6r%rWs85t;0$ z*|@q~4vKF+TOzUbqkc=gd)jkLJ7sUn5mM0ruwC|5c-RJF1eVG{Fw(RPxMu+i)GX|s>X{xkgSy$yg&cT z78TAMIr2c0<;iy{RRHbK8_9wDxDwo2L}JM}j1+!|tQfE0^{@ufwoHCR(|qJ?1K!a6 z--yh*l>{u%J4)_WYZA=1%ema3*h8t5K@B#hJV}bc@S5IbB^n@XCK;d9R4MvUiSfk= z2KSoU;5kz3%DW#;XBix|$Ee5os#1uIcH2o{0Uj0MCVg+9E;StwI{?6=Tx2!#sGVi7 zyfm<~#U`8h#CSO4d3v)>^o!KWhwZ!=!ch`6`P zEFzeOSLN6_=AG&&m67`XYcj?ee)XqewS;-SZb|VsjOcsD{Fo<%K?+Ks)Oj-qqgT_K zj0Jveyzq^YGVLZInK%mxc&tw@i_I*RMU)gApOG~lNm)^!gfZ`@-Et>-BgYb4`u=)4 zRUqIc+F z)Y`+sJes6$X5`i7!5 zLvssr4IIAHZ8(G9>fI?P8H^c z7IvZf`=n;R(f*tBZsM_o`DTLMA9VdWMtzIZP{py+d8eBT#h4rz#n}?Uvk9A<7_Z6 z5(XO2HAu&awB*@8rRj@?G9nQ3|pFk@@kW- zN27NwZ5Yl~#tZIcXEEeD# zJfMY7{4*GKMH6zW6HesCRXWHtd#FMq`#o>Gl=3sv@X00?#!5fpmKtr9-xYitml`;! zj>=Rw@&{ zxNQ_Wmp0;{UX2$64C9S<;866{RGArSy#C2FUq&3S4`Tcqat>;XD~@S))LSotfxU5{ z10)8EJjxMc5~WPj)CG+m%9@W{A|~LNf^z0}uxM(_E`aM`SS)>{H`VB%nr z1CQdX(J<&9ejD8Y-tpnG##e*!P_*mJ(VtX18*dw0^X#FFd>v4X1ulVf8?9|oZh2(Z zN$@9?4iZGa4S9b*BPR27an!~7Pwn6r1xHzvcl?NPLyOd(8xm;6{(*tio;oWya=cQr zknsL6rW7;+B6+9G%7Xg#DOHH_baL9`(n@?mj@-{XyO?V;MvW9;)$rJX|08X%HP<=CiPgF$^+ej15hE$iTC|v_SL1 zaAVGZ^r4?xgk%NHG+6CsGPuym8f6`A{itL-ydg|DkQr;+br~z`VvJPfVYpg$dLBhN zk`oz*;$X3c=K=YgXWC2gU62)Wa|0 z$doxqgtE|Bi6doM?=oMdSSfSzp!IkuAH$97Yh#^q&|T8gq=Y_N*<7DT`Z(X8^x$Ew`*R&HIQMno~Q|=!a1K!htM-_7zICE{`E3+g~ ze^sVlA*+*KL9QvsB0yh<;qHX%l*S^~RVCx-y9%x^?`0g^wL=fK?YyV2+Xi0(*vpJ+ zW;imsVa7-OSdQ(w?~k3IT_#a9#}p&Zy9C~#QiRm<1H*HBXb|&>tjdSc$}km;F}m21 zRW0)Z9*^8$rYrq02?`S~|BU{n&8^Q`RB6vo|TJiw%( z4h2gx;Qx=1!c#{_G6HAM@_O7$snQ@bGGl`tD#s0Xe7*ND?U=M0q#TyF4dacf&EWu9 zX1vi#Mrh~8+MWn3(+jVR5osOE(owg7;3cNs86gGZ>8`QIzK;wxmI;DoeXPI0Cmf=} zPwki#bF0Y4k9o3&)){(Q6Hjpx8dx}CM6Y%OW=~bLBc(|5?9%NYd&TLEIm>q!Z*s88 zaSZjD8J*`9!Ie3~$n&Vl>dWxp-gkDtcG9bq#A@_A=4XTo3h5fQrZ#H4+n1ZmV43{K zq!NZTZsrX$k2`iKqGKw@h{7wTLAxxRYt+$}pNvb_Hg=t96XS@vF_yXwBx7Y;BOds` z;EA+ETp9Q*9DvT4XW((2X&ZNNExcE|0b5ABf84H;ghA_oT(_GL{oY8c@WdFWwr`gZ z8(8{BiazO#(Y1bwTH+k0i2)w%+8!l120#Psg=6xx7f_8*tdin9SjuL;6cbvVY*@hb zG8x00zBko~tbz^W1+La<>dV6y-Yu@>v2(2G8tYman?mikqfgz0*H1MzLSB=(gdG#Duv9i0=xh=CNX)LcX zuD-rGw;n1-3)!;)#y_kQIqT zL%i$(lc?Tn}uflU~kfibME-8#=oG9uQiR(5DV`#w& zpod?C*n1^0TuXS~eG1Lw>4!bBvEk)2x=^yHp!E9c>bZH^$uW6vJ={*~>=S)o>|3ud z%j&Huj8gufSq&!08z)oN*i@1MV~9gk#MqSLJ~<9FroVz!KJH-$u47W<1uuMXI-c1=|4Qo}O5W z`)};L#eKNNVHq29Of#U1fmMX5pm}B+ew@Z7T=QT6VxCXtf&MW>eXoDaVhb26FoDNWmo;w~FvcGafOf2bxo=!=Ln$ATIt&h) z0#%3A!UG#d8^yw{iZq~F)SYq&T-59dJP0Yp==*uYr$fcGpP1=T(V`oZG*Tck-}BLd z29+LDqw3NeupY+d!nC8uG!OBEaJ7tgbIc&7^Fe7War5j!CC{U!?aC#F>5dY-F?3~f zS+K8mFms?wFXlNIgY@It*Dbc%YOGp|bV?zYs#yM`Y>k4Ax3!^WkfV&C@s%(*Ni%Ch|b{AFAUMJv6cUC<^PI5o z1s8Buxyh<1p}aY%@1f%@r)laT$&*TZB&I0%EiAjcLkC822NoFuL?9mkNClB0NEdK+x#T z^Od@jFLD^pPBLYW5pvJh*W5#a9)`^0slv@hR_MHNqwwTo4GSJ|r)$n_8Z4s?0~hZR zrTwU7(GyrPJBW2LPk6~0#HJVY;Cr5T%Ruia;Z0iAa%BbB>fmO1Ou^-Kp8LVdvJhlm z=nTx9z-t`_jajDf^Nk{xnvYbk@wuXi)9Rj7C>b8@mnroSp`+7DrN?gm=S#M}3b`y3 zWY;wLNd+>Gl_O>`fdtQO=fxS6yb{MCGuS};<9y75fThlDlu<$rNvoKl9Ll|J0KY6H z?6SJWvSv(K*Lc7QE!HPoYH6NbzNmxr9>b~abhZpTJW{+t_o!4NYC4N-h-)b?;R|47 zi(bk_)4rB*|2OM-K|c(QandgqaWcp->X0?=-7wJb{awLn;|k-AGPPq|f*l$56(*E(B+lwXnh zW-CDEi+9{$zWKsc8|CF=+Uld}&>xJ966r!U-i)$#g4C&Pz$XrzgA7m6aS)g4nPkVt zRKPP1g2R}zZ5SU0>N*T}#;0;r4sCxnM~2SkRp6p5jTk;i@W43Dr-dmrEG|pq(k85V zCBcIZhEfq>)Tt5_Wj$y5=%}mmF_94?%c?1x!!7=och$6vl7Vr~5v}GcKZpq&!RIof zfQK=W**s-mmq9_JPbt%kzI`3^tN>Z+TN;U<_oji!M0w(K1jrhn*`8|9V~J&r-^`&! zznhzwTC_~~tXY2E${8{P)#P#1xaVzLXV9Ua3vEZJ!l2MI3`r^2W{Qjnq7rC7(kFT< z7m8JlDIi$$hG47V2__5>Gg2!}i9KBg8^#Gfj2o10Ke#DYThvU^MIPd^~VzWW0wvpHK+De7u*8cSU2z#cv=Zm$@sDfs+Py(`o5PECL@Bi! z1f3%Yu0GHB^ipbdeQ9#w(X4Ie0NgH2D>j&rptM1JgsbEXJdrSrPiGlx>>$I>@K6R8 zLrbEn8en9)c3y4x%0@L%V0bCtI!DCCfVG}hIqPC*(-sj#8_4T7q>v3`lzmpqG{^+% zhY(goZSz#?>83xxZg2)H4UxJ&nZdqfdA=X?9z*C|Z36D>PLBl|Zr@s_PwU|ZXA?-x zX|}MFN$kC3gaKi1GYa?gR^^+FlAa-xmtGdsP!4~K4$4l{tvNP)ZLH&a5P>B81RqYuIoeRwmW?U#!*xho`7q!Z73yULLa_uIsMjD+D2sR=8k%6@Pr`L13va7%zehMq2a8*)XzD zFd^{9=$NNv*C^+qij}gHJWjEAz zqArkgN~Pj#95_D~p(Z`6^8Ux8C*Q++@kfz!Z zRe{&FU^lq+Bt?z)f7MUEZ51#WXXYaU!w-1TGmmck{V>o*vOH5ST;`Q`1=!wc-uSlH z=07r&zr5idj*WSl^I9eghOQ+Bzg@K)+Jw@O7|aC9viWm3el@XCyN*fXv^pU3CSybq zLs7vC90repXB6TZz2ex6QWrx?PAHg%Gu^&^Xf$LDGh7atR*qcliib*N!mRp&ns*eu_K!6CCcZO)I;K_ScH9&Z>s zv6?5b^!i}zT>Dm(8Ef-}-HMfUQQk(=vN)$+g1%_mt9*6J8H8B~T^vJjk zSBp`XQd08etA0HDHc^{oqfK693nY+b^LQ!u46CmiJ?0~?*DIzp;?s}&#j^`D%4Vw;Cwj{ z6;23Qd3kUtZ*918a`YT5M4dF5j4gfqDbu63$*i&z^O<|%!u-UJsbgmg6 z!5@a!@!&Sg_-=*^p5$$eGaiZv-WO_AFpt+};Ics;;kb++iZ&+Y!T_12z_SdDW*De8 zn&24me-ZM*@*W>f%cjMPu2%Zw4zWySh(Rxs4R%)Uo-cGfqHdQJ$;_L&}#k zQ5WOQJl9azamvBlal`*?u$Lq-ucY%xQ&}raH5{*B6A~rz)Yt|qLk3P|-U7={%t;Nc z;n`5=&r=730q9?*o)4q8iD4Ff%18-TAYx@+qZDiM<~V!0iJ_H|GyR6&*M_0r zVYe|27A)7*EJ7x{E?5mKUgB3h>sqk#E^oZZ&pD{nHLnmF#s->3Y`nr3G64tUKwD_w zG@Rha%NSs?RApi06-Xzpcguhqik5?gMyi$XNe+?kZJc|;&$70AV-0M)Rw(klf-TVW z=ti-rTC7-?d1m3Fn(`VW#nZ_4W^91mOar}Neaq3(VJG_P^6Bvm=$li zQJWU*lF}gCc-D$g-gy{baU_cAs78F9bxjKEmsFtZew!z*s{96mrsV#aXB!f9o7%@R zB0y{VSf85T_E^ z#p&CkU_@aInR6N?iiBBk(}U;~Zot&)moZf#rQ_$QF*cGp);gMC#x%w$joan(Jkp1@ zOYYY624x3wzE3a}l~LmyP{!Hl2q>Z^5Y;(hd@`!oQ5KT;3@n{geSCc~5c86Ou*B^h z^6+EBDas1 z<^#W@@rVfAcSVinP^k5*mkUJgT0a=C)t^2`G*$fuyI6|CzQ0R3^B1=b<0TJHa3QzA zscYrq$toEs`wO$!{9-3r<-E)d9fynT7~VQ7;An ztN;n>bI@z;qYy8!_*B+>yYUseFyI=8^$vKRRO7PeZOM?CucXo8BfAWK+;`xTN2Z7L zG0JqF=V{e@$8H~umL3>n!OZo28E1^kJk1vMs1q99FG6Qhq0B2&G2;u>3+1vBnjIp6 z`xMF>%BUJe+uBu)PkcsQY--Y~O&LdP4BpdfUaJdP1e)Ys=c<&{Q3W0TVVuFQX!%dU zAOf($IrZSMbWuz`-bNzN)Y&e=SQ&rw={}@G0#{ou&>DUPjKMN?v zZ*s};hLK{s@<;*v@pVXHqI-vY*qzrj8{e-JJ^9sG~+%W zl2ILwveFOqu~7w#xK|f#w8=C5Y6+_UPLc=f-wCsOjZH_Tao_7;YP8efwnZ?M#0HZM z+kHnc$OHnW&IT}OP10ui>wGp$Os&%9d)2ZCRFHN9ht+Yoyyr>~p`BS)qknCg1`f=C zOQ6AD7#;1b@LsR?3cV_COzD6#%31`%#r9l#G0*m{QnKrcgMHmuey{>te+qqF241=$bI*HC=^` z27SI49)?OCN^Kr&_T*h2%`pP$=)6OLOQ!NodBNjW#?`l_OBe|$WD$lG?8f!*DOhNM zNAMA`F{Df>i{KSQsxk~1J21~BXv54wFx&&ym3Q!YqX^AZJ2``l!ghqUoO%{aQo z^U%>>?@6%jKwo-C?QvFPrM+Un2((v~z^ucZ+_P{mo$aA|McGS;f8fw$A5osnHzxbR zY^7aJo`~u6vhl%at)M6x5ke{z29Sp3NW>pDEBa$>o?@f8Tr-9C8P#=}PD>N@{FE?+ zK^tp1G)GE0z*80duI<4AuEFRelN1YO!M{#AV Date: Sat, 30 May 2026 11:37:22 +0100 Subject: [PATCH 06/17] feat: add `--version` flag to the CLI - Add a `--version` flag to the main CLI group using click's `version_option` - Prints `Scrapling, version ` and exits, sourcing the version from `scrapling.__version__` - Add a CLI test asserting the flag's output Closes #299 --- scrapling/cli.py | 4 +++- tests/cli/test_cli.py | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scrapling/cli.py b/scrapling/cli.py index 47056d9..4b9eb86 100644 --- a/scrapling/cli.py +++ b/scrapling/cli.py @@ -2,6 +2,7 @@ from pathlib import Path from subprocess import check_output from sys import executable as python_executable +from scrapling import __version__ from scrapling.core.utils import log from scrapling.engines.toolbelt.custom import Response from scrapling.core.utils._shell import _CookieParser, _ParseHeaders @@ -10,7 +11,7 @@ from scrapling.core._types import List, Optional, Dict, Tuple, Any, Callable from orjson import loads as json_loads, JSONDecodeError try: - from click import command, option, Choice, group, argument + from click import command, option, Choice, group, argument, version_option except (ImportError, ModuleNotFoundError) as e: raise ModuleNotFoundError( "You need to install scrapling with any of the extras to enable Shell commands. See: https://scrapling.readthedocs.io/en/latest/#installation" @@ -650,6 +651,7 @@ def stealthy_fetch( @group() +@version_option(version=__version__, prog_name="Scrapling") def main(): pass diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 39345d0..642699d 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -4,8 +4,9 @@ from unittest.mock import patch, MagicMock import pytest_httpbin from scrapling.parser import Selector +from scrapling import __version__ from scrapling.cli import ( - shell, mcp, get, post, put, delete, fetch, stealthy_fetch + main, shell, mcp, get, post, put, delete, fetch, stealthy_fetch ) @@ -32,6 +33,12 @@ class TestCLI: def runner(self): return CliRunner() + def test_version_flag(self, runner): + """Test that the --version flag prints the Scrapling version and exits""" + result = runner.invoke(main, ['--version']) + assert result.exit_code == 0 + assert result.output.strip() == f'Scrapling, version {__version__}' + def test_shell_command(self, runner): """Test shell command""" with patch('scrapling.core.shell.CustomShell') as mock_shell: From 961f659ac876b6f6cb0e2c3349ded6eb71b5ec3d Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sat, 30 May 2026 15:30:05 +0300 Subject: [PATCH 07/17] docs: remove old sponsors --- README.md | 2 -- docs/README_AR.md | 2 -- docs/README_CN.md | 2 -- docs/README_DE.md | 2 -- docs/README_ES.md | 2 -- docs/README_FR.md | 2 -- docs/README_JP.md | 2 -- docs/README_KR.md | 2 -- docs/README_PT_BR.md | 2 -- docs/README_RU.md | 2 -- images/IPCook.png | Bin 20498 -> 0 bytes images/IPFoxy.jpg | Bin 6136 -> 0 bytes 12 files changed, 20 deletions(-) delete mode 100644 images/IPCook.png delete mode 100644 images/IPFoxy.jpg diff --git a/README.md b/README.md index af65e37..9cec81e 100644 --- a/README.md +++ b/README.md @@ -224,8 +224,6 @@ MySpider().start() - - diff --git a/docs/README_AR.md b/docs/README_AR.md index 87b69e2..bb9990f 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_CN.md b/docs/README_CN.md index d1791ba..d9c5e0c 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_DE.md b/docs/README_DE.md index fecb0e1..2cb093f 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_ES.md b/docs/README_ES.md index db4aba7..9c252ef 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_FR.md b/docs/README_FR.md index d797345..7bef104 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_JP.md b/docs/README_JP.md index c139772..5ef9028 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_KR.md b/docs/README_KR.md index fb4ce92..89e847b 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -220,8 +220,6 @@ MySpider().start() - - diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index 8423225..8c36586 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -222,8 +222,6 @@ MySpider().start() - - diff --git a/docs/README_RU.md b/docs/README_RU.md index 0076e9e..a838b92 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -223,8 +223,6 @@ MySpider().start() - - diff --git a/images/IPCook.png b/images/IPCook.png deleted file mode 100644 index f17efc813b44838151995d06c340dfbab39ed5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20498 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 Date: Sat, 30 May 2026 15:37:08 +0300 Subject: [PATCH 08/17] docs: update a sponsor --- README.md | 2 +- docs/README_AR.md | 2 +- docs/README_CN.md | 2 +- docs/README_DE.md | 2 +- docs/README_ES.md | 2 +- docs/README_FR.md | 2 +- docs/README_JP.md | 2 +- docs/README_KR.md | 2 +- docs/README_PT_BR.md | 2 +- docs/README_RU.md | 2 +- docs/index.md | 2 +- images/9proxy.jpg | Bin 0 -> 76271 bytes images/9proxy.png | Bin 6810 -> 0 bytes 13 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 images/9proxy.jpg delete mode 100644 images/9proxy.png diff --git a/README.md b/README.md index 9cec81e..e9b7318 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ MySpider().start() - + diff --git a/docs/README_AR.md b/docs/README_AR.md index bb9990f..618512b 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_CN.md b/docs/README_CN.md index d9c5e0c..e0a5ee4 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_DE.md b/docs/README_DE.md index 2cb093f..ed7cc43 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_ES.md b/docs/README_ES.md index 9c252ef..23d2afb 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_FR.md b/docs/README_FR.md index 7bef104..5500323 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_JP.md b/docs/README_JP.md index 5ef9028..54cdf87 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_KR.md b/docs/README_KR.md index 89e847b..6b5349d 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -191,7 +191,7 @@ MySpider().start() - + diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index 8c36586..f4d1126 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -193,7 +193,7 @@ MySpider().start() - + diff --git a/docs/README_RU.md b/docs/README_RU.md index a838b92..407e76e 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -194,7 +194,7 @@ MySpider().start() - + diff --git a/docs/index.md b/docs/index.md index 65ea7fd..48f447a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -87,7 +87,7 @@ MySpider().start() - + diff --git a/images/9proxy.jpg b/images/9proxy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d32ef6feb008406872da16f60aaffd3d2118d77 GIT binary patch literal 76271 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≧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%0ADKw|^&^xOuOxwYj=^J9{Cx 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 z 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 literal 0 HcmV?d00001 diff --git a/images/9proxy.png b/images/9proxy.png deleted file mode 100644 index b8a196910cd3743fc22d72dd4c79f7811c3fcb1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6810 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 py?7bV?=gFn9{o24?$OtW2P%z@UqW4dvi Date: Mon, 1 Jun 2026 09:30:21 +0900 Subject: [PATCH 09/17] docs: use pyd4vinci/scrapling in remaining Docker examples (#282) PR #283 fixed the bare `scrapling` image name in docs/ai/mcp-server.md; the agent-skill MCP reference and CLI extract docs still used the unqualified name, which Docker resolves against the official library namespace and fails with pull access denied. --- agent-skill/Scrapling-Skill/references/mcp-server.md | 2 +- docs/cli/extract-commands.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/agent-skill/Scrapling-Skill/references/mcp-server.md b/agent-skill/Scrapling-Skill/references/mcp-server.md index 48a2d10..6aaa014 100644 --- a/agent-skill/Scrapling-Skill/references/mcp-server.md +++ b/agent-skill/Scrapling-Skill/references/mcp-server.md @@ -208,7 +208,7 @@ Docker alternative: ```bash docker pull pyd4vinci/scrapling -docker run -i --rm scrapling mcp +docker run -i --rm pyd4vinci/scrapling mcp ``` The MCP server name when registering with a client is `ScraplingServer`. The command is the path to the `scrapling` binary and the argument is `mcp`. \ No newline at end of file diff --git a/docs/cli/extract-commands.md b/docs/cli/extract-commands.md index 671cdcc..b3663c9 100644 --- a/docs/cli/extract-commands.md +++ b/docs/cli/extract-commands.md @@ -50,7 +50,7 @@ The extract command is a set of simple terminal tools that: scrapling extract get "https://example.com" content.txt # Or use the Docker image with something like this: - docker run -v $(pwd)/output:/output scrapling extract get "https://blog.example.com" /output/article.md + docker run -v $(pwd)/output:/output pyd4vinci/scrapling extract get "https://blog.example.com" /output/article.md ``` - **Extract Specific Content** From 464fba24358816ce8852437a11dbea2bc68f3acb Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Tue, 2 Jun 2026 01:39:06 +0300 Subject: [PATCH 10/17] docs: remove a sponsor --- README.md | 10 ---------- docs/README_AR.md | 10 ---------- docs/README_CN.md | 10 ---------- docs/README_DE.md | 10 ---------- docs/README_ES.md | 10 ---------- docs/README_FR.md | 10 ---------- docs/README_JP.md | 10 ---------- docs/README_KR.md | 10 ---------- docs/README_PT_BR.md | 10 ---------- docs/README_RU.md | 10 ---------- docs/index.md | 3 --- images/MangoProxy.png | Bin 15055 -> 0 bytes 12 files changed, 103 deletions(-) delete mode 100644 images/MangoProxy.png diff --git a/README.md b/README.md index e9b7318..ade1f5c 100644 --- a/README.md +++ b/README.md @@ -172,16 +172,6 @@ MySpider().start() Read a full review of Scrapling on The Web Scraping Club (Nov 2025), the #1 newsletter dedicated to Web Scraping. - - - - - - - - Stable proxies for scraping, automation, and multi-accounting. Clean IPs, fast response, and reliable performance under load. Built for scalable workflows. - - diff --git a/docs/README_AR.md b/docs/README_AR.md index 618512b..f798baa 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -168,16 +168,6 @@ MySpider().start() اقرأ مراجعة كاملة عن Scrapling على The Web Scraping Club (نوفمبر 2025)، النشرة الإخبارية الأولى المخصصة لكشط الويب. - - - - - - - - بروكسيات مستقرة للكشط والأتمتة وإدارة الحسابات المتعددة. عناوين IP نظيفة، استجابة سريعة، وأداء موثوق تحت الضغط. مصممة لسير العمل القابل للتوسع. - - diff --git a/docs/README_CN.md b/docs/README_CN.md index e0a5ee4..62b4747 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -168,16 +168,6 @@ MySpider().start() 阅读 The Web Scraping Club 上关于 Scrapling 的完整评测(2025 年 11 月),这是排名第一的网页抓取专业通讯。 - - - - - - - - 稳定的代理,适用于数据抓取、自动化和多账号管理。干净的 IP、快速响应、高负载下可靠的性能。专为可扩展的工作流程而构建。 - - diff --git a/docs/README_DE.md b/docs/README_DE.md index ed7cc43..e3fb3e6 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -168,16 +168,6 @@ MySpider().start() Lesen Sie eine vollständige Rezension von Scrapling auf The Web Scraping Club (Nov. 2025), dem führenden Newsletter für Web Scraping. - - - - - - - - Stabile Proxys für Scraping, Automatisierung und Multi-Accounting. Saubere IPs, schnelle Reaktionszeiten und zuverlässige Leistung unter Last. Entwickelt für skalierbare Workflows. - - diff --git a/docs/README_ES.md b/docs/README_ES.md index 23d2afb..05d49a0 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -168,16 +168,6 @@ MySpider().start() Lee una reseña completa de Scrapling en The Web Scraping Club (nov. 2025), el boletín número uno dedicado al Web Scraping. - - - - - - - - Proxies estables para scraping, automatización y multicuentas. IPs limpias, respuesta rápida y rendimiento fiable bajo carga. Diseñado para flujos de trabajo escalables. - - diff --git a/docs/README_FR.md b/docs/README_FR.md index 5500323..d1dc0fd 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -168,16 +168,6 @@ MySpider().start() Lisez une critique complète de Scrapling sur The Web Scraping Club (nov. 2025), la newsletter n°1 dédiée au Web Scraping. - - - - - - - - Des proxys stables pour le scraping, l'automatisation et la gestion multi-comptes. Des IPs propres, une réponse rapide et des performances fiables sous charge. Conçu pour des flux de travail évolutifs. - - diff --git a/docs/README_JP.md b/docs/README_JP.md index 54cdf87..9d4db25 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -168,16 +168,6 @@ MySpider().start() The Web Scraping Club で Scrapling の詳細レビュー(2025年11月)をお読みください。Web スクレイピング専門の No.1 ニュースレターです。 - - - - - - - - 安定したプロキシ。スクレイピング、自動化、マルチアカウント管理に対応。クリーンな IP、高速レスポンス、高負荷時でも信頼性の高いパフォーマンス。スケーラブルなワークフロー向けに設計。 - - diff --git a/docs/README_KR.md b/docs/README_KR.md index 6b5349d..4a4ef26 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -168,16 +168,6 @@ MySpider().start() The Web Scraping Club에서 Scrapling의 전체 리뷰(2025년 11월)를 읽어보세요. 웹 스크래핑 전문 No.1 뉴스레터입니다. - - - - - - - - 안정적인 프록시. 스크래핑, 자동화, 멀티 계정 관리에 적합합니다. 깨끗한 IP, 빠른 응답, 높은 부하에서도 신뢰할 수 있는 성능. 확장 가능한 워크플로우를 위해 설계되었습니다. - - diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index f4d1126..23ce34b 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -170,16 +170,6 @@ MySpider().start() Leia uma análise completa do Scrapling no The Web Scraping Club (nov. 2025), a newsletter número 1 dedicada a Web Scraping. - - - - - - - - Proxies estáveis para scraping, automação e multi-accounting. IPs limpos, resposta rápida e desempenho confiável sob carga. Feito para fluxos de trabalho escaláveis. - - diff --git a/docs/README_RU.md b/docs/README_RU.md index 407e76e..7660551 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -171,16 +171,6 @@ MySpider().start() Прочитайте полный обзор Scrapling на The Web Scraping Club (ноябрь 2025) - рассылка №1, посвящённая веб-скрейпингу. - - - - - - - - Стабильные прокси для скрапинга, автоматизации и мультиаккаунтинга. Чистые IP, быстрый отклик и надёжная работа под нагрузкой. Созданы для масштабируемых рабочих процессов. - - diff --git a/docs/index.md b/docs/index.md index 48f447a..b9ea5ca 100644 --- a/docs/index.md +++ b/docs/index.md @@ -80,9 +80,6 @@ MySpider().start() - - - diff --git a/images/MangoProxy.png b/images/MangoProxy.png deleted file mode 100644 index 9789f0484ffdad4345d69c156bc7dc7772355b7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15055 zcmX|I2RM~)*gy8M%FKw2juo;;Mpon~E5fn&NQms25fQSLJu*rtlx&heLN?hed+)99 z_I=m&xf&-O=e*~A?&rRL>j~FTyH83)PlP}qNYTpo9>L#R@Y@oJ4S$L?-ikpWB$Ckg zJ>&+4&n=CuGyTk@4=%V&}W({79BU zdFl(^#($M`@Zc8ZV{D_B0n{IHtBL;I(k67JzIa?nv2^RKNLJ_lZn;hO;pS9kLV~4@ z({R1f>BaeJIgb`5?Qu4dD58AC;c#oF`ORH=e;Jlo6#CwKkJ5~>Z|Bo1EBYT8bh3%& zUqoT^qWiYUZ$>joX7@g^!u-ci()>9mCx`rI=;rvgkQ`a!Z(Hh*rle1)mj3?z>%K0z zw2x2HEKE<@ecj8r(b+I*eoLr8!hKC|ITBuPs8K1GpN%c=^JnEGD-VxKxH<+&@1GqV z50b2Mdp$P{E$7ShUf$BXdOhk#ZS8Ow4-R5{e4Jk7X&Zm%)(lgz-Zp78C1E&W;x9Am z3%Q=veLmybw$9GZjt(JO5|U=|J9nzSfA{qEmJk=${>AI!;*uflla!urq^E~OJbU&` zcF%t3lbx!^b-dBvzppHJdDq>Le(Q98A|7o)s}o~ldc8}f>6^n?G?R>4zwimAd|TOC ziirJ_!H1{MC6UP`u!M9Z z@xr^j+dn(o>sP=3=7xx$a1e9SZKKie&K4bvVh*EJbaZIV1TI~kjuMlG$^QQS6a(U* zXZtIIbFFWtzB|v2l-npODh4sPl|{~pqvIG_tE#F*;3Z8O{QXY$oLyYXF0xf(Vq=}x z{(Na`YlAmlSXiKsQqrWtLZHxsBwD#jQA$zt`x_II{QNx=6BF2s@PWI!67%iQamMwX zzxg^78&=*P-#lzwPmFiP4|uQ zlvGoapT5~dbrjv7OnVrcy}ZvQ#lA6e!Ql6ch_yj zZk>UFA^r3!?a}g|ZVC4lbDPEK>7_Np;?P_zkqB$9lsvjC=fOFcsG-T`{vw4|wOtyX zT6f-2Tj5c6`;NELKBDNj1NNRLUtw7y-@M_YVbr9;!NK8*5M*m{9>|kS4 z;7^3Nwzftan$7vq=WruDJbXxM0BYj=>R?gW!pGgk?#+oBK2gzY97x0q&WJLea-P=D465ZM%>q2FWejp;cz7?re5o8N!3>xF zdr>k`T{`udg?Igf1Bu>MhE^!BI_s_!m;H#y%P&jX`MczyW-*8%+|iOq&(i_7cfTX~H()Egy}hjvN+NJNFi&YKM`dndq5J8`db+U@o|vQF!cWrb z%$7;IJcPjE!DIZ|BS%a}6d}luq~)6tmwQfsMc(uDAl+;Cn(Nwt*Fq=e%?-BX*HJq` zRwKFh-x$~Xj{G{1>Mk{^(V=Q_2`{B5Cns0WkovOq;b3Ee8~sSpG0==Q{^P$&D73Y;H9i4B zrnvKu-@i*(-;?cm`$6CH^{rLP6&ORvb9M;2Jf9JdPQ!{26;`#ev^1=8$#WR{_JnA$ zJJaN|DORYN_2D$tUe`Akbll=GmsbAK(b3!b#xfgQB)ouMb9r!md32dmG8qVO-^6wcM9S&4GtFIv8{6PM5UNNnt|^(vr}IdU<*ZJC1+X%vHL5 z`*s|P<#pkEx{w}Q;n0u}=o|{FC=L#rp-&k6U^(6og}Ep+Jj>tTKZ;)Dqh@X>Gc>HC zuQ25P8CRS=U8bWWUf`4RUZX|4u)b|niCOIFBXqMkE;wqBSN3rv+ zFCT4F=G<0-q4xFl>(^HQJw=2(gHa>xz4uuvYJIG76PoFe!x-RCZef=r|k+GPbo_-%bo9C9P ziHV7%q$JYJ-~VEw#=~Rn5BZH7x6u?tYXbC9S_Nw73#m?>Y9-M2)gM08zDkQpVneS$ zCl4W{JUc&6PfKGC@$&M5jc{~vx>;&m_fdyPFXw+m2%Ws!BHs6mFf3`Ip&!HaSCSmzc4hbJLVDd|Il|HEt0SCc-8~7EK{v3y? zb@3EUE2lj3{X~W~u=%y;hM9{3neNnB?Ci%8N$qlvXRKW8S*l~Fhnof#H;Xh=bg=?+ z3ODOdf6E`jZuu|jdO45%w;H9~?frc}D4KUqYyHowp$v#RCYqX>dV4jy`l1;nKY0n4 z8((=zkOeymcD;rxPja#abO7s3`F>ZJK=4qD-lsL1ad&?|k24~t5Sq10oaMI>n9S1B z(jxRxLG?OCZmzE5wO-{T(Mq|_$2;>dd5Z==W>%Xuhr&%NwEA$X^@CPH*p*XGHnzvP zy~v;!b4LXhcklR!`W}`TDaf4lG&kemG};QU?0cuH-PhDUbev#hV2GK-VPPiR5`V21 zkcJ;}tVfQ)E+f}25AF}!(ww3q*cURVr9wT-?H#WPl^JQ?pRao7 z&Ye7wqve83l}Mvx%d8z0c22NeK>O7IqkQ-I{Jv%I&RS3pFFS!cdrH_v%H$ zvR!{ZH4V*}5{sDFu&cpGTzKZwKk&q0Ui}KrVkc8m=D6jotgOKz-DGPM#=E}a+}sZY zo+}`&Fvee>48qLra({2<-4uieV}}M;ZkrMv_u<0_wqNg$YeF-n#T?H<#GEGiNs5P8 zuZukKH2pXEdGnjFLtn_ES8x+^M9#8DA}TzGs{$X3#N`u@LSx^vRxft;z{Uq+&6ae( zl=OVr+QfUq*7`s}U?YoP#JI^INHa@*2Ckq2y zr|2{oDcd?(En?UAJ|~AYB8LRO8E&3>hWKQ;jrz^*)WI%t#bPC`I(-q?Pvm<}yb@z_ z2-#RHp3yFSZvPpEhPL??iT@KU7X@QGN%Pam z+T)|`Inlj3*X1~K25f|9#wM&|rQ^h>?CJS=E1iEzo;!ch=H@xxP>3m*a_dC9m;J)h z4x<%uN2e4TRBnsE(?5OU$-1_bmX^jB6y)M!%wl&##{cZi*f)UKv?Tb%9zkSfJgbi{ zp}X-9dx;;;b)Gm^X^HM}Xk33IM2q?FCq7n;mqv%;q-4!^8)CUuoanjRN{TFD3T#2l zuK?im^k}r~CnO{=O1f+JJPzCH;A?n8VPh^#6*pGK*Q?GasHaZ-D*<+Yoqr%wC%z)XSge@pk$4-`9a8C;s4!*d!_*;t7>5}Xe^@ton zLBV|0)coPq;sPx_y|;;pc`>3Gpe^Z8-*(rXh+rds)J34bD#*OC#~?h@^lzL$Y7wS1m*Hc~bq|7+Q&miFHd1 zF*_~+|IQC_2(G-XUSSSFp-1_7(`5qg-nlcPon?h7f%RzcKkvzeVajXpO`Fq+Hk47y zQ{((g2X6EnNpqoO8IRA*kC)WkI*201m6tDHM!dumFv(RSwU-y0$*f_?*C6@U*STHo zwyNLEA`ffTIVmkEdHpSstDIcZ&OEmzopRh?;2!?x-jY7W`>|FzoT5*UO5)>h;{Q!{ z`fTvQv+`SC0+v$ni(cG^?LRpjhyGrh7Po7W>IxQ(`n!x11?xxh{P@@4F3oR)_E7pb z)ZhoL*52OUy&@r!=Lc&euW9(O5zHYl0lT}q`QD|)(Czi!XPOZ&IYPyuFl3ULq{Fq5 z;NR~P4XJQvfZ&vB6||U0t0B1M6jR zFy_2E3c&Lo-jF`rI9KaW;CZmS*yS*=G|~4^wmb&)!M%9YZFMN|UM$U*2iv$YfAN^; zd@BFCDMeby?)mMMYiy{JTSq-q!1C=?w_Up#F3A2$Uhj`iDx-n2;&o~7iVtp)W^b91 zwsFzn;dlJczAx*F(MK6oyV42UYE(@k5YWg7;PwzHGRV`?(%PPoo*b;NuB<${71Sm? z-VhMrl^MNw+}PMy^?dOoM)B9)+DJJi1;s6jGW)y&K|oa!5)upQhENm3CIOG{6@KJE zhPd#mwrLjEM<*o7;7Z6en2vp8B8(HJk4l$xyCL%AeUrwOePZVOVLH(A4A61P*srVa z(?z@peQ6Lx;y;-aNWeqd?4+4H?2IXudsj`65Eze>)|Z)V*{IPuSTt%TH@I76x^scMFH_aTv(AxD*C~WTg&c|Nh@*SySP7en)G^zZ2 zeO2~Iah;qt)zT%n?vbt2kDAi&NXY=(2DzkYQ6>(>B;(IONok>qOWaW=tjc|Zu66tD z%-5c^fGZ;BvBtx^gM)*W_Qy$9#F98qm!XQqEHwst; z1Oyx$94(gN3`nA`CTmYm&q6+P+N8H{ZKY$6jy(4Z8=V=*Td@#vJh?4U00--1Zc9Dc zwNn&wWFbRXSo^EP@hHu1i_;Pf1Wp+uWiZ~o>(;?X_Um|&xijh7F4K>?ek;?PC*?oE z;73P4Qh_a}B z?9JNUX#Harv>-eCf4|^&S*PkZ|t$H}v(98QwvyEmjG%xK4? zbjo;iOLd9^8vKKpdr(r&@ha_&&J=A@o~5zA&+2~a$d>FG9|Z?g|P-+lwEeN!n?*7#PrW^5jo{CB|4 z<(pB9UamWRRMrI~5jh|S85{S1#)Z0jCt{!E5KoRkG=GNq{=tDd4t3dpqCe@7kzN;d zb#r?>9)xNK6oR2d5+cN*G_0-jf3$L-9~J9=je$muFs%2T?@9#;?bOo;%jUvXTc@o>1c5{YQVLI>UK)$V>dsyH^nF(R&p zllCKl{TnX*a2&l)M^5B*lK)<7COcS@%;dhg`vmr?-BnI>Tv5>~C`i4TdFXP?2as&4 z0ez47(UCMiqwb`*e{t{n!)6K)eE?G3op+H*%`vESe9{339`JnF%a~HSX)shRt^{jVP$|6TFzj~1?7kI=*r6mVF^)8a!*`_o&#E$?mzjR&=d$0UIU0#-njhD*=#EG@THBvEh76wnCW8^XJ6_ zI=nA(3W3cm%+HSurCW`trivaP9qE@6Iysy#{NHs9aY&YQqF$<8muKlT>&BR6Uc)Dna z*w`TES#j=-7P8g4}??I z1^ITJYf%R{=IhtdRCvfBWi_?mot>YUp95H08Z1ioHd5Mn)gI4bu;J*A`n$NubjRf< zy}JB6*?cq0_v`K6zP`Rgr6%fe?@5C*twz-E9^aGBoe_8Br)7Wm_ELy|mgm-5TPwAn zABlnWZtdBjqLT}xhie$y9SzxLW(SOsk#4DyqT)KJZvREnfuiHTH619TKtD2W?Kj5Lks;+(1{F-np*9Wz z_IyV&pHX#%MQgNx#eaJ%gR4999Z&3(u2+MGz!mF!`F8o4#E@(VtLYWo)vBg7DMO0mkdU9y6SZUNKwx`wL)v?FsF(RpN^CP!OfNu%$Lb_IQaSV=lAd8B+W4kq1fSE5oP|H z)^OK2)Y8NOOPur&b(DedI|@&hJ?0 z%K%^RK=J*bMe?;47QJ8TLj)1ZQP#2wd|VQN2t-Z5KmV2y90Vvnb8rvfO4yOu@|@^C zDA@;HM&{)0?d{2YCOU6}rMf+q`>e*lJ6pM{tE)G-ttNety=gNGddn@=9)?z6LmzZY zjk_~t_)2dNz;y%6F46xQF(+Pra+~$ly_QgEWh$d|fEg(%AFpX8*#1X<;$1g6HT7?` zv_aI00{RzT%0HtC!@=u{qRqC#__!65Wme??>>GC(NGUTYm`eNi407)HzT^=!6~}o- zAxqaL_00K&h0k_D!+?>Vrmv~m_8Toy2GWZTB>s6V8xkQm&Gq3!nIWOQ@8$HTW- z{mY&i!^^I)&zi%oRz_*tEo3FyoSy70Yt?zXx!GPy5x*)u>7o_;<+q>J_BVR1Sl9QA1xO)Ws>Wrs8n>9o2--^zhJ;pmm;E?^e zbV5`*?FoVDzPLDdKRb)Bsi`q8EkG($Ot1Lu#Ji=a?S7qFv!TeCrN9-(K?Gu9nIc4s zZ<4O^c#1zLv)s91)zhe8t^C5`2sX}?_M?s3<^BS|R%f6chh1SD{pOJBeazieWqlF_ zO5hcyyPw`-Yr5(}S${IiHLml9718wdi9=~UdUVU2p7l3~?ggr;)_0O7czU>?PEF;= zey#EclI6ID^%tlgZf|oHV`OC;f$*gY+vW5x{}TCYi5XgU-K;yDgl}FKeOh=#%{R1+ zXhb0NqrMsX8sG#s^}y)X;!r1{r$Vy)jZ#Vpp(4CtN%n7~+3lUplvB9-KFdNSs;?WbUKDbVPF$auRy`1+LiDn z$y?)lC!zCcLHQm6lF154kIhLVIWabbDX=4GoqVM>^mrpLLqi?Mz7@mZmq=H0Ui!_0 zLd(Z{Z%)?1_^h*Rr|1au2Z;uG_3FRb*L=!x1FQR1cR!)f66w)qZ$Yuj0QL7N0~eP9 zp`RE@<*!6NV_K3>d{SSJjX%!tHoQ|WjT-!oN{59=6a>B-BXl?7lV_EqgWZg>1N=U$ z*O+%yKVqaA8M$GO!X;DKSzkd7KYM{EQTzS-k=;qZQdDOf6PPVIoGHK2c~)+mlw~}* z3{-5Tcvg9w$0c#7^RwM<{NN_nP$jb_AaZ3FN-%t$d3bcUwP{##Mnyza`<;TwUi{z& zu7K(2e=g$O2-)0TW-AG4={n0`(w6~xIvhPRcQ20SpsV=;=>%O}?ZE>|#V?jl$TPZE zVe*;iI9Csk&7SP$R;GaQulBm!e)mdBN~Ziz*TKxJd^+L+@-Xb%K$-Xs<{M;wRKxm! zexWns!sx}tO;Cz?-!8Mapt9}s7DNKt(EatX8vEhfy~Cwoo@~yx6t1m3WoYG!_`$`X zqSq%RHN#cE%4*e(b@;@^&!Z~5a%qwG)Vpm`#7yM=k`ZNoZ6iw4cW+5EbF%J1&2XV+ zu0F8#YLQ#$xXMbgGkbXw`z=st0fF`J5v5eBJn~bC6NYgN1S|EC5_>};#}=8Pkx>9_ zM;bn3PIp&DO&}N%3{N6NX+sm=aebEy#=pD;%F3L}uisXb(MKmI59^xviCFv>37uzY zX$ce|ut34SL;d{y`!|rED44MQ`B4oG4GvYM8om#}n@Qx>b)2ky2Vzcqe6S96l#*7t zwW^89)ZtV>19WMt8+eUDLF`WdyuwguO7_Tq?)^&F_jp$WFYMb}0)P5W1`Dqp&Aj@{<(^zxnWy@i?l{^K47qREFtqR71|e0$H+ z``adlhLPIDLCh8U#V@tKe3Og2RLm+$1W9rSpA^efJj<6bqi;Vs`0M6dAp@ zn$5gP`b4kF?o8~NIUBs0j=}LYT|#6K_?;ESe9Ozr;bydvlM*{J>2pBl zRqodY4HYCQB4T1qeZBM&@q@}gN2lA%>is733psYvSEGog5!1MG?+a|GsHq?8V1?W| z>ySM;I?C#N%~xIqKgP(&_zyo&DF)R(*)-YPo1K-_Xv**D<%M72DB?Y!j7c)FwkgPy z_5;7@$NA~ixEpu9;tm8?t(={|^qOw%@AGbM=u%(&d$D)0J@n)&)ajj4V=Jq=Pdde; zV>(hQ2$r5_^gaYWm!{qbpGnTDcyvuoRaH$@-S9Wk>YatI)JU7|xEt(sZNB8<{GT8F zc=2(o6nA-kd3j|e1-wX5m7qf7*`pj@OI2XC4Glf1Ad|<0w&XDxJ_ncF#pTH(9k;Yw z+E^a0uHZ9gpgQ7E6ZLMZPNH{_3tC8UjdR|!BqJ?^{EO&h3tHw|Gf(BHFB*WJ z2-^=0w6@+)nm;=`d)3y~pp|8Xp7pxX3=HpS;${vJHU5=L$9`$DE|nRHLWA`9LzrvG z08hmv#GS~QVfZrVa4S*<*JEp1j;EOnmz;@-iJT6@g|X_u4K?!){_^=V5)p|a!|!G8R^umCcBL=Mn6a9QhWYd`VKA0*|-q0k>aBRoZ(E*xA9%(wIIdmj#Zw^ILr zQ$ve!t><>|Rs7mPSvCYBdT!*-2&Ywadipp0uTQ88K5!a4%?vTLJ}%Pf8Xg{=nrZ;) zYzUX5GgIatXbnjYB-%c2=EQY%hrw`!|DNjZE@hRJ`|{<>{b+_N_jUS@>Cr*T0wg!l zkBSDpJw1<3Pp{Go7XkoJ3Vx%drF98_OV}gg^x*}k7UQpoj)(h7%3s4oB$0QO_b6c^inDFpU4isE}RR(bhShOngbr2`$FRcI0P%C zU{vUyiL#*kz{<5#YPMU`C#aCi{*M}0g);XyeIY`EHcaIUkoC*v+Y&(yh^g{nEf`Bf zl=rFs0N#;wUptz6BXbR~_#p;tUTA0=fB%L=P}+ah?++StcX!t>PMQ;sL*0qCpQ=BH z(X46ASx$y)2EFIW1v;*xyd3brt>QTVIS^=YX3&+oi7aC57g1Q<(;(MDHROM0(q>tuS=NOuqxnypCHFKZ)P;pFe+K z+N6s+=XBnN2nx7fCS{i4#-%oxA^JCz)x_vHxaHRY*Vv6b7@wF(<~6|AUUs1k4UdWv zF<@8&$Du$i{gLgJI20JMpY*<9+jWEDVLSLSaaNB^B@{T)72>CW$BkqC^vH0*l&pyR z6WUPAV`H-jOP=dJYt!6)*XMwwRM?NH*_n0K>Y79|4k-RoVq$#DGYS>Lx_{gJt+4Wn z3}KH!Dc(vK?4RQ$0KC?Yn1N z&5ez+U)@63wH1?I)z;RQ)}N?oLUM~4`J>irSA|_ON(p4l95rh-%>hszR30ow?sRe| zS)t?dAHI7OTV4IDSH}G4KB!Lw2q~Wo=b2f>>bQz45jmnx#~bH|W8H5Bw8%Uy@365+ zcXs~z;XK~nzU@G8<3l2Ec~_6A0bDiQQ|@$eMNPO1R|pBeXwW`yk7ENd^0iJ8?|Neu zXT;LDrJY)34#?X+Fh42DSZezd}sh@%#5kz;xsJDPfy+wZHU#ru?sRv_Z)gy!zkcGy+R( z)@kwIyR|ugCBTD&jSh(=i>g!!pE|f?8Nd|mjm`hzsJ{@JBhF8&X zdj|)O&?ievOO;oDVf0Zd%@onEv7ajQ$i)$>wMxGHm&l_6L3xagou zY>M-J8mc`ehRluCIwil-VJvh->)k9+)Y#ZqqFJ&Z@IyLVJdt$gPkXXt5eUV&FO`l3 zHt&-?X0(D)?Ni`f%y;mFnu)6gQwi1?2ORHE2Qj12Psa}GDyye%N6Z3Yhx_UcWSCpG zBmrfm(BjjXGp?VuSB1IJx$xNnBg(_W!@|EkVF_2;?imQ_Ame__AIW==eD&^;tQ?pOot+OAA1gx^#BoC6CA)<%{n%G~ z8c^kvW?W?J4C_5(F$Ip&#pyWBPrwA?=y-%T@w|*jJzXLy2a{Cp(_nOZb|#j?JYMBf zng2R9z3yhg7fBj&v(z_Aq~$HEn4~Dq`D=g}A&!&3!T*;WE>lX%u=hI@6#!9{62KW& zmX?KFtFG1IlpME4lU=<)yUIELoi520@klqyhW5Yi?oIf}*2h4inZ%!EjYQ+h`Cc3^ z=G7H~Ofp!gsbF+3gZULqx^)=mX0$Ep!m2>L6$|NMNN$XkOn->1gkp>|CLgY-$o%>g@m|w&hR2~?rDPQRbE$z zqeezf9t(+>SgR^EMkZprYqyB=tRAOJxIF=e0Oym2Yim4Zb=Kz2^!I zOcitd+1e71YA@@YZkksX+!MWYoxe4@Ew;kn94EXXz+>eyySfUiqPNf7 zySks9oqgGeAd_LfAx29QOmOwK1K};c&IccZgK?^hdO49n>ukDuNz&lVtz|Bo-;bsb zf0D5=R++hor%43>^wL-rI#&tA4-*lCA#nfm*^H;- zN5idGxN;~qHp~`<`{v|1bkr{l6*oHsJIdfXD+S$t0xZz1ad&8`4*3`uMJL2AEp4PJ z2E_pZwRb}r-|!dk^r>)#pAcdOq1M;^AmX_%pg|Q z?tbC_jovb0j+-WLTzbl)q$whJB^~z+4bw)Jr-W%l%GRmkSwmvXXjkw1z)DMLAFn_$ z9q+KI(CX4(yKT6%x@tdTS3wcg5hVjnuz-`0@Pb5uzb+_fN99-aW1>!CS2eXODw!)wOO2!2-(u#z z+v}D({P`T4ZU3^xe!?FAMIq5`pjd0ej5h@ zaKte1^sLS1K)J`q#eJLpUQv?-iIh!k9cpfGw*!CCD*xYKFA(szCnqQ8Ssm#XDups+ zd_w>8hOiY~D0#=bw+U7w_uo7UDtO4t$tfEfNPMjmh*byz`Y!TgIX$!}E6uy(;t+6y{D&Ci1m~g%B!Y z6A&PuU(}}D9Q|4pA8tWFXZ8dmT(fL}Wqs&8a4mx#(g?7zglj5W_&Y($gedSJSgNac zun>{70_K3=pcy`DFviuSS{?Wxr8oWu}+gEAD&tJ)(432fKBfnC5oj{sZAZR8g^} zewW?fk5J2$mOX-%=$>fZEBDbsR@RQP`1pPZl|AI^6D|gw9vixbT7l2*Le$8~pC`zm zt(8IUuaokc3G+93TUuJc9RM|0=z9HYqWaEMF+LbeMt>Wz#iNM{3F!pPae3y~!Z{I{n1$q@Xb`d;8@ z$4{HDo;mpmBh>$zN)a?`BbFZVXc&wM2~^x(ZNGkbUz}Cxdz4jHRvMDnK@c1)^lL%A zbfFMjs2-Vq)UgDCXh_y{NyOsH*^X8~V9Q_MIK}Emq%6&~YgX@N6q@GTRtLU33RKFL zF*7rO^j_lj8eKC#etI^hJl~-C2W%y-2nny90l+-8q2MTH`k&arfV*{yxrHT>USide z1Y@#jubGtW2ZScUmAM>G0sH&=kL}ZPIQ30L?y|EhNh{ne>IlMTprNVsKR*#1W=+W- zE;g_^AL7FP$Xsab+mj}3@gIqgP}1-><|1ORcB($c{vPrQc9*vn;Foq^QK#dCD0 zFy{2Haz*s5x;l*EuT7Mp6Ezi^1);q?U45T!Ndj zhF5#ZBX8c1*5e%4rnjUl%p;PA2nuvY5XD3LuvsR3HtXPQz{js=z@zn_2Q5Im(bUvj z2~T215@S(}RXSZZMRO)ZB1zt3ybHagsL06idOx3cot&mR`-0Ln+Ex4t!gtv4THg40 zdrI7qNMi3%w(!50ZK<&9zyIdqXr>tz-5-&IM34}^JMVuZqf=^(!|0Exaqr@5V6eWU zR?xq{ITa96OpV1I-4J3mBi`x^^8O7VXL@>n;1SFl3o8`_UJs!>?$-uvFL@sI3i!58 zt1`98cIw2hxe}T)e!b>kYJf5>A_=FcX=i zJY$%VaVSBOQ=>magZ4wc!n{cN2?@8MPsV7?0F#db(1#%Y3)25sT=FY3+Kw_cH8lWW z)Li&47Rt|04}HA6Sjs>E;k4c5n^$%Ag@Y21>Zl;I7B>440@@{)M9xk-ggk-E!k-cH zq&b|>v0MQTDU~7fn zZ|Z^+&?FG+v9=b?I~sgH1B3B}K85Ct%yZWRqO2gn^*PwcwbjY}>f!n^zjw4e4ThlE zRi?Z5w)?&7jHz0BqEgow)7I7)*Vh=*(mtk38xUfZCTZ$RxmsFUwuC2NyPAF(^;s+L zzN@t>8}}Eifgbln44fYU|K9DsD@{s1B;UT+_U6FHGOF|52Sf(Dd3CZ*Qo^8Q<44(3 zIN1T9)#|`l(qqGtR*4bM(a9-bdscD48lJae>Uhr!h>A|VK)Tv6RCJP+D%UfH!{3sd zuxl{r_l6p3Nf423*`-C4FEq_;96xdtsFhm%#kyt48zEhYy36^qIqzTUGjJ#4~v zm2~3OIi|;P{uec98{Vrp6;!o@JR3y0HsB-B+&1)tVZSU4O%_}nQ2Q=p2<7+qNlt;G zQZh1v?o-S^r!gA{`pM7M)?9thI0$^cGF*PbMlJu!>`xrqgU%DNjJtl-Pe%mZ(hY-~ z_}$n30IkoFX^o_N4oTEYDdUsgPaCiidvo^GgCB+chIrQRb~!JFODie`n-^(5br<40 zzIsXN!gl6AtIB~{;UFS%+MH8b)%)&Vcy^|IUG2$s)}(4U>rMuY2D?J7p_FVKL$zdVx_3GQxt61BQO*Oe}hCYkXHrB*mg+5 z65~Eq@5iB@QL)AR&w#&1>(vFHf^EAQN4WX=sPU$-Ei;-`jtr%E|9-2luzmeB#d5P;{_jC!sWdx*WtxxE?mLf ze^FXYpF!<0@juR+f3gFs4tfKX1edMoa1a-Bh^=nh*q9HbQ-B(*CQOGeJzd=~gQFaJRU&dXTNj-9aP&|Z>)-cdNFwFY=7?!DB$13xWD zgD5U(X}{BM8A#!bO*VyFi~nDKJ!K{>t*ASLaVM!$uS2#7YhM?EP|J|QIM22f*sHu_ zMuN08FrZz&US3vqDfv+me44g_4t9-#n{{db1ngDlAy{|NoDsL$TVdM86eXb0e|z+R z{mfg&x4vPzzy0Wm_1*J5En-GEmI5-xfKwt0U6E{;U8+`KKTsH(!xw6H_wHRdBbLN8 zCHnTmbvQ2g;Z5ipIDayI{6Z8fRn+n6Xhl0yu>c8T3zUx3hL+H|3C7n!PfKmNH<$0t7xlKK2cV8#^mKcEW*b2un_!{B{-;xKr5=< JE0H%1`X6*ge@*}Z From 3a2dd29255547a07d5be5369a9f24da2664d75cd Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Wed, 3 Jun 2026 20:43:40 +0300 Subject: [PATCH 11/17] docs: update a sponsor --- README.md | 2 +- docs/README_AR.md | 2 +- docs/README_CN.md | 2 +- docs/README_DE.md | 2 +- docs/README_ES.md | 2 +- docs/README_FR.md | 2 +- docs/README_JP.md | 2 +- docs/README_KR.md | 2 +- docs/README_PT_BR.md | 2 +- docs/README_RU.md | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ade1f5c..38af5bd 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ MySpider().start() - 9Proxy provides residential proxies from just $0.015/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app. + 9Proxy provides residential proxies from just $0.018/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app. diff --git a/docs/README_AR.md b/docs/README_AR.md index f798baa..46057d5 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -185,7 +185,7 @@ MySpider().start() - يوفر 9Proxy بروكسيات سكنية بدءًا من 0.015 دولار فقط لكل IP أو 0.68 دولار لكل جيجابايت. أكثر من 20 مليون عنوان IP في أكثر من 90 دولة. جلسات ثابتة أو متناوبة، تتم إدارتها من تطبيق سطح المكتب أو الجوال. + يوفر 9Proxy بروكسيات سكنية بدءًا من 0.018 دولار فقط لكل IP أو 0.68 دولار لكل جيجابايت. أكثر من 20 مليون عنوان IP في أكثر من 90 دولة. جلسات ثابتة أو متناوبة، تتم إدارتها من تطبيق سطح المكتب أو الجوال. diff --git a/docs/README_CN.md b/docs/README_CN.md index 62b4747..5a05aa2 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy 提供住宅代理,价格低至每个 IP 仅 $0.015 或每 GB $0.68。覆盖 90+ 国家/地区的 2000 万+ IP。支持固定或轮换会话,可通过桌面或移动应用进行管理。 + 9Proxy 提供住宅代理,价格低至每个 IP 仅 $0.018 或每 GB $0.68。覆盖 90+ 国家/地区的 2000 万+ IP。支持固定或轮换会话,可通过桌面或移动应用进行管理。 diff --git a/docs/README_DE.md b/docs/README_DE.md index e3fb3e6..7f84eb3 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy bietet Residential-Proxys ab nur 0,015 $/IP oder 0,68 $/GB. Über 20 Mio. IPs in mehr als 90 Ländern. Sticky oder rotierende Sessions, verwaltet über die Desktop- oder Mobile-App. + 9Proxy bietet Residential-Proxys ab nur 0,018 $/IP oder 0,68 $/GB. Über 20 Mio. IPs in mehr als 90 Ländern. Sticky oder rotierende Sessions, verwaltet über die Desktop- oder Mobile-App. diff --git a/docs/README_ES.md b/docs/README_ES.md index 05d49a0..5933803 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy ofrece proxies residenciales desde solo $0,015/IP o $0,68/GB. Más de 20 millones de IPs en más de 90 países. Sesiones fijas o rotativas, gestionadas desde la aplicación de escritorio o móvil. + 9Proxy ofrece proxies residenciales desde solo $0,018/IP o $0,68/GB. Más de 20 millones de IPs en más de 90 países. Sesiones fijas o rotativas, gestionadas desde la aplicación de escritorio o móvil. diff --git a/docs/README_FR.md b/docs/README_FR.md index d1dc0fd..5520480 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy propose des proxys résidentiels à partir de seulement 0,015 $/IP ou 0,68 $/Go. Plus de 20 millions d'IPs dans plus de 90 pays. Sessions fixes ou rotatives, gérées depuis l'application de bureau ou mobile. + 9Proxy propose des proxys résidentiels à partir de seulement 0,018 $/IP ou 0,68 $/Go. Plus de 20 millions d'IPs dans plus de 90 pays. Sessions fixes ou rotatives, gérées depuis l'application de bureau ou mobile. diff --git a/docs/README_JP.md b/docs/README_JP.md index 9d4db25..1da34c2 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy はIPあたり $0.015 またはGBあたり $0.68 からの住宅用プロキシを提供します。90カ国以上で2,000万以上のIPを保有。固定セッションまたはローテーションセッションをデスクトップまたはモバイルアプリで管理できます。 + 9Proxy はIPあたり $0.018 またはGBあたり $0.68 からの住宅用プロキシを提供します。90カ国以上で2,000万以上のIPを保有。固定セッションまたはローテーションセッションをデスクトップまたはモバイルアプリで管理できます。 diff --git a/docs/README_KR.md b/docs/README_KR.md index 4a4ef26..58c8342 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -185,7 +185,7 @@ MySpider().start() - 9Proxy는 IP당 $0.015 또는 GB당 $0.68의 저렴한 가격부터 시작하는 주거용 프록시를 제공합니다. 90개국 이상에서 2천만 개 이상의 IP를 보유하고 있으며, 고정 또는 회전 세션을 데스크톱이나 모바일 앱에서 관리할 수 있습니다. + 9Proxy는 IP당 $0.018 또는 GB당 $0.68의 저렴한 가격부터 시작하는 주거용 프록시를 제공합니다. 90개국 이상에서 2천만 개 이상의 IP를 보유하고 있으며, 고정 또는 회전 세션을 데스크톱이나 모바일 앱에서 관리할 수 있습니다. diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index 23ce34b..b940441 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -187,7 +187,7 @@ MySpider().start() - 9Proxy oferece proxies residenciais a partir de apenas $0,015/IP ou $0,68/GB. Mais de 20M de IPs em mais de 90 países. Sessões fixas ou rotativas, gerenciadas pelo aplicativo desktop ou móvel. + 9Proxy oferece proxies residenciais a partir de apenas $0,018/IP ou $0,68/GB. Mais de 20M de IPs em mais de 90 países. Sessões fixas ou rotativas, gerenciadas pelo aplicativo desktop ou móvel. diff --git a/docs/README_RU.md b/docs/README_RU.md index 7660551..9bacd22 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -188,7 +188,7 @@ MySpider().start() - 9Proxy предоставляет резидентные прокси всего от $0,015 за IP или $0,68 за ГБ. Более 20 млн IP в 90+ странах. Закреплённые или ротационные сессии, управление через настольное или мобильное приложение. + 9Proxy предоставляет резидентные прокси всего от $0,018 за IP или $0,68 за ГБ. Более 20 млн IP в 90+ странах. Закреплённые или ротационные сессии, управление через настольное или мобильное приложение. From cd4cdc69e622c1e9f07a709cc7180a2ee6b6fd2a Mon Sep 17 00:00:00 2001 From: Mubashir Rahim Date: Thu, 4 Jun 2026 14:53:10 +0500 Subject: [PATCH 12/17] fix: prevent IndexError in adaptive relocation with auto_save When `css()`/`xpath()` are called with both `adaptive=True` and `auto_save=True`, the relocation branch guarded the re-save with `if elements is not None`. However `relocate()` returns an empty list (never `None`) when no candidate clears the `percentage` threshold, so the guard always passed and `self.save(elements[0], ...)` raised `IndexError: list index out of range`. This crashes exactly when adaptive resilience is needed most: the page structure changed enough that nothing matches above the threshold. Fix: use a truthiness check (`if elements and auto_save`) so the re-save is skipped when relocation yields nothing. The successful relocation path (which re-saves the relocated element) is unchanged. Added a regression test that fails before the fix (IndexError) and passes after. Co-Authored-By: Claude Opus 4.8 --- scrapling/parser.py | 2 +- tests/parser/test_adaptive.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/scrapling/parser.py b/scrapling/parser.py index 2b88af3..200cb43 100644 --- a/scrapling/parser.py +++ b/scrapling/parser.py @@ -671,7 +671,7 @@ class Selector(SelectorsGeneration): element_data = self.retrieve(identifier or selector) if element_data: elements = self.relocate(element_data, percentage) - if elements is not None and auto_save: + if elements and auto_save: self.save(elements[0], identifier or selector) return self.__handle_elements(elements) diff --git a/tests/parser/test_adaptive.py b/tests/parser/test_adaptive.py index 8d40f77..85881d1 100644 --- a/tests/parser/test_adaptive.py +++ b/tests/parser/test_adaptive.py @@ -56,6 +56,32 @@ class TestParserAdaptive: assert relocated[0].has_class("new-class") assert relocated[0].css(".new-description")[0].text == "Description 1" + def test_relocation_auto_save_no_match_above_threshold(self): + """Adaptive relocation with `auto_save=True` must not crash when no element + clears the `percentage` threshold (relocate() returns an empty list).""" + original_html = """ +

+
+

Widget

+

A widget

+
+
+ """ + # Unrelated structure so nothing can match a high threshold + changed_html = "totally unrelated content" + + old_page = Selector(original_html, url="example.com", adaptive=True) + new_page = Selector(changed_html, url="example.com", adaptive=True) + + old_page.css("#target", identifier="target", auto_save=True) + + # Before the fix this raised `IndexError: list index out of range` because the + # guard checked `elements is not None` but relocate() returns [] (never None). + result = new_page.css( + "#target", identifier="target", adaptive=True, auto_save=True, percentage=95 + ) + assert list(result) == [] + @pytest.mark.asyncio async def test_element_relocation_async(self): """Test relocating element after structure change in async mode""" From 141b389cdbfac338b1e5a285e94545f86d77b9c2 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Thu, 4 Jun 2026 17:47:40 +0300 Subject: [PATCH 13/17] docs: updating the support page title --- docs/donate.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/donate.md b/docs/donate.md index 0228bd6..dbaab5a 100644 --- a/docs/donate.md +++ b/docs/donate.md @@ -1,3 +1,5 @@ +# Support and Advertisement + I've been creating all of these projects in my spare time and have invested considerable resources & effort in providing them to the community for free. By becoming a sponsor, you'd be directly funding my coffee reserves, helping me fulfill my responsibilities, and enabling me to continuously update existing projects and potentially create new ones. You can sponsor me directly through the [GitHub Sponsors program](https://github.com/sponsors/D4Vinci) or [Buy Me a Coffee](https://buymeacoffee.com/d4vinci). From f0db3d7d1405544fdf5ba6eaed1791d50518d73a Mon Sep 17 00:00:00 2001 From: Ahmed Elshahat Date: Sun, 7 Jun 2026 04:24:12 +0300 Subject: [PATCH 14/17] fix(spiders): use os.replace for atomic checkpoint/cache writes on Windows CheckpointManager.save() and ResponseCacheManager.put() write to a temp file and then move it into place with Path.rename(). On Windows, os.rename cannot overwrite an existing destination and raises FileExistsError (WinError 183), so every write after the first one fails: checkpoint saving raises and breaks resume, while the development response cache swallows the error and keeps returning the stale entry. Path.replace() (os.replace) overwrites the destination atomically on every platform and behaves identically to rename() on POSIX, so this is a no-op on Linux and macOS and only fixes the broken overwrite on Windows. Add a regression test for the cache overwrite path; the checkpoint overwrite is already covered by test_multiple_saves_overwrite. --- scrapling/spiders/cache.py | 2 +- scrapling/spiders/checkpoint.py | 2 +- tests/spiders/test_cache.py | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/scrapling/spiders/cache.py b/scrapling/spiders/cache.py index 40d39d3..0305aef 100644 --- a/scrapling/spiders/cache.py +++ b/scrapling/spiders/cache.py @@ -64,7 +64,7 @@ class ResponseCacheManager: async with await anyio.open_file(temp_path, "wb") as f: await f.write(serialized) - await temp_path.rename(self._cache_path(fingerprint)) + await temp_path.replace(self._cache_path(fingerprint)) except Exception as e: if await temp_path.exists(): await temp_path.unlink() diff --git a/scrapling/spiders/checkpoint.py b/scrapling/spiders/checkpoint.py index 25de362..95515bf 100644 --- a/scrapling/spiders/checkpoint.py +++ b/scrapling/spiders/checkpoint.py @@ -50,7 +50,7 @@ class CheckpointManager: async with await anyio.open_file(temp_path, "wb") as f: await f.write(serialized) - await temp_path.rename(self._checkpoint_path) + await temp_path.replace(self._checkpoint_path) log.info(f"Checkpoint saved: {len(data.requests)} requests, {len(data.seen)} seen URLs") except Exception as e: diff --git a/tests/spiders/test_cache.py b/tests/spiders/test_cache.py index fc9bc59..eb1b04b 100644 --- a/tests/spiders/test_cache.py +++ b/tests/spiders/test_cache.py @@ -49,6 +49,27 @@ class TestResponseCacheManager: assert dict(restored.headers) == dict(original.headers) assert dict(restored.request_headers) == dict(original.request_headers) + @pytest.mark.anyio + async def test_put_overwrites_existing_entry(self): + """Re-caching the same fingerprint must replace the stored response. + + Regression test for a Windows-only failure: ``Path.rename`` cannot + overwrite an existing destination on Windows (raising ``WinError 183``), + so the second ``put`` was caught by the error handler, the temp file was + removed, and ``get`` kept returning the stale body. ``Path.replace`` + overwrites atomically on every platform. + """ + with tempfile.TemporaryDirectory() as tmpdir: + cache = ResponseCacheManager(tmpdir) + fp = b"\x05" * 20 + + await cache.put(fp, _make_response(body=b"first"), "GET") + await cache.put(fp, _make_response(body=b"second"), "GET") + + restored = await cache.get(fp) + assert restored is not None + assert restored.body == b"second" + @pytest.mark.anyio async def test_get_cache_miss(self): with tempfile.TemporaryDirectory() as tmpdir: From b9bc17b46109da28be7c7b89ef398904ec15b56b Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 7 Jun 2026 15:11:06 +0300 Subject: [PATCH 15/17] docs: removing a sponsor --- README.md | 10 ---------- docs/README_AR.md | 10 ---------- docs/README_CN.md | 10 ---------- docs/README_DE.md | 10 ---------- docs/README_ES.md | 10 ---------- docs/README_FR.md | 10 ---------- docs/README_JP.md | 10 ---------- docs/README_KR.md | 10 ---------- docs/README_PT_BR.md | 10 ---------- docs/README_RU.md | 10 ---------- docs/index.md | 3 --- images/nsocks.png | Bin 23086 -> 0 bytes 12 files changed, 103 deletions(-) delete mode 100644 images/nsocks.png diff --git a/README.md b/README.md index 38af5bd..4507844 100644 --- a/README.md +++ b/README.md @@ -141,16 +141,6 @@ MySpider().start() TikHub.io provides 900+ stable APIs across 16+ platforms including TikTok, X, YouTube & Instagram, with 40M+ datasets.
Also offers DISCOUNTED AI models - Claude, GPT, GEMINI & more up to 71% off. - - - - - - - - Nsocks provides fast Residential and ISP proxies for developers and scrapers. Global IP coverage, high anonymity, smart rotation, and reliable performance for automation and data extraction. Use Xcrawl to simplify large-scale web crawling. - - diff --git a/docs/README_AR.md b/docs/README_AR.md index 46057d5..2070bc9 100644 --- a/docs/README_AR.md +++ b/docs/README_AR.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io يوفر أكثر من 900 واجهة API مستقرة عبر أكثر من 16 منصة تشمل TikTok و X و YouTube و Instagram، مع أكثر من 40 مليون مجموعة بيانات.
يقدم أيضاً نماذج ذكاء اصطناعي بأسعار مخفضة - Claude و GPT و GEMINI والمزيد بخصم يصل إلى 71%. - - - - - - - - Nsocks يوفر بروكسيات سكنية و ISP سريعة للمطورين والسكرابرز. تغطية IP عالمية، إخفاء هوية عالي، تدوير ذكي، وأداء موثوق للأتمتة واستخراج البيانات. استخدم Xcrawl لتبسيط زحف الويب على نطاق واسع. - - diff --git a/docs/README_CN.md b/docs/README_CN.md index 5a05aa2..0750bcc 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io 提供覆盖 16+ 平台(包括 TikTok、X、YouTube 和 Instagram)的 900+ 稳定 API,拥有 4000 万+ 数据集。
还提供优惠 AI 模型 - Claude、GPT、GEMINI 等,最高优惠 71%。 - - - - - - - - Nsocks 提供面向开发者和爬虫的快速住宅和 ISP 代理。全球 IP 覆盖、高匿名性、智能轮换,以及可靠的自动化和数据提取性能。使用 Xcrawl 简化大规模网页爬取。 - - diff --git a/docs/README_DE.md b/docs/README_DE.md index 7f84eb3..ac6e533 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io bietet über 900 stabile APIs auf mehr als 16 Plattformen, darunter TikTok, X, YouTube und Instagram, mit über 40 Mio. Datensätzen.
Bietet außerdem vergünstigte KI-Modelle - Claude, GPT, GEMINI und mehr mit bis zu 71% Rabatt. - - - - - - - - Nsocks bietet schnelle Residential- und ISP-Proxies für Entwickler und Scraper. Globale IP-Abdeckung, hohe Anonymität, intelligente Rotation und zuverlässige Leistung für Automatisierung und Datenextraktion. Verwenden Sie Xcrawl, um großflächiges Web-Crawling zu vereinfachen. - - diff --git a/docs/README_ES.md b/docs/README_ES.md index 5933803..1af1f9a 100644 --- a/docs/README_ES.md +++ b/docs/README_ES.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io ofrece más de 900 APIs estables en más de 16 plataformas, incluyendo TikTok, X, YouTube e Instagram, con más de 40M de conjuntos de datos.
También ofrece modelos de IA con descuento - Claude, GPT, GEMINI y más con hasta un 71% de descuento. - - - - - - - - Nsocks ofrece proxies residenciales e ISP rápidos para desarrolladores y scrapers. Cobertura IP global, alto anonimato, rotación inteligente y rendimiento fiable para automatización y extracción de datos. Usa Xcrawl para simplificar el crawling web a gran escala. - - diff --git a/docs/README_FR.md b/docs/README_FR.md index 5520480..c6d76ed 100644 --- a/docs/README_FR.md +++ b/docs/README_FR.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io propose plus de 900 APIs stables sur plus de 16 plateformes, dont TikTok, X, YouTube et Instagram, avec plus de 40M de jeux de données.
Propose également des modèles IA à prix réduit - Claude, GPT, GEMINI et plus, jusqu'à 71% de réduction. - - - - - - - - Nsocks fournit des proxies résidentiels et ISP rapides pour les développeurs et les scrapeurs. Couverture IP mondiale, anonymat élevé, rotation intelligente et performances fiables pour l'automatisation et l'extraction de données. Utilisez Xcrawl pour simplifier le crawling web à grande échelle. - - diff --git a/docs/README_JP.md b/docs/README_JP.md index 1da34c2..dcf44fc 100644 --- a/docs/README_JP.md +++ b/docs/README_JP.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io は TikTok、X、YouTube、Instagram を含む 16 以上のプラットフォームで 900 以上の安定した API を提供し、4,000 万以上のデータセットを保有。
さらに 割引 AI モデルも提供 - Claude、GPT、GEMINI など最大 71% オフ。 - - - - - - - - Nsocks は開発者やスクレイパー向けの高速なレジデンシャルおよび ISP プロキシを提供。グローバル IP カバレッジ、高い匿名性、スマートなローテーション、自動化とデータ抽出のための信頼性の高いパフォーマンス。Xcrawl で大規模ウェブクローリングを簡素化。 - - diff --git a/docs/README_KR.md b/docs/README_KR.md index 58c8342..18d2e05 100644 --- a/docs/README_KR.md +++ b/docs/README_KR.md @@ -137,16 +137,6 @@ MySpider().start() TikHub.io는 TikTok, X, YouTube, Instagram 등 16개 이상 플랫폼에서 900개 이상의 안정적인 API를 제공하며, 4,000만 이상의 데이터셋을 보유하고 있습니다.
할인된 AI 모델도 제공 - Claude, GPT, GEMINI 등 최대 71% 할인. - - - - - - - - Nsocks는 개발자와 스크레이퍼를 위한 빠른 레지덴셜 및 ISP 프록시를 제공합니다. 글로벌 IP 커버리지, 높은 익명성, 스마트 로테이션, 자동화와 데이터 추출을 위한 안정적인 성능. Xcrawl로 대규모 웹 크롤링을 간소화하세요. - - diff --git a/docs/README_PT_BR.md b/docs/README_PT_BR.md index b940441..4c7f617 100644 --- a/docs/README_PT_BR.md +++ b/docs/README_PT_BR.md @@ -139,16 +139,6 @@ MySpider().start() TikHub.io oferece mais de 900 APIs estáveis em mais de 16 plataformas, incluindo TikTok, X, YouTube e Instagram, com mais de 40M de datasets.
Também oferece modelos de IA com desconto - Claude, GPT, GEMINI e mais com até 71% de desconto. - - - - - - - - Nsocks fornece proxies residenciais e ISP rápidos para desenvolvedores e scrapers. Cobertura global de IPs, alto anonimato, rotação inteligente e desempenho confiável para automação e extração de dados. Use o Xcrawl para simplificar o crawling web em larga escala. - - diff --git a/docs/README_RU.md b/docs/README_RU.md index 9bacd22..4dde2b9 100644 --- a/docs/README_RU.md +++ b/docs/README_RU.md @@ -140,16 +140,6 @@ MySpider().start() TikHub.io предоставляет более 900 стабильных API на 16+ платформах, включая TikTok, X, YouTube и Instagram, с более чем 40 млн наборов данных.
Также предлагает AI-модели со скидкой - Claude, GPT, GEMINI и другие со скидкой до 71%. - - - - - - - - Nsocks предоставляет быстрые резидентные и ISP прокси для разработчиков и скраперов. Глобальное покрытие IP, высокая анонимность, умная ротация и надёжная производительность для автоматизации и извлечения данных. Используйте Xcrawl для упрощения масштабного веб-краулинга. - - diff --git a/docs/index.md b/docs/index.md index b9ea5ca..fdae518 100644 --- a/docs/index.md +++ b/docs/index.md @@ -71,9 +71,6 @@ MySpider().start() - - - diff --git a/images/nsocks.png b/images/nsocks.png deleted file mode 100644 index 120a06c26c5297cd2e6377bde50fd55716a03c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23086 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%0DJEBmCLWV`hbHE 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%0AbXoiRcVl%Tc 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 N002ovPDHLkV1ff;WPtzx From 9c0c857245726352a8502b1e4822a444ade96543 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 7 Jun 2026 15:51:10 +0300 Subject: [PATCH 16/17] fix(parser): use max of both attribute counts in similarity scoring denominator Candidates with fewer attributes than the original got inflated scores because the denominator counted candidate attributes only, while the extra-attributes penalty direction worked as intended. Using `max()` on both counts fixes the inflation while keeping the penalty. Closes #322 --- scrapling/parser.py | 4 ++- tests/parser/test_find_similar_advanced.py | 37 ++++++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/scrapling/parser.py b/scrapling/parser.py index 2b88af3..a075f2b 100644 --- a/scrapling/parser.py +++ b/scrapling/parser.py @@ -991,7 +991,9 @@ class Selector(SelectorsGeneration): SequenceMatcher(None, v, candidate_attributes.get(k, "")).ratio() for k, v in original_attributes.items() ) - checks += len(candidate_attributes) + # Using `max` so candidates with extra attributes are penalized and candidates + # with fewer attributes don't get inflated scores from a smaller denominator + checks += max(len(original_attributes), len(candidate_attributes)) else: if not candidate_attributes: # Both don't have attributes, this must mean something diff --git a/tests/parser/test_find_similar_advanced.py b/tests/parser/test_find_similar_advanced.py index 099b0dd..95e1e69 100644 --- a/tests/parser/test_find_similar_advanced.py +++ b/tests/parser/test_find_similar_advanced.py @@ -2,6 +2,7 @@ Tests for Selector.find_similar() with non-default parameters. Target file: tests/parser/test_general.py (append to TestSimilarElements class) """ + import pytest from scrapling import Selector @@ -61,14 +62,10 @@ class TestFindSimilarAdvanced: first = product_page.css("div.product")[0] # Ignore both data-price and data-category → only class matters → all 3 divs match ignore_all_data = first.find_similar( - similarity_threshold=0.2, - ignore_attributes=["data-price", "data-category"] + similarity_threshold=0.2, ignore_attributes=["data-price", "data-category"] ) # Ignore nothing → data-category difference (fruit vs veggie) may reduce matches - ignore_nothing = first.find_similar( - similarity_threshold=0.9, - ignore_attributes=[] - ) + ignore_nothing = first.find_similar(similarity_threshold=0.9, ignore_attributes=[]) assert len(ignore_all_data) >= len(ignore_nothing) def test_find_similar_on_text_node_returns_empty(self, product_page): @@ -76,3 +73,31 @@ class TestFindSimilarAdvanced: text_node = product_page.css(".name::text")[0] result = text_node.find_similar() assert len(result) == 0 + + def test_find_similar_attribute_count_mismatch_scoring(self): + """The similarity denominator uses max() of both attribute counts, so candidates + with fewer attributes don't get inflated scores and candidates with extra + attributes stay penalized.""" + html = """ + +
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+ + """ + page = Selector(html, adaptive=False) + first = page.css("div.card")[0] # Alpha + + similar = first.find_similar(similarity_threshold=0.9, ignore_attributes=[]) + texts = {el.text for el in similar} + + # An exact attribute match must pass + assert "Delta" in texts + # Beta matches 1 of Alpha's 4 attributes; the old denominator counted candidate + # attributes only, inflating it to a perfect score (1.0 / 1) + assert "Beta" not in texts + # Gamma's extra attribute dilutes the score (4.0 / 5) - the intentional penalty + assert "Gamma" not in texts From 4ced6e4ac26893304464f6368454a80830c3263d Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 7 Jun 2026 16:16:23 +0300 Subject: [PATCH 17/17] build: pump up version, browsers and deps --- .github/workflows/tests.yml | 2 +- agent-skill/Scrapling-Skill.zip | Bin 90018 -> 90020 bytes agent-skill/Scrapling-Skill/SKILL.md | 4 ++-- .../Scrapling-Skill/examples/README.md | 2 +- pyproject.toml | 8 ++++---- scrapling/__init__.py | 2 +- scrapling/engines/toolbelt/fingerprints.py | 4 ++-- server.json | 4 ++-- setup.cfg | 2 +- tests/requirements.txt | 2 +- tox.ini | 4 ++-- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f82605d..930d0a0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,7 +73,7 @@ jobs: - name: Install all browsers dependencies run: | python3 -m pip install --upgrade pip - python3 -m pip install playwright==1.59.0 patchright==1.59.1 + python3 -m pip install playwright==1.60.0 patchright==1.60.1 - name: Get Playwright version id: playwright-version diff --git a/agent-skill/Scrapling-Skill.zip b/agent-skill/Scrapling-Skill.zip index 22fbb3231c28ed74331a39fbddbe65c71e15ae82..1a8d15b54cc8f92b9465e6ece763689a08e89e50 100644 GIT binary patch delta 9276 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 delta 9036 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.4.8"` +`pip install "scrapling[all]>=0.4.9"` Then do this to download all the browsers' dependencies: diff --git a/agent-skill/Scrapling-Skill/examples/README.md b/agent-skill/Scrapling-Skill/examples/README.md index d0f9a2b..85de486 100644 --- a/agent-skill/Scrapling-Skill/examples/README.md +++ b/agent-skill/Scrapling-Skill/examples/README.md @@ -9,7 +9,7 @@ All examples collect **all 100 quotes across 10 pages**. Make sure Scrapling is installed: ```bash -pip install "scrapling[all]>=0.4.8" +pip install "scrapling[all]>=0.4.9" scrapling install --force ``` diff --git a/pyproject.toml b/pyproject.toml index 8cb4768..9c390c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "scrapling" # Static version instead of a dynamic version so we can get better layer caching while building docker, check the docker file to understand -version = "0.4.8" +version = "0.4.9" description = "Scrapling is an undetectable, powerful, flexible, high-performance Python library that makes Web Scraping easy and effortless as it should be!" readme = {file = "README.md", content-type = "text/markdown"} license = {file = "LICENSE"} @@ -61,7 +61,7 @@ classifiers = [ "Typing :: Typed", ] dependencies = [ - "lxml>=6.1.0", + "lxml>=6.1.1", "cssselect>=1.4.0", "orjson>=3.11.8", "tld>=0.13.2", @@ -73,8 +73,8 @@ dependencies = [ fetchers = [ "click>=8.3.0", "curl_cffi>=0.15.0", - "playwright==1.59.0", - "patchright==1.59.1", + "playwright==1.60.0", + "patchright==1.60.1", "browserforge>=1.2.4", "apify-fingerprint-datapoints>=0.13.0", "msgspec>=0.21.1", diff --git a/scrapling/__init__.py b/scrapling/__init__.py index 3420e25..a5ff5eb 100644 --- a/scrapling/__init__.py +++ b/scrapling/__init__.py @@ -1,5 +1,5 @@ __author__ = "Karim Shoair (karim.shoair@pm.me)" -__version__ = "0.4.8" +__version__ = "0.4.9" __copyright__ = "Copyright (c) 2024 Karim Shoair" from typing import Any, TYPE_CHECKING diff --git a/scrapling/engines/toolbelt/fingerprints.py b/scrapling/engines/toolbelt/fingerprints.py index f4fdfc1..0c02002 100644 --- a/scrapling/engines/toolbelt/fingerprints.py +++ b/scrapling/engines/toolbelt/fingerprints.py @@ -13,8 +13,8 @@ from scrapling.core._types import Dict, Literal, Tuple __OS_NAME__ = platform_system() OSName = Literal["linux", "macos", "windows"] # Current versions hardcoded for now (Playwright doesn't allow to know the version of a browser without launching it) -chromium_version = 147 -chrome_version = 147 +chromium_version = 148 +chrome_version = 148 @lru_cache(1, typed=True) diff --git a/server.json b/server.json index e4e813e..deccdda 100644 --- a/server.json +++ b/server.json @@ -14,12 +14,12 @@ "mimeType": "image/png" } ], - "version": "0.4.8", + "version": "0.4.9", "packages": [ { "registryType": "pypi", "identifier": "scrapling", - "version": "0.4.8", + "version": "0.4.9", "runtimeHint": "uvx", "packageArguments": [ { diff --git a/setup.cfg b/setup.cfg index 1c967c8..4e3d8b6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scrapling -version = 0.4.8 +version = 0.4.9 author = Karim Shoair author_email = karim.shoair@pm.me description = Scrapling is an undetectable, powerful, flexible, high-performance Python library that makes Web Scraping easy and effortless as it should be! diff --git a/tests/requirements.txt b/tests/requirements.txt index 83aa3dc..7c9c3ff 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,6 +1,6 @@ pytest>=2.8.0,<9 pytest-cov -playwright==1.59.0 +playwright==1.60.0 werkzeug<3.0.0 pytest-httpbin==2.1.0 pytest-asyncio diff --git a/tox.ini b/tox.ini index e740705..799ceae 100644 --- a/tox.ini +++ b/tox.ini @@ -10,8 +10,8 @@ envlist = pre-commit,py{310,311,312,313} usedevelop = True changedir = tests deps = - playwright==1.59.0 - patchright==1.59.1 + playwright==1.60.0 + patchright==1.60.1 -r{toxinidir}/tests/requirements.txt extras = ai,shell commands =