grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026+ ijPª—…ø%ãóL€Rt^RIt^RIt^RIHtHt^RIt^RIH t .RNRNRNRNRNR NR NR NR NR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0Nt ] t !R1R] ] 4t!R2R] 4tR3t]!R4R]44t]!R5R]44t.RYOt!R6R74t!R8R94t]!R:4t]!R;4t]!R<4t]!R=4tR>tR?tR@tRAtRBtRCtRDt REt!!RFR]"4t#!RGR]#4t$!RHR]#4t%!RIRJ4t&RKt'!RLR]$4t(!RMR]%4t)!RNRO]$4t*!RPRQ](]*4t+]$!4t,],PZt.RRt/],P`t1],Pdt2],Pft4],Pjt6],Pnt7],Ppt9],Ptt;],Pxt=^t>^t?]>]?3RSlt@]>]?3RTltARUtB]P†!]B^^4P‰4tERVtFRZRWltG]HRX8Xd ]G!4R#R#)[a$Calendar printing functions Note when comparing these calendars to the ones printed by cal(1): By default, these calendars have Monday as the first day of the week, and Sunday as the last (the European convention). Use setfirstweekday() to set the first day of the week (0=Monday, 6=Sunday).N)ÚIntEnumÚ global_enum)ÚrepeatÚIllegalMonthErrorÚIllegalWeekdayErrorÚsetfirstweekdayÚ firstweekdayÚisleapÚleapdaysÚweekdayÚ monthrangeÚ monthcalendarÚprmonthÚmonthÚprcalÚcalendarÚtimegmÚ month_nameÚ month_abbrÚday_nameÚday_abbrÚCalendarÚ TextCalendarÚ HTMLCalendarÚLocaleTextCalendarÚLocaleHTMLCalendarÚ weekheaderÚDayÚMonthÚJANUARYÚFEBRUARYÚMARCHÚAPRILÚMAYÚJUNEÚJULYÚAUGUSTÚ SEPTEMBERÚOCTOBERÚNOVEMBERÚDECEMBERÚMONDAYÚTUESDAYÚ WEDNESDAYÚTHURSDAYÚFRIDAYÚSATURDAYÚSUNDAYcó,a€]tRt^ toRtRtRtVtR#)rcó€WnR#©N©r)Úselfrs&&Ú//opt/alt/python314/lib64/python3.14/calendar.pyÚ__init__ÚIllegalMonthError.__init__!s€ØŽ ócó(€RVP,#)z!bad month number %r; must be 1-12r5©r6s&r7Ú__str__ÚIllegalMonthError.__str__#s€Ø2°T·Z±ZÕ?Ð?r:r5N©Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__r8r=Ú__static_attributes__Ú__classdictcell__©Ú __classdict__s@r7rr sø‡€ò÷@ð@r:có,a€]tRt^'toRtRtRtVtR#)rcó€WnR#r4©r )r6r s&&r7r8ÚIllegalWeekdayError.__init__(s€ØŽ r:có(€RVP,#)z7bad weekday number %r; must be 0 (Monday) to 6 (Sunday)rJr<s&r7r=ÚIllegalWeekdayError.__str__*s€ØHÈ4Ï<É<ÕWÐWr:rJNr?rFs@r7rr'sø‡€ò÷XðXr:có´€VR 9d=^RIpVPRV RVP4 R2\^R7VR8Xd^#^#\ R\ RV R24h) ÚJanuaryNzThe 'z ' attribute is deprecated, use 'z ' instead)Ú stacklevelzmodule 'z' has no attribute 'Ú')rOÚFebruary)ÚwarningsÚwarnÚupperÚDeprecationWarningÚAttributeErrorr@)ÚnamerSs& r7Ú __getattr__rY.sf€Ø Ð&Ô&ÛØ� ‰ ˜˜d˜VÐ#CÀDÇJÁJÃLÀ>ÐQZÐ[Ü(°Qð ô 8à �9Ô Ùáä ˜8¤H :Ð-AÀ$ÀÀqÐIÓ JÐJr:cóF€]tRt^†à€GØ€HØ €EØ €EØ €CØ €DØ €DØ €FØ€IØ€GØ€HØ„Hr:có2€]tRt^Mt^t^t^t^t^t^t ^t Rt R#)rr[N) r@rArBrCr+r,r-r.r/r0r1rDr[r:r7rrMs%†à €FØ€GØ€IØ€HØ €FØ€HØ „Fr:cóàa€]tRt^`to]!^ 4Uu.uF,p\ P !RV^,^4PNK. upt]P^R4Rt Rt Rt Rt VtR#uupi)Ú_localized_monthéÑcó€R#)Úr[)Úxs&r7ÚÚ_localized_month.cs€¡r:có€WnR#r4©Úformat©r6rgs&&r7r8Ú_localized_month.__init__eó€ØŽ r:cóÄ€VPV,p\V\4'd"VUu.uFq3!VP4NK up#V!VP4#uupir4)Ú_monthsÚ isinstanceÚslicerg©r6ÚiÚfuncsÚfs&& r7Ú __getitem__Ú_localized_month.__getitem__hsM€Ø— ‘ ˜Q•ˆÜ �aœ× Ò Ù,1Ó2©E q�A�d—k‘k–N©EÑ2Ð 2ᘟ™Ó%Ð %ùò3ó®Acó€^ #)é r[r<s&r7Ú__len__Ú_localized_month.__len__os€Ùr:rfN)r@rArBrCÚrangeÚdatetimeÚdateÚstrftimerlÚinsertr8rsrxrDrE©rprGs0@r7r^r^`s\ø‡€á=BÀ2¼YÓG¹Y¸Œx�}Š}˜T 1 Q¥3¨Ó*×3Ô3¹YÑG€GØ ‡N�N�1‘lÔ#òò&÷ðùòHs”2A+r^c óºa€]tRt^sto]!^4Uu.uF,p\ P !R^V^,4PNK. uptRt Rt Rt Rt Vt R#uupi)Ú_localized_dayr_có€WnR#r4rfrhs&&r7r8Ú_localized_day.__init__xrjr:cóÄ€VPV,p\V\4'd"VUu.uFq3!VP4NK up#V!VP4#uupir4)Ú_daysrmrnrgros&& r7rsÚ_localized_day.__getitem__{sM€Ø— ‘ ˜1• ˆÜ �aœ× Ò Ù,1Ó2©E q�A�d—k‘k–N©EÑ2Ð 2ᘟ™Ó%Ð %ùò3rucó€^#©ér[r<s&r7rxÚ_localized_day.__len__‚s€Ùr:rfN)r@rArBrCrzr{r|r}r…r8rsrxrDrErs0@r7r�r�ssQø‡€ñ€^Tu;8:d^ 8:gM\V4hR#)éN)rr5s&r7Ú_validate_monthr—£s€Ø �Ö ˜Ö Ü Ó&Ð&ñ r:có’€\V4\W^4p\V,V\8H;'d \ V4,pW#3#)z`Return weekday of first day of month (0-6 ~ Mon-Sun) and number of days (28-31) for year, month.)r—r Úmdaysr r )r�rÚday1Úndayss&& r7r r §s?€ô�EÔÜ �4 Ó "€DÜ �%�L˜E¤XÑ-×>Ð>´&¸³,Õ ?€EØ ˆ;Ðr:có^€\V,V\8H;'d \V4,#r4)r™r r ©r�rs&&r7Ú _monthlenrž°s"€Ü ��<˜5¤HÑ,×=Ð=´¸³Õ >Ð>r:có:€V^8Xd V^, ^ 3#W^, 3#)r–r[r�s&&r7Ú _prevmonthr ´s#€Ø �„zØ�A�v�rˆzÐà˜1•Wˆ}Ðr:có:€V^ 8Xd V^,^3#W^,3#)é r[r�s&&r7Ú _nextmonthr£»s#€Ø �„{Ø�A�v�qˆyÐà˜1•Wˆ}Ðr:có a€]tRt^ÂtoRtRRltRtRt]!]]4t Rt Rt Rt Rt R tR tR tR tR tRRltRRltRRltRtVtR#)rzc Base calendar class. This class doesn't do any formatting. It simply provides data to subclasses. có€WnR#r4©r©r6rs&&r7r8ÚCalendar.__init__Ès€Ø(Ör:có(€VP^,#rˆ©Ú _firstweekdayr<s&r7ÚgetfirstweekdayÚCalendar.getfirstweekdayËs€Ø×!Ñ! AÕ%Ð%r:có€WnR#r4rªr§s&&r7rÚCalendar.setfirstweekdayÎs€Ø)Ör:c# ó€"€\VPVP^,4FpV^,x€K R#5i)z\ Return an iterator for one week of weekday numbers starting with the configured first one. N)rzr)r6rps& r7Ú iterweekdaysÚCalendar.iterweekdaysÓs3é€ô �t×(Ñ(¨$×*;Ñ*;¸aÕ*?Ö@ˆAØ�A•#ŒIóAùs‚<>c# óv"€VPW4Fwr4p\P!W4V4x€K! R#5i)z´ Return an iterator for one month. The iterator will yield datetime.date values and will always iterate through complete weeks, so it will yield dates outside the specified month. N)Úitermonthdays3r{r|)r6r�rÚyÚmÚds&&& r7ÚitermonthdatesÚCalendar.itermonthdatesÛs1é€ð ×*Ñ*¨4Ö7‰GˆA�!Ü—-’-  aÓ(Ô (ó8ùs‚79c# ó."€\W4wr4W0P, ^,p\^V4Rjx€L \^V^,4Rjx€L VPV, V, ^,p\^V4Rjx€L R#LVL=L 5i)zn Like itermonthdates(), but will yield day numbers. For days outside the specified month the day number is 0. N)r rrrz)r6r�rršr›Ú days_beforeÚ days_afters&&& r7Ú itermonthdaysÚCalendar.itermonthdaysäsé€ô ! Ó-‰ ˆØ×/Ñ/Õ/°1Õ4ˆ ܘ!˜[Ó)×)Ð)ܘ˜E A�IÓ&×&Ð&Ø×'Ñ'¨$Õ.°Õ6¸!Õ;ˆ ܘ!˜ZÓ(×(Ò(ñ *Ù&á(ùs3‚6B¸B¹BÁBÁ4BÂB BÂBÂBc# ó‚"€\VPW4VP4Fwr4WC^,3x€K R#5i)z† Like itermonthdates(), but will yield (day number, weekday number) tuples. For days outside the specified month the day number is 0. N)Ú enumerater½r)r6r�rrpr·s&&& r7Úitermonthdays2ÚCalendar.itermonthdays2ðs7é€ô ˜d×0Ñ0°Ó=¸t×?PÑ?PÖQ‰DˆAؘ•U�(ŒNóRùs‚=?c# ó²"€\W4wr4W0P, ^,pVPV, V, ^,p\W4wrx\Wx4^,p \ W•, V 4F p WxV 3x€K \ ^V^,4F p WV 3x€K \ W4wrx\ ^V^,4F p WxV 3x€K R#5i)zy Like itermonthdates(), but will yield (year, month, day) tuples. Can be used for dates outside of datetime.date range. N)r rr ržrzr£) r6r�rršr›r»r¼rµr¶Úendr·s &&& r7r´ÚCalendar.itermonthdays3øs¿é€ô ! Ó-‰ ˆØ×/Ñ/Õ/°1Õ4ˆ Ø×'Ñ'¨$Õ.°Õ6¸!Õ;ˆ ܘ$Ó&‰ˆÜ˜‹o Õ!ˆÜ�s•¨Ö,ˆAؘ�'ŒMñ-ä�q˜% !�)Ö$ˆAؘq�.Ô ñ%ä˜$Ó&‰ˆÜ�q˜* q�.Ö)ˆAؘ�'ŒMó*ùs‚CCc# ó˜"€\VPW44F'wpwrEpWEW`PV,^,3x€K) R#5i)z… Like itermonthdates(), but will yield (year, month, day, day_of_week) tuples. Can be used for dates outside of datetime.date range. N)rÀr´r)r6r�rrprµr¶r·s&&& r7Úitermonthdays4ÚCalendar.itermonthdays4 sEé€ô & d×&9Ñ&9¸$Ó&FÖG‰LˆA‰y��aؘ×-Ñ-°Õ1°QÕ6Ð6Ô 6óHùs‚AA c óœ€\VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)z… Return a matrix (list of lists) representing a month's calendar. Each row represents a week; week entries are datetime.date values. )Úlistr¸rzÚlen)r6r�rÚdatesrps&&& r7ÚmonthdatescalendarÚCalendar.monthdatescalendarsF€ô �T×(Ñ(¨Ó5Ó6ˆÜ',¨Q´°E³ ¸AÔ'>Ó@Ñ'> !�q˜1�“Ñ'>Ñ@Ð@ùÒ@ó³A c óœ€\VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)z­ Return a matrix representing a month's calendar. Each row represents a week; week entries are (day number, weekday number) tuples. Day numbers outside this month are zero. )rÊrÁrzrË©r6r�rÚdaysrps&&& r7Úmonthdays2calendarÚCalendar.monthdays2calendarsF€ô�D×'Ñ'¨Ó4Ó5ˆÜ&+¨A¬s°4«y¸!Ô&<Ó>Ñ&< �a˜!�“Ñ&<Ñ>Ð>ùÒ>rÏc óœ€\VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)zp Return a matrix representing a month's calendar. Each row represents a week; days outside this month are zero. )rÊr½rzrËrÑs&&& r7ÚmonthdayscalendarÚCalendar.monthdayscalendar$sF€ô �D×&Ñ& tÓ3Ó4ˆÜ&+¨A¬s°4«y¸!Ô&<Ó>Ñ&< �a˜!�“Ñ&<Ñ>Ð>ùÒ>rÏc ó¸€\Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)zÿ Return the data for the specified year ready for formatting. The return value is a list of month rows. Each month row contains up to width months. Each month contains between 4 and 6 weeks and each week contains 1-7 days. Days are datetime.date objects. )rrÍrzrË©r6r�Úwidthr¶Úmonthsrps&&& r7ÚyeardatescalendarÚCalendar.yeardatescalendar,óV€õ=BÓB¹E°q×)Ñ)¨$Ö2¹EˆÐBÜ+0°´C¸³KÀÔ+GÓIÑ+G a�q˜5�Ó!Ñ+GÑIÐIùòCùÚIó ‰A¼Ac ó¸€\Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)zË Return the data for the specified year ready for formatting (similar to yeardatescalendar()). Entries in the week lists are (day number, weekday number) tuples. Day numbers outside this month are zero. )rrÓrzrËrÙs&&& r7Úyeardays2calendarÚCalendar.yeardays2calendar6rÞrßc ó¸€\Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)z³ Return the data for the specified year ready for formatting (similar to yeardatescalendar()). Entries in the week lists are day numbers. Day numbers outside this month are zero. )rrÖrzrËrÙs&&& r7ÚyeardayscalendarÚCalendar.yeardayscalendar@sV€õ €\VPW4RR7R#)z# Print a single week (no newline). ra©rÄN)ÚprintÚ formatweek©r6ÚtheweekrÚs&&&r7ÚprweekÚTextCalendar.prweekPs€ô ˆd�o‰o˜gÓ-°2×6r:c óJ€V^8XdRpM RV,pVPV4#)z Returns a formatted day. raz%2i©Úcenter)r6r”r rÚÚss&&&& r7Ú formatdayÚTextCalendar.formatdayVs'€ð �!Œ8؉Aà˜• ˆAØ�x‰x˜‹Ðr:c ó>aa€RPVV3RlV44#)ú1 Returns a single week in a string (no newline). Ú c3óL<"€TFwrSPWS4x€K R#5ir4©rø)Ú.0r·Úwdr6rÚs& €€r7Ú Ú*TextCalendar.formatweek..ds!øé€ÐLÁG¹¸!˜Ÿ™ q¨e×4Ð4ÃGùóƒ!$©Újoinrðsf&fr7rïÚTextCalendar.formatweek`sù€ð�x‰xÕLÁGÓLÓLÐLr:c ó^€V^ 8¼d\pM\pW1,RVPV4#)z$ Returns a formatted week day name. N)rrrö)r6r”rÚÚnamess&&& r7Ú formatweekdayÚTextCalendar.formatweekdayfs/€ð �AŒ:܉EäˆEØ�z˜&˜5Ð!×(Ñ(¨Ó/Ð/r:c óZaa€RPVV3RlSP444#)z Return a header for a week. rüc3óH<"€TFpSPVS4x€K R#5ir4©r )rÿrpr6rÚs& €€r7rÚ0TextCalendar.formatweekheader..ts#øé€ÐRÑ>Q¸˜×*Ñ*¨1¨e×4Ð4Ó>Qùsƒ"©rr±)r6rÚsffr7ÚformatweekheaderÚTextCalendar.formatweekheaderps#ù€ð�x‰xÕR¸d×>OÑ>OÔ>QÓRÓRÐRr:c óv€\V4\V,pV'd V: RV: 2pVPV4#)z Return a formatted month name. rü)r—rrö)r6ÚtheyearÚthemonthrÚÚwithyearr÷s&&&&& r7ÚformatmonthnameÚTextCalendar.formatmonthnamevs1€ô ˜Ô!ä �xÕ ˆß ÛšgÐ&ˆAØ�x‰x˜‹Ðr:c ó@€\VPWW44RR7R#)z Print a month's calendar. raríN)rîÚ formatmonth)r6rrÚwÚls&&&&&r7rÚTextCalendar.prmonth�s€ô ˆd×јw°!Ó7¸R×@r:c óÈ€\^V4p\^V4pVPW^V^,,^, 4pVP4pVRV,, pWPPV4P4, pVRV,, pVP W4F8pWPP Wc4P4, pVRV,, pK: V#)ú0 Return a month's calendar string (multi-line). Ú )ÚmaxrÚrstriprrÓrï)r6rrrrr÷Úweeks&&&&& r7rÚTextCalendar.formatmonth‡s¼€ô ��1‹IˆÜ ��1‹IˆØ × Ñ  °A¸¸Q½µKÀ!µOÓ DˆØ �H‰H‹JˆØ ˆT�A�X� ˆØ × "Ñ " 1Ó %× ,Ñ ,Ó .Õ.ˆØ ˆT�A�X� ˆØ×+Ñ+¨GÖ>ˆDØ —‘ Ó)×0Ñ0Ó2Õ 2ˆAØ �˜•�MŠAñ?ðˆr:c  ó°aaaa€\^V4p\^V4p\^V4pV^,^,^, o.pVPpV!\S4PSV,WE^, ,,4P 44V!RV,4SP V4o\ SPSV44EFpwr‰\WX,^,\WX^,,^,^ 44p V!RV,4VVV3RlV 4p V!\V SV4P 44V!RV,4V3RlV 4p V!\V SV4P 44V!RV,4\RV 44p \V 4F‰p.pV FNpV\V48¼dVPR4K&VPSPVV,V44KP V!\VSV4P 44V!RV,4K‹ EKs RPV4#)ú3 Returns a year's calendar as a multi-line string. rc3óL<"€TFpSPSVSR4x€K R#5i©FN©r©rÿÚkÚcolwidthr6rs& €€€r7rÚ*TextCalendar.formatyear..¨ó,øé€ð&Ù$˜ð×)Ñ)¨'°1°hÀ×FÐFÛ$ùrc3ó(<"€TFpSx€K R#5ir4r[©rÿr*Úheaders& €r7rr,¬óøé€Ð.¡v !•v£vùóƒc3ó8"€TFp\V4x€K R#5ir4©rË©rÿÚcals& r7rr,±óé€Ð1©S cœ˜SŸ˜«Sùó‚ra)r ÚappendÚreprrör!rrÀrárzÚminÚ formatstringrËrïr)r6rrrÚcr¶ÚvÚarpÚrowrÛrÚheadersÚheightÚjÚweeksr6r+r0sff&&&& @@r7Ú formatyearÚTextCalendar.formatyear—s×û€ô ��1‹IˆÜ ��1‹IˆÜ ��1‹IˆØ˜•E˜Q•; •?ˆØ ˆØ �H‰HˆÙ Œ$ˆw‹-× Ñ ˜x¨�z¨!¨q­S­'Õ1Ó 2× 9Ñ 9Ó ;Ô<Ù ˆ$ˆq�&Œ Ø×&Ñ& qÓ)ˆÜ! $×"8Ñ"8¸À!Ó"D×E‰HˆQä˜1�3˜q�5¤# a¨1­¥g¨a¥i°Ó"4Ó5ˆFÙ ˆd�1�fŒIö&Ù$ó&ˆEá Œl˜5 (¨AÓ.×5Ñ5Ó7Ô 8Ù ˆd�1�fŒIÜ.¡vÓ.ˆGÙ Œl˜7 H¨aÓ0×7Ñ7Ó9Ô :Ù ˆd�1�fŒIôÑ1©SÓ1Ó1ˆFܘ6–]�Ø�Û�CØœC ›H”}ØŸ ™  RÖ(àŸ ™  T§_¡_°S¸µV¸QÓ%?Ö@ñ ñ ”,˜u h°Ó2×9Ñ9Ó;Ô<Ù�$˜•(– ô#ñFð.�w‰w�q‹zÐr:c  óB€\VPWW4V4RR7R#)zPrint a year's calendar.raríN)rîrE)r6rrrr=r¶s&&&&&&r7ÚpryearÚTextCalendar.pryear½s€ä ˆd�o‰o˜g¨!°Ó2¸×;r:r[N©T©ræræ©ér–érè)rærærNrè)r@rArBrCréròrørïr rrrrrErHrDrErFs@r7rrJsEø‡€ñò 7ò òMò 0òSô ôAô ô $÷L<ò z%d)Úcssclass_nodayÚ cssclasses)r6r”r s&&&r7røÚHTMLCalendar.formatdayÜs5€ð �!Œ8à/°$×2EÑ2EÕEÐ Eà+¨t¯©¸wÕ/GÈÐ.MÕMÐ Mr:c óLa€RPV3RlV44pRV,#)z( Return a complete week as a table row. rac3óJ<"€TFwrSPW4x€K R#5ir4rþ)rÿr·rr6s& €r7rÚ*HTMLCalendar.formatweek..êsøé€ÐA¹©g¨q�D—N‘N 1×)Ð)»ùsƒ #ú %sr)r6rñr÷sf& r7rïÚHTMLCalendar.formatweekæs$ø€ð �G‰GÔA¹ÓAÓ AˆØ˜qÕ Ð r:c óP€RVPV,: R\V,: R2#)z* Return a weekday name as a table header. z z)Úcssclasses_weekday_headr)r6r”s&&r7r ÚHTMLCalendar.formatweekdayís'�ð × (Ñ (¨× -Ð -¬x¸¯}¨}ð>ð >r:c óha€RPV3RlSP444pRV,#)z, Return a header for a week as a table row. rac3óF<"€TFpSPV4x€K R#5ir4r )rÿrpr6s& €r7rÚ0HTMLCalendar.formatweekheader..øs!øé€ÐGÑ3F¨a�D×&Ñ& q×)Ð)Ó3Fùsƒ!rXr)r6r÷sf r7rÚHTMLCalendar.formatweekheaderôs-ø€ð �G‰GÔG°4×3DÑ3DÔ3FÓGÓ GˆØ˜qÕ Ð r:c ó¤€\V4V'd\V,: RV: 2pMR\V,,pRVP: RV: R2#)z% Return a month name as a table row. rüz%szr©rúra)r9Úcssclass_monthrrrÓrïr)r6rrrr>r?r"s&&&& r7rÚHTMLCalendar.formatmonths´€ð ˆØ �H‰HˆÙ Ð IØ × Ñ õ !ô "á ˆ$ŒÙ ˆ$× Ñ ˜w¸8Ð Ó DÔEÙ ˆ$ŒÙ ˆ$× Ñ Ó !Ô"Ù ˆ$ŒØ×+Ñ+¨GÖ>ˆDÙ ˆd�o‰o˜dÓ#Ô $Ù ˆdŽGñ?ñ ˆ*Œ Ù ˆ$ŒØ�w‰w�q‹zÐr:c  óâ€.pVPp\V^4pV!RVP,4V!R4V!RW PV3,4\ \ \ ^ ,V4Fap\ V\ WR,^ 44pV!R4VF,pV!R4V!VPWRR74V!R4K. V!R 4Kc V!R 4R PV4#) z/ Return a formatted year as a table of tables. rfrz,%szzFrgzzrhra) r9r Ú cssclass_yearÚcssclass_year_headrzrr;rr)r6rrÚr>r?rprÛr¶s&&& r7rEÚHTMLCalendar.formatyearsà€ð ˆØ �H‰HˆÜ�E˜1“ ˆÙ Ð IØ × Ñ õ ô á ˆ$ŒÙ Ð 8Ø ×*Ñ*¨Gð<5õ 5ô 6ä”w¤¨¥ ¨EÖ2ˆAä˜1œc !¥'¨2Ó.Ó/ˆFÙ ˆfŒIÛ�Ù�&” Ù�$×"Ñ" 7¸Ð"Ó>Ô?Ù�'– ññ ˆgŽJñ3ñ ˆ*Œ Ø�w‰w�q‹zÐr:Nc ó°€Vf\P!4p.pVPpV!RV,4V!R4V!R4V!R4V!RV,4VeV!RV,4V!RV,4V!R4V!R 4V!VPW44V!R 4V!R 4R P V4P VR 4#)z2 Return a formatted year as a complete HTML page. z$ zn z z zC z4 zCalendar for %d z z z z raÚxmlcharrefreplace)ÚsysÚgetdefaultencodingr9rErÚencode)r6rrÚÚcssÚencodingr>r?s&&&&& r7ÚformatyearpageÚHTMLCalendar.formatyearpage3sÄ€ð Ò Ü×-Ò-Ó/ˆHØ ˆØ �H‰HˆÙ Ð 1°HÕ <Ô=Ù Ð {Ô|Ù ˆ*Œ Ù ˆ*Œ Ù Ð PÐS[Õ [Ô\Ø Š?Ù ÐEÈÕKÔ LÙ Ð ,¨wÕ 6Ô7Ù ˆ+ŒÙ ˆ*Œ Ù ˆ$�/‰/˜'Ó )Ô*Ù ˆ+ŒÙ ˆ+ŒØ�w‰w�q‹z× Ñ  Ð+>Ó?Ð?r:r[)ÚmonÚtueÚwedÚthuÚfriÚsatÚsunrJrç)rèú calendar.cssN)r@rArBrCrérSr\rRrcrirmrlrørïr rrrrErvrDrErFs@r7rrÂsoø‡€ñò C€Jð)Ðð€Nð"Ðð€Nð Ðð€MòNò!ò>ò!ô )ôô(÷0@ò@r:có2a€]tRtRtoRtRtRtRtVtR#)Údifferent_localeiKcó €WnRVnR#r4©ÚlocaleÚ oldlocale)r6r„s&&r7r8Údifferent_locale.__init__Ls€ØŒ ؈Žr:có¸€\P!\PR4Vn\P!\PVP4R#r4)Ú_localeÚ setlocaleÚLC_TIMEr…r„r<s&r7Ú __enter__Údifferent_locale.__enter__Ps2€Ü ×*Ò*¬7¯?©?¸DÓAˆŒÜ×Òœ'Ÿ/™/¨4¯;©;Ö7r:cód€\P!\PVP4R#r4)rˆr‰rŠr…)r6Úargss&*r7Ú__exit__Údifferent_locale.__exit__Ts€Ü×Òœ'Ÿ/™/¨4¯>©>Ö:r:rƒN) r@rArBrCr8r‹r�rDrErFs@r7r�r�Ksø‡€òò8÷;ð;r:r�có €\P!\PR4pVR8XdD\R4;_uu_4\P!\PR4pRRR4V#V# +'giT#;i)NÚCra)rˆr‰rŠr�©r„s r7Ú_get_default_localer”Xsb€Ü × Ò œwŸ™°Ó 5€FØ �„}Ü ˜b× !Õ !ô×&Ò&¤w§¡¸Ó=ˆF÷"ð €Mˆ6€M÷ "Ö !ð €Mús Á&A2Á2 B cóPaa€]tRtRtoRtRRltV3RltRV3RlltRtVt V;t #) ribú| This class can be passed a locale name in the constructor and will return month and weekday names in the specified locale. cóX€\PW4Vf \4pW nR#r4)rr8r”r„©r6rr„s&&&r7r8ÚLocaleTextCalendar.__init__hó"€Ü×јdÔ1Ø Š>Ü(Ó*ˆFØŽ r:cóš<€\VP4;_uu_4\SV` W4uuRRR4# +'giR#;ir4©r�r„Úsuperr )r6r”rÚÚ __class__s&&&€r7r Ú LocaleTextCalendar.formatweekdayns.ø€Ü ˜dŸk™k× *Õ *Ü‘7Ñ(¨Ó4÷+× *× *Ó *úó Ÿ9¹ A cóœ<€\VP4;_uu_4\SV` WW44uuRRR4# +'giR#;ir4©r�r„r�r)r6rrrÚrržs&&&&&€r7rÚ"LocaleTextCalendar.formatmonthnamers0ø€Ü ˜dŸk™k× *Õ *Ü‘7Ñ*¨7¸eÓN÷+× *× *Ó *úó Ÿ:º A r“©ræNrJ© r@rArBrCrér8r rrDrEÚ __classcell__©ržrGs@@r7rrbs ù‡€ñô õ 5÷O÷Or:cóPaa€]tRtRtoRtRRltV3RltRV3RlltRtVt V;t #) riwr–cóX€\PW4Vf \4pW nR#r4)rr8r”r„r˜s&&&r7r8ÚLocaleHTMLCalendar.__init__|ršr:cóš<€\VP4;_uu_4\SV` V4uuRRR4# +'giR#;ir4rœ)r6r”ržs&&€r7r Ú LocaleHTMLCalendar.formatweekday‚s.ø€Ü ˜dŸk™k× *Õ *Ü‘7Ñ(¨Ó-÷+× *× *Ó *úr cóœ<€\VP4;_uu_4\SV` WV4uuRRR4# +'giR#;ir4r¢)r6rrrržs&&&&€r7rÚ"LocaleHTMLCalendar.formatmonthname†s0ø€Ü ˜dŸk™k× *Õ *Ü‘7Ñ*¨7¸hÓG÷+× *× *Ó *úr¤r“r¥rJr¦r¨s@@r7rrws ù‡€ñôõ .÷H÷Hr:cóXaa€]tRtRtoR V3RlltRR/RltR RltR RltRtVt V;t #) Ú_CLIDemoCalendari‹Ncó4<€\SV`!V/VBWnR#r4©r�r8Ú highlight_day©r6r´rŽÚkwargsržs&&*,€r7r8Ú_CLIDemoCalendar.__init__Œóø€Ü ‰Ò˜$Ð) &Ò)Ø*Ör:r´c óÊaaaaa€S'd5^RIHpV!4pVP VP 2oVPoMR;ooRP VVVVV3RlV44#)rû)Ú get_colorsrarüc3óŠ<"€TF8wrVS8XdS SPWS4 S 2MSPWS4x€K: R#5ir4rþ)rÿr·rÚ highlightr´Úresetr6rÚs& €€€€€r7rÚ._CLIDemoCalendar.formatweek..�sTøé€ð ñ #‘�ð˜ Ô%ð�+˜dŸn™n¨Q°EÓ:Ð;¸E¸7ÑCà—^‘^ A¨5Ó1ô2ó#ùsƒAA)Ú _colorizerºÚBLACKÚBACKGROUND_YELLOWÚRESETr)r6rñrÚr´rºÚansir¼r½sf&fd @@r7rïÚ_CLIDemoCalendar.formatweek�scü€÷ Ý ,á“<ˆDØŸ:™:˜, t×'=Ñ'=Ð&>Ð?ˆIØ—J‘J‰Eà "Ð "ˆI˜à�x‰x÷ ð ñ #ó  ó ð r:c óŽ€VP'dNVPPV8Xd3VPPV8XdVPPpMRp\ ^V4p\ ^V4pVP W^V^,,^, 4pVP 4pVRV,, pW`PV4P 4, pVRV,, pVPW4F:pW`PWsVR7P 4, pVRV,, pK< V#)rNr©r´) r´r�rr”r rr!rrÓrï)r6rrrrr´r÷r"s&&&&& r7rÚ_CLIDemoCalendar.formatmonth¦s €ð × × Ð Ø×"Ñ"×'Ñ'¨7Ô2Ø×"Ñ"×(Ñ(¨HÔ4à ×.Ñ.×2Ñ2‰Mà ˆMÜ ��1‹IˆÜ ��1‹IˆØ × Ñ  °A¸¸Q½µKÀ!µOÓ DˆØ �H‰H‹JˆØ ˆT�A�X� ˆØ × "Ñ " 1Ó %× ,Ñ ,Ó .Õ.ˆØ ˆT�A�X� ˆØ×+Ñ+¨GÖ>ˆDØ —‘ ¸ �ÓF×MÑMÓOÕ OˆAØ �˜•�MŠAñ?ðˆr:c  óêaaaa€\^V4p\^V4p\^V4pV^,^,^, o.pVPpV!\S4PSV,WE^, ,,4P 44V!RV,4SP V4o\ SPSV44EF wr‰\WX,^,\WX^,,^,^ 44p V!RV,4VVV3RlV 4p V!\V SV4P 44V!RV,4V3RlV 4p V!\V SV4P 44V!RV,4SP'd]SPPS8XdBSPPV 9d'V PSPP4p MRp \RV 44p\V4F¶p.p\ V 4FrwppV\V48¼dVPR4K)VV 8XdSPP MRpVPSP#VV,VVR74Kt V!\VSV4P 44V!RV,4K¸ EK RP%V4#)r%rc3óL<"€TFpSPSVSR4x€K R#5ir'r(r)s& €€€r7rÚ._CLIDemoCalendar.formatyear..Ïr-rc3ó(<"€TFpSx€K R#5ir4r[r/s& €r7rrÊÓr1r2Nc3ó8"€TFp\V4x€K R#5ir4r4r5s& r7rrÊár7r8rarÆ)r r9r:rör!rrÀrárzr;r<r´r�rÚindexrËr”rïr)r6rrrr=r¶r>r?rpr@rÛrrAÚ month_posrBrCrDr*r6r”r+r0sff&&&& @@r7rEÚ_CLIDemoCalendar.formatyear¾s\û€ô ��1‹IˆÜ ��1‹IˆÜ ��1‹IˆØ˜•E˜Q•; •?ˆØ ˆØ �H‰HˆÙ Œ$ˆw‹-× Ñ ˜x¨�z¨!¨q­S­'Õ1Ó 2× 9Ñ 9Ó ;Ô<Ù ˆ$ˆq�&Œ Ø×&Ñ& qÓ)ˆÜ! $×"8Ñ"8¸À!Ó"D×E‰HˆQä˜1�3˜q�5¤# a¨1­¥g¨a¥i°Ó"4Ó5ˆFÙ ˆd�1�fŒIö&Ù$ó&ˆEá Œl˜5 (¨AÓ.×5Ñ5Ó7Ô 8Ù ˆd�1�fŒIÜ.¡vÓ.ˆGÙ Œl˜7 H¨aÓ0×7Ñ7Ó9Ô :Ù ˆd�1�fŒIð×"×"Ð"Ø×&Ñ&×+Ñ+¨wÔ6Ø×&Ñ&×,Ñ,°Ô6à"ŸL™L¨×);Ñ);×)AÑ)AÓB‘ à � ôÑ1©SÓ1Ó1ˆFܘ6–]�Ø�Ü'¨žn‘F�A�sØœC ›H”}ØŸ ™  RÖ(ð78¸9´n˜D×.Ñ.×2Ò2È$ð🠙 Ø ŸO™O¨C°­F°AÀS˜OÓIöñ-ñ”,˜u h°Ó2×9Ñ9Ó;Ô<Ù�$˜•(– ô#ñ/FðJ�w‰w�q‹zÐr:rÆr4rKrL) r@rArBrCr8rïrrErDrEr§r¨s@@r7r±r±‹s%ù‡€÷+ð ¸$ô ô,÷02ô2r:r±có6aa€]tRtRtoRV3RlltRtVtV;t#)Ú_CLIDemoLocaleCalendariócó4<€\SV`!V/VBWnR#r4r³rµs&&*,€r7r8Ú_CLIDemoLocaleCalendar.__init__ôr¸r:rÆr4)r@rArBrCr8rDrEr§r¨s@@r7rÑrÑósù‡€÷+÷+r:rÑcód€\Tu;8:d \8:gM\V4hV\nR#r4)r+r1rr=rr¦s&r7rrþs!€Ü �\Ö +¤VÖ +Ü! ,Ó/Ð/Ø!„A†Nr:có0€\\WV44R#)z1Prints multi-column formatting for year calendarsN)rîr<©Úcolsr+Úspacings&&&r7rgrgs€ä Œ,�t wÓ /Ö0r:cóLa€VR,pVPV3RlV44#)zEReturns a string formatted from n strings, centered within n columns.rüc3óD<"€TFqPS4x€K R#5ir4rõ)rÿr=r+s& €r7rÚformatstring..søé€Ð9±D¨qŸ™ ×*Ð*³Dùsƒ rrÖs&f&r7r<r<s!ø€à ˆs…N€GØ �<‰<Ô9±DÓ9Ó 9Ð9r:i²cóü€VR,wrr4rV\P!W^4P4\, V,^, pV^,V,pV^<,V,p V ^<,V,p V #)zBUnrelated but handy function to calculate Unix timestamp from GMT.:NrNN)r{r|Ú toordinalÚ _EPOCH_ORD) Útupler�rr”ÚhourÚminuteÚsecondrÒÚhoursÚminutesÚsecondss & r7rr!sh€à-2°2­YÑ*€D�˜FÜ �=Š=˜ aÓ (× 2Ñ 2Ó 4´zÕ AÀCÕ GÈ!Õ K€DØ ��G�d�N€EØ�B�h˜Õ€GØ�b�j˜6Õ!€GØ €Nr:cóp €^RIpVPRR7pVPR4pVPR4pVPRR\^RR 7VPR R \^R R 7VPR R\^RR 7VPRR\^RR 7VPRRRRR7VPRRRRR7VPRRRRR7VPRRR R6R"R#7VPR$R%\^R&R 7VPR'R(\R)R*7VPR+R(\R,R*7VP V4pVP 'd:VP'g(VPR-4\P!^4VP VP3p\PP4pVPR!8XEd5VP'd(VPR.4\P!^4VP 'd\!VR/7pM \#4pVP%VP&4VPp V f\P(!4p \+W•P,R07p \P.P0P2p VP4f&V !VP6!VP43/V B4R#V !VP6!VP43/V B4R#VP 'd\9WvR17pM \;VR27pVP%VP&4\+VP<VP>R37p VPf VP@V R4&VPBV R5&M\EVP4VP4fVPF!VP43/V Bp MTVPfVPF!VP43/V Bp M(VPH!VP4VP3/V Bp \P.P2p VP'd@V PKVP4p \P.P0P2p V !V 4R#)7ræNT)Úcolorztext only argumentszhtml only argumentsz-wz--widthz width of date column (default 2))ÚtypeÚdefaultÚhelpz-lz--linesz)number of lines for each week (default 1)z-sz --spacingz"spacing between months (default 6)z-mz--monthszmonths per row (default 3)z-cz--cssrzCSS to use for page)rérêz-Lz--localez)locale to use for month and weekday namesz-ez --encodingzencoding to use for outputz-tz--typeÚtextÚhtmlzoutput type (text or html))réÚchoicesrêz-fz--first-weekdayzAweekday (0 is Monday, 6 is Sunday) to start each week (default 0)r�Ú?z year number)Únargsrèrêrzmonth number (1-12, text only)z/if --locale is specified --encoding is requiredzincorrect number of argumentsr“)rurt)r´r„rÆ)rrr=r¶)rërì)&ÚargparseÚArgumentParserÚadd_argument_groupÚ add_argumentÚintÚ parse_argsr„ruÚerrorrqÚexitr{r|ÚtodayrèrrrrÚ first_weekdayrrÚdictrtÚstdoutÚbufferÚwriter�rvrÑr±rÚÚlinesrØrÛr—rErrs) rŽrðÚparserÚ textgroupÚ htmlgroupÚoptionsr„rør6ruÚoptdictrýÚresults & r7Úmainr+s€ÛØ × $Ñ $¨4Ð $Ó 0€FØ×)Ñ)Ð*?Ó@€IØ×)Ñ)Ð*?Ó@€IØ ×ÑØ ˆiÜ ˜!Ø /ðôð ×ÑØ ˆiÜ ˜!Ø 8ðôð ×ÑØ ˆkÜ ˜!Ø 1ðôð ×ÑØ ˆjÜ ˜!Ø )ðôð ×ÑØ ˆgØØ "ðôð  ×ÑØ ˆjØØ 8ðôð  ×ÑØ ˆlØØ )ðôð  ×ÑØ ˆhØØ Ø )ð ôð  ×ÑØ ÐÜ ˜!Ø Pðôð  ×ÑØØœØ ðôð  ×ÑØØœØ -ðôð ×Ñ Ó%€Gà‡~‡~€~˜g×.×.Ð.Ø� ‰ ÐFÔGÜ �Š�Œ à �^‰^˜W×-Ñ-Ð -€FÜ �M‰M× Ñ Ó !€Eà‡|�|�vÕØ �=�=ˆ=Ø �L‰LÐ8Ô 9Ü �HŠH�QŒKØ �>�>ˆ>Ü$¨FÔ3‰Cä“.ˆCØ ×јG×1Ñ1Ô2Ø×#Ñ#ˆØ Ò Ü×-Ò-Ó/ˆHÜ ¯k©kÔ:ˆÜ— ‘ ×!Ñ!×'Ñ'ˆØ �<‰<Ò Ù �#×$Ò$ U§Z¡ZÑ;°7Ñ;Ö <á �#×$Ò$ W§\¡\Ñ=°WÑ=Ö >à �>�>ˆ>Ü(°uÔL‰Cä"°Ô7ˆCØ ×јG×1Ñ1Ô2ܘŸ™¨'¯-©-Ô8ˆØ �=‰=Ò Ø"Ÿ?™?ˆG�C‰LØ"Ÿ>™>ˆG�CŠLä ˜GŸM™MÔ *Ø �<‰<Ò Ø—^’^ E§J¡JÑ:°'Ñ:‰FØ �]‰]Ò "Ø—^’^ G§L¡LÑ<°GÑ<‰Fà—_’_ W§\¡\°7·=±=ÑLÀGÑLˆFÜ— ‘ × Ñ ˆØ × × Ð Ø—]‘] 7×#3Ñ#3Ó4ˆFÜ—J‘J×%Ñ%×+Ñ+ˆEÙ ˆfŽ r:Ú__main__) ræéérérr rrr rr rr4)Irérqr{Úenumrrr„rˆÚ itertoolsrÚ__all__Ú ValueErrorröÚ IndexErrorrrrYrrr™r^r�rrrrr r r r—r ržr r£Úobjectrrrr�r”rrr±rÑr=r¬rrrÖr ròrïr"rrrrrrErrHrÚ _colwidthÚ_spacingrgr<ÚEPOCHr|rÝrÞrrr@r[r:r7Úrsèðñ7ó Ûß%ÛÝð !Ð ð !Ð 5ð !Ð7Hð !Ø ð !Ø#ð !Ø%/ð !Ø1:ð !ØHð !ð ð !ð&ð !ð(6ð !ð8Lð !ð ð !ð ".ð !ð ð !ð ð !ð %ð !ð '1ð !ð 3:ð !ð ð !ðð !ð"ð !ð$*ð !ð ð !ð!ð !ð#,ð !ð.8ð !ð:Dð !ð ð !ðð !ð!,ð !ð.8ð !ð:Bð !ð ð !ð ð !€ð €ô @˜  Jô@ôX˜*ôXò Kð ô ˆGó ó ð ð  ôˆ'óó ðò <€÷ñ÷&ññ( ˜$Ó €Ù ˜$Ó €ñ˜dÓ #€ Ù ˜dÓ #€ òBò Gò:ò'òò?òòôEJˆvôEJôPu<�8ôu<ôpF@�8ôF@÷R ;ñ ;òôO˜ôOô*H˜ôHô(e�|ôeôP+Ð/Ð1Aô+ñƒN€à× Ñ € ò"ð ×#Ñ#€ Ø �‰€Ø‡|�|€Ø × Ñ € Ø �)‰)€Ø � ‰ €Ø �<‰<€Ø �‰€ð € Ø €ð$¨Xô1ð !*°8ô:ð €Ø �]Š]˜5 ! QÓ '× 1Ñ 1Ó 3€ òôoðd ˆzÔÙ†Fñr: