§
    [#•ja�  ã                   ó¾  — U d dl mZmZmZmZ d dlmZ d dl mZmZmZ 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mZmZ d dlmZmZ d d	lmZ d dlZd dlZeeeef         Zeed
<   ddddddœdddd ddœddddddœgZ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œ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ddœd*d dœd ddœd/œdœd0d1ddœd*d dœd ddœd2œdœd3d4d5dœdd!dœd d6dœd7œdœd8d4d9dœdd:dœd d;dœd<œdœd=œZ  G d>„ d?¦  «        Z! G d@„ dA¦  «        Z" G dB„ dC¦  «        Z#dDe$fdE„Z%dDe$fdF„Z& G dG„ dHe¦  «        Z' G dI„ dJe¦  «        Z( G dK„ dLe¦  «        Z) G dM„ dNe¦  «        Z* G dO„ dPe¦  «        Z+ G dQ„ dR¦  «        Z, G dS„ dTe¦  «        Z- G dU„ dVe¦  «        Z. G dW„ dX¦  «        Z/ G dY„ dZe¦  «        Z0 G d[„ d\e¦  «        Z1 G d]„ d^e¦  «        Z2 G d_„ d`e¦  «        Z3 G da„ db¦  «        Z4 G dc„ dd¦  «        Z5 G de„ dfe5¦  «        Z6 G dg„ dhe¦  «        Z7di„ Z8dje9fdk„Z:dldiZ;dS )mé    )ÚOptionalÚAnyÚ	TypeAliasÚSelf)Úcached_property)r   r   Ú	Generator)Údefaultdict)ÚsessionN)ÚDebugÚIODateÚmÚiÚsÚfÚgetJSON)ÚModelÚrow)ÚDecimalÚRowsz'Run down building in a bad neighborhoodz¬No heat but there's plenty of holes in the wall so build in air conditioning.  Your employees are not going to like this but it's cheap. - <strong>$5,000 / Quarter</strong>ÚLowiìÿÿÿéˆ  )ÚtitleÚdetailÚvalueÚeffectÚcostz An old house on the edge of townz„Structurally sound building and it even has a kitchen.  It's awfully cramped but could be worse - <strong>$10,000 / Quarter</strong>ÚMediumi'  zLease a brand new buildingzÌPlenty of space and state of the art facilities.  Mass transit right to the front door and a built in gym.  Employees will be beating your door down to get a job here. - <strong>$20,000 / Quarter</strong>ÚHighé   i N  zXYou need a new plant manager for your factory.  Choose from the following top candidates)r   Ú	pr_effect)z¯Expecting Mom - Age:27 - Very talented women with great credentials and job experience. She just found out she is expecting so she will need maternity leave in the near futurezŠThe Pro - Age 57 - Top of his class at the Wharton Business School.  He has short stints at a ton of great companies but they all love himzŽHome Grown - Age 26 - Started at the company straight out of high school.  Steady, on time, very dependable but with no management experience.©ÚdescriptionÚoptionszŽDo you feel your business reflects your ethical beliefs?  Would you have made different decisions if the employees were your family / friends?)z*Yes, I would love to work at this company!zVMiddle of the road.  We tried to do the right thing for our customers and shareholdersz)No, we wanted to win so we were ruthless!u~   <strong>Marketing</strong><br>You need donations for a silent auction but donâ€™t shop downtown or patronize any local stores.é
   éÄ	  iöÿÿÿ)zWrite it in to your budgetz.Give your employees a stipend to spend locallyz0Continue to shop from larger brands saving moneyzvYour company plans to build a new distribution center that promises jobs but would displace a low-income neighborhood.)zDo you proceed for growthzGChoose an alternative site at higher cost but less community disruptionz¶<strong>Marketing</strong><br>A popular but polarizing influencer offers to promote your brand for a significant fee. They have a large following but a history of public controversy.)z.Gamble and accept the partnership for exposurez0Distance your brand to avoid potential backlash?zXYour employees are complaining about substandard working conditions. How do you respond?i¸  )z(Undergo massive updates of your facilityzBPut in the bare minimum repairs to keep employees from complainingú
Do nothingzVYour new line has dropped and you have been informed there was a manufacturing defect.)zYou recall the defective phonesz'You offer free fixes on all your phonesr&   z…<br>Human Resources</strong><br>Your employees are using too many sick days to take care of their children.  Production is suffering.)z(Provide a comprehensive day care packagezProvide a stipend for daycarer&   z¥Congratulations! You have built a brand-new facility for your Company. Unfortunately,you had to remove 300 trees to make space for your building. How do you respond?i@  )z6Plant 300 trees on a different section of the propertyzPlant a portion of the treeszReplant zero treesz‡The train carrying your shipment of batteries has derailed and caught fire.  You have a potential environmental disaster on your hands.iPÃ  é   içÿÿÿ)z*Clean it up and make it better than it wasz7Hire crisis management firm to blame it on someone elsezLPretend it didn't happen.  Looks normal to me, trees always glow in the darkz„A pandemic is spreading the globe.  People are reluctant to leave their houses and there are supply shortages of all your componentsé2   é   iñÿÿÿ)z*Allow your employees to stay home with payz­Take reasonable precautions (Social Distancing, Hand Sanatizer,etc) and add extra shifts to reduce the number of people working at the same time.  Production will take a hitz&It's just a cold.  We can tough it out)ÚManagerÚEthicsÚAuctionÚInfrastructureÚSocialMediaÚ
ConditionsÚ
ProductionÚDaycareÚDeforestationÚEnvironmentalÚPandemicc                   ó   — e Zd Zd„ ZdS )ÚAdminc                 ó²   — t          ¦   «                              ¦   «                              d¦  «        pg t          ¦   «                              ¦   «         pg dœS )Nr#   )ÚOverheadÚDilemas)r8   r#   ÚgetÚDilemmas©Úselfs    ú/var/www/bsim/io/app.pyr#   zAdmin.optionsË   sO   € å‰jŒj× Ò Ñ"Ô"×&Ò& yÑ1Ô1Ð7°RÝ‰ZŒZ×ÒÑ!Ô!Ð' Rð
ð 
ð ó    N)Ú__name__Ú
__module__Ú__qualname__r#   © r?   r>   r6   r6   Ê   s#   € € € € € ðð ð ð ð r?   r6   c                   ó4   — e Zd Zdedefd„Zdedefd„Zd„ ZdS )r8   ÚkeyÚreturnc                 ó˜   — t           D ]A}|                     dd¦  «        |k    r%t          |                     dd¦  «        ¦  «        c S ŒBdS )Nr   Ú r   r   ©ÚOVERHEADr:   r   ©r=   rE   Úitems      r>   r   zOverhead.costÓ   sV   € Ýð !ð !€dØ
‡h‚hˆw�rÑÔ˜cÒ!Ð!ÝˆT�XŠX�f˜QÑÔÑ Ô Ð Ð Ð ð "à	
ˆr?   c                 ó˜   — t           D ]A}|                     dd¦  «        |k    r%t          |                     dd¦  «        ¦  «        c S ŒBdS )Nr   rH   r   r   rI   rK   s      r>   r   zOverhead.valueÙ   sX   € Ýð #ð #€dØ
‡h‚hˆw�rÑÔ˜cÒ!Ð!åˆT�XŠX�h˜qÑ!Ô!Ñ"Ô"Ð"Ð"Ð"ð "ð 
ˆr?   c                 ó   — dt           iS ©Nr#   )rJ   r<   s    r>   r#   zOverhead.optionsà   s   € Ø
•HÐ	Ðr?   N)r@   rA   rB   ÚstrÚintr   r   r#   rC   r?   r>   r8   r8   Ñ   sg   € € € € € ð�3ð ˜3ð ð ð ð ð�Cð ˜Cð ð ð ð ðð ð ð ð r?   r8   c                   óŒ   — e Zd ZU eed<   dedefd„Zdefd„Zdededefd	„Z	dedede
fd
„Zdedefd„Zdefd„Zdefd„Zd„ ZdS )r;   ÚerrorÚdatarF   c                 óJ   — t          |¦  «        dk    rt          |¦  «        S g S ©Nr   )Úlenr   ©r=   rT   s     r>   ÚfromJSONzDilemmas.fromJSONå   s"   € Ýˆ�Y„Yˆq‚[€[Ý
�$‰-Œ-Ðà	€8r?   Únamec                 ó^   — t                                |i ¦  «                             d¦  «        S )Nr"   )ÚDILEMMASr:   ©r=   rZ   s     r>   r"   zDilemmas.descriptionê   s$   € Ý	�Š�d˜2Ñ	Ô	×	"Ò	" =Ñ	1Ô	1Ð1r?   ÚdilemmaÚactionc           	      ó|  — 	 t          t                               |i ¦  «                             di ¦  «                             |i ¦  «                             d¦  «        ¦  «        S # t          $ rL}d|› d|› dt	          |¦  «        › �| _        t          d|› d|› �¬¦  «         t          d¦  «        cY d }~S d }~ww xY w)Nr#   r   úTrouble getting Dilemma cost ú -> ú 
©r   r   )r   r\   r:   Ú	ExceptionrP   rS   r   ©r=   r^   r_   Úes       r>   r   zDilemmas.costí   sÌ   € ðÝ
�H�LŠL˜ Ñ$Ô$×(Ò(¨°2Ñ6Ô6×:Ò:¸6À"ÑEÔE×IÒIÈ&ÑQÔQÑ
RÔ
RÐRøÝ	ð ð ð ØP°ÐPÐP¸VÐPÐPÍÈAÉÌÐPÐP€4„:ÝÐD¨wÐDÐD¸FÐDÐDÐEÑEÔEÐEÝ
ˆA‰$Œ$€;€;€;€;€;€;øøøøðøøøó   ‚A"A% Á%
B;Á/AB6Â0B;Â6B;c           	      ó|  — 	 t          t                               |i ¦  «                             di ¦  «                             |i ¦  «                             d¦  «        ¦  «        S # t          $ rL}d|› d|› dt	          |¦  «        › �| _        t          d|› d|› �¬¦  «         t          d¦  «        cY d }~S d }~ww xY w)Nr#   r    ra   rb   rc   rd   r   )r   r\   r:   re   rP   rS   r   rf   s       r>   ÚprzDilemmas.prõ   sÌ   € ðÝ
�H�LŠL˜ Ñ$Ô$×(Ò(¨°2Ñ6Ô6×:Ò:¸6À"ÑEÔE×IÒIÈ+ÑVÔVÑ
WÔ
WÐWøÝ	ð ð ð ØP°ÐPÐP¸VÐPÐPÍÈAÉÌÐPÐP€4„:ÝÐD¨wÐDÐD¸FÐDÐDÐEÑEÔEÐEÝ
ˆA‰$Œ$€;€;€;€;€;€;øøøøðøøørh   Údilemmasc                 ó�  — g }t          |¦  «        pg D ]±}t                               |i ¦  «                             d¦  «        i dœ}t                               |i ¦  «                             di ¦  «                             ¦   «         D ]'\  }}||d         |<   	 |d         |         d= Œ!#  Y Œ%xY w|                     |¦  «         Œ²|S )Nr"   r!   r#   r    )r   r\   r:   ÚitemsÚappend)r=   rk   Úallr^   rT   ÚoptionÚvals          r>   Ú
mk_quarterzDilemmas.mk_quarterý   sØ   € Ø
€#Ý˜Ñ"Ô"Ð( bð ð €gÝ!Ÿš g¨bÑ1Ô1×5Ò5°mÑDÔDÈrÐ
RÐ
R€4Ý—\’\ '¨"Ñ-Ô-×1Ò1°)¸BÑ?Ô?×EÒEÑGÔGð 
ð 
�z€vˆcØ!€Dˆ„O�FÑð
Ø	ˆiŒ˜Ô	  Ð	-Ð	-øð
Ø	€TøøøØ‡:‚:ˆdÑÔÐÐØ	€*s   ÂB)Â)B-c                 ó  — i }t                                |i ¦  «                             di ¦  «                             ¦   «         D ]\  }}|||<   	 |d= Œ#  Y ŒxY w|t                                |i ¦  «                             d¦  «        dœS )Nr#   r    r"   )r#   r"   ©r\   r:   rm   ©r=   rZ   rT   Údescrq   s        r>   Úclient_optionzDilemmas.client_option
  s•   € Ø	€$Ý—,’,˜t BÑ'Ô'×+Ò+¨I°bÑ9Ô9×?Ò?ÑAÔAð 	ð 	�h€dˆ3Ø€4ˆ�:ð	ØˆKÐÐøð	Ø€Døøøà¥x§|¢|°D¸Ñ'<Ô'<×'@Ò'@ÀÑ'OÔ'OÐ	PÐ	PÐPs   ÁAÁAc                 ó¢   — i }t                                |i ¦  «                             di ¦  «                             ¦   «         D ]
\  }}|||<   Œ|S rO   rt   ru   s        r>   rp   zDilemmas.option  sT   € Ø	€$Ý—,’,˜t BÑ'Ô'×+Ò+¨I°bÑ9Ô9×?Ò?ÑAÔAð ð �h€dˆ3Ø€4ˆ�:€:Ø	€+r?   c                 óž   — g }t                                ¦   «         D ]0\  }}|                     |                     d¦  «        |dœ¦  «         Œ1|S )Nr"   ©r   r   )r\   rm   rn   r:   )r=   rT   rZ   r   s       r>   r#   zDilemmas.options  sb   € Ø	€$Ý—^’^Ñ%Ô%ð ð �k€dˆ6Ø‡;‚;Ø�JŠJ�}Ñ%Ô%Øðð ñ ô ð ð ð 
€+r?   N)r@   rA   rB   rP   Ú__annotations__ÚlistrY   r"   r   r   rQ   rj   rr   rw   rp   r#   rC   r?   r>   r;   r;   ã   s  € € € € € € Ø
€€�ð˜ð  ð ð ð ð ð
2˜3ð 2ð 2ð 2ð 2ð�sð  #ð ¨'ð ð ð ð ð�Sð  ð ¨ð ð ð ð ð˜cð  dð ð ð ð ð	Q˜Sð 	Qð 	Qð 	Qð 	Qð�cð ð ð ð ðð ð ð ð r?   r;   rF   c                  óÄ   — 	 t           d         d         pdS # t          $ r>} t          d| ¬¦  «         t          dt           d         d         ¬¦  «         Y d } ~ dS d } ~ ww xY w)NÚUserÚBusiness_IDéÿÿÿÿúTrouble getting session user©r   rT   zSession Business©r
   re   r   ©rg   s    r>   ÚgetBusIDr…   $  sx   € ðÝ	�Œ˜Ô	'Ð	-¨2Ð-øÝð ð ð ÝÐ,°!Ð4Ñ4Ô4Ð4ÝÐ ¥g¨f¤o°mÔ&DÐEÑEÔEÐEØ	ˆˆˆˆˆøøøøðøøøs   ‚ —
A¡3AÁAc                  ó´   — 	 t           d         d         S # t          $ r8} t          d| ¬¦  «         t          dt           d         ¬¦  «         Y d } ~ dS d } ~ ww xY w)Nr~   ÚIDr�   r‚   zSession Userr€   rƒ   r„   s    r>   Ú	getUserIDrˆ   ,  sm   € ðÝ	�Œ˜Ô	ÐøÝð ð ð ÝÐ,°!Ð4Ñ4Ô4Ð4Ýˆn¥'¨&¤/Ð2Ñ2Ô2Ð2Ø	ˆˆˆˆˆøøøøðøøøs   ‚ •
AŸ-AÁAc                   ój   ‡ — e Zd ZdZdedefd„Zdedefd„Zd„ Z	de
defd„Zd	efd
„Zdefˆ fd„Zˆ xZS )ÚGlobal_SettingsÚGlobalÚqualityrF   c                 óà   — i }t          ¦   «         }t          |                     |› d�¦  «        ¦  «        }|dz  }dt          |dz  ¦  «        › dt          |dz  ¦  «        › �|d<   d|d         iS )NÚ_Median_Pricegš™™™™™é?ú$z - $g333333ó?Úprice)rŠ   r   Ú	get_valuer   )r=   rŒ   rT   Úsettingsr�   Úbottoms         r>   ÚsummaryzGlobal_Settings.summary7  s{   € Ø	€$ÝÑÔ€(Ý
ˆH×Ò 'Ð8Ð8Ð8Ñ9Ô9Ñ
:Ô
:€%Ø�3‰;€&Ø<•a˜ ™‘o”oÐ<Ð<­1¨U°T©\©?¬?Ð<Ð<€$€w�-Ø
�$�w”-Ð	 Ð r?   c                 ó    — |                       ¦   «         }|                     |¦  «        x}r|                     d¦  «        S t          d¦  «        S )Nr   ç        )Úmedian_pricesr:   r   )r=   rŒ   ÚpricesrL   s       r>   Úmedian_pricezGlobal_Settings.median_price?  sJ   € Ø×ÒÑÔ€&à�ZŠZ˜Ñ Ô Ð €Tð Ø
�(Š(�7Ñ
Ô
Ðå
�$‰-Œ-Ðr?   c                 ó¨   — |                       ¦   «         }|                     d¦  «        |                     d¦  «        |                     d¦  «        dœS )NÚLow_Median_PriceÚMedium_Median_PriceÚHigh_Median_Price)r   r   r   )Úcacher:   rX   s     r>   r—   zGlobal_Settings.median_pricesG  sN   € Ø	�Š‰Œ€$à	�ŠÐ$Ñ	%Ô	%Ø�HŠHÐ*Ñ+Ô+Ø
�(Š(Ð&Ñ
'Ô
'ð
ð 
ð r?   r‡   c                 ó–   — |                       ¦   «         | _        | j                             d|g¬¦  «         |                      ¦   «         S ©NúID=%s©ÚqueryÚparms©Úqb_initÚqbÚfilterÚ
select_one©r=   r‡   s     r>   r:   zGlobal_Settings.getO  ó;   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�w b T€.Ñ*Ô*Ð*Ø	�ŠÑ	Ô	Ðr?   rE   c                 óÆ   — |                       ¦   «         | _        | j                             d|g¬¦  «         |                      ¦   «         pi }|                     dd¦  «        S )Nz`key`=%sr¢   r   rH   )r¦   r§   r¨   r©   r:   )r=   rE   Úds      r>   r‘   zGlobal_Settings.get_valueT  sS   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�z¨¨€.Ñ.Ô.Ð.Ø
‡o‚oÑÔÐ˜2€!Ø	
�Šˆw�rÑ	Ô	Ðr?   c                 óH   •— t          ¦   «                              d¬¦  «        S )NrE   ©Úfield)Úsuperrž   )r=   Ú	__class__s    €r>   rž   zGlobal_Settings.cacheZ  s   ø€ Ý	‰Œ�Š˜UˆÑ	#Ô	#Ð#r?   )r@   rA   rB   ÚtablerP   Údictr”   r   r™   r—   rQ   r:   r‘   rž   Ú__classcell__©r²   s   @r>   rŠ   rŠ   4  sÙ   ø€ € € € € Ø	€ð!˜#ð ! $ð !ð !ð !ð !ð˜sð  wð ð ð ð ðð ð ð�ð ˜ð ð ð ð ð
˜ð ð ð ð ð$�Dð $ð $ð $ð $ð $ð $ð $ð $ð $ð $r?   rŠ   c                   óP   — e Zd Zd
dedefd„Zedefd„¦   «         Zdededefd„Zd	S )ÚBusiness_Iteméd   Ú
manuf_coefrF   c                 ó”  — ddl m} t          ¦   «                              ¦   «         }	 t	          |                     |                      dd¦  «        i ¦  «                             d¦  «        pd¦  «        }|t	          |dz  ¦  «        z  } ||dz  ¦  «        S # t          $ r&}t          d	|¬
¦  «          |d¦  «        cY d }~S d }~ww xY w)Nr   ©r   ÚQualityrH   r   r€   r¹   é   zTrouble getting Units Pricer‚   iç  )ÚUtilsr   rŠ   r—   r   r:   re   r   )r=   rº   r   r˜   r   rg   s         r>   Úcost_per_unitzBusiness_Item.cost_per_unit^  sÞ   € ØÐÐÐÐÐÝÑÔ×*Ò*Ñ,Ô,€&ðÝ
ˆF�JŠJ�t—x’x 	¨"Ñ-Ô-¨bÑ1Ô1×5Ò5°gÑ>Ô>ÐDÀ"Ñ
EÔ
E€4Ø�1ˆZ˜‰^ÑÔÑ€4Ø
ˆ!ˆD�‰F‰)Œ)Ðøå	ð ð ð ÝÐ,°&Ð9Ñ9Ô9Ð9Ø
ˆ!ˆC‰&Œ&€=€=€=€=€=€=øøøøðøøøs   ¨A.B Â
CÂ!CÂ<CÃCc                 ó  — 	 |                       d¦  «        }t          |                       d¦  «        ¦  «        }t          |                       d¦  «        ¦  «        }t          t          ¦   «                              |› d�¦  «        ¦  «        }t          |dz  ¦  «        }t          t          |                       d¦  «        ¦  «        |z  ¦  «        }||z   }|S # t          $ r}t          d|¬¦  «         Y d }~nd }~ww xY wt          d	¦  «        S )
Nr½   ÚCapitalÚLoanrŽ   é   ÚUnitszTrouble with total valuer‚   r€   )	r:   r   r   rŠ   r‘   r   re   r   r   )	r=   rŒ   ÚcapitalÚloanÚmedianÚavg_valÚunit_valÚtotalrg   s	            r>   Útotal_valuezBusiness_Item.total_valuek  s  € ð2Ø�XŠX�iÑ Ô €7Ýˆt�xŠx˜	Ñ"Ô"Ñ#Ô#€7Ý
ˆD�HŠH�VÑÔÑ
Ô
€4Ý�oÑÔ×)Ò)¨WÐ*CÐ*CÐ*CÑDÔDÑEÔE€6Ýˆv�a‰x‰[Œ[€7Ý•�$—(’(˜7Ñ#Ô#Ñ$Ô$ wÑ.Ñ/Ô/€8Ø�xÑ€5à
€<øÝ	ð 2ð 2ð 2ÝÐ)¨qÐ1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1øøøøð2øøøõ 
�‰ŒÐs   ‚CC Ã
C<Ã!C7Ã7C<ÚrevÚexpensesc                 óˆ   — t          |                      dd¦  «        ¦  «        }t          ||z   |z
  ¦  «        | d<   | d         S )NrÃ   r–   rÂ   )r   r:   )r=   rÍ   rÎ   rÇ   s       r>   Úcalc_capitalzBusiness_Item.calc_capital|  sA   € Ý	
ˆ4�8Š8�F˜4Ñ Ô Ñ	!Ô	!€$Ý�s˜4‘x Ñ)Ñ*Ô*€$€y�/Ø	ˆiŒÐr?   N)r¹   )	r@   rA   rB   rQ   r   rÀ   ÚpropertyrÌ   rÐ   rC   r?   r>   r¸   r¸   ]  s‹   € € € € € ðð  3ð ¨wð ð ð ð ð ð˜'ð ð ð ñ „(ðð ˜7ð ¨Gð ¸ð ð ð ð ð ð r?   r¸   c                   ó¬   — e Zd ZU dZeed<   d ZdZdedede	fd„Z
dedede	de	fd	„Zdefd
„Zdedefd„Zddedee         defd„Zdefd„Zdedefd„ZdS )ÚBusinessé   ÚidÚBusiness_itemÚunitsrŒ   rF   c                 ó´   — d}t          t          ¦   «                              |› d�¦  «        ¦  «        }t          |dz  ¦  «        }||z  }t          |¦  «        S )Nr   rŽ   rÄ   )r   rŠ   r‘   r   )r=   r×   rŒ   rq   rÈ   rÉ   s         r>   Úinventory_valuezBusiness.inventory_value†  sT   € Ø	€#Ý�_ÑÔ×(Ò(¨GÐ)BÐ)BÐ)BÑCÔCÑDÔD€&Ýˆf�Q‰h‰KŒK€'Ø�‰€#Ý	
ˆ3‰Œ€-r?   rÆ   c                 óˆ   — 	 |                       ||¬¦  «        }t          ||z   dz  ¦  «        S #  t          d¦  «        cY S xY w)N)r×   rŒ   éO  r   )rÙ   r   )r=   r×   rŒ   rÆ   Ú	inv_values        r>   Úcalc_stock_pricezBusiness.calc_stock_price�  sO   € ðØ×#Ò#¨E¸'Ð#ÑBÔB€9Ý
ˆY˜Ñ  EÑ)Ñ
*Ô
*Ð*øðÝ
ˆA‰$Œ$€;€;€;øøøs	   ‚+. ®Ac                 ó.  — t          ¦   «         }t          |                     d¦  «        pd¦  «        }d}|                      ¦   «         D ]K}||d<   ||d<   d|d<   d|d<   d|d<   |                      |¦  «         |                      |¦  «        dk    rd}ŒL|S )	NÚInitial_Capitalr   rÔ   rÂ   rÃ   ÚPR_ScorerÅ   ÚStock_Price)rŠ   r   r‘   ro   Úupdate)r=   ÚgdatarÇ   ÚstatusÚbuss        r>   ÚresetzBusiness.reset”  sª   € Ý
Ñ
Ô
€%Ý	
ˆ5�?Š?Ð,Ñ-Ô-Ð2°Ñ	3Ô	3€$Ø€&Ø�XŠX‰ZŒZð ð €cØ€3€y�>Ø€3€v�;Ø€3€z�?Ø€3€w�<Ø€3€}ÑØ‡;‚;ˆsÑÔÐØ
‡k‚k�#ÑÔ˜ÒÐØ€FøØ	€-r?   r‡   c                 óB  — |                       ¦   «         | _        | j                             d|g¬¦  «         |                      ¦   «         }i }|rÐt	          |¦  «        }|                     ¦   «         |d<   i |d<   t          j        dt          ¦   «          	                    |¦  «        ¦  «        }d}t          ¦   «                              ¦   «         D ]N}|                     dd¦  «        }||d         |<   |                     |i ¦  «                             d	¦  «        pd}ŒO|S )
Nr¡   r¢   Ú	unit_costÚemployee_listÚ
Quarter_IDr   r‡   rH   Ú	employees)r¦   r§   r¨   r©   r¸   rÀ   r¿   Úgroup_byÚQuartersÚget_businessÚQuarter_SettingsÚactiver:   )r=   r‡   r   rå   ÚplansÚprevÚsettingÚqids           r>   r:   zBusiness.get£  s  € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�w b T€.Ñ*Ô*Ð*Ø�ŠÑÔ€#Ø
€#Øð 3Ý	�sÑ	Ô	€3Ø×'Ò'Ñ)Ô)€3€{ÑØ€3€Ñõ Œ>˜,¥x¡z¤z×'>Ò'>¸rÑ'BÔ'BÑCÔC€5Ø
€4å"Ñ$Ô$×+Ò+Ñ-Ô-ð 3ð 3€wØ
�+Š+�d˜2Ñ
Ô
€CØ $€CˆÔ˜ÑØ�9Š9�S˜ÑÔ× Ò  Ñ-Ô-Ð2°€D€DØ	€*r?   rH   Nr£   r¤   c                 óÖ   — i }|                       ¦   «         | _        |r| j                             ||¬¦  «         |                      ¦   «         D ]}|||                     d¦  «        <   Œ|S )Nr¢   r‡   )r¦   r§   r¨   Úselectr:   )r=   r°   r£   r¤   rT   rå   s         r>   rž   zBusiness.cache·  si   € Ø	€$Ø�LŠL‰NŒN€$„'à
ð +Ø„7‡>‚>˜ E€>Ñ*Ô*Ð*à�[Š[‰]Œ]ð ð €cØ€4ˆ�Š�‰ŒÑÐØ	€+r?   c                 óÒ   — g }|                       ¦   «         D ]O}t          ¦   «                              |                     d¦  «        ¬¦  «        |d<   |                     |¦  «         ŒP|S )Nr‡   ©r   ÚQuarter_Plan)ro   rí   rî   r:   rn   )r=   r­   rå   s      r>   ÚdetailszBusiness.detailsÂ  s]   € Ø€!Ø�XŠX‰ZŒZð ð €cÝ!™œ×0Ò0¸S¿WºWÀT¹]¼]Ð0ÑKÔK€3€~ÑØ‡8‚8ˆC�=„=€=€=Ø	
€(r?   c                 ó|   — |                       |¬¦  «        }t          ¦   «                              |¬¦  «        |d<   |S )N©r‡   rø   rù   )r:   rí   rî   )r=   r‡   rå   s      r>   r   zBusiness.detailÉ  s7   € Ø�Š�Bˆ‰Œ€#Ý ™
œ
×/Ò/¸BÐ/Ñ?Ô?€#€nÑØ	€*r?   )r‡   rH   N)r@   rA   rB   rÕ   rQ   r{   r³   Úrow_clsrP   r   rÙ   rÝ   ræ   r´   r:   r   r|   rž   rú   r   rC   r?   r>   rÓ   rÓ   �  s2  € € € € € € Ø
€€C€€�Ø	€Ø€ð ð ¨Cð °Gð ð ð ð ð ð ¨Sð ¸ð ÀWð ð ð ð ð�Cð ð ð ð ð�ð ˜ð ð ð ð ð(	ð 	 ð 	¨h°t¬nð 	Àdð 	ð 	ð 	ð 	ð�dð ð ð ð ð�Cð ˜Dð ð ð ð ð ð r?   rÓ   c                   óæ   — e Zd ZU dZeed<   d Zdedefd„Zde	defd„Z
defd„Zd	edefd
„Zdefd„Zdd	ede	defd„Zdefd„Zdefd„Zde	dee         defd„Zdefd„Zdde	dee         defd„ZdS )rï   rÔ   rÕ   r‡   rF   c                 ó–   — |                       ¦   «         | _        | j                             d|g¬¦  «         |                      ¦   «         S r    r¥   rª   s     r>   r:   zQuarter_Settings.getÒ  r«   r?   rZ   c                 óÀ   — |                       ¦   «         | _        | j                             d|g¬¦  «                             d¦  «         |                      ¦   «         pi S )NzName=%sr¢   Ú1)r¦   r§   r¨   Úlimitr©   r]   s     r>   Úget_namezQuarter_Settings.get_name×  sN   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�y¨ v€.Ñ.Ô.×4Ò4°SÑ9Ô9Ð9Ø	�ŠÑ	Ô	Ð	 ˜bÐ r?   c                 ó–   — |                       ¦   «         | _        | j                             ddi¬¦  «         |                      ¦   «         S )NÚActiver   ©rT   )r¦   r§   râ   Úexecuter<   s    r>   Ú
deactivatezQuarter_Settings.deactivateÜ  s9   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�x �l€.Ñ#Ô#Ð#Ø	�Š‰ŒÐr?   Úbus_idc                 ó²  — |                       ¦   «         | _        i }|                      ¦   «         D �]%} |j        d¦  «        } |j        d¦  «        }t	          d|¬¦  «         t          ¦   «                              |¬¦  «        }|||<   t          ¦   «                               |j        d¦  «        ¦  «        ||         d<   t          ¦   «          
                    ¦   «         ||         d<   |                      ||¬¦  «        ||         d	<   d
||         d<   t          ¦   «                              |                     dd¦  «        ¦  «        ||         d<   �Œ'|S )NÚNamer‡   zbus summaryr‚   rü   r;   ÚOverhead_Settings©r	  Úquarter_nameÚProduction_Costé(   Ú
Efficiencyr½   rH   ÚMedian)r¦   r§   ro   r:   r   rÓ   Úget_idr;   rr   r8   r#   Úcalc_production_costrŠ   r”   )r=   r	  rT   r   rZ   rÕ   Úbus_datas          r>   Úbus_summaryzQuarter_Settings.bus_summaryá  s7  € Ø�LŠL‰NŒN€$„'Ø	€$à�XŠX‰ZŒZð Nñ N€cØ
ˆ#Œ'�&‰/Œ/€4ØˆŒ�‰Œ€2Ýˆ} #Ð&Ñ&Ô&Ð&Ý‰jŒj×Ò 6ÐÑ*Ô*€8Ø€4ˆ�8Ý"™*œ*×/Ò/°°´¸
Ñ0CÔ0CÑDÔD€4ˆ„8ˆJÑå#+¡:¤:×#5Ò#5Ñ#7Ô#7€4ˆ„8ÐÑ Ø!%×!:Ò!:À&ÐVZÐ!:Ñ![Ô![€4ˆ„8ÐÑØ€4ˆ„8ˆLÑÝ'Ñ)Ô)×1Ò1°(·,²,¸yÈÑ2LÔ2LÑMÔM€4ˆ„8ˆHÑÑØ	€+r?   c                 ó8  — |                       ¦   «         | _        i }|                      ¦   «         D ]é} |j        d¦  «        } |j        d¦  «        }t	          ¦   «         }t          ¦   «                              |¬¦  «        }|||<   t          ¦   «                              ¦   «         ||         d<   |  	                    ||¬¦  «        ||         d<   d||         d<   t          ¦   «                              |                     d	d
¦  «        ¦  «        ||         d<   Œê|S )Nr  r‡   rü   r  r  r  r  r  r½   rH   r  )r¦   r§   ro   r:   r…   rÓ   r  r8   r#   r  rŠ   r”   )r=   rT   r   rZ   rÕ   r	  r  s          r>   r”   zQuarter_Settings.summary÷  s  € Ø�LŠL‰NŒN€$„'Ø	€$à�XŠX‰ZŒZð 
Nð 
N€cØ
ˆ#Œ'�&‰/Œ/€4ØˆŒ�‰Œ€2Ý‰JŒJ€6Ý‰jŒj×Ò 6ÐÑ*Ô*€8Ø€4ˆ�8å#+¡:¤:×#5Ò#5Ñ#7Ô#7€4ˆ„8ÐÑ Ø!%×!:Ò!:À&ÐVZÐ!:Ñ![Ô![€4ˆ„8ÐÑØ€4ˆ„8ˆLÑÝ'Ñ)Ô)×1Ò1°(·,²,¸yÈÑ2LÔ2LÑMÔM€4ˆ„8ˆHÑÐØ	€+r?   rH   r  c                 óú  — t          ¦   «                              |¦  «        }d}d}	 |rDt          ¦   «                              |¬¦  «        }t	          |                     d¦  «        ¦  «        }t          t          ¦   «                              |¦  «        ¦  «        }|                     |¬¦  «        S # t          $ r0}	t          d|	¬¦  «         t          d||g¬¦  «         d}Y d }	~	nd }	~	ww xY wt          |¦  «        S )Nr–   r¹   )rZ   ÚManufacturing_Cost)rº   r½   rH   zGetting Price for {quality}rd   r   r   g      Ð?re   r‚   zTrouble with Production Calc)rÓ   r:   rï   r  r   r¸   r  rÀ   r   rŠ   r—   Úfloatr   re   )
r=   r	  r  rå   r   ÚcoefÚqrŒ   r˜   rg   s
             r>   r  z%Quarter_Settings.calc_production_cost  s  € Ý‰
Œ
�Š�vÑÔ€#Ø	€$Ø	€$ðØð *ÝÑÔ×#Ò#¨Ð#Ñ6Ô6€AÝˆQ�UŠUÐ'Ñ(Ô(Ñ)Ô)€DÝ	•x‘z”z×(Ò(¨Ñ0Ô0Ñ	1Ô	1€3Ø
×
Ò
 tÐ
Ñ
,Ô
,Ð,øõ 
ð ð ð Ýˆ{ Ð"Ñ"Ô"Ð"ÝÐ-°D¸°=ÐAÑAÔAÐAØ
€4€4€4€4€4€4øøøøðøøøõ 
ˆ4‰Œ€.s   §B	B1 Â1
C+Â;&C&Ã&C+c                 óº   — g }|                       d¬¦  «        D ]A}|                     |                     dd¦  «        |                     d¦  «        dœ¦  «         ŒB|S )NúActive=1©r£   r  rH   r‡   rz   )ro   rn   r:   )r=   Úqdatar  s      r>   r#   zQuarter_Settings.options  s`   € Ø
€%Ø�8Š8˜*ˆ8Ñ%Ô%ð @ð @€aØ‡<‚<˜Ÿš˜v bÑ)Ô)°!·%²%¸±+´+Ð>Ð>Ñ?Ô?Ð?Ð?Ø	€,r?   c                 óš   — i }|                       ¦   «         | _        |                      ¦   «         D ]}|||                     d¦  «        <   Œ|S )Nr‡   )r¦   r§   rö   r:   )r=   rT   r  s      r>   rž   zQuarter_Settings.cache$  sI   € Ø	€$Ø�LŠL‰NŒN€$„'Ø�;Š;‰=Œ=ð ð €aØ€4ˆ�Šˆd‰ŒÑÐØ	€+r?   r£   r¤   c                 ó”   — |                       ¦   «         | _        | j                             ||¬¦  «         |                      ¦   «         S )Nr¢   r¥   ©r=   r£   r¤   s      r>   ÚfindzQuarter_Settings.find+  s9   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�u 5€.Ñ)Ô)Ð)Ø	�ŠÑ	Ô	Ðr?   c                 ó.   — |                       d¬¦  «        S )Nr  r  )ro   r<   s    r>   rð   zQuarter_Settings.active0  s   € Ø	�Š˜
ˆÑ	#Ô	#Ð#r?   Nc                 óè   — |                       ¦   «         | _        |r| j                             ||¬¦  «         | j                             d¬¦  «         t	          |                      ¦   «         ¦  «        S )Nr¢   r  r¯   )r¦   r§   r¨   Úorderr|   rö   r#  s      r>   ro   zQuarter_Settings.all3  s]   € Ø�LŠL‰NŒN€$„'Ø
ð +Ø„7‡>‚>˜ E€>Ñ*Ô*Ð*Ø„'‡-‚-�f€-ÑÔÐÝ	ˆd�kŠk‰mŒmÑ	Ô	Ðr?   ©rH   ©rH   N)r@   rA   rB   rÕ   rQ   r{   r³   r´   r:   rP   r  r  r  r”   r   r  r|   r#   rž   r   r$  rð   ro   rC   r?   r>   rï   rï   Î  s¢  € € € € € € Ø
€€C€€�Ø	€ð�ð ˜ð ð ð ð ð
!˜ð ! ð !ð !ð !ð !ð
˜ð ð ð ð ð
˜Sð  Tð ð ð ð ð,�dð ð ð ð ð"ð  cð °sð À'ð ð ð ð ð,�dð ð ð ð ð�Dð ð ð ð ð�Sð ˜x¨œ~ð °$ð ð ð ð ð
$�Tð $ð $ð $ð $ðð �Cð  ¨$¤ð ¸ð ð ð ð ð ð r?   rï   c            	       óž   — e Zd ZU dZeed<   d Zdefd„Zdedefd„Z	dedede
fd„Zdedefd	„Zddedee         de
defd„Zddede
defd„ZdS )rí   rÔ   rÕ   rF   c                 óª   — |                       ¦   «         | _        d| j        _        | j                             i ¬¦  «         |                      ¦   «         S )NTr  )r¦   r§   ÚdebugÚdeleter  r<   s    r>   ræ   zQuarters.reset>  s>   € Ø�LŠL‰NŒN€$„'Ø€$„'„-Ø„'‡.‚.�b€.ÑÔÐØ	�Š‰ŒÐr?   rê   c                 ó–   — |                       ¦   «         | _        | j                             d|g¬¦  «         |                      ¦   «         S )NzQuarter_ID=%sr¢   r¥   )r=   rê   s     r>   Úget_quarter_idzQuarters.get_quarter_idD  s;   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�¨j¨\€.Ñ:Ô:Ð:Ø	�ŠÑ	Ô	Ðr?   r   c                 óÔ   — |                       ¦   «         | _        | j                             d||g¬¦  «         t          t	          |                      ¦   «         ¦  «        ¦  «        dk    S )Nú Business_ID=%s and Quarter_ID=%sr¢   r   )r¦   r§   r¨   rW   r|   rö   )r=   r   rê   s      r>   Úcheck_existszQuarters.check_existsI  sR   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.Ð9ÀÈZÐ@X€.ÑYÔYÐYÝ	�T�$—+’+‘-”-Ñ Ô Ñ	!Ô	! !Ò	#Ð#r?   c                 ó^  — |                       ¦   «         | _        | j                             d¬¦  «         | j                             d|g¬¦  «         | j                             d¬¦  «         | j                             d¬¦  «         |                      |                      ¦   «         ¦  «        S )	Nz0Quarters.*,Quarter_Settings.Name as Quarter_Name©ÚfieldsúBusiness_ID=%sr¢   z@join Quarter_Settings on Quarter_Settings.ID=Quarters.Quarter_ID)Újoinr  r¯   )r¦   r§   r5  r¨   r7  r'  Ú
parse_rowsrö   )r=   r   s     r>   rî   zQuarters.get_businessN  sŠ   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.ÐJ€.ÑKÔKÐKØ„'‡.‚.Ð'¨{¨m€.Ñ<Ô<Ð<Ø„'‡,‚,ÐV€,ÑWÔWÐWØ„'‡-‚-�f€-ÑÔÐØ	�Š˜Ÿš™œÑ	'Ô	'Ð'r?   rH   NFr£   r¤   Ú	show_calcc                 ó*  — |                       ¦   «         | _        | j                             d¦  «         | j                             d¬¦  «         |r| j                             ||¬¦  «         |                      |                      ¦   «         |¦  «        S )Nz¦Quarters.*,(select Name from Business where ID=Quarters.Business_ID) as Business_Name,(select Name from Quarter_Settings where ID=Quarters.Quarter_ID) as Quarter_Namez(Quarters.Business_ID,Quarters.Quarter_IDr¯   r¢   )r¦   r§   r5  r'  r¨   r8  rö   )r=   r£   r¤   r9  s       r>   ro   zQuarters.allV  s…   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.ð  zñ  {ô  {ð  {Ø„'‡-‚-Ð@€-ÑAÔAÐAØ
ð +Ø„7‡>‚>˜ E€>Ñ*Ô*Ð*à	�Š˜Ÿš™œ yÑ	1Ô	1Ð1r?   Úrowsc           	      ó>  — g }|D �]–}t          j        |                     d¦  «        ¦  «        }i }t          ¦   «                              t          |                     d¦  «        ¦  «        ¦  «        }|�rÃi d|                     d¦  «        “d|                     d¦  «        “d|                     d¦  «        “d|                     d¦  «        “d|                     d¦  «        “d	|                     d	¦  «        “d
|                     d
¦  «        “d|                     d¦  «        “d|                     d¦  «        “dt          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        z  “d|                     d¦  «        “d|                     dd¦  «        “dt          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        z  “d|                     d¦  «        “d|                     d¦  «        “d|                     d¦  «        “}|sB|                     d¦  «        r-t          |                     dd¦  «        ¦  «        dk    rd|d<   nd|d<   ||d<   |                     |¦  «         �Œ˜|S )NÚcalcrê   Ústock_priceÚpr_scorer  r  Úcapital_startÚcapital_endÚrevenueÚexpense_listrÎ   Úunits_on_hand_startÚinventory_value_startrè   Úunits_on_handr   rÙ   Úunits_producedÚ
units_soldÚprofitrH   Fz	.editableT)	r¿   r   r:   rï   r  r   r   rW   rn   )r=   r;  r9  r­   Úrr=  ÚcdataÚ	qsettingss           r>   r8  zQuarters.parse_rows_  s¡  € Ø€!Øð ñ €aÝ
Œ-˜Ÿš˜f™œÑ
&Ô
&€4Ø€5åÑ!Ô!×(Ò(­¨1¯5ª5°Ñ+>Ô+>Ñ)?Ô)?Ñ@Ô@€9Ø
ñ ðØ�4—8’8˜MÑ*Ô*ðà�—’˜Ñ$Ô$ðð �I—M’M &Ñ)Ô)ðð �T—X’X˜oÑ.Ô.ð	ð
 �4—8’8˜MÑ*Ô*ðð ˆt�xŠx˜	Ñ"Ô"ðð �D—H’H˜^Ñ,Ô,ðð �—’˜Ñ$Ô$ðð ˜4Ÿ8š8Ð$9Ñ:Ô:ðð �Q˜tŸxšx¨Ñ4Ô4Ñ5Ô5½¸$¿(º(ÐCXÑ:YÔ:YÑ8ZÔ8ZÑZðð �T—X’X˜oÑ.Ô.ðð �—’˜+ aÑ(Ô(ðð •q˜Ÿš +Ñ.Ô.Ñ/Ô/µ!°D·H²H¸_Ñ4MÔ4MÑ2NÔ2NÑNðð �d—h’hÐ/Ñ0Ô0ðð �$—(’(˜<Ñ(Ô(ðð  ˆd�hŠh�xÑ Ô ð!€Eð& ð ˜Ÿš˜f™œð ­#¨a¯eªe°F¸2Ñ.>Ô.>Ñ*?Ô*?ÀÒ*AÐ*AØ€A€k�N€Nà€A€k�Nà€1€V�9Ø‡8‚8ˆA�;„;€;�;Ø	
€(r?   )rH   NF)F)r@   rA   rB   rÕ   rQ   r{   r³   ræ   r´   r/  Úboolr2  r|   rî   rP   r   ro   r   r8  rC   r?   r>   rí   rí   :  s  € € € € € € Ø
€€C€€�Ø	€ð�Cð ð ð ð ð Cð ¨Dð ð ð ð ð
$ 3ð $°#ð $¸$ð $ð $ð $ð $ð
( 3ð (¨4ð (ð (ð (ð (ð2ð 2�Cð 2 ¨$¤ð 2Àð 2ÐRVð 2ð 2ð 2ð 2ð"ð "˜$ð "¨ð "¸ð "ð "ð "ð "ð "ð "r?   rí   c                   ó   — e Zd Zdefd„ZdS )Ú
Reports_PLrF   c                 ó   — i S ©NrC   r<   s    r>   ÚgeneratezReports_PL.generate„  s   € Ø	€)r?   N)r@   rA   rB   r´   rR  rC   r?   r>   rO  rO  ƒ  s/   € € € € € ð�tð ð ð ð ð ð r?   rO  c                   ó   — e Zd Zdedefd„ZdS )ÚClient_Dashboardr	  rF   c           	      ó²  — t          ¦   «         }t          ¦   «                              |¬¦  «        }|t          ¦   «                              |¦  «        d|                     ¦   «         |                     |¦  «        t          ¦   «                              ¦   «         dt          ¦   «          
                    ¦   «         idœ}|                     d¦  «        sd|d<   |S )Nrü   Ú	DashboardÚPL)rÓ   ÚPlanÚStateÚQuarter_selectrï   ÚScheduleÚReportsrÓ   Úbus_initrY  )rï   rÓ   r:   rí   rî   r#   r  r[  ÚcurrentrO  rR  )r=   r	  Ú
q_settingsr  rT   s        r>   r”   zClient_Dashboard.summaryˆ  s¼   € ÝÑ!Ô!€*Ý‰ZŒZ�^Š^˜vˆ^Ñ&Ô&€(àÝ
‰*Œ*×
!Ò
! &Ñ
)Ô
)ØØ×&Ò&Ñ(Ô(Ø ×,Ò,¨VÑ4Ô4Ý‰jŒj× Ò Ñ"Ô"à�‰Œ×	Ò	Ñ	 Ô	 ðð

ð 

€$ð �(Š(�:Ñ
Ô
ð Ø€4ˆ�=à	€+r?   N)r@   rA   rB   rQ   r´   r”   rC   r?   r>   rT  rT  ‡  s6   € € € € € ð˜ð  ð ð ð ð ð ð r?   rT  c                   ób   — e Zd Zd ZdZdededefd„Zdede	fd„Z
d„ Zddedee         defd„Zd
S )ÚUsersr~   ÚuserÚpasswordrF   c                 ó    — |                       ¦   «         | _        | j                             d||g¬¦  «         |                      ¦   «         pi }|S )NzUser=%s and Password=%sr¢   r¥   )r=   rb  rc  rJ  s       r>   Úauthz
Users.authž  sG   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.Ð0¸¸X°€.ÑGÔGÐGØ
‡o‚oÑÔÐ˜2€!Ø	
€(r?   ÚUserIDc                 óþ   — |                       ¦   «         | _        | j                             d|g¬¦  «         d| j        _        |                      ¦   «         pi }t          |                     d¦  «        ¦  «        dk    S )Nr¡   r¢   Tr   r   )r¦   r§   r¨   r,  r©   r   r:   )r=   rf  rJ  s      r>   Úcheck_businesszUsers.check_business¤  sg   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�w f X€.Ñ.Ô.Ð.Ø€$„'„-Ø
‡o‚oÑÔÐ˜2€!Ý	
ˆ1�5Š5�ÑÔÑ	 Ô	  Ò	"Ð"r?   c                 óÆ   — t          |                     d¦  «        t          ¦  «        r+t          j        |                     dd¦  «        ¦  «        |d<   t          |¦  «        S )NÚGroupsrH   )Ú
isinstancer:   rP   r¿   r   r   rX   s     r>   Úmk_rowzUsers.mk_row«  sM   € Ý�—’˜Ñ"Ô"¥3Ñ'Ô'ð 9Ý”M $§(¢(¨8°BÑ"7Ô"7Ñ8Ô8€4ˆ�>Ý	ˆT‰ŒÐr?   rH   Nr£   r¤   c                 óè   — |                       ¦   «         | _        | j                             d¬¦  «         |r| j                             ||¬¦  «         t	          |                      ¦   «         ¦  «        S )NzZUsers.*,(select Name from Business where Business.ID = Users.Business_ID) as Business_Namer4  r¢   )r¦   r§   r5  r¨   r|   rö   r#  s      r>   ro   z	Users.all°  s^   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.Ðt€.ÑuÔuÐuØ
ð +Ø„7‡>‚>˜ E€>Ñ*Ô*Ð*Ý	ˆd�kŠk‰mŒmÑ	Ô	Ðr?   r)  )r@   rA   rB   r³   rý   rP   r´   re  rQ   rM  rh  rl  r   r|   ro   rC   r?   r>   ra  ra  ›  sª   € € € € € Ø	€Ø€ð�Cð  ð ¨ð ð ð ð ð# ð #¨ð #ð #ð #ð #ðð ð ð
ð �Cð  ¨$¤ð ¸ð ð ð ð ð ð r?   ra  c                   ó´   — e Zd Zg d¢g d¢g d¢dœZddddœZg d¢ZdZd	„ Zed
e	fd„¦   «         Z
ed
efd„¦   «         Zed
e	fd„¦   «         Zed
efd„¦   «         ZdS )Ú	Eval_Data)
ÚAndersonÚThompsonÚMartinezÚWilliamsÚBrownÚMillerÚDavisÚGarciaÚ	RodriguezÚWilson)
ÚJamesÚMichaelÚDavidÚJohnÚRobertÚDanielÚMatthewÚChristopherÚAndrewÚJoseph)
ÚEmilyÚSophiaÚOliviaÚAvaÚIsabellaÚMiaÚ	CharlotteÚAmeliaÚHarperÚEvelyn)ÚlastÚmaleÚfemaleé   )r   r   Úbody)Ú
ManagementÚLaborÚ	Marketingr0   r�  c                 óB   — t          j        dd¦  «        rdnd| _        d S )Nr   rÔ   r�  r�  )ÚrandomÚ	randrangeÚgenderr<   s    r>   Ú__init__zEval_Data.__init__ã  s#   € Ý Ô*¨1¨QÑ/Ô/Ð=��°X€$„+€+€+r?   rF   c                 óf   — | j         t          j        dt          | j         ¦  «        ¦  «                 S rV   )Údeptsr—  r˜  rW   r<   s    r>   Ú
departmentzEval_Data.departmentæ  s$   € à	Œ•FÔ$ Q¥s¨4¬:¡¤Ñ7Ô7Ô	8Ð8r?   c                 ó,   — t          j        dd¦  «        S )Nr   éC   )r—  r˜  r<   s    r>   ÚagezEval_Data.ageê  s   € å	Ô	˜"˜RÑ	 Ô	 Ð r?   c           	      ó  — | j         | j                 t          j        dt	          | j         | j                 ¦  «        ¦  «                 dz   | j         d         t          j        dt	          | j         d         ¦  «        ¦  «                 z   S )Nr   ú rŽ  )Únamesr™  r—  r˜  rW   r<   s    r>   rZ   zEval_Data.nameî  s¢   € à	Œ�D”KÔ	 ¥Ô!1°!µC¸¼
À4Ä;Ô8OÑ4PÔ4PÑ!QÔ!QÔ	RÐUXÑ	XÐ[_Ô[eÐflÔ[mÕntÔn~ð  @Aõ  BEð  FJô  FPð  QWô  FXñ  BYô  BYñ  oZô  oZô  \[ñ  
[ð  [r?   c                 ó€   — d}| j         d         › t          j        d|¦  «        › �dt          j        d|¦  «        › �dœS )Nr‘  r   Úb)Úheadr’  )r™  r—  r˜  )r=   Úcs     r>   ÚprofilezEval_Data.profileò  sO   € à€!àŒ[˜Œ^Ð
4�VÔ-¨a°Ñ2Ô2Ð
4Ð
4Ø
%�fÔ˜q Ñ#Ô#Ð
%Ð
%ð
ð 
ð r?   N)r@   rA   rB   r£  Úprofilesrœ  r™  rš  rÑ   rP   r�  rQ   r   rZ   r´   r¨  rC   r?   r>   ro  ro  ¸  s  € € € € € ð
ð 
ð 
ð
ð 
ð 
ðð ð ð3%
ð %
€ðL �q Ð"Ð"€Ø	8Ð	8Ð	8€Ø
€ð>ð >ð >ð ð9˜ð 9ð 9ð 9ñ „(ð9ð ð!�#ð !ð !ð !ñ „(ð!ð ð[�3ð [ð [ð [ñ „(ð[ð ð�dð ð ð ñ „(ðð ð r?   ro  c                   óF   ‡ — e Zd ZdZˆ fd„Zedededefd„¦   «         Zˆ xZ	S )ÚEmployee_EvaluationÚEmployee_Evaluationsc                 óä   •— t          |                     d¦  «        t          ¦  «        r%t          |                     d¦  «        ¦  «        |d<   t	          ¦   «                              |¦  «         d S )NÚProfile)rk  r:   rP   r   r±   rš  )r=   rT   r²   s     €r>   rš  zEmployee_Evaluation.__init__ý  s\   ø€ Ý�—’˜Ñ#Ô#¥CÑ(Ô(ð 2Ý˜TŸXšX iÑ0Ô0Ñ1Ô1€4ˆ	�?Ý�'„'×Ò�4ÑÔÐÐÐr?   r	  Ú
quarter_idrF   c                 óp   — t          ¦   «         }|||j        |j        |j        |j        ddœ} | |¦  «        S )Na  Over the previous quarter, the employee demonstrated a strong work ethic and consistently met expectations when focused on assigned tasks. While they were frequently late to the office due to ongoing personal obligations, once present they showed determination and a willingness to put in extra effort to complete their work. There were occasional lapses in concentration, particularly during periods when personal matters required attention, which at times slowed progress or required follow-up. Despite these challenges, the employee remained reliable in delivering core responsibilities and was receptive to feedback. With improved time management and fewer external distractions, their overall performance has the potential to increase significantly in the coming quarter.)r   rê   r  ÚAgeÚ
Departmentr®  ÚPerformance)ro  rZ   r   r�  r¨  )Úclsr	  r¯  ÚevrT   s        r>   ÚgenzEmployee_Evaluation.gen  sI   € õ �{„{€"àØØ
Œ'Ø	ŒØ”ØŒZð \ð
ð 
€$ð 
ˆˆT‰ŒÐr?   )
r@   rA   rB   r³   rš  ÚclassmethodrQ   r   r¶  rµ   r¶   s   @r>   r«  r«  ú  sr   ø€ € € € € à	€ðð ð ð ð ð
 ð�Cð  3ð ¨4ð ð ð ñ „+ðð ð ð ð r?   r«  c                   óv   — e Zd Zd ZdZdedee         fd„Zdededee         fd„Z	de
defd	„Zdedede
fd
„ZdS )r¬  r«  r‡   rF   c                 ó°   — |                       ¦   «         | _        | j                             d|g¬¦  «         t          |                      ¦   «         ¦  «        S r    ©r¦   r§   r¨   r|   rö   rª   s     r>   r:   zEmployee_Evaluations.get  sA   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.�w b T€.Ñ*Ô*Ð*Ý	ˆd�kŠk‰mŒmÑ	Ô	Ðr?   r	  r¯  c                 ó²   — |                       ¦   «         | _        | j                             d||g¬¦  «         t          |                      ¦   «         ¦  «        S )Nr1  r¢   rº  )r=   r	  r¯  s      r>   Úget_quarterz Employee_Evaluations.get_quarter  sE   € Ø�LŠL‰NŒN€$„'Ø„'‡.‚.Ð9ÀÈ
Ð@S€.ÑTÔTÐTÝ	ˆd�kŠk‰mŒmÑ	Ô	Ðr?   rT   c                 ó    — t          |¦  «        S rQ  )r«  rX   s     r>   rl  zEmployee_Evaluations.mk_row   s   € Ý	˜TÑ	"Ô	"Ð"r?   c                 ó   — ||dœ}|S )N)r	  r¯  rC   )r=   r	  r¯  rT   s       r>   r¶  zEmployee_Evaluations.gen#  s   € Ø zÐ	2Ð	2€$Ø	€+r?   N)r@   rA   rB   r³   rý   rQ   r|   r   r:   r¼  r´   rl  r¶  rC   r?   r>   r¬  r¬    s¼   € € € € € Ø	€Ø €ð�ð ˜˜cœð ð ð ð ð
˜Sð ¨Cð °D¸´Ið ð ð ð ð
#�dð #˜sð #ð #ð #ð #ð�Sð  Cð ¨Dð ð ð ð ð ð r?   r¬  c                   ó   — e Zd Zd Zdefd„ZdS )r[  rF   c                 óú  — |                       ¦   «         | _        | j                             d¦  «         g }t          ¦   «                              ¦   «         }|                      ¦   «         D ]�}t          |d         ¦  «                             ¦   «         }||z
  }|                     ¦   «         |d<   ||z
                       ¦   «         dk    |d<   |j        › d|j	        dz  › d�|d	<   | 
                    |¦  «         Œ‘|S )
Nztimestamp descÚ	timestampÚnowr   Úfuturez Days, i  z HoursÚdelta)r¦   r§   r'  r   Úutcrö   ÚfullÚtotal_secondsÚdaysÚsecondsrn   )r=   rT   rÂ  rL   ÚdtÚtds         r>   r^  zSchedule.current)  sæ   € Ø�LŠL‰NŒN€$„'Ø„'‡-‚-Ð Ñ!Ô!Ð!Ø	€$Ý‰Œ�Š‰Œ€#Ø�kŠk‰mŒmð ð €dÝˆt�KÔ Ñ!Ô!×%Ò%Ñ'Ô'€2ØˆB‰€2Ø—’‘”€4ˆ�;Ø˜‘V×*Ò*Ñ,Ô,¨aÒ/€4ˆ�>Ø”gÐ@Ð@ b¤j°DÑ&8Ð@Ð@Ð@€4ˆ�=Ø‡;‚;ˆtÑÔÐÐØ	€+r?   N)r@   rA   rB   r³   r|   r^  rC   r?   r>   r[  r[  '  s4   € € € € € Ø	€ð�dð ð ð ð ð ð r?   r[  c                   óZ   — e Zd Zedeeef         fd„¦   «         Zdedefd„Z	dedefd„Z
dS )ÚRollrF   c                 ó¤  — t          ¦   «                              ¦   «         }t          ¦   «                              dd¬¦  «        }t          ¦   «                              dd¬¦  «        }|j        dk    r0|                     d¬¦  «         |                     d¬¦  «         ||fS |                     d¬¦  «         |                     d¬¦  «         ||fS )	Nr   )ÚminuteÚsecondé;   é   )Úhouré   rÔ   é   )r   rÅ  ÚreplacerÓ  )r=   rÂ  ÚstartÚends       r>   ÚperiodzRoll.period:  sº   € å‰Œ�Š‰Œ€#Ý
‰(Œ(×
Ò
 !¨1Ð
Ñ
-Ô
-€%Ý‰Œ×Ò ¨"ÐÑ-Ô-€#Ø„Xˆb‚[€[Ø‡=‚=�b€=ÑÔÐØ‡;‚;�B€;ÑÔÐØ�ˆ+Ðà‡=‚=�a€=ÑÔÐØ‡;‚;�B€;ÑÔÐØ�ˆ+Ðr?   r	  c                 óÆ   — g }| j         \  }}|                      ¦   «         | _        | j                             d||g¬¦  «         | j                             d|g¬¦  «         |S )Nz]left join Roll on Roll.Student_ID = Students.ID and Roll.timestamp>=%s and Roll.timestamp<=%s)r7  r¤   r6  r¢   )rÙ  r¦   r§   r7  r¨   )r=   r	  ro   r×  rØ  s        r>   Ú
get_periodzRoll.get_periodH  sv   € Ø
€#Ø”�+€5ˆØ�LŠL‰NŒN€$„'Ø„'‡,‚,Ðtð  }Bð  CFð  |G€,ñ  Hô  Hð  HØ„'‡.‚.Ð'¨v¨h€.Ñ7Ô7Ð7Ø	€*r?   c                 óv   — g }|                       ¦   «         | _        | j                             d|g¬¦  «         |S )Nr6  r¢   )r¦   r§   r¨   )r=   r	  ro   s      r>   ÚstudentszRoll.studentsP  s6   € Ø
€#Ø�LŠL‰NŒN€$„'Ø„'‡.‚.Ð'¨v¨h€.Ñ7Ô7Ð7Ø	€*r?   N)r@   rA   rB   rÑ   ÚtuplerP   rÙ  rQ   r|   rÛ  rÝ  rC   r?   r>   rÍ  rÍ  8  s…   € € € € € à
ð�E˜#˜c˜'”Nð ð ð ñ „(ðð˜Cð  Dð ð ð ð ð˜#ð  $ð ð ð ð ð ð r?   rÍ  c                   ó   — e Zd Zdefd„ZdS )r\  rF   c                 ó€   — i }t          ¦   «                              ¦   «         D ]}|||                     d¦  «        <   Œ|S )Nr  )rï   ro   r:   )r=   rT   Úquarters      r>   ÚoutlookzReports.outlookW  sF   € Ø	€$Ý!Ñ#Ô#×'Ò'Ñ)Ô)ð 'ð '€gØ&€4ˆ�Š�FÑÔÑÐØ	€+r?   N)r@   rA   rB   r´   râ  rC   r?   r>   r\  r\  V  s/   € € € € € ð�dð ð ð ð ð ð r?   r\  c                   óÂ  — e Zd ZU eed<   eed<   eed<   eed<   eed<   dedefd„Zedefd„¦   «         Z	edefd	„¦   «         Z
edefd
„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zdeeef         fd„Zdeeef         fd„Zdedefd„Zdefd„Zdedefd„Zd„ Zdedededefd„Zd defd„ZdS )!ÚBase_SimulatorÚquarter_settingsÚ_global_settingsrá  rå   Ú_logc                 óâ  — t          ¦   «                              ¦   «                              |                     d¦  «        ¦  «        pi | _        t	          ¦   «                              ¦   «         | _        || _        t          |¦  «        | _        | j                             d¦  «        | _	        t          t          ¦  «        | _        t          |                     d¦  «        ¦  «        | _        t          | j                             dd¦  «        ¦  «        | _        t          | j        t!          | j                             d¦  «        ¦  «        z  ¦  «        | _        t!          | j                             d¦  «        ¦  «        | _        t          |                      d¦  «        ¦  «        | _        | j        | j        z  | _        t          | j                             d¦  «        pd¦  «        | _        t          |                      d	¦  «        ¦  «        | _        t1          |                      d
¦  «        ¦  «        | _        t          | j                             d¦  «        ¦  «        | _        |                      ¦   «         \  | _        | _        t!          | j                             d¦  «        ¦  «        pd| _        t!          | j                             d¦  «        ¦  «        | _        t!          | j        | j        z   ¦  «        | _         d| _!        |  "                    | j        ¦  «        | _#        t          d¦  «        | _$        t          | j                             d¦  «        ¦  «        | _%        t1          |                      d¦  «        ¦  «        | _&        | j&        | _'        |  (                    | j%        t          |                      d¦  «        ¦  «        | j'        ¬¦  «        | _)        	 tU          | j)        | j%        z  ¦  «        dz  | _+        n#  d| _+        Y nxY wtU          | j)        | j        z  ¦  «        | _,        | j                             dd¦  «        | _-        |  .                    ¦   «          d S )Nrê   r½   rÂ   Ú
Labor_Costr–   rë   ÚEmployee_SalesÚrdÚ	RD_MedianÚRD_ROIr�   rÅ   r   r×   Ú	marketingÚMarketing_ROIÚMarketing_Median©r   rÈ   r  r¹   Ú
plant_sizerH   )/rï   rž   r:   rå  rŠ   ræ  rá  r¸   rå   rŒ   r	   r|   rç  r   rÆ   Ú
labor_rater   Úwagesrë   ÚglobalsÚemployee_potentialÚemployee_salesÚrd_spendÚ	rd_medianr   Úrd_coefr�   Ú
calc_otherÚotherr?  rF  rG  Úunits_totalrH  Úcalc_prod_costÚ	prod_costrB  rî  Úmarketing_roiÚmarketing_effÚcalc_effÚmarketing_salesÚroundÚmarketing_resultÚmarketing_unitsrò  Úcalc_revenue)r=   rá  rå   s      r>   rš  zBase_Simulator.__init__e  sk  € Ý*Ñ,Ô,×2Ò2Ñ4Ô4×8Ò8¸¿ºÀ\Ñ9RÔ9RÑSÔSÐYÐWY€$ÔÝ)Ñ+Ô+×1Ò1Ñ3Ô3€$ÔØ€$„,Ý˜3ÑÔ€$„(Ø”—’˜iÑ(Ô(€$„,Ý�$ÑÔ€$„)Ý�3—7’7˜9Ñ%Ô%Ñ&Ô&€$„,Ý�dÔ+×/Ò/°¸TÑBÔBÑCÔC€$„/Ý�”¥1 T¤\×%5Ò%5°kÑ%BÔ%BÑ#CÔ#CÑCÑDÔD€$„*Ý�T”\×%Ò% kÑ2Ô2Ñ3Ô3€$„.Ý˜dŸlšlÐ+;Ñ<Ô<Ñ=Ô=€$ÔØœ¨Ô)@Ñ@€$Ôå�D”L×$Ò$ TÑ*Ô*Ð2¨dÑ3Ô3€$„-Ý�T—\’\ +Ñ.Ô.Ñ/Ô/€$„.Ý�4—<’< Ñ)Ô)Ñ*Ô*€$„,Ý�”×!Ò! 'Ñ*Ô*Ñ+Ô+€$„*ð "Ÿ_š_Ñ.Ô.Ñ€$„*ˆTŒ]Ý˜œŸš gÑ.Ô.Ñ/Ô/Ð4°1€$ÔÝ˜$œ,×*Ò*¨7Ñ3Ô3Ñ4Ô4€$ÔÝ�tÔ*¨TÔ-?Ñ?Ñ@Ô@€$ÔØ€$„/à×&Ò& tÔ':Ñ;Ô;€$„.Ý�4‘”€$„,å�T”\×%Ò% kÑ2Ô2Ñ3Ô3€$„.Ý˜Ÿš oÑ6Ô6Ñ7Ô7€$ÔØÔ*€$ÔàŸš¨T¬^Å1ÀTÇ\Â\ÐRdÑEeÔEeÑCfÔCfÐlpÔl~˜ÑÔ€$ÔðÝ  Ô!5¸¼Ñ!FÑGÔGÈ#ÑM€4ÔÐøðØ€4ÔÐÐøøøÝ˜tÔ3°d´jÑ@ÑAÔA€$ÔØÔ)×-Ò-¨l¸2Ñ>Ô>€$„/Ø×ÒÑÔÐÐÐs   Ï'$P Ð	PrF   c                 ó:   — t          | j        | j        z  ¦  «        S rQ  )r   rè   rG  r<   s    r>   Ú
manuf_costzBase_Simulator.manuf_cost“  s   € å	
ˆ4Œ>˜DÔ/Ñ/Ñ	0Ô	0Ð0r?   c                 óp   — t          | j        ¦  «        }t          |                     ¦   «         pd¦  «        S )Nr–   )r¸   rå   r   rÀ   )r=   rå   s     r>   rè   zBase_Simulator.unit_cost—  s0   € å�d”hÑÔ€#Ý	�×"Ò"Ñ$Ô$Ð,¨Ñ	-Ô	-Ð-r?   c                 óR   — |                       ¦   «         \  }}|pt          d¦  «        S rV   )rû  r   )r=   r   Ú_s      r>   Údilemma_costzBase_Simulator.dilemma_costœ  s&   € à�?Š?ÑÔ�&€$€qØ	Ð	•˜‘”Ðr?   c                 ó
  — | j                              d¦  «        pd}	 t          ¦   «                              |¦  «        }t	          |¦  «        S # t
          $ r*}t          d|¬¦  «         t	          d¦  «        cY d }~S d }~ww xY w)NÚoverheadrH   zTroubling finding fixed costr‚   r   )rá  r:   r8   r   r   re   r   )r=   Útierr   rg   s       r>   Ú
fixed_costzBase_Simulator.fixed_cost¡  s‰   € à
Œ,×
Ò
˜:Ñ
&Ô
&Ð
,¨"€$ðÝ
‰*Œ*�/Š/˜$Ñ
Ô
€4Ý
ˆD‰'Œ'€>øÝ	ð ð ð ÝÐ-°4Ð8Ñ8Ô8Ð8Ý
ˆA‰$Œ$€;€;€;€;€;€;øøøøðøøøs   ž/A Á
BÁA=Á7BÁ=Bc                 ó.  — | j                              d¦  «        dk    rt          d¦  «        S | j                              d¦  «        dk    rt          d¦  «        S | j                              d¦  «        dk    rt          d¦  «        S t          d¦  «        S )	Nrò  ÚSmalliè  ÚMediamr%   ÚLarger   r–   )rå  r:   r   r<   s    r>   Ú
plant_costzBase_Simulator.plant_cost«  s‚   € à	Ô×Ò˜|Ñ,Ô,°Ò7Ð7Ý
ˆE‰(Œ(€?ØÔ× Ò  Ñ.Ô.°(Ò:Ð:Ý
ˆE‰(Œ(€?ØÔ× Ò  Ñ.Ô.°'Ò9Ð9Ý
ˆE‰(Œ(€?Ý	
ˆ4‰Œ€.r?   c                 óD   — | j         | j        | j        | j        | j        dœS )N)z
Labor CostzProduction Costr•  ÚFixedÚOther)rô  rÿ  rî  r  r  r<   s    r>   rC  zBase_Simulator.expense_listµ  s-   € ð ”
Ø”^ØŒ~ØŒ?ØÔð
ð 
ð r?   c                 ól   — t          | j                             ¦   «         ¦  «        }t          |¦  «        S rQ  )ÚsumrC  Úvaluesr   )r=   rË   s     r>   rÎ   zBase_Simulator.expenses¿  s)   € å
ˆdÔ×&Ò&Ñ(Ô(Ñ
)Ô
)€%Ý	
ˆ5‰Œ€/r?   c                 óœ   — | j         }| j        }| j        }|                      |||¬¦  «        }t	          t          ||z  ¦  «        d¦  «        S )Nrñ  rÄ   )rø  rù  rú  r  r  r   )r=   ÚspendrÈ   r  Úresults        r>   Úrd_effzBase_Simulator.rd_effÄ  sJ   € à
Œ-€%ØŒ>€&Ø	Œ€$Ø�=Š=˜u¨F¸ˆ=Ñ=Ô=€&Ý	�q�˜&‘Ñ!Ô! !Ñ	$Ô	$Ð$r?   c                 óÈ  — t          | j                             d¦  «        pd¦  «        }t          | j                             d¦  «        pd¦  «        }t	          d¦  «        }d}d}|D ]w}	 |t          ¦   «                              |||         ¬¦  «        z  }|t          ¦   «                              |||         ¬¦  «        z  }|dz  }Œa# t          $ r
}Y d }~Œpd }~ww xY w||fS )Nr;   rH   r^   r   )r^   r_   rÔ   )	r   rå  r:   rá  r   r;   r   rj   re   )r=   rk   Úactionsr   rj   r   r^   rg   s           r>   rû  zBase_Simulator.calc_otherÍ  sô   € Ý�TÔ*×.Ò.¨zÑ:Ô:Ð@¸bÑAÔA€(Ý�T”\×%Ò% iÑ0Ô0Ð6°BÑ7Ô7€'Ý	
ˆ1‰Œ€$Ø€"Ø€!Øð 	ð 	€gð	Ø�H‰JŒJ�OŠO G°7¸1´:ˆOÑ>Ô>Ñ>€DØ�(‰*Œ*�-Š- ¨w°q¬zˆ-Ñ
:Ô
:Ñ:€BØ€q�D€A€AøÝ
ð 	ð 	ð 	Ø€D€D€D€Døøøøð	øøøð 
ˆbˆ€.s   Á+AC	Ã	
CÃCc                 ó   — t          | j                             d¦  «        ¦  «        }t          | j                             d¦  «        ¦  «        }d}d}d}| j                             d¦  «        pg D ]�}t                               |i ¦  «                             di ¦  «                             ||         ¦  «        }t          d|¬¦  «         |r0||                     d¦  «        z  }||                     d¦  «        z  }ŒŽt          |¦  «        |fS )	Nr^   r   r;   r#   zFound detailr‚   r   r    )r   rá  r:   rå  r\   r   r   )r=   rk   Úrespr   rË   rj   Úproblemr   s           r>   Úcalc_other_oldzBase_Simulator.calc_other_oldß  sþ   € Ý�T”\×%Ò% iÑ0Ô0Ñ1Ô1€(Ý	�”×!Ò! )Ñ,Ô,Ñ	-Ô	-€$Ø€!Ø
€%Ø€"ØÔ&×*Ò*¨:Ñ6Ô6Ð<¸"ð "ð "€gÝ�LŠL˜ Ñ$Ô$×(Ò(¨°2Ñ6Ô6×:Ò:¸4À¼7ÑCÔC€6Ýˆ~ 6Ð*Ñ*Ô*Ð*Øð "Ø	ˆV�ZŠZ˜ÑÔÑ€EØˆ&�*Š*�[Ñ
!Ô
!Ñ!€Bøå	�‰Œ˜Ð	Ðr?   r×   c                 ó0   — t          || j        z  ¦  «        S rQ  )r   rè   )r=   r×   s     r>   rþ  zBase_Simulator.calc_prod_costî  s   € Ý	
ˆ5�4”>Ñ!Ñ	"Ô	"Ð"r?   c                 óô   — t          d| j        ¬¦  «         t          t          | j        | j        z  ¦  «        ¦  «        }|| j        k    r| j        | _        n|| _        | j        | j        z  | _        | j        S )NzCalc Units Totalr‚   )r   rý  r   r  r  r�   rH  rB  )r=   Ú	potentials     r>   r  zBase_Simulator.calc_revenueñ  sq   € ÝÐ  dÔ&6Ð7Ñ7Ô7Ð7Ý•�dÔ*¨T¬ZÑ7Ñ8Ô8Ñ9Ô9€)à�Ô!Ò!Ð!ØÔ%€4„?€?à€4„?à”˜dœoÑ-€$„,Ø	ŒÐr?   rE   rq   c                 óF   — | j         |                              |¦  «         d S rQ  )rç  rn   )r=   rE   rq   s      r>   ÚlogzBase_Simulator.logý  s"   € Ø„)ˆC„.×Ò˜ÑÔÐÐÐr?   c                 ó2  — d}t          ¦   «         }|                     | j                             dd¦  «        ¦  «        }t	          j        || j        ¦  «        }|dz  |z  }|dk     r| }|dz  }|dz  }|dk     rd}t          d|| j        ||dœ¬	¦  «         |S )
Nr(   r½   rH   r¹   r€   g      ø?z	Price Eff)rÈ   r�   rÄ  Úeffr‚   )rŠ   r™   rå   r:   r¿   Úchanger�   r   )r=   Úmax_effr’   rÈ   rÄ  r-  s         r>   Úcalc_price_effzBase_Simulator.calc_price_eff   s¾   € Ø€'ÝÑÔ€(Ø× Ò  ¤§¢¨i¸Ñ!;Ô!;Ñ<Ô<€&Ý
Œ,�v˜dœjÑ
)Ô
)€%à
�‰)�wÑ	€#àˆ2‚X€XØ
ˆ€3àˆ�(€#Øˆ�)€#àˆ"‚W€WØ	€3åˆkØØŒ:ØØ	ð	 ð  ð ñ ô ð ð 
€*r?   r   rÈ   r  c           	      óä  — |                       ¦   «         }t          |dz  ¦  «        }t          |¦  «        }d}d}d}	|dk    rQ||k     r|}|dz  |z   }
t          ||
z  ¦  «        }|	|z  }	||z  }|dk     rd}||z  }|dk    rd}d}|dk     rd}|dk    °Qt          | j                             d¦  «        ¦  «        dz  }|	}|	|z  }	|	|	|z  z   }t          d	||	|||d
œ¬¦  «         t          |¦  «        S )Nr   éU   r‘  r–   r¹   r   r€   ÚEconomic_StrengthzPrice Efficiency)ÚototalrË   ÚstrengthÚ	eff_totalÚ	price_effr‚   )r0  r   Úabsr   rå  r:   r   r   )r=   r   rÈ   r  r7  Úc_sizerJ  r-  ÚincrË   Úeff_rateÚcvalr5  r4  r6  s                  r>   r  zBase_Simulator.calc_eff  sN  € Ø×!Ò!Ñ#Ô#€)Ýˆf�r‰kÑÔ€&Ýˆ�h„h€!Ø
€#Ø	€#Ø
€%Ø	ˆDŠˆØˆ&‚j€jØ€Fà�3‰w˜$Ñ€8Ý
ˆf�xÑÑ
 Ô
 €4ØˆD�=€5Ø€f�9€1àˆ!‚e€eØ	€Aàˆ�8€3Ø	ˆ#‚g€gØ
€CØ
€Cà	ˆB‚h€hØ
€Cð% 	
ˆDŠˆõ* ˆtÔ$×(Ò(Ð)<Ñ=Ô=Ñ>Ô>ÀÑD€(Ø€&Øˆ8Ñ€%Ø�u˜Y‘Ñ'€)ÝÐ ØØØØØð'ð 'ð ñ ô ð õ 
ˆ9‰ŒÐr?   rH   c                 ó^   — | j                              ||¦  «                             d¦  «        S )Nr   )ræ  r:   )r=   rE   Údefaults      r>   rõ  zBase_Simulator.globalsB  s)   € Ø	Ô	×	"Ò	" 3 wÑ	/Ô	/×	3Ò	3°GÑ	<Ô	<Ð<r?   Nr(  )r@   rA   rB   r´   r{   r¸   rš  rÑ   r   r	  rè   r  r  r  rC  rÎ   r  r   rÞ  rQ   rû  r&  rþ  r  rP   r   r+  r0  r  rõ  rC   r?   r>   rä  rä  ^  s«  € € € € € € ØÐÐÑØÐÐÑØ	€€�Ø	€€�Ø
€€�ð(˜4ð ( Mð (ð (ð (ð (ð\ ð1˜ð 1ð 1ð 1ñ „(ð1ð ð.˜ð .ð .ð .ñ „(ð.ð ð˜7ð ð ð ñ „(ðð ð˜ð ð ð ñ „(ðð ð˜ð ð ð ñ „(ðð ð˜4ð ð ð ñ „(ðð ð�wð ð ð ñ „(ðð ð%�Uð %ð %ð %ñ „(ð%ð˜˜w s˜{Ô+ð ð ð ð ð$˜U 7¨3 ;Ô/ð ð ð ð ð#˜sð # wð #ð #ð #ð #ð
˜7ð 
ð 
ð 
ð 
ð�#ð ˜#ð ð ð ð ðð ð ð2'˜ð '¨ð '°Uð '¸wð 'ð 'ð 'ð 'ðR=ð = Sð =ð =ð =ð =ð =ð =r?   rä  c                   ó.   ‡ — e Zd Zdedefˆ fd„Zd„ Zˆ xZS )ÚQ_Simrá  rå   c                 óN   •— t          ¦   «                              ||¬¦  «         d S )N©rá  rå   )r±   rš  )r=   rá  rå   r²   s      €r>   rš  zQ_Sim.__init__F  s&   ø€ Ý�'„'×Ò˜7 sÐÑ+Ô+Ð+Ð+Ð+r?   c           
      óÎ  — | j         | j        z
  | j        z   }| j        | j        z
  }| j                             dd¦  «        }t          ¦   «                              |||¬¦  «        }i d|“d| j	        “d| j
        | j        | j        dœ“d| j        | j        t          |                      d¦  «        ¦  «        t#          |                      d	¦  «        ¦  «        | j        d
œ“d| j        “d| j        “d| j        “d| j        “d| j         “d| j         | j        z
  “d| j         | j        z
  | j        z   “d| j        “d|“d| j        “d| j        “d| j        “d| j        “| j        ||dœ¥S )Nr½   rH   ©r×   rŒ   rÆ   r?  Úlabor)rë   Ú
labor_costÚsalesrî  rð  rï  )r  r-  rÈ   ÚceofrG  rô  r�   rÎ   rC  rB  rI  rÆ   r@  rA  r	  rè   rG  rH  )rD  rF  r>  )rB  rÎ   rÆ   rý  rH  rå   r:   rÓ   rÝ   r?  rë   rô  r÷  rî  r  r   rõ  r   r  r�   rC  r	  rè   rG  rF  )r=   rÆ   rF  rŒ   r>  s        r>   r=  z
Q_Sim.calcJ  sÚ  € ØŒ\˜DœMÑ)¨T¬\Ñ9€'ØÔ" T¤_Ñ4€-ØŒH�LŠL˜ 2Ñ&Ô&€'å‘
”
×+Ò+°MÈ'ÐZaÐ+ÑbÔb€+ð
ØˆWð
àˆdŒmð
ð Ø”Ø”ØÔðð ð
ð ØŒNØ
Ô
Ýˆt�|Š|Ð.Ñ/Ô/Ñ0Ô0ÝˆT�\Š\˜/Ñ*Ô*Ñ+Ô+ØÔ ðð ð
ð ˆ4Œ:ð
ð  ˆ4Œ:ð!
ð" ˆdŒmð#
ð$ �$Ô#ð%
ð& ˆTŒ\ð'
ð( ˆDŒL˜4œ=Ñ(ð)
ð* ˆdŒl˜Tœ]Ñ*¨d¬lÑ:ð+
ð, �4”<ð-
ð. �ð/
ð0 �”ð1
ð2 ˆtŒ~ð3
ð4 �DÔ'ð5
ð6 �”ð7
ð8 Ô+Ø Øð=
ð 
ð 
ð r?   )r@   rA   rB   r´   rš  r=  rµ   r¶   s   @r>   r@  r@  E  sZ   ø€ € € € € ð,˜4ð , Dð ,ð ,ð ,ð ,ð ,ð ,ð%ð %ð %ð %ð %ð %ð %r?   r@  c                   óL   — e Zd Zdefd„Zdedefd„Zdded	ee         defd
„Z	dS )ÚSimÚbusinessc                 óÜ   — 	 t          |¦  «        }t          |j        ¦  «        }|dz  }|dk    r|S dS # t          $ r-}t	          d|¬¦  «         t	          d|¬¦  «         Y d }~dS d }~ww xY w)NrÛ   r   re   r‚   zTrouble with calc stockr€   )r¸   r   rÌ   re   r   )r=   rK  rå   rq   Ústockrg   s         r>   Ú
calc_stockzSim.calc_stockr  s’   € ðÝ	�xÑ	 Ô	 €3Ý	
ˆ3Œ?Ñ	Ô	€3Ø�‰;€5àˆa‚i€iØ€Làˆ1øå	ð ð ð Ýˆ{ Ð"Ñ"Ô"Ð"ÝÐ(¨hÐ7Ñ7Ô7Ð7Ø
ˆ"ˆ"ˆ"ˆ"ˆ"øøøøðøøøs   ‚/4 ´
A+¾"A&Á&A+rå   rF   c                 óâ   — d}	 t          |d         ¦  «        dk    s
J d¦   «         ‚t          t          |d         ¦  «        ¦  «        }t          |¦  «        S # t          $ r
}Y d }~nd }~ww xY wdS )Nr   Ú	PR_ScoreszNo PR Scores)rW   r   r  re   )r=   rå   rj   rg   s       r>   Úpr_avgz
Sim.pr_avg‚  sˆ   € Ø€"ðÝ
ˆc�+ÔÑ
Ô
 Ò
!Ð
!Ð
! >Ñ
!Ô
!Ð
!Ý	�#ˆc�+ÔÑ
Ô
Ñ Ô €2å
ˆB‰%Œ%€<øÝ	ð ð ð Ø€4€4€4€4øøøøðøøøð 
ˆs   „AA Á
A,Á'A,FNÚtestr	  c                 ó–
  — ddl m} |}i }t          ¦   «                              ¦   «         }t	          ¦   «         }|                     ¦   «         }t          ¦   «         }	g }
|D ]„} |||                              d¦  «        ¦  «        p(|                     di ¦  «                             d¦  «        ||         d<   d||         d<   d||         d	<   d||         d
<   g ||         d<   Œ…t          ¦   «                              ¦   «         }|D �]¶}|                     d¦  «        }|                     |¦  «        pi }t          ||¬¦  «         	                    ¦   «         }||d<   |sÇ||                              dd¦  «        }t          |                     d¦  «        ¦  «        } ||                     d¦  «        ¦  «        }t	          ¦   «                              |||¬¦  «        |d         d<   |	                     |                     d¦  «        t          j        |¦  «        dœ¬¦  «         |                     d¦  «        }||                              dg ¦  «         ||         d                              |¦  «         ||                              d |d¦  «        ¦  «         ||                              d |d¦  «        ¦  «         ||                              d |d¦  «        ¦  «         ||                              d |d¦  «        ¦  «         ||         dxx          ||d                              dd¦  «        ¦  «        z  cc<   ||         dxx          ||d                              dd¦  «        ¦  «        z  cc<   ||         dxx         t          |                     d¦  «        ¦  «        z  cc<   ||         dxx         t          |                     d¦  «        ¦  «        z  cc<   |                     d¦  «        ||         d<   |                     d¦  «        ||         d<   ||         d	xx         |                     d ¦  «        z  cc<   ||         d                              |                     d ¦  «        ¦  «         |
                     |¦  «         t!          d!|                     |¦  «        ¬"¦  «         �Œ¸|s†|                     ¦   «         D ]q\  }}|                      |¬#¦  «        }|                     |||                      |¦  «        |                     d¦  «        |                     dd¦  «        d$œ¬¦  «         Œr|
|d%œS )&Nr   r¼   rÃ   rß   r   rÂ   r–   rÅ   rà   rá   rP  r   rB  r=  r½   rH   rF  rÆ   rD  r>  r‡   )r‡   r=  r  ÚquartersÚ	rev_totalÚexpense_totalrH  Ú
units_maderB  rÎ   rG  r?  zUpdating Businessr‚   )rK  )r‡   rá   rà   rÅ   rÂ   )ÚsimsÚ	bus_cache)r¿   r   rŠ   rž   rÓ   rí   r:   ro   r@  r=  r   rÝ   râ   ÚtoJSONÚ
setdefaultrn   r   rm   rN  rQ  )r=   rR  r	  r   Úpbus_idrT   Ú	gsettingsrK  rY  rT  rX  Úcb_idÚq_allrá  r  r=  rŒ   r×   rÆ   rô   rå   rM  s                         r>   rT  zSim.quartersŽ  sj  € ØÐÐÐÐÐØ€'Ø	€$ÝÑÔ×%Ò%Ñ'Ô'€)Ý‰ZŒZ€(ð �nŠnÑÔ€)Ý‰ZŒZ€(Ø	€$àð &ð &€eØ!"  9¨UÔ#3×#7Ò#7¸Ñ#?Ô#?Ñ!@Ô!@Ð!tÀIÇMÂMÐRcÐdfÑDgÔDg×DkÒDkÐlsÑDtÔDt€9ˆUÔ�IÑØ#€9ˆUÔ�GÑØ"#€9ˆUÔ�JÑØ%&€9ˆUÔ�MÑ"Ø#%€9ˆUÔ�KÑ Ð õ ‰*Œ*�.Š.Ñ
Ô
€%Øð !@ñ !@€gØ�KŠK˜Ñ&Ô&€6Ø�mŠm˜FÑ#Ô#Ð) r€8Ý
˜ HÐ
-Ñ
-Ô
-×
2Ò
2Ñ
4Ô
4€4Ø€7ˆ6�?Ø
ð MØ˜Ô×#Ò# I¨bÑ1Ô1€GÝˆd�hŠh�Ñ'Ô'Ñ(Ô(€EØˆa�—’˜Ñ#Ô#Ñ$Ô$€GÝ%-¡Z¤Z×%@Ò%@ÀuÐU\ÐelÐ%@Ñ%mÔ%m€GˆF„O�MÑ"Ø‡O‚O˜wŸ{š{¨4Ñ0Ô0½¼ÀTÑ8JÔ8JÐKÐK€OÑLÔLÐLà	�Š�TÑ	Ô	€3ØˆVÔ×Ò 
¨2Ñ.Ô.Ð.ØˆVÔ�ZÔ ×'Ò'¨Ñ0Ô0Ð0àˆVÔ×Ò ¨A¨A¨a©D¬DÑ1Ô1Ð1ØˆVÔ×Ò °°°!±´Ñ5Ô5Ð5ØˆVÔ×Ò ¨Q¨Q¨q©T¬TÑ2Ô2Ð2ØˆVÔ×Ò ¨Q¨Q¨q©T¬TÑ2Ô2Ð2àˆVÔ�[Ð!Ð!Ô! A A g¨f¤o×&9Ò&9¸)ÀDÑ&IÔ&IÑ$JÔ$JÑJÐ!Ð!Ñ!ØˆVÔ�_Ð%Ð%Ô%¨¨¨'°&¬/×*=Ò*=¸jÈÑ*NÔ*NÑ(OÔ(OÑOÐ%Ð%Ñ%ØˆVÔ�\Ð"Ð"Ô"¥a¨¯ª°Ñ(>Ô(>Ñ&?Ô&?Ñ?Ð"Ð"Ñ"ØˆVÔ�\Ð"Ð"Ô"¥a¨¯ªÐ1AÑ(BÔ(BÑ&CÔ&CÑCÐ"Ð"Ñ"Ø $§¢¨Ñ 9Ô 9€9ˆVÔ�WÑØ"&§(¢(¨9Ñ"5Ô"5€9ˆVÔ�YÑàˆVÔ�ZÐ Ð Ô  D§H¢H¨ZÑ$8Ô$8Ñ8Ð Ð Ñ ØˆVÔ�[Ô!×(Ò(¨¯ª°*Ñ)=Ô)=Ñ>Ô>Ð>à‡;‚;ˆtÑÔÐåÐ"¨	¯ª°gÑ(>Ô(>Ð?Ñ?Ô?Ð?Ñ?à	ð VØ—_’_Ñ&Ô&ð Vð V�z€vˆcØ�OŠO SˆOÑ)Ô)€EØ‡O‚O˜v°EÀdÇkÂkÐRUÑFVÔFVÐ`c×`gÒ`gÐhoÑ`pÔ`pÐ|÷  }Dò  }Dð  ENð  OSñ  }Tô  }Tð  Uð  U€Oñ  Vô  Vð  Vð  Và )Ð	,Ð	,Ð,r?   )FN)
r@   rA   rB   r´   rN  rQ   rQ  rM  r   rT  rC   r?   r>   rJ  rJ  q  s�   € € € € € ð˜dð ð ð ð ð 
�Tð 
˜cð 
ð 
ð 
ð 
ðE-ð E-˜ð E-¨(°3¬-ð E-Àð E-ð E-ð E-ð E-ð E-ð E-r?   rJ  c                 ó   — d„ }|S )Nc                  óœ   — |                      d¦  «        }|                      d¦  «        }dd|› d|› �dœ}t          j        d|¬¦  «         |S )	Nr~   Úlevelr   zUser z is not )rä   ÚmessageÚResponser‚   )r:   r¿   r   )ÚargcÚargvrb  rb  Úresponses        r>   rc  zauth_failed.<locals>.messageÖ  s\   € Ø	�Š�&Ñ	Ô	€$Ø
�(Š(�7Ñ
Ô
€%ØÐ#@¨4Ð#@Ð#@¸Ð#@Ð#@ÐAÐA€(Ý„+�J HÐ-Ñ-Ô-Ð-Ø	€/r?   rC   )Úfuncrc  s     r>   Úauth_failedri  Õ  s   € ðð ð ð 	€r?   rb  c                 óZ   — t          j        dd| i¬¦  «         d}d„ }|dk    r|S t          S )Nz	Auth argsÚLevelr‚   ÚBrentac                 ó   ‡ — ˆ fd„}|S )Nc                  óJ   •— t          j        d| |dœ¬¦  «          ‰| i |¤Ž d S )NÚinside)re  rf  r‚   )r¿   r   )re  rf  rh  s     €r>   Úwrapperz(auth.<locals>.grab_func.<locals>.wrapperã  s;   ø€ Ý„;�X¨4°tÐ#<Ð#<Ð=Ñ=Ô=Ð=Ø€4ˆÐ�ÐÐÐÐÐr?   rC   )rh  rp  s   ` r>   Ú	grab_funczauth.<locals>.grab_funcâ  s#   ø€ ðð ð ð ð ð 
€.r?   ÚBrent)r¿   r   ri  )rb  rb  rq  s      r>   re  re  Þ  sF   € Ý„�; W¨U OÐ4Ñ4Ô4Ð4Ø€ðð ð ð
 	ˆG‚O€OØ	Ðå	Ðr?   rÆ   )<Útypingr   r   r   r   Ú	functoolsr   r   Úcollectionsr	   Úflaskr
   r¿   r   r   r   r   r   r   r   Údbr   r   Údecimalr   Úmathr—  r´   r|   r   r{   rJ   r\   r6   r8   r;   rQ   r…   rˆ   rŠ   r¸   rÓ   rï   rí   rO  rT  ra  ro  r«  r¬  r[  rÍ  r\  rä  r@  rJ  ri  rP   re  Ú	BW_ConfigrC   r?   r>   ú<module>r{     sï  ðØ .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø˜4  S˜=Ô)€€YÐ )Ð )Ñ )ð 4ð  >lð  uzð  DGð  OSð  Tð  TØ
,ð  7}ð  FNð  XYð  afð  gð  gØ
&ð  1ð  HNð  XZð  bgð  hð  hð€ð kð Øðvð vð
 ØðQð Qð
 ØðUð Uðð ðð ð$ að Øð1ð 1ð
 Øð]ð ]ð
 Øð0ð 0ðð ðð ð$ Qð Øð!ð !ð
 Øð5ð 5ð
 Øð7ð 7ðð ðð ð$ Ið Øð ð  ð
 ØðNð Nð	ð 	ðð ð Ið Øð5ð 5ð
 Øð7ð 7ð	ð 	ðð ð kð Øð/ð /ð
 ØðIð Ið
 Øðð ðð ðð ð$ ið Øð&ð &ð
 Øð.ð .ð
 Øðð ðð ðð ð$ Xð Øð/ð /ð
 Øð$ð $ð
 Øðð ðð ðð ð$ xð Øð=ð =ð
 Øð#ð #ð
 Øðð ðð ðð ð$ Zð Øð1ð 1ð
 Øð>ð >ð
 ØðSð Sðð ðð ð$ Wð Øð1ð 1ð
 Øðtð tð
 Øð-ð -ðð ðð ðGtð t€ðlð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð$?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ðB�#ð ð ð ð ð�3ð ð ð ð ð'$ð '$ð '$ð '$ð '$�eñ '$ô '$ð '$ðR"ð "ð "ð "ð "�Dñ "ô "ð "ðHKð Kð Kð Kð Kˆuñ Kô Kð KðZjð jð jð jð j�uñ jô jð jðXGð Gð Gð Gð Gˆuñ Gô Gð GðRð ð ð ð ñ ô ð ðð ð ð ð �uñ ô ð ð(ð ð ð ð ˆEñ ô ð ð:@ð @ð @ð @ð @ñ @ô @ð @ðDð ð ð ð ˜#ñ ô ð ð0ð ð ð ð ˜5ñ ô ð ð*ð ð ð ð ˆuñ ô ð ð"ð ð ð ð ˆ5ñ ô ð ð<ð ð ð ð ñ ô ð ðe=ð e=ð e=ð e=ð e=ñ e=ô e=ð e=ðN*ð *ð *ð *ð *ˆNñ *ô *ð *ðXb-ð b-ð b-ð b-ð b-ˆ%ñ b-ô b-ð b-ðHð ð ðˆsð ð ð ð ð ˆ5ð€	€	€	r?   