HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/zsh/functions/Calendar.zwc
�5.8.12�t�debian/zsh-common//usr/share/zsh/functions/Calendar/after2fx��debian/zsh-common//usr/share/zsh/functions/Calendar/age�t�debian/zsh-common//usr/share/zsh/functions/Calendar/before8.�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar8���debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_add�FZ��debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_editF]���debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_lockfiles]����debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_parse���,�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_read�kaB2�&�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_scandatek/+D�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_show/�/6
l�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_showdate�/�1�	��debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_sort�1A�f�dқCA� �4DhACf �L�A�f�۬��ACG,DA��,�d�k�AB �yF��AB C���d���yCF��A���A#�A�	�1A.$r+��9A,%-AB(�	���k��4}�����	F��A�	',���AC
',�+�A4C'4MEpE�A�g,��A�C��ACf�ۤ�A,2pyA�
$+�0�A60PA:l0;A���F��A�F��qA�F��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# == 1 timefmt�%Y/%m/%d:%H:%M:%S��timefmt��1�:�AGEREF�tmp�1�AGEREFintegermtime�vals�1�date1date2REPLYREPLY2�AGEREFafter mtime >= date1 before mtime < date1 print��0: must be named 'after' or 'before'�A�f�dқCA� �4DhACf �L�A�f�۬��AC	G,DA�	�,�d�k�AB(�y
F��AB C
���d���yC
F��A��
<�;A+�A �A.,r+��9A�-	1A-
A..0QqA.0��AB(����k��4�����F��A�',,I�AC
',h+�A��1A.8r+��9AB(C���k��4Q����CF��A�',�I�A',�+�A4'���EE4ACg,LdA\�*�&Af�ۤ�A,EyA��1AG�
�A�1A.Hr�[9ABCf�۔��CF��AJ$q	ABf�ۤ�F��A.M4yqAP�AS$qACF��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# >= 1  �# > 1 timefmt�%Y/%m/%d:%H:%M:%S�timefmt�%Y/%m/%d��timefmt��1�:�AGEREF�tmp�1�AGEREF��2�:�AGEREF2integermtime�vals�1�date1date2REPLYREPLY2�AGEREF�AGEREF2�AGEREF2�AGEREF2�2,�1� date2 = date1 + REPLY �AGEREF2 date2 = date1 + 24 * 60 * 60  date1 <= mtime && mtime <= date2 A�f�dқCA� �4DhACf �L�A�f�۬��ACG,DA��,�d�k�AB �yF��AB C���d���yCF��A���A#�A�	�1A.$r+��9A,%-AB(�	���k��4}�����	F��A�	',���AC
',�+�A4C'4MEpE�A�g,��A�C��ACf�ۤ�A,2pyA�
$+�0�A60PA:l0;A���F��A�F��qA�F��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# == 1 timefmt�%Y/%m/%d:%H:%M:%S��timefmt��1�:�AGEREF�tmp�1�AGEREFintegermtime�vals�1�date1date2REPLYREPLY2�AGEREFafter mtime >= date1 before mtime < date1 print��0: must be named 'after' or 'before'�A�f�dқCA�F <A0C'p�����<`A,�p���� HA`�'h������j"�یEE$E8A4GTt�����J0A,CXx���0PA��p�h�A4�Gp��,Px���Agp��AB�f��L �FT�AB�f��Lp�FT�AB���4��FT�A�f�۬�ABC��ۜ�A	x	�	�	A,��	AB���ۜI
�
�
�
ABC���U�,��,�ABC��ۜ
e���AB���ۜ�A
p
 �
�
A���A"�
A���1A.#r�l�A$<Q
AC	f���A�	��F��A,(%A)HqA+�AB/���FT�A
',�AC
�pz��@`A��
NMA.7r}�<A8�A,9z���A,:@%A"";R`Ruru��&�A<NCA<�
uA�C�u0��A���1AB�
�A,C`�A.D@QAE�A,F`A.G@qA C��f�۔IA�FT�Ax\u0"A,OP�A\�
1
APA C��f�۔AA�FT�0	A.X�0"rA,]$�A\��
1
A^LA ���f�۔�AFT�0
�A��,Q0
Aq�0	Av�0"
A{�0"A�$0�A�X0
�
A,���A��0	�A.�t�0	�l�A.��u0;A�&��F��A'FT�A,�z��EA.�@uA�(���A)F!AB�P��A��*�3�$A��A��*1A.�r+�r{�A.��IQA.�r+��l�A.��+��Ad,�1A,f��+�AC,��F��A�,FT�A.��A�-&qA\��-jq"�A �.��ۜ�۔IA.��uA�/��ۜ�#��A�0\1GA��AdC0�+�A.�r+�[9Al�0�1A�0���۔�
A�0��F�9A1FT�A��QA.�r+��l�A.��+��Ad�2�1A�2f��+�A�2��F�A3FT�A.��A�4�A��AC4��ۜ���A�4��ۜ!EA�4��F�]A�5FT�A6&qA�+�#0	�A.���0	�A.���0	;A.���A.��� AX�;
�	A�%!A�;��F�9!A<FT�A�<f�!۬�"A"��
A"C=f�k�4i"A��=�1A��"A>f��t�"AC>f��"�A�>f��t#AT�>�	1A�$#A?F�U#�A�?f�q#EA�@'p�#�#AB�@�X$�4sq$�$�@FT�A"��A�\AlCB5[�YA��B�A
�
A"A��C��A"�C���4�$�$"�Cf%(%L%" �C�%fd%L%� D�%f�%L%A"A�D&�qABEf�%�A"EF&�AFF,&�ApCF,��e&AB�FF�&�&�F&'A%'A,!x'�'A�#
1A#�
�'A$!(A.%�(�(qA'()A.(�)A�+	1A+�
�)A-�)A.|*qA0�*A�M�A4�*ACMF�%+A�Mf��tq+A�Mf��++�A4N�1A8�
�+ACNF��+A<�,AlCO��A=�,A�O�-5-A.?�i-qA.A��&A�P%xAtEA.Er�-	.A.F��.A,I�!/AD�R�'�AJ�/A0SD�$��۔���0�E�0AM81A"Od1O�1QAP�
�+AQ�1A��T1ARL2A,S��2A0UD�$��۔��]3�E�3QAU�3AX�1A��V1�0A[�
�+A�W��A\ 4A�W��ۜHu4�4A�_	�AV_2���4�4�!5I5A.`EH��A�X�|5�5Ah6qAj�6A�m�1Am�6Ao\7�Ar8A"tL8tp8A^v�1Av�8AwL9A��^�515Az�
A"A��^11A{�9A�C_1A!C_DA"f�۔�&AP�_	�A~�9A�9A`��F�	:QA��:A��:qA��a1A!�aD�:f�۔�&APb	�A�;A��9A�b��F�9;QA��;A��:A4�d�%1%A��
�+Ae!1A&��;�A,�J�;A|�eD�$IA"�Iff���,LA,Cf&�۔���<�;=-=�;�;q
A,��m=A0�gD�$��۔���>�E1?A�h�"1A�p?A��h1
A�hfj���?Ai��F��?A�AQ
A�ifj�AA�Aj��F�eAA�AA.��B��A��
A"A�kf�k�4�BA8�l,��BA�l�0C�deC�&A"��C�mf�k�4�CACnF&�CT�niA"�r�$oFr�$ACof�k�4�$emulatesetoptextendedgloblocallineshowlinerestlineREPLYREPLY2userangenobackupdatefmtcalendardonefileschednewfilewarnstrmywarnstrnewdateintegertimestartstoptodayndaysnextshowndonenodoneintegerverbosewarntimemywarntimetcalctschedrstatremainingintegershowcounticountrepeatingrepeattimereschedshowallbriefcalendar_entriescalendar_addlinestimescaloptsshowproglockfilesmatchmbeginmendtmplinesreplyzmodloadzsh/datetimereturnzsh/zutilzsh/filesb:zf_lnautoloadcalendar_�add�parse�read�scandate�show�lockfiles�zstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendar�calendar.new.�HOST.���:datetime:calendar:�done�filedonefiledonefile��calendar.done��:datetime:calendar:�show�progcalendar_show�:datetime:calendar:�warn�timewarnstrwarnstr�0:05��:datetime:calendar:�date�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y��warnstr warntime = warnstr calendar_scandateprint�warn-time value '�warnstr' not understood; using default 5 minutes�warnstr�5 mins� warntime = 5 * 60  warntime = REPLY �calendarintegeroptioptrestoptarg��argv�opti+1�� opti++ ��argv�opti��2����argv�opti��3,�1���optbreak�BCnS��optrest opti < �# �argv�++opti���0: option -�opt requires an argument.��optarg brief <= 0 ��0: option -�opt requires a positive integer.�calendarshowcount showcount <= 0 ��0: option -�opt requires a positive integer.����s.:.�optarg� showall = 1  brief = 1  done = 1  nodone = 1  remaining = 1 showcount��0: unrecognised option: -�opt��optrest�1��optrest�2,�1�calopts�argv�1,opti�shift��( opti )� done && !nodone donefile �# > 1 || (�# == 1 && remaining) �EPOCHSECONDS��0: failed to parse date/time: �1��REPLY���%�:��%D{%Y}�����%�:��%D{%m}�����%�:��%D{%d}��strftime�%Y/%m/%d���y/�m/�d��today�%u��start �# && !remaining ��1�2,�1����0: failed to parse relative time: �1� stop = REPLY ��0: failed to parse date/time: �1� stop < start �datefmtREPLY2�datefmt�stop��0: requested end time is before start time:
  start: �REPLY
  end: �REPLY2���( start + ndays * 24 * 60 * 60 )� �# �Usage: �0 [ start-date-time stop-date-time ]�autoloadmatchdate�donefile�newfile verbose �start: ��datefmt�stop: � remaining �none��datefmtmycmds���TMPPREFIX:-/tmp/zsh�.calendar_cmds.�$�zf_ln��<<<''��mycmdszsh/systemb:zsystemzsystemsupportsflockzsystem/dev/nullzsystemcalendar_lockfilesexitcalendar_read�calendar_entriescalendar_parse�linecontinue t = ��reply[time]� restline�reply�text1���reply�warntime�� mywarntime = t - ��reply[warntime]� mywarnstr��reply�warnstr�� mywarntime = warntime mywarnstr��reply�rpttime�� repeattime = ��reply[rpttime]�  repeating = 1  repeating = 0  verbose �Examining: �line��  Date/time: ��datefmt�sched�  Warning �mywarntime seconds (�mywarnstr) before� shown = 0  brief tmplines���(f)line�����F�����tmplines�1�brief�����showline��b�����\n����:space:�����#����\n��������\n�������match[1]�match[3]���showline%%��:space:���� showall || (t >= start && (remaining || t <= stop || icount < showcount)) ���qq�showprog����qq�showline� icount++  t <= EPOCHSECONDS  shown = 1  tsched = t - mywarntime  tsched >= start && tsched <= stop�due in ��mywarnstr�: �showline����qq�showprog����qq�showline� tsched < start  shown && repeating �datefmt�repeattime�newdate���:space:���restline��:space:���calendar_addlines��newdate�restline� tcalc = repeattime, resched = 1  tcalc = t  tcalc - mywarntime > EPOCHSECONDS  tsched = tcalc - mywarntime, resched = 1  tsched = tcalc  !shown  resched = 1  resched && (next < 0 || tsched < next)  next = tsched  shown  done != 3  done = 3 �Failed to append to �donefile� done != 3  done = 2 �newfile done != 3 �Failed to append to �newfile� done != 3 �next�����(@)zsh_scheduled_events#*:*:����I�calendar �s������qq�sched�calendar���calopts[@]���No more calendar events: calendar not rescheduled.
Run �"calendar -s�" again if you add to it.����qq�showprog����qq�showline� done == 2 �calendar.old�Couldn't back up �calendar to �calendar.old.
New calendar left in �newfile.� rstat = 1 �newfile�Failed to rename �newfile to �calendar.
Old calendar left in �calendar.old.�nobackup�newfile�calendar_addlinescalendar_add�nobackup ��#lockfiles� �lockfiles�rstatA�f�dқCA�F <AC'p��A�'p5A�'p"uA,Cp���z��,@A$��p�X���A(��,L`x��AG�A C�p��@hA ��p����A�gp��ACf۬�AA���
A�f��z��A��0	A.�0	bA."x�0	;A�	F,�A�
FHaABC��ۜ�� .DiA,/��AC'p�A`��
A�F$aA���F��A
F,�A�
�	E	A7�	A��A��ۤ�	
ACGpT
AB���ۜu
�
�
;�
	A�pۜ���A.=��A4��%1%A?�
iA@�AC1A.Ar
P
ABx
�
A.Cr�
�
AC�pۜ��A.F��qABIr)IE�EA��pۜ��]A.KE��A�'p(EA|T�1A.TrY}A.U��Ad	C�JA4	uI�GA�C�A]�A���1A"���44`"�f��� �,f��AC&��AB�FT�F��A����1�Ag�AF�Ax����Aj�
�AT��!ABCF$iC&�A����A�}�|A.pri
A,q�9A���t1tA.rru�Ax��
AwR�A���1AN�2pr��r-u	A�x
A�!&�A"_�A�A�$&X�YA,�,}A�*%�AT�*�A.�r��
A+���A.�,�A\�+�
1
A�=A�,�pۜ���A�,���A���@EA,���AF��AV�2�r�ri�A.� �	AB�ri)
�EEA.�E� A,��iA��2�1A�2F$!A�2�<!e!A��!A�C3�1AC3��ۤ!"
A�3��ۜE"�
h"A�3�pۜ��"�A.���A C6�%iA��6�8�"AB�6F$i�6&�"A7�#A#ALC7�1A��#A�7��۔��%$A�x
A��8�1Af�2�rI$�2`�
�ri}$A,���$A"�r�uC9&�$Ah�9�AN�2pr	%M%riq%A"��%:&�%A�x
A�:��۔��iAB��%C;��۔���%A��;�A�&A\<�
1
A<fj�Q&AC<��F��&A��'�AB��%$�=(��۔���'Al�>�1A"�8(�>fj�](A�>��F��(A��'A"�)@f�k�4�)A�@F�%*emulatesetoptextendedgloblocalcontext�:datetime:calendar_add:�vdatefmt�%Y%m%dT%H%M%S��[[:digit:]]�calendarnewfileREPLYlastlinetextoccurcalendar_entrieslockfilesreplyoccurrencesintegermy_datedonerstatnolocknobackupnew_recurringintegerkeep_my_uidparse_newparse_oldmatchmbeginmendmy_uidtheir_uidautoloadcalendar_�parse�read�lockfiles�getopts�BL��optnobackupreturnshift��( OPTIND - 1 )�zstyle�contextcalendar�filecalendarcalendar�/calendar�calendar.new.�HOST.��addline��*�calendar_parse�addlineprint��0: failed to parse date/time�parse_new���(@kv)reply�� my_date = �parse_new[time] �contextreformat�datedatefmt�contextdate�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y�strftime�datefmt�parse_new�time���REPLY �parse_new[text1]��parse_new�rptstr� new_recurring = 1 �parse_new�rptstr�CANCELLED done = 1 �addline��b�����:space:��#�RECURRENCE��:space:���������:space:��������:space:������vdatefmt��parse_new�schedrpttime�����match[1]��REPLY��match[3]���addline���\n���\n���parse_new�schedrpttime���  # RECURRENCE �REPLY�uidpat�(|*[[:space:]])UID[[:space:]]##(#b)([[:xdigit:]]##)(|[[:space:]]*)��addline���uidpat����U�match�1�� ! nolock zmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendar/dev/nullcalendar_lockfilesexitcalendar_read�my_uidline�calendar_entries�linecontinueparse_old���(@kv)reply�����uidpat����U�match�1���their_uid�parse_old�rpttime��new_recurring�parse_new�text1������:space:��#���OCCURRENCE���:space:��������:space:������:space:����CANCELLED�����:space:����continue new_recurring continue�addlineoccurrences�text��b������:space:��#���OCCURRENCE���:space:��������:space:������:space:�������:space:���������:space:����occurrences�match�2���match[1] �match[3]� ! ��#occurrences� �my_dateoccurrences�XXXXXXXXTXXXXXX �REPLY����o�occurrences���occur%%��:space:�����REPLY��:digit:����c8�T��:digit:����c6���b������:space:��#���OCCURRENCE��:space:�������REPLY���:space:�������:space:��������:space:�������match[1]���match[2]��occur��match[3]���  # OCCURRENCE �occur��addlineparse_new���(@kv)reply�� my_date = ��parse_new[time]� �context�contextdatefmt�datefmt�calendar_entriescontinueparse_old���(@kv)reply�� ! done && ��parse_old[time]� > my_date �addline�keep_my_uid���uidpat����U�match�1��continue�parse_old�time��my_date�addline done continue�addline�newfile ! nobackup �calendar.old�Couldn't back up �calendar to �calendar.old.
New calendar left in �newfile.� rstat = 1 �addline�newfile !rstat �newfile�Failed to rename �newfile to �calendar.
Old calendar left in �calendar.old.� ��#lockfiles� �lockfiles�rstatA�g,A���PxACG��AX�
�A�A���A��(EA\c&�CNACF�A"r��TABC��ۜ�Hl�A$�A�5�A��1A"���4�"f4Tx C�f�x�A�&��ABCF�CFL�Af`u�A""��f�k�4A"&,�	Fdۜlocallinecalendarlockfileseditorintegercal_running �# editor��@�editor��VISUAL:���EDITOR:�vi��schedread�line�� calendar -s ��-�� ��-� cal_running = 1 zstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendarzmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendar/dev/nullcalendar_lockfilesexiteval�editor�$calendar ��#lockfiles� �lockfiles cal_running calendarAC�,PA(�'p��E�A�aA,�A�CL7Ld�At��
1
A0����bsۜ��A��(�A&PAd��1A"�&�c+RiA,��Af�c+�lIAT��	1	AlA �f��L�A�A`�1A�f��,8A�fhۤ�qACF�AP		�A$�
%AC	f�c+�lIA.&�A�
�A.(���A,)�
Ad�1A&�c+ACf�c+�l��A���F��A
F��AF��localfilelockfilemsgdoneintegerlockattemptsloadtriedlockfile�file.lockfilei = 0i <= lockattemptsi++ �file�lockfile/dev/nulllockfilesbreak�msgdonemsgdone���lockfile�: waiting to acquire lock��msgdone ! loadtried zmodloadzsh/zselect loadtried = 1 zsh/zselectzselect��( 10 + RANDOM * 190 / 32768 )�sleep�msgdone��msgdone//�/ �msgdone��lockfiles��1��msgdone�Failed to lock �file; giving up after �lockattempts attempts.
Another instance of calendar may be using it.
Delete �lockfiles if you believe this to be an error.��msgdoneprint�msgdonereturnAf�dқCACF <A�'p��A0C	'p� @l���A �	�p��$A$�	�8r{�Xl��A�
gp��Af۬�4A�g|�<�A%�AX�
�	A2�A���F��A
F`�ABCf4��+�CF`�A,:}�A,;�A,<AuA,=�	A�N1A�&HA�C�]0 �ABC��۔�X����F�EA,G�		A.H!	U	0*�	A�C��
AC�4q
۔�
�
A,N�
!A,O=yA.R�	qA.U��0U5
A,Z�
�
A,[�A!1A.\r5A,]��A,^=tA,_��A.`P�
AC�4�۔yA,e��A,f9qA.i�yqA.l��0uA,q�MA.s��0;A�&8AD�g1gAF|2`�
Q���A~A,�X�A,�}yAl��1A��A.��yA��!�A�AD�!�1A�!�4�۔�A"&8A0�"�A�aA#&8A,��!A,��!Al��1A�9A.��!A,��A�C%�A�%A�%��ۜl��A,�@�An��1A��
�A.��A�(,@=A�C(�A.��q�AB�(��۔�X���(��F��An��1A��A.��		A.�=�A,���AC,F`�emulatesetoptextendedgloblocalvdatefmt�%Y%m%dT%H%M%S�REPLYREPLY2timefmtoccurrenceskiptry_to_recoverbeforeaftermatchmbeginmendintegerthenreplacedfirstschedschedrptoccurrencesautoloadcalendar_scandatetypesetreply �# != 1 print�Usage: �0 calendar-entry�returnreply�time���( REPLY )�schedrpt��reply�time��reply�text1���REPLY2����:space:����reply�text2���reply�text1��true��reply�text2����b�����:space:��#��RECURRENCE��:space:��������:space:��������:space:�����strftime�vdatefmt��match�2���format: �vdatefmt, string ��match[2]��schedrpt�thenreply�text2����match[1]���match[3]##[ 	]#����b������:space:�,��WARN��:space:������asm�reply�time��match�2�reply�warntime��REPLYreply�warnstr���match�2�%%��REPLY2��reply�text2����match[1]���REPLY2##[ 	]#��reply�text2����match[1]���match[2]##[ 	]#����b������:space:�,��RPT��:space:�����before��match�1���afterCANCELLED����:space:����reply�text2���before��match[2]##[ 	]#��reply�rptstr�CANCELLEDreply�rpttime�CANCELLEDreply�schedrpttime�CANCELLED�schedrptreply�text2���before��REPLY2##[	]#��reply�rptstr���after%%��REPLY2��reply�text2���before��after##[[:space:]]#����b������:space:��#��OCCURRENCE��:space:��������:space:�������:space:��������:space:��������occurrences���match�2������match[3]��reply�text2����match[1]���match[4]##[ 	]#��break��reply�rpttime����reply�rptstr��CANCELLED now = EPOCHSECONDS replacedreply�schedrpttime� schedrpt >= now  ��reply[schedrpttime]� < now || replaced ��reply�schedrpttime����reply�rptstr�� REPLY <= ��reply[schedrpttime]� reply�schedrpttime� ��reply[schedrpttime]� > now && firstsched == 0 replaced ��#occurrences� timefmt�occurrences��timefmt��occurrencereplaced�occurrences�occurrenceCANCELLED�occurrence�format: �vdatefmt, string �occurrence� then > now && then < ��reply[rpttime]� reply�schedrpttime��firstschedreply�text2����reply[text2]##[[:space:],]#��A(C'+�E<A�g�PA�PiA�%�A��<A|C�1
A.r!9An�1AmA.E��A��H�localcalendarlinelines���f����<$calendar���calendar_entries�lines�line��:space:��� ��#calendar_entries� calendar_entries��1���\n��linecalendar_entries��line���&�A&f�dқCAC&F <AB�&fp�L��&F��A�('��A)'�`�A�)'��AC*'�TqA�*g���A,�*����sj{s��+�+#�C�2�K��A+'��AC-'���A�-'���A.'�UA�.'���A�/'��!A�/'(IA0'�"�AD�0���4"�Pdx��r�C��A8�0g�z���	,	D	\	x	���	�	A 1����	�	�	A�1g
0
\
A2G�
�
A 3��
�
8dA C3�����A\�3�$Dh����E
EB�EB�EB#A`4�A4f
=
z��A4C4Km
0
A��
0
A��
0"A�(0jA�X0�A��0�A��0�A�p0�A��0	;AC>F��AC?F��A,��+�AC@��<T�A��)�A�A,<�A,T�A�	1AHA.�uqA.
��A��1AN2pr��r�	A,�iA.��q	A,<�A,T�A.��A,	�A�IG� A,( 5A�)�A.)�	�
A,*d�A,+x!A,,�IA"-rq�"-�-�A..\
�A�0�A0A,2 aAV3�A.3�	�A,4d�A,5x!A"6r��
"66<A.7\
�A�:�A:pA,< �AV=�A.=�	�A,>d�A,?x�A"@r!�"@@HA.A\
�A|D�1AD|A,F �AG�1A.G�	�A,Hd�A,Ix!A,J�IA.K\
�ALN�1ANA,O UA�P�1A.P�	�A,Qd�A,Rx!A.S\
�A�V.�-AVHA"Y�Y��A,[ �A.\�!1!A.\�	�A,]�!A,^�A,_"�IA,`d�A,axqA,b��A,d\
�A,e0
�A,f8 A.g, Q A"jx jd�A[�1Al� A,n�
!!A,oL!q!A�u�
1
A~uR�r�!�!R�r�!)#r�!1$Axu%A.y��iA,{��%A"|�&_F�&�&A|�_�1A 'AXC`�0$�'A,���A,��A,�"�IAD�8!!�(�(A.�0
�0$�(A,���A,�,	�A,�"�IAD�8!!�)�(A.�0
�0$*A,�"��A,�,	�A,���AD�8!!�+�+A.�0
�0$�+A,�,	�A,�"�!A,���AD�8!!`-�+A.�0
�0'�-A,�"��A,�,	�A�j��.ۜ��.	/AD�8!!@/�(A.�0
�0'e/A,�,	�A,�"�!A�l��.ۜ��.�0AD�8!!�0�(A.�0
�0$
1A,�"��A,��A,��qAD�8!!h2�2A.�0
�0$�2A,��A,�"�!A,��qAD�8!!4�2A.�0
�0r14ACsg�45�A�s'�05Q5AD�8!!�5�5A�tg���5A0u%�5��sj{s��+�+#�C�2�K����sA��5A�x6ACv��.ۜ�6�6	7A"� 7�h7A��7ACw��.ۜ��.	7A�w��.ۜU8	7A�w��.ۜ"�i8	7A.�0
�0q}8A�x6A��y<�90�9 A��90,:!A�P:0*r{�"A\�\
��:��
�AC|��.ۜd�:	7A�|��.ۜx�:	7A�|��.ۜ��:	7A�}��.ۜ��.	7A�}��.ۜU8	7A~��.ۜ"�i8	7AD�8!!�:�5A.�0
�A���r1rA�;A��
1
A�;A|�1A.r�;U<#A.8�<A.��<A�_�^A�=AXC�J�.A	�;A\�1A�=A`>A\�1A?Al?A�Å�1A@AXÆ
1A.�}@A$AÇF��qA."�EA�A$,BA�'1A.'��B5C%A4hCA.5�5DqA.8�E�AP�	�A"@FA�)F�F&AÐF��AC���.ۜ��.�FA����.ۜU8	GAÑ��.ۜ"�i8AGAIxGA|Ò�1AK�GA�f�&�GuHA"NI��f�&-I�IA�F�&UJAt	C��-1-AU�JA����1AVKAC���.ۜ��.QKA����.ۜU8QKAÖ��.ۜ"�i8QKA���.۔���K�KAD���'1'A.^r�%L'A"_R�_M�A����A`KAd9MAC���.۔���K�MA���.ۜ4U8ANA"idNi�NAlOqAnmOA,p�uPA.q\
�A�Ü;�:A.sr�-Q(A"tR�tER�AXC�*1'AuKAwiRA�x1AxSAzDSqA|TTA����.۔���K]UA�à�A��UAt��A�&�UAC���.ۜPi8
VA"�0V�&dVA�|VA�OqA��VA,��uPA.�\
�A����<1<AV�2�r�W�)r��W*A,�r�C�A,��	�XA,���YAd���+1+A��YA,��uPA,�\
�A��YA� ZA���.ۜ�.�ZAC���.ۜ4U8�ZAè��.۔���K�ZA���.ۜ��6	7A�T[A"�\�<\AC���.ۜPi8i\A��\A$��A.�r�]+A"�R��	^�A�-^A,��uPA.�\
�A$��A.�r��^,A"�R���_�A��_A,��uPA.�\
�A����A��`Aö��.ۜB��:aA���.ۜB��:�aA�,bA��	1A�hbA��bQA��bA��bA�cA�lcA$��A.�r��c-A"�R���d�A��dA,��uPA.�\
�A���1A.�r�}e.A�QfA,��uPA.�\
�A���1A.�r��f/A��gA,��uPA.�\
�A|C��.�(A�PhAþ�!1!A�|hA`��
A��hA<���1A.����h0AÿF��AiA�g�i�<�iAjA"�
�j ��G�i�<�j�jA�F��AC�F��QA
kA��F��A`���
A`kA<��1A.���k1AC�F��AC�g�2k��kA1A�
�kA,2k��kA.�kElqA,2k��lA.�k=mA ����.ۜ�i۔�m�mA" �
�j �G�i�<n-nA��F��emulatesetoptextendedglobzmodloadzsh/datetimereturnlocaltschars�[-,:[:blank:]]�tspat_anchor�(��tschars�#)�tspat_noanchor�(|*��tschars�)�schars�[.,[:space:]]�dayarrdayarrdaypat���schars�#((#B)(��(j.|.)dayarr�)[a-z]#~month*)�dspat_anchor�(|(#B)(��daypat�|)(#b)��schars�#)�dspat_anchor_noday�(|��schars�#)�dspat_noanchor�(|*��schars�)�repat�(|s)(|��schars�*)�monthpat�(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]#�integerdaysecs��( 24 * 60 * 60 )��[[:digit:]]�integeryearyear2monthmonth2day2hourminutesecondthenwdaywday2lineorig_linemnameMATCHMBEGINMENDtestrest_linematchmbeginmendintegerdate_foundtime_foundintegertime_okintegertime_starttime_enddate_startdate_endintegeranchoranchor_enddebugsetvarintegerrelativerelative_startreladdreldaterelsignnewaddgetopts�aAdmrR:st��opt anchor = 1  anchor = 1, anchor_end = 1  debug = 1  relsign = -1  relative = 1  relative_start = OPTARG, relative = 2  setvar = 1  time_ok = 1 shift��( OPTIND - 1 )�dspatdspat_nodaytspat anchor �dspat_anchor�dspat_anchor_noday relative �tspat_anchor�tspat_noanchor�line��b������\n��������\n����match�1�rest_line�match�2��dspat_noanchorrest��line���ibm����tspat���0-12��:��0-59���.:����0-59���.�-������:space:�����ap����.���:space:���m�.���:space:�����e����rest�match�3��match�5��match�7���i�p hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-12��:��0-59����:space:�����ap����.���:space:���m�.���:space:�����e����match�4� hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-12����:space:�����ap����.���:space:���m�.���:space:�����e��� hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-24��:��0-59���.:����0-59���.�-�����.���:space:�����e��� time_found == 0 ��line���ibm����tspat���0-24��:��0-59���.���:space:�����e��� time_found == 0  anchor �tspat_anchor��line���ibm����tspat����"���"����":����d��d��d��d����d��d����d��d�T���d��d����d��d����d��d����:space:������e����match�6��match�8��mbegin�3�date_end�mend��1� hour == 24  time_found && ! date_found �mbegin�2�time_end�mend��1��line��time_end+1,�1���b���:space:�����A�Z��A�Z��A�Z����+��0�9��0�9��0�9��0�9�����:space:�����e�����b���:space:�����A�Z��A�Z��A�Z�����+���0-12�����:space:�����e�����b���:space:�����A�Z��A�Z��A�Z�����+���0-12��A�Z��A�Z��A�Z�����:space:�����e��� time_end += ��mend[-1]� �line�1,time_start�1��line�time_end+1,�1� debug print�line after time: �line� relative == 0 && date_found == 0 ��bi����dspat���19�20��0�9��0�9����/���1-12����/���1-31���date_end�mend�5���bi����dspat���19�20��0�9��0�9����/����monthpat���/���1-31���date_end��bi����dspat���1-31����th�st�nd�rd���:space:�������monthpat���,���:space:������19�20��0�9��0�9���date_end�mend�6���bi����dspat����monthpat���:space:������1-31����th�st�nd�rd���,���:space:������19�20��0�9��0�9���date_end��bi����dspat���1-31����th�st�nd�rd���:space:�������monthpat���,����:space:�������strftime�%Y��EPOCHSECONDSdate_end��bi����dspat����monthpat���:space:������1-31����th�st�nd�rd���,����:space:��������EPOCHSECONDSdate_end��bi����dspat���1-31����th�st�nd�rd�/��1-12�����,���:space:�����/���19�20��0�9��0�9���date_end�mend�7���bi����dspat���1-12��/��1-31����th�st�nd�rd����,���:space:�����/���19�20��0�9��0�9���date_end��bi����dspat_noday�����daypat�������schars���integerwday_nowwdaystr���L�match�3��date_end�mend�2�wdays wday = ��wdays[(i)�wdaystr]� - 1  then = EPOCHSECONDS wday_now�%w��then wday_now < wday  wday_now += 7  then -= (wday_now - wday) * 24 * 60 * 60 �%m��%d���bi����dspat_noday��yesterday�today�tomorrow�now������schars������L�match�2��yesterday then -= daysecs tomorrow then += daysecs time_end�%H��%M��%S�date_end date_found || (time_ok && time_found)  date_found ��line�1,�date_start�1����bi����daypat����schars���mbegin�1���line�1,�date_start�1����line��date_end+1,�1�� time_found == 1  time_start <= date_start  date_start += time_end - time_start + 1  time_start <= date_end  date_end += time_end - time_start + 1  time_end + 1 < date_start ��orig_line�time_end+1,date_start�1�����schars�����orig_line[1,time_start-1]���orig_line[date_end+1,-1]�� date_end + 1 < time_start ��orig_line�date_end+1,time_start�1�����tschars�� time_found = 0, hour = 0, minute = 0, second = 0 ���orig_line[1,date_start-1]���orig_line[date_end+1,-1]�����orig_line[1,date_start-1]���orig_line[time_end+1,-1]�� anchor ��orig_line�1,time_start�1�����tschars���EPOCHSECONDS�EPOCHSECONDS�EPOCHSECONDS date_found = 1  debug �Time string: �time_start,�time_end:��'�orig_line[time_start,time_end]'� date_ok �Date string: �date_start,�date_end:��'�orig_line[date_start,date_end]'��Remaining line: '�line�rest_line'� relative  relative == 2 �relative_start�%Y:%m:%d����year�:��month�:��day����bi����dspat���-�����:space:����y�yr�year�yearly����repat�match�2� year2 = year + relsign * ��match[2]� ���year2�:��month�:��day���reldate month2 != month  reldate -= daysecs  reladd += reldate - then  reladd += relsign * ((365*4+1) * daysecs * ��match[2]� + 1) / 4 ��line�1,�mbegin�2��1����line��mend�4�+1,�1����bi����dspat���-�����:space:����mth�mon�mnth�month�monthly����repat�match�2� month2 = month + relsign * ��match[2]�  month2 <= 0  year2 = year + month2 / 12 - 1, month2 = month2 + (year-year2)*12  year2 = year + (month2 - 1)/ 12, month2 = (month2 - 1) % 12 + 1 ���year2�:��month2�:��day�� day > 28 true�reldate day2 >= 28 break reldate -= daysecs  reladd += relsign * 30 * daysecs * ��match[2]� �relative��bi����dspat_noday���-���th�rd�nd�st�����daypat�������schars������L�����match�4������schars���%%���schars����1,3����dayarr��I��test�� wday  wday--  reldate = relative_start + reladd �reldate�reldate���year2�:��month2�:1� day = 1 + (wday - wday2) + (nth - 1) * 7  wday < wday2  day += 7 �reldate newadd += (day - day2) * daysecs ��bi����dspat���-�����:space:����w�wk�week�weekly����repat�match�2� newadd += relsign * 7 * daysecs * ��match[2]� ��bi����dspat���-�����:space:����d�dy�day�daily����repat�match�2� newadd += relsign * daysecs * ��match[2]�  relative == 2 && newadd ��( relative_start + reladd )���( relative_start + reladd + newadd )� hd = h2 - h1  hd > 12  hd -= 24  hd < -12  hd += 24  newadd -= hd * 3600  reladd += newadd ��bi����dspat���-�����:space:����h�hr�hour�hourly����repat�match�2� reladd += relsign * 60 * 60 * ��match[2]� ��bi����dspat���-����:space:����min�minute����repat� reladd += relsign * 60 * ��match[2]� ��bi����dspat���-����:space:����s�sec�second����repat� reladd += relsign * ��match[2]�  relative  time_found  anchor_end ���schars�� reladd += (hour * 60 + minute) * 60 + second typesetREPLY REPLY = relative_start + reladd  �setvarREPLY2��line�rest_line� date_found == 0  anchor_end ���schars��nums�mname�%Y %b %d %H %M %S���year �mname �day �hour �minute �second��%Y %m %d %H %M %S���year �month �day �hour �minute �second��fmt�numsREPLY2��line�rest_line�A(�' +�8+�A�FL�A"�
�c+CF�c+�LA�fd۔}Ag��k#ABCf��L�C&AH(�'A>2P�
!rEaA|C��A62@�
y�
�AC%k#1QA�
UA%k#��A���A"�
�=�F���`��F,AA(C�CF�}AC	F�integerstartstopshiftprint��*�localzmodloadzsh/parameterreturn�DISPLAY�start�stop��commands�kdialog���KDE_SESSION_UIDkdialog��msgbox��commands�xmessage��xmessage�center�cmd�1��u�UIDgrep�cmd�1�/dev/null�cmdA�f�dқCA�F <Afp�L�A�����z��A�g4HABC�lۜ�4
TuA A~R�r+�۔R�r+���r+��4;A�Cl+�0۔A�&�A,��A.4�0G�4;AC �A.r+�
A, AA�&��AC&�Al��1AFR`R+��+�;,9A���Fd}AF,�A,"H+�A�&�0
��A
&�AC
&hAB.��G��AX
�	A0�AC��Fd�A�F,�A�C
�A5-A,6�A�7�A.7r+�AA"9r+��<	9��lA,:�YA�=�1A=�A,>��A.?��A����ACAB �@�۔��+�F,�A.E��qAB�f@�+��F,�A�&�A"M�C&,A�f��emulatesetoptextendedglobzmodloadzsh/datetimelocaloptmdatefmtintegeroptrreplysetzstyle�:datetime:calendar_showdate:�date�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y�shiftREPLY�f��datefmt�1�3,�1�print��0: -f requires a date/time specification�returndatefmtbreak optr  ! �# �Usage: �0 datespec [ ... ]� �# ��+����1�2,�1�� ! replyset �EPOCHSECONDSreplyset replyset calendar_scandate�optm�REPLYreplysetstrftime�datefmtA�f�dқCA�F <ACfp۬��A$�� 8\pr+��Ag ��A(C� ��<x�A�G�JABC��ۜi�
��APH"A8��! A��A"��48d"f���Cf��	A�&��ABCF0	CF|�A,r+��ACF�	AT��	1	A^R�r
�2Pr
�RaAF��A���\�Ad	�1A	f�aAC	�<y�A�	��aA8�
�A+A�l�A���
iA0,\)	ACF|	�	A"3�	�f|	�d-
A��
��A&6r�
A�
F|	�
AF��QA9�
A�F|	IAF��AX�
�	A�fj�	�AF|	!
A�F��AX
�	Afj��
	ACF|	EA�F��A�F|	iA"L�f�k۔3=emulatesetoptextendedglobautoloadcalendar_�read�scandate�lockfiles�localcalendarlineREPLYlockfilecalendar_entriestimeslines_sortedlines_unsortedlines_failedlockfilesintegerzstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendarzmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendarcalendar_lockfilesexit�calendar.new.��calendar_read���calendar_entries��calendar_entries�1�return�calendar_entriescalendar_scandate�line���(l.16..0.)REPLY�:�line�lines_failed ��#lines_unsorted� lines_sorted�����o�lines_unsorted����0�9���:����lines_failed[@]��print��line # BAD DATE� ��#lines_sorted� ���lines_sorted[@]���new�Writing to �new failed.� ��#lines_failed� �Warning: lines with date that couldn't be parsed.
Output (with unparseable dates marked) left in �new��calendar.old�Couldn't back-up �calendar to �calendar.old.
New calendar left in �new��Failed to rename �new to �calendar.
Old calendar left in �calendar.old��Old calendar left in �calendar.old� ��#lockfiles� �lockfiles�5.8.12�t�debian/zsh-common//usr/share/zsh/functions/Calendar/afterfx��debian/zsh-common//usr/share/zsh/functions/Calendar/age�t�debian/zsh-common//usr/share/zsh/functions/Calendar/before8.�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar���debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_addFZ��debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_edit]���debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_lockfiles����debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_parse��,�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_readkBa2&��debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_scandate/+D�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_show/�6
l�debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_showdate1�	���debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_sortA�fd�C��A� 4�DhACf L��A�f�Ҭ��ACG,DA��,�d�k�AB �yF��A BC���d���yCF��A���A#�A�	�1.A$r�+9�,A%-A(B	����k�4�}����	�F��A	�',���A
C',��+A4C'4MEpE�A�g,��A�C��ACf����,A2pyA�
$�+0�A60PA:l0;A���F��A�F��qA�F��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# == 1 timefmt�%Y/%m/%d:%H:%M:%S��timefmt��1�:�AGEREF�tmp�1�AGEREFintegermtime�vals�1�date1date2REPLYREPLY2�AGEREFafter mtime >= date1 before mtime < date1 print��0: must be named 'after' or 'before'�A�fd�C��A� 4�DhACf L��A�f�Ҭ��A	CG,DA	��,�d�k�AB(�y
F��A B
C���d���y
CF��A�
�<;�A+�A �.A,r�+9��A-	1A-
.A.0Qq.A0��A(B����k�4������F��A�',,I�A
C',h�+A��1.A8r�+9�A(BC���k�4�Q����CF��A�',�I�A',��+A4'���EE4ACg,LdA\*�&�Af����,AEyA��1AG
��A�1.AHr�9[ABCf�����CF��AJ$	qABf����F��.AM4yqAP�AS$qACF��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# >= 1  �# > 1 timefmt�%Y/%m/%d:%H:%M:%S�timefmt�%Y/%m/%d��timefmt��1�:�AGEREF�tmp�1�AGEREF��2�:�AGEREF2integermtime�vals�1�date1date2REPLYREPLY2�AGEREF�AGEREF2�AGEREF2�AGEREF2�2,�1� date2 = date1 + REPLY �AGEREF2 date2 = date1 + 24 * 60 * 60  date1 <= mtime && mtime <= date2 A�fd�C��A� 4�DhACf L��A�f�Ҭ��ACG,DA��,�d�k�AB �yF��A BC���d���yCF��A���A#�A�	�1.A$r�+9�,A%-A(B	����k�4�}����	�F��A	�',���A
C',��+A4C'4MEpE�A�g,��A�C��ACf����,A2pyA�
$�+0�A60PA:l0;A���F��A�F��qA�F��emulatezmodloadzsh/statb:zstatzsh/parameterautoloadcalendar_scandatelocaltimefmtvals�REPLYreturnzstat+mtime �# == 1 timefmt�%Y/%m/%d:%H:%M:%S��timefmt��1�:�AGEREF�tmp�1�AGEREFintegermtime�vals�1�date1date2REPLYREPLY2�AGEREFafter mtime >= date1 before mtime < date1 print��0: must be named 'after' or 'before'�A�fd�C��A�F <A0C'p�����<`A,�p���� HA`�'h������j"���EE$E8A4GTt�����J0A,CXx���0PA��p�h�A4�Gp��,Px���Agp��AB�f�L� �FT�AB�f�L�p�FT�AB��4���FT�A�f�Ҭ�ABC�����	A	x	�	�,A�	�AB�����
I
�
�
�ABC���U�,��,�ABC����
e���AB������
A
p 
�
�A���A"
�A���1.A#r�l�A$<
QA	Cf���A	���F��,A(%A)HqA+�AB/���FT�A
',�A
C�p��z@`A�
�MN.A7r}<�A8�,A9��z�,A:@%A"";`RRuru��&�A<CNA<
�uA�C�u�0�A���1AB
��,AC`�.AD@QAE�,AF`.AG@qA C��f���IA�FT�Ax\u"0,AOP�A\
�
1APA C��f���AA�FT�	0.AX�"0r,A]$�A\�
�
1A^LA ���f����AFT�
0�A��,Q0
Aq�0	Av�0"
A{�0"A�$0�A�X
0�
,A���A��	0�.A�t�	0�l�.A��u0;A&���F��A'FT�,A���zE.A�@uA(����A)F!AB�P��A�*�3�$�A��A�*�1.A�r�+�{r.A��IQ.A�r�+�l�.A���+�Ad,�1A,f���+A,C��F��A,�FT�.A��A-�&q\A��-jq"�A .��������I.A��uA/�����#���A�0\G1A��Ad0C+��.A�r�+9[Al0��1A0�������
A0���F�9A1FT�A��Q.A�r�+�l�.A���+�Ad2��1A2�f���+A2���F�A3FT�.A��A�4�A��A4C�������A4�����!EA4���F�]A5�FT�A6&qA�#�+	0�.A���	0�.A���	0;.A���.A�� �AX;�
	�A�!%A;���F�!9A<FT�A<�f!�Ҭ�"A"�
�"A=Cfk�4�"iA�=��1A�"�A>f�t�"�A>Cf�"��A>�f�t�#AT>�	�1A�#$A?F�#U�A?�f�#qEA@�'p#�#�AB@��$Xs4�$q$�@�FT�A�"A�\�AlBC[5Y�A�B��A

�"AA�C���A"C���4�$�$�"C�f%%(%L "C�%�f%d%L� D%�f%�%L"AAD�&�qABEf%��"AEF&�AFF&,�ApFC�,�&eABF�F&�&�F�&'A'%,A!'x'��A#
1A#
�'�A$(!.A%(�(�qA')(.A()��A+	1A+
�)�A-)�A.*|qA0*�A�M�A4*�AMCF�+%AM�f�t�+qAM�f�+��+A4N�1A8
�+�ANCF�+�A<,�AlOC��A=,�AO��--5.A?�-iq.AA�&�AP�%xtAE.AEr-�.	.AF�.�,AI�/!ADR�'��AJ/�A0SD$�������0��E0�AM18A"O1dO1�QAP
�+�AQ1�A�T�1AR2L,AS�2�A0UD$�������3]�E3�QAU3�AX1�A�V�10�A[
�+�A�W��A\4 AW�����H4u4��A_	�VA_�2�4�4��5!5I.A`EH��AX��5|5�Ah6qAj6��Am�1Am6�Ao7\�Ar8A"t8Lt8p^Av�1Av8�Aw9LA�^�5�51Az
�"AA�^�11A{9�A�_C1A!_CD"Af���&�AP_�	�A~9�A9�A`��F�:	QA�:�A�:�qA�a�1A!a�D:�f���&�APb	�A�;A�9�Ab���F�;9QA�;�A�:�A4d�%�%1A�
�+�Ae!1&A�;��,A�J;�A|e�D$�IA"�Iff��L,�A,fC&�����<�;�==-;�;�
q,A��=mA0g�D$�������>��E?1Ah�"�1A�?pA�h�
1Ah�f�j�?�Ai��F�?�A�A
QAi�f�jAA�Aj��F�AeA�A.A�B���A�
�"AAk�fk�4�B�A8l�,�B�Al��C0d�Ce&�A"�C�m�fk�4�C�AnCF&C�Tn�iA"�r$�oFr$�AoCfk�4�$�emulatesetoptextendedgloblocallineshowlinerestlineREPLYREPLY2userangenobackupdatefmtcalendardonefileschednewfilewarnstrmywarnstrnewdateintegertimestartstoptodayndaysnextshowndonenodoneintegerverbosewarntimemywarntimetcalctschedrstatremainingintegershowcounticountrepeatingrepeattimereschedshowallbriefcalendar_entriescalendar_addlinestimescaloptsshowproglockfilesmatchmbeginmendtmplinesreplyzmodloadzsh/datetimereturnzsh/zutilzsh/filesb:zf_lnautoloadcalendar_�add�parse�read�scandate�show�lockfiles�zstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendar�calendar.new.�HOST.���:datetime:calendar:�done�filedonefiledonefile��calendar.done��:datetime:calendar:�show�progcalendar_show�:datetime:calendar:�warn�timewarnstrwarnstr�0:05��:datetime:calendar:�date�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y��warnstr warntime = warnstr calendar_scandateprint�warn-time value '�warnstr' not understood; using default 5 minutes�warnstr�5 mins� warntime = 5 * 60  warntime = REPLY �calendarintegeroptioptrestoptarg��argv�opti+1�� opti++ ��argv�opti��2����argv�opti��3,�1���optbreak�BCnS��optrest opti < �# �argv�++opti���0: option -�opt requires an argument.��optarg brief <= 0 ��0: option -�opt requires a positive integer.�calendarshowcount showcount <= 0 ��0: option -�opt requires a positive integer.����s.:.�optarg� showall = 1  brief = 1  done = 1  nodone = 1  remaining = 1 showcount��0: unrecognised option: -�opt��optrest�1��optrest�2,�1�calopts�argv�1,opti�shift��( opti )� done && !nodone donefile �# > 1 || (�# == 1 && remaining) �EPOCHSECONDS��0: failed to parse date/time: �1��REPLY���%�:��%D{%Y}�����%�:��%D{%m}�����%�:��%D{%d}��strftime�%Y/%m/%d���y/�m/�d��today�%u��start �# && !remaining ��1�2,�1����0: failed to parse relative time: �1� stop = REPLY ��0: failed to parse date/time: �1� stop < start �datefmtREPLY2�datefmt�stop��0: requested end time is before start time:
  start: �REPLY
  end: �REPLY2���( start + ndays * 24 * 60 * 60 )� �# �Usage: �0 [ start-date-time stop-date-time ]�autoloadmatchdate�donefile�newfile verbose �start: ��datefmt�stop: � remaining �none��datefmtmycmds���TMPPREFIX:-/tmp/zsh�.calendar_cmds.�$�zf_ln��<<<''��mycmdszsh/systemb:zsystemzsystemsupportsflockzsystem/dev/nullzsystemcalendar_lockfilesexitcalendar_read�calendar_entriescalendar_parse�linecontinue t = ��reply[time]� restline�reply�text1���reply�warntime�� mywarntime = t - ��reply[warntime]� mywarnstr��reply�warnstr�� mywarntime = warntime mywarnstr��reply�rpttime�� repeattime = ��reply[rpttime]�  repeating = 1  repeating = 0  verbose �Examining: �line��  Date/time: ��datefmt�sched�  Warning �mywarntime seconds (�mywarnstr) before� shown = 0  brief tmplines���(f)line�����F�����tmplines�1�brief�����showline��b�����\n����:space:�����#����\n��������\n�������match[1]�match[3]���showline%%��:space:���� showall || (t >= start && (remaining || t <= stop || icount < showcount)) ���qq�showprog����qq�showline� icount++  t <= EPOCHSECONDS  shown = 1  tsched = t - mywarntime  tsched >= start && tsched <= stop�due in ��mywarnstr�: �showline����qq�showprog����qq�showline� tsched < start  shown && repeating �datefmt�repeattime�newdate���:space:���restline��:space:���calendar_addlines��newdate�restline� tcalc = repeattime, resched = 1  tcalc = t  tcalc - mywarntime > EPOCHSECONDS  tsched = tcalc - mywarntime, resched = 1  tsched = tcalc  !shown  resched = 1  resched && (next < 0 || tsched < next)  next = tsched  shown  done != 3  done = 3 �Failed to append to �donefile� done != 3  done = 2 �newfile done != 3 �Failed to append to �newfile� done != 3 �next�����(@)zsh_scheduled_events#*:*:����I�calendar �s������qq�sched�calendar���calopts[@]���No more calendar events: calendar not rescheduled.
Run �"calendar -s�" again if you add to it.����qq�showprog����qq�showline� done == 2 �calendar.old�Couldn't back up �calendar to �calendar.old.
New calendar left in �newfile.� rstat = 1 �newfile�Failed to rename �newfile to �calendar.
Old calendar left in �calendar.old.�nobackup�newfile�calendar_addlinescalendar_add�nobackup ��#lockfiles� �lockfiles�rstatA�fd�C��A�F <AC'p��A�'p5A�'p"uA,Cp�����z,@A$��p�X���A(��,L`x��AG�A C�p��@hA ��p����A�gp��ACfҬ�AA��
�A�f����zA��	0.A�	0b.A"x�	0;A	�F,�A
�FHaABC������ .Di,A/��AC'p�A`�
�A�F$aA���F��A
F,�A
��		EA7	�A��A����	�
ACGp
TAB�����
u
�
�;
�	A�p�����.A=��A4�%�%1A?
�iA@�AC1.AAr

PAB
x
�.ACr
�
�AC�p����.AF��qABIr)IE�EA��p����].AKE��A�'p(E|AT�1.ATrY}.AU��A	dCJ�A	4IuG�A�C�A]�A���1A"��4�4`"�f��� �,f��AC&��AB�FT�F��A����1Ag�AF�Ax����Aj
��AT��!ABCF$iC&�A����A�}|�.Apri
,Aq�9A��t�t1.Arru�Ax�
�AwR��A��1NA�p2r��r-u	A�
xA!�&�A"_�A�A$�&XY�,A�,}A*�%�AT*��.A�r��
A+���.A�,�A\+�
�
1A�=A,��p�����A,�����A��@E,A���FA��VA��2r�ri�.A� 	�AB�ri)
�EE.A�E �,A��iA�2��1A2�F$!A2��!<!eA�!�A�3C�1A3C����"!
A3�����"E
�"hA3��p���"��.A���A 6C%�iA�6�8�"�AB6�F$i6�&"�A7�##AAL7C�1A�#�A7�������$%A�
xA�8��1fA��2r$I�`2
��ri$},A��$�A"�r�u9C&$�Ah9��NA�p2r%	%Mri%qA"�%�:&%�A�
xA:�������iAB�%�;C������%�A�;��A�&A\<
�
1A<f�j&QA<C��F�&�A�'��AB�%�$=�(������'�Al>��1A"�(8>�f�j(]A>���F�(�A�'�A")�@fk�4�)�A@�F�*%emulatesetoptextendedgloblocalcontext�:datetime:calendar_add:�vdatefmt�%Y%m%dT%H%M%S��[[:digit:]]�calendarnewfileREPLYlastlinetextoccurcalendar_entrieslockfilesreplyoccurrencesintegermy_datedonerstatnolocknobackupnew_recurringintegerkeep_my_uidparse_newparse_oldmatchmbeginmendmy_uidtheir_uidautoloadcalendar_�parse�read�lockfiles�getopts�BL��optnobackupreturnshift��( OPTIND - 1 )�zstyle�contextcalendar�filecalendarcalendar�/calendar�calendar.new.�HOST.��addline��*�calendar_parse�addlineprint��0: failed to parse date/time�parse_new���(@kv)reply�� my_date = �parse_new[time] �contextreformat�datedatefmt�contextdate�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y�strftime�datefmt�parse_new�time���REPLY �parse_new[text1]��parse_new�rptstr� new_recurring = 1 �parse_new�rptstr�CANCELLED done = 1 �addline��b�����:space:��#�RECURRENCE��:space:���������:space:��������:space:������vdatefmt��parse_new�schedrpttime�����match[1]��REPLY��match[3]���addline���\n���\n���parse_new�schedrpttime���  # RECURRENCE �REPLY�uidpat�(|*[[:space:]])UID[[:space:]]##(#b)([[:xdigit:]]##)(|[[:space:]]*)��addline���uidpat����U�match�1�� ! nolock zmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendar/dev/nullcalendar_lockfilesexitcalendar_read�my_uidline�calendar_entries�linecontinueparse_old���(@kv)reply�����uidpat����U�match�1���their_uid�parse_old�rpttime��new_recurring�parse_new�text1������:space:��#���OCCURRENCE���:space:��������:space:������:space:����CANCELLED�����:space:����continue new_recurring continue�addlineoccurrences�text��b������:space:��#���OCCURRENCE���:space:��������:space:������:space:�������:space:���������:space:����occurrences�match�2���match[1] �match[3]� ! ��#occurrences� �my_dateoccurrences�XXXXXXXXTXXXXXX �REPLY����o�occurrences���occur%%��:space:�����REPLY��:digit:����c8�T��:digit:����c6���b������:space:��#���OCCURRENCE��:space:�������REPLY���:space:�������:space:��������:space:�������match[1]���match[2]��occur��match[3]���  # OCCURRENCE �occur��addlineparse_new���(@kv)reply�� my_date = ��parse_new[time]� �context�contextdatefmt�datefmt�calendar_entriescontinueparse_old���(@kv)reply�� ! done && ��parse_old[time]� > my_date �addline�keep_my_uid���uidpat����U�match�1��continue�parse_old�time��my_date�addline done continue�addline�newfile ! nobackup �calendar.old�Couldn't back up �calendar to �calendar.old.
New calendar left in �newfile.� rstat = 1 �addline�newfile !rstat �newfile�Failed to rename �newfile to �calendar.
Old calendar left in �calendar.old.� ��#lockfiles� �lockfiles�rstatA�g,A���PxACG��AX�
�A�A���A��(EA\c&�CNACF�A"r��TABC�����Hl�A$�A�5�A��1A"��4��"f4Tx C�f�x�A�&��ABCF�CFL�Af`u�A""��fk�4�A"&,	�Fd��locallinecalendarlockfileseditorintegercal_running �# editor��@�editor��VISUAL:���EDITOR:�vi��schedread�line�� calendar -s ��-�� ��-� cal_running = 1 zstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendarzmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendar/dev/nullcalendar_lockfilesexiteval�editor�$calendar ��#lockfiles� �lockfiles cal_running calendarAC�,PA(�'p��E�A�a,A�A�C7LLd�At�
�
1A0����sb����A��(�A&PAd��1A"�&+c�Ri,A��Af+c�l�IAT�	�	1AlA �f�L��A�A`�1A�f�,�8A�fh���qACF�AP		�A$
�%A	Cf+c�l�I.A&�A�
�.A(���,A)�
Ad�1A&+c�ACf+c�l���A���F��A
F��AF��localfilelockfilemsgdoneintegerlockattemptsloadtriedlockfile�file.lockfilei = 0i <= lockattemptsi++ �file�lockfile/dev/nulllockfilesbreak�msgdonemsgdone���lockfile�: waiting to acquire lock��msgdone ! loadtried zmodloadzsh/zselect loadtried = 1 zsh/zselectzselect��( 10 + RANDOM * 190 / 32768 )�sleep�msgdone��msgdone//�/ �msgdone��lockfiles��1��msgdone�Failed to lock �file; giving up after �lockattempts attempts.
Another instance of calendar may be using it.
Delete �lockfiles if you believe this to be an error.��msgdoneprint�msgdonereturnAfd�C��ACF <A�'p��A0	C'p� @l���A 	��p��$A$	��8�{rXl��A
�gp��AfҬ�4A�g|<��A%�AX�
	�A2�A���F��A
F`�ABCf4���+CF`�,A:}�,A;�,A<Au,A=�	A�1NA�&HA�C�] 0�ABC�����X����F�E,AG�		.AH	!	U*0	�A�C�
�AC�4
q��
�
�,AN
�!,AO=y.AR�	q.AU��U0
5,AZ
�
�,A[�A!1.A\r5,A]��,A^=t,A_��.A`P
�AC�4���y,Ae��,Af9q.Ai�yq.Al��0u,Aq�M.As��0;A�&8ADg�g1FA|`2
�Q���A~,A�X�,A�}ylA��1A��.A��yA�!��A�AD!��1A!��4����A"&8A0"��A�aA#&8,A��!,A��!lA��1A�9.A��!,A��A�%C�A�%A%�����l��,A�@�nA��1A�
��.A��A�(,@=A�(C�.A��q�AB(������X��(���F��nA��1A��.A��		.A�=�,A���A,CF`�emulatesetoptextendedgloblocalvdatefmt�%Y%m%dT%H%M%S�REPLYREPLY2timefmtoccurrenceskiptry_to_recoverbeforeaftermatchmbeginmendintegerthenreplacedfirstschedschedrptoccurrencesautoloadcalendar_scandatetypesetreply �# != 1 print�Usage: �0 calendar-entry�returnreply�time���( REPLY )�schedrpt��reply�time��reply�text1���REPLY2����:space:����reply�text2���reply�text1��true��reply�text2����b�����:space:��#��RECURRENCE��:space:��������:space:��������:space:�����strftime�vdatefmt��match�2���format: �vdatefmt, string ��match[2]��schedrpt�thenreply�text2����match[1]���match[3]##[ 	]#����b������:space:�,��WARN��:space:������asm�reply�time��match�2�reply�warntime��REPLYreply�warnstr���match�2�%%��REPLY2��reply�text2����match[1]���REPLY2##[ 	]#��reply�text2����match[1]���match[2]##[ 	]#����b������:space:�,��RPT��:space:�����before��match�1���afterCANCELLED����:space:����reply�text2���before��match[2]##[ 	]#��reply�rptstr�CANCELLEDreply�rpttime�CANCELLEDreply�schedrpttime�CANCELLED�schedrptreply�text2���before��REPLY2##[	]#��reply�rptstr���after%%��REPLY2��reply�text2���before��after##[[:space:]]#����b������:space:��#��OCCURRENCE��:space:��������:space:�������:space:��������:space:��������occurrences���match�2������match[3]��reply�text2����match[1]���match[4]##[ 	]#��break��reply�rpttime����reply�rptstr��CANCELLED now = EPOCHSECONDS replacedreply�schedrpttime� schedrpt >= now  ��reply[schedrpttime]� < now || replaced ��reply�schedrpttime����reply�rptstr�� REPLY <= ��reply[schedrpttime]� reply�schedrpttime� ��reply[schedrpttime]� > now && firstsched == 0 replaced ��#occurrences� timefmt�occurrences��timefmt��occurrencereplaced�occurrences�occurrenceCANCELLED�occurrence�format: �vdatefmt, string �occurrence� then > now && then < ��reply[rpttime]� reply�schedrpttime��firstschedreply�text2����reply[text2]##[[:space:],]#��A(C'�+E<A�g�PA�PiA�%�A��<A|C�
1.Ar!9nA�1Am.AE��A��H�localcalendarlinelines���f����<$calendar���calendar_entries�lines�line��:space:��� ��#calendar_entries� calendar_entries��1���\n��linecalendar_entries��line���&�A&fd�C��A&CF <AB&�fpL��&�F��A(�'��A)'�`�A)�'��A*C'�TqA*�g���A,*���s��s{j+��#+��C�K�2��A+'��A-C'���A-�'���A.'�UA.�'���A/�'��!A/�'(IA0'�"�AD0����4�"Pdx��C�r��A80�g���z�		,	D	\	xӢ	�	�A 1���	�	�	�A1�g

0
\A2G
�
�A 3�
�
�8dA 3C�����A\3��$Dh����E
E�BE�BE#BA`4�A4f

=��zA44CK
m0
A�
�0
A�
�0"A�(0jA�X0�A��0�A��0�A�p0�A��	0;A>CF��A?CF��,A���+A@C��<T��A)��A�,A<�,AT��A	1AH.A�uq.A
���A�1NAp2r��r�	,A�i.A��	q,A<�,AT�.A��,A	�AI�G� ,A( 5�A)�.A)�	�
,A*d�,A+x!,A,�IA"-rq�"-�-�.A.
\��A0�A0,A2 aVA3�.A3�	�,A4d�,A5x!A"6r��
"66<.A7
\��A:�A:p,A< �VA=�.A=�	�,A>d�,A?x�A"@r!�"@@H.AA
\�|AD�1AD|,AF �AG�1.AG�	�,AHd�,AIx!,AJ�I.AK
\�LAN�1AN,AO U�AP�1.AP�	�,AQd�,ARx!.AS
\��AV.-�AVHA"Y�Y��,A[ �.A\!�!1.A\�	�,A]�!,A^�,A_�"I,A`d�,Aaxq,Ab��,Ad
\�,Ae
0�,Af8 .Ag , QA"j xjd�A[�1Al �,An
�!!,Ao!L!q�Au
�
1~Au�Rr!�!��Rr!�#)r!�$1Ax%u.AyӢi,A{�%�A"|&�_F&�&�A|_��1A' AX`C�$0'�,A���,A��,A��"IDA�8!!(�(�.A�
0�$0(�,A���,A�	,�,A��"IDA�8!!)�(�.A�
0�$0*,A��"�,A�	,�,A���DA�8!!+�+�.A�
0�$0+�,A�	,�,A��"!,A���DA�8!!-`+�.A�
0�'0-�,A��"�,A�	,�Aj��.����.�/	DA�8!!/@(�.A�
0�'0/e,A�	,�,A��"!Al��.����.�0�DA�8!!0�(�.A�
0�$01
,A��"�,A��,A��qDA�8!!2h2�.A�
0�$02�,A��,A��"!,A��qDA�8!!42�.A�
0�r041AsCg4�5�As�'�505QDA�8!!5�5�At�g��5�A0u%5�s��s{j+��#+��C�K�2��s��A�5�A�6xAvC�.���6�6�7	A"�7 �7hA�7�AwC�.����.�7	Aw��.���8U7	Aw��.����"8i7	.A�
0�q08}A�6xA�y�<9�09� A�9�0:,!A�:P*0�{r"\A�
\�:��
��A|C�.���d:�7	A|��.���x:�7	A|��.����:�7	A}��.����.�7	A}��.���8U7	A~�.����"8i7	DA�8!!:�5�.A�
0�A��r�r1A�;�A
�
1A;�|A�1.Ar;�<U#.A8<�.A�<�A�_^�A=�AX�CJ.�A	;�\A�1A=�A>`\A�1A?A?lA����1A@AX��
1.A�@}A$A��F��q.A"�AE�A$B,�A'1.A'�B�C5%A4Ch.A5�D5q.A8�E�AP�	�A"@FA�F)F�&A��F��A�C�.����.�F�A���.���8UG	A���.����"8iGAAIGxA|���1AKG�A�f&�G�HuA"NI��f&�I-I�A�F&�JUA	t�C-�-1AUJ�A����1AVKA�C�.����.�KQA���.���8UKQA���.����"8iKQA��.�����K�K�AD��'�'1.A^r�L%'A"_R�_M�A����A`KAdM9A�C�.�����K�M�A��.���48UNAA"iNdiN�AlOqAnOm,Ap�Pu.Aq
\�A���;:�.Asr�Q-(A"tR�tRE�AX�C*'1AuKAwRi�Ax1AxSAzSDqA|TTA���.�����K�U]A����A�U�At��A�&U�A�C�.���P8iV
A"�V0�&VdA�V|A�OqA�V�,A��Pu.A�
\�A���<�<1VA��2rW��)r�W�*,A�C�r�,A�	�X�,A��Y�Ad��+�+1A�Y�,A��Pu,A�
\�A�Y�A�Z A��.���.�Z�A�C�.���48UZ�A���.�����K�Z�A��.����6�7	A�[TA"�\�\<A�C�.���P8i\iA�\�$A��.A�r�]+A"�R��^	�A�^-,A��Pu.A�
\�$A��.A�r�^�,A"�R��_��A�_�,A��Pu.A�
\�A����A�`�A���.����B:�aA��.����B:�a�A�b,�A�	1A�bhA�b�QA�b�A�b�A�cA�cl$A��.A�r�c�-A"�R��d��A�d�,A��Pu.A�
\��A��1.A�r�e}.A�fQ,A��Pu.A�
\��A��1.A�r�f�/A�g�,A��Pu.A�
\�A|�C.�(�A�hPA��!�!1A�h|A`�
�A�h�A<���1.A���h�0A��F��AiA�gi�<�i�AjA"
�j� ��Gi�<�j�j�A��F��A�CF��QA
kA��F��A`Ã
�Ak`A<��1.A��k�1A�CF��A�Cg��k2k�A1A
�k�,A�k2k�.Ak�lEq,A�k2l�.Ak�m=A ǃ�.���i���m�m�A" 
�j� �Gi�<�nn-AȃF��emulatesetoptextendedglobzmodloadzsh/datetimereturnlocaltschars�[-,:[:blank:]]�tspat_anchor�(��tschars�#)�tspat_noanchor�(|*��tschars�)�schars�[.,[:space:]]�dayarrdayarrdaypat���schars�#((#B)(��(j.|.)dayarr�)[a-z]#~month*)�dspat_anchor�(|(#B)(��daypat�|)(#b)��schars�#)�dspat_anchor_noday�(|��schars�#)�dspat_noanchor�(|*��schars�)�repat�(|s)(|��schars�*)�monthpat�(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]#�integerdaysecs��( 24 * 60 * 60 )��[[:digit:]]�integeryearyear2monthmonth2day2hourminutesecondthenwdaywday2lineorig_linemnameMATCHMBEGINMENDtestrest_linematchmbeginmendintegerdate_foundtime_foundintegertime_okintegertime_starttime_enddate_startdate_endintegeranchoranchor_enddebugsetvarintegerrelativerelative_startreladdreldaterelsignnewaddgetopts�aAdmrR:st��opt anchor = 1  anchor = 1, anchor_end = 1  debug = 1  relsign = -1  relative = 1  relative_start = OPTARG, relative = 2  setvar = 1  time_ok = 1 shift��( OPTIND - 1 )�dspatdspat_nodaytspat anchor �dspat_anchor�dspat_anchor_noday relative �tspat_anchor�tspat_noanchor�line��b������\n��������\n����match�1�rest_line�match�2��dspat_noanchorrest��line���ibm����tspat���0-12��:��0-59���.:����0-59���.�-������:space:�����ap����.���:space:���m�.���:space:�����e����rest�match�3��match�5��match�7���i�p hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-12��:��0-59����:space:�����ap����.���:space:���m�.���:space:�����e����match�4� hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-12����:space:�����ap����.���:space:���m�.���:space:�����e��� hour <= 12  hour += 12  time_found == 0 ��line���ibm����tspat���0-24��:��0-59���.:����0-59���.�-�����.���:space:�����e��� time_found == 0 ��line���ibm����tspat���0-24��:��0-59���.���:space:�����e��� time_found == 0  anchor �tspat_anchor��line���ibm����tspat����"���"����":����d��d��d��d����d��d����d��d�T���d��d����d��d����d��d����:space:������e����match�6��match�8��mbegin�3�date_end�mend��1� hour == 24  time_found && ! date_found �mbegin�2�time_end�mend��1��line��time_end+1,�1���b���:space:�����A�Z��A�Z��A�Z����+��0�9��0�9��0�9��0�9�����:space:�����e�����b���:space:�����A�Z��A�Z��A�Z�����+���0-12�����:space:�����e�����b���:space:�����A�Z��A�Z��A�Z�����+���0-12��A�Z��A�Z��A�Z�����:space:�����e��� time_end += ��mend[-1]� �line�1,time_start�1��line�time_end+1,�1� debug print�line after time: �line� relative == 0 && date_found == 0 ��bi����dspat���19�20��0�9��0�9����/���1-12����/���1-31���date_end�mend�5���bi����dspat���19�20��0�9��0�9����/����monthpat���/���1-31���date_end��bi����dspat���1-31����th�st�nd�rd���:space:�������monthpat���,���:space:������19�20��0�9��0�9���date_end�mend�6���bi����dspat����monthpat���:space:������1-31����th�st�nd�rd���,���:space:������19�20��0�9��0�9���date_end��bi����dspat���1-31����th�st�nd�rd���:space:�������monthpat���,����:space:�������strftime�%Y��EPOCHSECONDSdate_end��bi����dspat����monthpat���:space:������1-31����th�st�nd�rd���,����:space:��������EPOCHSECONDSdate_end��bi����dspat���1-31����th�st�nd�rd�/��1-12�����,���:space:�����/���19�20��0�9��0�9���date_end�mend�7���bi����dspat���1-12��/��1-31����th�st�nd�rd����,���:space:�����/���19�20��0�9��0�9���date_end��bi����dspat_noday�����daypat�������schars���integerwday_nowwdaystr���L�match�3��date_end�mend�2�wdays wday = ��wdays[(i)�wdaystr]� - 1  then = EPOCHSECONDS wday_now�%w��then wday_now < wday  wday_now += 7  then -= (wday_now - wday) * 24 * 60 * 60 �%m��%d���bi����dspat_noday��yesterday�today�tomorrow�now������schars������L�match�2��yesterday then -= daysecs tomorrow then += daysecs time_end�%H��%M��%S�date_end date_found || (time_ok && time_found)  date_found ��line�1,�date_start�1����bi����daypat����schars���mbegin�1���line�1,�date_start�1����line��date_end+1,�1�� time_found == 1  time_start <= date_start  date_start += time_end - time_start + 1  time_start <= date_end  date_end += time_end - time_start + 1  time_end + 1 < date_start ��orig_line�time_end+1,date_start�1�����schars�����orig_line[1,time_start-1]���orig_line[date_end+1,-1]�� date_end + 1 < time_start ��orig_line�date_end+1,time_start�1�����tschars�� time_found = 0, hour = 0, minute = 0, second = 0 ���orig_line[1,date_start-1]���orig_line[date_end+1,-1]�����orig_line[1,date_start-1]���orig_line[time_end+1,-1]�� anchor ��orig_line�1,time_start�1�����tschars���EPOCHSECONDS�EPOCHSECONDS�EPOCHSECONDS date_found = 1  debug �Time string: �time_start,�time_end:��'�orig_line[time_start,time_end]'� date_ok �Date string: �date_start,�date_end:��'�orig_line[date_start,date_end]'��Remaining line: '�line�rest_line'� relative  relative == 2 �relative_start�%Y:%m:%d����year�:��month�:��day����bi����dspat���-�����:space:����y�yr�year�yearly����repat�match�2� year2 = year + relsign * ��match[2]� ���year2�:��month�:��day���reldate month2 != month  reldate -= daysecs  reladd += reldate - then  reladd += relsign * ((365*4+1) * daysecs * ��match[2]� + 1) / 4 ��line�1,�mbegin�2��1����line��mend�4�+1,�1����bi����dspat���-�����:space:����mth�mon�mnth�month�monthly����repat�match�2� month2 = month + relsign * ��match[2]�  month2 <= 0  year2 = year + month2 / 12 - 1, month2 = month2 + (year-year2)*12  year2 = year + (month2 - 1)/ 12, month2 = (month2 - 1) % 12 + 1 ���year2�:��month2�:��day�� day > 28 true�reldate day2 >= 28 break reldate -= daysecs  reladd += relsign * 30 * daysecs * ��match[2]� �relative��bi����dspat_noday���-���th�rd�nd�st�����daypat�������schars������L�����match�4������schars���%%���schars����1,3����dayarr��I��test�� wday  wday--  reldate = relative_start + reladd �reldate�reldate���year2�:��month2�:1� day = 1 + (wday - wday2) + (nth - 1) * 7  wday < wday2  day += 7 �reldate newadd += (day - day2) * daysecs ��bi����dspat���-�����:space:����w�wk�week�weekly����repat�match�2� newadd += relsign * 7 * daysecs * ��match[2]� ��bi����dspat���-�����:space:����d�dy�day�daily����repat�match�2� newadd += relsign * daysecs * ��match[2]�  relative == 2 && newadd ��( relative_start + reladd )���( relative_start + reladd + newadd )� hd = h2 - h1  hd > 12  hd -= 24  hd < -12  hd += 24  newadd -= hd * 3600  reladd += newadd ��bi����dspat���-�����:space:����h�hr�hour�hourly����repat�match�2� reladd += relsign * 60 * 60 * ��match[2]� ��bi����dspat���-����:space:����min�minute����repat� reladd += relsign * 60 * ��match[2]� ��bi����dspat���-����:space:����s�sec�second����repat� reladd += relsign * ��match[2]�  relative  time_found  anchor_end ���schars�� reladd += (hour * 60 + minute) * 60 + second typesetREPLY REPLY = relative_start + reladd  �setvarREPLY2��line�rest_line� date_found == 0  anchor_end ���schars��nums�mname�%Y %b %d %H %M %S���year �mname �day �hour �minute �second��%Y %m %d %H %M %S���year �month �day �hour �minute �second��fmt�numsREPLY2��line�rest_line�A(�' �+8�+A�FL�A"
�+c�CF+c�L�A�fd��}Ag��#kABCf�L��C&AH('�>AP2
�!rEaA|C��6A@2
�y
��AC%#k1QA
�UA%#k��A���A"
��=�F���`��F,AA(C�CF�}A	CF�integerstartstopshiftprint��*�localzmodloadzsh/parameterreturn�DISPLAY�start�stop��commands�kdialog���KDE_SESSION_UIDkdialog��msgbox��commands�xmessage��xmessage�center�cmd�1��u�UIDgrep�cmd�1�/dev/null�cmdA�fd�C��A�F <AfpL��A�������zA�g4HABC�l���4
TuA ~A�Rr�+���Rr�+��r�+;4�A�Cl�+0��A�&�,A��.A4�G0;4�AC �.Ar�+
,A AA�&��AC&�Al��1FA`RR�+��+9,;A���Fd}AF,�,A"H�+A�&�
0��A
&�A
C&hAB.��G��AX
	�A0�AC��Fd�A�F,�A�
C�A5-,A6��A7�.A7r�+AA"9r�+<�	9�l�,A:�Y�A=�1A=�,A>��.A?��A����ACA B�@������+F,�.AE��qAB�f@��+�F,�A�&�A"M�C&,A�f��emulatesetoptextendedglobzmodloadzsh/datetimelocaloptmdatefmtintegeroptrreplysetzstyle�:datetime:calendar_showdate:�date�formatdatefmtdatefmt�%a %b %d %H:%M:%S %Z %Y�shiftREPLY�f��datefmt�1�3,�1�print��0: -f requires a date/time specification�returndatefmtbreak optr  ! �# �Usage: �0 datespec [ ... ]� �# ��+����1�2,�1�� ! replyset �EPOCHSECONDSreplyset replyset calendar_scandate�optm�REPLYreplysetstrftime�datefmtA�fd�C��A�F <ACfpҬ��A$�� 8\p�+r�Ag ��A(C� ��<x�A�G�JABC����i�
��AP"HA8�!� A��A"�4�8d"f���Cf��	A�&��ABCF0	CF|�,A�+r�ACF�	AT�	�	1^A�Rr
�P2r
�RaAF��A���\�Ad	�1A	f�aA	C�<y�A	���aA8
��A+A�l�A��
�iA0,\	)ACF	|	�A"3	��f	|d�
-A�
���&A6r
�A
�F	|
�AF��QA9
�A�F	|IAF��AX�
	�A�f�j	�AF	|
!A�F��AX
	�Af�j
�	ACF	|EA�F��A�F	|iA"L�fk�3��=emulatesetoptextendedglobautoloadcalendar_�read�scandate�lockfiles�localcalendarlineREPLYlockfilecalendar_entriestimeslines_sortedlines_unsortedlines_failedlockfilesintegerzstyle�:datetime:calendar:�calendar�filecalendarcalendar�/calendarzmodloadzsh/systemb:zsystemzsystemsupportsflockzsystem�calendarcalendar_lockfilesexit�calendar.new.��calendar_read���calendar_entries��calendar_entries�1�return�calendar_entriescalendar_scandate�line���(l.16..0.)REPLY�:�line�lines_failed ��#lines_unsorted� lines_sorted�����o�lines_unsorted����0�9���:����lines_failed[@]��print��line # BAD DATE� ��#lines_sorted� ���lines_sorted[@]���new�Writing to �new failed.� ��#lines_failed� �Warning: lines with date that couldn't be parsed.
Output (with unparseable dates marked) left in �new��calendar.old�Couldn't back-up �calendar to �calendar.old.
New calendar left in �new��Failed to rename �new to �calendar.
Old calendar left in �calendar.old��Old calendar left in �calendar.old� ��#lockfiles� �lockfiles