Ë
    Âbjh#  ã                  óz  — U d Z ddlmZ dZded<   dZi dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“i d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“¥i dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^“d_d`“dadb“dcdd“dedf“dgdh“didj“dkdl“¥i dmdn“dodp“dqdr“dsdt“dudv“dwdx“dydz“d{d|“d}d~“dd€“d�d‚“dƒd„“d…d†“d‡dˆ“d‰dŠ“d‹dŒ“d�dŽ“¥i d�d�“d‘d’“d“d”“d•d–“d—d˜“d™dš“d›dœ“d�dž“dŸd “d¡d¢“d£d¤“d¥d¦“d§d¨“d©dª“d«d¬“d­d®“d¯d°“¥i d±d²“d³d´“dµd¶“d·d¸“d¹dº“d»d¼“d½d¾“d¿dÀ“dÁdÂ“dÃdÄ“dÅdÆ“dÇdÈ“dÉdÊ“dËdÌ“dÍdÎ“dÏdÐ“dÑdÒ“¥i dÓdÔ“dÕdÖ“d×dØ“dÙdÚ“dÛdÜ“dÝdÞ“dßdà“dádâ“dãdä“dådæ“dçdè“dédê“dëdì“dídî“dïdð“dñdò“dódô“¥dõdöd÷dødùdúœ¥Zdûedü<   ddddd	d	d	ddddddddýœZdûedþ<   �d�d „Z e«       Z	dÿe�d<   eD � cg c]  } | ev sŒ| e|    f‘Œ c} Z
dÿe�d<   �d�d„Z�d�d„Z�d�d„Z�d�d„Z�d�d„Z�d�d„Z�d�d	„Z�d
Z�d�d„Z�d�d„Z�d�d„Z�d�d„Z�dZ�dZ�dZ�d�d„Z�d�d„Z�yc c} w (  zJISO 3166-1 alpha-2 country codes shared across zones, shipments, and APIs.é    )Úannotations)ÚAEÚSAÚOMÚQAÚBHÚKWztuple[str, ...]ÚGCC_COUNTRY_CODES)r   r   r   r   r   r	   ÚPKÚINÚEGÚJOÚLBÚIQÚYEr   zUnited Arab Emiratesr   zSaudi Arabiar   ÚOmanr   ÚQatarr   ÚBahrainr	   ÚKuwaitr   ÚPakistanr   ÚIndiar   ÚEgyptr   ÚJordanr   ÚLebanonr   ÚIraqr   ÚYemenÚAFÚAfghanistanÚALÚAlbaniaÚDZÚAlgeriaÚADÚAndorraÚAOÚAngolaÚARÚ	ArgentinaÚAMÚArmeniaÚAUÚ	AustraliaÚATÚAustriaÚAZÚ
AzerbaijanÚBDÚ
BangladeshÚBYÚBelarusÚBEÚBelgiumÚBJÚBeninÚBOÚBoliviaÚBAzBosnia and HerzegovinaÚBRÚBrazilÚBNÚBruneiÚBGÚBulgariaÚBFzBurkina FasoÚKHÚCambodiaÚCMÚCameroonÚCAÚCanadaÚCLÚChileÚCNÚChinaÚCOÚColombiaÚCRz
Costa RicaÚHRÚCroatiaÚCYÚCyprusÚCZÚCzechiaÚDKÚDenmarkÚDJÚDjiboutiÚECÚEcuadorÚEEÚEstoniaÚETÚEthiopiaÚFIÚFinlandÚFRÚFranceÚGEÚGeorgiaÚDEÚGermanyÚGHÚGhanaÚGRÚGreeceÚGTÚ	GuatemalaÚHKz	Hong KongÚHUÚHungaryÚISÚIcelandÚIDÚ	IndonesiaÚIRÚIranÚIEÚIrelandÚILÚIsraelÚITÚItalyÚJPÚJapanÚKZÚ
KazakhstanÚKEÚKenyaÚKRzKorea, Republic ofÚXKÚKosovoÚKGÚ
KyrgyzstanÚLVÚLatviaÚLYÚLibyaÚLTÚ	LithuaniaÚLUÚ
LuxembourgÚMYÚMalaysiaÚMVÚMaldivesÚMLÚMaliÚMTÚMaltaÚMXÚMexicoÚMDÚMoldovaÚMAÚMoroccoÚMMÚMyanmarÚNPÚNepalÚNLÚNetherlandsÚNZzNew ZealandÚNEÚNigerÚNGÚNigeriaÚNOÚNorwayÚPSÚ	PalestineÚPEÚPeruÚPHÚPhilippinesÚPLÚPolandÚPTÚPortugalÚROÚRomaniaÚRUÚRussiaÚRWÚRwandaÚSNÚSenegalÚRSÚSerbiaÚSGÚ	SingaporeÚSKÚSlovakiaÚSIÚSloveniaÚSOÚSomaliaÚZAzSouth AfricaÚESÚSpainÚLKz	Sri LankaÚSDÚSudanÚSEÚSwedenÚCHÚSwitzerlandÚSYÚSyriaÚTWÚTaiwanÚTJÚ
TajikistanÚTZÚTanzaniaÚTHÚThailandÚTNÚTunisiaÚTRÚTurkeyÚTMÚTurkmenistanÚUGÚUgandaÚUAÚUkraineÚGBzUnited KingdomÚUSzUnited StatesÚ
UzbekistanÚ	VenezuelaÚVietnamÚZambiaÚZimbabwe)ÚUZÚVEÚVNÚZMÚZWzdict[str, str]ÚCOUNTRY_BY_CODE)Úuaezu.a.e.zunited arab emiratesÚemiratesÚksazsaudi arabiazkingdom of saudi arabiaÚpakistanÚomanÚqatarÚbahrainÚkuwaitÚindiaÚegyptÚCOUNTRY_NAME_ALIASESúlist[tuple[str, str]]c                 ó®   — t         D � cg c]  } | t        v sŒ| t        |    f‘Œ }} t        d„ t        j                  «       D «       d„ ¬«      }||z   S c c} w )Nc              3  ó<   K  — | ]  \  }}|t         vsŒ||f–— Œ y ­w©N)Ú_PRIORITY_CODES)Ú.0ÚcodeÚnames      ú(/var/www/html/truck-me/core/countries.pyú	<genexpr>z*_sorted_country_choices.<locals>.<genexpr>Ÿ   s   è ø€ Ò_™*˜$ À4ÌÒC^ˆ$�ŒÑ_ùs   ‚“	c                ó   — | d   S )Né   © )Úitems    r  ú<lambda>z)_sorted_country_choices.<locals>.<lambda>    s
   € ˜˜a™€ ó    )Úkey)r  rñ   ÚsortedÚitems)r  ÚpriorityÚrests      r  Ú_sorted_country_choicesr  œ   sW   € Ü:IÖe°$ÈTÔUdÒMd�” tÑ,Ò-Ðe€HÐeÜÙ_¬×(=Ñ(=Ó(?Ô_Ù ô€Dð �d‰?Ðùò fs
   ‰A—AÚCOUNTRY_CHOICESÚGCC_COUNTRY_CHOICESc                óB   — t        | «      }t        |xr |t        v «      S r   )Únormalize_country_codeÚboolr
   ©Úvaluer  s     r  Úis_gcc_country_coder  ¬   s"   € Ü! %Ó(€DÜ�Ò2˜Ô!2Ð2Ó3Ð3r  c                óŽ   — | €y t        | «      j                  «       j                  «       }|sy t        |«      dk(  r
|t        v r|S y )Né   )ÚstrÚstripÚupperÚlenrñ   r  s     r  r  r  ±   sE   € Ø€}ØÜˆu‹:×ÑÓ×#Ñ#Ó%€DÙØÜ
ˆ4ƒy�A‚~˜$¤/Ñ1ØˆØr  c                ó   — t        | «      d uS r   )r  )r  s    r  Úis_valid_country_coder"  ¼   s   € Ü! %Ó(°Ð4Ð4r  c                óJ   — t        | «      }|syt        j                  ||«      S )NÚ )r  rñ   Úgetr  s     r  Úcountry_name_for_coder&  À   s%   € Ü! %Ó(€DÙØÜ×Ñ˜t TÓ*Ð*r  c                óþ   — | sy t        | «      }|r|S t        | «      j                  «       j                  «       }|t        v r	t        |   S t
        j                  «       D ]  \  }}|j                  «       |k(  sŒ|c S  y r   )r  r  r  Úlowerrü   rñ   r  )r  ÚdirectÚ
normalizedr  r  s        r  Úcountry_name_to_coder+  Ç   s}   € ÙØÜ# EÓ*€FÙØˆÜ�U“×!Ñ!Ó#×)Ñ)Ó+€JØÔ)Ñ)Ü# JÑ/Ð/Ü%×+Ñ+Ó-ò ‰
ˆˆdØ�:‰:‹<˜:Ó%ØŠKðð r  c                ó€   — ddl m} t        | «      }|sy|j                  j	                  |d¬«      j                  «       S )Nr   ©ÚZoneFT)Úcountry_codeÚallow_return_trips©Úcore.modelsr.  r  ÚobjectsÚfilterÚexists©r/  r.  r  s      r  Ú return_trips_allowed_for_countryr7  Ö   s8   € Ý ä! ,Ó/€DÙØØ�<‰<×Ñ¨DÀTÐÓJ×QÑQÓSÐSr  c                ó~   — ddl m} t        | «      }|sy|j                  j	                  |¬«      j                  «       S )Nr   r-  F©r/  r1  r6  s      r  Úis_operational_countryr:  ß   s6   € Ý ä! ,Ó/€DÙØØ�<‰<×Ñ¨DÐÓ1×8Ñ8Ó:Ð:r  é   c                óè   — ddl m} t        | «      }|rO|j                  j	                  |¬«      j                  «       }|r#|j                  �t        |j                  «      dfS t        t        «      dfS )zOReturn search radius in km and source ('zone' or 'default') for a country code.r   r-  r9  ÚzoneÚdefault)	r2  r.  r  r3  r4  ÚfirstÚ	radius_kmÚfloatÚDEFAULT_ZONE_SEARCH_RADIUS_KM)r/  r.  r  r=  s       r  Úzone_search_radius_kmrC  ë   sc   € å ä! ,Ó/€DÙØ�|‰|×"Ñ"°Ð"Ó5×;Ñ;Ó=ˆÙ�D—N‘NÐ.Ü˜Ÿ™Ó(¨&Ð0Ð0ÜÔ.Ó/°Ð:Ð:r  c                ó   — ddl m} ddlm} t	        | «      }|rO|j
                  j                  |¬«      j                  «       }|r#|j                  �t        |j                  «      dfS |j                  «       }t        |j                  «      dfS )zWZone radius for transporter load APIs, else platform default load_visibility_radius_km.r   )ÚPlatformSettingsr-  r9  r=  r>  )Úaccounts.modelsrE  r2  r.  r  r3  r4  r?  r@  rA  ÚloadÚload_visibility_radius_km)r/  rE  r.  r  r=  Úplatforms         r  Ú!transporter_load_search_radius_kmrJ  ÷   sy   € å0Ý ä! ,Ó/€DÙØ�|‰|×"Ñ"°Ð"Ó5×;Ñ;Ó=ˆÙ�D—N‘NÐ.Ü˜Ÿ™Ó(¨&Ð0Ð0Ø×$Ñ$Ó&€HÜ�×3Ñ3Ó4°iÐ?Ð?r  c                ó`   — t        | «      }|syt        |«      ryt        |«      xs |}d|› d�S )zHReturn a user-facing error when the country is not configured as a zone.NúWe are not operating in ú.)r  r:  r&  ©r/  r  r  s      r  Ú$operational_region_error_for_countryrO    s;   € ä! ,Ó/€DÙØÜ˜dÔ#ØÜ  Ó&Ò.¨$€DØ% d V¨1Ð-Ð-r  c                ó`   — t        | «      }|syt        |«      ryt        |«      xs |}d|› d�S )zUReturn a user-facing error when return trips are not allowed from the pickup country.ú,Pickup country is required for return trips.Nú"Return trips are not allowed from rM  )r  r7  r&  rN  s      r  Ú$return_trip_error_for_pickup_countryrS    s;   € ä! ,Ó/€DÙØ=Ü'¨Ô-ØÜ  Ó&Ò.¨$€DØ/°¨v°QÐ7Ð7r  rL  rR  rQ  c                ó6  — t        | t        «      r8| j                  t        «      r| S | j                  t        «      s	| t
        k(  r| S yt        | t        «      r| rt        | d   «      S t        | t        «      sydD ]  }|| v sŒt        | |   «      }|sŒ|c S  y)zLReturn a flat shipment validation message (zone country, return trip, etc.).Nr   )Úpickup_country_codeÚdelivery_country_codeÚ	is_returnÚnon_field_errors)	Ú
isinstancer  Ú
startswithÚOPERATIONAL_REGION_ERROR_PREFIXÚRETURN_TRIP_ERROR_PREFIXÚRETURN_TRIP_PICKUP_REQUIREDÚlistÚ&extract_flat_shipment_validation_errorÚdict)ÚdetailÚfieldÚfounds      r  r_  r_     s˜   € ä�&œ#ÔØ×ÑÔ<Ô=ØˆMØ×ÑÔ5Ô6¸&ÔD_Ò:_ØˆMØÜ�&œ$Ô¡FÜ5°f¸Q±iÓ@Ð@Ü�fœdÔ#ØØbò ˆØ�FŠ?Ü:¸6À%¹=ÓIˆEÚØ’ð	ð
 r  c                óL   — t        | «      }|r|j                  t        «      r|S y)zCReturn a flat zone-country message from DRF ValidationError detail.N)r_  rZ  r[  )ra  Úmessages     r  Ú extract_operational_region_errorrf  4  s%   € ä4°VÓ<€GÙ�7×%Ñ%Ô&EÔFØˆØr  N)Úreturnrý   )r  ú
str | Nonerg  r  )r  rh  rg  rh  )r  rh  rg  r  )r/  rh  rg  r  )r/  rh  rg  ztuple[float, str])r/  rh  rg  rh  )rg  rh  )Ú__doc__Ú
__future__r   r
   Ú__annotations__r  rñ   rü   r  r  r  r  r  r"  r&  r+  r7  r:  rB  rC  rJ  rO  rS  r[  r\  r]  r_  rf  )r  s   0r  ú<module>rl     sî  ðÚ På "ð &JÐ �?Ó Ið a€ð}#ØÐ
 ð}#àˆ.ð}#ð 	ˆ&ð}#ð 	ˆ'ð	}#ð
 	ˆ)ð}#ð 	ˆ(ð}#ð 	ˆ*ð}#ð 	ˆ'ð}#ð 	ˆ'ð}#ð 	ˆ(ð}#ð 	ˆ)ð}#ð 	ˆ&ð}#ð 	ˆ'ð}#ð 	ˆ-ð}#ð 	ˆ)ð}#ð  	ˆ)ð!}#ð" 	ˆ)ñ#}#ð$ 	ˆ(ð%}#ð& 	ˆ+ð'}#ð( 	ˆ)ð)}#ð* 	ˆ+ð+}#ð, 	ˆ)ð-}#ð. 	ˆ,ð/}#ð0 	ˆ,ð1}#ð2 	ˆ)ð3}#ð4 	ˆ)ð5}#ð6 	ˆ'ð7}#ð8 	ˆ)ð9}#ð: 	Ð
"ð;}#ð< 	ˆ(ð=}#ð> 	ˆ(ð?}#ð@ 	ˆ*ðA}#ðB 	ˆ.ðC}#ðD 	ˆ*òE}#ðF 	ˆ*ðG}#ðH 	ˆ(ðI}#ðJ 	ˆ'ðK}#ðL 	ˆ'ðM}#ðN 	ˆ*ðO}#ðP 	ˆ,ðQ}#ðR 	ˆ)ðS}#ðT 	ˆ(ðU}#ðV 	ˆ)ðW}#ðX 	ˆ)ðY}#ðZ 	ˆ*ð[}#ð\ 	ˆ)ð]}#ð^ 	ˆ)ð_}#ð` 	ˆ*ða}#ðb 	ˆ)ðc}#ðd 	ˆ(ðe}#ðf 	ˆ)òg}#ðh 	ˆ)ði}#ðj 	ˆ'ðk}#ðl 	ˆ(ðm}#ðn 	ˆ+ðo}#ðp 	ˆ+ðq}#ðr 	ˆ)ðs}#ðt 	ˆ)ðu}#ðv 	ˆ+ðw}#ðx 	ˆ&ðy}#ðz 	ˆ)ð{}#ð| 	ˆ(ð}}#ð~ 	ˆ'ð}#ð@ 	ˆ'ðA}#ðB 	ˆ,ðC}#ðD 	ˆ'ðE}#ðF 	Ð
ðG}#ðH 	ˆ(òI}#ðJ 	ˆ,ðK}#ðL 	ˆ(ðM}#ðN 	ˆ'ðO}#ðP 	ˆ+ðQ}#ðR 	ˆ,ðS}#ðT 	ˆ*ðU}#ðV 	ˆ*ðW}#ðX 	ˆ&ðY}#ðZ 	ˆ'ð[}#ð\ 	ˆ(ð]}#ð^ 	ˆ)ð_}#ð` 	ˆ)ða}#ðb 	ˆ)ðc}#ðd 	ˆ'ðe}#ðf 	ˆ-ðg}#ðh 	ˆ-ði}#ðj 	ˆ'òk}#ðl 	ˆ)ðm}#ðn 	ˆ(ðo}#ðp 	ˆ+ðq}#ðr 	ˆ&ðs}#ðt 	ˆ-ðu}#ðv 	ˆ(ðw}#ðx 	ˆ*ðy}#ðz 	ˆ)ð{}#ð| 	ˆ(ð}}#ð~ 	ˆ(ð}#ð@ 	ˆ)ðA}#ðB 	ˆ(ðC}#ðD 	ˆ+ðE}#ðF 	ˆ*ðG}#ðH 	ˆ*ðI}#ðJ 	ˆ)ðK}#ðL 	ˆ.òM}#ðN 	ˆ'ðO}#ðP 	ˆ+ðQ}#ðR 	ˆ'ðS}#ðT 	ˆ(ðU}#ðV 	ˆ-ðW}#ðX 	ˆ'ðY}#ðZ 	ˆ(ð[}#ð\ 	ˆ,ð]}#ð^ 	ˆ*ð_}#ð` 	ˆ*ða}#ðb 	ˆ)ðc}#ðd 	ˆ(ðe}#ðf 	ˆ.ðg}#ðh 	ˆ(ði}#ðj 	ˆ)ðk}#ðl 	Ð
ðm}#ðn 	ˆ/ño}#ðp Ø
Ø
Ø
Ø
òy}#€�ó }ð@ ØØ ØØØØ#ØØØØØØØñ(Ð �nó õ$ñ *AÓ)B€Ð&Ô Bð /@ö.Ø&*À4È?ÒCZ€Tˆ?˜4Ñ Ò!ò.Ð Ð*ô õ
4õ
õ5õ+õõTõ;ñ !#Ð õ	;õ@õ.õ8ñ #=Ð Ù?Ð ÙLÐ õ÷(ùò[.s   Ç 	H8Ç
	H8