ó
    J _i!Š  ã                   ó  • % S SK JrJrJrJr  S SKJr  S SK JrJrJr  S SKJ	r	  S SK
Jr  S SKrS SKJrJrJrJrJrJrJr  S SKJrJr  S S	KJr  S SKrS SKr\\\\4   r\\S
'   SSSSSS.SSSS SS.SSSSSS./rSS S S.S S S.S S S.S.S.SS S S.S S S.S S S.S.S.S SS!S.S"S S.S S#S.S$.S.S%SS S.SS!S.S&.S.S'SSS.S S S.S(.S.S)SSS.S*S S.S SS.S+.S.S,SSS.S*S S.S SS.S-.S.S.SSS.S*S S.S SS.S/.S.S0S1SS.S*S S.S SS.S2.S.S3S4S5S.SS!S.S S6S.S7.S.S8S4S9S.SS:S.S S;S.S<.S.S=.r  " S> S?5      r! " S@ SA5      r" " SB SC5      r#SD\$4SE jr%SD\$4SF jr& " SG SH\5      r' " SI SJ\5      r( " SK SL\5      r) " SM SN\5      r* " SO SP\5      r+ " SQ SR5      r, " SS ST\5      r- " SU SV\5      r. " SW SX5      r/ " SY SZ\5      r0 " S[ S\\5      r1 " S] S^5      r2 " S_ S`5      r3 " Sa Sb\35      r4 " Sc Sd\5      r5Se r6Sf\74Sg jr8ShS0r9g)ié    )Ú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                   ó   • \ rS rSrS rSrg)ÚAdminéÊ   c                 ó¦   • [        5       R                  5       R                  S5      =(       d    / [        5       R                  5       =(       d    / S.$ )Nr#   )ÚOverheadÚDilemas)r9   r#   ÚgetÚDilemmas©Úselfs    Ún/Users/brent/Library/CloudStorage/GoogleDrive-brent@vulcan-creative.com/My Drive/Projects/sites/bsim/io/app.pyr#   ÚAdmin.optionsË   s=   € ä‹j× Ñ Ó"×&Ñ& yÓ1×7°RÜ‹Z×ÑÓ!×' Rñ
ð ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r#   Ú__static_attributes__rB   rA   r?   r6   r6   Ê   s   † õrA   r6   c                   ó>   • \ rS rSrS\S\4S jrS\S\4S jrS rSr	g)	r9   éÑ   ÚkeyÚreturnc                 ó„   • [          H6  nUR                  SS5      U:X  d  M  [        UR                  SS5      5      s  $    g)Nr   Ú r   r   ©ÚOVERHEADr;   r   ©r>   rJ   Úitems      r?   r   ÚOverhead.costÓ   s:   € ß€dØ
‡h�hˆw�rÓ˜cÕ!ÜˆT�X‰X�f˜QÓÓ Ò ñ ð 
rA   c                 ó„   • [          H6  nUR                  SS5      U:X  d  M  [        UR                  SS5      5      s  $    g)Nr   rM   r   r   rN   rP   s      r?   r   ÚOverhead.valueÙ   s:   € ß€dØ
‡h�hˆw�rÓ˜cÕ!äˆT�X‰X�h˜qÓ!Ó"Ò"ñ ð 
rA   c                 ó   • S[         0$ ©Nr#   )rO   r=   s    r?   r#   ÚOverhead.optionsà   s   € Ø
”HÐ	ÐrA   rB   N)
rC   rD   rE   rF   ÚstrÚintr   r   r#   rG   rB   rA   r?   r9   r9   Ñ   s-   † ð�3ð ˜3ô ð�Cð ˜Cô õrA   r9   c                   ó    • \ rS rSr% \\S'   S\S\4S jrS\4S jrS\S	\S\	4S
 jr
S\S	\S\4S jrS\S\4S jrS\4S jrS\4S jrS rSrg)r<   éã   ÚerrorÚdatarK   c                 ó:   • [        U5      S:”  a  [        U5      $ / $ ©Nr   )Úlenr   ©r>   r]   s     r?   ÚfromJSONÚDilemmas.fromJSONå   s   € ÜˆƒYˆqƒ[Ü
�$‹-Ðà	€8rA   Únamec                 óL   • [         R                  U0 5      R                  S5      $ )Nr"   )ÚDILEMMASr;   ©r>   rd   s     r?   r"   ÚDilemmas.descriptionê   s   € Ü	�‰�d˜2Ó	×	"Ñ	" =Ó	1Ð1rA   ÚdilemmaÚactionc           	      ó4  •  [        [        R                  U0 5      R                  S0 5      R                  U0 5      R                  S5      5      $ ! [         a=  nSU SU S[	        U5       3U l        [        SU SU 3S9  [        S5      s S nA$ S nAff = f)Nr#   r   úTrouble getting Dilemma cost ú -> ú 
©r   r   )r   rf   r;   Ú	ExceptionrX   r\   r   ©r>   ri   rj   Úes       r?   r   ÚDilemmas.costí   s�   € ðÜ
ŒH�L‰L˜ Ó$×(Ñ(¨°2Ó6×:Ñ:¸6À"ÓE×IÑIÈ&ÓQÓ
RÐRøÜ	ó Ø/°¨y¸¸V¸HÀCÌÈAËÀxÐP€4„:ÜÐ.¨w¨i°t¸F¸8ÐDÒEÜ
ˆA‹$…;ûðúó   ‚AA Á
BÁ2BÂBÂBc           	      ó4  •  [        [        R                  U0 5      R                  S0 5      R                  U0 5      R                  S5      5      $ ! [         a=  nSU SU S[	        U5       3U l        [        SU SU 3S9  [        S5      s S nA$ S nAff = f)Nr#   r    rl   rm   rn   ro   r   )r   rf   r;   rp   rX   r\   r   rq   s       r?   ÚprÚDilemmas.prõ   s�   € ðÜ
ŒH�L‰L˜ Ó$×(Ñ(¨°2Ó6×:Ñ:¸6À"ÓE×IÑIÈ+ÓVÓ
WÐWøÜ	ó Ø/°¨y¸¸V¸HÀCÌÈAËÀxÐP€4„:ÜÐ.¨w¨i°t¸F¸8ÐDÒEÜ
ˆA‹$…;ûðúrt   Údilemmasc                 ó^  • / n[        U5      =(       d    /  HŠ  n[        R                  U0 5      R                  S5      0 S.n[        R                  U0 5      R                  S0 5      R                  5        H  u  pVXdS   U'    US   U   S	 M     UR	                  U5        MŒ     U$ !    M6  = f)Nr"   r!   r#   r    )r   rf   r;   ÚitemsÚappend)r>   rx   Úallri   r]   ÚoptionÚvals          r?   Ú
mk_quarterÚDilemmas.mk_quarterý   s­   € Ø
€#Ü˜Ó"×( bÒ(€gÜ!Ÿ™ g¨bÓ1×5Ñ5°mÓDÈrÑ
R€4Ü—\‘\ '¨"Ó-×1Ñ1°)¸BÓ?×EÑEÖG�z€vØ!ˆ�O�FÑð
Ø	ˆi‰˜Ñ	  Ò	-ñ Hð ‡:�:ˆdÖñ )ð 
€*øð
Ú	ús   Â	B'Â'B,c                 óð   • 0 n[         R                  U0 5      R                  S0 5      R                  5        H  u  p4XBU'    US	 M     U[         R                  U0 5      R                  S5      S.$ !    M>  = f)Nr#   r    r"   )r#   r"   ©rf   r;   rz   ©r>   rd   r]   Údescr~   s        r?   Úclient_optionÚDilemmas.client_option
  sv   € Ø	€$Ü—,‘,˜t BÓ'×+Ñ+¨I°bÓ9×?Ñ?ÖA�h€dØˆ�:ð	ØˆKÒñ Bð ¤x§|¡|°D¸Ó'<×'@Ñ'@ÀÓ'OÑ	PÐPøð	Úús   ÁA0Á0A5c                 óŒ   • 0 n[         R                  U0 5      R                  S0 5      R                  5        H	  u  p4XBU'   M     U$ rV   r‚   rƒ   s        r?   r}   ÚDilemmas.option  sA   € Ø	€$Ü—,‘,˜t BÓ'×+Ñ+¨I°bÓ9×?Ñ?ÖA�h€dØˆƒ:ñ Bà	€+rA   c                 óŠ   • / n[         R                  5        H(  u  p#UR                  UR                  S5      US.5        M*     U$ )Nr"   ©r   r   )rf   rz   r{   r;   )r>   r]   rd   r   s       r?   r#   ÚDilemmas.options  sA   € Ø	€$Ü—^‘^Ö%�k€dØ‡;�;Ø�J‰J�}Ó%Øñö ñ &ð
 
€+rA   )r\   N)rC   rD   rE   rF   rX   Ú__annotations__Úlistrb   r"   r   r   rY   rv   r   r…   r}   r#   rG   rB   rA   r?   r<   r<   ã   sŒ   ‡ Ø
ƒð˜ð  ô ð
2˜3ô 2ð�sð  #ð ¨'ô ð�Sð  ð ¨ô ð˜cð  dô ð	Q˜Sô 	Qð�cô õrA   r<   rK   c                  ó˜   •  [         S   S   =(       d    S$ ! [         a(  n [        SU S9  [        S[         S   S   S9   S n A gS n A ff = f)NÚUserÚBusiness_IDéÿÿÿÿúTrouble getting session user©r   r]   zSession Business©r
   rp   r   ©rr   s    r?   ÚgetBusIDr–   $  sM   € ðÜ	�‰˜Ñ	'×	-¨2Ð-øÜó ÜÐ,°!Ò4ÜÐ ¤g¨f¡o°mÑ&DÒEÜ	ûðús   ‚ —
A	¡AÁA	c                  ó€   •  [         S   S   $ ! [         a%  n [        SU S9  [        S[         S   S9   S n A gS n A ff = f)Nr�   ÚIDr’   r“   zSession Userr‘   r”   r•   s    r?   Ú	getUserIDr™   ,  sB   € ðÜ	�‰˜Ñ	ÐøÜó ÜÐ,°!Ò4Üˆn¤'¨&¡/Ò2Ü	ûðús   ‚ Ž
=˜8¸=c                   ó~   ^ • \ rS rSrSrS\S\4S jrS\S\4S jr	S r
S\S\4S	 jrS
\4S jrS\4U 4S jjrSrU =r$ )ÚGlobal_Settingsi4  ÚGlobalÚqualityrK   c                 ó²   • 0 n[        5       n[        UR                  U S35      5      nUS-  nS[        US-  5       S[        US-  5       3US'   SUS   0$ )NÚ_Median_Pricegš™™™™™é?Ú$z - $g333333ó?Úprice)r›   r   Ú	get_valuer   )r>   r�   r]   Úsettingsr¡   Úbottoms         r?   ÚsummaryÚGlobal_Settings.summary7  sk   € Ø	€$ÜÓ€(Ü
ˆH×Ñ ' ¨-Ð8Ó9Ó
:€%Ø�3‰;€&Ø”a˜ ™“oÐ& d¬1¨U°T©\«?Ð*;Ð<€$€w�-Ø
�$�w‘-Ð	 Ð rA   c                 óŠ   • U R                  5       nUR                  U5      =n(       a  UR                  S5      $ [        S5      $ )Nr   ç        )Úmedian_pricesr;   r   )r>   r�   ÚpricesrQ   s       r?   Úmedian_priceÚGlobal_Settings.median_price?  s=   € Ø×ÑÓ€&à�Z‰Z˜Ó Ð €TÕ Ø
�(‰(�7Ó
Ðä
�$‹-ÐrA   c                 óˆ   • U R                  5       nUR                  S5      UR                  S5      UR                  S5      S.$ )NÚLow_Median_PriceÚMedium_Median_PriceÚHigh_Median_Price)r   r   r   )Úcacher;   ra   s     r?   r©   ÚGlobal_Settings.median_pricesG  s>   € Ø	�‰‹€$à	�‰Ð$Ó	%Ø�H‰HÐ*Ó+Ø
�(‰(Ð&Ó
'ñ
ð rA   r˜   c                 ó‚   • U R                  5       U l        U R                  R                  SU/S9  U R                  5       $ ©NúID=%s©ÚqueryÚparms©Úqb_initÚqbÚfilterÚ
select_one©r>   r˜   s     r?   r;   ÚGlobal_Settings.getO  ó2   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�w b T€.Ñ*Ø	�‰Ó	ÐrA   rJ   c                 ó¸   • U R                  5       U l        U R                  R                  SU/S9  U R                  5       =(       d    0 nUR	                  SS5      $ )Nz`key`=%sr¶   r   rM   )rº   r»   r¼   r½   r;   )r>   rJ   Úds      r?   r¢   ÚGlobal_Settings.get_valueT  sG   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�z¨¨€.Ñ.Ø
‡o�oÓ×˜2€!Ø	
�‰ˆw�rÓ	ÐrA   c                 ó   >• [         TU ]  SS9$ )NrJ   ©Úfield)Úsuperr±   )r>   Ú	__class__s    €r?   r±   ÚGlobal_Settings.cacheZ  s   ø€ Ü	‰‰˜UˆÐ	#Ð#rA   ©r»   )rC   rD   rE   rF   ÚtablerX   Údictr¥   r   r«   r©   rY   r;   r¢   r±   rG   Ú__classcell__©rÈ   s   @r?   r›   r›   4  sc   ø† Ø	€ð!˜#ð ! $ô !ð˜sð  wô òð�ð ˜ô ð
˜ô ð$�D÷ $õ $rA   r›   c                   óX   • \ rS rSrSS\S\4S jjr\S\4S j5       rS\S\S\4S jr	S	r
g
)ÚBusiness_Itemi]  Ú
manuf_coefrK   c                 óP  • SSK Jn  [        5       R                  5       n [	        UR                  U R                  SS5      0 5      R                  S5      =(       d    S5      nU[	        US-  5      -  nU" US-  5      $ ! [         a  n[        S	US
9  U" S5      s S nA$ S nAff = f)Nr   ©r   ÚQualityrM   r   r‘   éd   é   zTrouble getting Units Pricer“   iç  )ÚUtilsr   r›   r©   r   r;   rp   r   )r>   rÑ   r   rª   r   rr   s         r?   Úcost_per_unitÚBusiness_Item.cost_per_unit^  s�   € ÝÜÓ×*Ñ*Ó,€&ðÜ
ˆF�J‰J�t—x‘x 	¨"Ó-¨bÓ1×5Ñ5°gÓ>×DÀ"Ó
E€4ØŒ1ˆZ˜‰^ÓÑ€4Ù
ˆD�‰F‹)Ðøä	ó ÜÐ,°&Ò9Ù
ˆC‹&…=ûðús    AA? Á?
B%Â	B ÂB%Â B%c                 ó¤  •  U R                  S5      n[        U R                  S5      5      n[        U R                  S5      5      n[        [        5       R	                  U S35      5      n[        US-  5      n[        [        U R                  S5      5      U-  5      nX&-   nU$ ! [         a  n[        SUS9   S nAOS nAff = f[        S	5      $ )
NrÔ   ÚCapitalÚLoanrŸ   é   ÚUnitszTrouble with total valuer“   r‘   )	r;   r   r   r›   r¢   r   rp   r   r   )	r>   r�   ÚcapitalÚloanÚmedianÚavg_valÚunit_valÚtotalrr   s	            r?   Útotal_valueÚBusiness_Item.total_valuek  s¸   € ð2Ø�X‰X�iÓ €7Üˆt�x‰x˜	Ó"Ó#€7Ü
ˆD�H‰H�VÓÓ
€4ÜŒoÓ×)Ñ)¨W¨I°]Ð*CÓDÓE€6Üˆv�a‰x‹[€7Ü”�$—(‘(˜7Ó#Ó$ wÑ.Ó/€8ØÑ€5à
€<øÜ	ó 2ÜÐ)¨q×1ûð2úô 
�‹Ðs   ‚B#B& Â&
CÂ0
B?Â?CÚrevÚexpensesc                 óh   • [        U R                  SS5      5      n[        X-   U-
  5      U S'   U S   $ )NrÜ   r¨   rÛ   )r   r;   )r>   rç   rè   rà   s       r?   Úcalc_capitalÚBusiness_Item.calc_capital|  s6   € Ü	
ˆ4�8‰8�F˜4Ó Ó	!€$Ü�s‘x Ñ)Ó*€$€y�/Ø	ˆi‰ÐrA   rB   N)rÕ   )rC   rD   rE   rF   rY   r   rØ   Úpropertyrå   rê   rG   rB   rA   r?   rÐ   rÐ   ]  sJ   † ñ 3ð ¨wõ ð ð˜'ó ó ðð ˜7ð ¨Gð ¸÷ rA   rÐ   c                   ó¼   • \ rS rSr% Sr\\S'   S rSrS\S\	S\
4S jrS\S\	S	\
S\
4S
 jrS\4S jrS\S\4S jrSS\	S\\   S\4S jjrS\4S jrS\S\4S jrSrg)ÚBusinessi�  é   ÚidÚBusiness_itemÚunitsr�   rK   c                 óŠ   • Sn[        [        5       R                  U S35      5      n[        US-  5      nX-  n[        U5      $ )Nr   rŸ   rÝ   )r   r›   r¢   r   )r>   rò   r�   r~   rá   râ   s         r?   Úinventory_valueÚBusiness.inventory_value†  sC   € Ø	€#ÜŒ_Ó×(Ñ(¨G¨9°MÐ)BÓCÓD€&Üˆf�Q‰h‹K€'Ø‰€#Ü	
ˆ3‹€-rA   rß   c                 óf   •  U R                  XS9n[        XC-   S-  5      $ !   [        S5      s $ = f)N)rò   r�   éO  r   )rô   r   )r>   rò   r�   rß   Ú	inv_values        r?   Úcalc_stock_priceÚBusiness.calc_stock_price�  s=   € ðØ×#Ñ#¨EÐ#ÐB€9Ü
ˆYÑ  EÑ)Ó
*Ð*øðÜ
ˆA‹$‚;ús   ‚! ¡0c                 ó  • [        5       n[        UR                  S5      =(       d    S5      nSnU R                  5        HD  nX$S'   X$S'   SUS'   SUS'   SUS'   U R	                  U5        U R	                  U5      S::  d  MB  SnMF     U$ )	NÚInitial_Capitalr   rï   rÛ   rÜ   ÚPR_ScorerÞ   ÚStock_Price)r›   r   r¢   r|   Úupdate)r>   Úgdatarà   ÚstatusÚbuss        r?   ÚresetÚBusiness.reset”  s‹   € Ü
Ó
€%Ü	
ˆ5�?‰?Ð,Ó-×2°Ó	3€$Ø€&Ø�X‰XŽZ€cØ€y�>Ø€v�;Ø€3€z�?Ø€3€w�<Ø€3€}ÑØ‡;�;ˆsÔØ
‡k�k�#Ó˜ÕØ‚Fñ ð 
€-rA   r˜   c                 ó  • U R                  5       U l        U R                  R                  SU/S9  U R                  5       n0 nU(       aµ  [	        U5      nUR                  5       US'   0 US'   [        R                  " S[        5       R                  U5      5      nSn[        5       R                  5        HF  nUR                  SS5      nXSS   U'   UR                  U0 5      R                  S	5      =(       d    SnMH     U$ )
Nrµ   r¶   Ú	unit_costÚemployee_listÚ
Quarter_IDr   r˜   rM   Ú	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;   ÚBusiness.get£  sÞ   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�w b T€.Ñ*Ø�‰Ó€#Ø
€#ÞÜ	�sÓ	€3Ø×'Ñ'Ó)€3€{ÑØ€3€Ñô �>Š>˜,¤x£z×'>Ñ'>¸rÓ'BÓC€5Ø
€4ä"Ó$×+Ñ+Ö-€wØ
�+‰+�d˜2Ó
€CØ $ˆÑ˜ÑØ�9‰9�S˜Ó× Ñ  Ó-×2°‚Dñ .ð 
€*rA   Nr·   r¸   c                 óÈ   • 0 nU R                  5       U l        U(       a  U R                  R                  X#S9  U R                  5        H  nXTUR	                  S5      '   M     U$ )Nr¶   r˜   )rº   r»   r¼   Úselectr;   )r>   rÆ   r·   r¸   r]   r  s         r?   r±   ÚBusiness.cache·  sN   € Ø	€$Ø�L‰L‹N€$„'æ
Ø‡7�7‡>�>˜€>Ñ*à�[‰[Ž]€cØˆ�‰�‹Óñ à	€+rA   c                 ó¬   • / nU R                  5        H=  n[        5       R                  UR                  S5      S9US'   UR	                  U5        M?     U$ )Nr˜   ©r�   ÚQuarter_Plan)r|   r  r  r;   r{   )r>   rÂ   r  s      r?   ÚdetailsÚBusiness.detailsÂ  sK   € Ø€!Ø�X‰XŽZ€cÜ!›×0Ñ0¸S¿W¹WÀT»]Ð0ÐK€3€~ÑØ‡8�8ˆC†=ñ ð 
€(rA   c                 óX   • U R                  US9n[        5       R                  US9US'   U$ )N©r˜   r  r  )r;   r  r  )r>   r˜   r  s      r?   r   ÚBusiness.detailÉ  s0   € Ø�‰�Bˆˆ€#Ü ›
×/Ñ/¸BÐ/Ð?€#€nÑØ	€*rA   rÊ   )r˜   rM   N)rC   rD   rE   rF   rð   rY   rŒ   rË   Úrow_clsrX   r   rô   rù   r  rÌ   r;   r   r�   r±   r  r   rG   rB   rA   r?   rî   rî   �  s¬   ‡ Ø
€€CƒØ	€Ø€ð ð ¨Cð °Gô ð ð ¨Sð ¸ð ÀWô ð�Cô ð�ð ˜ô ñ(	 ð 	¨h°t©nð 	Àdõ 	ð�dô ð�Cð ˜D÷ rA   rî   c                   óú   • \ rS rSr% Sr\\S'   S rS\S\4S jr	S\
S\4S jrS\4S	 jrS
\S\4S jrS\4S jrSS
\S\
S\4S jjrS\4S jrS\4S jrS\
S\\   S\4S jrS\4S jrSS\
S\\   S\4S jjrSrg)r  iÎ  rï   rð   r˜   rK   c                 ó‚   • U R                  5       U l        U R                  R                  SU/S9  U R                  5       $ r´   r¹   r¾   s     r?   r;   ÚQuarter_Settings.getÒ  rÀ   rA   rd   c                 ó²   • U R                  5       U l        U R                  R                  SU/S9R                  S5        U R	                  5       =(       d    0 $ )NzName=%sr¶   Ú1)rº   r»   r¼   Úlimitr½   rg   s     r?   Úget_nameÚQuarter_Settings.get_name×  sB   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�y¨ v€.Ð.×4Ñ4°SÔ9Ø	�‰Ó	×	 ˜bÐ rA   c                 ó‚   • U R                  5       U l        U R                  R                  SS0S9  U R                  5       $ )NÚActiver   ©r]   )rº   r»   rÿ   Úexecuter=   s    r?   Ú
deactivateÚQuarter_Settings.deactivateÜ  s1   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�x �l€.Ñ#Ø	�‰‹ÐrA   Úbus_idc                 ó  • U R                  5       U l        0 nU R                  5        Hà  nUR                  " S5      nUR                  " S5      n[	        SUS9  [        5       R                  US9nX2U'   [        5       R                  UR                  " S5      5      X%   S'   [        5       R                  5       X%   S'   U R                  XS9X%   S	'   S
X%   S'   [        5       R                  UR                  SS5      5      X%   S'   Mâ     U$ )NÚNamer˜   zbus summaryr“   r  r<   ÚOverhead_Settings©r.  Úquarter_nameÚProduction_Costé(   Ú
EfficiencyrÔ   rM   ÚMedian)rº   r»   r|   r;   r   rî   Úget_idr<   r   r9   r#   Úcalc_production_costr›   r¥   )r>   r.  r]   r   rd   rð   Úbus_datas          r?   Úbus_summaryÚQuarter_Settings.bus_summaryá  sñ   € Ø�L‰L‹N€$„'Ø	€$à�X‰XŽZ€cØ
�'Š'�&‹/€4Ø�Š�‹€2Üˆ} #Ò&Ü‹j×Ñ 6ÐÐ*€8Øˆ�8Ü"›*×/Ñ/°·²¸
Ó0CÓD€4�8ˆJÑä#+£:×#5Ñ#5Ó#7€4�8ÐÑ Ø!%×!:Ñ!:À&Ð!:Ð![€4�8ÐÑØ€4�8ˆLÑÜ'Ó)×1Ñ1°(·,±,¸yÈÓ2LÓM€4�8ˆHÓñ ð 
€+rA   c                 óÀ  • U R                  5       U l        0 nU R                  5        H²  nUR                  " S5      nUR                  " S5      n[	        5       n[        5       R                  US9nX!U'   [        5       R                  5       X   S'   U R                  XSS9X   S'   SX   S'   [        5       R                  UR                  S	S
5      5      X   S'   M´     U$ )Nr0  r˜   r  r1  r2  r4  r5  r6  rÔ   rM   r7  )rº   r»   r|   r;   r–   rî   r8  r9   r#   r9  r›   r¥   )r>   r]   r   rd   rð   r.  r:  s          r?   r¥   ÚQuarter_Settings.summary÷  sÌ   € Ø�L‰L‹N€$„'Ø	€$à�X‰XŽZ€cØ
�'Š'�&‹/€4Ø�Š�‹€2Ü‹J€6Ü‹j×Ñ 6ÐÐ*€8Øˆ�8ä#+£:×#5Ñ#5Ó#7€4�8ÐÑ Ø!%×!:Ñ!:À&Ð!:Ð![€4�8ÐÑØ€4�8ˆLÑÜ'Ó)×1Ñ1°(·,±,¸yÈÓ2LÓM€4�8ˆHÓñ ð 
€+rA   r3  c                 ó„  • [        5       R                  U5      nSnSn U(       a1  [        5       R                  US9n[	        UR                  S5      5      n[        [        5       R                  U5      5      nUR                  US9$ ! [         a"  n	[        SU	S9  [        SUW/S9  Sn S n	A	OS n	A	ff = f[        U5      $ )	Nr¨   rÕ   )rd   ÚManufacturing_Cost)rÑ   rp   r“   zTrouble with Production Calc)rî   r;   r  r&  r   rÐ   r8  rØ   r   r›   r©   Úfloatr   rp   )
r>   r.  r3  r  r   ÚcoefÚqr�   rª   rr   s
             r?   r9  Ú%Quarter_Settings.calc_production_cost  s´   € Ü‹
�‰�vÓ€#Ø	€$Ø	€$ðÞÜÓ×#Ñ#¨Ð#Ð6€AÜˆQ�U‰UÐ'Ó(Ó)€DÜ	”x“z×(Ñ(¨Ó0Ó	1€3Ø
×
Ñ
 tÐ
Ð
,Ð,øô 
ó Üˆ{ Ò"ÜÐ-°D¸°=ÒAØ
…4ûðúô 
ˆ4‹€.s   ŸA(B Â
B4ÂB/Â/B4c                 óœ   • / nU R                  SS9 H6  nUR                  UR                  SS5      UR                  S5      S.5        M8     U$ )NúActive=1©r·   r0  rM   r˜   rŠ   )r|   r{   r;   )r>   ÚqdatarC  s      r?   r#   ÚQuarter_Settings.options  sE   € Ø
€%Ø�8‰8˜*ˆ8Ó%€aØ‡<�<˜Ÿ™˜v bÓ)°!·%±%¸³+Ñ>Ö?ñ &à	€,rA   c                 óˆ   • 0 nU R                  5       U l        U R                  5        H  nX!UR                  S5      '   M     U$ )Nr˜   )rº   r»   r  r;   )r>   r]   rC  s      r?   r±   ÚQuarter_Settings.cache$  s9   € Ø	€$Ø�L‰L‹N€$„'Ø�;‰;Ž=€aØˆ�‰ˆd‹Óñ à	€+rA   r·   r¸   c                 ó~   • U R                  5       U l        U R                  R                  XS9  U R                  5       $ )Nr¶   r¹   ©r>   r·   r¸   s      r?   ÚfindÚQuarter_Settings.find+  s.   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�u€.Ñ)Ø	�‰Ó	ÐrA   c                 ó    • U R                  SS9$ )NrF  rG  )r|   r=   s    r?   r  ÚQuarter_Settings.active0  s   € Ø	�‰˜
ˆÐ	#Ð#rA   Nc                 óÐ   • U R                  5       U l        U(       a  U R                  R                  XS9  U R                  R                  SS9  [	        U R                  5       5      $ )Nr¶   r0  rÅ   )rº   r»   r¼   Úorderr�   r  rM  s      r?   r|   ÚQuarter_Settings.all3  sG   € Ø�L‰L‹N€$„'Þ
Ø‡7�7‡>�>˜€>Ñ*Ø‡'�'‡-�-�f€-ÑÜ	ˆd�k‰k‹mÓ	ÐrA   rÊ   ©rM   ©rM   N)rC   rD   rE   rF   rð   rY   rŒ   rË   rÌ   r;   rX   r&  r,  r;  r¥   r   r9  r�   r#   r±   r   rN  r  r|   rG   rB   rA   r?   r  r  Î  sà   ‡ Ø
€€CƒØ	€ð�ð ˜ô ð
!˜ð ! ô !ð
˜ô ð
˜Sð  Tô ð,�dô ñ" cð °sð À'õ ð,�dô ð�Dô ð�Sð ˜x¨™~ð °$ô ð
$�Tô $ñ�Cð  ¨$¡ð ¸÷ ð rA   r  c            	       ó®   • \ rS rSr% Sr\\S'   S rS\4S jrS\S\	4S jr
S\S\S\4S	 jrS\S\4S
 jrSS\S\\   S\S\4S jjrSS\S\S\4S jjrSrg)r  i:  rï   rð   rK   c                 ó    • U R                  5       U l        SU R                  l        U R                  R                  0 S9  U R	                  5       $ )NTr*  )rº   r»   ÚdebugÚdeleter+  r=   s    r?   r  ÚQuarters.reset>  s8   € Ø�L‰L‹N€$„'Ø€$‡'�'„-Ø‡'�'‡.�.�b€.ÑØ	�‰‹ÐrA   r  c                 ó‚   • U R                  5       U l        U R                  R                  SU/S9  U R                  5       $ )NzQuarter_ID=%sr¶   r¹   )r>   r  s     r?   Úget_quarter_idÚQuarters.get_quarter_idD  s2   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�¨j¨\€.Ñ:Ø	�‰Ó	ÐrA   r�   c                 ó¬   • U R                  5       U l        U R                  R                  SX/S9  [        [	        U R                  5       5      5      S:„  $ )Nú Business_ID=%s and Quarter_ID=%sr¶   r   )rº   r»   r¼   r`   r�   r  )r>   r�   r  s      r?   Úcheck_existsÚQuarters.check_existsI  sB   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.Ð9ÀÐ@X€.ÑYÜ	ŒT�$—+‘+“-Ó Ó	! !Ñ	#Ð#rA   c                 ó6  • U R                  5       U l        U R                  R                  SS9  U R                  R                  SU/S9  U R                  R	                  SS9  U R                  R                  SS9  U R                  U R                  5       5      $ )	Nz0Quarters.*,Quarter_Settings.Name as Quarter_Name©ÚfieldszBusiness_ID=%sr¶   z@join Quarter_Settings on Quarter_Settings.ID=Quarters.Quarter_ID)Újoinr0  rÅ   )rº   r»   re  r¼   rf  rS  Ú
parse_rowsr  )r>   r�   s     r?   r  ÚQuarters.get_businessN  ss   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.ÐJ€.ÑKØ‡'�'‡.�.Ð'¨{¨m€.Ñ<Ø‡'�'‡,�,ÐV€,ÑWØ‡'�'‡-�-�f€-ÑØ	�‰˜Ÿ™›Ó	'Ð'rA   Nr·   r¸   Ú	show_calcc                 ó  • U R                  5       U l        U R                  R                  S5        U R                  R                  SS9  U(       a  U R                  R	                  XS9  U R                  U R                  5       U5      $ )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»   re  rS  r¼   rg  r  )r>   r·   r¸   ri  s       r?   r|   ÚQuarters.allV  se   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.ð  zô  {Ø‡'�'‡-�-Ð@€-ÑAÞ
Ø‡7�7‡>�>˜€>Ñ*à	�‰˜Ÿ™› yÓ	1Ð1rA   Úrowsc           	      ón  • / nU GH+  n[         R                  " UR                  S5      5      n0 n[        5       R	                  [        UR                  S5      5      5      nU(       Gak  0 SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _S	UR                  S	5      _S
UR                  S
5      _SUR                  S5      _SUR                  S5      _S[        UR                  S5      5      [        UR                  S5      5      -  _SUR                  S5      _SUR                  SS5      _S[        UR                  S5      5      [        UR                  S5      5      -  _SUR                  S5      _SUR                  S5      _SUR                  S5      _nU(       d;  UR                  S5      (       a%  [        UR                  SS5      5      S:”  a  SUS'   OSUS'   XdS'   UR                  U5        GM.     U$ )NÚcalcr  Ústock_priceÚpr_scorer3  r0  Úcapital_startÚcapital_endÚrevenueÚexpense_listrè   Úunits_on_hand_startÚinventory_value_startr  Úunits_on_handr   rô   Úunits_producedÚ
units_soldÚprofitrM   Fz	.editableT)	r×   r   r;   r  r8  r   r   r`   r{   )r>   rl  ri  rÂ   Úrrn  ÚcdataÚ	qsettingss           r?   rg  Ú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Ó5¼¸$¿(¹(ÐCXÓ:YÓ8ZÑZðð �T—X‘X˜oÓ.ðð �—‘˜+ aÓ(ðð ”q˜Ÿ™ +Ó.Ó/´!°D·H±H¸_Ó4MÓ2NÑNðð �d—h‘hÐ/Ó0ðð �$—(‘(˜<Ó(ðð  ˆd�h‰h�xÓ ð!€Eö& ˜Ÿ™˜fŸ™¬#¨a¯e©e°F¸2Ó.>Ó*?ÀÓ*AØ€A€k‚Nà€A€k�Nà€V�9Ø‡8�8ˆA‡;ñ? ð@ 
€(rA   rÊ   )rM   NF)F)rC   rD   rE   rF   rð   rY   rŒ   rË   r  rÌ   r]  Úboolra  r�   r  rX   r   r|   r   rg  rG   rB   rA   r?   r  r  :  s¡   ‡ Ø
€€CƒØ	€ð�Cô ð Cð ¨Dô ð
$ 3ð $°#ð $¸$ô $ð
( 3ð (¨4ô (ñ2�Cð 2 ¨$¡ð 2Àð 2ÐRVõ 2ñ"˜$ð "¨ð "¸÷ "ð "rA   r  c                   ó"   • \ rS rSrS\4S jrSrg)Ú
Reports_PLiƒ  rK   c                 ó   • 0 $ ©NrB   r=   s    r?   ÚgenerateÚReports_PL.generate„  s   € Ø	€)rA   rB   N)rC   rD   rE   rF   rÌ   r„  rG   rB   rA   r?   r�  r�  ƒ  s   † ð�t÷ rA   r�  c                   ó&   • \ rS rSrS\S\4S jrSrg)ÚClient_Dashboardi‡  r.  rK   c                 ó(  • [        5       n[        5       R                  US9nU[        5       R	                  U5      SUR                  5       UR                  U5      S[        5       R                  5       0S.nUR                  S5      (       d  SUS'   U$ )Nr  Ú	DashboardÚPL)rî   ÚPlanÚStateÚQuarter_selectr  ÚReportsrî   Úbus_initrŒ  )	r  rî   r;   r  r  r#   r;  r�  r„  )r>   r.  Ú
q_settingsr:  r]   s        r?   r¥   ÚClient_Dashboard.summaryˆ  s‡   € ÜÓ!€*Ü‹Z�^‰^˜vˆ^Ð&€(àÜ
‹*×
!Ñ
! &Ó
)ØØ×&Ñ&Ó(Ø ×,Ñ,¨VÓ4àŒ‹×	Ñ	Ó	 ðñ	
€$ð �(‰(�:×
Ñ
Ø€4ˆ�=à	€+rA   rB   N)rC   rD   rE   rF   rY   rÌ   r¥   rG   rB   rA   r?   r‡  r‡  ‡  s   † ð˜ð  ÷ rA   r‡  c                   ój   • \ rS rSrS rSrS\S\S\4S jrS\	S\
4S jrS	 rSS\S\\   S\4S jjrSrg
)ÚUsersiš  r�   ÚuserÚpasswordrK   c                 ó˜   • U R                  5       U l        U R                  R                  SX/S9  U R                  5       =(       d    0 nU$ )NzUser=%s and Password=%sr¶   r¹   )r>   r”  r•  r{  s       r?   ÚauthÚ
Users.auth�  s<   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.Ð0¸°€.ÑGØ
‡o�oÓ×˜2€!Ø	
€(rA   ÚUserIDc                 óð   • U R                  5       U l        U R                  R                  SU/S9  SU R                  l        U R	                  5       =(       d    0 n[        UR                  S5      5      S:„  $ )Nrµ   r¶   Tr�   r   )rº   r»   r¼   rY  r½   r   r;   )r>   r™  r{  s      r?   Úcheck_businessÚUsers.check_business£  sZ   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�w f X€.Ñ.Ø€$‡'�'„-Ø
‡o�oÓ×˜2€!Ü	
ˆ1�5‰5�ÓÓ	  Ñ	"Ð"rA   c                 ó²   • [        UR                  S5      [        5      (       a)  [        R                  " UR                  SS5      5      US'   [        U5      $ )NÚGroupsrM   )Ú
isinstancer;   rX   r×   r   r   ra   s     r?   Úmk_rowÚUsers.mk_rowª  s?   € Ü�—‘˜Ó"¤3×'Ñ'Ü—M’M $§(¡(¨8°BÓ"7Ó8€4ˆ�>Ü	ˆT‹ÐrA   Nr·   r¸   c                 óÐ   • U R                  5       U l        U R                  R                  SS9  U(       a  U R                  R                  XS9  [	        U R                  5       5      $ )NzZUsers.*,(select Name from Business where Business.ID = Users.Business_ID) as Business_Namerd  r¶   )rº   r»   re  r¼   r�   r  rM  s      r?   r|   Ú	Users.all¯  sH   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.Ðt€.ÑuÞ
Ø‡7�7‡>�>˜€>Ñ*Ü	ˆd�k‰k‹mÓ	ÐrA   rÊ   rV  )rC   rD   rE   rF   rË   r  rX   rÌ   r—  rY   r  r›  r   r   r�   r|   rG   rB   rA   r?   r“  r“  š  sa   † Ø	€Ø€ð�Cð  ð ¨ô ð# ð #¨ô #òñ
�Cð  ¨$¡ð ¸÷ ð rA   r“  c                   óª   • \ rS rSr/ SQ/ SQ/ SQS.rSSSS.r/ SQrS	rS
 r\	S\
4S j5       r\	S\4S j5       r\	S\
4S j5       r\	S\4S j5       rSrg)Ú	Eval_Datai·  )
Ú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                 óZ   • [         R                  " SS5      (       a  SU l        g SU l        g )Nr   rï   rÅ  rÆ  )ÚrandomÚ	randrangeÚgenderr=   s    r?   Ú__init__ÚEval_Data.__init__â  s!   € Ü ×*Ò*¨1¨Q×/Ñ/�€$…+°X€$…+rA   rK   c                 óp   • U R                   [        R                  " S[        U R                   5      5         $ r_   )ÚdeptsrÍ  rÎ  r`   r=   s    r?   Ú
departmentÚEval_Data.departmentå  s&   € à	�‰”F×$Ò$ Q¤s¨4¯:©:£Ó7Ñ	8Ð8rA   c                 ó0   • [         R                  " SS5      $ )Nr   éC   )rÍ  rÎ  r=   s    r?   ÚageÚEval_Data.ageé  s   € ä	×	Ò	˜"˜RÓ	 Ð rA   c           	      ó&  • U R                   U R                     [        R                  " S[	        U R                   U R                     5      5         S-   U R                   S   [        R                  " S[	        U R                   S   5      5         -   $ )Nr   Ú rÄ  )ÚnamesrÏ  rÍ  rÎ  r`   r=   s    r?   rd   ÚEval_Data.nameí  s¦   € à	�‰�D—K‘KÑ	 ¤×!1Ò!1°!´C¸¿
¹
À4Ç;Á;Ñ8OÓ4PÓ!QÑ	RÐUXÑ	XÐ[_×[eÑ[eÐflÑ[mÔnt×n~Òn~ð  @Aô  BEð  FJ÷  FPñ  FPð  QWñ  FXó  BYó  oZñ  \[ñ  
[ð  [rA   c                 óŒ   • SnU R                   S    [        R                  " SU5       3S[        R                  " SU5       3S.$ )NrÇ  r   Úb)ÚheadrÈ  )rÏ  rÍ  rÎ  )r>   Úcs     r?   ÚprofileÚEval_Data.profileñ  sL   € à€!à�[‰[˜‰^ÐœV×-Ò-¨a°Ó2Ð3Ð
4ØŒf×Ò˜q Ó#Ð$Ð
%ñ
ð rA   )rÏ  N)rC   rD   rE   rF   rÜ  ÚprofilesrÓ  rÏ  rÐ  rì   rX   rÔ  rY   rØ  rd   rÌ   râ  rG   rB   rA   r?   r¥  r¥  ·  s¥   † ò
ò
òñ3%
€ðL �q Ñ"€Ú	8€Ø
€ò>ð ð9˜ó 9ó ð9ð ð!�#ó !ó ð!ð ð[�3ó [ó ð[ð ð�dó ó órA   r¥  c                   ó4   • \ rS rSr\S\S\S\4S j5       rSrg)ÚEmployee_Evaluationiù  r.  Ú
quarter_idrK   c                 óŠ   • [        5       nUUUR                  UR                  UR                  UR                  SS.nU " U5      $ )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  r0  ÚAgeÚ
DepartmentÚProfileÚPerformance)r¥  rd   rØ  rÔ  râ  )Úclsr.  rç  Úevr]   s        r?   ÚgenÚEmployee_Evaluation.genú  sF   € ô ƒ{€"àØØ
�'‰'Ø	�‰Ø—‘Ø�Z‰Zð \ñ
€$ñ 
ˆT‹ÐrA   rB   N)	rC   rD   rE   rF   ÚclassmethodrY   r   rï  rG   rB   rA   r?   ræ  ræ  ù  s)   † Øð�Cð  3ð ¨4ó ó órA   ræ  c                   ób   • \ rS rSrS rS\S\\   4S jrS\S\S\\   4S jr	S\S\S\4S jr
S	rg
)ÚEmployee_Evaluationsi
  r˜   rK   c                 ó”   • U R                  5       U l        U R                  R                  SU/S9  [        U R	                  5       5      $ r´   ©rº   r»   r¼   r�   r  r¾   s     r?   r;   ÚEmployee_Evaluations.get  s6   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.�w b T€.Ñ*Ü	ˆd�k‰k‹mÓ	ÐrA   r.  rç  c                 ó”   • U R                  5       U l        U R                  R                  SX/S9  [        U R	                  5       5      $ )Nr`  r¶   rõ  )r>   r.  rç  s      r?   Úget_quarterÚ Employee_Evaluations.get_quarter  s8   € Ø�L‰L‹N€$„'Ø‡'�'‡.�.Ð9ÀÐ@S€.ÑTÜ	ˆd�k‰k‹mÓ	ÐrA   c                 ó
   • 0 nU$ rƒ  rB   )r>   r.  rç  r]   s       r?   rï  ÚEmployee_Evaluations.gen  s   € Ø	€$Ø	€+rA   rÊ   N)rC   rD   rE   rF   rË   rY   r�   r   r;   rø  rï  rG   rB   rA   r?   ró  ró  
  sV   † Ø	€ð�ð ˜˜c™ô ð
˜Sð ¨Cð °D¸±Iô ð
�Sð  Cð ¨C÷ rA   ró  c                   ó"   • \ rS rSrS\4S jrSrg)rŽ  i  rK   c                 ón   • 0 n[        5       R                  5        H  nX!UR                  S5      '   M     U$ )Nr0  )r  r|   r;   )r>   r]   Úquarters      r?   ÚoutlookÚReports.outlook  s3   € Ø	€$Ü!Ó#×'Ñ'Ö)€gØ&ˆ�‰�FÓÓñ *à	€+rA   rB   N)rC   rD   rE   rF   rÌ   rÿ  rG   rB   rA   r?   rŽ  rŽ    s   † ð�d÷ rA   rŽ  c                   ó®  • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   S\S\4S jr\S\	4S	 j5       r
\S\	4S
 j5       r\S\	4S j5       r\S\	4S j5       r\S\	4S j5       r\S\4S j5       r\S\	4S j5       r\S\4S j5       rS\\	\4   4S jrS\\	\4   4S jrS\S\	4S jrS\	4S jrS\S\4S jrS rS\	S\	S\S\	4S jrS!S\4S jjrSrg )"ÚBase_Simulatori#  Úquarter_settingsÚ_global_settingsrþ  r  Ú_logc                 ól  • [        5       R                  5       R                  UR                  S5      5      =(       d    0 U l        [	        5       R                  5       U l        Xl        [        U5      U l        U R                  R                  S5      U l	        [        [        5      U l        [        UR                  S5      5      U l        [        U R                  R                  SS5      5      U l        [        U R                  [!        U R                  R                  S5      5      -  5      U l        [!        U R                  R                  S5      5      U l        [        U R'                  S5      5      U l        U R$                  U R(                  -  U l        [        U R                  R                  S5      =(       d    S5      U l        [        U R'                  S	5      5      U l        [1        U R'                  S
5      5      U l        [        U R                  R                  S5      5      U l        U R7                  5       u  U l        U l        [!        U R                  R                  S5      5      =(       d    SU l        [!        U R                  R                  S5      5      U l        [!        U R>                  U R<                  -   5      U l         SU l!        U RE                  U R>                  5      U l#        [        S5      U l$        [        U R                  R                  S5      5      U l%        [1        U R'                  S5      5      U l&        U RL                  U l'        U RQ                  U RJ                  [        U R'                  S5      5      U RN                  S9U l)         [U        U RR                  U RJ                  -  5      S-  U l+        [U        U RR                  U R4                  -  5      U l,        U R                  R                  SS5      U l-        U R]                  5         g !   SU l+         Nd= f)Nr  rÔ   rÛ   Ú
Labor_Costr¨   r	  ÚEmployee_SalesÚrdÚ	RD_MedianÚRD_ROIr¡   rÞ   r   rò   Ú	marketingÚMarketing_ROIÚMarketing_Median©r   rá   rB  rÕ   Ú
plant_sizerM   )/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Úotherrp  rw  rx  Úunits_totalry  Úcalc_prod_costÚ	prod_costrs  r  Úmarketing_roiÚmarketing_effÚcalc_effÚmarketing_salesÚroundÚmarketing_resultÚmarketing_unitsr  Úcalc_revenue)r>   rþ  r  s      r?   rÐ  ÚBase_Simulator.__init__*  s  € Ü*Ó,×2Ñ2Ó4×8Ñ8¸¿¹À\Ó9RÓS×YÐWY€$ÔÜ)Ó+×1Ñ1Ó3€$ÔØ„,Ü˜3Ó€$„(Ø—‘—‘˜iÓ(€$„,Üœ$Ó€$„)Ü�3—7‘7˜9Ó%Ó&€$„,Ü�d×+Ñ+×/Ñ/°¸TÓBÓC€$„/Ü�—‘¤1 T§\¡\×%5Ñ%5°kÓ%BÓ#CÑCÓD€$„*Ü�T—\‘\×%Ñ% kÓ2Ó3€$„.Ü˜dŸl™lÐ+;Ó<Ó=€$ÔØŸ™¨×)@Ñ)@Ñ@€$Ôä�D—L‘L×$Ñ$ TÓ*×2¨dÓ3€$„-Ü�T—\‘\ +Ó.Ó/€$„.Ü�4—<‘< Ó)Ó*€$„,Ü�—‘×!Ñ! 'Ó*Ó+€$„*ð "Ÿ_™_Ó.Ñ€$„*ˆTŒ]Ü˜Ÿ™Ÿ™ gÓ.Ó/×4°1€$ÔÜ˜$Ÿ,™,×*Ñ*¨7Ó3Ó4€$ÔÜ�t×*Ñ*¨T×-?Ñ-?Ñ?Ó@€$ÔØ€$„/à×&Ñ& t×':Ñ':Ó;€$„.Ü�4“€$„,ä�T—\‘\×%Ñ% kÓ2Ó3€$„.Ü˜Ÿ™ oÓ6Ó7€$ÔØ×*Ñ*€$ÔàŸ™¨T¯^©^Ä1ÀTÇ\Á\ÐRdÓEeÓCfÐlp×l~Ñl~˜Ð€$ÔðÜ  ×!5Ñ!5¸¿¹Ñ!FÓGÈ#ÑM€4Ôô ˜t×3Ñ3°d·j±jÑ@ÓA€$ÔØ×)Ñ)×-Ñ-¨l¸2Ó>€$„/Ø×ÑÕøð	Ø€4Öús   Î%*P( Ð(	P3rK   c                 óF   • [        U R                  U R                  -  5      $ rƒ  )r   r  rx  r=   s    r?   Ú
manuf_costÚBase_Simulator.manuf_costX  s   € ä	
ˆ4�>‰>˜D×/Ñ/Ñ/Ó	0Ð0rA   c                 óp   • [        U R                  5      n[        UR                  5       =(       d    S5      $ )Nr¨   )rÐ   r  r   rØ   )r>   r  s     r?   r  ÚBase_Simulator.unit_cost\  s)   € ä�d—h‘hÓ€#Ü	�×"Ñ"Ó$×,¨Ó	-Ð-rA   c                 óN   • U R                  5       u  pU=(       d    [        S5      $ r_   )r  r   )r>   r   Ú_s      r?   Údilemma_costÚBase_Simulator.dilemma_costa  s   € à�?‰?Ó�&€$Ø	×	”˜“ÐrA   c                 óì   • U R                   R                  S5      =(       d    Sn [        5       R                  U5      n[	        U5      $ ! [
         a  n[        SUS9  [	        S5      s S nA$ S nAff = f)NÚoverheadrM   zTroubling finding fixed costr“   r   )rþ  r;   r9   r   r   rp   r   )r>   Útierr   rr   s       r?   Ú
fixed_costÚBase_Simulator.fixed_costf  s]   € à
�,‰,×
Ñ
˜:Ó
&×
,¨"€$ðÜ
‹*�/‰/˜$Ó
€4Ü
ˆD‹'€>øÜ	ó ÜÐ-°4Ò8Ü
ˆA‹$…;ûðús   ¦#A
 Á

A3ÁA.Á(A3Á.A3c                 ó  • U R                   R                  S5      S:X  a  [        S5      $ U R                   R                  S5      S:X  a  [        S5      $ U R                   R                  S5      S:X  a  [        S5      $ [        S5      $ )	Nr  ÚSmalliè  ÚMediamr%   ÚLarger   r¨   )r  r;   r   r=   s    r?   Ú
plant_costÚBase_Simulator.plant_costp  sq   € à	×Ñ×Ñ˜|Ó,°Ó7Ü
ˆE‹(€?Ø×Ñ× Ñ  Ó.°(Ó:Ü
ˆE‹(€?Ø×Ñ× Ñ  Ó.°'Ó9Ü
ˆE‹(€?Ü	
ˆ4‹€.rA   c                 óv   • U R                   U R                  U R                  U R                  U R                  S.$ )N)z
Labor CostzProduction CostrË  ÚFixedÚOther)r  r  r  r3  r.  r=   s    r?   rt  ÚBase_Simulator.expense_listz  s3   € ð —
‘
Ø—^‘^Ø�~‰~Ø�?‰?Ø×Ññ
ð rA   c                 ó^   • [        U R                  R                  5       5      n[        U5      $ rƒ  )Úsumrt  Úvaluesr   )r>   rä   s     r?   rè   ÚBase_Simulator.expenses„  s$   € ä
ˆd×Ñ×&Ñ&Ó(Ó
)€%Ü	
ˆ5‹€/rA   c                 ó˜   • U R                   nU R                  nU R                  nU R                  XUS9n[	        [        XB-  5      S5      $ )Nr  rÝ   )r  r  r  r   r"  r   )r>   Úspendrá   rB  Úresults        r?   Úrd_effÚBase_Simulator.rd_eff‰  sC   € à
�-‰-€%Ø�>‰>€&Ø	�‰€$Ø�=‰=˜u¸ˆ=Ð=€&Ü	Œq�‘Ó! !Ó	$Ð$rA   c                 óœ  • [        U R                  R                  S5      =(       d    S5      n[        U R                  R                  S5      =(       d    S5      n[	        S5      nSnSnU HC  n U[        5       R                  XbU   S9-  nU[        5       R                  XbU   S9-  nUS-  nME     X44$ ! [         a  n S nAMZ  S nAff = f)Nr<   rM   ri   r   )ri   rj   rï   )	r   r  r;   rþ  r   r<   r   rv   rp   )r>   rx   Úactionsr   rv   r   ri   rr   s           r?   r  ÚBase_Simulator.calc_other’  s¿   € Ü�T×*Ñ*×.Ñ.¨zÓ:×@¸bÓA€(Ü�T—\‘\×%Ñ% iÓ0×6°BÓ7€'Ü	
ˆ1‹€$Ø€"Ø€!Û€gð	ØŒH‹J�O‰O G¸1±:ˆOÐ>Ñ>€DØŒ(‹*�-‰- °q©zˆ-Ð
:Ñ:€BØ€q�D‚Añ ð 
ˆ€.øô ó 	Ýûð	ús   Á0?B6Â6
CÃCc                 óî  • [        U R                  R                  S5      5      n[        U R                  R                  S5      5      nSnSnSnU R                  R                  S5      =(       d    /  Hs  n[        R                  U0 5      R                  S0 5      R                  X#   5      n[        SUS9  U(       d  MM  XGR                  S5      -  nXWR                  S5      -  nMu     [        U5      U4$ )	Nri   r   r<   r#   zFound detailr“   r   r    )r   rþ  r;   r  rf   r   r   )r>   rx   Úrespr   rä   rv   Úproblemr   s           r?   Úcalc_other_oldÚBase_Simulator.calc_other_old¤  sÒ   € Ü�T—\‘\×%Ñ% iÓ0Ó1€(Ü	�—‘×!Ñ! )Ó,Ó	-€$Ø€!Ø
€%Ø€"Ø×&Ñ&×*Ñ*¨:Ó6×<¸"Ò<€gÜ�L‰L˜ Ó$×(Ñ(¨°2Ó6×:Ñ:¸4¹7ÓC€6Üˆ~ 6Ò*ß€fØ	�Z‰Z˜ÓÑ€EØ�*‰*�[Ó
!Ñ!‚Bñ =ô 
�‹˜Ð	ÐrA   rò   c                 ó0   • [        XR                  -  5      $ rƒ  )r   r  )r>   rò   s     r?   r  ÚBase_Simulator.calc_prod_cost³  s   € Ü	
ˆ5—>‘>Ñ!Ó	"Ð"rA   c                 ó"  • [        SU R                  S9  [        [        U R                  U R
                  -  5      5      nXR                  :”  a  U R                  U l        OXl        U R
                  U R                  -  U l        U R                  $ )NzCalc Units Totalr“   )r   r  r   r"  r!  r¡   ry  rs  )r>   Ú	potentials     r?   r%  ÚBase_Simulator.calc_revenue¶  sm   € ÜÐ  d×&6Ñ&6Ò7Ü”�d×*Ñ*¨T¯Z©ZÑ7Ó8Ó9€)à×!Ñ!Ó!Ø×%Ñ%€4…?à„?à—‘˜dŸo™oÑ-€$„,Ø	�‰ÐrA   rJ   r~   c                 ó@   • U R                   U   R                  U5        g rƒ  )r  r{   )r>   rJ   r~   s      r?   ÚlogÚBase_Simulator.logÂ  s   € Ø‡)�)ˆC�.×Ñ˜ÕrA   c                 ó,  • Sn[        5       nUR                  U R                  R                  SS5      5      n[        R
                  " X0R                  5      nUS-  U-  nUS:  a  U* nUS-  nUS-  nUS:  a  Sn[        SUU R                  UUS.S	9  U$ )
Nr(   rÔ   rM   rÕ   r‘   g      ø?z	Price Eff)rá   r¡   ÚdeltaÚeffr“   )r›   r«   r  r;   r×   Úchanger¡   r   )r>   Úmax_effr£   rá   rY  rZ  s         r?   Úcalc_price_effÚBase_Simulator.calc_price_effÅ  s    € Ø€'ÜÓ€(Ø× Ñ  §¡§¡¨i¸Ó!;Ó<€&Ü
�,Š,�vŸj™jÓ
)€%à
�‰)�wÑ	€#àˆ2ƒXØ
ˆ€3àˆ�(€#Øˆ�)€#àˆ"ƒWØ	€3äˆkØØ�:‰:ØØ	ñ	 ò ð 
€*rA   r   rá   rB  c           	      óž  • U R                  5       n[        US-  5      n[        U5      nSnSnSn	US:”  aJ  Xe:  a  UnUS-  U-   n
[        XZ-  5      nX›-  n	Xe-  nUS:  a  SnXx-  nUS:”  a  SnSnUS:  a  SnUS:”  a  MJ  [        U R                  R                  S5      5      S-  nU	nXœ-  n	X™U-  -   n[        S	UU	UUUS
.S9  [        U5      $ )Nr   éU   rÇ  r¨   rÕ   r   r‘   ÚEconomic_StrengthzPrice Efficiency)Úototalrä   ÚstrengthÚ	eff_totalÚ	price_effr“   )r]  r   Úabsr   r  r;   r   r   )r>   r   rá   rB  re  Úc_sizer{  rZ  Úincrä   Úeff_rateÚcvalrc  rb  rd  s                  r?   r   ÚBase_Simulator.calc_effÞ  s  € Ø×!Ñ!Ó#€)Üˆf�r‰kÓ€&Üˆƒh€!Ø
€#Ø	€#Ø
€%Ø	ˆD‹ØƒjØ€Fà�3‰w˜$Ñ€8Ü
ˆfÑÓ
 €4Ø�=€5Ø�9€1àˆ!ƒeØ	€Aà�8€3Ø	ˆ#ƒgØ
€CØ
€Cà	ˆBƒhØ
€Cð% 	
ˆD�ô* ˆt×$Ñ$×(Ñ(Ð)<Ó=Ó>ÀÑD€(Ø€&ØÑ€%Ø˜Y‘Ñ'€)ÜÐ ØØØØØñ'ò ô 
ˆ9‹ÐrA   c                 óV   • U R                   R                  X5      R                  S5      $ )Nr   )r  r;   )r>   rJ   Údefaults      r?   r  ÚBase_Simulator.globals  s$   € Ø	×	Ñ	×	"Ñ	" 3Ó	/×	3Ñ	3°GÓ	<Ð<rA   )r  r  r  rß   r  r  r	  r  r  r  r#  r  r!  r$  r  r  rp  r¡   r  r�   rþ  r  r  r  r  rs  rw  rx  ry  r  r  NrU  ) rC   rD   rE   rF   rÌ   rŒ   rÐ   rÐ  rì   r   r(  r  r.  r3  r9  rt  rè   rA  rF  ÚtuplerY   r  rN  r  r%  rX   r   rV  r]  r   r  rG   rB   rA   r?   r  r  #  s�  ‡ ØÓØÓØ	ƒØ	ƒØ
ƒð(˜4ð ( Mô (ð\ ð1˜ó 1ó ð1ð ð.˜ó .ó ð.ð ð˜7ó ó ðð ð˜ó ó ðð ð˜ó ó ðð ð˜4ó ó ðð ð�wó ó ðð ð%�Uó %ó ð%ð˜˜w s˜{Ñ+ô ð$˜U 7¨3 ;Ñ/ô ð#˜sð # wô #ð
˜7ô 
ð�#ð ˜#ô òð2'˜ð '¨ð '°Uð '¸wô 'ñR= S÷ =ð =rA   r  c                   ó:   ^ • \ rS rSrS\S\4U 4S jjrS rSrU =r$ )ÚQ_Simi
  rþ  r  c                 ó    >• [         TU ]  XS9  g )N©rþ  r  )rÇ   rÐ  )r>   rþ  r  rÈ   s      €r?   rÐ  ÚQ_Sim.__init__  s   ø€ Ü�'Ñ˜7ÐÒ+rA   c           
      ó°  • U R                   U R                  -
  U R                  -   nU R                  U R                  -
  nU R
                  R                  SS5      n[        5       R                  X#US9n0 SU_SU R                  _SU R                  U R                  U R                  S._SU R                  U R                  [        U R!                  S5      5      [#        U R!                  S	5      5      U R$                  S
._SU R                  _SU R&                  _SU R                  _SU R(                  _SU R                   _SU R                   U R                  -
  _SU R                   U R                  -
  U R                  -   _SU R                  _SU_SU R*                  _SU R,                  _SU R.                  _SU R                  _U R0                  UUS.E$ )NrÔ   rM   ©rò   r�   rß   rp  Úlabor)r	  Ú
labor_costÚsalesr  r  r  )rD  rZ  rá   Úceofry  r  r¡   rè   rt  rs  rz  rß   rq  rr  r(  r  rx  ry  )ru  rw  ro  )rs  rè   rß   r  ry  r  r;   rî   rù   rp  r	  r  r  r  r#  r   r  r   r!  r¡   rt  r(  r  rx  rw  )r>   rß   rw  r�   ro  s        r?   rn  Ú
Q_Sim.calc  sñ  € Ø�\‰\˜DŸM™MÑ)¨T¯\©\Ñ9€'Ø×"Ñ" T§_¡_Ñ4€-Ø�H‰H�L‰L˜ 2Ó&€'ä“
×+Ñ+°MÐZaÐ+Ðb€+ð
ØˆWð
àˆd�m‰mð
ð Ø—‘Ø—‘Ø×Ññð
ð Ø�N‰NØ
×
Ñ
Üˆt�|‰|Ð.Ó/Ó0ÜˆT�\‰\˜/Ó*Ó+Ø× Ñ ñð
ð ˆ4�:‰:ð
ð  ˆ4�:‰:ð!
ð" ˆd�m‰mð#
ð$ �$×#Ñ#ð%
ð& ˆT�\‰\ð'
ð( ˆD�L‰L˜4Ÿ=™=Ñ(ð)
ð* ˆd�l‰l˜TŸ]™]Ñ*¨d¯l©lÑ:ð+
ð, �4—<‘<ð-
ð. �ð/
ð0 �—‘ð1
ð2 ˆt�~‰~ð3
ð4 �D×'Ñ'ð5
ð6 �—‘ð7
ð8 ×+Ñ+Ø Øò=
ð rA   rB   )	rC   rD   rE   rF   rÌ   rÐ  rn  rG   rÍ   rÎ   s   @r?   rq  rq  
  s    ø† ð,˜4ð , D÷ ,÷%ð %rA   rq  c                   óT   • \ rS rSrS\4S jrS\S\4S jrSS\S	\	\   S\4S
 jjr
Srg)ÚSimi6  Úbusinessc                 ó¶   •  [        U5      n[        UR                  5      nUS-  nUS:”  a  U$ g! [         a  n[	        SUS9  [	        SUS9   S nAgS nAff = f)Nr÷   r   rp   r“   zTrouble with calc stockr‘   )rÐ   r   rå   rp   r   )r>   r~  r  r~   Ústockrr   s         r?   Ú
calc_stockÚSim.calc_stock7  s_   € ðÜ	�xÓ	 €3Ü	
ˆ3�?‰?Ó	€3Ø�‰;€5àˆaƒiØ€Làøä	ó Üˆ{ Ò"ÜÐ(¨hÒ7Ü
ûðús   ‚,0 °
AºAÁAr  rK   c                 ó¬   • Sn [        US   5      S:”  d   S5       e[        [        US   5      5      n[        U5      $ ! [         a
  n S nAgS nAff = f)Nr   Ú	PR_ScoreszNo PR Scores)r`   r   r@  rp   )r>   r  rv   rr   s       r?   Úpr_avgÚ
Sim.pr_avgG  s\   € Ø€"ðÜ
ˆc�+ÑÓ
 Ó
!Ð1 >Ó1Ð
!Ü	Œ#ˆc�+ÑÓ
Ó €2ä
ˆB‹%€<øÜ	ó Ûà	
ûðús   „:? ¿
AÁANÚtestr.  c                 ó  • SSK Jn  Un0 n[        5       R                  5       n[	        5       nUR                  5       n[        5       n	/ n
U He  nU" X‹   R                  S5      5      =(       d!    UR                  S0 5      R                  S5      X‹   S'   SX‹   S'   SX‹   S	'   SX‹   S
'   / X‹   S'   Mg     [        5       R                  5       nU GHÄ  nUR                  S5      nUR                  U5      =(       d    0 n[        XÞS9R                  5       nXýS'   U(       d™  X‚   R                  SS5      n[        UR                  S5      5      nU" UR                  S5      5      n[	        5       R                  UUUS9US   S'   U	R                  UR                  S5      [         R                  " U5      S.S9  UR                  S5      nX‚   R                  S/ 5        X‚   S   R                  U5        X‚   R                  SU" S5      5        X‚   R                  SU" S5      5        X‚   R                  SU" S5      5        X‚   R                  SU" S5      5        X‚   S==   U" US   R                  SS5      5      -  ss'   X‚   S==   U" US   R                  SS5      5      -  ss'   X‚   S==   [        UR                  S5      5      -  ss'   X‚   S==   [        UR                  S5      5      -  ss'   UR                  S5      X‚   S'   UR                  S5      X‚   S'   X‚   S	==   UR                  S 5      -  ss'   X‚   S   R                  UR                  S 5      5        U
R                  U5        [!        S!UR                  U5      S"9  GMÇ     U(       dl  UR#                  5        HX  u  nnU R%                  US#9nUR                  UUU R'                  U5      UR                  S5      UR                  SS5      S$.S9  MZ     X¨S%.$ )&Nr   rÓ   rÜ   rü   r   rÛ   r¨   rÞ   rý   rþ   r„  r�   rs  rn  rÔ   rM   rw  rß   rv  ro  r˜   )r˜   rn  r*  ÚquartersÚ	rev_totalÚexpense_totalry  Ú
units_maders  rè   rx  rp  zUpdating Businessr“   )r~  )r˜   rþ   rý   rÞ   rÛ   )ÚsimsÚ	bus_cache)r×   r   r›   r±   rî   r  r;   r|   rq  rn  r   rù   rÿ   ÚtoJSONÚ
setdefaultr{   r   rz   r�  r…  )r>   r‡  r.  r   Úpbus_idr]   Ú	gsettingsr~  rŽ  r‰  r�  Úcb_idÚq_allrþ  r:  rn  r�   rò   rß   r  r  r€  s                         r?   r‰  ÚSim.quartersS  sÙ  € ÝØ€'Ø	€$ÜÓ×%Ñ%Ó'€)Ü‹Z€(ð �n‰nÓ€)Ü‹Z€(Ø	€$ã€eÙ!" 9Ñ#3×#7Ñ#7¸Ó#?Ó!@×!tÀIÇMÁMÐRcÐdfÓDg×DkÑDkÐlsÓDt€9Ñ�IÑØ#€9Ñ�GÑØ"#€9Ñ�JÑØ%&€9Ñ�MÑ"Ø#%€9Ñ�KÓ ñ ô ‹*�.‰.Ó
€%Ü€gØ�K‰K˜Ó&€6Ø�m‰m˜FÓ#×) r€8Ü
˜Ñ
-×
2Ñ
2Ó
4€4Øˆ6�?Þ
ØÑ×#Ñ# I¨bÓ1€GÜˆd�h‰h�Ó'Ó(€EÙ�—‘˜Ó#Ó$€GÜ%-£Z×%@Ñ%@ÀuÐU\ÐelÐ%@Ð%m€GˆF�O�MÑ"Ø‡O�O˜wŸ{™{¨4Ó0¼¿ºÀTÓ8JÑK€OÑLà	�‰�TÓ	€3ØÑ×Ñ 
¨2Ô.ØÑ�ZÑ ×'Ñ'¨Ô0àÑ×Ñ ©A¨a«DÔ1ØÑ×Ñ ±°!³Ô5ØÑ×Ñ ©Q¨q«TÔ2ØÑ×Ñ ©Q¨q«TÔ2àÑ�[Ó!¡A g¨f¡o×&9Ñ&9¸)ÀDÓ&IÓ$JÑJÓ!ØÑ�_Ó%©¨'°&©/×*=Ñ*=¸jÈÓ*NÓ(OÑOÓ%ØÑ�\Ó"¤a¨¯©°Ó(>Ó&?Ñ?Ó"ØÑ�\Ó"¤a¨¯©Ð1AÓ(BÓ&CÑCÓ"Ø $§¡¨Ó 9€9Ñ�WÑØ"&§(¡(¨9Ó"5€9Ñ�YÑàÑ�ZÓ  D§H¡H¨ZÓ$8Ñ8Ó ØÑ�[Ñ!×(Ñ(¨¯©°*Ó)=Ô>à‡;�;ˆtÔäÐ"¨	¯©°gÓ(>Õ?ñC öF 
Ø—_‘_Ö&�z€vˆcØ�O‰O SˆOÐ)€EØ‡O�O˜v°EÀdÇkÁkÐRUÓFVÐ`c×`gÑ`gÐhoÓ`pÐ|÷  }Dñ  }Dð  ENð  OSó  }Tñ  U€Oó  Vñ 'ð Ñ	,Ð,rA   rB   )FN)rC   rD   rE   rF   rÌ   r�  rY   r…  r  r   r‰  rG   rB   rA   r?   r}  r}  6  sI   † ð˜dô ð 
�Tð 
˜cô 
ñE-˜ð E-¨(°3©-ð E-À÷ E-ð E-rA   r}  c                 ó   • S nU$ )Nc                  óŠ   • UR                  S5      nUR                  S5      nSSU SU 3S.n[        R                  " SUS9  U$ )	Nr�   Úlevelr   zUser z is not )r  ÚmessageÚResponser“   )r;   r×   r   )ÚargcÚargvr”  r˜  Úresponses        r?   r™  Úauth_failed.<locals>.message›  sH   € Ø	�‰�&Ó	€$Ø
�(‰(�7Ó
€%Ø U¨4¨&°¸¸Ð#@ÑA€(Ü‡+‚+�J HÒ-Ø	€/rA   rB   )Úfuncr™  s     r?   Úauth_failedr   š  s   € òð 	€rA   r˜  c                 óV   • [         R                  " SSU 0S9  SnS nUS:X  a  U$ [        $ )Nz	Auth argsÚLevelr“   ÚBrentac                 ó   ^ • U 4S jnU$ )Nc                  óD   >• [         R                  " SXS.S9  T" U 0 UD6  g )NÚinside)r›  rœ  r“   )r×   r   )r›  rœ  rŸ  s     €r?   ÚwrapperÚ(auth.<locals>.grab_func.<locals>.wrapper¨  s!   ø€ Ü‡;‚;�X¨4Ñ#<Ò=ÙˆÐ�ÓrA   rB   )rŸ  r§  s   ` r?   Ú	grab_funcÚauth.<locals>.grab_func§  s   ø€ õð 
€.rA   ÚBrent)r×   r   r   )r˜  r”  r©  s      r?   r—  r—  £  s3   € Ü‡‚�; W¨U OÒ4Ø€òð
 	ˆGƒOØ	Ðä	ÐrA   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Œ   rO   rf   r6   r9   r<   rY   r–   r™   r›   rÐ   rî   r  r  r�  r‡  r“  r¥  ræ  ró  rŽ  r  rq  r}  r   rX   r—  Ú	BW_ConfigrB   rA   r?   Ú<module>r´     s(  ðß .Ô .Ý %ß )Ñ )Ý #Ý Û ß .× .Ñ .ß Ý Û Û Ø˜4  S˜=Ñ)€€YÓ )ð 4ð  >lð  uzð  DGð  OSñ  TØ
,ð  7}ð  FNð  XYð  afñ  gØ
&ð  1ð  HNð  XZð  bgñ  hð€ð kð Øñvð
 ØñQð
 ØñUññð$ að Øñ1ð
 Øñ]ð
 Øñ0ññð$ Qð Øñ!ð
 Øñ5ð
 Øñ7ññð$ Ið Øñ ð
 ØñNñ	ñð Ið Øñ5ð
 Øñ7ñ	ñð kð Øñ/ð
 ØñIð
 Øñññð$ ið Øñ&ð
 Øñ.ð
 Øñññð$ Xð Øñ/ð
 Øñ$ð
 Øñññð$ xð Øñ=ð
 Øñ#ð
 Øñññð$ Zð Øñ1ð
 Øñ>ð
 ØñSññð$ Wð Øñ1ð
 Øñtð
 Øñ-ñññGt€÷lñ ÷ñ ÷$?ñ ?ðB�#ô ð�3ô ô'$�eô '$ôR"�Dô "ôHKˆuô KôZj�uô jôXGˆuô G÷Rñ ô�uô ô&ˆEô ÷:@ñ @ôD˜$ô ô"˜5ô ÷$ñ ÷e=ñ e=ôN*ˆNô *ôXb-ˆ%ô b-òHðˆsô ð ˆ5ð�	rA   