
    ;i[                     v   d dl mZ d dlmZ d dlZd dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ  G d dej                         Z G d	 d
ej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej                         Z G d d ej                         Z G d! d"ej                         Z G d# d$ej                         Z G d% d&ej                         Z  G d' d(ej                         Z! G d) d*ej                         Z" G d+ d,ej                         Z# G d- d.ej                         Z$ G d/ d0ej                         Z% G d1 d2ej                         Z& G d3 d4ej                         Z' G d5 d6ej                         Z( G d7 d8ej                         Z)y)9    )models)DecimalN)SKUProductsProductSubCategoryProductCategoryCustomProduct)Users)ShopProductionUnitc                      e Zd Z ej                  ddd      Z ej                  dddd      Z ej                  ddddd      Z ej                  e
ej                  dd	      Z ej                  d
ddgd      Z ej                  d
ddgd      Z ej                  dd      Z ej                  dd      Zd Zy)DeliveryBoys   T
max_lengthblanknull   )r   r   r   uniquezemail address   )verbose_namer   r   r   r   	on_deleter   r   d   )assignedr   )not assignedr   r   r   choicesdefault)not verifiedr    )verifiedr!   r    )auto_now_addr   )auto_nowr   c                      d| j                    S )NzDelivery Boy )team_member_nameselfs    /E:\Akash\Saasvaap\Navya-Bakers\orders\models.py__str__zDeliveryBoys.__str__   s    t44566    N)__name__
__module____qualname__r   	CharFieldr%   phone_number
EmailFieldemail
ForeignKeyr   CASCADEshopdelivery_boy_statusstatusDateTimeFieldcreated_dateupdated_dater)    r*   r(   r   r   
   s    'v''2TM#6##rDRVWLF$TTXE 6TV^^4dSD*&**)+KL
 V13KLF
 (6''TEL'6''DAL7r*   r   c                      e Zd Z ej                  dej                  dd      Z ej                  d      Z ej                  d      Z	 ej                  d      Z
 ej                  ddd      Z ej                  d      Z ej                  d	dd      Z ej                  d      Z ej                         Z ej"                         Z ej"                         Z ej                  dg d
      Z ej                  d      Zy)DropaddressTFprimary_keyr   r   editable   r   r      r   2   ))homerD   )workrE   )othersrF   r   r   r   N)r+   r,   r-   r   	UUIDFielduuiduuid4r.   namehouse_number_or_namestreet	land_markcitydistrictstate_or_provinceIntegerFieldpin_code
FloatFieldlatitude	longitudeaddress_typecontact_numberr:   r*   r(   r<   r<   "   s   6$**TED 6s+D+6++s;V-F   Ct$GI6s+Dv2TEH(((C8"v""$H v  "H!!!#I#6##JL &V%%4Nr*   r<   c                      e Zd Z ej                  dej                  dd      Z ej                  ddd      Z ej                  dg d      Z	 ej                  dd	      Z ej                  dd	      Z ej                  dd	      Z ej                  dd	      Z ej                  dg d
      Z ej                   eej$                  ddi      Z ej                   eddej*                        Z ej                   eej*                  dd      Z ej                   eej$                  dd      Z ej6                  eej*                  dd      Z ej                  ddd      Z ej>                  dd	      Z  ej>                  dd	      Z! ejD                  dd	      Z# ejD                  dd	      Z$ ejJ                  dd	      Z& ejN                  dd	      Z( ej                  ddg d      Z) ejD                  d      Z* ejD                  d      Z+ ejD                  d      Z, ej                  dd	      Z- ej                  dd	      Z. ej                  dd	      Z/ ej>                  dd	      Z0 ej                  dd	      Z1 ej                  ddg d      Z2 ej                   dej*                  dd      Z3d Z4y)OrdersTFr=   r   r   rC   )Local Ordersr\   )Long Distance Ordersr]   )Custom Ordersr^   Pick Upr`   rG   r   r   )	New Orderrc   )Enquiryrd   )	Confirmedre   )Viewedrf   )Order Packedrg   )Delivery Assignedrh   )
Despatchedri   )	Contactedrj   )Bill Createdrk   )	Deliveredrl   )Failedrm   	user_typeCustomer)r   limit_choices_tor   r   r   r   ))Whiterr   )Yellowrs   )Orangert   )Redru   )zDark Redz	Dark  Red)r   r   r   r"   r#   ))Andriodrx   )IOSry   )Webrz   )Otherr{   )Flutter_web_appr|   PaymentModesc                 d    dt        | j                        z   dz   t        | j                        z   S NzOrderID:z       Order_type    strorder_ID
order_typer&   s    r(   r)   zOrders.__str__   6    $-- !%& $//"#	
r*   N)5r+   r,   r-   r   rH   rI   rJ   r.   r   r   rT   	sub_totaltaxes_and_chargesdelivery_chargesgrand_totalorder_statusr2   r
   r3   	user_uuidr   SET_NULL
store_uuidr   pu_uuidr	   custom_productOneToOneFieldr<   drop_addressdelivery_boy	TextFielddelivery_instructioncooking_instructionr7   order_assigntimeorder_delivered_time	DateFielddelivery_slot_date	TimeFielddelivery_slot_timecolor_statuscolor_status_updation_timer8   r9   total_savingscoupon_savingsdiscountdescriptionmessageplatformpayment_moder)   r:   r*   r(   rZ   rZ   8   s   6$**TED  v3dFH!!!
J "!!48I)))4@(v((t$?#&##$T:K#6##
L  "!!;
:SI #""DtvJ  f&//DG 'V&&}X\dhiN'6''vdL $6##s$TJL+6++$TB*&**DA+v++$TB/6//dF)))4@)))4@#6##

L "6!5!54!H'6''T:L'6''6L%F%%Dt<M&V&&T=N v  t$7H"&""D9KfT5Gv

H %6$$&//DL
r*   rZ   c                       e Zd Z ej                  ddej
                        Z ej                  ddd      Z ej                  ddd      Z
 ej                  ddd      Z ej                  d	g d
      Zy)CustomOrderTrackingrZ   custom_orderrelated_namer   zcustomize_images/T	upload_tor   r      r   rC   ))gramsr   )kgr   )nosr   rG   N)r+   r,   r-   r   r2   r3   order_id
ImageFieldcustom_imager.   quantitydelivery_typequantity_unitr:   r*   r(   r   r      s}    &V&&xnX^XfXfgH&V&&1DDW[\L%V%%4dKH%V%%4dKM%V%%
Mr*   r   c                   F   e Zd Z ej                  dej                  dd      Z ej                  ddd      Z	 ej                  eddej                        Z ej                  ddd      Z ej                  dd      Z ej                  ed	ej$                  
      Zy)OrderProductsTFr=   r   r   sku)r   r   r   ra   
order_datar   N)r+   r,   r-   r   rH   rI   rJ   order_product_idr.   product_namer2   r   r   r   r   rT   pricerZ   r3   orderr:   r*   r(   r   r      s    'v''$**TE $6##s$TJL
&

%dfooC  v3dFHFDt4EF\V^^Er*   r   c                       e Zd Z ej                  ddej
                        Z ej                  dd      Z ej                  ddd      Z
 ej                  ddd	      Zd
 Zy)OrderProductCustomizationr   customizationsr   Tra   zorder_custom_images/r   r   r   c                 <    d| j                   j                  xs d S )NCustomization for Unnamed)order_productr   r&   s    r(   r)   z!OrderProductCustomization.__str__   s!    #D$6$6$C$C$Py#QRRr*   N)r+   r,   r-   r   r2   r3   r   r   custom_noter   r   r.   custom_image_idr)   r:   r*   r(   r   r      sk    %F%%%..M
 #&""D9K$6$$/ETX\]L&f&&#TMOSr*   r   c                   \   e Zd Z ej                  dg d      Z ej                  eej                  dd      Z	 ej                  ddd      Z
 ej                  ddd      Z ej                  dd      Z ej                  dd      Z ej                  eej                  dd      Zy	)
OrderDeliveryrC   ))Own Deliveryr   )Courier Deliveryr   r_   rG   Tr   r   r   ra   N)r+   r,   r-   r   r.   r   r2   r   r3   r   courier_service_namepackage_numberr   expected_date_of_deliveryURLFieldtracking_linkrZ   r   r:   r*   r(   r   r      s    $F$$
M %6$$dL ,6++s$TR%V%%DtLN 0 0 0t$ G#FOO$T:MFfdQUVEr*   r   c                   2   e Zd Z ej                  eddej                        Z ej                  ddd      Z	 ej                  d      Z ej                  d      Z ej                  dddej                        Z ej                  ddd      Zd Zy	)
CartT)r   r   r   rC   r   r   r   rv   rw   Couponsc                     d| j                   sdt        | j                        z    S | j                   j                   S )Nz	Cart for zanonymous user)userr   anonymous_id
first_namer&   s    r(   r)   zCart.__str__   s?    DII+c$2C2C.DDpqq[_[d[d[o[opqqr*   N)r+   r,   r-   r   r   r
   r3   r   r.   r   r7   
created_at
updated_atr2   couponcustom_couponr)   r:   r*   r(   r   r      s    6DWD#6##rDIL%%%48J%%%t4JVyt46>>ZF$F$$"4tLMrr*   r   c                       e Zd Z ej                  edej                        Z ej                  dej                        Z ej                  d      Z
d Zy)	CartItemitemsr   zproducts.SKUr      r   c                 N    | j                    d| j                  j                   dS )Nz of z in Cart)r   r   sku_namer&   s    r(   r)   zCartItem.__str__   s$    --TXX%6%6$7x@@r*   N)r+   r,   r-   r   r2   r   r3   cartr   PositiveIntegerFieldr   r)   r:   r*   r(   r   r      sL    6T6>>RD
&

Nfnn
EC*v**15H
Ar*   r   c                       e Zd Z ej                  ddej
                        Z ej                  dd      Z ej                  ddd      Z
 ej                  dd      Zd Zd	 Zy
)CartItemCustomizationr   r   r   Tra   zcustom_images/r   c                 d    t        | j                  xs | j                  xs | j                        S N)boolr   r   r   r&   s    r(   has_customizationz'CartItemCustomization.has_customization   s)    D$$Q(9(9QT=Q=QRRr*   c                      d| j                    S )Nr   )	cart_itemr&   s    r(   r)   zCartItemCustomization.__str__   s    #DNN#344r*   N)r+   r,   r-   r   r2   r3   r   r   r   r   r   r   r   r)   r:   r*   r(   r   r      sk    !!!*;KW]WeWefI"&""D9K$6$$/?tRVWL&f&&T=OS5r*   r   c                   ^   e Zd Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z	 ej                  edd      Z ej                  g dd	
      Z ej                  ed      Z ej                  ed      Z ej                  ed      Z ej                  ed      Z ej,                  ddd      Z ej0                  dd      Z ej0                  dd      Z ej                  ddgd
      Z ej0                         Z ej:                         Z ej:                         Z ej                  ddd      Z  ej:                  dd      Z! ej:                  d      Z" ej,                  ddd      Z#d Z$y)r   rC   Tr   rB   zicons/r   r   r   r   r   )Categoryr   )SubCategoryr   Productr   )Skur   (   r   r   r   r   )amountr   )
percentager     rv   z3Maximum discount amount when percentage is selected)r   r   	help_textc                 :    d| j                    d| j                   S )NzCoupons--)
CouponName
CouponCoder&   s    r(   r)   zCoupons.__str__  s    $//*!DOO+<==r*   N)%r+   r,   r-   r   r.   r   r   CouponDescriptionr   IconManyToManyFieldr
   
CouponUsedCouponOnr   ApplicableCategoryr   ApplicableSubCategoryr   ApplicableProductr   ApplicableSkurT   TotalBillAmountrR   DiscountAmountDiscountPercentage
CouponTypeMaxNumberofUsersr7   Validity_start_datevalidity_end_dateTermsAndConditionsNotificationScheduler   MaxDiscountAmountForPercentager)   r:   r*   r(   r   r      s   !!!Rd$GJ!!!Rd$GJ(((Cd$O6xd$GD'''DEJv  )J  Y[  \H///M2F223ETR...xtD*F**3d;M'f''2TNO(V((d$?N,,,$dC!!!-@B^,_lnoJ*v**,---/,,,.)))St4P/6//TF%%%48J%6V%6%6D  YN  &O">r*   r   c                       e Zd Z ej                         Z ej                         Z ej                  d      Z ej                  dddgd      Z
 ej                  d      Zd	 Zed
        Zy)DeliverySlotTr   r   )activeActive)inactiveInactiver  r   rv   c                 t    | j                   j                  d       d| j                  j                  d       S )Nz%H:%Mz to )
start_timestrftimeend_timer&   s    r(   r)   zDeliverySlot.__str__"  s4    //**734D9O9OPW9X8YZZr*   c                 4    | j                   | j                  z
  S r   )r  r  r&   s    r(   durationzDeliverySlot.duration%  s    }}t..r*   N)r+   r,   r-   r   r   r  r  BooleanFieldis_availabler.   r6   r7   r   r)   propertyr  r:   r*   r(   r  r    s    !!!#Jv!H&6&&t4LV 46NOYaF &%%48J[ / /r*   r  c                      e Zd Z ej                  ddd      Z ej                  dddd      Z ej                  ddd      Z ej                  g dd      Z ej                  e
d	      Z ej                  ed	      Z ej                  ed	      Z ej                  ed	      Z ej$                  d
ddd      Z ej(                  d      Z ej,                  ddd      Z ej,                  ddd      Zd Zy)DiscountrC   Tr   )r   r   r   r   rB   r   r   r   r         
max_digitsdecimal_placesr   r   rv   standard_images/r   banners/c                 :    d| j                    d| j                   S )Nz	Discount-r   )DiscountNameDiscountCoder&   s    r(   r)   zDiscount.__str__8  s#    4,,-Qt/@/@.ABBr*   N)r+   r,   r-   r   r.   r-  r.  DiscountDescription
DiscountOnr  r   r  r   r  r   r  r   r	  DecimalFieldr  r7   r   r   StandardImageBannerImager)   r:   r*   r(   r$  r$  *  s   #6##rDIL#6##rDQUVL*&**cDQ!!!  +M  Z\  ]J///tL2F223ETR...xtD*F**3d;M,,,!RV^bc%%%48J%F%%0BSWXM#&##jt4PKCr*   r$  c                   D   e Zd Z ej                  dej                  dd      Zg dZ ej                  ddd      Z	 ej                  ddd      Z
 ej                  ddd	      Z ej                  g d
d      Z ej                  ddd      Z ej                  ddd      Z ej"                  eej&                  dd      Z ej"                  eej&                  dd      Z ej"                  eej&                  dd      Z ej0                  d      Zd Zd Zy)AdsTFr=   ))Topr6  )Bottomr7  )Bannerr8  rC   r   rB   r   r   ))r$  r$  )Couponr9  r   r   r   r*  r   r+  r   r   r   rv   c                     | j                   S r   )AdTitler&   s    r(   r)   zAds.__str__N  s    ||r*   c                     t        | j                        }| j                  sg S | j                  j                  d      D cg c]  }||v s||    c}S c c}w )N,)dictplacement_choicesAdPlacementsplit)r'   placement_dict	placements      r(   get_placement_displayzAds.get_placement_displayQ  sZ    d445I;?;K;K;Q;QRU;Vv;ViZcguZuy);Vvvvs   	AAN)r+   r,   r-   r   rH   rI   rJ   r@  r.   r<  AdDescriptionr   rA  AdTyper   r2  r3  r2   r$  r3   r   r9  r   r   r7   r   r)   rE  r:   r*   r(   r5  r5  =  s$   6$**TED Uf"4tDG$F$$$dKM"&""cDIKV&n{}~F%F%%0BUYZM#&##jt4PK!!!(fnn4W[\HVwdRVWFf6>>TXYG%%%48Jwr*   r5  c                      e Zd Zg dZ ej
                  dej                  d      Z ej                  de      Z	 ej                  dd      Z ej                  eej                  dd      Z ej                   d	      Zd
 Zy)Message))EmailrJ  )SmsSMS)WhatsappWhatsAppTFr>   r   r?   r   rG   r   r:  rv   c                     | j                   S r   )message_typer&   s    r(   r)   zMessage.__str__c  s       r*   N)r+   r,   r-   MESSAGE_TYPE_CHOICESr   rH   rI   rJ   r.   rQ  r   r   r2   r5  r3   adsr7   r   r)   r:   r*   r(   rI  rI  W  s    
 6djj5QD#6##r;OPLfD5G
&

C6>>D
QC%%%48J!r*   rI  c                       e Zd Z ej                  eddiej                        Z ej                  eej                        Z	 ej                  d      Z ej                  d      Zd	 Zy
)Communicationrn   ro   )rp   r   r   Trv   Fr   c                 8    | j                    d| j                   S )Nz - )r   r   r&   s    r(   r)   zCommunication.__str__m  s    ,,s499+..r*   N)r+   r,   r-   r   r2   r
   r3   r   rI  r   r7   r   r   is_sendr)   r:   r*   r(   rU  rU  g  se    6Uk*5MZ`ZhZhiDf&..AG%%%48J!f!!%0G/r*   rU  c                   B   e Zd Z ej                  eej                        Z ej                  ddd      Z	 ej                  dg dd      Z
 ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej                  ddd      Z ej4                  d	      Zd
 Zy)Paymentr   r   Tr   rC   ))pendingPending)paidPaid)failedrm   rZ  r   rv   c                 N    d| j                   j                   d| j                   S )NzPayment for z - Status: )r   r   payment_statusr&   s    r(   r)   zPayment.__str__  s'    djj112+d>Q>Q=RSSr*   N)r+   r,   r-   r   r   rZ   r3   r   r.   bill_desk_order_idr`  	surchargepayment_method_typer   transaction_error_typepayment_categorybank_ref_notransactionidtxn_process_typebankiditemcodetransaction_error_codecurrencyauth_statustransaction_error_desccharge_amountr7   payment_dater)   r:   r*   r(   rY  rY  r  s    F  6>>BE)))St4P%V%% > 	N
 !  Cd$GI*&**cDQV4tDF-V--4tT'v''3TN"&""cDIK$F$$$dKM'v''3TNV4tDFv3TFH-V--4tTv3TFH"&""cDIK-V--4tT$F$$$dKM'6''T:LTr*   rY  c                   &   e Zd Z ej                  d      Z ej                  eej                        Z	 ej                  e
ej                        Z ej                  ddd      Z ej                  d      Z ej                  d      Zd	 Zy
)NotificationStatr   rA   r   i  Tr   rv   rw   c                 X    t        | j                        t        | j                        z   S r   )r   OrderIDsendTor&   s    r(   r)   zNotificationStat.__str__  s    4<< T[[!111r*   N)r+   r,   r-   r   r.   Sendmsgr2   r
   r3   ru  rZ   rt  Descriptionr7   r8   r9   r)   r:   r*   r(   rr  rr    s    f#.G6UV^^<FFfv~~>G"&""dDMK%%%48L%%%t4L2r*   rr  c                   H   e Zd Z ej                  dej                  d      Z ej                  d      Z ej                  d      Z	 ej                  ddd      Z
 ej                  eej                  dd	      Z ej                  ed
ej                   dd      Zd Zy)SomeOneElseTFrO  r@   rA   r   r   r   r   some_one_else_order)r   r   r   r   c                 ^    t        | j                        dz   t        | j                        z   S N_)r   rK   r/   r&   s    r(   r)   zSomeOneElse.__str__  s%    499~#c$*;*;&<<<r*   N)r+   r,   r-   r   rH   rI   rJ   r.   rK   r/   r   r   r   r   r   rZ   r3   ordersr)   r:   r*   r(   ry  ry    s    6djj5QD6s+D#6##s3Lf#t4HG6VZ[D!V!!&8M[a[i[isw  AE  FF=r*   ry  c                   ~   e Zd Z ej                  dej                  dd      Z ej                  ddd      Z ej                  dg d      Z	 ej                  dd	      Z ej                  dg d
      Z ej                  eddej                        Z ej                  eej                  dd      Z ej                  eej(                  dd      Z ej,                  dd	      Z ej,                  dd	      Z ej,                         Z ej4                  dd	      Z ej                  dd	      Zd Zy)DeletedOrdersTFr=   r   r   rC   r[   rG   ra   rb   rq   r   c                 d    dt        | j                        z   dz   t        | j                        z   S r   r   r&   s    r(   r)   zDeletedOrders.__str__  r   r*   N)r+   r,   r-   r   rH   rI   rJ   r.   r   r   rT   r   r   r2   r   r   r   r   r   r	   r3   r   r7   r   r   r8   r   r   r   r)   r:   r*   r(   r  r    sL   6$**TED  v3dFH!!!
J $&##$T:K#6##
L" #""DtvJ  f&//DG 'V&&}X\dhiN+v++$TB/6//dF'6'')L"&""D9KfT5G
r*   r  c                       e Zd Z ej                  dd ed            Z ej                  dd ed            Z ej                  dd ed            Z ej                  dd ed            Z	 ej                  dd ed            Z
d	 Zy
)DeliverySettings
   r&  z20.0)r(  r)  r   r%  z3.0z5.0z0.0c                 V    d| j                    d| j                   d| j                   dS )Nu   Base Fee: ₹z for u    km, ₹z	/km after)base_feebase_km
per_km_feer&   s    r(   r)   zDeliverySettings.__str__  s+    t}}oU4<<.HYYbccr*   N)r+   r,   r-   r   r1  r   r  r  r  free_delivery_min_order_valuefree_delivery_max_distancer)   r:   r*   r(   r  r    s    "v""bGTZO\H!f!!Qq'RW.YG$$$1gV[n]J$7F$7$72VWahinao$p!!4!4!4RS]dej]k!ldr*   r  c                   b    e Zd Z ej                  dd      Z ej                  dd      Zd Zy)DeliveryDiscountr  r&  )r(  r)  r%  c                 8    | j                    d| j                   S )Nu   % off for orders > ₹)discount_percentmin_order_valuer&   s    r(   r)   zDeliveryDiscount.__str__  s"    ''((>t?S?S>TUUr*   N)r+   r,   r-   r   r1  r  r  r)   r:   r*   r(   r  r    s1    )f))RJO*v**aJVr*   r  c                       e Zd Z ej                  ddd      Z ej                  dd      Z ej                  dddd      Z	 ej                  dddd      Z
 ej                  dddd      Zd Zy	)
CustomCouponSettingsr   Tr   r   r  r&  r'  c                     | j                    S r   )coupon_namer&   s    r(   r)   zCustomCouponSettings.__str__  s    ""#$r*   N)r+   r,   r-   r   r.   r  r   coupon_descriptionr1  lower_limit_pricehigher_limit_pricediscount_amountr)   r:   r*   r(   r  r    s    "&""cDIK)))t4@,,,1SW_cd.6.."QUYaef*v**bQU]abO%r*   r  c                       e Zd Z ej                  ddd      Z ej                  eej                  dd      Z	 ej                  e
ej                  dd      Z ej                  d      Zd Zy)CustomCouponrC   Tr   r   rv   c                 L    | j                   j                   d| j                   S r|  )r   r  coupon_coder&   s    r(   r)   zCustomCoupon.__str__  s%    ++))*!D,<,<+=>>r*   N)r+   r,   r-   r   r.   r  r2   r  r3   r   r
   r   r7   r8   r)   r:   r*   r(   r  r    sj    "&""bt4HKV3v~~UY`deF6UfnnDtTD'6''T:L?r*   r  c                       e Zd Z ej                  d      Z ej                  d      Z ej                  d      Z	 ej                  d      Z ej                  d      Zd Zy	)
r}   T)r>   r   rA   r   rv   rw   c                     | j                   S r   )	mode_namer&   s    r(   r)   zPaymentModes.__str__  s    ~~r*   N)r+   r,   r-   r   	AutoFieldidr.   r  r   r6   r7   r   r   r)   r:   r*   r(   r}   r}   
  sa    			d	+B   C0I V  .F%%%48J%%%t4Jr*   r}   )*	django.dbr   decimalr   rI   products.modelsr   r   r   r   r	   accounts.modelsr
   shops.modelsr   r   Modelr   r<   rZ   r   r   r   r   r   r   r   r   r  r$  r5  rI  rU  rY  rr  ry  r  r  r  r  r  r}   r:   r*   r(   <module>r     s      \ \ ! -76<< 705&,, 5,^
V\\ ^
@&,, FLL S SWFLL W$	r6<< 	r	Av|| 	A
5FLL 
5>fll >8/6<< /"Cv|| C&w&,, w4!fll ! /FLL /Tfll T>	2v|| 	2=&,, =7
FLL 7
tdv|| dVv|| V%6<< %?6<< ?6<< r*   