a
    ŽiŒœ  ã                   @   s¦   d Z ddlZddlZddlmZmZmZ G dd„ dƒZddd	„Zdd
d„Z	ddd„Z
d dd„Zd!dd„Zd"dd„Zd#dd„Zd$dd„Zd%dd„Zd&dd„Zg d¢ZdS )'a¨  
Physical Activity Events
Activity events focused on physical fitness and sports (ages 6-100)

Events:
- joinSoccerTeam: Join soccer team with practice schedule (ages 6-18)
- soccerProgress: Progress event for soccer team members
- learnMartialArts: Sign up for martial arts classes (ages 6-40)
- martialArtsProgress: Progress event for martial arts students
- runningHabit: Start a running routine (ages 12-70)
- runningProgress: Progress event for runners
- joinGym: Join a gym with membership options (ages 16-100)
- gymProgress: Progress event for gym members
- yogaClass: Try yoga with regular class option (ages 14-100)
- yogaProgress: Progress event for yoga practitioners
é    N)ÚmessageFunctionÚquestionFunctionÚanswerOptionc                   @   s   e Zd ZdZddd„ZdS )ÚPhysicalActivityaZ  
    Physical activity definition (similar to ExtraCurricular)

    Attributes:
        id: Unique identifier
        title: Activity name
        type: Activity type ('physical_activity')
        focus: Default focus type
        description: Description of the activity
        energyModifier: Energy cost
        image: Optional image URL
    Nc                 C   s4   t  ¡ j| _|| _|| _d| _|| _|| _|| _	d S )NZphysical_activity)
ÚuuidÚuuid4ÚhexÚidÚtitleÚimageÚtypeÚfocusÚdescriptionÚenergyModifier)Úselfr
   r   r   r   r   © r   ú;/var/www/lichun.app/lichun/ws/events/activities/physical.pyÚ__init__(   s    zPhysicalActivity.__init__)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s   r   ÚmessageFc                 C   sè  ddl m}m}m} d}tdd„ | jjD ƒƒ}|| jvop| op| jjdkop| jjdkop| jj	dkopd	t
 
¡ d
 k}	d}|dkr´tdddd�tddd�tdddd�g}
t||| |	|
ƒS |dk�rä|d dk�rŒ| j jd7  _| j jd8  _| j jd7  _tddddd�}| jj |¡ | jj ||j|j| jƒ¡ | jj || jdg d¢d| jj t
 d d!¡d"�¡ dd#lm} || jƒ | j d$¡ nX|d dk�rÈ| j jd7  _| j jd8  _| j d%¡ n| j jd8  _| j d&¡ d'S )(z3Join soccer team with practice schedule (ages 6-18)r   )Ú	schedulerÚActivityRecordÚ
find_whereÚjoinSoccerTeamc                 s   s   | ]}t |d dƒdkV  qdS )r
   NúSoccer Team©Úgetattr©Ú.0Úactivityr   r   r   Ú	<genexpr>9   s   ÿz!joinSoccerTeam.<locals>.<genexpr>é   é   Ústudenté   éè  z'Would you like to join the soccer team?ÚanswerzYes, join the team!Újoiné
   ©ÚdataÚ
energyCostzNo, not interestedÚno©r-   zTry out and seeÚtryouté   r-   é   r   ÚBalancedz2School soccer team with regular practice and games©r
   r   r   r   zSoccer Practice)ú
twice-weekÚ	afternoonÚweekdayÚschoolé   é<   ©ÚlocationÚduration©ÚgetPeakEnergyz5You joined the soccer team! Practice is twice a week.z'You tried out for the team and had fun!z(You decided not to join the soccer team.N)Ú	functionsr   r   r   ÚanyÚcÚ
activitiesÚaskedQuestionsÚageYearsÚ
occupationÚrandomr   r   ÚsocialÚenergyÚhealthr   ÚappendÚactivityRecordsr	   r   ÚdateÚ	schedulesÚrandintÚstats.stats_managerr@   ÚmessageQueueÚ	happiness)Úplayerr   r   Úresponser   r   r   ÚfnameÚalready_memberÚcheckÚanswerOptionsÚsoccer_activityr@   r   r   r   r   2   sp    þ
ÿ
þ
ý
üû
ý
üÿ

ûÿ
r   c                 C   sš  ddl m} d}d}| jjD ]}t|ddƒdkr|} q:qd}|rd| jjD ]}	|	j|jkrJ|	} qdqJ|| jvo¤|duo¤|duo¤| jjdko¤| jjdko¤d	t	 	¡ d
 k}
|
s®dS |j
}|j}|dk �r²d}|dk�rtdddd�tddd�tddd�g}t||| |
|ƒS |dk�r–|d dk�rZ| j
d7  _
| j jd8  _| j jd7  _| j d¡ nT|d dk�r”| j
d7  _
| j jd7  _| j d¡ n| j
d7  _
| j d¡ �nä|dk�rªd}|dk�rþtdd d!d�td"d#d�td$d%d�g}t||| |
|ƒS |dk�r–|d d k�rR| j
d7  _
| j jd!8  _| j jd7  _| j d&¡ nV|d d#k�rŒ| j
d7  _
| j jd7  _| j d'¡ n| j jd7  _| j d(¡ nìd)}|dk�rìtd*d+d�td,d-dd�td.d/d�g}t||| |
|ƒS |dk�r–|d d+k�r0| j
d7  _
| j jd7  _| j d0¡ nf|d d-k�rz| j
d7  _
| j jd8  _| j jd7  _| j d1¡ n| j jd7  _| j d2¡ dS )3z&Progress event for soccer team membersr   )r   ÚsoccerProgressNr
   r   r$   r%   r'   éô  r:   zJYou're struggling at soccer practice. Your teammates are way ahead of you.r)   zPractice harder!Úpracticer3   r,   zAsk coach for tipsZcoachr0   zJust do your bestÚacceptr-   r2   z:You put in extra practice time. Your skills are improving!r+   zAThe coach gives you some helpful pointers. You're getting better!z8You accept your current level and just have fun playing.éF   z;You're becoming one of the best players on the soccer team!zTrain even harder!Útrainé   zHelp weaker teammatesÚhelpzEnjoy the successZenjoyz3Your dedication pays off! You're now a star player!zHHelping your teammates makes everyone better. You're a true team player!z/You enjoy being good at soccer. It feels great!z=Soccer practice is going well. You're making steady progress.zFocus on teamworkZteamzWork on skillsZskillszJust have funZfunz2Working with your team improves your coordination!z0Extra drills pay off. Your skills are improving!z(Soccer is fun! You enjoy every practice.)rA   r   rC   rD   r   rM   r	   ÚeventsrF   rH   Úperformancer   r   r   rJ   rK   rR   rL   rI   rS   )rT   r   r   rU   r   rV   rZ   r"   Úactivity_recordÚrecordrX   rd   r   rY   r   r   r   r[   ~   s®    
ÿþ
ý
üû



ý




ý



ý
r[   c                 C   sØ  ddl m}m} d}tdd„ | jjD ƒƒ}|| jvo`| o`| jjdko`| jjdko`dt ¡ d	 k}d
}|dkr¤t	ddddd�t	ddd�t	ddd�g}	t
||| ||	ƒS |dk�rÔ|d dk�rŒ| j jd8  _| j jd7  _| j jd7  _| j jd8  _tddddd�}
| jj |
¡ | jj ||
j|
j| jƒ¡ | jj || jdddgd | jj t dd!¡d"�¡ dd#lm} || jƒ | j d$¡ nH|d dk�r¸| j jd%7  _| j d&¡ n| j jd%8  _| j d'¡ d(S ))z,Sign up for martial arts classes (ages 6-40)r   ©r   r   ÚlearnMartialArtsc                 s   s   | ]}t |d dƒdkV  qdS )r
   NúMartial Artsr   r    r   r   r   r#   î   s   ÿz#learnMartialArts.<locals>.<genexpr>r$   é(   r'   r(   z>A martial arts dojo is offering beginner classes. Want to try?r)   zYes, sign up!Zsignupr3   éd   )r-   r.   Ú	moneyCostz	No thanksr/   r0   zWatch a class firstZwatchr-   r+   ri   ú	Work Hardz*Martial arts training with regular classesra   r5   zMartial Arts Classr6   ÚeveningZdojor;   r<   r?   z=You signed up for martial arts classes! Training begins soon.r2   z-You watched a class and found it interesting!z1You decided martial arts isn't for you right now.N)rA   r   r   rB   rC   rD   rE   rF   rH   r   r   rJ   rK   rS   Úmoneyr   rL   rM   r	   r   rN   rO   rP   rQ   r@   rR   rI   )rT   r   r   rU   r   r   rV   rW   rX   rY   Úmartial_arts_activityr@   r   r   r   rh   ç   sl    þ
ÿ
þ
ýü

ý
üÿ

ûÿ
rh   c                 C   s¨  d}d}| j jD ]}t|ddƒdkr|} q.qd}|rX| j jD ]}|j|jkr>|} qXq>|| jvo˜|duo˜|duo˜| j jdko˜| j jdko˜dt ¡ d k}	|	s¢dS |j}
|
d	k �ržd
}|dkròt	dddd�t	ddd�t	ddd�g}t
||| |	|ƒS |dk�r¤|d dk�rF| jd7  _| j  jd8  _| j  jd7  _| j d¡ nT|d dk�r€| jd7  _| j  jd7  _| j d¡ n| jd7  _| j d¡ �n|
dk�r¨d}|dk�rìt	ddd d�t	d!d"dd�t	d#d$d�g}t
||| |	|ƒS |dk�r¤|d dk�r@| jd%7  _| j  jd 8  _| j  jd%7  _| j d&¡ nf|d d"k�rŠ| jd7  _| j  jd8  _| j  jd'7  _| j d(¡ n| j  jd7  _| j d)¡ nüd*}|dk�rìt	d+d,dd�t	d-d.d�t	d/d0d%d�g}t
||| |	|ƒS |dk�r¤|d d,k�r@| jd7  _| j  jd8  _| j  jd%7  _| j d1¡ nd|d d.k�rz| jd27  _| j  jd%7  _| j d3¡ n*| jd%7  _| j  jd%8  _| j d4¡ dS )5z(Progress event for martial arts studentsÚmartialArtsProgressNr
   ri   r$   rj   r'   r\   r:   zNThe martial arts forms are harder than you expected. You keep making mistakes.r)   úPractice at homer]   r3   r,   zAsk sensei for helpZsenseir0   zKeep tryingÚkeepr-   r2   z6Extra practice helps! Your forms are getting smoother.é   z0Your sensei provides guidance. You're improving!é   z3Persistence pays off. You're slowly getting better.r_   z9Your sensei says you're ready to test for your next belt!zTrain intensely for testr`   é   zTake the testÚtestzWait until readyÚwaitr+   zJYour intense training pays off! You pass the belt test with flying colors!ra   z&You passed! You earned your next belt!z2You'll take the test when you feel more confident.zQYour martial arts training is going well. You're developing discipline and skill.úFocus on strengthÚstrengthzPractice with partnerÚpartnerzMaster the basicsZbasicsz*Building strength enhances your technique!é   z3Partner training improves your reflexes and timing!z3Perfecting the basics makes everything else easier!)rC   rD   r   rM   r	   rc   rF   rH   rd   r   r   rJ   rK   rR   rL   rI   rS   )rT   r   r   rU   rV   rp   r"   re   rf   rX   rd   rY   r   r   r   rq   2  s®    
ÿþ
ý
üû


ý



ý


ý
rq   c                 C   s¶  ddl m}m} d}tdd„ | jjD ƒƒ}|| jvo`| o`| jjdko`| jjdko`dt ¡ d	 k}d
}|dkr¢t	dddd�t	ddd�t	ddd�g}	t
||| ||	ƒS |dk�r²|d dk�rj| j jd7  _| j jd8  _tddddd�}
| jj |
¡ | jj ||
j|
j| jƒ¡ | jj || jdddgd| jj t dd¡d�¡ dd lm} || jƒ | j d!¡ nH|d dk�r–| j jd7  _| j d"¡ n| j jd#8  _| j d$¡ d%S )&z$Start a running routine (ages 12-70)r   rg   ÚrunningHabitc                 s   s   | ]}t |d dƒdkV  qdS )r
   NÚRunningr   r    r   r   r   r#   ¡  s   ÿzrunningHabit.<locals>.<genexpr>rt   r_   r'   r(   z8You're thinking about starting a running routine. Do it?r)   zYes, start running dailyÚdailyr+   r,   zRun occasionallyZ
occasionalr0   zNo, too much effortr/   r-   ra   r~   r4   z,Daily running routine for health and fitnessr5   zMorning RunÚmorningZoutsiderj   r<   r?   z$You started a daily running routine!z.You'll run occasionally when you feel like it.r2   z'You decided running is too much effort.N)rA   r   r   rB   rC   rD   rE   rF   rH   r   r   rK   rJ   r   rL   rM   r	   r   rN   rO   rP   rQ   r@   rR   rS   )rT   r   r   rU   r   r   rV   Zalready_runningrX   rY   Úrunning_activityr@   r   r   r   r}   š  sh    þ
ÿ
þ
ýü

ý
üÿ

ûÿ
r}   c                 C   sº  d}d}| j jD ]}t|ddƒdkr|} q.qd}|rX| j jD ]}|j|jkr>|} qXq>|| jvo˜|duo˜|duo˜| j jdko˜| j jdko˜dt ¡ d k}	|	s¢dS |j}
|
d	k �r d
}|dkròt	dddd�t	ddd�t	ddd�g}t
||| |	|ƒS |dk�r¶|d dk�rF| jd7  _| j  jd8  _| j  jd7  _| j d¡ nV|d dk�r€| jd7  _| j  jd7  _| j d¡ n| j  jd7  _| j d¡ �n|
dk�rºd}|dk�rît	dddd�t	dd dd�t	d!d"d�g}t
||| |	|ƒS |dk�r¶|d dk�rR| jd#7  _| j  jd8  _| j  jd7  _| j  jd$7  _| j d%¡ nf|d d k�rœ| jd7  _| j  jd8  _| j  jd#7  _| j d&¡ n| j  jd#7  _| j d'¡ nüd(}|dk�rüt	d)d*dd�t	d+d,d�t	d-d.d�g}t
||| |	|ƒS |dk�r¶|d d*k�rP| jd#7  _| j  jd8  _| j  jd7  _| j d/¡ nf|d d,k�rŠ| jd07  _| j  jd7  _| j d1¡ n,| j  jd7  _| j  jd#8  _| j d2¡ dS )3zProgress event for runnersÚrunningProgressNr
   r~   rt   r_   r'   r\   r:   zARunning is harder than you thought. You're out of breath quickly.r)   zPush through itÚpushr3   r,   zSlow down, build graduallyZslowr0   zTake a breakÚbreakr-   r2   z;Pushing yourself builds endurance! You're getting stronger.r|   z>Building gradually prevents injury. Your stamina is improving!z8Taking a break helps you recover and come back stronger.z4You're in great running shape! Consider a challenge?zTrain for 5K raceÚracera   zIncrease distanceÚdistancezMaintain current levelÚmaintainr+   rv   z9You completed your first 5K race! What an accomplishment!z=Increasing your distance challenges you and builds endurance!z3You enjoy your current routine. Consistency is key!zBYour running routine is going well. You're making steady progress.zFocus on speedÚspeedzRun with a friendÚfriendzEnjoy the sceneryZsceneryz0Speed work improves your cardiovascular fitness!ru   zBRunning with a friend makes it more fun and keeps you accountable!z8Running in nature brings peace and clarity to your mind.)rC   rD   r   rM   r	   rc   rF   rH   rd   r   r   rJ   rK   rR   rL   rS   rI   Ústress)rT   r   r   rU   rV   r�   r"   re   rf   rX   rd   rY   r   r   r   r‚   ã  s°    
ÿþ
ý
üû


ý



ý



ý
r‚   c                 C   s”  ddl m}m} d}tdd„ | jjD ƒƒ}|| jvo`| o`| jjdko`| jjdko`dt ¡ d	 k}d
}|dkr°t	ddddd�t	dddd�t	ddd�t	ddd�g}	t
||| ||	ƒS |dk�r�|d dk�rŠ| j jd8  _| j jd7  _| j jd8  _tddddd �}
| jj |
¡ | jj ||
j|
j| jƒ¡ | jj || jd!d"d#gd$| jj t d%d&¡d'�¡ dd(lm} || jƒ | j d)¡ �n|d dk�rH| j jd8  _| j jd7  _tdd*d+d,d �}
| jj |
¡ | jj ||
j|
j| jƒ¡ | jj || jd!d-d#gd$| jj t d.d/¡d'�¡ dd(lm} || jƒ | j d0¡ nH|d dk�rt| j jd17  _| j d2¡ n| j jd18  _| j d3¡ d4S )5z0Join a gym with membership options (ages 16-100)r   rg   ÚjoinGymc                 s   s   | ]}t |d dƒdkV  qdS )r
   NúGym Membershipr   r    r   r   r   r#   S  s   ÿzjoinGym.<locals>.<genexpr>é   rk   r'   r(   z,The local gym is offering memberships. Join?r)   zYes, full membership!Úfullé2   r+   ©r-   rl   r.   zYes, basic planÚbasicrv   ©r-   rl   zNo, workout at homeÚhomer0   zNot interestedr/   r-   r3   rŒ   rm   z<Full gym membership with access to all equipment and classesr%   r5   zGym Workoutzthrice-weekrn   Zgymé-   éZ   r<   r?   z/You got a full gym membership! Time to get fit.r4   z6Basic gym membership with access to standard equipmentrt   r6   r:   r;   zYou got a basic gym membership!r2   zYou'll workout at home instead.zYou decided not to join a gym.N)rA   r   r   rB   rC   rD   rE   rF   rH   r   r   ro   rK   rJ   r   rL   rM   r	   r   rN   rO   rP   rQ   r@   rR   rS   )rT   r   r   rU   r   r   rV   rW   rX   rY   Úgym_activityr@   r   r   r   r‹   L  sž    þ
ÿ
þ
ýü

ü
üÿ

ûÿ
üÿ

ûÿ
r‹   c                 C   sÜ  d}d}| j jD ]}t|ddƒdkr|} q.qd}|rX| j jD ]}|j|jkr>|} qXq>|| jvo˜|duo˜|duo˜| j jdko˜| j jdko˜dt ¡ d k}	|	s¢dS |j}
|
d	k �r°d
}|dkrôt	ddddd�t	ddd�t	ddd�g}t
||| |	|ƒS |dk�rØ|d dk�rX| jd7  _| j  jd8  _| j  jd8  _| j  jd7  _| j d¡ nT|d dk�r’| jd7  _| j  jd7  _| j d¡ n| jd7  _| j d¡ �n(|
dk�rÌd}|dk�rþt	d d!d"d#�t	d$d%dd#�t	d&d'd�g}t
||| |	|ƒS |dk�rØ|d d!k�rb| jd7  _| j  jd"8  _| j  jd7  _| j  jd7  _| j d(¡ nf|d d%k�r¬| jd7  _| j  jd8  _| j  jd7  _| j d)¡ n| j  jd7  _| j d*¡ �nd+}|dk�rt	d,d-dd#�t	d.d/d�t	d0d1dd#�g}t
||| |	|ƒS |dk�rØ|d d-k�rd| jd7  _| j  jd8  _| j  jd7  _| j d2¡ nt|d d/k�r®| jd7  _| j  jd7  _| j  jd7  _| j d3¡ n*| jd47  _| j  jd8  _| j d5¡ dS )6zProgress event for gym membersÚgymProgressNr
   rŒ   r�   rk   r'   r\   r:   zEYou're not seeing the gym results you hoped for. Feeling discouraged?r)   zHire a personal trainerZtrainerr3   r�   zWatch technique videosÚvideosr0   z
Keep at itrs   r-   ra   r+   zTA trainer shows you proper form and creates a plan. You're making real progress now!rt   r2   z2Learning proper technique makes a huge difference!r|   z0Consistency is key. You're building good habits.r_   z4You're in great shape! The gym is really paying off!zTrain for competitionZcompeterv   r,   zTry advanced workoutsÚadvancedzMaintain and enjoyr‡   z3Training for competition pushes you to new heights!z,Advanced workouts challenge you in new ways!z0You love your current fitness level and routine!z<Your gym workouts are going well. Seeing steady improvement!ry   rz   zJoin a classÚclasszTry new equipmentZ	equipmentz+Building strength transforms your physique!z%Group classes are motivating and fun!é	   z<Trying new equipment keeps your workouts fresh and engaging!)rC   rD   r   rM   r	   rc   rF   rH   rd   r   r   ro   rJ   rK   rR   rL   rS   rI   )rT   r   r   rU   rV   r–   r"   re   rf   rX   rd   rY   r   r   r   r—   º  s´    
ÿþ
ý
üû


ý



ý


ý
r—   c                 C   sæ  ddl m}m} d}tdd„ | jjD ƒƒ}|| jvo`| o`| jjdko`| jjdko`dt ¡ d	 k}d
}|dkr¤t	dddd�t	ddd�t	dddd�g}	t
||| ||	ƒS |dk�râ|d dkrø| j jd8  _| j jd7  _| j jd7  _| j d¡ nê|d dk�rÆ| j jd8  _| j jd7  _| j jd8  _tddddd�}
| jj |
¡ | jj ||
j|
j| jƒ¡ | jj || jd d!d"gd#| jj t d$d%¡d&�¡ dd'lm} || jƒ | j d(¡ n| j jd8  _| j d)¡ d*S )+z0Try yoga with regular class option (ages 14-100)r   rg   Ú	yogaClassc                 s   s   | ]}t |d dƒdkV  qdS )r
   NÚYogar   r    r   r   r   r#   ,  s   ÿzyogaClass.<locals>.<genexpr>é   rk   r'   r(   z-A friend invites you to try a yoga class. Go?r)   zYes, try it out!r1   r2   r,   zNo, not my thingr/   r0   zSign up for regular classesZregularrj   r’   r-   r3   r+   zYou tried yoga and loved it!ra   r�   r4   z?Regular yoga classes for flexibility, strength, and mindfulnessr5   z
Yoga Classr6   rn   Z
yogastudior”   r;   r<   r?   z'You signed up for regular yoga classes!zYou decided yoga isn't for you.N)rA   r   r   rB   rC   rD   rE   rF   rH   r   r   rJ   rS   rI   rR   rL   ro   rŠ   r   rM   r	   r   rN   rO   rP   rQ   r@   )rT   r   r   rU   r   r   rV   rW   rX   rY   Úyoga_activityr@   r   r   r   rœ   %  sn    þ
ÿ
þ
ýü
ý
üÿ

ûÿ
rœ   c                 C   s
  d}d}| j jD ]}t|ddƒdkr|} q.qd}|rX| j jD ]}|j|jkr>|} qXq>|| jvo˜|duo˜|duo˜| j jdko˜| j jdko˜dt ¡ d k}	|	s¢dS |j}
|
d	k �r®d
}|dkròt	dddd�t	ddd�t	ddd�g}t
||| |	|ƒS |dk�r|d dk�rF| jd7  _| j  jd8  _| j  jd8  _| j d¡ nd|d dk�r€| jd7  _| j  jd7  _| j d¡ n*| jd7  _| j  jd7  _| j d¡ �nX|
dk�rêd}|dk�rüt	dddd�t	d d!d"d#�t	d$d%d�g}t
||| |	|ƒS |dk�r|d dk�r`| jd7  _| j  jd8  _| j  jd7  _| j  jd8  _| j d&¡ n†|d d!k�rº| jd'7  _| j  jd"8  _| j  jd(7  _| j  jd(7  _| j d)¡ n,| j  jd*8  _| j  jd7  _| j d+¡ �nd,}|dk�r.t	d-d.dd�t	d/d0dd�t	d1d2d�g}t
||| |	|ƒS |dk�r|d d.k�r‚| jd7  _| j  jd8  _| j  jd'7  _| j d3¡ n„|d d0k�rÌ| jd7  _| j  jd8  _| j  jd7  _| j d4¡ n:| jd'7  _| j  jd(8  _| j  jd7  _| j d5¡ dS )6z%Progress event for yoga practitionersÚyogaProgressNr
   r�   rž   rk   r'   r\   r:   zRSome of the yoga poses are challenging. You're not as flexible as others in class.r)   rr   r]   r+   r,   z Ask instructor for modificationsÚmodifyr0   zBe patient with yourselfZpatientr-   r3   z4Home practice helps you build flexibility gradually!rt   r2   z@Your instructor shows you modifications that work for your body!z;Yoga is about progress, not perfection. You're doing great!r_   z@You've become quite skilled at yoga! Your practice has deepened.zTry advanced classesr™   zLearn to teach yogaZteachéÈ   r’   zDeepen meditation practiceZmeditatezCAdvanced yoga challenges you in new ways and brings profound peace!r|   ra   zQYou completed yoga teacher training! Now you can share this practice with others!rv   z>Deepening your meditation brings incredible peace and clarity!zLYour yoga practice is going well. You're feeling more flexible and centered.zFocus on flexibilityZflexibilityzBuild strength posesrz   zEmphasize mindfulnessZmindfulnessz2Working on flexibility opens up new poses for you!z9Strength-building poses transform your practice and body!z2Mindful yoga brings deep peace and mental clarity!)rC   rD   r   rM   r	   rc   rF   rH   rd   r   r   rJ   rŠ   rR   rL   rI   rS   rK   ro   )rT   r   r   rU   rV   rŸ   r"   re   rf   rX   rd   rY   r   r   r   r    q  sº    
ÿþ
ý
üû


ý



ý


ý
r    )
r   r[   rh   rq   r}   r‚   r‹   r—   rœ   r    )r   FF)r   FF)r   FF)r   FF)r   FF)r   FF)r   FF)r   FF)r   FF)r   FF)r   rH   r   Zevents.baser   r   r   r   r   r[   rh   rq   r}   r‚   r‹   r—   rœ   r    Ú__all__r   r   r   r   Ú<module>   s   
L
i
K
h
I
i
n
k
L
n